商务服务
链接分析–PageRank 算法分析实现及优化
2024-12-27 15:45

资源下载地址:https://download.csdn.net/download/sheziqiong/85601120
资源下载地址:https://download.csdn.net/download/sheziqiong/85601120

互联网时代带给人们生活最大的改变是,通过搜索引擎进行高效准确的 Web 搜索。尽管 Google 并不是最早的搜索引擎,但它却史无前例地成功解决了 Web 作弊问题。Google 搜索引擎的核心正是 PageRank 算法。

PageRank 算法,是 Google 的创始人拉里·佩奇和谢尔盖·布林于 1998 年在斯坦福大学发明了一种高效的链接分析方法。该算法基于一种假设:更重要的页面往往更多地被其他页面引用(或称其他页面中会更多地加入通向该页面的超链接)。PageRank 算法用于求解对搜索结果的网页排名,由于其高效性,它至今还在被各大搜索引擎使用。

本文主要进行 PageRank 算法的核心原理探讨以及实现优化。在实现算法基础功能的工作之上,引入随机游走因子,对于算法进行优化,从而解决 Web 数据中存在的 dead ends 和 spider traps 问题。此外,本文进一步实现了 PageRank 算法的 Block-Stripe Update 分块优化,以达到空间复杂度的优化。

关键词:PageRank 算法;链接分析;随机游走;Block-Stripe Update 分块优化

互联网时代,人们越来越依靠网络来获取知识。搜索引擎对于用户给出的查询,在海量 Web 网页寻找与查询匹配的内容,并在尽可能短的时间内给出用户反馈。用户通常关心搜索引擎搜索结果中的排名考前的结果,因此,在此需求下,搜索引擎需要对于海量 Web 数据进行质量分析。Google 公司的拉里·佩奇和谢尔盖·布林于 1998 年在斯坦福大学提出 PageRank 算法,通过对于 Web 网页间的链接分析,检索出其中与搜索相符的高质量网页,成功地解决了 Web 中广泛存在的垃圾页面和链接作弊的问题,极大地提高了搜索引擎的性能。

本次实验实现了 PageRank 算法基础功能,并在此之上通过随机游走算法解决了 dead ends 和 spider traps 问题,并通过 Block-Stripe Update 分块优化,保证了算法在大规模数据的情况下仍能有较高的性能。

本节将针对 PageRank 算法面对的核心问题以及解决方案给出算法分析。

搜索引擎根据用户的查询关键词,给出内容相关的 Web 页面。PageRank 算法通过 Web 页面之间的链接关系,建立相互投票的评分机制,通过计算页面最终的得分来衡量页面的质量。

具体来说,PageRank 让链接来” 投票”。一个页面的“得票数”由所有链向它的页面的权重(重要性)来决定,到一个页面的超链接相当于对该页投一票。一个页面的 PageRank 是由所有链向它的页面(“链入页面”)的权重经过递归算法得到的。一个有较多入链的页面会有较高的权重,反之则页面的权重较低。

朴素的 PageRank 算法在 Web 网页结构良好的环境下可以正常运行,通过迭代可以对不同的网页给出合理的打分。然而,研究表明,现实中的 Web 网页结构常常出现网页个体或网页群体没有出向链接,即网络中的 dead ends 和 spider trap。PageRank 算法经过迭代之后,全体系统的权重会被以上两种 Web 网页结构吸收,其余页面的权重会趋于 0,这使得计算得出的结果失去意义。

基于以上的问题,Google 对于朴素的 PageRank 算法提出改进策略。新的算法增加了随机游走因子,对于 Web 网页间的行为进行了更加细致的建模。朴素的 PageRank 认为网页之间的跳转只能通过彼此间的链接来实现;而加入随机游走因子后,算法认为用户会以一定概率随机打开任意一个网页,例如,用户直接在地址栏中输入某 Web 网页的网址。随机游走因子使得流入 dead ends 或 spider trap 中的权重能够以一定概率跳出该结构,保证系统的权重不会困于局部网页结构中,提高了算法的鲁棒性。

互联网的发展带来的是网络中页面的爆炸式增长,这导致在现实情景下,PageRank 算法的性能受到存储介质空间的限制。内存空间,甚至单台机器的硬盘存储空间,难以支持庞大的数据以及 PageRank 的复杂运算,因此,分块化的 PageRank 算法优化显得格外重要。

为了解决存储空间有限的问题,可以采用分块的思想。即把进行解耦合并分块处理。每个块内部先进行一次处理,之后把处理之后的结果,通过整合、处理,得到最终的结果。对于每一块,通常认为是单台计算机可以存储并且处理的,而最终的整合信息,也认为是单台计算机可以综合处理的。这样,就能使大规模数据集被多台计算机配合处理,从而得到最终结果。

工程领域中,常采用 MapReduce 分布式集群的模型架构。本文的实验方案中,对于输入数据进行了划分,使每部分数据适应运行环境的内存大小,已达到 PageRank 算法的分块化处理。

