首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

机器学习 PageRank算法原理

01

网页排名主要考虑因素

学术界评判学术论文重要性通用方法是看论文的引用次数,原理很多时候都是可以通用的,学术界的思想可以应用到工业界。

google创始人拉里佩奇等将衡量论文重要性的方法应用到了网页的排名上,提出:如果一个网页A被很多其他网页链接到地话,说明网页A比较重要,也就是A的PageRank值会相对较高,意思是有很多其他网页指向这个网页A,也就是说网页A的入度比较大,当然如果链接到网页A的那些网页的PageRank都比较高,那无疑更加表明网页A的PageRank会很高,因为不仅有量,还有质。

02

以此为据,建立图模型

假定一共只有4个网页,是的,一共只有4个网页,现在要求它们的PageRank,我们还知道它们之间的引用关系如下所示:

可以看到网页A被网页B和C都引用了,网页B被网页A和D引用了,网页C被网页A和D引用,网页D被网页A和B引用。

如何求出网页A的PageRank呢?以下PageRank简写为PR

网页A的PR值就可以表示为:PR(A) = PR(B)+PR(C),这个公式是能准确地刻画出网页A的PR吗,假象你现在正在读网页B,文章末尾有两个链接,分别指向网页A和D,此时,你进入网页A的概率是0.5,如果你在网页C,那么此时你点到链接A的概率是1.0,所以PR(A) = 0.5PR(B)+1.0*PR(C),我们已经往前走了一步,但是这不是终点,为什么?

我们在浏览B网页的时候,读到文章末尾后,虽然给出了两个链接,但是你可能是一个比较另辟蹊径的人,根本不关心给出的链接,直接在地址栏中输入其他网址,直接到C网页了。

这的确是个问题,怎么解决呢?

03

意外之喜

当你停留在B网页时,你可能没有点击里面的两个链接,这个的意思是我们要对PR(B)的系数0.5做一个惩罚,比如乘以一个惩罚系数0.85,这样PR(A)=0.85*0.5*PR(B)+0.85*1.0*PR(C),既然你没有通过两个内部链接找到A,但是在世界的另一个角,一个叔叔直接在地址栏输入了一个网址,直接找到了网页A,这对A来讲,是意外之喜,所以PR(A)还要考虑这个因素,进一步修正PR(A)为,

PR(A)=0.85 * 0.5 * PR(B) + 0.85 *1.0 * PR(C) +(1-0.85) / 4

其中,4是网页的总个数

04

将公式抽象

上面这个公式,其实就是最终的求某个网页PR的公式了,只不过总网页的个数为4个,还假定了4个网页的链接关系,为了不失一般性,据此,推理出一般性的公式:

其中,

Mpi描述了指向网页Pi的所有网页集合,L(Pj)是网页Pj的出链数目,N是网页的总数,a是惩罚因子,一般取值为0.85.

根据上面的公式,我们可以计算每个网页的PR值,在不断迭代趋于平稳的时候,即为最终结果,关于算法的Map-Reduce实现代码,请看接下来推送。

《实例》阐述算法,通俗易懂,助您对算法的理解达到一个新高度。包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战。期待您的到来!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180114G0HURS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券