文章目录
本章主要内容:
- 将图视为矩阵(邻接矩阵)的形式,以线性代数的角度来学习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
- 本节课研究矩阵角度的图分析和学习。
- 这里的矩阵就是指邻接矩阵。
- 将图视为矩阵形式,可以通过随机游走的方式定义节点重要性(即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种用以计算图中节点重要性的方法:
- 网页排序 PageRank
- 个性化的网页排序 Personalized PageRank (PPR)
- 重新开始的随机游走 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
来自重要页面的“投票”更有价值:
- 链接权重与其source page的重要性成正比例
- 如果网页 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。
- 网页 l l l的重要性 r j r_j rj是其in-links上权重的总和。
- 从而得到对节点 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=i→j∑diri ( d i d_i di 是节点 i i i 的出度)
- 以这个1839年的网络为例:
- 在直觉上我们好像可以用高斯消元法(Gaussian elimination)来解这个线性方程组,但此方法的算法时间复杂度为 O ( N 2 ) O\left( N^2 \right) O(N2),也可以看出这种方法不好用。所以我们寻找更好用的矩阵形式解法。
2.3 PageRank: Matrix Formulation
- 建立随机邻接矩阵(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} j→i,Mij=dj