本节针对 PageRank 朴素算法、随机游走算法以及分块化算法给出公式定义。

朴素 PageRank 算法分析

本小节针对朴素 PageRank 算法给出分析。在理想的 Web 网页结构中,即不存在 dead ends 以及 spider trap 结构的前提下,PageRank 算法可以

可以概括为

如果一个网页被大量网页链接到,则该网页质量较高,拥有较高的

如果一个高 PageRank 权重的网页中包含一条链出至其他页面的链接,则被链接的网页会拥有较高的 PageRank 值。

基于以上的假设,利用“权重投票“的方式描述网页间的链接关系,并以此计算网页相应的 PageRank 权重。例如图 1 中的网络结构示意图,其中 i,j,k 表示 Web 中的三个网页,ri,rj,rk 分别表示网页的 PageRank 权重, 有向箭头表示网页间的链接。

每个网页的 PageRank 权重值由指向它的网页的 PageRank 权重值及这些网页的出度共同决定;同时这个网页的 PageRank 权重值及其出度又会影响它所指向的网页的 PageRank 权重值。由此,可以得出网页 j 的

PageRank 权重值 rj,其公式化定义为

 

构建保存网页结点 PageRank 值的向量并初始化,r_new 代表当前时刻网页的 PageRank 值,r_old 代表上一时刻的 PageRank 值。

 

代码分析

 
 

本小节分析矩阵分块算法的实现。本次实验中,对于原始的数据文件按照参数 bloc_size 进行分块,并将划分后的数据分别成新的文件,以实现数据的分块。

 
 

本小节分析随机游走算法部分的实现代码。据公式 3 引入随机游走因子 β,利用矩阵乘法(公式 2), 迭代计算 PageRank 值向量。

def matmul(self, r_old, r_new, block, beta=0.85):;# beta 为随机游走概率参数 for line in block:;src, *dst = line.strip(‘ ’).split(’ ') for j in range(len(dst)):;if int(dst[j]) in r_new.keys():# 矩阵乘法迭代更新 PageRank 参数;r_new[int(dst[j])] += beta * r_old.get(int(src), 0) / len(dst);return r_new

当迭代更新的误差小于阈值时,则认为算法收敛。

 
 

本节将从开发环境、实验设置、实验数据统计以及实验结果展示三个方面进行实验介绍与分析。

本小节将介绍本次实验所采用的环境。受限于实验条件条件,本次实验仅在本地运行,未使用云服务器及分布式架构。本地使用处理器为 Intel® Core™ i7-6700, 主频 3.40GHz;硬盘参数为 Samsung SSD 850 EVO 250GB 固态硬盘,理论读取速度 540MB/S,理论写入速度 520MB/S;RAM 空间为 16GB;未使用 GPU。

为保证实验的可复现性,本小节将介绍实验中部分参数的设置情况。参数 threshold 为控制算法收敛的阈值,当算法每轮迭代的更新量小于阈值时

则算法以收敛;参数 β 为随机游走因子,控制算法随机游走的概率;参数 block_size 为分块优化算法中块的尺寸。具体参数取值见表 1。

参数名取值备注threshold1010迭代更新停止阈值beta0.85随机游走因子block_size1000数据分块尺寸

表 1: 实验参数设置详情

针对本次实验使用的 Wiki 数据,进行了数据部分参数的统计,统计信息与实验结果可形成验证关系。统计详细信息见表 3

统计量数值备注数据集尺寸1070KB数据集所占存储空间结点数7115数据集中网页总数边数103689网页总连接数Dead ends 数1005出链数为 0 的网页数量边缘结点数4734入链数为 0 的网页数量最大入链节点编号4037包含最多入向链接的网页编号最大出链节点编号2565包含最多出向链接的网页编号

6.3.1 表 2: Wiki 数据集统计量详情

Wiki 数据集大小为 1070KB,约为 1MB,远小于运行环境下的内存容量。因此,对于矩阵分块算法,本实验假设数据规模过大,无法一次性装载入内存中。网页总数是 7115,假设使用邻接矩阵的形式来存储网页间的链接关系,共需要保存 71152 个矩阵项,占用内存大小为 71152 ×4 Byte = 193.11MB。统计网页间的链接数,共 103689 条,计算矩阵的非 0 项比例约为:0.020。由此可见,邻接矩阵相当稀疏。尽管使用邻接矩阵所占用的存储空间远小于运行环境中的内存空间,本实验还是优化稀疏矩阵的存储方式,以达到进一步节省空间开销的目的。

本小节展示算法运行的输出结果。在 PageRank 算法收敛后,选取权重值最大的前 100 个网页写入输出文件。如表所示的为排名在 1-5 以及排名在 96-100 位的部分网页编号以及 PageRank 数值。PageRank 值均保留 6 位小数。

网页排名编号PageRank 权重值140370.0043482150.003472366340.003385426250.003099523980.002462……9617260.0009409732380.0009359823230.0009319967840.00092710030340.000924

