推荐系统笔记(十七):对超图、超图卷积、超图注意力的初步理解和应用(HyperGCN)
对于我们熟悉的图而言,它的一个边(edge)只能和两个顶点连接;而对于超图来讲,它的边(这里叫超边,hyperedge)可以和任意个数的顶点连接。每个边所包含的顶点个数都是相同且为k个的,就可以被称为k阶超图。2阶超图就是我们平时所见到的图,因为我们平时的图由线条(edge,边)和点(vertice,顶点)构成,每条线都只包含两个点,所以这是符合2阶超图的定义的。超边的构建,将具有同一个属性的样本
背景
图神经网络在各个研究领域引起了广泛的关注并取得了显著的成绩。大多数算法都假设图中节点是成对出现的,即一条边只能连接两个节点。然而,在许多实际应用中,对象之间的关系是高阶的,超出了成对关系,可能会导致数据分布不平衡、无法准确描述对象之间的关系等问题。
超图(Hypergraph)提供了一种灵活而自然的建模工具来对这种复杂的关系进行建模。在许多真实的网络中,这种复杂关系普遍存在,因此激发了使用超图学习的问题。一种流行的学习方法是基于超图的半监督学习(SSL),其目标是对超图中未标记的顶点分配标签。
在推荐系统的图神经网络之中,对比学习SSL和图卷积算法受的启发,提出了HyperGCN,即超图卷积神经网络,这是一种基于超图的谱论来训练用于超图上半监督学习的GCN的新方法。
论文:Hypergraph convolution and hypergraph attention
定义
什么是超图?
对于我们熟悉的图而言,它的一个边(edge)只能和两个顶点连接;而对于超图来讲,它的边(这里叫超边,hyperedge)可以和任意个数的顶点连接。每个边所包含的顶点个数都是相同且为k个的,就可以被称为k阶超图。
2阶超图就是我们平时所见到的图,因为我们平时的图由线条(edge,边)和点(vertice,顶点)构成,每条线都只包含两个点,所以这是符合2阶超图的定义的。
超边的构建,将具有同一个属性的样本归到同一条超边里。因为每个样本具有若干个属性,所以一个顶点可以属于多条超边,如果在该数据集中有m个属性,那么超图就具有m条超边。因为我们通过该超图来描述数据之间的属性关系,所以我们称该超图为属性超图。如图所示:
可见,一个边连接多个顶点的图就是超图,相比于普通的图超图具有以下优势:
1、超图结构相对于一般图结构具有较强的数据样本间非线性高阶关联的刻画和挖掘能力;
2、超图结构相对于一般图结构能够更加准确地建模多元关系;
3、超图结构在处理多模态、异构数据时更加灵活,更方便多模态的融合与扩展;
4、超图结构相比于一般图结构在聚类过程上更有优势;
什么是超图卷积?
对于每个结点,我们都要考虑其所有邻居以及其自身所包含的特征信息。即普通的图卷积就是将节点和边之间的映射用矩阵的形式进行表达并且是在其某个一阶的子图上进行的操作。
而超图卷积是指针对超图定义一个拉普拉斯矩阵,即将超图变化为简单的图表示出来,在转化为简单图的表示过后就可以进行图卷积操作。但是需要注意的是需要进行如下的规范化:
这里的关键工作原理是,同一超边中的超节点相似,因此可能共享同一标签。先进性超边的确定,然后通过简化将超边简化为两个节点的边,最终聚合到中心节点。可以想象成,定义的带权简单图是一个层面,然后在另外的一个维度会有这些中间节点和带权简单图相连接。
什么是超图注意力?
超图的注意力目标是学习一个动态关联矩阵。获得能够更好地揭示顶点间内在关系地动态转移矩阵。
一个直接办法是在H上使用注意力学习模块,在注意力机制下,没有将H看作每个顶点是否由某个超边相连,而是提出一个概率模型,概率模型能学习更多类,区别嵌入,并且能够描述顶点之间的关系。将H从01矩阵优化为注意力值表示。
关联矩阵不是一个二元的连接矩阵,是超边和顶点关系的矩阵,所以要使在H上用注意力机制模块,必须假定边和顶点是可比的,只有节点集和超边集来自同一个homogeneous domain,才能对节点和超边进行比较。这取决于超图如何构造。
例如可以将中心节点和k个最近邻节点共同形成一个超边。当节点和超边可以比较时,可以得到超图的注意力机制。引用GAT的概念,定义一个顶点领域内的点的加权系数是attention系数。
应用:HyperGCN
论文:HyperGCN: A New Method of Training Graph Convolutional Networks on Hypergraphs
论文是基于半监督学习和图卷积的。
首先,基于谱域的图卷积公式如下:
这是一个2层的图卷积公式,其中A是标准化之后的邻接矩阵,是经过拉普拉斯矩阵变换得来的矩阵,其中包含了图中特别的信息。X是特征矩阵。然后后面一个是权重矩阵,是一个经过训练得到的参数矩阵。最外面是一个softmax函数将里面得到的数值映射到0~1的域中便于模型做出预测。
其次,图/超图上半监督学习的输入为一个图G,其中包括少量的labelled节点,大量的unlabelled节点。通过图上半监督学习,期望为没有标签的数据分配标签,得到更多更丰富的数据,便于后续工作的实现,作者使用了交叉熵作为半监督学习的损失函数:
超图卷积的步骤如下:
1. 对于每一个超边,因为超边里面包含很多个节点,然后我们现在就只选取2个节点,只选取信号特征最大的两个节点,然后这两个节点之间的边来代表超边。公式如下:
2. 然后在第一步里面定义的边上加上权重,经过这一步之后,就已经将超图变为简单带权图了
3. 在有给出的每个节点的特征信号的时候就能够用以上的方法计算出超图的拉普拉斯矩阵了,这样也就能在超图中运用图卷积公式了。公式如下:
其中A是超图经过变换之后的带权领接矩阵,D是该邻接矩阵的度矩阵,然后I是单位矩阵。
单层的超图卷积网络
最后简单图Gs标准化之后的带权邻接矩阵表示为As,然后在简单图Gs上使用图卷积公式。整个过程可以用下图来表示:
如图对于一个超图。首先是要将超 图转化为简单图。并且用定义的超图算子来确定边,具体的方法是:
公式的意思是,对于一个超边,我们选取其中包含节点隐含的信息的二阶范数的最大值最大的两个节点为带权简单图组成的边。
论文中还介绍了用中间节点增强的超图卷积网络的相关方法以弱化简化过程中的数据丢失,这里不再赘述该方法。
总结
超图的主要思想就是,同一超边中的超节点相似,因此可能共享同一标签,超图卷积的本质在于利用拉普拉斯变换转化为简单图后聚合再进行图卷积。
而在HyperGCN的操作中是先定义超图的拉普拉斯矩阵:
1. 对于每一个超边,因为超边里面包含很多个节点,我们现在就只选取2个节点,只选取信号特征最大的两个节点,然后这两个节点之间的边来代表超边。
2. 然后在前面的步骤中定义的边上加上权重,经过这一步之后,就已经将超图变为简单带权图了。
3. 因此,在有给出的每个节点的特征信号的时候就能够用以上的方法计算出超图的拉普拉斯矩阵了,到达在超图中运用图卷积公式的目的。
参考链接:超图上的卷积和注意力机制 - 墨天轮
更多推荐
所有评论(0)