你管这叫 PageRank 算法

算法简介

  PageRank(网页排名),用于衡量网页的重要程度的Google专有算法。最早的搜索引擎采用的是分类目录的方法,即通过人工进行网页分类并整理出高质量的网站。后来网页越来越多,人工分类已经不现实了。搜索引擎进入了文本检索的时代,即计算用户查询关键词与网页内容的相关程度来返回搜索结果。这种方法突破了数量的限制,但是搜索结果不是很好。因为总有某些网页来回地倒腾某些关键词使自己的搜索排名靠前。
  谷歌的两位创始人,当时还是美国斯坦福大学研究生的佩(Larry Page)和布林(Sergey Brin)开始了对网页排序问题的研究。他们借鉴了学术界评判学术论文重要性的通用方法, 那就是看论文的引用次数。由此想到网页的重要性也可以根据这种方法来评价,于是PageRank的核心思想就诞生了。

核心思想

  一、如果一个网页被很多其他网页链接到的话说明这个网页比较重要,也就是PageRank值会相对较高。
  二、如果一个PageRank值很高的网页链接到一个其他的网页,那么被链接到的网页的PageRank值会相应地因此而提高。

算法原理

一、给每个网页一个初始PageRank值。
二、通过(投票)算法不断迭代,直至达到平稳分布为止。

  PR值物理意义上为一个网页被访问的概率,所以PR初始值可以假设为 1/N ,其中N为网页总数。一般情况下,所有网页的PR值的总和为1。(如果不为1的话也不是不行,最后算出来的不同网页之间PR值的大小关系仍然是正确的,只是不能直接地反映概率)。

网页PR值计算公式为:

  在这里插入图片描述

例子

  假设一个由只有4个页面组成的集合:A,B,C和D。如果所有页面都链向A,那么A的PR值将是B,C及D的和。

  在这里插入图片描述
  **  PR( A ) = PR( B ) + PR( C ) + PR( D )**
  假设B也有链接到C,并且D也有链接到包括A的3个页面。一个页面不能投票2次。所以B给每个页面半票。以同样的逻辑,D投出的票只有三分之一算到了A的PR上。

  在这里插入图片描述
  3.png)

换句话说,根据链出总数平分一个页面的PR值。
  PR(A) = (PR(B))/(L(B)) +   (PR(C))/(L(C)) + (PR(D))/(L(D))

根据多次迭代后,PR值逐渐收敛稳定。

特殊情况

  1、排名泄露:如果存在网页没有出度链接,经过多次迭代,所有网页的PR值都会趋于0,产生排名泄露问题。
  2、排名下沉:如果存在网页没有入度链接,经过多次迭代,该网页的PR值将趋于0,产生排名下沉问题。
  3、排名上升:如果一个网页只有对自己的出链,或者几个网页的出链形成一个循环圈。那么在多次迭代过程后,这一个或几个网页的PR值将只增不减。

例子

  在这里插入图片描述
  为了解决这个问题,我们假设一个随机浏览网页的人,当他到达C网页后,假定他有一个确定的概率(1–a)会输入网址直接跳转到一个随机的网页,并且跳转到每个网页的概率是一样的。
于是此图中C的PR值可表示为:
  PR(C) = a * ((PR(D))/2 + (PR(A))/3) + ((1 - a))/4

在一般情况下,一个网页的PR值计算如下:
  在这里插入图片描述

  其中Mpi是所有对Pi网页有出链的网页集合,L(Pj)是网页Pj的出链数目,N是网页总数,a一般取0.85。根据上面的公式,我们可以计算每个网页的PR值,在不断迭代趋于平稳的时候,即为最终结果。

算法分析

PageRank算法优点

  1、PageRank是一个与查询无关的静态算法,所有网页的PageRank值通过离线计算获得,有效减少在线查询时的计算量,极大降低了查询响应时间。

PageRank算法缺点

  1、人们的查询具有主题特征,PageRank忽略了主题相关性,导致结果的相关性和主题性降低。例如,当搜索“苹果”时,一个数码爱好者可能是想要看 iphone 的信息,一个果农可能是想看苹果的价格走势和种植技巧,而一个小朋友可能在找苹果的简笔画。理想情况下,应该为每个用户维护一套专用向量,但面对海量用户这种方法显然不可行。所以搜索引擎一般会选择一种称为主题敏感PageRank(Topic-Sensitive PageRank)的折中方案。主题敏感PageRank的做法是预定义几个话题类别,例如体育、娱乐、科技等等,为每个话题单独维护一个向量,然后想办法关联用户的话题倾向,根据用户的话题倾向排序结果。
  2、没有区分站内导航链接。很多网站的首页都有很多对站内其他页面的链接,称为站内导航链接。这些链接与不同网站之间的链接相比,肯定是后者更能体现PageRank值的传递关系。
  3、没有过滤广告链接和功能链接。这些链接通常没有什么实际价值,前者链接到广告页面,后者常常链接到某个社交网站首页。
  4、对新网页不友好。一个新网页的一般入链相对较少,即使它的内容的质量很高,要成为一个高PR值的页面仍需要很长时间的推广。

算法改进

  针对PageRank算法的缺点,提出了TrustRank算法,用来检测垃圾网站。
  TrustRank算法工作原理:先人工去识别高质量的页面(“种子”页面),那么由“种子”页面指向的页面也可能是高质量页面,即其TR值也高,与“种子”页面的链接越远,页面的TR值越低。“种子”页面可选出链数较多的网页,也可选PR值较高的网站。
  TrustRank算法给出每个网页的TR值。将PR值与TR值结合起来,可以更准确地判断网页的重要性。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值