Graph-Bert:无所不能的Bert在图上也能发光发热?

主要参考论文:《GRAPH-BERT: Only Attention is Needed for Learning Graph Representations》

概述

传统的GCN模型往往存在假死问题(suspended animation problem)和过平滑问题(over-smoothing problem)而且过于依赖结点间的连边,不利于并行计算。针对以上问题,Graph-Bert摒弃了图卷积和邻居消息聚合操作,就像题目一样,完全只使用attention机制。

跟Bert一样,Graph-Bert也是先预训练,再根据具体任务做微调。预训练任务包括结点属性重构和结构重构;下游任务有结点分类和图聚类。
在这里插入图片描述

结构

在这里插入图片描述
Graph-Bert分为5个部分:1)linkless subgraph batching;2)node input embedding;3)graph-transformer based encoder;4)representation fusion;5)the functional component。

linkless subgraph batching

首先通过PageRank在完整图中计算出结点间的亲密矩阵 S S S(intimacy matrix)。

S = α ⋅ ( I − ( 1 − α ) ⋅ A D − 1 ) − 1 S=\alpha \cdot \left ( I-\left ( 1-\alpha \right )\cdot AD^{-1}\right )^{-1} S=α(I(1α)AD1)1

对于每个结点 v i v_i vi,我们根据 S S S找到与其最近的k个邻居(称为结点 v i v_i vi的上下文)。 v i v_i vi和它的上下文构成一个无连边的子图 g i g_i gi。如此,每个结点都对应一个子图,完整图就可以表示为 G = { g 1 , g 2 , ⋅ ⋅ ⋅ , g ∣ V ∣ } G=\left \{g_{1},g_{2},\cdot \cdot \cdot ,g_{\left | V\right |}\right \} G={g1g2,,gV}。这样就可以用一定数量的子图作为一个batch了。
注:结点的上下文既包含局部邻居,也包含距离较远的邻居。

node input embedding

结点embedding有4种:i) Raw Feature Vector Embedding;ii) Weisfeiler-Lehman Absolute Role Embedding;iii) Intimacy based Relative Positional Embedding;iv) Hop based Relative Distance Embedding。

Raw Feature Vector Embedding

即结点的原始特征经过嵌入层得到的embedding。

e j ( x ) = E m b e d ( x j ) ∈ R d h × 1 e_{j}^{\left ( x\right )}=Embed\left ( x_{j}\right )\in R^{d_{h}\times 1} ej(x)=Embed(xj)Rdh×1

其中, x j x_{j} xj为结点 v j v_j vj的原始特征,可以是one-hot、n-hot等。

Weisfeiler-Lehman Absolute Role Embedding

Weisfeiler-Lehman (WL)测试常用于图同构问题。例如判断下面两个图是否同构,先为每个结点标记同一种颜色,然后对结点及其邻居的颜色序列进行hash得到新的颜色,不断迭代直至收敛,最终每个结点会根据其在图中的结构角色被标记一种颜色,根据不同颜色结点的比例可以判断两个图是否可能同构(必要不充分)。
在这里插入图片描述
利用WL测试可以捕获结点角色信息的特点,在完整图上执行WL测试,然后将结点颜色(实际上是int型)进行embedding。

e j ( r ) = P o s i t i o n − E m b e d ( W L ( v j ) ) = [ s i n ( W L ( v j ) 1000 0 2 l d h ) , c o s ( W L ( v j ) 1000 0 2 l + 1 d h ) ] l = 0 ⌊ d h 2 ⌋ e_{j}^{\left ( r\right )}=Position-Embed\left ( WL\left ( v_{j}\right )\right ) \\ =\left [ sin\left ( \frac{WL\left ( v_{j}\right )}{10000^{\frac{2l}{d_{h}}}}\right ),cos\left ( \frac{WL\left ( v_{j}\right )}{10000^{\frac{2l+1}{d_{h}}}}\right )\right ]_{l=0}^{\left \lfloor \frac{d_{h}}{2}\right \rfloor} ej(r)=PositionEmbed(WL(vj))=[sin(10000dh2lWL(vj)),cos(10000dh2l+1WL(vj))]l=02dh

注:结点WL值(即颜色)是用完整图计算的,在不同子图上不变。

Intimacy based Relative Positional Embedding

相当于NLP中Transformer的Positional Embedding,即对无连边中子图结点的相对顺序进行了编码。该顺序就是按邻居结点与目标结点的亲密度来排序的,依次是[目标结点,与其最亲密的邻居1,与其次亲密的邻居,…]。

e j ( p ) = P o s i t i o n − E m b e d ( P ( v j ) ) ∈ R d h × 1 e_{j}^{\left ( p\right )}=Position-Embed\left ( P\left ( v_{j}\right )\right )\in R^{d_{h}\times 1} ej(p)=PositionEmbed(P(vj))Rdh×1

