`
backsnow
  • 浏览: 130923 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

pageRank计算公式的由来

 
阅读更多

经常看到各种介绍pagerank的文章,但是少有文章能够讲清楚pagerank的思想是如何产生的,事实上这还是要归结到数学原理,这篇文章是讲得让我理解最深刻的:http://www.changhai.org/articles/technology/misc/google_math.php。

 

pagerank产生思想源于论文引用数,引用次数越高的论文影响力越大。它原则有两点:1,网页被链接的越多,重要性就越高;2,网页被重要性高的网页链接,就越重要。

 

pn = Hnp0 是该想法的出发点,计算出最终各个网页的pageRank值。但是H^{n}矩阵必须保证满足三点要求,也就是三个问题:

  1. 极限 limn→∞pn 是否存在?
  2. 如果极限存在, 它是否与 p0 的选取无关?
  3. 如果极限存在, 并且与 p0 的选取无关, 它作为网页排序的依据是否真的合理?
第三个问题:用pn = Hnp0造成第3个问题的不合理情况,因为悬挂网页的存在,有些网页没有链接其他网页,会造成“网页黑洞”。(背后的数学问题是,存在H矩阵的某一列之和为0,不能构成概率之和为1的特点)

解决办法:通过S = H + aeT/N,加入随机矩阵,模拟用户访问到没有链接的网页时,会随机选择互联网的一个网页作为其链接。

前两个问题:如果不能收敛的话,就得不到pagerank值。

 

解决办法: 假定虚拟用户在每一步都有一个小于 1 的几率 α 访问当前网页所提供的链接, 同时却也有一个几率 1-α 不受那些链接所限, 随机访问互联网上的任何一个网站。用数学语言来说 (请读者自行证明), 这相当于是把上述 S 矩阵变成了一个新的矩阵 GG = αS + (1-α)eeT/N。

( 因为随机过程理论中有一个所谓的马尔可夫链基本定理 (Fundamental Theorem of Markov Chains), 它表明在一个马尔可夫过程中, 如果转移矩阵是素矩阵, 那么上述前两个问题的答案就是肯定的。而G矩阵是素矩阵)

 

这样,PageRank的计算公式就确定了,可以看到,在最终收敛后,p=G^*p,即p是矩阵G中特征值为1的特征向量。其余的特征值lambda满足|lambda|<=alpha 

 

分享到:
评论

相关推荐

    truncated-pagerank 计算源代码

    `truncated-pagerank`则是对原始PageRank算法的一种改进,它主要解决了PageRank计算过程中的收敛问题和计算效率问题。 PageRank的基本原理是,每个网页都有一个初始的排名分数,通常设置为相同。然后,通过网页之间...

    pagerank_大数据pagerank算法代码_pageRank_

    3. **迭代更新**:按照PageRank公式进行迭代更新,直到收敛或达到预设的最大迭代次数。 4. **处理悬挂链**:悬挂链是指没有出链的网页,它们的PageRank值通过随机跳转分发给网络中的其他网页。 在`pagerank.py`这...

    python实现PageRank算法

    PageRank是Google创始人Larry Page提出的一种网页排名算法,它通过计算网页之间的链接关系来评估网页的重要性,从而为搜索引擎提供一种衡量网页质量的方式。在Python中实现PageRank算法可以帮助我们理解其工作原理,...

    基于Java的分布式PageRank计算系统.zip

    基于Java的分布式PageRank计算系统 项目简介 本项目是一个基于Java的分布式系统,旨在利用多台机器并行计算PageRank算法,以对维基百科编辑管理人员进行排名。系统通过加载真实数据集,实现多机器间的数据同步和...

    matlab编程实现pagerank公式

    用matlab编程实现的pagerank算法 与你们分享

    pageRank-详细解析(具体例子).docx

    PageRank的计算是递归的,这意味着要计算一个网页的PageRank,必须先知道所有其他网页的PageRank。这看起来像是一个无解的问题,但通过线性代数的方法,我们可以将其转换为寻找矩阵的特征向量问题。将网页视为节点,...

    pagerank算法

    Google使用迭代方法近似计算PageRank,初始给每个页面分配相同的值,然后根据PageRank公式反复计算,直到结果稳定。实际应用中,可能需要进行上百次迭代,但在示例中,通常10次左右就能得到较为准确的结果。 通过...

    PageRank_pageRank_python_

    2. 计算转移:每个网页的PageRank值按以下公式分配给链接的目标网页:PR(A) = (1-d) + d * Σ(PR(Ti)/L(Ti)),其中PR(A)是网页A的PageRank值,d为阻尼因子(通常设置为0.85),PR(Ti)是链接到A的第i个网页的PageRank...

    pagerank_BSU_大数据课程大作业一_南开大学_pagerank算法_pageRank_

    PageRank的更新公式为:`PR(i) = (1-d) + d * Σ(PR(j)/L(j))`,其中PR(i)是网页i的新PageRank,PR(j)是链接到i的网页j的PageRank,L(j)是j的出链数量。 5. **处理悬空链接**:有些网页没有出链,称为悬空节点。...

    Go-pagerank-加权PageRank算法Go实现

    3. **迭代更新**:按照PageRank公式进行迭代计算,每一轮迭代中,每个网页的PageRank值是所有入链网页的PageRank值乘以相应的权重之和,再加上阻尼因子乘以所有网页PageRank的平均值。 4. **判断收敛**:在每次迭代...

    基础PageRank 算法 C++实现

    - **迭代更新**:根据PageRank公式,循环计算每个网页的新PageRank值,直至满足停止条件。 - **处理陷阱**:当某些网页没有任何出链(即没有链接到其他网页)时,需要引入随机跳跃处理,避免PageRank值被“困”在...

    PageRank分值计算 Python爬虫 数据挖掘实验

    PageRank是Google创始人Larry Page提出的一种网页排名算法,它通过计算网页之间的链接关系来评估网页的重要性,从而为搜索引擎提供更准确的搜索结果。在“PageRank分值计算 Python爬虫 数据挖掘实验”中,我们将深入...

    在heritrix中使用pagerank算法

    - **迭代计算**:PageRank值通过迭代公式更新,直到收敛,通常设置一个停止迭代的阈值。 2. **在Heritrix中实现PageRank** - **扩展Crawler Frontier**:Heritrix的工作核心是Crawler Frontier,它是待抓取URL的...

    pagerank.zip

    PageRank的计算公式如下: \[ PR(p) = \frac{1-d}{N} + d \sum_{q \in M(p)} \frac{PR(q)}{L(q)} \] 其中,\( PR(p) \) 是网页p的PageRank值,\( N \) 是所有网页的数量,\( d \) 是阻尼因子(通常设置为0.85),\( ...

    三种方法对web-Google.txt进行pagerank计算,python以稀疏矩阵方法实现单机计算谷歌网页数据计算pageRank值

    三种方法对web-Google.txt进行pagerank计算,1.python以稀疏矩阵方法实现单机计算谷歌网页数据计算pageRank值2.调用networkx库3.调用networkx库,其中pagerank自己实现。

    pagerank数据集.rar

    公式大致为:PR(A) = (1-d) + d * Σ(PR(B)/L(B)),其中A是目标节点,B是链接到A的节点,PR(B)是B的PageRank,L(B)是B的出链数量,d是阻尼因子,通常设置为0.85。 3. **收敛检查**: 迭代过程中,如果节点的PageRank...

    有关pagerank算法论文

    具体而言,PageRank算法的计算公式可以表示为: \[ PR(A) = (1-d) + d \left( \frac{PR(T_1)}{C(T_1)} + \frac{PR(T_2)}{C(T_2)} + ... + \frac{PR(T_n)}{C(T_n)} \right) \] 其中,\( PR(A) \) 表示网页A的...

    pagerank algorithms

    PageRank的核心公式可以表示为: \[ PR(p_i) = \frac{1-d}{N} + d \sum_{p_j \in B(p_i)} \frac{PR(p_j)}{L(p_j)} \] 其中: - \( PR(p_i) \) 表示网页\( p_i \)的PageRank值。 - \( B(p_i) \) 表示所有指向网页\( ...

    无向图pagerank算法(Java)

    在"PageRank-master"这个压缩包文件中,可能包含了完整的PageRank算法Java实现,包括数据结构的定义、图的构建、PageRank的计算以及可能的测试用例。通过阅读源码,你可以更深入地理解算法的细节和实现技巧。

Global site tag (gtag.js) - Google Analytics