Pagerank及其数学原理:需要解释

22

我是一名对开发一个索引本国网页的搜索引擎感兴趣的学生。我已经研究了一段时间要使用的算法,并且已经确定HITS和PageRank是最好的选择。由于PageRank比HITS算法更加稳定(或者我读到的是这样的),所以我决定选择它。

我找到了无数与PageRank相关的文章和学术论文,但我的问题是,我不理解这些论文中构成该算法的大多数数学符号。具体来说,我不明白Google矩阵(即不可约、随机矩阵)是如何计算出来的。

我的理解基于以下两篇文章:

有没有人能用较少的数学符号提供基本的解释(例子会很好)?

提前感谢。


2
为什么会有关闭投票,这是一个关于算法的完全有效的问题? - johnc
3
确实。我希望我能投票支持“不要关闭”。 - Nick Johnson
1
如果您正在开发搜索引擎,并且想要使用PageRank,您可能需要咨询律师。至少在美国,PageRank受专利保护。我不确定在您的国家法律上如何运作,但您应该与确切了解情况的人(即您当地的律师)咨询。 - Daniel Pryden
我认为算法本身是无法被专利保护的,只有它们的实现方式可以。 - ilya n.
@Nick Johnson:是的,这是一个非常受欢迎的功能。您可以在此处投票支持它:http://meta.stackexchange.com/questions/125/how-about-a-vote-not-to-close-option-to-counter-the-vote-to-close - ire_and_curses
显示剩余2条评论
7个回答

26

PageRank的正式定义在引用文献的第4页中给出,用有趣的“E”符号表示数学方程(实际上是大写希腊字母Sigma。Sigma是字母“S”,在这里代表求和)。

简而言之,这个公式表明计算页面X的PageRank需要:

    对于指向此页面的所有反向链接(即指向X的所有页面)
    您需要计算一个值,
        链接到X的页面的PageRank [R'(v)]
        除以
        此页面上找到的链接数量[Nv]
        加上一些“排名来源”[E(u)],归一化为c
        (我们稍后会解释其目的。)
您需要对所有这些值进行求和[Σ] 最后,将其乘以一个常数[c] (此常数仅用于使PageRank的范围可管理)

这个公式的关键思想是:所有链接到给定页面X的网页都在增加它的“价值”。通过链接到某个页面,它们支持该页面。但是,这个“投票”的权重或多或少取决于两个因素:

  • 链接到X的页面的流行程度[R'(v)]
  • 链接到X的页面是否还链接到许多其他页面[Nv]

这两个因素反映了非常直观的想法:

  • 从领域内公认的专家处获得推荐信通常比从陌生人处获得更好。
  • 无论是谁提供了推荐,如果他们还向其他人提供了推荐,就会降低他们对您的推荐的价值。

正如您所注意到的,这个公式使用了某种循环引用,因为要知道X的页面范围,您需要知道链接到X的所有页面的PageRank。那么如何确定这些PageRank值呢?...... 这就是文档部分中解释的收敛问题的下一个问题。

实际上,通过从所有页面开始使用一些“随机”(或优选的“合理猜测”)PageRank值,并使用上述公式计算PageRank,这些新计算的值会“变得更好”,因为您反复迭代此过程几次。这些值会收敛,即它们每个都会越来越接近实际/理论值。因此,通过迭代足够多次,当最后一次迭代提供的值不再具有任何实际精度时,我们达到了这样的时刻。

现在......理论上很好,但关键是将此算法转换为等效但可更快地完成的内容。有几篇论文描述了如何完成这些任务和类似的任务。我手头没有这样的引用,但稍后会添加这些引用。请注意,它们确实将涉及大量线性代数。

编辑:承诺的话,以下是几篇关于计算页面排名的算法链接。 Efficient Computation of PageRank Haveliwala 1999 /// Exploiting the Block Structure of the Web for Computing PR Kamvar etal 2003 /// A fast two-stage algorithm for computing PageRank Lee et al. 2002 虽然上述链接的许多作者来自斯坦福大学,但很快就会意识到寻求高效的类似PageRank的计算方法是热门的研究领域。我意识到这些材料超出了OP的范围,但重要的是要暗示基本算法对于大型网络并不实用。
最后,提到一个非常易懂的文本(但有许多深入信息的链接),我想提一下Wikipedia的优秀文章
如果你认真对待这种事情,你可以考虑数学入门/复习课程,特别是线性代数,以及处理图形的计算机科学课程。顺便说一句,Michael Dorfman在这篇文章中提出了一个很好的建议,观看1806年的OCW视频讲座。
希望这能有所帮助...

谢谢你的建议,我会采纳的。 - Kennedy

9
如果您想要开发一个搜索引擎算法,我强烈建议您学习线性代数课程。如果没有现场课程,Gilbert Strang的MIT OCW课程非常好(视频讲座链接:http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/VideoLectures/)。
这样的课程肯定会让您理解您提供的文档中的数学符号--那篇论文中没有任何不会在第一年的线性代数课程中涵盖的内容。
我知道这不是您想要的答案,但这确实是对您最好的选择。当您没有掌握基本概念时,让别人试图向您解释每个符号或算法并不是一个很好的利用时间的方式。

5

3

您可能还想阅读David Austin撰写的关于Pagerank矩阵构建背后数学原理的介绍性教程,标题为How Google Finds Your Needle in the Web's Haystack。该教程从一个简单的例子开始,逐步深入,最终阐述了Pagerank矩阵的完整定义。


3

3
Duffymo发布了我认为最好的参考资料。在我大四的本科年级,我研究了页面排名算法。页面排名正在执行以下操作:
1. 将当前网页集定义为有限马尔可夫链的状态。
2. 定义从站点u转移到v的概率,其中从u到v存在一条出站链接为1/u_n,其中u_n是从u出站的链接数。
3. 假设上述定义的马尔可夫链是不可约的(这可以通过只稍微降低结果来实现)。
4. 可以证明,每个有限不可约马尔可夫链都具有一个稳态分布。将页面排名定义为稳态分布,也就是说,随着状态转换次数趋近于无穷大,保持在每个给定站点结束的随机粒子的概率向量。
谷歌使用略微变化的幂法来查找稳态分布 (幂法找到主要特征值)。除此之外,它并不复杂。它相当简单而优雅,可能是我所能想到的马尔可夫链最简单的应用之一,但它价值不菲!
因此,所有的页面排名算法所做的就是考虑网页的拓扑结构,以确定网站是否重要。网站拥有的入站链接越多,随机粒子在无限时间内停留在该网站的概率就越大。

0

如果你想学习更多关于页面排名的知识,但是又不想涉及太多数学,那么this是一个非常好的基础矩阵操作教程。我推荐给所有数学基础较弱但想深入了解排名算法的人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接