论文:Inductive Representation Learning on Large Graphs
链接:https://arxiv.org/abs/1706.02216.
Inductive model
在GNN基础介绍中我们曾提到,基础的GNN、GCN是transductive learning,可以理解为半监督学习。在我们构建的graph中包含训练节点和测试节点,虽然我们不知道测试节点的label,但是我们从这些节点中获取了信息,这种transductive模型一个很明显的局限性就在于无法进行在线测试。当输入新节点之后,我们需要重新构图训练模型,而GraphSAGE则是一个Inductive的模型,具有更强的落地应用价值。
GraphSAGE
SAGE:SAmple and aggreGatE
Instead of training individual embeddings for each node, we learn a function that generates embeddings by sampling and aggregating features from a node’s local neighborhood.
论文摘要部分提到了这一模型的关键思想在于学习一个能从邻节点采样聚合后生成node embedding的函数。
整个流程如上图所示,主要包括三个部分
- 对图中每个顶点邻居顶点进行采样(因为每个节点的度是不一致的,为了计算高效, 为每个节点采样固定数量的邻居)
- 聚合采样得到的邻居顶点的信息,更新node features
- 根据顶点的embedding进行下游任务处理
上面伪代码展示了GraphSAGE前向传播生成embedding的过程。
aggregator
论文中测试了多种聚合函数的性能。另外,聚合函数必须满足
invariant to permutations of its inputs
聚合函数的对称性(symmetry property)确保了神经网络模型可以被训练且可以应用于任意顺序的顶点邻居特征集合上。
- Mean aggregator 每个维度的均值。均值聚合近似等价在transducttive GCN框架中的卷积传播规则
- LSTM aggregator。LSTM不具有置换不变性(permutation invariant),因为它们以一个序列的方式处理输入。因此,需要先对邻居节点随机顺序,然后将邻居序列的embedding作为LSTM的输入。
- Pooling aggregator(max pooling or mean pooling)
train model
论文提供了无监督学习和监督学习两种方式。监督学习应用于下游任务,而无监督的损失:
J
G
(
z
u
)
=
−
log
(
σ
(
z
u
⊤
z
v
)
)
−
Q
⋅
E
v
n
∼
P
n
(
v
)
log
(
σ
(
−
z
u
⊤
z
v
n
)
)
J_{\mathcal{G}}\left(\mathbf{z}_{u}\right)=-\log \left(\sigma\left(\mathbf{z}_{u}^{\top} \mathbf{z}_{v}\right)\right)-Q \cdot \mathbb{E}_{v_{n} \sim P_{n}(v)} \log \left(\sigma\left(-\mathbf{z}_{u}^{\top} \mathbf{z}_{v_{n}}\right)\right)
JG(zu)=−log(σ(zu⊤zv))−Q⋅Evn∼Pn(v)log(σ(−zu⊤zvn))
这一graph-based loss function对output representations使用SGD进行优化,使不相邻的节点表示差异增大,使用内积来衡量相似度。