《数学之美》第11章—如何确定网页和查询的相关性(TF-IDF算法)

如何查找关于“原子能的应用”的网页?

大致思路
  • 第一步,在索引中找到包含这三个词的网页(这大约能返回千万以上个结果)
  • 第二步,给这些网页排序:
    • 1)把网页本身质量好的排在前面 (Page Rank 算法)
    • 2)与查询关键词“原子能应用”相关性高的网页排在前面(TF-IDF 算法)

问题描述

如何度量查询(query)与网页的相关性?

解决过程

一、使用“总词频”

“原子能的应用”可以分为三个关键词“原子能、的、应用”。

1、直觉上,关键词出现次数较多的网页应该比出现较少的网页相关性高;

2、 存在问题:那就是篇幅长的网页比篇幅短的网页占便宜,长的网页其包含地关键词更多一些;

3、 所以,需要根据网页的长度,对关键词的次数进行归一化: **
- 用关键词的次数除以网页的总词数——即
关键词的频率【Term Frequency】**

所以,当一个查询包含N个关键词 w 1 , w 2 , w 3 , . . . , w N w_1,w_2,w_3,...,w_N w1,w2,w3,...,wN,他们在一个特定网页中的词频分别为: T F 1 , T F 2 , T F 3 , . . . , T F N TF_1,TF_2,TF_3,...,TF_N TF1,TF2,TF3,...,TFN,那么这个查询和该网页的相关性(相似度)就是各个关键词在网页中的总词频:
T F 1 + T F 2 + . . . + T F N TF_1+TF_2+...+TF_N TF1+TF2+...+TFN

二、加入IDF权重

4、 存在问题:
1) “停止词 Stop Word”(的,是,地,和…),在总词频中占比会非常高,并且其对确定网页主题几乎没有什么用,所以在度量相关性的时候不应该考虑他们的词频;
2)“通用词”与“专用词”(应用与原子能),在相关性排序中各自的重要程度又不相同;

5、所以,需要对每一个词赋予一个权重,其满足以下条件
1)一个词预测主题的能力越强,权重越大,反之权重越小;
2)停止词的权重为 0 ;

6、信息检索中,“逆文本频率指数”(Inverse Document Frequency):
l o g ( D D i ) log(\frac{D}{D_i}) log(DiD)
D w D_w Dw表示关键词 w w w出现在不同网页的次数, D D D表示全部网页数目。如果一个关键词大量出现在网页中,就是看到它仍然不会清楚要找什么内容,其对应的权重越小;如果出现在很少的网页,通过它就很容易锁定目标,权重也就应该很大。

例如,假设中文网页数 D = 10 亿 D=10亿 D=10亿,停止词“的”在的网页 D w = 10 亿 D_w=10亿 Dw=10亿,那么它的 I D F = l o g ( 10 亿 10 亿 ) = 0 IDF=log(\frac{10亿}{10亿})=0 IDF=log(10亿10亿)=0,加入“原子能”出现在200万个网页中,则它的权重 I D F = l o g ( 500 ) = 8.96 IDF=log(500)=8.96 IDF=log(500)=8.96

7、所以,利用IDF,相关性的计算公式就由词频简单的求和变成了加权求和:
T F 1 ∗ I D F 1 + T F 2 ∗ I D F 2 + . . . + T F N ∗ I D F N TF_1*IDF_1+TF_2*IDF_2+...+TF_N*IDF_N TF1IDF1+TF2IDF2+...+TFNIDFN

三、IDF概念的理论支撑——信息论

8、 IDF的概念,来自于特定条件下关键词的概率分布的交叉熵(即,信息论)

1)一个查询(query)中的每一个关键词(key word) w w w 的权重应该反映这个词对查询来讲提供了多少信息:
> 可以使用每个词的信息量作为他的权重

I ( w ) = − P ( w ) l o g P ( w ) = − T F ( w ) N l o g T F ( w ) N I(w) = - P(w)logP(w) = - \frac{TF(w)}{N}log\frac{TF(w)}{N} I(w)=P(w)logP(w)=NTF(w)logNTF(w)
P ( w ) P(w) P(w)是关键词 w w w在语料库中的词频(概率);N是整个语料库的大小,是个可以省略的常数。则上面公式可以简化成:
I ( w ) = T F ( w ) l o g N T F ( w ) I(w) = TF(w)log\frac{N}{TF(w)} I(w)=TF(w)logTF(w)N

2)上式,有一个缺陷:两个出现频率TF相同的词,当一个集中出现在特定文章中,而另一个分散在多篇文献中,显然第一个词有更高的分辨率,它的权重应该更大。显然,更好的权重公式应该反映出关键词的分辨率。

3)基本假设:

  • 每个文献大小基本相同,均为 M M M个词,即:

M = N D = ∑ w T F ( w ) D M = \frac{N}{D}=\frac{\sum\limits_w TF(w)}{D} M=DN=DwTF(w)

D D D为全部网页数

  • 一个关键词在文献中一旦出现,不论次数多少,贡献都等同。即,一个词要么在一个文献中出现,且次数为 c ( w ) = T F ( w ) D ( w ) c(w)=\frac{TF(w)}{D(w)} c(w)=D(w)TF(w),要么是 0 。( c ( w ) &lt; M c(w)&lt;M c(w)<M

D ( w ) D(w) D(w) w w w出现的网页数

4)根据假设,可以得到关键词的信息量
I ( w ) = T F ( w ) l o g N T F ( w ) = T F ( w ) l o g M D c ( w ) D ( w ) = T F ( w ) l o g D D ( w ) + T F ( w ) l o g M c ( w ) I(w) = TF(w)log\frac{N}{TF(w)} \\ = TF(w)log\frac{MD}{c(w)D(w)} \\ = TF(w)log\frac{D}{D(w)}+TF(w)log\frac{M}{c(w)} I(w)=TF(w)logTF(w)N=TF(w)logc(w)D(w)MD=TF(w)logD(w)D+TF(w)logc(w)M

5)可以得到:
T F − I D F ( w ) = I ( w ) − T F ( w ) l o g M c ( w ) TF-IDF(w) = I(w) - TF(w)log\frac{M}{c(w)} TFIDF(w)=I(w)TF(w)logc(w)M

可以看出 T F − I D F TF-IDF TFIDF 和 信息量 之间的差异就是公式第二项,因为 c ( w ) &lt; M c(w)&lt;M c(w)<M,所以第二项大于 0 ,它是 c ( w ) c(w) c(w)(关键词在文献中平均出现的次数)的递减函数,即:

  • 一个词的信息量 I ( w ) I(w) I(w)越大, T F − I D F TF-IDF TFIDF值越大;
  • 关键词 w w w命中的文献中 w w w平均出现的次数越多,第二项越小, T F − I D F TF-IDF TFIDF值越大
四、搜索引擎中的应用

如果给定一个查询,结合网页排名(PageRank)算法,那么有关网页的综合排名大致由相关性和网页排名的乘积决定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值