深度学习图神经网络总结
- GNN在推荐系统中有哪些用法
- 介绍下Graph Embedding(图嵌入)
- 介绍下GCN
- 训练图模型的loss有哪些
- GCN、GraphSAGE、GAT的区别与联系
GNN在推荐系统中有哪些用法
推荐系统中使用GNN的动机
有两点:
1)RS中大多数据具有图结构;
2)GNN擅长捕捉节点间的连接和图数据的表示学习。
下图分别表示二部图、序列图、社交关系图和知识图。
最近,GNN相比于随机游走等传统的图学习方法取得了更好的表现。对于二部图,GNN能够迭代地从交互的items中传播信息,并更新用户向量(对item同理),可以增强user/item表示。GNN还可以学习边信息的压缩表示,学习到的向量可以整合到交互数据的表示中以提升性能,另外的策略是结合多个图到一个异质图,然后在全图上传播信息。
解释下二部图
推荐系统会存储大量的用户与items交互数据,这些数据可以用二部图呈现。二部图对消除推荐系统中数据稀疏性和冷启动有着巨大的帮助。
我们可以通过每个用户交互过的item列表,构建一个巨大的二部图,如下图所示:
传统的神经网络方法(如协同过滤,双塔),是无法处理上述二部图的,图神经网络就是要充分挖掘节点信息和节点与节点的交互信息,从而带来巨大的商业价值。
在推荐领域,图神经网络主要解决了以下几个问题:
- 节点的敏感度,节点顺序很小的改变极大的影响模型的输出。
- 节点间闭塞的信息交互,传统的深度学习模型不能够充分挖掘高阶节点之间的交互信息。
- 解释能力弱,传统的深度模型面向直观的交互式图结构,不能用于基于图形的解释和推理。
当使用GNN处理二部图,输入节点的顺序并不会影响输出。另外,GNN使用边的去辅助传播、集成节点和邻居的状态,更新当前节点的状态,结构化的信息会被模型捕捉,并表达在每个节点上,从而解决推荐系统稀疏性的问题。
以上参考知乎~
参考文章
介绍下Graph Embedding(图嵌入)
1. 什么是图嵌入
图嵌入是一种将图数据(通常为高维稠密的矩阵)映射为低微稠密向量的过程,如图。图嵌入需要捕捉到图的拓扑结构,顶点与顶点的关系,以及其他的信息 (如子图,连边等)。如果有更多的信息被表示出来,那么下游的任务将会获得更好的表现。在嵌入的过程中存在着一种共识:向量空间中保持连接的节点彼此靠近。
总的来说图嵌入技术大致可以分为两种:节点嵌入和图嵌入。当需要对节点进行分类,节点相似度预测,节点分布可视化时一般采用节点的嵌入;当需要在图级别(graph-level)上进行预测或者整个图结构预测,需要将整个图表示为一个向量进行嵌入表示。
常用的图嵌入方法有DeepWalk, node2vec, SDNE和graph2vec等。
2. 为什么要做图嵌入(或者说图嵌入的作用)
图是一种易于理解的表示形式,除此之外出于下面的原因需要对图进行嵌入表示:
- 在graph上直接进行机器学习具有一定的局限性,我们都知道图是由节点和边构成,这些向量关系一般只能使用数学,统计或者特定的子集进行表示,但是嵌入之后的向量空间具有更加灵活和丰富的计算方式。
- 图嵌入能够压缩数据, 我们一般用邻接矩阵描述图中节点之间的连接。 连接矩阵的维度是|V| x |V|,其中|V| 是图中节点的个数。矩阵中的每一列和每一行都代表一个节点。矩阵中的非零值表示两个节点已连接。将邻接矩阵用用大型图的特征空间几乎是不可能的。一个具有1M节点和1Mx1M的邻接矩阵的图该怎么表示和计算呢?但是嵌入可以看做是一种压缩技术,能够起到降维的作用。
- 向量计算比直接在图上操作更加的简单、快捷。
更多内容参考知乎解答。
参考文章
- 深度学习中不得不学的Graph Embedding方法
- 图嵌入(Graph embedding)- 简介
- 图嵌入(Graph embedding)综述
- 为什么要进行图嵌入(Graph embedding)?
- Graph Embedding 及其在知乎的实践
介绍下GCN
Graph Convolutional Network可以从两个角度来理解。
1)第一个角度,也称空域GCN,是Graph + Convolutional Network,在graph上运用CNN的思想。
2)第二个角度,是Graph Convolution + Network,在Graph Convolution上加了一系列非线性函数。
关于GCN的更多解释参见知乎~ 门槛有点高~
参考文章
- 何时能懂你的心——图卷积神经网络(GCN)
- 图卷积网络(GCN)入门详解
- 图卷积网络(GCN)新手村完全指南
- 2020年,我终于决定入门GCN
- 图卷积网络 Graph Convolutional Network(GCN)的理解和详细推导
- 如何理解 Graph Convolutional Network(GCN)?
- 哪位高手能解释一下卷积神经网络的卷积核?
- 【Graph Neural Network】GCN: 算法原理,实现和应用
- 请问全连接的图卷积网络(GCN)和self-attention这些机制有什么区别联系吗?
训练图模型的loss有哪些
交叉熵损失:GCN可以用于分类任务
参考文章
GCN、GraphSAGE、GAT的区别与联系
GCN:训练是full-batch的,难以扩展到大规模网络,并且收敛较慢;
GAT:参数量比GCN多,也是full-batch训练;只用到1-hop的邻居,没有利用高阶邻居,当利用2阶以上邻居,容易发生过度平滑(over-smoothing);
GraphSAGE:虽然支持mini-batch方式训练,但是训练较慢,固定邻居数目的node-wise采样,精度和效率较低。
以上来自知乎~
参考文章
- GCN、GAT、GraphSAGE的优势很明显,想问一下它们分别有什么缺点?
- GraphSAGE:我寻思GCN也没我牛逼
- GraphSAGE: GCN落地必读论文
- Graph neural network综述:从deepwalk到GraphSAGE,GCN,GAT
- 图卷积:从GCN到GAT、GraphSAGE
- 图神经网络(GCN、GraphSage、GAT)等在公司实际推荐系统中有应用么?