搜索
基础概念:
- query:检索语句;
- doc:文章,文档;
- title:doc的标题;
- term:词,分query侧的term和doc侧的term。
- TF(Term Frequency):词频,即词出现在某个内容(一般指doc或者doc的title)的频率
- IDF(Inverse Document Frequecy):逆文档频率,用于刻画一个词的普通使用频率情况。IDF = log(语料库文档总数/(含该词文档数+1)),即包含该词的文档数越多,IDF越小。一般用于惩罚TF,因为有些常用高频词(如:‘的’,‘是’,‘我们’…)的TF普遍高,但这类词意义不大,可以用IDF进行惩罚,具体公式:TF-IDF=TF*IDF,一般取该特征作为词的频率特征。
GSB标定方法:
GSB即good,same,bad,是一种对照试验数据的标签标定方法。G(B/S)表示实验组的数据表现比对照组更优(更差/相同),在nlp中,一般对照组和实验组的数据是doc标题或者正文,表现评判标准是是否与query相关,相关性大小如何。
例:
query | 对照组 | 实验组 | GSB |
---|---|---|---|
情侣头像 | 情侣可以去的小众景点 | 情侣头像大全 | good |
Ranking标注:
Pointwise:
- 样本是单个doc(和对应query)构成的特征向量,样本标签是单个doc(和对应
query)的相关度,标注时一般是依次标注单个doc和对应query的相关程度。 - 缺陷:
- ranking追求的是排序结果,并不要求精确打分,只要有相对打分即可;
- 没有考虑同一个query对应的docs间的内部依赖性。一方面,导致输入空间内的样本不是IID的,违反了ML的基本假设,另一方面,没有充分利用这种样本间的结构性;
- 当不同 query 对应不同数量的docs时,整体loss将会被对应docs数量大的query组所支配,前面说过应该每组query都是等价的。 损失函数也没有model到预测排序中的位置信息。因此,损失函数可能无意的过多强调那些不重要的docs,即那些排序在后面对用户体验影响小的doc。
Pairwise:
- 样本是(同一query对应的)两个doc(和对应query)构成的两个特征向量,样本标签是pairwise preference,标注方法常见的有GSB。
- 缺陷:
- doc pair的数量将是doc数量的二次,从而pointwise类方法就存在的query间doc数量的不平衡性将在pairwise类方法中进一步放大;
- pairwise类方法相对pointwise类方法对噪声标注更敏感,即一个错误标注会引起多个doc pair标注错误;
- pairwise类方法仅考虑了doc pair的相对位置,损失函数还是没有model到预测排序中的位置信息;
- pairwise 类方法也没有考虑同一个query对应的doc pair间的内部依赖性,即输入空间内的样本并不是IID的,违反了ML的基本假设,并且也没有充分利用这种样本间的结构性。
QU系统
QU,即query understanding理解query,拆解用户搜索词的意图。一般QU系统可以输出Query的term,term_weight,同义term,term紧密度等的query相关的特征值。具体可见:https://zhuanlan.zhihu.com/p/51201097
BM25算法
-
概念
搜索的相关性评分方式之一,主要思想:对Query进行分词解析,生成词qi(term);然后,对于每个搜索结果D(doc),计算每个词qi与D的相关性得分,最后,将qi相对于D的相关性得分进行加权(权重常用IDF)求和,从而得到Query与D的相关性得分。 -
计算公式
S c o r e ( Q , d ) = ∑ i n W i ∗ R ( q i , d ) Score(Q,d) = \sum_i^nW_i*R(q_i,d) Score(Q,d)=∑inWi∗R(qi,d), d ϵ D d\epsilon D dϵD
Q Q Q表示Query, q i q_i qi表示 Q Q Q解析之后的一个term, d d d表示一个搜索结果文档doc; W i W_i Wi表 q i q_i qi的权重, R ( q i , d ) R(q_i,d) R(qi,d)表示 q i q_i qi与文档 d d d的相关性得分。W i W_i Wi常用IDF: I D F i = l o g N − n ( q i ) + 0.5 n ( q i ) + 0.5 IDF_i = log{N-n(q_i)+0.5\over{n(q_i)+0.5}} IDF