query与document文本相关性计算总结

目录

1 前言

一个信息检索系统,可以抽象为给定一个查询query,检索出最能满足用户需求的item,也就是求对应概率P ( D i ∣ Q ) P(D_i| Q)P (D i ​∣Q )最大的doc D i D_i D i ​。根据贝叶斯公式展开如下:
argmax ⁡ P ( D i ∣ Q ) \operatorname{argmax \,}P(D_i|Q)a r g m a x P (D i ​∣Q )
= argmax ⁡ P ( Q ∣ D i ) P ( D i ) P ( Q ) =\operatorname{argmax \,} \frac{P(Q|D_i)P(D_i)}{P(Q)}=a r g m a x P (Q )P (Q ∣D i ​)P (D i ​)​
= argmax ⁡ P ( Q ∣ D i ) P ( D i ) =\operatorname{argmax \,}P(Q|D_i)P(D_i)=a r g m a x P (Q ∣D i ​)P (D i ​)
其中P ( D i ) P(D_i)P (D i ​)表示的是文本D i D_i D i ​的重要程度,比如在电商场景,对应item的销量,评分质量等,P ( Q ∣ D i ) P(Q|D_i)P (Q ∣D i ​)表示item D i D_i D i ​能满足用户搜索query Q Q Q的程度。接下来总结了一些常见的统计方法求query Q Q Q与item D i D_i D i ​的相关性分值。

2 文本相关性技术

2.1 TFIDF

在信息检索系统中,term frequency-inverse document frequency (简称:TFIDF )是常见的统计方法,用来计算一个term在文本的重要程度。tfidf经常用于信息检索,文本挖掘等应用。query q q q和文本d d d的TFIDF相关性计算公式如下:
T F – I D F ( q , d ) = ∑ t = 1 n t f ( t i , d ) ∗ i d f ( t i , D ) TF\text{-}IDF(q, d) = \sum_{t=1}^n tf(t_i,d) * idf(t_i, D)T F -I D F (q ,d )=t =1 ∑n ​t f (t i ​,d )∗i d f (t i ​,D )
其中t f ( t i , d ) tf(t_i, d)t f (t i ​,d )表示term t i t_i t i ​在文本d d d的词频,i d f ( t i , D ) idf(t_i, D)i d f (t i ​,D )表示term t i t_i t i ​在整个文本集∣ D ∣ |D|∣D ∣中的倒文本频率。对所有query中的term t i t_i t i ​在文本中的tfidf分值之和。其中t f ( t i , d ) tf(t_i,d)t f (t i ​,d )计算方式也是有多种,参考wikipedia总结的计算方式如下:

query与document文本相关性计算总结
而i d f ( t , d ) idf(t,d)i d f (t ,d )计算方式主要有如下:
query与document文本相关性计算总结

; 2.2 BM25

在信息检索系统中,BM25是搜索引擎中比较常见的评估query与文本相关性的排序算法。BM25全称叫做Okapi BM25,其中Okapi是一个信息检索系统,也是BM25算法最开始应用的检索系统,故命名为:Okapi BM25。如下是BM25算法对query q q q与文本d d d的相关性分值计算:
B M 25 ( D , Q ) = ∑ i = 1 n I D F ( t i ) ⋅ f ( t i , D ) ⋅ ( k 1 + 1 ) f ( t i , D ) + k 1 ( ˙ 1 − b + b ⋅ ∣ D ∣ a v g d l ) BM25(D, Q) = \sum_{i=1}^nIDF(t_i) \cdot \frac{f(t_i, D) \cdot (k_1 + 1)}{f(t_i, D) + k_1 \dot (1-b + b \cdot \frac{|D|}{avgdl})}B M 2 5 (D ,Q )=i =1 ∑n ​I D F (t i ​)⋅f (t i ​,D )+k 1 ​(˙​1 −b +b ⋅a v g d l ∣D ∣​)f (t i ​,D )⋅(k 1 ​+1 )​
其中f ( t i , D ) f(t_i, D)f (t i ​,D )表示的是term t i t_i t i ​在文本D D D中的词频tf,∣ D ∣ |D|∣D ∣表示的是文本D D D的词长度。avgdl表示的是在所有的文本集合中,文本的平均长度。k 1 k_1 k 1 ​和b b b是超参数,通常k 1 ∈ [ 1.2 , 2.0 ] k_1 \in [1.2, 2.0]k 1 ​∈[1 .2 ,2 .0 ],b = 0.75 b=0.75 b =0 .7 5。I D F ( t i ) IDF(t_i)I D F (t i ​)是倒文本频率,通常计算如下:
I D F ( t i ) = In ( N − n ( t i ) + 0.5 n ( t i ) + 0.5 + 1 ) IDF(t_i) = \text{In}(\frac{N – n(t_i) + 0.5}{n(t_i) + 0.5} + 1)I D F (t i ​)=In (n (t i ​)+0 .5 N −n (t i ​)+0 .5 ​+1 )
其中N N N表示的是总文本数量,n ( t i ) n(t_i)n (t i ​)表示包含term t i t_i t i ​的文本数。

