PageRank算法 -- 从原理到实现

article/2025/9/25 20:10:11

本文整理自博文PageRank算法 – 从原理到实现

1. 算法来源

这个要从搜索引擎的发展讲起。最早的搜索引擎采用的是 分类目录1的方法,即通过人工进行网页分类并整理出高质量的网站。那时 Yahoo 和国内的 hao123 就是使用的这种方法。

后来网页越来越多,人工分类已经不现实了。搜索引擎进入了 文本检索 的时代,即计算用户查询关键词与网页内容的相关程度来返回搜索结果。这种方法突破了数量的限制,但是搜索结果不是很好。因为总有某些网页来回地倒腾某些关键词使自己的搜索排名靠前。

谷歌的两位创始人,当时还是美国斯坦福大学 (Stanford University) 研究生的佩奇 (Larry Page) 和布林 (Sergey Brin) 开始了对网页排序问题的研究。他们的借鉴了学术界评判学术论文重要性的通用方法, 那就是看论文的引用次数。由此想到网页的重要性也可以根据这种方法来评价。于是PageRank的核心思想就诞生了2,非常简单:

  1. 如果一个网页被很多其他网页链接到的话说明这个网页比较重要,也就是PageRank值会相对较高
  2. 如果一个PageRank值很高的网页链接到一个其他的网页,那么被链接到的网页的PageRank值会相应地因此而提高

就如下图所示(一个概念图):

在这里插入图片描述在这里插入图片描述

2. 算法原理

PageRank算法3简单来说分为两步:

  1. 给每个网页一个PR值(下面用PR值指代PageRank值)
  2. 通过(投票)算法不断迭代,直至达到平稳分布为止。

互联网中的众多网页可以看作一个有向图。下图是一个简单的例子

图1-1

由于PR值物理意义上为一个网页被访问概率,所以初始值可以假设为 1 N {1\over N} N1,其中N为网页总数。一般情况下,所有网页的PR值的总和为1。(如果不为1的话也不是不行,最后算出来的不同网页之间PR值的大小关系仍然是正确的,只是不能直接地反映概率了。而且公式也不再是本文提供的公式了。详情见此博文。)

A、B、C三个页面都链入D页面,则D的PR值将是A、B、C三个页面PR值的总和:

PR(A)=PR(B)+PR(C)+PR(D)

继续上面的假设,A除了链接到D以外,A还链接了C和B,那么当用户访问 A 的时候,就有跳转到 B、C 或者 D 的可能性,跳转概率均为 1/3。在计算D的PR值时,A的PR值只能投出 1 3 1\over 3 31的票,B的PR值只能投出 1 2 1\over 2 21的票,而C只链接到D,所以能投出全票,所以A的PR值总和应为:

P R ( D ) = P R ( A ) / 3 + P R ( B ) / 2 + P R ( C ) PR(D)=PR(A)/3+PR(B)/2+PR(C) PR(D)=PR(A)/3+PR(B)/2+PR(C)

所以可以得出一个网页的PR值计算公式应为:

P R ( u ) = ∑ v ∈ B u P R ( v ) L ( v ) PR(u)=\sum_{v\in B_u}{PR(v)\over L(v)} PR(u)=vBuL(v)PR(v)

其中, B u B_u Bu是所有链接到网页u的网页集合,网页v是属于集合 B u B_u Bu的一个网页,L(v)则是网页v的对外链接数(即出度)

表2-2 根据图2-1计算的PR值
在这里插入图片描述

表2-2,经过几次迭代后,PR值逐渐收敛稳定。

2.1 排名泄露

如图2-3所示,如果存在网页没有出度链接,如A节点所示,则会产生排名泄露问题,经过多次迭代后,所有网页的PR只都趋向于0。

在这里片描述
在这里插入图片描述

2.1.1 解决办法

图中的A网页没有出链,对其他网页没有PR值的贡献,为了满足 Markov 链的收敛性,于是我们设定其对所有的网页(包括它自己)都有出链,则此图中B的PR值可表示为:

P R ( B ) = P ( A ) 4 + P R ( D ) 2 PR(B)={P(A)\over 4} + {PR(D)\over 2} PR(B)=4P(A)+2PR(D)

2.2 排名下沉

如图1-5所示,若网页没有入度链接,如节点A所示,经过多次迭代后,A的PR值会趋向于0。

在这里插入图片描述

在这里插入图片描述

2.3 排名上升

互联网中一个网页只有对自己的出链,或者几个网页的出链形成一个循环圈。那么在不断地迭代过程中,这一个或几个网页的PR值将只增不减。如下图中的C网页:

