GNN、GCN、GAT图卷积神经网络学习
GNN\GCN\GAT
一、GNN
GNN能干什么?
二、GCN
在GNN的基础上,GCN要解决的是一个什么问题呢?
以求Xi的平均工资为例:
更新后的节点信息=邻居节点的信息N+自身节点的信息
但是A只与B关联,B与很多节点关联。当计算A的平均工资时,按照上面的公式把B的信息传给A,会使A的信息失真,因此GCN的目标就是解决这个信息传递时失真的问题。
解释一下这个公式:
A'矩阵代表A的关联矩阵(关联信息+自身信息),D'代表A'的度矩阵,表示节点的连接情况。
H代表每一层的特征。
这个时候在计算B传给A的信息时,B虽然有很大的信息,但是公式中分母包含了B的度矩阵Djj,因此再给A传递时信息不至于过大失真。
在社交模型中,表示B虽然认识很多人,他在社交网络中有很大的影像,但是B对他的每一个关联朋友不可能全部投入很大的影像,否则这个社交网络就不稳定了。因此GCN使得B给A的信息降低,到一个合适的水准。
三、GAT
GCN通过度矩阵D来描述节点之间的影响程度。
如何让模型自动学习节点之间互相的影响度呢(也就是重要性)?就是GAT要就觉得问题。
这个公式解释GAT如何计算A和B之间的重要性的。
分子部分:
W:W可以通过网络训练更新得到,相当于一个transform,目的是将A的向量转换为指定向量维度。
WA||WB:表示WA与WB两个向量拼接起来。
a*(WA||WB):a可以通过网络训练更新得到,表示a点乘向量,最终得到一个数值,表示A和B之间的重要性。
分母部分:
同理,表示A和B,A和C,A和D的重要性之和,这样可以使与A相邻的节点重要性之和为1。
在GAT原论文中,对应上述解释的注意力机制公式如下:
αij代表两个节点之间的最终重要性度量值。
为了使注意力机制更稳定,后面设计了多头注意力机制:
看了B站up主的视频,讲的特别好记录一下。
更多推荐
所有评论(0)