2.3 KL

论文:Document Language Models, Query Models, and Risk Minimization for Information Retrieval 主要基于贝叶斯决策理论的统计概率模型来计算query与document的相关性,具体的细节可以详细阅读论文,在这里讲下怎么用KL度量query与document的相关性。KL度量query与document的计算公式如下:
K L ( Q , D ) = ∑ w p ( w ∣ Q ) log ⁡ p ( w ∣ Q ) p ( w ∣ D ) KL(Q, D) = \sum_w p(w|Q)\log\frac{p(w|Q)}{p(w|D)}K L (Q ,D )=w ∑​p (w ∣Q )lo g p (w ∣D )p (w ∣Q )​
其中p ( w ∣ Q ) p(w|Q)p (w ∣Q )表示在query Q Q Q中词w w w的概率值,这个值可以通过语言模型或者任何其它方法计算得到,同理,p ( w ∣ D ) p(w|D)p (w ∣D )表示词w w w在文本D D D的概率分值,若在query中的词概率分布和document的词概率分布越接近,KL分值越小,表明query与document相关性越大。我们把公式进一步变化,可以得到如下:
K L ( Q , D ) = ∑ w p ( w ∣ Q ) log ⁡ p ( w ∣ Q ) p ( w ∣ D ) KL(Q, D) = \sum_w p(w|Q)\log\frac{p(w|Q)}{p(w|D)}K L (Q ,D )=w ∑​p (w ∣Q )lo g p (w ∣D )p (w ∣Q )​
= − ∑ w p ( w ∣ Q ) log ⁡ p ( w ∣ D ) + ∑ w p ( w ∣ Q ) log ⁡ p ( w ∣ Q ) = -\sum_wp(w|Q)\log p(w|D) + \sum_wp(w|Q)\log p(w|Q)=−w ∑​p (w ∣Q )lo g p (w ∣D )+w ∑​p (w ∣Q )lo g p (w ∣Q )
= C E ( Q , D ) − C E ( Q , Q ) = C E ( Q , D ) − c = CE(Q, D) – CE(Q, Q) = CE(Q, D) – c =C E (Q ,D )−C E (Q ,Q )=C E (Q ,D )−c
从上面公式可以看到,两个分布的KL度量等同于两个分布的交叉熵加上一个常量值。

2.4 Term Weight

Term Weighting Approaches in Automatic Text Retrieval,该论文给出了一种基于term weight的query与document的相关性分值计算,计算公式如下:
similarity ( Q , D ) = ∑ k = 1 t w q k ⋅ w d k ∑ k = 1 t ( w q k ) 2 ⋅ ∑ k = 1 t ( w d k ) 2 \text{similarity}(Q, D) = \frac{\sum_{k=1}^tw_{qk}\cdot w_{dk}}{\sqrt{\sum_{k=1}^t{(w_{qk})}^2 \cdot \sum_{k=1}^t{(w_{dk})}^2}}similarity (Q ,D )=∑k =1 t ​(w q k ​)2 ⋅∑k =1 t ​(w d k ​)2 ​∑k =1 t ​w q k ​⋅w d k ​​
其中w q k w_{qk}w q k ​表示的是词w k w_k w k ​在query中的词权重,而w d k w_{dk}w d k ​表示的是词w k w_k w k ​在document中的词权重,上述公式就是对query中的词构成的词权重vector与document中的词构成的词权重vector求cos余弦值分值。

