1 引言
近年来,图神经网络(Graph Neural Networks,GNN)在NLP、风控和推荐系统等领域的研究十分火热,其对推荐系统、生物医药、社交网络和知识图谱等非结构化数据有十分优秀的处理能力。基于图神经网络的Embedding表征学习,十分重要且有意义。
图神经网络是一个很广阔的领域,涉及的知识点十分多,甚至可以专门针对它写一本书。受限于篇幅,本节以GCN和GraphSAGE两个十分经典的模型为例,阐述基于图神经网络的Graph Embedding的基本原理。
精通推荐算法12:图神经网络之GCN-CSDN博客 已经讲解了GCN,本文再重点讲解GraphSAGE
2 GraphSAGE:图神经网络工业应用的高潮
GraphSAGE(Graph SAmple and aggreGatE)于2017年,由斯坦福大学学者,在论文“ Inductive Representation Learning on Large Graphs”[11]中提出。它先对邻居节点进行采样,然后将它们的Embedding融合起来,并更新当前节点的Embedding,最后将更新后的Embedding使用到下游任务中。其先采样后融合的思想,有效解决了GCN需要整图建模带来的诸多缺点。
图6-16为GraphSAGE应用流程图,其主要分为采样、融合和预测三步。采样阶段,通过有放回的方式,选择S个邻居节点。从而使每个节点的采样数是一个固定值,方便并行计算。采样可以有效解决GCN需要导入整图,使得资源消耗过大的问题。
融合阶段,先将采样得到的邻居节点的Embedding融合起来。融合主要有Mean(取平均)、LSTM和 Pooling(池化)三种方式,这儿重点介绍Pooling方式。先对每个邻居节点Embedding做全连接和非线性激活,然后取所有向量每个位置最大值(element-wise max),作为融合后的输出向量。其数学表达如公式6-13所示,其中Wpool和b为全连接参数,σ为激活函数,h为邻居节点Embedding。
融合邻居节点后,将得到的Embedding和当前节点Embedding拼接(CONCAT),然后通过一层全连接和非线性变换,得到当前节点新的Embedding。其数学表达如公式6-14所示,其中为全连接参数,σ为激活函数,为当前节点的Embedding。CONCAT表示向量拼接操作。
3 GraphSAGE预测阶段
预测阶段,利用节点最终的Embedding优化下游任务。模型训练时,如果是有监督任务,则利用最终的Embedding预测其标签,再基于交叉熵或MSE损失函数,利用随机梯度下降算法,反向传播更新模型参数。如果是无监督任务,则可基于对比学习,将附近邻居作为正样本,再从距离较远的节点中采样一些负样本,从而构建自监督任务。
GraphSAGE单层网络,只能融合与当前节点直接相连的邻居的信息,即一跳关系。通过堆叠两层网络,则可以同时融合邻居,以及邻居的邻居的信息,即一跳关系和二跳关系。一般来说,k层GraphSAGE网络,可以融合k跳关系。基于权值共享思想,每层内的融合器和权重矩阵,被每个节点所共享。
4 总结
GraphSAGE基于采样机制,可以使用mini-batch训练模型,不需要加载全部图信息。它有效解决了内存资源消耗问题,可以应用到工业界大规模图网络数据上。同时,它聚合了邻居节点的信息,提升了Embedding准确性。最后k层网络可以融合节点k跳关系,具有高度的可扩展性。但它采样和聚合时,没有考虑不同邻居的重要性不同。后续GAT(Graph Attention Networks)等模型,引入Attention(注意力)机制,对其进行了优化。感兴趣的读者可以自行阅读论文。
5 作者新书推荐
历经两年多,花费不少心血,终于撰写完成了这部新书。本文在6.5节中重点阐述了。
源代码:扫描图书封底二维码,进入读者群,群公告中有代码下载方式
微信群:图书封底有读者微信群,作者也在群里,任何技术、offer选择和职业规划的问题,都可以咨询。
详细介绍和全书目录,详见
《精通推荐算法》,限时半价,半日达https://u.jd.com/VbCJsCz