图卷积网络

图中每个节点的信息和相邻节点的信息进行聚合

Basic of GCN

GNN: H ( l + 1 ) = f ( A , H ( l ) ) H^{(l+1)}=f(A,H^{(l)}) H(l+1)=f(A,H(l)) A A A is adjacency matrix, H ( l ) H^{(l)} H(l) is feature of l layer, f 是特征映射函数,不同的图神经网络有不同的映射函数

GCN: 图卷积神经网络的特征映射关系如下
H ( l + 1 ) = σ ( D ^ − 1 2 A ^ D ^ − 1 2 H ( l ) Θ ) H^{(l+1)}= \sigma(\hat{D}^{-\frac{1}{2}}\hat{A}\hat{D}^{-\frac{1}{2}}H^{(l)}\Theta) H(l+1)=σ(D^21A^D^21H(l)Θ)

D is degree matrix,度矩阵,矩阵中的元素表示图中每个节点的度,只在主对角线上有元素

D ^ , A ^ \hat{D},\hat{A} D^,A^是图中每个节点加上自环之后的D,A矩阵。 D ^ \hat{D} D^就是D矩阵中每个元素+1。 D ^ − 1 2 \hat{D}^{-\frac{1}{2}} D^21就是对主对角线上的元素进行求幂。

Θ \Theta Θ是网络的可学习参数,用于特征变换

Spectral Graph Theory 研究图的邻接矩阵有关的一些性质的理论,线性代数的一些子领域

positive semi-definite matrix: 半正定矩阵:所有的特征值都大于等于0

real symmetric matrix:实对称矩阵

quadratic form: 二次型 x T A x x^TAx xTAx

Rayleigh quotient:瑞利熵 x T A x x T x \frac{x^TAx}{x^Tx} xTxxTAx当x是A的特征向量时,可化简为 x T ( λ x ) x T x = λ \frac{x^T(\lambda x)}{x^Tx}=\lambda xTxxT(λx)=λ

properties of matrix related to A.

L = D − A L s y m = D − 1 2 L D − 1 2 L = D - A \\ L_{sym}=D^{-\frac{1}{2}}LD^{-\frac{1}{2}} L=DALsym=D21LD21

L是图的拉普拉斯矩阵, L s y m L_{sym} Lsym是拉普拉斯矩阵的对称规范化,这两个矩阵有优良的性质:都是实对称矩阵,都是半正定矩阵。且 L s y m L_{sym} Lsym的特征值都位于[0, 2]的区间内。可以通过Rayleigh quotient都是大于等于0证明。

Fourier Transform:

计算两个多项式的乘法:
f ( x ) = a 0 + a 1 x + a 2 x 2 + . . . + a n x n g ( x ) = b 0 + b 1 x + b 2 x 2 + . . . + b n x n f ( x ) ⋅ g ( x ) = c 0 + c 1 x + c 2 x 2 + . . . + c 2 n x 2 n f(x)=a_0+a_1x+a_2x^2+...+a_nx^n \\ g(x)=b_0 + b_1x+b_2x^2+...+b_nx^n \\ f(x)\cdot g(x)=c_0 + c_1x+c_2x^2+...+c_{2n}x^{2n} f(x)=a0+a1x+a2x2+...+anxng(x)=b0+b1x+b2x2+...+bnxnf(x)g(x)=c0+c1x+c2x2+...+c2nx2n
如果直接计算需要两层循环,计算复杂度为 O ( n 2 ) O(n^2) O(n2)。2个点确定一条直线,3个点确定一个抛物线,n+1个点可以确定一个n次多项式
f ( x ) ⇔ { ( x 1 , f ( x 1 ) ) , ( x 2 , f ( x 2 ) ) , . . . , ( x n + 1 , f ( x n + 1 ) ) } f ( x ) ⇔ { ( x 1 , g ( x 1 ) ) , ( x 2 , g ( x 2 ) ) , . . . , ( x n + 1 , g ( x n + 1 ) ) } f ( x ) ⋅ g ( x ) ⇔ { ( x 1 , f ( x 1 ) g ( x 1 ) ) , ( x 2 , f ( x 2 ) g ( x 2 ) ) , . . . , ( x n + 1 , f ( x n + 1 ) g ( x n + 1 ) ) } f(x) \Leftrightarrow \{(x_1,f(x_1)),(x_2,f(x_2)),...,(x_{n+1},f(x_{n+1}))\} \\ f(x) \Leftrightarrow \{(x_1,g(x_1)),(x_2,g(x_2)),...,(x_{n+1},g(x_{n+1}))\} \\ f(x)\cdot g(x) \Leftrightarrow \{(x_1,f(x_1)g(x_1)),(x_2,f(x_2)g(x_2)),...,(x_{n+1},f(x_{n+1})g(x_{n+1}))\} f(x){(x1,f(x1)),(x2,f(x2)),...,(xn+1,f(xn+1))}f(x){(x1,g(x1)),(x2,g(x2)),...,(xn+1,g(xn+1))}f(x)g(x){(x1,f(x1)g(x1)),(x2,f(x2)g(x2)),...,(xn+1,f(xn+1)g(xn+1))}
让对应位置的点相乘,时间复杂度为 O ( n ) O(n) O(n)

