提示:本文为AI lab机器学习中心 荣钰老师介绍总结
图深度表示基础和前沿进展
背景
-
大量的数据是以图结构的形式进行组织
- 社交网络
- 金融网络
- 化学分子
-
基于图结构的数据挖掘在实际场景中具有广泛的应用
- 社团分析
- 用户画像
- 连接预测
- 属性预测
- ……
问题定义
- 什么是图表示学习?
- 将图映射到向量空间的优势:
- 向量表示相对于传统图表示(邻接矩阵,邻接表)对现有机器学习算法更友好。
- 可以更好地将拓扑信息和节点本身特征结合。
- **目标:**在向量空间上对图数据进行学习和推断。
- 例:用户画像→向量分类
社团挖掘→聚类分析
节点相似度→向量相似度
- 例:用户画像→向量分类
针对图表示学习的两个不同视角
- 图论、数据挖掘角度:如何在学习到向量的表示中保留尽可能多的拓扑信息。(基于图结构的表示学习)
- A A A是邻接矩阵, h ≪ n h\ll n h≪n
- 从机器学习,特征工程角度:如何通过有效利用图拓扑结构信息结合现有的特征词向量得到新的特征。(基于图特征的表示学习,即图神经网络)
-
X
X
X是节点特征向量集合。
-
X
X
X是节点特征向量集合。
基于图结构的表示学习
-
传统方法:降维( n × n → n × h n\times n\rightarrow n\times h n×n→n×h)
- 时间复杂度高。
- 不能保留图中节点和节点之间的拓扑消息。
-
什么叫做“保留拓扑信息”?
-
目标:在拓扑里面“邻近” ⇔在向量域“邻近”。
-
问题:如何建模节点之间的邻近信息?→ 如何定义“邻近”?
-
定义临近的方法:
-
共同出现(邻居关系)
-
高阶邻近:n-hop邻居
-
团体邻近:属于某一团体
现有算法都是围绕定义“邻近”和求解“邻近”这两个点展开的。
-
经典算法——Deepwalk
-
动机:如何动态的建模邻居信息?
-
1-hop建模:对于某个节点只看其邻居节点
- 太局部,忽略了图上的一些全局信息。
-
n-hop建模:对于某个节点考虑其n步邻居节点
- 组合爆炸,复杂度高,且没必要。
-
解决方法:
- 考虑有限步的情况,例如只考虑1,2hop(LINE)。
- 使用采样的方式——随机游走(Random Walk)。
-
利用随机游走采样生成的序列去定义节点间的临近关系。
- 在足够多的采样情况下,可以很好的刻画节点之间的临近信息。
- 在足够多的采样情况下,可以很好的刻画节点之间的临近信息。
-
算法整体框架
- 总结
- 使用定长的随机游走去采样图中的临近关系。
- 节点→词语,随机游走序列→句子。
- 使用自然语言处理相关模型(例如Word2Vec)对随机游走序列进行表示学习。
- 扩展:非常多的×××2Vec论文。☺
Deepwalk扩展
- Node2Vec
- 动机:简单的随机游走采样不够好(不能提现出BFS/DFS性质)。
- 核心思想:等概率跳→人工设计概率来跳
- Smller p:BFS;Smaller q:DFS
- Struc2Vec
- 动机:保留局部结构一致性。
- 核心思想:在原来的图上构建一个新图。
- Metapath2Vec
- 动机:异构上存在不同类型的节点,这些节点不能同等看待。期间关系可能存在一些固定的模式。
- 核心思想:使用预定义的Meta-Path来进行Random Walk。
-
e
.
g
.
e.g.
e.g.:总裁——华为——女儿——CFO
-
e
.
g
.
e.g.
e.g.:总裁——华为——女儿——CFO
基于图特征的表示学习(图神经网络)
-
机器学习领域:更关注如何利用图的拓扑特征去生成新的节点特征。
- 图像→向量/视频→向量…→所有深度学习的问题 都可以归结为表示学习的问题。
- 挑战:如何利用我们在图片/视频/上取得的成功经验来应对图特征的表示学习问题?
- 从图的角度上看图像上的CNN:在欧式空间上的格点图
- 平移不变性
- 多尺度结构
-
目标:将在欧式空间上的CNN扩展到拓扑空间。→图卷积
-
-
输入:邻接矩阵(节点数×节点数),特征矩阵(节点数×输入特征数)
-
输出:新的特征矩阵(节点数×输出特征数)
-
多层网络可以进行叠加。
-
节点层面:节点自身特征和其邻域特征的聚合。
H ( l + 1 ) = σ ( D ~ − 1 2 A ~ D ~ − 1 2 H ( l ) W ( l ) ) H^{\left( l+1 \right)}=\sigma \left( \tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}H^{\left( l \right)}W^{\left( l \right)} \right) H(l+1)=σ(D~−21A~D~−21H(l)W(l))
其中:
A ~ = A + I N \tilde{A}=A+I_N A~=A+IN:带自环的邻接矩阵。
D ~ i i = ∑ j A ~ i j \tilde{D}_{ii}=\sum_j{\tilde{A}_{ij}} D~ii=∑jA~ij:度矩阵。 H H H:特征矩阵。 W W W:模型参数。
σ ( . ) \sigma \left( \ .\ \right) σ( . ):激活函数。 -
两层GCN构造KaTeX parse error: Expected 'EOF', got '&' at position 1: &̲损失函数:
Z = f ( X , A ) = s o f t max ( A ^ Re L U ( A ^ X W ( 0 ) ) W ( 1 ) ) Z=f\left( X,A \right) =soft\max \left( \hat{A}\text{Re}LU\left( \hat{A}XW^{\left( 0 \right)} \right) W^{\left( 1 \right)} \right) Z=f(X,A)=softmax(A^ReLU(A^XW(0))W(1))
L = − ∑ l ∈ y l ∑ f = 1 F Y l f ln Z l f L=-\sum_{l\in y_l}{\sum_{f=1}^F{Y_{lf}\ln Z_{lf}}} L=−l∈yl∑f=1∑FYlflnZlf -
GCN的推导思路:在图的拓扑空间近似在谱空间中的图滤波的操作,减少可学习的参数。
-
-
图卷积神经网络的扩展
-
从另一个角度理解GCN:对邻居节点特征的(带权重的)聚合。
-
基于这一理解,大量的方法对传统的GCN进行了扩充。
-
GraphSAGE:对聚合进行扩展。
- 对聚合和邻居节点进行了扩展定义。
- 聚合:Mean Pooling /Max Pooling/LSTMetc
- 邻居节点:Fix-length sample. → 可以用来加速GCN计算。
- 对聚合和邻居节点进行了扩展定义。
-
图注意力网络GAT:对权重进行扩展
- GCN中使用的邻接矩阵权重是提前给定的,例如 D ~ − 1 2 \tilde{D}^{-\frac{1}{2}} D~−21 A ~ \tilde{A} A~ D ~ − 1 2 \tilde{D}^{-\frac{1}{2}} D~−21。
- 图注意力网络引入了自注意力机制,利用当前节点的特征以及其邻居节点的特征来计算邻居节点的重要性,把该重要性作为新的邻接矩阵进行卷积计算。
- 优势:利用节点特征的相似性更能反映邻接信息。
α i j = exp ( L e a k y R e L U ( a ⃗ T [ W h ⃗ i ∣ ∣ W h ⃗ j ] ) ) ∑ k ∈ N i exp ( L e a k y R e L U ( a ⃗ T [ W h ⃗ i ∣ ∣ W h ⃗ k ] ) ) {\alpha }_{{ij}}=\frac{\exp \left( {LeakyReLU}\left({\vec{a}}^{{T}}\left[{W\vec{h}}_{{i}}||{W\vec{h}}_{{j}} \right] \right) \right)}{\sum_{{k}\in {N}_{{i}}}{\exp \left( {LeakyReLU}\left( {\vec{a}}^{{T}}\left[ {W\vec{h}}_{{i}}||{W\vec{h}}_{{k}} \right] \right) \right)}} αij=∑k∈Niexp(LeakyReLU(aT[Whi∣∣Whk]))exp(LeakyReLU(aT[Whi∣∣Whj]))
h ⃗ i ′ = σ ( 1 K ∑ k = 1 K ∑ j ∈ N i α i j k W k h j ⃗ ) \vec{h}_i'=\sigma \left( \frac{1}{K}\sum_{k=1}^K{\sum_{j\in N_i}{\alpha _{ij}^{k}}W^kh_{\vec{j}}} \right) hi′=σ⎝⎛K1k=1∑Kj∈Ni∑αijkWkhj⎠⎞
深度图学习面临的挑战
如何将图神经网络模型做到更大的图上(如何做大)。
-
回顾GCN H ( l + 1 ) = σ ( D ~ − 1 2 A ~ D ~ − 1 2 H ( l ) W ( l ) ) H^{\left( l+1 \right)}=\sigma \left( \tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}H^{\left( l \right)}W^{\left( l \right)} \right) H(l+1)=σ(D~−21A~D~−21H(l)W(l))
其中, D ~ − 1 2 A ~ D ~ − 1 2 H ( l ) \tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}}H^{\left( l \right)} D~−21A~D~−21H(l)表示邻接矩阵用到的所有节点,难以处理超大图。
-
对所有邻居节点进行聚合并不高效(计算KaTeX parse error: Expected 'EOF', got '&' at position 1: &̲Memory)。
-
思路:采样,采用一部分点/边来进行计算。
-
FastGCN:对所有邻居节点进行聚合并不高效(计算KaTeX parse error: Expected 'EOF', got '&' at position 1: &̲Memory)。
- 把图节点特征看做一个有隐含概率分布产生,利用该分布对每一层的所有节点整体采样,避免了采样点个数的指数增加。
- 采样的目标是尽量减少采样的方差→基于节点degree的采样。
- 缺点:没有考虑层间点和点的关系。
-
AS-GCN:FastGCN采样的方式并不合理——在图极大而采样比例极少的时候,层间连接会急剧减少。对超大图的采样训练方法设计。
- 自顶向下Layer-dependent的采样方式。
- 在控制每层采样个数的同时,确保上下两层之间的连接是密集。
-
保证采样无偏和减小采样方差?
q ∗ ( u j ) = p ( u j ∣ v i ) ∣ g ( x ( u j ) ) ∣ ∑ j = 1 N p ( u j ∣ v i ) ∣ g ( x ( u j ) ) ∣ , w i t h g ( x ( u j ) ) = W g x ( u j ) q^*\left( u_j \right) =\frac{p\left( u_j|v_i \right) |g\left( x\left( u_j \right) \right) |}{\sum_{j=1}^N{p\left( u_j|v_i \right) |g\left( x\left( u_j \right) \right) |}},with\ g\left( x\left( u_j \right) \right) =W_gx\left( u_j \right) q∗(uj)=∑j=1Np(uj∣vi)∣g(x(uj))∣p(uj∣vi)∣g(x(uj))∣,with g(x(uj))=Wgx(uj) -
扩展:
- 加入了残差连接,能考虑二阶邻居的信息传播;
- 在采样设置下,实现了注意力机制。
如何有效训练更复杂的图神经网络模型(如何做深)。
- 为什么不能做深?
- 过拟合(Overfitting):参数数量过多造成的泛化性降低。
- 过平滑(Over-smoothing):多层的邻居聚合造成的特征均化。
- Over-smoothing的定义:
- 经过L层特征聚合后特征收敛到一个和输入特征无关的子空间M的现象。
d M ( H ( l ) ) < ϵ , ∀ l ≥ L d_M\left( H^{\left( l \right)} \right) <\epsilon ,\forall l\ge L dM(H(l))<ϵ,∀l≥L
- 经过L层特征聚合后特征收敛到一个和输入特征无关的子空间M的现象。
- 挑战:如何减弱Over-smoothing?
A d r o p = A − A ′ A_{drop}=A-A' Adrop=A−A′ - DropEdge:在每个epoch训练前,随机丢弃一定比例的边。对超深图神经网络的有效训练。
- 为什么DropEdge可以减缓收敛到子空间 M M M的速度。 l ∗ ( M , ϵ ) ≤ l ∗ ( M ′ , ϵ ) l*\left( M,\epsilon \right) \le l*\left( M',\epsilon \right) l∗(M,ϵ)≤l∗(M′,ϵ)
- DropEdge可以减少收敛过程中的信息损失。 N − d i m ( M ) > N − d i m ( M ′ ) N-dim\left( M \right) >N-dim\left( M' \right) N−dim(M)>N−dim(M′)
四大应用
- 药物属性预测和可解释性的问题:DualMPNN,在所有属性预测数据上大幅超越SOTA算法并提供了模型的可解释性。
- 复杂层次图学习问题:SEAL算法,基于复杂层次图结构的GNN模型。应用于安全场景中的群分类任务。
- 社交网络语言检测:Bi-GCN,首创双向GCN结构并将其应用于语言检测问题。
- 统一黑盒攻击框架:GF-Attacker,首个可以对于多种图模型进行黑盒攻击的攻击框架。