谷歌发明的名为PageRank的网页排名算法使得搜索结果的相关性有了质的飞跃,这一算法被公认为是文献检索中最大的贡献之一,并且被很多大学列为信息检索课程(Information Retrieval)的内容。这篇文章主要是在阅读吴军老师的《数学之美》后来对谷歌的搜索引擎做一个介绍。

一般来说,对于一个特定的查询,我们认为结果的排名主要取决于两方面因素,一方面是网页本身的质量,另一方面是网页内容与检索关键词的相关性。

PageRank网页排名算法

  1. 一般来说如果大家都认为这个东西是什么,那么这个东西就是什么。因而对于网页质量而言,我们一般认为一个网页被其它网页链接的次数越多,那么这个网页的质量就越高。

在互联网上,如果一个网页被很多其他网页所链接,说明它受到普遍的承认和信赖,那么它的排名就高。这就是PageRank的核心思想。

  1. 除此以外,不同排名的网页在决定该网页的排名中的权重也不一样,一个更权威的网站链接了这个网站,应当比其它网站链接该网站有更大的说服力。也就是说,链接到某个特定的网页的所有网页并不是一视同仁的,他们在决定该网页的排名过程中发挥作用大小是不一样的(权重),这一作用的大小,应该取决于该网页本身的质量(排名)。

计算网页的排名需要用到链接该网页的排名,这个问题就变成了“先有鸡还是先有蛋”的问题,为了解决这个问题,谷歌的创始人谢林给出了一种解决方法。首先赋予所有网页相同的排名,然后不断进行迭代,可以证明最后网页的排名会收敛于一个稳定的值。
实际运算过程中,由于网页数量过多,因此在计算矩阵乘法时计算量较大,这一问题主要通过稀疏矩阵的计算得到解决,由于笔者本身并未接触过稀疏矩阵,这里就不再做出说明。

网页排名算法的高明之处在于它把整个互联网当作一个整体来对待。这无意中符合了系统论的观点。相比之下,以前的信息检索大多把每一个网页当作独立的个体对待,大部分人当初只注意了网页内容和查询语句的相关性,忽略了网页之间的关系。

相关性

影响搜索引擎质量的另一重要因素是检索内容与网页内容相关性的衡量。这里主要介绍TF-IDF方法。对于一个检索内容,我们可以将它拆分成若干个关键词,然后去掉一些停止词(比如中文中的”的“、”是“等),然后对于某一个关键词语网页内容的相关性主要取决于两个因素,一个是该关键词在这个网页中出现的频率(Term-Frequency),另一个是这个关键词本身的常见程度(越常见的关键词在确定搜索结果中发挥的作用应该越小),后者又被称为“逆文档频率”(Inverse Document Frequency)。于是我们就得到了一个含有n个关键词的检索内容与某一指定的网页的相关性可以表示为:

\begin{equation} \begin{aligned} &\sum_n TF_n\cdot IDF_n\\ &IDF_n:\log(D/D_w)\\ &TF:\text{关键词的词频}\\ &IDF_n:\text{关键词的权重}\\ &D:\text{总的网页数}\\ &D_w:\text{出现该关键词的网页数目}\\ \end{aligned} \end{equation}

其实这里的权重就是一个特定条件下关键词的概率分布的交叉熵,TF-IDF(Term Frequency/Inverse Document Frequency)的概念被公认为信息检索中最重要的发明

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

写在最后

吴军老师在书中写到,“2007年我为Google黑板报写这一节时,技术和算法的重要性依然高于数据,因此确定网页和查询的相关性主要依靠算法。但是今天,由于商业搜索引擎已经有了大量的用户点击数据,因此,对搜索相关性贡献最大的是根据用户对常见搜索点击网页的结果得到的概率模型。如今,影响搜索引擎质量的诸多因素,除了用户的点击数据之外,都可以归纳成下面四大类。”
除了相关性和质量以外,又加入的两个大类是索引的完备程度和用户的偏好两个影响因素。