显然与各人的兴趣有关,但对于在平均意义上代表真实用户的虚拟用户来说,佩奇和布林假定它将会在整个互联网上随机选取一个网页进行访问。用数学语言来说,这相当于是把 h 的列向量中所有的零向量都换成 e/n (其中 e 是所有分量都为 1 的列向量, n 为互联网上的网页总数)。如果我们引进一个描述“悬挂网页”的指标向量(indicator vector) a,它的第 i 个分量的取值视 wi 是否为“悬挂网页”而定,如果是“悬挂网页”,取值为 1,否则为零,并用 s 表示修正后的矩阵,则:s = h + aet/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 给出的就是整个互联网的网页排序——它的每一个分量就是相应网页的访问几率,几率越大,排序就越靠前。
这样,佩奇和布林就找到了一个不仅含义合理,而且数学上严谨的网页排序算法,他们把这个算法称为 pagerank,不过要注意的是,虽然这个名称的直译恰好是“网页排序”,但它实际上指的是“佩奇排序”,因为其中的“page”不是