【论文笔记】Watch Your Step

【论文笔记】Watch Your Step

论文名称:Watch Your Step: Learning Graph Embeddings Through Attention

这篇文章的出发点是自动化选择网络表示学习的参数从而适应不同网络的需求。同时文章也证明了DeepWalk的工作其实等同于矩阵分解。

Introduction

文章分析了之前一些工作的一个不可避免的问题,那就是模型参数的选择问题。对于不同的网络,模型能达到最好效果的参数是不同的,如果对于每个新出现的问题都要反复试验找到合适的参数,这显然是低效的。这些参数包括DeepWalk中窗口大小w的选取,node2vec中定义的两个跟随机游走有关的参数p、q。参数的选取完全影响着模型的好坏。

这些参数其实构成的是一个关于采样节点的一个概率分布,以DeepWalk中的w为例,对于随机游走的每一个节点v,采样的节点为v的w邻域的2w个节点,而采样每个节点的概率就是 \frac{1}{2w} ,这实际上就是一个采样节点的均匀分布。本文的思想就是将这些超参数作为要学习的参数,这样就能自动学习出最适合网络的超参数。

具体要做的有以下几点:

  • 把随机游走中对节点的上下文采样过程看成是对转移概率矩阵的期望。
  • 通过证明DeepWalk等同于矩阵分解发现上述的采样过程对应的目标是k阶转移概率矩阵。在这个不同的k阶转移矩阵前的系数就定义了一种对节点不同的采样过程。引入Attention Model自动学习这些系数,从而达到最好的采样效果。
  • 用Attention Model学习出来的参数和人工调出来的参数效果差不多,进一步证明了方法的可行性。

Related Works

相关工作中提到了两种图学习算法:

一种是为网络的每个节点或每条边预测一个label。

The first class is concerned with predicting labels over a graph, its edges, and/or its nodes. Typically, these algorithms process a graph (nodes and edges) as well as per-node features.

一种是网络嵌入的方法。

The second class of algorithms consist of graph embedding meth- ods. Their primary goal is to preserve the graph structure. They explicitly model the relationship of all node pairs e.g. as dot product of node embeddings.

Preliminaries

首先定义了网络嵌入,这篇文章的定义与之前的不太一样,它将网络嵌入的优化目标定义为:

\min \limits_{Y} L(f(A),g(Y))

说明一下这个式子:A是邻接矩阵;Y是网络每个节点的d维向量表示,是要学习的; f(A) 是对邻接矩阵的一个变换, f : \mathbb R^{|V|×|V|} \rightarrow \mathbb R^{|V|×|V|} g(Y) 则是对Y的一个变换, g : \mathbb R^{|V|×|d|} \rightarrow \mathbb R^{|V|×|V|} ,注意变换后的维数。L则是这两个 |V|×|V| 维矩阵的损失函数或者说度量这两个矩阵的距离。距离越小说明两个矩阵越相似,也就是要优化的目标。

举个例子,当 f(A)=Ag(Y)=L \cdot R^T ,L和R是Y的一个分解,度量的距离设为F范数,对照上面的公式,可以将损失函数写成:

\min \limits_{L,R} || A - L ×R^T||_F

文章用似然函数作为网络嵌入的优化目标,最大化这个似然函数:

解释一下这个似然函数:函数 g:V×V \rightarrow \mathbb R 是用来量化某条边(v,u)的,举个例子: g(v,u) = L^T_vR_u\mathbb I[ \cdot] 是指示函数,如果内部条件为真,值为1,否则为0; D_{vu} 表示在w窗口范围内,节点v和节点u同时访问到的次数。最大化这个似然函数的目标就是:当 D_{vu} 很大的时候希望 \sigma (g(v,u)) 越趋近1,表示v和u出现概率越高;如果(v,u)不是图中的边,那么希望 \sigma (g(v,u)) 趋近于0,表示v和u出现概率越低。

上面的式子取负对数得到:

其中 \circ 代表hadamard积,就是矩阵中对应元素的积,即 (A \circ B){ij} = A{ij} \cdot B_{ij}

||\cdot ||_1 代表1-范数,就是矩阵中所有元素之和。

Method

对于上面的模型,我们将 f(A) 表示为 \mathbb E[D] 的形式(我不知道该怎么翻译这个,这里贴上英文解释)

\mathbb E(D) is an expectation on co-occurrence matrix produced from simulated random walk.

\mathcal T 是转移概率矩阵,这个矩阵我们在GraRep那篇文章中提到过,可以通过度矩阵和邻接矩阵直接计算。

p^{(0)} \in \mathbb R^{|V|} 是一个初始的随机游走概率分布,比如如果对于每个节点都游走80次,那么这个分布就是(80,80,...,80),根据转移矩阵和这个分布可以算出游走一次后的分布,计算公式为:

