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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/select_alter_drop/article/details/82889624

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

大致思路

  • 第一步,在索引中找到包含这三个词的网页(这大约能返回千万以上个结果)
  • 第二步,给这些网页排序:
    • 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 ,他们在一个特定网页中的词频分别为: T F 1 , T F 2 , T F 3 , . . . , T F N TF_1,TF_2,TF_3,...,TF_N ,那么这个查询和该网页的相关性(相似度)就是各个关键词在网页中的总词频:
T F 1 + T F 2 + . . . + T F N TF_1+TF_2+...+TF_N

二、加入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})
D w D_w 表示关键词 w w 出现在不同网页的次数, D D 表示全部网页数目。如果一个关键词大量出现在网页中,就是看到它仍然不会清楚要找什么内容,其对应的权重越小;如果出现在很少的网页,通过它就很容易锁定目标,权重也就应该很大。

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

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

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

1)一个查询(query)中的每一个关键词(key word) 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}
P ( w ) P(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)}

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

3)基本假设:

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

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

D D 为全部网页数

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

D ( w ) D(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)}

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)}

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

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

四、搜索引擎中的应用

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

猜你喜欢

转载自blog.csdn.net/select_alter_drop/article/details/82889624