由于图的形状不规则,在空间域做卷积是非常复杂,所以转换到频域空间进行卷积,卷积之后再进行逆变换

拉普拉斯矩阵,乘以一个feature向量, x ⃗ \vec{x} x n行的列向量,每个节点都有一个初值feature,例如图片的每个像素节点的RGB就可以看作他的feature
L ⋅ x = [ ∑ ( x 1 − x i ) ∑ ( x 2 − x i ) ⋮ ∑ ( x n − x i ) ] = U Λ U T x L \cdot x = \begin {bmatrix} \sum(x_1 - x_i)\\ \sum(x_2 - x_i)\\ \vdots \\ \sum(x_n- x_i) \end {bmatrix} = U\Lambda U^Tx Lx= (x1xi)(x2xi)(xnxi) =UΛUTx
其中, x i x_i xi是和x1, x2,…, xn相临近的节点的feature, L ⋅ x L \cdot x Lx是将图中每个节点的feature和临近节点的feature做了聚合。类似于图像的卷积,将图像中的一个点,与周围的点做聚合。

那这和傅里叶变换有什么关系呢?L是一个半正定的实对称矩阵,所以可以分解两个正交阵U,而一个向量乘以一个正交阵,就可以看作是对这个向量进行基地的变换,然后再对每个维度进行放缩,再用逆变换变回原来的空间

而定义图上的傅里叶变换,就是 U T x U^Tx UTx,而对于逆变换就是再乘以U,在新的域中,对每个维度进行放缩操作 Λ \Lambda Λ,就可以实现聚合邻居的效果。

但是对一个拉普拉斯矩阵进行分解,复杂度为 O ( n 2 ) O(n^2) O(n2),GCN做的就是对带特征值分解的傅里叶变换做一些限制,从而推导出一种不需要做特征值分解的,复杂度与边的数量成线性关系的一种方法。

Graph Convolution

对于图的邻接矩阵A ,输入一个函数,得到一个有关图的一个性质较好的矩阵(实对称阵性质一般较好)
F ( A ) → L / L s y m F ( A ) = U Λ U T F(A) \rightarrow L/L_{sym}\\ F(A) = U \Lambda U^T\\ F(A)L/LsymFA=UΛUT
图上的卷积操作定义为: g θ ∗ ∗ = U g θ ( Λ ) U T x g_{\theta}^{**}= Ug_{\theta}(\Lambda)U^Tx gθ∗∗=Ugθ(Λ)UTx