2.5 Proximity

该论文An Exploration of Proximity Measures in Information Retrieval 提出的一个思想是:在document中命中的query的terms之间距离对计算两者的相关性是有影响的,比如用户搜索词:”search engine”,召回的文本有如下两个:
document 1: ” … search engine …”
document 2: “… search … engine …”
直观来说,document 1比document 2更相关,但是基于TF-IDF等算法就区分不出这种term之间的距离情况。所以通过将距离度量融入到BM25等计算文本相关性方案中,得到了基于距离(proximity)加强的检索公式:
R 1 ( Q , D ) = K L ( Q , D ) + π ( Q , D ) R_1( Q, D) = KL(Q, D) + \pi(Q, D)R 1 ​(Q ,D )=K L (Q ,D )+π(Q ,D )
R 2 ( Q , D ) = B M 25 ( Q , D ) + π ( Q , D ) R_2(Q, D) = BM25(Q, D) + \pi(Q, D)R 2 ​(Q ,D )=B M 2 5 (Q ,D )+π(Q ,D )
其中π ( Q , D ) \pi(Q, D)π(Q ,D )表示的距离计算分值,假设一个文本如下:
d = t 1 , t 2 , t 1 , t 3 , t 5 , t 4 , t 2 , t 3 , t 4 d = t_1, t_2, t_1, t_3, t_5, t_4, t_2, t_3, t_4 d =t 1 ​,t 2 ​,t 1 ​,t 3 ​,t 5 ​,t 4 ​,t 2 ​,t 3 ​,t 4 ​
搜索的query为{ t 1 , t 2 } {t_1, t_2}{t 1 ​,t 2 ​},则距离分值的计算有如下几类:

  • Span : Span表示文档中可以覆盖query的所有terms的最小距离,需要包含所有重复的term,述例子中,query在文本d d d中的Span值为7。
  • MinCover:表示的是文本中包含query中每个term至少一次的最短长度,上述例子中,MinCover的值为2
  • MinDist: 表示的是所有query的terms pair对中在文档的最小距离,比如 query Q = t 1 , t 2 , t 3 Q={t_1, t_2, t_3}Q =t 1 ​,t 2 ​,t 3 ​,在文本d d d的MinDist距离为1
  • AveDist: 表示的是所有pair对的平均距离,比如Q = t 1 , t 4 , t 5 Q={t_1, t_4, t_5}Q =t 1 ​,t 4 ​,t 5 ​在d d d中的平均距离为:(1+2+3)/3 =2
  • MaxDist: 表示的是所有pair对的最大距离
    可以通过不同的准则计算距离,得到距离后,我们的距离度量分值π ( Q , D ) \pi(Q, D)π(Q ,D )的计算公式可以如下:
    π ( Q , D ) = log ⁡ ( a + e x p ( − ϕ ( Q , D ) ) ) \pi(Q, D) = \log(a + exp(-\phi(Q, D)))π(Q ,D )=lo g (a +e x p (−ϕ(Q ,D )))
    其中− ϕ ( Q , D ) -\phi(Q, D)−ϕ(Q ,D )可以如上各种度量公式计算对应的距离。

2.6 Position Language Model

