现在的位置: 首页 > 综合 > 正文

信息理论与tf-idf

2014年07月13日 ⁄ 综合 ⁄ 共 4360字 ⁄ 字号 评论关闭

tf-idf:Term frequency–inverse document frequency,词频与反文档频率。是搜索引擎中常见的基本算法。这里我们用信息论的角度来解析这个算法。

信息检索中,比较常见的就是通过几个词条搜索相应页面;或者写一篇blog,提取几个关键词作为别人搜索的索引。

也就是两个基本情况:提出一个词条,得到一个文档;一个文档,对于文档中的词进行重要度排序。

这里都涉及到一个概念:词条权值度量。

词条权值与信息检索

词条权值度量在信息检索中有比较大的用途。通常我们需要一种方法来定量地度量某个词条的权值。

常见于如下运用:

1.   根据词条检索文档:也就是衡量一个词条在一个文档中的权值

2.   摘要词条抽取:根据文档中的不同词的权值,提取出权值最大的一个词条

3.   特征子集抽取:提取子特征。

 

通常用来衡量词条权值的方法有:chi方,互信息,Dice系数,似然率,Jaccard相似性度量等,交叉熵,信息增益等等。

 

传统的度量方法是基于共同发生频率的。这里的共同发生频率指的是两个方面:一个是某个词条在不同的文档中的频率,另一个是不同的词条在同一个文档中的频率。而tf-idf以及其变种都是基于这种方式的。

 

方法分类:

一种分类方法是根据不同的数据模型来分类:

a)基于频率的数学模型:基于这样一个假设:出现频率高的词条就更重要。

b)基于特殊性的数学模型:这种方法量化了随机词条到某个词条的偏差。这种方法包括基于互信息的方法,基于信噪比的方法,以及idf.

c)基于特定鉴别函数的方法:这种方法基于特定的鉴别函数,衡量特定条件下的鉴别能力。常见的有信息增益法,相关权重法。

d)基于表达的方法:结合了词频与反文档信息量,也就是tf-idf以及其变种方法。

 

小结:基于频率的方法过于突出高频词汇,而基于信息的方法又过于突出低频词汇,我们需要在这两种方法上需找一个平衡。那么基于鉴别函数的方法与基于表达的方法以不同方式完成了这种平衡。

 

通过下面一个例子来比较c与d的区别:如果某个词在其他所有的文档中都出现了,而在一篇文档中没有出现,那么这个词对于鉴别这篇文档与其他文档就很有用处,而对于其他文档之间的鉴别没有意义。然而,如果是基于表达的方法,那么这个词也是没有用处的。

如下表格是这四种方法的对比与运用。

 

互信息与KL距离

上面介绍了词条权值度量的一些方法和分类。下面就其中的一种度量方法讨论:信息熵。

假设两个随机变量X,Y,他们不是独立的。通过观察X,我们能够得到关于Y的一些信息。同样的,通过观察Y,我们能够得到关于X的一些信息。

比如下雨和打伞两个事件,我们通过路人打伞,可以推断可能下雨。通过下雨,也可以推断路人会打伞。

用信息论的理论来解释就是,已知X,Y的不确定降低了。定量地衡量就是P(Y|X)与P(Y)之间的KL距离。

 

除此之外,我们还可以有另一种理解:

还是下雨打伞两个事件,我们可以构造P(X,Y),然后计算两个事件的联合概率P(xi,yj),再计算P(xi,yj)的信息熵,来衡量这两个时间同时发生的信息量。

也就是Xi,Yj的互信息I(Xi,Yj)

最后,我们可以根据条件概率公式:P(X,Y)=P(Y|X)P(X)=P(X|Y)P(Y),把上面两种度量KL,互信息结合起来:

根据上面的公式推理,我们可以得到如下结论:

已知X,得到关于Y的信息越少,P(Y|X)与P(Y)之间的KL距离越小,X,Y之间的互信息也就越小。