6.4.1 表 3: Wiki 数据集统计参数详情

值得注意的是,根据 PageRank 权重排名最高的节点编号为 4037,对比 6.3 小节中 Wiki 数据集统计量信息,编号为 4037 的网页拥有最多的入向链接。换言之,被链接次数最多的网页拥有最高的权重,实验结果与

PageRank 算法的定义相符。

根据算法计算得到的 PageRank 值,可视化计算的结果。如图 4 右图所示,将网页映射至二维平面空间,散点的面积与 PageRank 值成正比。如图 4 左图所示,统计网页的 PageRank 值的取值范围,以及在权重范围内网页的数量。对比表 3 的统计信息,绝大多数的网页 PageRank 值较小,只有极个别的网页拥有较大的权重。绘制得到的统计柱状图符合“长尾”模型。

图 4: PageRank 统计信息可视化结果

本次实验聚焦于 PageRank 算法分析实现及其优化。在学习并分析了有关 PageRank 算法基础理论后,通过编程对于现实中的案例给出了一个相对原始的解。在此基础上,加入了对于网络结构恶劣情况下算法的改进,掌握了经典的随机游走算法。对于大规模数据,通过分块算法,对于数据进行处理,对于海量数据存储于预算给出了一个相对初级的解决方案。

在这次实验中,加深了对于链接分析与 PageRank 算法的认识,提升了对大规模数据集的处理能力。

互联网大规模数据挖掘与分布式处理(第二版) Jure Leskovec, Anand Rajaraman, Jeff Ullman

PageRank 算法:https://en.wikipedia.org/wiki/PageRank
通过分块算法,对于数据进行处理,对于海量数据存储于预算给出了一个相对初级的解决方案。

在这次实验中,加深了对于链接分析与 PageRank 算法的认识,提升了对大规模数据集的处理能力。

    以上就是本篇文章【链接分析–PageRank 算法分析实现及优化】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/news/11603.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 https://sicmodule.kub2b.com/mobile/ , 查看更多   
最新文章
手机贴膜硬核科普,一分钟搞懂8种手机膜的区别手机钢化膜「手机贴膜硬核科普,一分钟搞懂8种手机膜的区别」
创作立场声明:文中列举商品仅为示范作用,与品牌无关。说起手机贴膜,想必大家并不陌生,很多人拿到手机后的第一件事,就是贴膜
你以为它死了,其实它复活了,诺基亚手机回归带来十个疑问高颜值手机「你以为它死了,其实它复活了,诺基亚手机回归带来十个疑问」
  2008年1月16日,德国波鸿,在一次员工示威期间,一位诺基亚公司的女员工落泪。你以为它死了,其实它复活了,是的,说的就是
华为折叠手机2023新款价格 华为最新款手机折叠华为新款手机「华为折叠手机2023新款价格 华为最新款手机折叠」
折叠手机是智能手机的一种造型,柔性AMOLED屏幕是折叠手机的突破关键。寰宇舷窗,探索未来独创寰宇舷窗设计,以探索之姿洞见未⁠
139手机邮箱注册(139手机号邮箱注册)
  关于《139手机邮箱注册》的文章  在当今信息化社会,电子邮件已成为人们日常生活和工作中不可或缺的一部分。而手机邮箱因
信息门户手机信息「信息门户」
我校信息门户于2019年1月上线,与南京大学APP互为移动端服务补充,为师生提供在线服务、消息提醒、推文宣传等服务功能。 微信搜
手机能一直开着录音吗 手机一直开着录音行吗【详解】手机录音「手机能一直开着录音吗 手机一直开着录音行吗【详解】」
  能一直开着录音,但是要保证电量和储存空间的充足。一旦录音的储存空间被占满,录音就会停止,保证电量充足,可以边充边录音
张蔷属于昨天,更属于“明天”(音乐节)v i v o 手机「张蔷属于昨天,更属于“明天”(音乐节)」
张蔷,中国内地流行音乐代表人物,传奇天才女歌手,80年代中国流行文化偶像符号,21世纪迪斯科回潮的新女皇。 从小深受从事音乐
2k14手机(2k14手机版中文版下载)
  《2K14手机》:超越视觉的极致体验  在当今科技飞速发展的时代,手机已经成为了我们生活中不可或缺的一部分。而《2K14手机
适合情侣玩的手机游戏前五名 有适合两个人玩的游戏吗情侣手机「适合情侣玩的手机游戏前五名 有适合两个人玩的游戏吗」
游戏还是两个人一起玩有意思,特别是情侣之间,不但能娱乐,还能增进俩人之间的亲密感情。还有异地恋的情侣们,每天只能依靠煲电
创新之城,非凡园区!星海红领巾访园区展示中心v i v o 手机「创新之城,非凡园区!星海红领巾访园区展示中心」
创新之城 非凡园区红领巾寻访苏州工业园区展示中心 这里的街道宽敞整洁,很少见到密如蛛网的电线和凌乱的街边小店; 这里的马路