先变换到频域 U T x U^Tx UTx,然后在频域上做一些操作 g θ ( Λ ) g_{\theta}(\Lambda) gθ(Λ),关于 Λ \Lambda Λ的函数,网络学习到的,然后再变换到空间域,然后对 g θ ( Λ ) g_{\theta}(\Lambda) gθ(Λ)做一些限制,
g θ ( Λ ) = θ 0 Λ 0 + θ 1 Λ 1 + . . . + θ n Λ n + . . . U g θ ( Λ ) U T = g θ ( U Λ U T ) = g θ ( F ( A ) ) g_{\theta}(\Lambda)=\theta_0\Lambda^0+\theta_1\Lambda^1+...+\theta_n\Lambda^n+... \\ Ug_{\theta}(\Lambda)U^T = g_{\theta}(U\Lambda U^T)=g_{\theta}(F(A)) gθ(Λ)=θ0Λ0+θ1Λ1+...+θnΛn+...Ugθ(Λ)UT=gθ(UΛUT)=gθ(F(A))
这样,就不用对F(A)做特征分解了 ,但上面的多项式存在梯度消失或梯度爆炸的问题,所以使用下面的多项式

切比雪夫多项式 T n ( x ) = 2 x T n − 1 ( x ) − T n − 2 ( x ) , T 0 ( x ) = 1 , T 1 ( x ) = x T_n(x) = 2xT_{n-1}(x)-T_{n-2}(x), T_0(x)=1, T_1(x)=x Tn(x)=2xTn1(x)Tn2(x),T0(x)=1,T1(x)=x

性质: T n ( cos ⁡ θ ) = cos ⁡ n θ T_n(\cos \theta)=\cos n\theta Tn(cosθ)=cosnθ, 不管n多大,都有一个摆动的稳定趋势,缺点,需要到自变量有一个限制,自变量在【-1,1】之间,即特征值都在【-1,1】之间,之前证明 L s y m L_{sym} Lsym的特征值都在【0,2】之间,只需要将 L s y m − I L_{sym} -I LsymI,I是单位阵

故卷积操作可以写为
g θ ∗ ∗ = U g θ ( Λ ) U T x = U ( ∑ k = 0 k θ k T k ( Λ ) ) U T x = ∑ k = 0 k θ k U T k ( Λ ) U T x = ∑ k = 0 k θ k T k ( U Λ U T ) x = ∑ k = 0 k θ k T k ( L s y m − I ) x g_{\theta}^{**}= Ug_{\theta}(\Lambda)U^Tx = U(\sum_{k=0}^{k} \theta_k T_k(\Lambda))U^Tx \\ =\sum_{k=0}^k \theta_k UT_k(\Lambda)U^Tx = \sum_{k=0}^k \theta_k T_k(U\Lambda U^T)x=\sum_{k=0}^k \theta_k T_k(L_{sym}- I)x gθ∗∗=Ugθ(Λ)UTx=U(k=0kθkTk(Λ))UTx=k=0kθkUTk(Λ)UTx=k=0kθkTk(UΛUT)x=k=0kθkTk(LsymI)x
这样复杂度仍然很高,GCN做了一阶线性近似,故上式
≈ θ 0 T 0 ( L s y m − I ) x + θ 1 T 1 ( L s y m − I ) x = θ 0 x + θ 1 ( L s y m − I ) x = θ 0 x − θ 1 D − 1 2 A D − 1 2 x \approx \theta_0T_0(L_{sym}-I)x+\theta_1T_1(L_{sym}-I)x = \theta_0x+\theta_1(L_{sym}-I)x = \theta_0x - \theta_1 D^{-\frac{1}{2}}AD^{-\frac{1}{2}}x θ0T0(LsymI)x+θ1T1(LsymI)x=θ0x+θ1(LsymI)x=θ0xθ1D21AD21x
这就非常的像公式1,接下来进行一些正则化,使得θ1和θ2共享参数 θ 1 = − θ 0 \theta_1 = -\theta_0 θ1=θ0,上式变为 θ 0 ( I + D − 1 2 A D − 1 2 ) x \theta_0(I+D^{-\frac{1}{2}}AD^{-\frac{1}{2}})x θ0(I+D21AD21)x

