page-rank计算问题

来源:互联网 发布:苟利国家生死已网络梗 编辑:程序博客网 时间:2024/05/16 10:12

  大家上网最常用的一个工具是谷歌搜索,比如搜索“笑话”,会返回与笑话相关的网页链接结果,供你选择。问题来了,搜索是如何进行的,机器怎么去尽力找到跟你搜索信息相关的网页的呢?

Page-Rank

  谷歌公司对网页进行重要性评估,并且基于此计算网页等级并给出搜索结果。

网页重要性评估

  Google根据链接来衡量网页重要性,并做了两个重要假设:
  1. 数量假设:在Web图模型中,如果一个页面节点接收到的其他网页指向的入链数量越多,那么这个页面越重要。
  2. 质量假设:指向页面A的入链质量不同,质量高的页面会通过链接向其他页面传递更多的权重。所以越是质量高的页面指向页面A,则页面A越重要。
  假设有四个网页如下,箭头表示外链:
  简单网络链接模型
  构造链接概率矩阵S=01/31/31/3001/21/200010100
  第一列分别表示网页与自身的链接概率为0,与网页2的链接概率为1/3,与网页3的链接概率为1/3,与网页4的链接概率为1/3。

Rank过程

  如何给出网络上页面的等级向量呢?
  Page-rank向量由q=Sq来确定。(求解特征值为1对应的特向)
  通过qnext=Sqcurrent迭代计算来找到q,当两次q结果的变化很小时,终止迭代。q0取为全1或者1/N
  实际应用中,会对q修正,因此在迭代过程中,q更新公式qnext=αSqcurrent+e1αNe是大小为N*1的列向量。

特殊情况处理

  1. Dead End 不存在外链的节点
  Dead End
  由于web 4这个Dead End的存在,会导致最后q收敛时的rank值为0
  处理方法:去掉Dead End点及相应的边,直到没有Dead End点。计算剩余点的rank向量,由已知的点反推Dead End点的链接概率。
  去掉4及相应边后,3也变成了Dead End,也去掉3及相应边。
  先反推3:rank3=rank11/3
  再反推4:rank4=rank11/3+rank21+rank31
  2. Spider Traps及平滑处理
  Spider Traps
  对于像图中web 4的节点,只有链向自己的外链,会导致多数节点的rank值接近0。系数矩阵也会导致rank大多数接近0,而4这样的节点更是加剧了这种情况。为了避免这种情况,对计算加平滑处理,就是上面提到的对q的修正。

Topic-Sensitive Page-Rank

  一股脑地对所有网页不加区分的计算等级排序,是不符合正常的情况的,我们更希望对网上信息有个大体分类,每个类下对网页等级排序。这样搜索起来更有针对性。
  其q迭代公式如下:
  qnext=αSqcurrent+s1α|s|
  其中s为topic向量,属于某类则对应位置为1,不属于某类则对应位置为0。|s|s中1的个数。
  通过topic使得某类的网页在用户搜索相应类内容时,排序更靠前。

小结

  page-rank的基本过程如上所述,实际应用肯定很复杂,同时也要分布处理,这里没有涉及。

0 0
原创粉丝点击