PageRank 算法详解

article/2025/9/25 19:25:55

转载自:https://blog.csdn.net/m0_37786726/article/details/79864012

参考文献:https://blog.csdn.net/androidlushangderen/article/details/43311943

链接分析

在链接分析中有2个经典的算法,1个是PageRank算法,还有1个是HITS算法,说白了,都是做链接分析的。具体是怎么做呢,继续往下看。

PageRank算法

要说到PageRank算法的作用,得先从搜索引擎开始讲起,PageRank算法的由来正式与此相关。

搜索引擎

最早时期的搜索引擎的结构,无外乎2个核心步骤,step1:建立庞大的资料库,step2:建立索引库,用于指向具体的资料。然后就是用户的查找操作了,那怎么查呢,一个很让人会联想到的方法就是通过关键字匹配的方法,例如我想输入张三这个关键词,那我就会在资源中查包含有张三这个词语的文章,按照关键词匹配方法,只要一篇文章中张三出现的次数越多,就越是要查询的目标。(但是更公正的方法应是次数/文章总次数,一个比值的形式显然更公平)。仔细这么想也没错。好继续往下。

Term Spam攻击

既然我已经知道了搜索的核心原理,如果我想要让我的网页能够出现在搜索的结果更靠前的位置,只要在页面中加入更多对应的关键词不就OK了,比如在html的div中写入10000个张三,让后使其隐藏此标签,使得前端页面不受影响,那我的目的岂不是达到了,这就是Term Spam攻击。

PageRank算法原理

既然关键词匹配算法容易遭到攻击,那有什么好的办法呢,这是候就出现了著名的PageRank算法,作为新的网页排名/重要性算法,最早是由Google的创始人所写的算法,PageRank算法彻底摒弃了什么关键词不关键词的,每个网页都有自己的PageRank值,意味一个网页的重要程度,PR值越高,最后呈现的位置更靠前。那怎么衡量每个网页的重要程度呢,答案是别的页面对他的链接。一句话,越多的网页在其内容上存在指向你的链接,说明你的网页越有名。具体PR值的计算全是通过别的网页的PR值做计算的,简单计算过程如下:

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

       

       继续假设B也有链接到C,并且D也有链接到包括A的3个页面。一个页面不能投票2次。所以B给每个页面半票。以同样的逻辑,D投出的票只有三分之一算到了A的PageRank上。

       

      换句话说,根据链出总数平分一个页面的PR值。

       

 所示的例子来说明PageRank的具体计算过程。  

                     

以上是网页内部有链接的时候,因为还可能在1个网页中没有任何链接的情况,而这个时候,跳到任何网页的概率都是可能的。因此最后的计算公式就变成了这个样子:

      

q称为阻尼系数。

PageRank的计算过程

PageRank的计算过程实际并不复杂,他的计算数学表达式如下:


就是1-q变成了1-q/n了,算法的过程其实是利用了幂法的原理,等最后计算达到收敛了,也就结束了。

按照上面的计算公式假设矩阵A = q  × P + ( 1 一 q) *  /N,e为全为1的单位向量,P是一个链接概率矩阵,将链接的关系通过概率矩阵表现,A[i][j]表示网页i存在到网页j的链接,转化如下:

      
图2  网页链接矩阵:                                      图3  网页链接概率矩阵:  
 

                         图4  P’ 的转置矩 阵

这里为什么要把矩阵做转置操作呢,原本a[i][j]代表i到j链接,现在就变为了j到i的链接的概率了,好,关键记住这点就够了。最后A就计算出来了,你可以把他理解为网页链接概率矩阵,最后只需要乘上对应的网页PR值就可以了。

此时初始化向量R[1, 1, 1];代表最初的网页的PR值,与此A概率矩阵相乘,第一个PR值公式1:R[0]'=A[0][0]*R[0] + A[0][1]*R[1] + A[0][2]*R[2]   ,又因为A[i][j]此时的意思正是j到i网页的链接概率,这样的表达式恰恰就是上文我们所说的核心原理。然后将计算新得的R向量值域概率矩阵迭代计算直到收敛。

