【学习笔记】- PageRank算法以及相关的算法变形

PageRank算法以及相关的算法变形

pagerank

PageRank算法的基本概念和目标
PageRank算法是一种用于网页排序的算法,他是有Google创始人拉里·佩奇和谢尔盖·布林于1998 年提出。该算法的基本思想是基于有向图上的随机游走模型,这是一个一阶的马尔可夫链。PageRank描述了一种随机游走者如何在图中的边进行随机移动,从一个节点访问到另一个节点的过程。在一定条件下,这种随机游走过程会收敛到一个平稳分布,在这个分布中,每个节点被访问的概率为其PageRank值,这个值可以被解释为节点的重要性。值的注意的是,PageRank是递归定义的,也就是说一个页面的PageRank值部分地取决于链接到他的其他页面的PageRank值。因此,计算pageRank值通常需要使用迭代方法。

PageRank算法的基本原理
PageRank是一种基于图论的算法,其基本思想是将网页的重要性分配给链接到他的其他网页。在图论中,有向图是由顶点和边组成的,每条边都有方向,节点是图中的代表元素。PageRank的核心思想是数量假设和质量假设:数量假设指的是一个网页接收到的其他网页指向的入链(in-links)越多,说明该网页越重要;质量假设则是当一个质量高的网页链接到某个网页时,该网页的重要性也会相应提高。
PageRank算法并不计算直接链接的数量,而是将从网页A指向网页B的链接解释为由网页A对网页B所投的一票。此外,PageRank存在唯一平稳分布,并且当时间趋于无穷时状态分布将收敛于这个唯一的平稳分布。
PageRank算法的输入是一个由超链接构成的有向图和一个阻尼因子(通常取值为0.85),输出每个页面的PageRank值。阻尼因子是一个介于0和1之间的值,用于防止指数衰减过快,使得那些只有少量入链的页面不会被完全排除在外。PageRank值可以理解为一个页面的重要性或权重。
引入阻尼因子的原因
在PageRank算法中,"Dead Ends"和"Spider Traps"是两种常见的问题。为解决dead ends以及Spider traps的问题在该算法计算时引入阻尼因子降低该问题对于算法结果的影响。

Dead Ends是指某些网页由于缺乏出链,导致其无法接收到其他网页的链接投票,从而陷入孤立状态,其PageRank值难以提升。这种情况可能会导致一些重要页面的重要性无法得到充分体现。

Spider Traps则是指某些网页通过大量的入链吸引爬虫,但这些入链并不导向实质性的内容,而是导向一些没有实质内容的网页,形成一种闭环,使得爬虫陷入其中,导致有价值的页面无法被充分检索和索引。

为了解决这两种问题,PageRank引入了一个“穿越机制”(Teleport),即在每次迭代时,一部分重要度会以β的权重沿out-links传播,同时以1-β的权重全局分布到所有节点。这样可以保证即使某些页面陷入死循环或者孤立,它们仍然可以通过全局分布的重要度得到一定的PageRank值,避免重要性迭代失败。然而值得注意的是,虽然β参数可以在一定程度上缓解Dead Ends和Spider Traps的问题,但使用β解决Dead Ends问题时,修正后的转移概率矩阵可能不满足列之和为1的性质。

主题敏感

主题敏感的PageRank是PageRank算法的一个改进版本,这种算法已被Google使用在个性化搜索服务中。基本思想是通过离线计算出一个与某一主题相关的PageRank向量集合,即计算某个页面关于不同主题的得分。这个过程主要分为两个阶段:主题相关的PageRank向量集合的计算和在线查询时主题的确定(即在线相似度的计算)。

在确定话题分类的阶段,主题敏感PageRank参考ODP网站(www.dmoz.org),定义了16个大的主题类别,包括体育、商业、科技等。ODP (Open Directory Project)是一个人工整理的多层级网页分类导航站点,在顶级的16个大分类下还有更细致的小粒度分类结构。

在具体计算流程中,首先需要确定主题分类,然后对每一个主题分别保持向量,并找到关联用户主题倾向的方式,根据用户的主题进行分类,最后按照相似度对主题敏感页进行排序。这样,主题敏感的PageRank不仅可以量化网页的主题相关性,还可以有效地提升搜索结果的相关性和用户体验。

例题

计算PageRank的两种算法(通过方程式的到的结果与通过迭代法后获得的平稳的结果一致)
【学习笔记】- PageRank算法以及相关的算法变形_第1张图片

【学习笔记】- PageRank算法以及相关的算法变形_第2张图片

你可能感兴趣的:(算法,数据结构)