14.10 谷歌网页排名算法

本节简要介绍一下谷歌搜索引擎使用的原始版本的网页排名算法,它是无监督学习方法在近期的一个引人关注的应用。

假设我们有 $N$ 个网页,我们想要按重要程度给这些网页排序。例如,这 $N$ 个网页可能都包含了一个“统计学习”的字符,我们可能需要按照它们对某个网页搜索用户的相关程度进行排序。

网页排名算法(PageRank algorithm) 认为如果有很多其他网页指向(链接)了这个网页,那么这个网页就是重要的。不过指向某个指定网页的那些含有链接的网页并不是都被平等处理的:算法同时也会考虑链接网页的重要性(网页排名),以及链接网页中包含的外链(out-links)数量。网页排名更高的链接网页会被赋予更大的权重,而另一方面外链更多的网页会被赋予更小的权重。这些思想就会得出一个对网页排名的递归定义,下面将详细说明。

若网页 $j$ 指向了网页 $i$,则令 $L_{ij}=1$,否则为零。令 $c_j=\sum_{i=1}^NL_{ij}$ 表示网页 $j$ 所指向网页的数量(即外链网页数量)。那么谷歌网页排名 $p_i$ 可通过以下的递归关系来定义:

$$p_i = (1-d) + d \sum_{j=1}^N (\frac{L_{ij}}{c_j}) p_j \tag{14.107}$$

其中的 $d$ 为一个正的常数(貌似设置为了 0.85)。

其想法是认为网页 $i$ 的重要程度等于指向这个网页的其他网页的重要程度之和。其中的求和中使用了权重 $1/c_j$,即每个页面对页面中的外链页面平分了和为 1 的权重。常数 $d$ 保证了每个页面的网页排名不小于 $1-d$。以上可写成矩阵的形式:

$$\mathbf{p} = (1-d)\mathbf{e} + d \cdot \mathbf{L} \mathbf{D}_c^{-1} \mathbf{p} \tag{14.108}$$

其中的 $\mathbf{e}$ 为 $N$ 个 1 的向量,并且 $\mathbf{D}_c=\operatorname{\mathbf{c}}$ 为以 $c_j$ 为对角元素的对角矩阵。引入一个标准化条件 $\mathbf{e}^T\mathbf{p}=N$(即平均的网页排名为 1),则可将式 14.108 写为:

$$\begin{align} \mathbf{p} &= [(1-d)\mathbf{e}\mathbf{e}^T/N + d\mathbf{L}\mathbf{D}_c^{-1}]\mathbf{p} \\ &= \mathbf{A}\mathbf{p} \tag{14.109}\end{align}$$

其中的矩阵 $\mathbf{A}$ 代表方括号中间的表达式。

利用其与马尔科夫链的关系(下文将提到),可证明矩阵 $\mathbf{A}$ 有一个等于 1 的实数特征值,并且这是它最大的特征值。这就意味着我们可通过幂迭代法来寻找 $\hat{\mathbf{p}}$:取某个初始值 $\mathbf{p}=\mathbf{p}_0$,然后迭代计算:

$$\mathbf{p}_k \leftarrow \mathbf{A}\mathbf{p}_{k-1}; \mathbf{p}_k \leftarrow N \frac{\mathbf{p}_k}{\mathbf{e}^T\mathbf{p}_k} \tag{14.110}$$

最终当 $\hat{\mathbf{p}}$ 不变时,就得到了网页排名的结果。

在 Page et al. (1998) 当初的论文中,作者假设网页排名是一个用户行为的模型,其中假设一个随机的网页浏览者在随机的点击页面上的链接,而没有关注其中的内容。这个浏览者在网络上做了一个随机行走,在页面中的外链里随机地选择下一个页面。而常数 $1-d$ 则是该浏览者没有点击链接而是随机地跳到另一个网页的概率。

一些网页排序算法的说明中将定义式 14.107 的第一项写为 $(1-d)/N$,这样就可以与随机浏览者的模型解释更一致。那么网页排名的解(除以 $N$ 之后)就是 $N$ 个网页上的一个不可约的、非周期的马尔科夫链的平稳分布。

定义式 14.107 也可以被当成是一个不可约的、非周期的马尔科夫链,但其转移概率与上文中 $(1-d)/N$ 版本的定义的不同。将网页排名模型视为一个马尔科夫链,可以帮助我们理解为什么矩阵 $\mathbf{A}$ 的最大实数特征值为 1。由于 $\mathbf{A}$ 中的元素都是正数并且每一列的和为一,所以从马尔科夫链的理论中可知它有一个唯一的特征向量并且对应的特征值为一,这个特征向量也就是马尔科夫链的平稳分布(Bremaud, 1999)。

**图 14.46**:网页排名算法,一个小型网络的例子。
图 14.46:网页排名算法,一个小型网络的例子。

图 14.46 演示了一个小型的网络。链接矩阵为:

$$\mathbf{L} = \begin{pmatrix} 0 & 0 & 1 & 0 \\ 1 & 0 & 0 & 0 \\ 1 & 1 & 0 & 1 \\ 0 & 0 & 0 & 0 \end{pmatrix}\tag{14.111}$$

外链的数量为 $\mathbf{c}=(2,1,1,1)^T$。

网页排名算法的解为 $\hat{\mathbf{p}}=(1.49,0.78,1.58,0.15)^T$。由于没有进入到网页 4 的链接,所以它的网页排名是最小值,等于 0.15。

上一页