对于公式1 的解释:A[0][] 代表的是各个网页链接到网页A的概率,而R[]向量中表示的是个网页对应的初始PR值,最后A的PR 值为:

PR(A)= R'[i]

大家如果对以上有啥不理解的,可以私信我。

PageRank小结

PageRank的计算过程巧妙的被转移到了矩阵的计算中了,使得过程非常的精简。

Link Spam攻击

魔高一尺道高一丈,我也已经知道了PageRank算法的原理无非就是靠链接数升排名嘛,那我想让我自己的网页排名靠前,只要搞出很多网页,把链接指向我,不就行了,学术上这叫Link Spam攻击。但是这里有个问题,PR值是相对的,自己的网页PR值的高低还是要取决于指向者的PR值,这些指向者 的PR值如果不高,目标页也不会高到哪去,所以这时候,如果你想自己造成一堆的僵尸网页,统统指向我的目标网页,PR也不见的会高,所以我们看到的更常见的手段是在门户网站上放链接,各大论坛或者类似于新浪,网页新闻中心的评论中方链接,另类的实现链接指向了。目前针对这种作弊手法的直接的比较好的解决办法是没有,但是更多采用的是TrustRank,意味信任排名检测,首先挑出一堆信任网页做参照,然后计算你的网页的PR值,如果你网页本身很一般,但是PR值特别高,那么很有可能你的网页就是有问题的。



http://chatgpt.dhexx.cn/article/JtydJtgE.shtml

相关文章

数据挖掘十大算法:PageRank算法原理及实现

