网页排序的任务中,最核心的难点在于判别网页质量。

将互联网上的网页模拟为一个节点,而这个网页的“出链”看做是指向其他节点的一条“有向边”,而“入链”则是其他节点指向这个节点的有向边。这样整个网络就变成了一张有向图。事情到此就显得容易解决了,因为我们用图论中最普通的有向图模型,完成了对此类问题的建模。具体的说,网页质量的评估是遵循以下两个假设的:

数量假设:一个节点(网页)的入度(被链接数)越大,页面质量越高
质量假设:一个节点(网页)的入度的来源(哪些网页在链接它)质量越高,页面质量越高

为了将这一分析数学化,拉里佩奇和谢尔盖布林将随机过程的“随机游走模型”

pn+1 = Hpn

pn = Hnp0

其中 p0 为网页的初始的pagerank向量 (在佩奇和布林的原始论文中, 这一几率分布被假定为是均匀分布),H则是描述马尔可夫过程中的转移概率分布的所谓转移矩阵

 问题及解决

如前所述, 佩奇和布林是用理论上为无穷长——时间的漫游后访问各网页的几率分布, 即 limn→∞pn, 来确定网页排序的。 这个定义要想管用, 显然要解决三个问题:

  极限 limn→∞pn 是否存在?

  如果极限存在, 它是否与 p0 的选取无关?

  如果极限存在, 并且与 p0 的选取无关, 它作为网页排序的依据是否真的合理?

普通马尔可夫过程中的转移矩阵通常是随机矩阵 (stochastic matrix), 即每一列的矩阵元之和都为 1 的矩阵,而我们的矩阵 H 却可能有一些列是零向量, 从而矩阵元之和为 0, 它们对应于那些没有对外链接的网页, 即所谓的 “悬挂网页” (dangling page)。 因为任何一个 “悬挂网页” 都能象黑洞一样, 把其它网页的几率 “吸收” 到自己身上 (因为虚拟用户一旦进入那样的网页, 就会由于没有对外链接而永远停留在那里), 这显然是不合理的。 这种不合理效应是如此显著, 以至于在一个连通性良好的互联网上, 哪怕只有一个 “悬挂网页”, 也足以使整个互联网的网页排序失效, 可谓是 “一粒老鼠屎坏了一锅粥”。

为了解决这些问题, 佩奇和布林对虚拟用户的行为进行了修正。 首先, 他们意识到无论真实用户还是虚拟用户, 当他们访问到 “悬挂网页” 时, 都不应该也不会 “在一棵树上吊死”, 而是会自行访问其它网页。 对于真实用户来说, 自行访问的网页显然与各人的兴趣有关, 但对于在平均意义上代表真实用户的虚拟用户来说, 佩奇和布林假定它将会在整个互联网上随机选取一个网页进行访问。 用数学语言来说, 这相当于是把 H 的列向量中所有的零向量都换成 e/N (其中 e 是所有分量都为 1 的列向量, N 为互联网上的网页总数)。 如果我们引进一个描述 “悬挂网页” 的指标向量 (indicator vector) a, 它的第 i 个分量的取值视 Wi 是否为 “悬挂网页” 而定——如果是 “悬挂网页”, 取值为 1, 否则为 0——并用 S 表示修正后的矩阵, 则:

S = H + eaT/N

显然, 这样定义的 S 矩阵的每一列的矩阵元之和都是 1, 从而是一个不折不扣的随机矩阵。 这一修正因此而被称为随机性修正 (stochasticity adjustment)。 这一修正相当于剔除了 “悬挂网页”, 从而可以给上述第三个问题带来肯定回答 (当然, 这一回答没有绝对标准, 可以不断改进)。 不过, 这一修正解决不了前两个问题。 为了解决那两个问题, 佩奇和布林引进了第二个修正。 他们假定, 虚拟用户虽然是虚拟的, 但多少也有一些 “性格”, 不会完全受当前网页所限, 死板地只访问其所提供的链接。 具体地说, 他们假定虚拟用户在每一步都有一个小于 1 的几率 α 访问当前网页所提供的链接, 同时却也有一个几率 1-α 不受那些链接所限, 随机访问互联网上的任何一个网站。 用数学语言来说 (请读者自行证明), 这相当于是把上述 S 矩阵变成了一个新的矩阵 G:

G = αS + (1-α)eeT/N

这个矩阵不仅是一个随机矩阵, 而且由于第二项的加盟, 它有了一个新的特点, 即所有矩阵元都为正 (请读者想一想, 这一特点的 “物理意义” 是什么?), 这样的矩阵是所谓的素矩阵 (primitive matrix)。 这一修正因此而被称为素性修正 (primitivity adjustment)。

经过这两类修正, 网页排序的计算方法就变成了:

pn = Gnp0

这个算法能给上述问题提供肯定答案吗? 是的, 它能。 因为随机过程理论中有一个所谓的马尔可夫链基本定理 (fundamental theorem of Markov chains), 它表明在一个马尔可夫过程中, 如果转移矩阵是素矩阵, 那么上述前两个问题的答案就是肯定的。 而随机性修正已经解决了上述第三个问题, 因此所有问题就都解决了。 如果我们用 p 表示 pn 的极限, 则 p 给出的就是整个互联网的网页排序——它的每一个分量就是相应网页的访问几率, 几率越大, 排序就越靠前。

 

链接

https://blog.csdn.net/guoziqing506/article/details/70702449

https://www.changhai.org/articles/technology/misc/google_math.php

posted on 2018-11-03 11:15  wen_robert  阅读(492)  评论(0编辑  收藏  举报