如何查找关于“原子能的应用”的网页?
大致思路
- 第一步,在索引中找到包含这三个词的网页(这大约能返回千万以上个结果)
- 第二步,给这些网页排序:
- 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
TF1∗IDF1+TF2∗IDF2+...+TFN∗IDFN
三、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=Dw∑TF(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 ) < M c(w)<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)}
TF−IDF(w)=I(w)−TF(w)logc(w)M
可以看出 T F − I D F TF-IDF TF−IDF 和 信息量 之间的差异就是公式第二项,因为 c ( w ) < M c(w)<M c(w)<M,所以第二项大于 0 ,它是 c ( w ) c(w) c(w)(关键词在文献中平均出现的次数)的递减函数,即:
- 一个词的信息量 I ( w ) I(w) I(w)越大, T F − I D F TF-IDF TF−IDF值越大;
- 关键词 w w w命中的文献中 w w w平均出现的次数越多,第二项越小, T F − I D F TF-IDF TF−IDF值越大
四、搜索引擎中的应用
如果给定一个查询,结合网页排名(PageRank)算法,那么有关网页的综合排名大致由相关性和网页排名的乘积决定;