美文网首页
TermWeight 词权重算法

TermWeight 词权重算法

作者: lzhenboy | 来源:发表于2021-03-05 21:49 被阅读0次

    1、背景

    在用户的搜索Query中,有些词在用户的核心语义诉求中占据主导地位,在召回排序时需要重点关注,而有些词则重要性较低,即使丢掉也不影响用户的核心语义表达。
    TermWeight是自动计算用户查询query中各term之间相对重要性关系的模块。通过区分用户查询query中不同term的重要程度并赋予相应的得分,从而召回与用户意图最为相关的结果,继而提高搜索的用户体验。

    2、静态词权重

    方法:利用query和doc的文档集合计算tf-idf并归一化,作为term的词权重
    优势:简单,易实现
    劣势:每个term的词权重是静态的,无法根据上下文变化,效果差

    3、动态词权重

    3.1 训练数据获取

    term weight训练,方法主要分为两种:(1) 基于点击词共现 和 (2) 基于偏序关系

    3.1.1 基于点击词共现

    基于点击词共现法将term weight看做是回归任务来解,标注数据计算时采用term recall得分来表示query中各term的重要性关系。
    词共现:基于uclog的query-title点击数据构建训练集,即通过计算指标 term recall 作为词权重。
    term recall 计算公式如下:

    其中,
    Dq :与query相关的doc集合
    Dq,tDq包含query中term t的doc集合
    (1) 词共现计算时需要考虑 同义词;(2) 如果query的topK点击doc量比较少,可以考虑用topN语义召回doc补充

    如果是冷启动阶段或词共现计算的 term recall 准确率低,可通过分层回归得分做人工数据标注,示例如下:

    query:ABCD
    标注:B(1挡:1.0)> A(2挡:0.7)> C(3挡:0.4) > D(4挡:0.1) 
    

    注:分层数和得分可根据具体业务场景来调整

    3.1.2 基于偏序关系

    基于偏序关系的方法将term weight看做是排序任务来解,标注数据时采用偏序关系来表示query中各term的重要性关系,如:

    query:ABCD
    标注:B > A > C > D
    

    该方法适用于 用户query短,多数点击doc都会包含query中所有term,从而使得 词共现 方法失效。

    3.2 模型选型

    应用场景的不同,会对应不同的模型选型方案:
    (1) DeepCT/DeepRT
    基于深度上下文语义的词权重。(a) 通过深度模型生成上下文化的词embedding + (b) 线性回归预测词权重。
    优势:利用上下文语义,效果好。
    劣势:模型略复杂,需要控制模型复杂程度,满足实时推理。
    (2) Feature+ML
    基于特征设计+机器学习回归模型预测词权重得分。
    优势:计算高效,满足实时推理。
    劣势:需要人工精细化设计特征。

    下面就两类模型选型详细展开介绍。

    3.2.1 DeepCT / DeepRT

    DeepCT/DeepRT框架中整体使用的是:(a) 通过深度模型生成上下文化的词embedding + (b) 线性回归预测词权重。
    如果数据集是基于词共现的得分,则可直接用MSE等损失函数,如果是基于偏序关系构建的训练集,则可以使用Pairwise Hinge Loss。
    论文中使用的是BERT做上下文语义提取,我自己的实践中用的是BiLSTM+Attention,无论哪种方法,其核心本质是希望利用NMT结合上下文语义来动态判断term在当前语境的重要程度。
    国际惯例,一图以蔽之


    如果系统RT要求较高,则推荐使用BiLSTM,如果追求效果,预训练语言模型的更有优势,需要结合自己的业务场景做选型。

    3.2.2 Feature + ML

    Feature+ML的整体思路是:通过人工设计有效特征,再利用机器学习中的GBDT/LR等模型来做回归预测或排序。常用的模型有Xgboost,LightGBM等。
    很明显,该类方法的效果取决于特征设计的好坏,不同业务场景具体特征会有差别,下面总结一些常用特征。
    term静态特征:idf值、词频、term长度、term词性、词位置、是否停用词、是否语气词、是否专有名词(人名/地名)等等。
    term交互特征:term长度占query长度比值、text-rank值、term在query中相对位置、term对query的ppl贡献度等等。
    ngram特征:包含该term的ngram统计特征、以该term开始的ngram统计特征、以该term结尾的ngram统计特征等等(通常用bigram和trigram)。
    特征设计后,再用ML模型做回归预测或排序即可,比较简单,不再赘述。

    参考文献

    相关文章

      网友评论

          本文标题:TermWeight 词权重算法

          本文链接:https://www.haomeiwen.com/subject/lddsnktx.html