超图神经网络(Hypergraph Neural Nerworks,HGNN)

超图神经网络(Hypergraph Neural Nerworks,HGNN)

1. 超图学习(Hypergraph Learning)

在本节中我们简单回顾超图的定义及常见性质。

1.1 什么是超图

超图与常见的简单图不同。对于一个简单图,其每条边均与两个顶点相关联,即每条边的度都被限制为2。而超图则允许每一条边的度为任何非负整数。超图的严格数学定义如下:

超图是一个三元组(G=<V,E,W>),它包含一个顶点集(V),超边集(E),以及记录各条超边的权重的对角矩阵(W)

我们可以用关联矩阵(H)来描述一个超图,(H)是一个(|V| imes|E|)的矩阵,被定义如下:

[h(v,e)= left{ egin{align} &1, ext{if $v in e$}\ &0, ext{if $v otin e$} end{align} ight. ]

截屏2021-02-08 下午9.51.51

此外,我们可以定义超图的顶点的度超边的度

  • 顶点的度:(d(v) = sum_{e in E} w(e)h(v,e))

  • 超边的度:(delta(e) = sum_{vin V}h(v,e))

据此我们还可以定义超图的顶点度矩阵(D_e)和超边度(D_v),它们分别是关于顶点度和超边度的对角矩阵。

1.2 超图的顶点(超边)分类问题

超图的顶点(超边)分类问题的学习目标:

[arg min_{f}{R_{emp}(f) + Omega(f) } ]

其中各个符号意义如下:

  • (R_{emp}(f)) 有监督的经验误差
  • (Omega(f)) 标准化损失函数
  • (f(cdot)) 分类函数

我们在这里重点介绍标准化损失函数(Omega(f))

[Omega(f) = frac{1}{2}sum_{ein E}sum_{{u,v}in V} frac{w(e)h(u,e)h(v,e)}{delta(e)} (frac{f(u)}{sqrt{d(u)}} - frac{f(v)}{sqrt{d(v)}})^2 ]

我们回顾图学习中的一个重要概念:拉普拉斯矩阵(Laplacian Matrix),拉普拉斯矩阵是图的一种矩阵表示,是一个对角矩阵,(L=D-W)。其中(L)为图的度矩阵,(W)为邻接矩阵。我们更常用到的是拉普拉斯矩阵的标准化形式,即(L_N =I- D^{-frac{1}{2}}WD^{-frac{1}{2}})

我们将拉普拉斯矩阵这一概念扩展到超图上,则有:(L = D_v - HWD_e^{-1}H^T)。进一步定义超图的拉普拉斯矩阵的标准化形式:

我们记(Theta = D_v^{-frac{1}{2}}HWD_e^{-1}H^TD_v^{-frac{1}{2}}) ,超图的标准化拉普拉斯矩阵则为:(Delta = I-Theta)

拉普拉斯矩阵是一种半正定矩阵、实对称矩阵,它定义了图上的导数,它刻画信号在图上的平滑程度。

至此,我们可以将标准化损失函数(Omega(f))推导为:

[Omega(f) = f^TDelta f ]

2. 超图的频域卷积

2.1 简单图的频域卷积

频域GCN的基本思想,是先将图上的信号从空域变换到谱域,在谱域定义卷积,再将信号从谱域变回空域。

GCN的输入为(G=<V,E,W>),其中(V)为点集,(E)为边集,(W)(R^{n imes n})的权值邻接矩阵。图中每一个节点都有(d)个属性,(X in R^{n imes d})则为节点的属性矩阵,(X)的每一列都是图上所有节点对应的某一种信号。

接下来我们尽可能通俗地描述这个过程:首先,对于图(G),假设其有(n)个节点,每一个节点都有一个取值,那么这个图上的信号就是一个(n)维的向量。当然,大多数情况下,节点信号都是一个(d)维向量,那么此时图上的信号就是一个(d*n)的矩阵。这就是图信号在空域的表示。

(v_1) (v_2) (v_3) (...) (v_{n-1}) (v_{n})
(f_{1}) (f_{2}) (f_{3}) (...) (f_{n-1}) (f_{n})

现在,我们要将这个(n)维向量编号到新的域中去,就需做傅立叶变换,为此就需要(n)个基。这组基就是拉普拉斯矩阵的(n)个特征向量({u_l}_{l=1}^n)(由于拉普拉斯矩阵是一种实对称矩阵,其(n)个特征向量是正交的,因此这(n)个特征向量就构成了一个(n)维空间)。由于拉普拉斯矩阵可以被对角化为

[L=ULambda U^T ]

其中,(U=[u_1,...,u_n])(Lambda=diag([lambda_1,lambda_2,...,lambda_n]))

接下来进行图上傅立叶变换:(xin R^n,U in R^n)

  • 图上傅立叶变换被定义为:(hat{x}=U^Tx)
  • 图上傅立叶逆变换被定义为:(x=Uhat{x}) (这是因为(U^TU=E))

谱域卷积被定义为:

  • 卷积定理:两个信号的卷积的傅立叶变换可以看作两个信号傅立叶变换后的卷积

  • 根据卷积定理,在给定一个输入信号(x)和信号(y)(作为(filter)),图卷积运算(*_{G})可以写为:(x *_{G}y=U((U^Tx)odot (U^Ty)))。此时谱域卷积核实际上是(U^Ty)

    我们记(U^Ty=[ heta_0,..., heta_{n-1}]^T),记(g_{ heta}=diag([ heta_0,..., heta_{n-1}])),因此可以得到

    [x *_{G}y = U(U^Tx odot U^Ty)=Ug_ heta U^Tx ]

下图为频域GCN的卷积层之间的传播示意图:

截屏2021-02-09 下午1.59.20

然而,频域GCN面临以下弊端,导致难以投入应用:

  • 由于我们需要使用拉普拉斯矩阵的特征向量,因此需要对拉普拉斯矩阵做特征分解。拉普拉斯矩阵的特征分解复杂度为(O(n^3))
  • 图上傅立叶变换的复杂度为(O(n^2)),即使通过(FFT)优化也需要(O(nlogn))
  • 频域GCN的卷积操作并不依赖于节点的邻域节点,然而大多数情况下邻域节点确实包含了一些信息。即频域GCN的卷积操作是"not localized in vertex domain"的,即在节点域非局部化,这并不是我们希望得到的卷积操作。

为了解决这一问题,2016年"SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS"提出将谱域卷积核进行参数化,即用一个多项式函数近似卷积核(g_ heta)

截屏2021-02-09 下午2.14.08

ChebNet的提出解决了GCN-1的如下问题:

  • 无需进行特征分解
  • 傅立叶变换计算代价由(O(n^2))变为(O(E))(E)是边的个数
  • 卷积从非局部化变为局部化:卷积严格受到(K)阶邻居的影响。

2.2 将频域卷积扩展到超图

HGNN的输入为(G=<V,E,W>),其中(V)为点集,(E)为超边集,(W)(R^{e imes e})的记录超边权重的对角矩阵。由于超图拉普拉斯矩阵(Delta)是一个(n*n)的半正定矩阵,因此可以特征分解为(Delta=Phi Lambda Phi^T),其中(Phi = diag(phi_1,...,phi_n))(Lambda=diag(lambda_1,...,lambda_n))。接下来类比简单图的频域GCN,我们先将空域信号经过傅立叶变换转化到频域,在频域定义卷积,再从频域经过傅立叶逆变换转化回空域。HGNN在频域的卷积定义如下:

[g*x=Phi((Phi^Tg)odot(Phi^Tx))=Phi g(Lambda)Phi^Tx ]

在介绍简单图的频域GCN时提到,这种方法定义的频域卷积有很多缺点。我们可以考虑使用(ChebNet)提到的(K)阶多项式(g(Lambda))进行优化,更进一步,我们还可以使用截断的(ChebyShev)展开来作为近似的多项式,它被递归的定义如下:(T_k(x)=2xT_{k-1}(x)-T_{k-2}(x))(T_0(x)=1)(T_1(x)=x)。在使用截断的(ChebyShev)展开来作为近似的多项式之后,卷积操作可以简写为:

[g * x = sum_{k=0}^K heta_kT_k(hat{Delta})x ]

其中,(T_k(hat{Delta}))是变量为拉普拉斯算子(hat{Delta}=frac{2}{lambda_{max}}Delta-I)的截断的(ChebyShev)展开。

  • 更进一步,我们可以直接令(K=1)来限制多项式的长度,进一步降低卷积运算的复杂度,按照经验,(K=1)时该多项式已经足够充分地表达了超图中节点间高维数据的相关性。
  • 此外,(Kipf and Welling 2017)还建议令(lambda_{max} = 2)

我们将(K=1,lambda_{max}=2)带入后可以得到HGNN卷积运算如下:

[g*x = ( heta_0 - heta_1 D^{-frac{1}{2}}HWD_e^{-1}H^TD_v^{-frac{1}{2}}) x ]

( heta_0, heta_1)是卷积核的可训练参数。我们可以用一个单独的变量( heta)来代替( heta_0, heta_1),以防止过拟合问题。

[left{ egin{align} & heta_1 = -frac{1}{2} heta \ & heta_0 = frac{1}{2} heta D_v^{-frac{1}{2}}HD_e^{-1}H^TD_v^{-frac{1}{2}} end{align} ight. ]

再将上式代入可以到HGNN卷积运算如下:

[g*x = heta D_v^{-frac{1}{2}}HWD_e^{-1}H^TD_v^{-frac{1}{2}}x ]


HGNN的输入为(Xin R^{n imes C_1})(n)为节点数,(C_1)为属性数。单层卷积运算为

[Y= D_v^{-frac{1}{2}}HWD_e^{-1}H^TD_v^{-frac{1}{2}}XTheta ]

其中(W=diag(w_1,w_2,...,w_n))(Theta in R^{C_1 imes C_2})。卷积核(Theta)会被应用于超图中所有的节点。在卷积运算过后,我们可以得到(Yin R^{n imes C_2}),它可以用于分类任务。

2.3 HGNN卷积层结构分析

截屏2021-02-09 下午6.10.54

上图展示了HGNN的细节:多模态数据分为训练数据和测试数据,每种数据都包含几个具有特征的节点。然后利用多模态数据集的复杂相关性构造了多个超边结构群。将超图的节点特征矩阵(Xin R^{N imes C})和关联矩阵(H in R^{N imes E})输入到HGNN中,得到节点输出标签。我们可以构造hypergraph卷积层如下:

[X^{(0)}=X in R^{N imes C}\ X^{(l+1)}=sigma(D_v^{-frac{1}{2}}HWD_e^{-1}H^TD_v^{-frac{1}{2}}X^{(l)}Theta^{(l)}) ]

2.4 利用HGNN层执行”点-边-点“转换

HGNN模型基于超图上的频域卷积。在这里,进一步研究了HGNN利用数据间高阶相关性的特性。

在这里插入图片描述

HGNN层可以执行节点-边缘-节点转换,可以使用超图结构更好地细化特性。更具体地说,首先,初始节点功能(X^{(1)})是由可学习的过滤处理矩阵(Theta^{(1)})提取C2-dimensional特性。然后根据超边收集节点特征,形成超边特征(R^{E imes N}),由(H^TinR^{(E imes N)})实现。最后通过矩阵(H)的相乘,聚合其相关超边特征得到输出节点特征。因此,HGNN层可以通过节点-边缘-节点变换有效地提取超图上的高阶相关性。

3.与已有方法的关联

当超边仅连接两个顶点时,将超图简化为一个简单图,且超图拉普拉斯矩阵与简单图拉普拉斯矩阵重合到1 / 2。与已有的图卷积方法相比,HGNN可以自然地建模数据之间的高阶关系,在形成特征提取时有效地利用和编码了这种关系。与传统的超图方法相比,该模型不需要超图拉普拉斯矩阵的逆运算,计算效率很高。还需要注意的是,HGNN对多模态特性具有很大的可扩展性,具有超边缘生成的灵活性。

---- suffer now and live the rest of your life as a champion ----
原文地址:https://www.cnblogs.com/popodynasty/p/14391442.html