【斯坦福大学公开课CS224W——图机器学习】四、Link Analysis: PageRank

【斯坦福大学公开课CS224W——图机器学习】四、Link Analysis: PageRank

文章目录

  • 【斯坦福大学公开课CS224W——图机器学习】四、Link Analysis: PageRank
    • 1.PageRank
      • 1.1 PageRank: The “Flow” Model
      • 1.2 PageRank: Matrix Formulation
      • 1.3 Connection to Random Walk
      • 1.4 PageRank总结
    • 2.PageRank: How to solve?
      • 2.1 PageRank的问题及其解决方案
        • 2.1.1 spider traps解决方案:random jumps or teleports
        • 2.1.2 dead ends解决方案:random jumps or teleports
      • 2.2 整体解决方案:random teleport
    • 3. Random Walk with Restarts & Personalized PageRank
      • 3.1 Random Walks
    • 4.Matrix Factorization and Node Embeddings

1.PageRank

PageRank是谷歌搜索用的算法,用于对网页的重要性进行排序。在搜索引擎应用中,可以对网页重要性进行排序,从而辅助搜索引擎结果的网页排名。

在现实世界中,将整个互联网视作图:将网页视作节点,将网页间的超链接视作边。

在图中,我们想要定义节点的重要性importance,通过网络图链接结构来为网页按重要性分级rank。以下将介绍3种用以计算图中节点重要性的方法:

  • PageRank
  • Personalized PageRank (PPR)
  • Random Walk with Restarts (RWR)

衡量节点重要性:认为一个节点的链接越多,那么这个节点越重要。
有向图有in-coming links和out-going links两种情况。可以想象,in-links比较不容易造假,比较靠谱,所以用in-links来衡量一个节点的重要性。可以认为一个网页链接到下一网页,相当于对该网页重要性投了票(vote)。所以我们认为一个节点的in-links越多,那么这个节点越重要。
同时,我们认为来自更重要节点的in-links,在比较重要性时的权重vote更大。
这就成了一个递归recursive的问题——要计算一个节点的重要性就要先计算其predecessors的重要性,计算这些predecessors的重要性又要先计算它们predecessors的重要性……

1.1 PageRank: The “Flow” Model

  • 链接权重与其source page的重要性成正比例
  • 如果网页 i 的重要性是r_i,有 d_i个out-links,那么每个边的权重就是 r i / d i
  • 网页 j 的重要性 r_j 是其in-links上权重的总和

img

1.2 PageRank: Matrix Formulation

在这里插入图片描述

1.3 Connection to Random Walk

假想一个web surfer的随机游走过程,在 t 时间在网页 i 上,在 t+1 时间从 i 的out-links中随机选一条游走。如此重复过程。
向量 p ( t )的第 i 个坐标是 t 时间web surfer在网页 i 的概率,因此向量 p ( t ) 是网页间的概率分布向量。
在这里插入图片描述

在这里插入图片描述

1.4 PageRank总结

  • 通过网络链接结构衡量图中节点的重要性
  • 用随机邻接矩阵M建立web surfer随机游走模型
  • PageRank解方程:r = M ⋅ r,r 可被视作M的principle eigenvector,也可被视作图中随机游走的stationary distribution

2.PageRank: How to solve?

在这里插入图片描述

power iteration method 幂迭代法

在这里插入图片描述

2.1 PageRank的问题及其解决方案

PageRank算法中会出现两个问题,分别是死胡同(Dead End)问题和蜘蛛网陷阱(Spider Traps)。

  • spider trap:所有出边都在一个节点组内,会吸收所有重要性
  • dead end:没有出边,造成重要性泄露

在这里插入图片描述

img

2.1.1 spider traps解决方案:random jumps or teleports

random surfer每一步以概率 β \betaβ 随机选择一条链接(用 M ),以概率 1 − β 随机跳到一个网页上(β一般在0.8-0.9之间)
这样surfer就会在几步后跳出spider trap

2.1.2 dead ends解决方案:random jumps or teleports

从dead-ends出发的web surfer随机跳到任意网页(相当于从dead end出发,向所有节点连了一条边)

2.2 整体解决方案:random teleport

random surfer每一步以概率 β 随机选择一条链接(M),以概率 1 − β 随机跳到一个网页上。

在这里插入图片描述

3. Random Walk with Restarts & Personalized PageRank

推荐问题(一个由user和item两种节点组成的bipartite graph)图节点间相似性(针对与item Q交互的user,应该给他推荐什么别的item?)

但是我们如何量化这个相似性呢?

3.1 Random Walks

每个节点都有重要性,在其边上均匀分布,传播到邻居节点。

对 query_nodes 模拟随机游走:

  • 随机游走到一个邻居,记录走到这个节点的次数(visit count)
  • 以 alpha 概率从 query_nodes 中某点重启
  • 结束随机游走后,visit count最高的节点就与 query_nodes 具体最高的相似性(直觉上这就是 query_nodes 最容易走到、最近的点了)

4.Matrix Factorization and Node Embeddings

在这里插入图片描述

将节点嵌入视作矩阵分解:

在这里插入图片描述

通过矩阵分解和随机游走进行节点嵌入的限制

  • 无法获取不在训练集中的节点嵌入,每次新增节点都要对全部数据集重新计算嵌入
  • 无法捕获结构相似性:比如图中节点1和节点11在结构上很相似,但是节点嵌入会差别很大(随机游走走不过去)
  • 无法使用节点、边和图上的特征信息

你可能感兴趣的:(图机器学习课程笔记,机器学习,算法,图神经网络)