接着I直接加到A中,得到公式1 D ^ − 1 2 A ^ D ^ − 1 2 x \hat{D}^{-\frac{1}{2}}\hat{A}\hat{D}^{-\frac{1}{2}}x D^21A^D^21x,这样做效果更好。(自环之后,域空间变大了 )

Spatial Methods for Graph CNN

What can we learn from the architecture of standard convolutional neural network?

  1. Determine Neighborhood
  2. Impose an order in neighborhood
  3. Parameter sharing

By analogy

  • For each node, select the fixed number of nnodes as its neighborhood nodes,according to certain proximity metric 选k个,k是超参数,一阶邻居不够,二阶邻居来凑
  • Impose an order according to the proximity metric (按距离排序,离中心点越近,位置越靠前)
  • Parameter sharing

GraphSAGE

  • Sampling neighbors 随机游走

  • Aggregating neighbors 不用排序,直接将节点进行聚合

General framework of graph nerual networks: Aggregate the information of neighboring nodes to update the representation of center node
a v ( k ) = A G G R E G A T E ( k ) ( { h u ( k − 1 ) : u ∈ ℵ ( v ) } ) h v ( k ) = C O M B I N E ( k ) ( h v ( k − 1 ) , a v ( k ) ) a_v^{(k)}=AGGREGATE^{(k)}(\{ h_u^{(k-1)} :u \in \aleph(v) \}) \\ h_v^{(k)} = COMBINE^{(k)}(h_v^{(k-1)},a_v^{(k)} ) av(k)=AGGREGATE(k)({hu(k1):u(v)})hv(k)=COMBINE(k)(hv(k1),av(k))
GCN: Graph Convolution Network

  • Aggregating information from neighborhood via a normalized Laplacian matrix
  • Shared parameters are from feature transformation
  • A reduced version of ChebyNet

Z = f ( X , A ) = s o f t m a x ( A ^ R e L U ( A ^ X W ( 0 ) ) W ( 1 ) ) Z = f(X,A)=softmax(\hat{A}ReLU(\hat{A}XW^{(0)})W^{(1)}) Z=f(X,A)=softmax(A^ReLU(A^XW(0))W(1))

W ( 0 ) , W ( 1 ) W^{(0)}, W^{(1)} W(0),W(1) is parameter for feature transformation,维度为d*d’. X 是所有节点的feature vector,n*d维,一个节点为n维

GAT:Graph Attention Network

  • learning the aggregation matrix, i.e., Laplacian matrix in GCN, ia attention mechanism
  • Shared parameters contain two parts
    • Parameters for feature transformation
    • Parameters for attention

α i , j = exp ⁡ ( L e a k y R e L U ( a ⃗ T [ W h i ⃗ ∣ ∣ W h j ⃗ ] ) ∑ k ∈ ℵ i exp ⁡ ( L e a k y R e L U ( a ⃗ T [ W h i ⃗ ∣ ∣ W h k ⃗ ] ) ) \alpha_{i,j}=\frac{\exp(LeakyReLU(\vec{a}^T[W\vec{h_i}||W\vec{h_j}])}{\sum_{k \in \aleph_i} \exp(LeakyReLU(\vec{a}^T[W\vec{h_i}||W\vec{h_k}]))} αi,j=kiexp(LeakyReLU(a T[Whi ∣∣Whk ]))exp(LeakyReLU(a T[Whi ∣∣Whj ])

α is a element of a ⃗ \vec{a} a ,W is parameter for feature Transformation, a ⃗ T \vec{a}^T a T is parameter of Attention mechanism.

MoNet: A general framework for spatial methods

  • Define multiple kernel funtions, parameterized or not, to measure the similarity between target node and other nodes
  • Convolution kernels are the weights of these kernel funtions

( f ∗ g ) ( x ) = ∑ j = 1 J g j D j ( x ) f (f*g)(x)=\sum_{j=1}^J g_jD_j(x)f (fg)(x)=j=1JgjDj(x)f

g j g_j gj is convolution kernel

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44858167

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值