PageRank 算法介绍(斯坦福 CS224W《图机器学习》学习笔记)

本文是斯坦福 CS224W《图机器学习》课程 (2021) by Jure Leskovec 1 PageRank部分的学习笔记。

1. 简介

PageRank是一种由搜索引擎利用网页间超链接计算网页重要度的算法,常被称为网页排名、谷歌左侧排名。该算法是以Google公司创始人拉里·佩奇(Larry Page)的姓氏命名的,作为网页排名的重要要素之一。事实上,PageRank 可以定义在任意有向图上,后来被应用到社会影响力分析、文本摘要等多个问题。

虽然PageRank算法本身并不复杂,但它在搜索引擎领域的影响非常大,甚至至今仍在影响着Google的搜索结果。Google每天都会在整个网络图中计算PageRank。在搜索引擎优化(SEO)领域,PageRank算法被广泛应用,用来评估网页的优化效果。通过优化网页的超链接结构(link structure)和链接质量,可以提升网页的PageRank值,从而提高网页在搜索结果中的排名。

原论文:《The PageRank Citation Ranking: Bringing Order to the Web》
论文链接:http://ilpubs.stanford.edu:8090/422/1/1999-66.pdf

2. 基本理念

PageRank算法的基本想法是在有向图上定义一个随机游走模型,即一阶马尔可夫链,描述随机游走者沿着有向图随机访问各个结点的行为。PageRank表示这个马尔可夫链的平稳分布,每个结点的平稳概率值就是其PageRank值,它对每个网页给出一个正实数,表示网页的重要程度,整体构成一个向量,PageRank值越高,网页就越重要,在互联网搜索的排序中可能就被排在前面。PageRank 是递归定义的,PageRank 的计算可以通过迭代算法进行。

一个网页,如果指向该网页的PageRank值越高,随机跳转到该网页的概率也就越高,该网页的PageRank值就越高,这个网页也就越重要。PageRank值依赖于网络的拓扑结构,一旦网络的拓扑(连接关系)确定,PageRank值就确定。

PageRank 的计算可以在互联网的有向图上进行,通常是一个迭代过程。先假设一个初始分布,通过迭代,不断计算所有网页的PageRank值,直到收敛为止。

3. 模型

Web可以看作是一个有向图,由网页和超链接组成。在这个图中,每个网页被视为一个节点(Node),每个超链接被视为一条有向边(Edge),这些有向边描述了网页之间的引用关系,即一个网页指向其他网页的情况。

每个节点都包含着一些超链接 (hyperlinks),这些链接可以分为入链 (incoming links) 和出链 (outgoing links)。通常来说,入链比出链更为重要。此外,对于每个入链而言,来自important pages的链接比普通页面的链接更有价值。这意味着评估网页的重要性是一个 递归问题 \textbf{递归问题} 递归问题

3.1 The “Flow” Model

  • If page i \color{green}{i} i with importance r i \color{green}{r_i} ri has d i \color{green}{d_i} di out-links, each link gets r i / d i \color{green}{r_i/d_i} ri/di votes.

  • Page j \color{red}{j} j's own importance r j \color{red}{r_j} rj is the sum of the votes on its in-links r j = r i / 3 + r k / 4 \color{red}{r_j} = \color{green}{r_i/3} + \color{green}{r_k/4} rj=ri/3+rk/4

  • Then j \color{red}{j} j splits its importance equally to its out-links, which is the idea of the flow model of PageRank.

Figure 1
  • A page is important if it is pointed to by other important pages.
  • Define “rank” r j r_j rj for node : r j = ∑ i → j r i d i (1) r_j=\sum_{i \rightarrow j} \frac{r_i}{d_i} \tag{1} rj=ijdiri(1)
    Where d i d_i di is the out-degree of node j j j.
Figure 2: The web in 1839

“Flow” equations for this web:

  1. r y = r y / 2 + r a / 2 r_y = r_y /2 + r_a /2 ry=ry/2+ra/2
  2. r a = r y / 2 + r m r_a = r_y /2 + r_m ra=ry/2+rm
  3. r m = r a / 2 r_m = r_a /2 rm=ra/2

你可能会想:我们就用高斯消元法来求解这个线性方程组吧。 Bad idea!因为它不Scalable。一种更elegant且scalable的方法是使用矩阵。

3.2 Matrix Formulation

我们现在把graph表示为一个随机邻接矩阵 Stochastic adjacency matrix 𝑴(转移矩阵)

Figure 3: 转移矩阵M, i 行 j 列 = 1/3
  • 我们让 page j j j d j d_j dj 个出链 (out-links),如果 j → i j \rightarrow i
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值