TermWeight 词权重算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TermWeight 词权重算法相关的知识,希望对你有一定的参考价值。

参考技术A

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

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

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

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

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

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

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

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

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

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

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

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

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模型做回归预测或排序即可,比较简单,不再赘述。

word2vec----huffman编码

一、目的

词频越高的词,希望编码长度越短。

在huffman树中,叶子节点是各个词,叶子节点的权重是词频。每个词都有权重×距离根节点的长度,即词频*编码长度。Huffman树保证了上述所有词的上述乘积的和是最小的,即该编码方式的总代价是最小的。

 

二、huffman树的构造算法:这里略去,总之有确定的算法可以构造

 

三、编码示例

 

如图,编码为:

我:0

喜欢:111

观看:110

巴西:101

足球:1001

世界杯:1000

以上是关于TermWeight 词权重算法的主要内容,如果未能解决你的问题,请参考以下文章

文本去重SimHash算法

K-Means算法实现网页聚类

word2vec----huffman编码

中文关键词提取算法

知乎招聘搜索算法工程师!邀你共建知乎搜索引擎!

算法之权重轮询算法