当前位置:
文档之家› 中文搜索引擎中的PageRank算法及实现
中文搜索引擎中的PageRank算法及实现
对应网页的排序值向量 ), 则有 =
的一个特征向量, 我们希望得到 的主特征向量。这可以通 过将 先与任何常态初始向量 相乘并不断地乘以更新的 获 得, 也就是说网页的排序初始值可以为任意常数参加运算。
1.2
汇点的处理
但 PageRank 的原始算法在运算中会出现一个问题。假
如恰巧有两个 ( 或多个 ) 网页它们互相链接形成环路, 但没有到 其它网页的链出,同时它们又有来自其它网页来的至少一个 链入, 在循环运算中, 这个环路将使这些网页累积排序值而不 把排序值分配出去。这对于其它网页的排序是不公平的,我 们把这种环路陷阱称为汇点。 为了解决这个问题, Lawrence 引入另一种方法。 令 = + 为 一些与排序源相关的网页向量, 为网页排序值, 计算公式为 需满足条件: || ||1=1 (|| ||1=1 代表 的 1 范数 )。在计算初 始,被最大化。如果 为正量,则计算过程中 必须减小以保 持等式的平衡,相当于一个衰退因子。这种方法相当于建立 一个随机浏览模型。 从直觉意义上讲, 假如网络链接图中存在汇点, 那么随机 浏览者在陷入该环路后, 会因为厌倦这条路径而跳出, 浏览其 它的网页而不是在这个循环里不断地继续下去。 是跳出的 网页集合。一般情况下, 由人工经验决定。 由于 的特殊用途, 网络浏览者在厌倦某个网页循环之后 会定期地转跳到 中的网页。 这使得 包含的网页有了较其它 网页较高的访问率, 无形中提升了这些网页的重要性。于是, 这种机制带来了另一个问题—— 的引入一方面解决了汇点 带来的不公平性, 另一方面又引起了 网页与其它网页之间的
摘 由 于 网页 质 量 千 差 万 别 , 对 网 页 进 行 基 于网 络 链 接 图 的 质 量排 序 变 成 了 现 代 搜索 引 擎 的 一 个 重 要部 件 。 分析了对 要: 网络 排序模块的实现 进行优化时, 造成大规模 稀疏矩阵 - 向量乘 法运算低效的 原因, 并结 合网络链接图的 实际情况提出 了几 种不 同的优化策略。然 后, 对几种优化策 略做了实验性 能比较, 并综合考 虑各种优化策 略的运算效率和 存储量需求, 选 择了 适合 实际系统的优化 策略。同时, 提 出 PageRank 算法在 实现时的一个变 通处理 — — 除 汇。 搜索引擎 ; 网页排序 ; 网络 链接图 ; 稀疏矩 阵 ; 汇点 关键 词 : TP393 中图 法分类号 : A 文献标 识码 : 1000-7024 (2007) 07-1632-04 文章编号 :
[3]
矛盾。 于是我们想了另外一个办法来解决这个问题——除汇。 除汇的宗旨其实非常简单,就是把网络链接图中的所有汇点 在进行 PageRank 计算前从网络链接图中除去。 在计算完 PageRank 值后, 再将汇点带回进网络链接图进行一次运算。 通过分析网络链接图我们发现,汇点一般出现在除去叶 链后网络链接关系的末层。这是由于网页之间的相互链接本 来就比较频繁,加上除去叶链后容易使一些网页的出度锐减 为一从而形成汇点。但是汇点出现的概率比较低,而且都是 一些小规模的环路, 一般为 3 个或两个网页形成汇点。
第 28 卷 第 7 期 Vol. 28 No. 7
计算机工程与设计
Computer Engineering and Design
2007 年 4 月 Apr. 2007
中文搜索引擎中的 PageRank 算法及实现
琚洁慧 1,2
(1. 浙江大学,浙江 杭州 310027;2. 浙江科技学院,浙江 杭州 310023)
2
高效的 PageRank 算法的实现
当网络链接图用矩阵形式表示时该矩阵呈稀疏状态。 所 的计算中, 为了使计算能够达到高效, 最重要的是
排序值的总和为一个常数 (本系统中令网页排序值总和为 1.0)。 我们先定义一个简单的排序, 为简化的排序值 = 这里有两点需要注意: ①一个网页在为它的链出网页分 配排序值时总是平均分配; ②因为存在一些网页没有链出所 以会丢失一部分排序值, 由此 <1。 计算过程从为每个网页任意分配排序初始值开始, 然后 进行迭代运算,直到结果收敛。如果我们用稀疏矩阵的形式 行列 来表示网络链接图, 令 为一个代表网络链接图的方阵, 值分别代表每个网页节点。 如果从网页 到网页 有一条链接, 则
1
网页排序
对网页质量的衡量从本质上讲是一个人为的判断。 影响
收稿日期:2006-03-28 E-mail:jjh1mail@ 作者简介:琚洁慧 (1977-),女,浙江杭州人,硕士,讲师,研究方向为人工智能。
- 1632 -
率上考虑,PageRank 算法由于在用户查询前就对所有的网页 进行了网页排序, 因此速度比较快。 Brian Amento 曾通过实验 认为各网页排序算法在结果上差异不大 , 所以我们在实际系 统中采用了 PageRank 算法以提高效率。
1.1
PageRank 算 法
Lawrence 提出的 PageRank 算法的初始描绘是这样的: 如
果一个网页的链入网页的排序值总和高,则这个网页的排序 值高。这里包含了两种情况: 网页拥有很多链入、 网页链入数 少但是链入网页的排序值高。 假设有网页 ,令 入网页集合, =| 表示 的链出网页集合, 表示 的链 | 表示 的出度, c 为规范因子, 使所有网页
2.1
分块技术
分块技术主要指寄存器分块, 是使用得比较广泛的一种
=1/ ; 如果没有链接, 则
,
=0。视 为网页向量 ( 在这里 。所以 是特征值为 的
优化技术。其中固定大小分块技术是通过寻找一个合适的分 块大小将矩阵分割为一组固定尺寸的稠密分块矩阵参加运算。 稠密块一般不包含零元,而固定尺寸既要适合目标计算机的 寄存器的容量, 又要合适于原稀疏矩阵的具体情况。在 = × 的计算中 (其中 为 × 稀疏矩阵, 和 为稠密向量 ), 分块提 高了向量 的重用, 从而减少了一些系统开销; 同时还提高了 编译器在存储器并行运算调度执行方面的能力。 Ali Pinar 在文献 [5] 中提出了行压缩分块存储策略。这种 策略的核心是挖掘出稀疏矩阵内部的连续非零元并将其打包。 与固定大小分块不同的是,这种策略下的分块将没有固定尺 寸。这允许将更长的非零元串打包进一个分块。但这种策略 的缺点在于它虽然减少了较多的额外读取操作次数,但在稀 疏矩阵乘法运算中需要三层循环, 从而引起额外的循环开销。 如果分块的尺寸比较小,循环开销将抵消掉由减少读取操作 带来的好处。因此,该策略的性能将由矩阵的特定结构直接 决定。只有当分块足够大的时候,也就是说稀疏矩阵中连续 非零元足够多时, 总的存储体积才能有明显降低, 运算性能才 能得以提高。 为了解决这个问题,提出一个改进策略——限定长度行 压缩 分 块 存 储 (specified-size blocked compressed row storage, SSBCRS)。 其核心为将长度小于 (2≤l≤ ) 的连续 / 非连续非零 元存储在一个矩阵, 长度大于等于 的连续非零元存储在另一 个矩阵, 在稀疏矩阵 - 向量乘法运算中分别进行计算。我们举 个例子做简单说明, 如图 1 所示。 稀疏矩阵 被分割成两个矩阵 1 和 2。对于 1, 我们采用 行压缩分块存储策略; 对于 2, 我们采用 CRS 或其它高效存储 策略。实验结果证明, 采用该策略进行稀疏矩阵 - 向量乘法运 算时, 能够取得比上述两种策略都好的效果。因为 1 中, 每块
Realization of PageRank algorithm in Chinese search engine
JU Jie-hui1,2
(1. Zhejiang University, Hangzhou 310027, China; 2. Zhejiang University of Science and Technology, Hangzhou 310023, China)
Abstract:Web page ranking model based on web link graph becomes a vital part of modern search engines. The causes resulting in the low efficiency of large-scale sparse matrix-vector multiplication are analyzed. Then, combined with the web link graph, several optimizing strategies based on the experience from other scholars are brought forward. After that, several optimizing strategies are choosen for experimental compare, and the best strategies are selected through the strict compare at both time efficiency and memory requirement. At the same time, it introduce an alternative solution in the realization of PageRank algorithm—removing of rank sinks. Key words:search engine; web page ranking; web link graph; sparse matrix; rank sink
0
ቤተ መጻሕፍቲ ባይዱ
引
言
Internet 正以 200 % 的用户增长率迅速发展, 成为人们工作 和生活不可缺少的信息来源。与此同时, Web 文件具有分布、 动态变化、 结构复杂等特点, 使得用户根本无法了解庞大的、 瞬 息万变的信息资源。 由此, 人们在信息海洋中搜索自己所需要 的信息的能力显得愈发重要。 如今, 网络信息检索的发展已初 具规模, 搜索引擎成了人们在网上检索信息的必要工具。 在经典的信息检索系统中,系统的性能一般由 3 方面评 定: 查全率、 查准率、 前 10 个页面的查准率。同时, 我们还需 要考虑该系统的搜索效率。在网络信息检索系统中, 由于网 页的质量千差万别, 所以检索结果仅与主题相关还远远不够。 现代搜索引擎重视的, 已不再是简单地向用户提供与查询条 目相关的页面信息, 利用网络链接结构来提高检索结果质量 的方法开始获得重视。 为了使现代搜索引擎能够达到人们日 益增长的高性能要求, 我们特别对搜索引擎中的网页排序模 型进行了性能上的优化与实现。