基于图的评级算法——PageRank
2016-08-20 13:55
169 查看
简介
PageRank算法由Google创始人提出,用来给互联上的网页进行重要性打分。
细说
PageRank算法对人们在网页间跳转的行为进行建模并根据人们最终停留在某一个网页的概率来对这个网页的重要性进行打分:人们在上网的时候,在任何一个网页上,可能通过点击网页上的超链接跳转到下一个页面,也可能在浏览器地址栏输入其它网页的地址跳转到下一个页面,在若干次跳转之后,人们停留在某个网页的概率作为这个网页的重要性分值。接下来,我们推导出这个模型的数学公式。
人们,在一个有出链(指向其它网页的链接)的网页i上,点击网页i上的超链接跳转到下一个页面的概率是d,在浏览器地址栏输入网页地址跳转到下一个页面的概率为1 - d,在一个没有出链的网页i上,点击网页i上的超链接跳转到下一个页面的概率是0,在浏览器地址栏输入网页地址跳转到下一个页面的概率为1;网页i上的超链接数(出链数)定义为Oi,则从网页i,通过点击超链接方式,跳转到到它指向的某个网页的概率为1Oi,跳转到它没指向的网页的概率为0;假设整个互联网上有m个网页,从网页i,通过在浏览器地址栏输入网址的方式,跳转到任意网页的概率为1m。于是,我们得到从网页i跳转到网页j的转移概率为:
Pij={(1−d)1m+d1Oi,1m,xOi>0Oi=0
所有网页间的转移概率构成一个m x m的转移概率矩阵:
A=⎡⎣⎢⎢⎢⎢⎢P11P21⋮Pm1P12P22⋮Pm2⋯⋯⋱⋯P1mP23⋮Pmm⎤⎦⎥⎥⎥⎥⎥
到这里,我们终于明白,人们浏览网页的行为就是一个马尔可夫链,网页就是状态,A就是转移概率矩阵。
求解
既然我们已经知道PageRank算法就是人们浏览网页的一个马尔可夫链,那么计算,在若干次跳转之后,人们停留在某个网页的概率,也就是计算马尔可夫链的n步转移概率,具体计算方式见基于图的评级算法基础——马尔可夫链。我们还知道,矩阵(AT)k(A转置的k次方)的所有元素都大于0,所以只要人们跳转此数足够多,停留在某一个网页的概率将会是一定的。
为什么PageRank算法可行
其实,也就是问,为什么可以把人们最终停留在某个网页的概率值作为这个网页的重要性评分?根据计算网页间的转移概率和计算n步转移概率的公式可知,一个网页的分值之所以和另一个网页不同,是因为这个网页被别的网页指向的次数以及指向这个网页的的网页自身的重要性(活着说被人们停留的概率),这符合了人们认为一个人重要的事实:被越多重要的人推荐的人越重要,网页通过链接指向来表示推荐。其实,还是有一种人也很重要,就是能向你推荐很多重要的人的人,这种人就像武侠电视剧里面的包打听。接下来介绍的HITS算法就采用了这两种方式来衡量图中节点的两种重要性。
参考资料:
《概率导论》第2版,(美)伯特瑟卡斯,(美)齐齐克利斯 著,郑忠国,童行伟 译
《Web数据挖掘》第2版,Bing Liu 著, 俞勇 译
《线性代数及其应用》第3版,(美)莱(Lay,D.C.) 著,刘深泉 等译
PageRank算法由Google创始人提出,用来给互联上的网页进行重要性打分。
细说
PageRank算法对人们在网页间跳转的行为进行建模并根据人们最终停留在某一个网页的概率来对这个网页的重要性进行打分:人们在上网的时候,在任何一个网页上,可能通过点击网页上的超链接跳转到下一个页面,也可能在浏览器地址栏输入其它网页的地址跳转到下一个页面,在若干次跳转之后,人们停留在某个网页的概率作为这个网页的重要性分值。接下来,我们推导出这个模型的数学公式。
人们,在一个有出链(指向其它网页的链接)的网页i上,点击网页i上的超链接跳转到下一个页面的概率是d,在浏览器地址栏输入网页地址跳转到下一个页面的概率为1 - d,在一个没有出链的网页i上,点击网页i上的超链接跳转到下一个页面的概率是0,在浏览器地址栏输入网页地址跳转到下一个页面的概率为1;网页i上的超链接数(出链数)定义为Oi,则从网页i,通过点击超链接方式,跳转到到它指向的某个网页的概率为1Oi,跳转到它没指向的网页的概率为0;假设整个互联网上有m个网页,从网页i,通过在浏览器地址栏输入网址的方式,跳转到任意网页的概率为1m。于是,我们得到从网页i跳转到网页j的转移概率为:
Pij={(1−d)1m+d1Oi,1m,xOi>0Oi=0
所有网页间的转移概率构成一个m x m的转移概率矩阵:
A=⎡⎣⎢⎢⎢⎢⎢P11P21⋮Pm1P12P22⋮Pm2⋯⋯⋱⋯P1mP23⋮Pmm⎤⎦⎥⎥⎥⎥⎥
到这里,我们终于明白,人们浏览网页的行为就是一个马尔可夫链,网页就是状态,A就是转移概率矩阵。
求解
既然我们已经知道PageRank算法就是人们浏览网页的一个马尔可夫链,那么计算,在若干次跳转之后,人们停留在某个网页的概率,也就是计算马尔可夫链的n步转移概率,具体计算方式见基于图的评级算法基础——马尔可夫链。我们还知道,矩阵(AT)k(A转置的k次方)的所有元素都大于0,所以只要人们跳转此数足够多,停留在某一个网页的概率将会是一定的。
为什么PageRank算法可行
其实,也就是问,为什么可以把人们最终停留在某个网页的概率值作为这个网页的重要性评分?根据计算网页间的转移概率和计算n步转移概率的公式可知,一个网页的分值之所以和另一个网页不同,是因为这个网页被别的网页指向的次数以及指向这个网页的的网页自身的重要性(活着说被人们停留的概率),这符合了人们认为一个人重要的事实:被越多重要的人推荐的人越重要,网页通过链接指向来表示推荐。其实,还是有一种人也很重要,就是能向你推荐很多重要的人的人,这种人就像武侠电视剧里面的包打听。接下来介绍的HITS算法就采用了这两种方式来衡量图中节点的两种重要性。
参考资料:
《概率导论》第2版,(美)伯特瑟卡斯,(美)齐齐克利斯 著,郑忠国,童行伟 译
《Web数据挖掘》第2版,Bing Liu 著, 俞勇 译
《线性代数及其应用》第3版,(美)莱(Lay,D.C.) 著,刘深泉 等译
相关文章推荐
- 基于图的评级算法——HITS
- 基于图的评级算法基础——马尔可夫链
- 基于PageRank的作弊检测算法
- 推荐算法:基于图的算法:pagerank
- VIPS:基于视觉的页面分割算法[微软下一代搜索引擎核心分页算法]
- 基于WGS和CBC测序策略的DNA序列拼接算法研究(五)
- 基于STL的字符串最大长度匹配算法
- 基于WGS和CBC测序策略的DNA序列拼接算法研究 转载zhanghu1228的专栏
- 基于WGS和CBC测序策略的DNA序列拼接算法研究(四)
- 基于八叉树快速分类的Shear-Warp交互式体绘制算法
- 基于临界灰度值和亚像素的“边缘寻找”算法
- 基于关系数据库系统链式存储的树型结构数据,求某结点下的子树所有结点算法(t-sql语言实现)
- 一种精确的基于DHT的p2p网络搜索算法与网络拓扑模型
- 基于临界灰度值和亚像素的“边缘寻找”算法
- 基于时间片优先级排课算法描述与分析
- 基于视觉的Web页面分页算法VIPS的实现源代码下载
- 一种基于直方图模式的运动目标实时跟踪算法
- 基于WGS和CBC测序策略的DNA序列拼接算法研究(三)
- 基于Bresenahams的画直线算法(J2ME版)
- 基于java的InputStream.read(byte[] b,int off,int len)算法学习!