(关于KL与互信息,具体可见blog:

http://blog.csdn.net/ice110956/article/details/17120461

最后,我们得到了以互信息,或者KL距离来衡量权值的信息论方法。

 

概率框架

有了上面的信息论知识,我们再来看文本检索的问题。

通过上面的叙述,我们可以通过互信息来定量的进行信息检索。

如第一部分的论述,信息检索中的两个基本情况是:提出一个词条,得到一个文档;一个文档,对于文档中的词进行重要度排序。

这两个问题,归结起来都是关于词条的权值计算,用信息论的度量方法就是度量词条与文档的互信息。

 

直观上,我们有两种可行的概率框架假设:

1.         每个文本都是由Ni个独立随机变量,也就是词组合而成的,这里把文档中的每个词作为一个随机变量。同时,每个提出的词条也是一个随机变量。

2.         文本是一个随机变量D,每个文本都是D的一个样本,这里把每个文本看成一个整体。同时,每一个提出的词条还是一个随机变量。

根据方法1,我们有贝叶斯方法。

根据方法2,就有我们如下的tf-idf。

我们现在根据第二种概率框架:

假设有一个文本集合D,D包含了许多文本{d1,d2….dn},一个关键字集合W,W包含所有可能的查询{w1,w2…wm}.这样,D,W都被描述成一个随机变量,di,wi则为其中的样本。

上图中,把信息检索抽象为一个概率模型.

进一步的,如上一部分所述,我们可以有这样两种理解:

1.   与之前的天气穿着类似,这里我们已知词条P(W),以及P(D|W).我们用P(D|W)来近似P(D)。

2.   另一种理解就是,我们计算得到联合概率P(wi,dj),也就是提出词条wi,得到文档dj这个事件发生的概率。再通过这个概率模型来推导出相应的信息量。

就像我们前一部分关于下雨打伞的两个理解,最后都可以统一到一起.

我们先引出如下一个概念:

PWI:probability-weighted amount of information (PWI).信息概率权值。

(1) 

其为两个事件同时发生的联合信息,也就是广义上的互信息,I(wi,dj).

 

我们用PWI来作为互信息与KL距离的一个统一的表达方法,其本质也就是互信息。

我们根据PWI的定义,能够继续推导如下公式:

(2) 

(3) 

 

公式(1)可以用于衡量某个词条与不同文档之间的权重。

公式(2)可以用于衡量某个词条对于所有文档的权重,排序后可以得到关键词条。

公式(3)可以用于衡量某个文档对于所有词条的权重。

后面的部分将会具体说明。

 

基于频率的概率模型:

上面,我们根据整体框架,得到了基于PWI(互信息)的方法框架。这时,只要我们提出合理的D和W的具体概率分布,加到上述的公式中,我们就能计算基于互信息的词条权重了。

从直观理解得出概率模型:

这里的直观的理解也就是频率。通常来说,我们会觉得出现频率高的更重要。于是这里我们基于频率,得到他们的概率模型如下:

我们首先列出以下要用的一些变量:

D:文档随机变量D。

P(D):D的分布。

W:词条随机变量W。

P(W):W的分布。

P(D|W):已知W,D的条件分布。

P(wi,dj):提出词条wi,得到dj的概率。

F:所有文档相加的总次数。

Fij:词条i在文档j中出现的频率。

Fwi:词条wi在所有文档中的总频率。

Fdj:单个文档dj中的词数。

 

基于频率的概率模型:

我们假设词条wi提出的频率等于其出现的频率:

P(Wi)=Fwi/F

每个文档的出现概率与其包含词数成正比:

P(dj)=Fdj/F

提出wi以后,每个文档被取出的概率,也等于其包含wi频率比例:

P(dj|wi)=Fij/Fwi

Wi和dj同时发生的概率等于dj包含词条wi的频率:

P(wi,dj)=P(wi)*P(dj|wi)=Fwi/F*Fij/Fwi=Fij/F

H表示信息熵,I表示互信息,KL表示KL距离.

 

于是,再带入之前的信息论模型,得到:

熵:

KL距离:

PWI(互信息):

(1)

 

(2)

 

最后,根据互信息之间的关系,我们有这样一幅图:

中间为I(wi,di),横向求和得到I(W,dj);纵向求和得到I(wi,D).双向求和得到I(W,D)。

观察公式(1)(2),我们能够得到如下直观结论:

(1)         I(wi,dj)表征一个词条与一个文档之间的PWI,观察公式得到,他与FijilogFiji成正比,与logFwiFdj成反比。也就是文档中词条频率越大,权值越高;文档字数越少,权值越高;词条总的词数越少(也就是在其他文档中总的出现词数),权值越高。

借用tf-idf的思维,Fiji/F为其tf(词条频率项),为其idf(反文档频率项)

(2)         I(wi,D)表征一个词条对于整个文档的权值,可以用于整体文档的关键字提取。不过上式计算比较麻烦。在下面的近似模型中能够得到近似简化。

 

Tf-idf的近似概率模型

Tf-idf是基于经验的模型,甚至他的提出者都不能清楚地说明其理论依据。上面关于信息角度的模型分析,也是后来的人们分析得出的。其中关于基于频率的概率模型,也与一开始的tf-idf不同。

我们称上面的模型为准确模型,tf-idf的模型为近似模型。

之所以称tf-idf为近似模型,因为其根据实际运用,在概率建模的时候,做了如下的近似:

当每个文档中词数要求不严格,或者每个文档都有相似的个数时,我们可以通过1式来近似。

当每个文档的词数相近时,或者对于文档个数不要求时,我们也可以通过2式来近似。

上面的近似,也就是通过布尔值来代替频率,不过假设的部分仅限于idf ,即反文档频率部分(log部分)。

这样,就得到了基于如上假设的tf-idf模型。

Tf-idf最后得到的公式如下:

观察上面的公式,其分为两个部分,频率部分tf,以及后面的log,反文档部分。

第一部分与发生频率成正比,第二部分与相关文档数成反比。

准确的概率模型与tf-idf概率模型,根据不同的运用场景有着不同的用途,也有不同的效果。

 

 

词条序列模型:

上面的算法都是基于单一词条的模型,而我们一般的搜索都是基于一个词条序列的搜索。

关于词条序列的搜索,我们一般有两种假设模型:

1.   k个词条为独立同分布,这个分布由所有文档决定,也就是我们之前的假设。

2.   每个文档决定了其包含词条一个分布,并且我们假设所有k个词条选至文档集中的某个文档。

这两种假设如何解释呢?

前者我们假设k个词条都是独立同分布的,由所有文档共同生成。也就是已知P(dj|wi)和P(W)。这种方法就直接把之前的单个词条PWI相加即可。

后者我们假设k个词条全部取自一个文档,即P(wi/dj),P(D)已知,再来求PWI。这也就是贝叶斯的方法。

其公式分别为:

根据第一个模型建立的,也就是向量空间的方法。

根据第二个模型建立的,也就是贝叶斯方法。

通过概率模型,我们也把这两种方法所涉及的理论联系到了一起。

参考文献:An information-theoretic perspective of tf–idf measures

http://comminfo.rutgers.edu/~muresan/IR/Docs/Articles/ipmAizawa2003.pdf

抱歉!评论已关闭.