一、PageRank的概念 PageRank,网页排名, 是一种由根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一, 它由Larry Page 和 Sergey Brin在20世纪90年代后期发明,并以拉里佩吉(Larry Page&#xf…

PageRank 算法及实例分析

本文一部分是针对图的PageRank 的实现,以及具体数据集的分析过程的记录。 另一部分是BFS的实现,并记录每一层的节点数。 数据集下载地址 soc-Slashdot0811 、 roadNet-CA 、 soc-LiveJournal1 1. java 实现代码 Main.java import java.util.List;pu…

PageRank算法(二)

原文地址:https://blog.csdn.net/monkey_d_meng/article/details/6556295 说明:这是我学习过程中看到对PageRank来龙去脉解释非常清晰的博客,博主很厉害,大家可以关注一下原创作者! 一、PageRank算法的简单举例 Goo…

PageRank 算法实现

大数据管理与分析实验报告 实验一 大数据系统基本实验 实验二 文档倒排索引算法实现 实验三 PageRank 算法实现 实验目的 PageRank 网页排名的算法,曾是Google 发家致富的法宝。用于衡量特定网页相对于搜索引擎索引中的其他网页而言的重要程度。通过对PageRank 的…

(简单介绍)PageRank算法

文章目录 前言引入形式化PageRank 前言 这个是一个经典算法,还是有必要了解的,这里由于讲得不会很详细,所以要求你有一点数学知识,如果有,看完这篇就大概明白PageRank是个啥了。本篇不涉及证明之类的,而是…

算法--PageRank

概念 PageRank是Google提出的算法,用于衡量特定网页相对于搜索引擎索引中的其他网页而言的重要程度。是Google创始人拉里佩奇和谢尔盖布林于1997年创造的PageRank实现了将链接价值概念作为排名因素。 GOOGLE PageRank并不是唯一的链接相关的排名算法,而…

pagerank以及个性化的pagerank算法

pagerank以及个性化的pagerank算法 pagerank最开始是Google提出来用来衡量网页重要度排行的算法。 她的思想是基于网页之间互相的链接作为加权投票。假如网页a指向b, 那么网页b的重要程度受网页a的影响,a越重要,则b就越重要。假如网页c也指…

PageRank算法原理详解

 转自:http://blog.csdn.net/hguisu/article/details/7996185 1. PageRank算法概述 PageRank,即网页排名,又称网页级别、Google左侧排名或佩奇排名。 是Google创始人拉里佩奇和谢尔盖布林于1997年构建早期的搜索系统原型时提出…

PageRank算法改进

PageRank算法的应用 PageRank 算法是 Google 搜索引擎进行网页排名的一种算法,那么它如何映射到其他领域? 比如,我们如何在文献排名中应用PageRank算法呢? 对文献的质量进行排序是对文献价值进行评估的一种重要手段&#xff0c…

什么是Pagerank?Pagerank算法介绍与计算公式

一、什么是Pagerank? PageRank,网页排名,又称网页级别、Google左侧排名或佩奇排名,是一种由根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一,而我们SEO简称为PR,以Google公司创办…

PageRank算法 -- 从原理到实现

本文整理自博文PageRank算法 – 从原理到实现 1. 算法来源 这个要从搜索引擎的发展讲起。最早的搜索引擎采用的是 分类目录1的方法,即通过人工进行网页分类并整理出高质量的网站。那时 Yahoo 和国内的 hao123 就是使用的这种方法。 后来网页越来越多,人工分类已经不现实了…

第4关: 网页排序——PageRank算法

要求:编写实现网页数据集PageRank算法的程序,对网页数据集进行处理得到网页权重排序。 ####相关知识 ######PageRank算法原理 1.基本思想: 如果网页T存在一个指向网页A的连接,则表明T的所有者认为A比较重要,从而把T的一…

PageRank算法--从原理到实现

本文将介绍PageRank算法的相关内容,具体如下: 算法来源算法原理算法证明PR值计算方法 1 幂迭代法2 特征值法3 代数法 算法实现 1 基于迭代法的简单实现2 MapReduce实现 PageRank算法的缺点写在最后参考资料 1. 算法来源 这个要从搜索引擎的发展讲起。最…

PageRank算法原理与实现

正文共835个字,8张图,预计阅读时间6分钟。 1、PageRank 1.1.简介 PageRank,又称网页排名、谷歌左侧排名,是一种由搜索引擎根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一,以Google公司创办人…

PageRank算法原理及代码

本文内容出自帅器学习的课程内容,讲得原理清晰,概念深入,链接: PANKRANK算法视频 另有一篇知乎文章,PAGERANK讲得系统透彻,链接在此:关键词提取和摘要算法TextRank详解与实战 PAGERANK算法是一…

PageRank算法 -- 图算法

一、简述: PageRank算法是一个迭代求解算法,可以处理网页排名(根据网页的重要性进行排序)、社会影响力分析、文本摘要 等问题。 PageRank算法在1996年由Page和Brin提出 PageRank适用于解决用有向图表示的图数据 二、各节点重要性…

PageRank算法

一、算法原理: 1、如果一个网页被很多其他网页链接到的话说明这个网页比较重要,也就是PageRank值会相对较高 2、如果一个PageRank值很高的网页链接到一个其他的网页,那么被链接到的网页PageRank值也会相应提高。 例子: 如果一…

pagerank算法详解

目录 一、pagerank简介两个重要假设 二、pagerank算法公式定义计算演示矩阵化计算 三、存在的两个问题问题1.Dead Ends问题2.Spider Traps 一、pagerank简介 PageRank算法的基本想法是在有向图上定义一个随机游走模型,即一阶马尔可夫链,描述随机游走者沿…

整车CAN网络拓扑图

什么是智能硬件与ECU ? 何为智能硬件, 就是包含智能控制单元的硬件, 比如发动机, 发动机上有一块儿专门负责控制发动机进气量, 喷油量, 排气量的控制单元, 这块单元相当于发动机的大脑. 他具有信号发送, 信号接收, 参数存储等基本功能, 这个控制单元就是ECU. ECU(Electronic …

如何利用CANoe在两路CAN通道之间创建网关(gateway)

1 目的 利用CANoe在两路CAN通道之间创建一个网关,通过CAPL实现CAN1、CAN2通道间的报文转发,并进行故障注入测试(通过改变某些信号的值)。 (本实例仅用于博主学习记录) 2 步骤 创建一个两路通道&#xf…