32丨PageRank(上):搞懂Google的PageRank算法

互联网发展到现在,搜索引擎已经非常好用,基本上输入关键词,都能找到匹配的内容,质量还不错。但在 1998 年之前,搜索引擎的体验并不好。早期的搜索引擎,会遇到下面的两类问题:

返回结果质量不高:搜索结果不考虑网页的质量,而是通过时间顺序进行检索;

容易被人钻空子:搜索引擎是基于检索词进行检索的,页面中检索词出现的频次越高,匹配度越高,这样就会出现网页作弊的情况。有些网页为了增加搜索引擎的排名,故意增加某个检索词的频率。

基于这些缺陷,当时 Google 的创始人拉里·佩奇提出了 PageRank 算法,目的就是要找到优质的网页,这样 Google 的排序结果不仅能找到用户想要的内容,而且还会从众多网页中筛选出权重高的呈现给用户。

Google 的两位创始人都是斯坦福大学的博士生,他们提出的 PageRank 算法受到了论文影响力因子的评价启发。当一篇论文被引用的次数越多,证明这篇论文的影响力越大。正是这个想法解决了当时网页检索质量不高的问题。

PageRank 的简化模型

我们先来看下 PageRank 是如何计算的。

我假设一共有 4 个网页 A、B、C、D。它们之间的链接信息如图所示:

这里有两个概念你需要了解一下。

出链指的是链接出去的链接。入链指的是链接进来的链接。比如图中 A 有 2 个入链,3 个出链。

简单来说,一个网页的影响力 = 所有入链集合的页面的加权影响力之和,用公式表示为:

u 为待评估的页面,BuBu 为页面 u 的入链集合。针对入链集合中的任意页面 v,它能给 u 带来的影响力是其自身的影响力 PR(v) 除以 v 页面的出链数量,即页面 v 把影响力 PR(v) 平均分配给了它的出链,这样统计所有能给 u 带来链接的页面 v,得到的总和就是网页 u 的影响力,即为 PR(u)。

所以你能看到,出链会给被链接的页面赋予影响力,当我们统计了一个网页链出去的数量,也就是统计了这个网页的跳转概率。

在这个例子中,你能看到 A 有三个出链分别链接到了 B、C、D 上。那么当用户访问 A 的时候,就有跳转到 B、C 或者 D 的可能性,跳转概率均为 1/3。

B 有两个出链,链接到了 A 和 D 上,跳转概率为 1/2。

这样,我们可以得到 A、B、C、D 这四个网页的转移矩阵 M:


我们假设 A、B、C、D 四个页面的初始影响力都是相同的,即:


当进行第一次转移之后,各页面的影响力