补课:PageRank

最近连续听到PageRank算法,久闻其名,不闻其详,内心虚得很,今儿补补课。html

PageRank算法的网络资料很是全面,毕竟是将近二十年的经典算法,算法细节能够参考文末连接,这里简单说说个人理解。算法

PageRank要解决的问题是如何给网页排序,它的思路是,利用网页间的连接关系构造有向图,对有向图的全部节点作重要性排序。网络

重要性也能够理解为影响力,以一个分数的形式来表达,分数从高到低就构成了一个排序。htm

怎么定义影响力?从节点的流出和流入分别定义:对于节点A和B,若是指向A的节点多于指向B的节点,则A的分数更高;若是A的分数比B的分数更高,则A指向的节点比B指向的节点分数更高。blog

把上面的原则转化为迭代规则,以几率值表示分数,就能够把各节点的分数计算过程建模为一个Markov链的收敛过程,实现了这个收敛过程就计算出了图中各节点的分数。排序

固然,实际问题中要处理的细节还有不少,好比没有外链的网页如何处理,证实该模型是Markov过程等等,能够参考文末连接。get

本质上讲,PageRank是给有向图的节点作重要性排序,比网页连接更常见的有向图是社交关系图,因此PageRank拿来作社交网络的节点排序应当也是能够的。pdf

PageRank是工程思惟的典型表明,建模思路简洁易懂,代码实现也几乎没有难度,惟一有深度的部分是Markov链的证实,这实际上是随机过程当中最多见最基础的证实题。基础

你瞧,就是这样一个简洁实用的算法,孵化出了一家伟大的公司,改变了世界。co

这就是简洁的力量,工程的美。

 

参考文献:

http://www.javashuo.com/article/p-yejonzzd-gv.html

http://ilpubs.stanford.edu:8090/422/1/1999-66.pdf (提出PageRank算法的论文)

相关文章
相关标签/搜索