在这里插入图片描述

为了解决这个问题。我们想象一个随机浏览网页的人,当他到达C网页后,显然不会傻傻地一直被C网页的小把戏困住。我们假定他有一个确定的概率会输入网址直接跳转到一个随机的网页,并且跳转到每个网页的概率是一样的。

于是则此图中C的PR值可表示为:

P R ( C ) = α ( P R ( D ) 2 + P R ( A ) 3 ) + ( 1 − α ) 4 PR(C) = \alpha(\frac{ PR(D)}{2}+\frac{ PR(A)}{3}) + \frac{(1 - \alpha)}{4} PR(C


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

相关文章

第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…

CANoe-如何模拟CAN总线网关通信(满满都是细节)

网络上有不少的文章介绍使用canoe工具模拟网关把can1总线上的报文转发到can2上,那我为什么要写这篇文章呢?大家知道,我的文章不可能完全照搬别人的内容,肯定要夹带私货,有自己的理解的。所以我会从网关在can总线中的工作方式到所起的作用进行分析,学习如何在canoe中实现模…

CAN/CANopen转PROFINET网关TCO-151

型号:TCO-151 基本说明:TCO-151可实现 PROFINET网络与CANopen或CAN网络之间的数据通信。网关在PROFINET网络作为从站,CANopen端既可以做主站也可以做从站,CAN端支持CAN2.0A/CAN2.0B协议,支持对CAN帧进行过滤处理。 特…

CAN总线网关设备

南京来可电子科有限公司 CAN总线网关设备

嘴哥有料系列-can教程2:CAN网关及CAN信号转发机制

原文章:https://mp.weixin.qq.com/s/qbUcZngSDClx9Ll5aKvlLg 上节课, 我们讲到了CAN网关, 其实准确的说不能叫CAN网关, 应该叫网关或者汽车网关, 因为网关不仅处理CAN网络, 还处理LIN网络. 主要是为了配合本系列教程及区分于以太网网关, 所以才取名叫CAN网关. CAN…

CAN总线车联网透传云网关简介

车联网透传云网关 CANIOT-222W/G车联网透传云网关 功能说明 透传功能:串口透传、网口透传、CAN口透传 云端功能:设备管理、OTA升级、远程调试、远程监控 云平台 主要通过互联网(2G/3G/4G)将不同区域的车辆或工程机械接入共有…

CAN网关远程OTA升级方案详解(工程机械控制器远程升级)

CAN网关远程OTA升级方案详解 背景; 现今中国基建全面开花,工程车辆的需求量越来越大,工作环境也越来越复杂。工程车辆配置升级需求也越来越多,所需要的的工程师数量也越来越多,导致工程师数量严重不做,影响…

CAN云网关透传CANIOTCAN物联网云网关系列基本介绍

来可电子的CANIOT透传网关可以实现串口,网口和CAN口的远程数据传输。 CANIOT透传网关 实现的原理为网关通过4g或者WiFi连接到服务器,再由服务器将接收到的网关数据转发到网关配套的客户端上,客户端再通过对应的上位机软件将接收到的数据显示出…

【N32G457 】基于RT-Thread和N32G457的CAN网关

本文是RT-Thread用户xiere 原创发布,是用于参加RT-Thread与国民技术联手推出N32G457 RT-Thread设计大赛,原文:https://club.rt-thread.org/ask/article/3422.html 基于RT-Thread系统和N32G457开发板开发的一款CAN网关;硬件部分由…

S32G CAN网关测试

canutils 使用 ./cansend can0 -e 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88发送默认ID为0x1的can标准帧,数据为0x11 22 33 44 55 66 77 88, 每次最大8个byte ./cansend can0 -i 0x800 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 -e-e 表示扩展帧,CAN_ID最…

汽车网络安全之——CAN网关测试

测试内容 本部分为网关测试标准整理而来。 1 硬件信息安全测试 网关硬件信息安全测试应按照下列流程及要求依次进行: a) 拆解被测样件设备外壳,取出PCB板,通过5倍率以上的光学放大镜,观察网关PCB板,检查PCB 板硬件是否…

can网关 candtu CANIOT系列车联网透传云网关

can网关 candtu CANIOT系列车联网透传云网关的功能介绍 1,主要功能:云端监控、远程调试及配置、程序上下载4G、WiFi、 以太网联网 CAN口、串口和网口透传 云平台私有化部署服务虚拟CAN口适配广泛。 2,应用介绍 透传网关支持串口/网口/CAN口同…