该论文Positional Language Models for Information Retrieval的主要思想是计算词在document的传播次数来构造一个基于位置的语言模型,不仅能够捕捉位置距离特征,而且能够实现一个”soft”的检索效果。
论文给出的基于position的语言模型PLM的计算公式如下:
p ( w ∣ D , i ) = c ′ ( w , i ) ∑ w ′ ∈ V c ′ ( w ′ , i ) p(w|D, i) = \frac{c^{‘}(w, i)}{\sum_{w^{‘} \in V}c^{‘}(w^{‘}, i)}p (w ∣D ,i )=∑w ′∈V ​c ′(w ′,i )c ′(w ,i )​
其中c ′ ( w , i ) c^{‘}(w, i)c ′(w ,i )表示的是词w w w从其他所有位置到位置i i i的传播次数,计算公式如下:
c ′ ( w , i ) = ∑ j = 1 N c ( w , j ) k ( i , j ) c^{‘}(w, i) = \sum_{j=1}^N c(w,j)k(i,j)c ′(w ,i )=j =1 ∑N ​c (w ,j )k (i ,j )
其中c ( w , i ) c(w, i)c (w ,i )表示的是词w w w在document的第i i i位置的次数,如果w w w在位置i i i有出现,值为1,否则为0。而k ( i , j ) k(i,j)k (i ,j )表示的是从一个term在第j j j位置上到第i i i位置的传播次数。
有了上面的对document的每个词的PLM分值计算,我们就可以用KL检索模型来度量query与document的相关性:
S ( Q , D , i ) = − ∑ w ∈ V p ( w ∣ Q ) log ⁡ p ( w ∣ Q ) p ( w ∣ D , i ) S(Q, D, i) = -\sum_{w \in V}p(w|Q)\log\frac{p(w|Q)}{p(w|D, i)}S (Q ,D ,i )=−w ∈V ∑​p (w ∣Q )lo g p (w ∣D ,i )p (w ∣Q )​
其中p ( w ∣ Q ) p(w|Q)p (w ∣Q )是query的语言模型,这个分值的度量可以用已有的比如最大似然估计语言模型等。而PLM模型中k ( i , j ) k(i, j)k (i ,j )的度量方式,论文中给出了如下几种方式:

  • Gaussian Kernel: 高斯核函数,计算公式如下:
    k ( i , j ) = e x p [ − ( i − j ) 2 2 σ 2 ] k(i, j) = exp[\frac{-(i-j)^2}{2\sigma^2}]k (i ,j )=e x p [2 σ2 −(i −j )2 ​]
  • Triangle Kernel: 三角核函数,计算如下:
    k ( i , j ) = { 1 − ∣ i − j ∣ σ i f ∣ i − j ∣ ≤ 0 0 otherwise k(i, j) =\begin{cases} 1 – \frac{|i -j|} {\sigma} \quad if \quad |i-j| \leq 0 \ 0 \quad\quad\quad \text{otherwise} \end{cases}k (i ,j )={1 −σ∣i −j ∣​i f ∣i −j ∣≤0 0 otherwise ​
  • Cosine (Hamming) kernel: 余弦核函数,计算公式如下:
    k ( i , j ) = { 1 2 [ 1 + c o s ( ∣ i − j ∣ ⋅ π σ ) ] i f ∣ i − j ∣ ≤ σ 0 otherwise k(i, j) = \begin{cases} \frac{1}{2}[1+cos(\frac{|i-j|\cdot \pi}{\sigma})] \quad if \text{ } {|i-j|} \leq \sigma \ 0 \quad\quad\quad \text{otherwise} \end{cases}k (i ,j )={2 1 ​[1 +c o s (σ∣i −j ∣⋅π​)]i f ∣i −j ∣≤σ0 otherwise ​
  • Circle kernel: 圆形核函数,计算公式如下:
    k ( i , j ) = { 1 − ( ∣ i − j ∣ σ ) 2 i f ∣ i − j ∣ ≤ σ 0 0 otherwise k(i, j) = \begin{cases} \sqrt{1-(\frac{|i-j|}{\sigma})^2} \quad if \text{ } |i-j| \leq \sigma \ 0 \quad\quad\quad 0 \quad \text{otherwise} \end{cases}k (i ,j )={1 −(σ∣i −j ∣​)2 ​i f ∣i −j ∣≤σ0 0 otherwise ​
  • Passage Kernel: 论文采取的文章核函数,计算公式如下:
    k ( i , j ) = { 1 i f ∣ i − j ∣ ≤ σ 0 otherwise k(i, j) = \begin{cases} 1 \quad if \text{ } {|i-j|} \leq \sigma \ 0 \quad\quad\quad \text{otherwise} \end{cases}k (i ,j )={1 i f ∣i −j ∣≤σ0 otherwise ​

3 总结

上述介绍的方法,主要基于统计模型,通过计算query与document中每个词的权重或者概率构成的分布,基于KL, cosine余弦等方式计算query与document的相关性,而一个词的权重或者概率可以基于词频,倒文本频率,距离,语言模型等方法去计算求得。

Original: https://blog.csdn.net/BGoodHabit/article/details/120800012
Author: BGoodHabit
Title: query与document文本相关性计算总结

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/542997/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球