其中, P ( v j ) P\left ( v_{j}\right ) P(vj)为结点 v j v_{j} vj在无连边子图中的相对位置。

Hop based Relative Distance Embedding

计算无连边子图中,结点与目标结点的相对距离,具体地,计算两个结点在完整图上的最短距离。

e j ( d ) = P o s i t i o n − E m b e d ( H ( v j ; v i ) ) ∈ R d h × 1 e_{j}^{\left ( d\right )}=Position-Embed\left ( H\left ( v_{j};v_{i}\right )\right )\in R^{d_{h}\times 1} ej(d)=PositionEmbed(H(vj;vi))Rdh×1

其中, H ( v j ; v i ) H\left ( v_{j};v_{i}\right ) H(vj;vi)为结点 v j v_{j} vj与结点 v i v_{i} vi的相对距离。

graph-transformer based encoder

即编码器部分,我们需要先对结点的embedding进行聚合,只是将每个结点在第二部分得到的四种embedding求和得到其最终的embedding,然后将子图中每个结点的最终embedding拼接起来即可。

h j ( 0 ) = A g g r e g a t e ( e j ( x ) , e j ( r ) , e j ( p ) , e j ( d ) ) h_{j}^{\left ( 0\right )}=Aggregate\left ( e_{j}^{\left ( x\right )},e_{j}^{\left ( r\right )},e_{j}^{\left ( p\right )},e_{j}^{\left ( d\right )}\right ) hj(0)=Aggregate(ej(x),ej(r),ej(p),ej(d))

H ( 0 ) = [ h i ( 0 ) , h i , 1 ( 0 ) , ⋅ ⋅ ⋅ , h i , k ( 0 ) ] T ∈ R ( k + 1 ) × d h H^{\left ( 0\right )}=\left [ h_{i}^{\left ( 0\right )},h_{i,1}^{\left ( 0\right )},\cdot \cdot \cdot ,h_{i,k}^{\left ( 0\right )}\right ]^{T}\in R^{\left ( k+1\right )\times d_{h}} H(0)=[hi(0),hi,1(0),,hi,k(0)]TR(k+1)×dh

然后通过自注意力机制和残差结构进行特征融合。
在这里插入图片描述
其中的残差结构G-Res采用了下图中的后两种。在这里插入图片描述

representation fusion

表征融合层简单地将第D层encoder的输出embedding做了平均得到 z i z_i zi,作为目标结点 v i v_i vi的最终表征。

z i = F u s i o n ( H ( D ) ) z_{i}=Fusion\left ( H^{\left ( D\right )}\right ) zi=Fusion(H(D))

the functional component

Pre-training

在模型预训练阶段,分为结点原始属性重构任务和结构重构任务。
1)Task 1: Node Raw Attribute Reconstruction
将结点的最终表征 z i z_i zi输入一个全连接层,得到结点的属性值。

x ^ i = F C ( z i ) \hat{x}_{i}=FC\left ( z_{i}\right ) x^i=FC(zi)

希望重构的属性值越接近真实值越好。

l 1 = 1 ∣ V ∣ ∑ v i ∈ V ∥ x i − x ^ i ∥ 2 l_{1}=\frac{1}{\left | V\right |}\sum_{v_{i}\in V}^{}\left \| x_{i}-\hat{x}_{i}\right \|_{2} l1=V1viVxix^i2

2)Task 2: Graph Structure Recovery
直接使用得到的 z i z_i zi,通过重构前面计算的亲密矩阵 S S S,间接实现图结构重构。

采用了余弦相似度度量结点间的亲密度。

s ^ i , j = z i T z j ∥ z i ∥ ∥ z j ∥ \hat{s}_{i,j}=\frac{z_{i}^{T}z_{j}}{\left \| z_{i}\right \|\left \| z_{j}\right \|} s^i,j=zizjziTzj

希望两个矩阵越接近越好。

l 2 = 1 ∣ V ∣ 2 ∥ S − S ^ ∥ F 2 l_{2}=\frac{1}{\left | V\right |^{2}}\left \| S-\hat{S}\right \|_{F}^{2} l2=V21SS^F2

Model Transfer and Fine-tuning

下游任务有结点分类和图聚类任务。
1)Task 1: Node Classification
在结点分类任务时,只是在结点原始属性重构任务中用到的全连接层后面加上了激活函数,然后对其进行重新训练。

y ^ i = s o f t m a x ( F C ( z i ) ) \hat{y}_{i}=softmax\left ( FC\left ( z_{i}\right )\right ) y^i=softmax(FC(zi))

损失函数则为交叉熵。

2)Task 2: Graph Clustering
在图聚类任务中,直接使用了 z i z_i zi,采用K-means算法。

后记

简单列出Graph-Bert和以往GCN模型的区别。
在这里插入图片描述

参考链接

  1. 《GRAPH-BERT: Only Attention is Needed for Learning Graph Representations》
  2. https://yq.aliyun.com/articles/767244
  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值