图神经网络(CS224w)学习笔记4 Link Analysis: PageRank (Graph as Matrix)


本章主要内容:

  • 将图视为矩阵(邻接矩阵)的形式,以线性代数的角度来学习PageRank、随机游走和图嵌入。
  • PageRank是一种衡量网络中节点重要性的指标,主要思想是如果一个节点被很多重要节点指向,那么该节点也很重要。
  • 可以从flow model / 线性方程组、power iteration(矩阵视角)、web surfer随机游走三种角度来看PageRank。
  • 求解PageRank的方法:power iteration。
  • 在求解PageRank的过程中会遇到spider traps和dead ends的问题,可以通过random teleport解决。M / G 是随机游走的概率转移矩阵。
  • Personalized PageRank和Random Walk with Restarts(可用于衡量图中节点间相似性,如应用于推荐问题):主要区别在于teleport sets。
  • 节点嵌入问题可以视作矩阵分解问题。

一、Graph as Matrix

  1. 本节课研究矩阵角度的图分析和学习。
  2. 这里的矩阵就是指邻接矩阵。
  3. 将图视为矩阵形式,可以通过随机游走的方式定义节点重要性(即PageRank),通过矩阵分解matrix factorization (MF)来获取节点嵌入,将其他节点嵌入(如node2vec)也视作MF。

二、PageRank / the Google Algorithm

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

2.1 Web as a Graph

如果将Web当作是一个图,其中Web中的网页作为图的节点,Web中的超链接作为图的边。
在这里插入图片描述
有一些问题会影响我们如何定义节点(但是本节课暂时不考虑这些问题):
4. Dynamic pages created on the fly2
5. dark matter:不可达(如有密码等)的database generated pages

一个网页之间互相链接的情况的示例:
在这里插入图片描述
在早期的Web链接是导航的,今天很多链接都是事务性的(不是用来从一个页面跳转到另一个页面,而是用来发布、评论、喜欢、购买……)
本课程中主要仅考虑那种网页之间互相链接的情况。
将网页看作有向图,以链接指向作为边的方向(这个网页/节点能直接跳转到的网页就作为其下一个节点successor)
在这里插入图片描述
其他可表现为有向图形式的信息网络示例:论文引用,百科全书中词条间的互相引用。
在这里插入图片描述

2.1.1 节点的重要性

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

  1. 网页排序 PageRank
  2. 个性化的网页排序 Personalized PageRank (PPR)
  3. 重新开始的随机游走 Random Walk with Restarts(RWR)
衡量节点重要性

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

2.2 PageRank: The “Flow” Model

来自重要页面的“投票”更有价值:

  1. 链接权重与其source page的重要性成正比例
  2. 如果网页 i i i的重要性是 r i r_i ri ,有 d i d_i di个out-links,那么每个边的权重就是 r i / d i r_i/d_i ri/di
  3. 网页 l l l的重要性 r j r_j rj是其in-links上权重的总和。
    在这里插入图片描述
  4. 从而得到对节点 j j j 的级别 r j r_j rj r的定义: r j = ∑ i → j r i d i r_j=\sum\limits_{i\rightarrow j}\frac{r_i}{d_i} rj=ijdiri d i d_i di 是节点 i i i 的出度)
  5. 以这个1839年的网络为例:
    在这里插入图片描述
  6. 在直觉上我们好像可以用高斯消元法(Gaussian elimination)来解这个线性方程组,但此方法的算法时间复杂度为 O ( N 2 ) O\left( N^2 \right) O(N2),也可以看出这种方法不好用。所以我们寻找更好用的矩阵形式解法。

2.3 PageRank: Matrix Formulation

  1. 建立随机邻接矩阵(stochastic adjacency matrix)M:网页 j j j d j d_j dj条出边,如果 j → i , M i j = 1 d j j\rightarrow i,M_{ij}=\frac{1}{d_j} jiMij=dj
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值