p^{(1)} = {p^{(0)}}^T \mathcal T

同理可以算出游走k次后的分布:

p^{(1)} = {p^{(0)}}^T (\mathcal T)^k

下面以DeepWalk为例来计算 \mathbb E[D^{DeepWalk[C]}]

在一个随机游走总,对一个锚点(anchor node) v_i 采样它的w个邻居节点,每个邻居被采样的概率服从均匀分布,如果这个w是一个变量,那么考虑在这个变量下的期望为:

这里的 Pr(c \geq k ) 的意思是,对于k从1变化到C时,取到与锚点距离大于等于k的概率:

进而推导出下面的式子:

中间 \sum_{k=1}^{C} [1-\frac{k-1}{C}] 是一个递减的概率分布。在一个随机游走序列 (v_0,v_1,...) ,对于某一个特定的 v_i 来说,它的邻居节点对它的表示影响因子是不同的。这个递减的分布对应的意义就是离 v_i 越近的节点对它的表示影响越大,影响因子可以看成是 v_{i+1}+(1-\frac{1}{C})v_{i+2}+(1-\frac{2}{C})v_{i+3}+ \cdot \cdot \cdot + \frac{1}{C} v_{i+C}

这种递减的分布并不唯一,我们还能找出其他类似的分布,比如GloVe中就用了 \sum_{k=1}^C \frac{1}{k} 这样的递减概率分布,可以把它的期望写成这样:

这个 \tilde{P}^{(0)} 又是个什么东西呢?举一个之前的例子,如果对每个节点都安排80次随机游走,那么就初始化为 \tilde{P}^{(0)}:=diag(80,80,...,80) 。这样的初始化会导致 D_{vu} 实际上就是:如果我们以v为根节点进行80次随机游走,节点u在随机游走中被访问次数的期望值。

上面举的例子实际上就是找到一个概率分布 Q=(Q_1,Q_2,...,Q_C) 作用在 \mathcal{T}(\mathcal T)^k 上,换句话说,就是给每个 (\mathcal T)^k 安排一个系数 Q_k ,这些系数构成一个概率分布。那么之前的公式就可以写成:

现在的目标就是去自动学习这个Q的分布,从而让它适应网络的需求。直观点理解就是,如果某个网络嵌入需要依赖的邻居节点范围比较小,也就是只有小范围的邻居节点对当前节点的表示有影响,那么可能只需要 Q_1,Q_2,Q_3 就足够了;而如果网络嵌入依赖的邻居节点范围比较大,并且每个邻居影响都差不多的话,那么Q可能就是一个这样的均匀分布 Q_1=Q_2=Q_3=...=Q_{10}=\frac{1}{10} 。文中是用Attention Model的方法去自动学习这个Q的分布的,文中介绍了两种不同的Attention Model模型。

第一种是Softmax Attention模型:

(Q_1,Q_1,Q_3,...) = softmax((q_1,q_2,q_3,...))

q_k 是模型要学习的参数。需要说明的是,对于 Q=(Q_1,Q_2,...,Q_C) 这个概率分布,如果网络需要表示需要的随机游走长度比较小的话,则对应C的值比较小,Q会更偏向于 {Q_1,Q_2} ,也就是说权重会更大,而剩下的权重加和约等于0,表明它们对网络表示的影响不大;如果网络需要表示需要的随机游走长度比较大的话,则对应的C比较大,表明网络表示可能更关注长度比较长的节点联系。同样可以写出期望的形式:

第二种是 λ Geometric Decay Attention模型:

对应的概率分布为:

最后期望写成:

最终,本文的损失函数为:

其中q是Attention Model的参数,L、R是要学习的网络表示( \mathbf {L,R} \in \mathbb R^{|V|×\frac{d}{2}} ),第一项是对参数进行L2正则化。

Experiments

在实验过程中有几点需要注意的:

  1. 在链接预测任务中,首先将一张图去除掉一半已有的边( E_{test} ),剩下的边为 E_{train} 。再取一些不属于不存在于原图的边构成 E_{train}^-E_{test}^-(E_{train},E_{train}^-) 作为训练集训练和选择模型, (E_{test},E{test^-}) 作为测试集评测效果。
  2. 不同的网络达到最好情况需要的上下文信息不同,即参数C不同,看起来很相似的网络可能需要的C完全不同。
  3. 对于大部分网络来说, Q_1,Q_2 就够了。

总结

本文的主要思想就是通过Attention Model自动化学习网络中的参数,将网络中的参数看成随机游走中对邻居采样的一种概率分布,通过学习最适应网络的这种分布达到好的网络表示结果。总之这篇文章感觉很难说,思想很好理解,但是说起来却很麻烦。可能还是理解的不够透彻吧。

编辑于 2019-07-02 10:16