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之间

    终结点问题

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

     

  • 相关阅读:
    Two Sum II
    Subarray Sum
    Intersection of Two Arrays
    Reorder List
    Convert Sorted List to Binary Search Tree
    Remove Duplicates from Sorted List II
    Partition List
    Linked List Cycle II
    Sort List
    struts2结果跳转和参数获取
  • 原文地址:https://www.cnblogs.com/yongfuxue/p/10094780.html
Copyright © 2011-2022 走看看