zoukankan      html  css  js  c++  java
  • PageRank

    基本概念

    PageRank是一种网页排序算法,主要应用在搜索引擎中。

    PageRank将链接作为投票,有入链和出链。入链是其他网页指向本网页,出链是网页指向其他网页。

    如果一个网页被很多其他网页链接到的话说明这个网页比较重要,也就是PageRank值会相对较高

    如果一个PageRank值很高的网页链接到一个其他的网页,那么被链接到的网页的PageRank值会相应地因此而提高

    算法介绍

    又叫状态转移矩阵,用来表示入链和出链关系。

    假如我们有这样一个邻接矩阵,这里有4个网页,A、B、C、D。每个网页的初始化重要度为1,每一列表示当前网页链接到其他网页而给予的重要度。对于网页A,它指向了B、C、D,因此B、C、D网页的重要度均增加1/3.对于每一行,表示其他网页指向本网页而增加的重要度。对于网页B,指向B的网页有A和D,给予的重要度分别是1/3和1/2.

     

    假设当前每个网页的重要度向量是R,且每个网页的重要度值之和为1。根据邻接矩阵,可以计算出迭代一次之后,每个网页的重要度。R1 = S × R,多次迭代,S矩阵会趋于稳定。

    S矩阵存在性和唯一性的理论基础:马尔可夫过程

    马尔可夫过程:对于满足特定条件的图,其平稳状态是唯一的,而且无论在时间t=0 时起始概率分布是怎么样的,最终都会达到这样一个平稳状态 。

    陷阱问题

    外链组成环形结构,多次迭代后最终吸收掉所有的重要度

    例1:

     

    对于这样的状态转移矩阵S =  ,如果我们初始化 R = [1,0]或者[0,1]时,多次迭代后均不能得到一个稳定的矩阵,如果我们初始化R = [1/2, 1/2],那么可以得到稳定的状态转移矩阵。

    例2:

    最终收敛到[0, 0, 1]

     

    陷阱问题的解决办法:

    在每个时间节点,游览者对于下个网页有两种选择

    以概率α,随机跟随一个外链到下个网页

    以概率1-α,随机跳到某个网页

    α的取值一般在0.8到0.9之间

    终结点问题

    有一些页面是终结点,即没有任何出链,这样的页面导致我们传递的重要度泄漏了

     

  • 相关阅读:
    ZOJ 1649: Rescue(BFS)
    UVA
    hdu2458:Kindergarten (最大独立集)
    hdu3829:Cat VS Dog (最大独立集)
    Java 泛型
    request.getParameter() 和request.getAttribute() 区别
    Solr版本安装部署指南
    java.sql.SQLException: Incorrect string value: 'xE6x88x91xE7x9Ax84...' for column 'groupName'
    Incorrect string value: 'xF0x9Fx98x84xF0x9F
    java里面byte数组和String字符串怎么转换
  • 原文地址:https://www.cnblogs.com/yongfuxue/p/10094780.html
Copyright © 2011-2022 走看看