深度学习-图神经网络总结

深度学习图神经网络总结

  • GNN在推荐系统中有哪些用法
  • 介绍下Graph Embedding(图嵌入)
  • 介绍下GCN
  • 训练图模型的loss有哪些
  • GCN、GraphSAGE、GAT的区别与联系

GNN在推荐系统中有哪些用法

推荐系统中使用GNN的动机

有两点:
1)RS中大多数据具有图结构;
2)GNN擅长捕捉节点间的连接和图数据的表示学习。

下图分别表示二部图、序列图、社交关系图和知识图。
深度学习-图神经网络总结_第1张图片
最近,GNN相比于随机游走等传统的图学习方法取得了更好的表现。对于二部图,GNN能够迭代地从交互的items中传播信息,并更新用户向量(对item同理),可以增强user/item表示。GNN还可以学习边信息的压缩表示,学习到的向量可以整合到交互数据的表示中以提升性能,另外的策略是结合多个图到一个异质图,然后在全图上传播信息。

解释下二部图

推荐系统会存储大量的用户与items交互数据,这些数据可以用二部图呈现。二部图对消除推荐系统中数据稀疏性和冷启动有着巨大的帮助。

我们可以通过每个用户交互过的item列表,构建一个巨大的二部图,如下图所示:
深度学习-图神经网络总结_第2张图片
传统的神经网络方法(如协同过滤,双塔),是无法处理上述二部图的,图神经网络就是要充分挖掘节点信息和节点与节点的交互信息,从而带来巨大的商业价值。

在推荐领域,图神经网络主要解决了以下几个问题:

  • 节点的敏感度,节点顺序很小的改变极大的影响模型的输出。
  • 节点间闭塞的信息交互,传统的深度学习模型不能够充分挖掘高阶节点之间的交互信息。
  • 解释能力弱,传统的深度模型面向直观的交互式图结构,不能用于基于图形的解释和推理。

当使用GNN处理二部图,输入节点的顺序并不会影响输出。另外,GNN使用边的去辅助传播、集成节点和邻居的状态,更新当前节点的状态,结构化的信息会被模型捕捉,并表达在每个节点上,从而解决推荐系统稀疏性的问题。

以上参考知乎~

参考文章

  • 图神经网络在推荐系统的应用研究综述
  • 综述|GNN在推荐系统中的挑战、方法和方向
  • 推荐系统与GNN的火花
  • 怎么看待最近比较火的 GNN?

介绍下Graph Embedding(图嵌入)

1. 什么是图嵌入

图嵌入是一种将图数据(通常为高维稠密的矩阵)映射为低微稠密向量的过程,如图。图嵌入需要捕捉到图的拓扑结构,顶点与顶点的关系,以及其他的信息 (如子图,连边等)。如果有更多的信息被表示出来,那么下游的任务将会获得更好的表现。在嵌入的过程中存在着一种共识:向量空间中保持连接的节点彼此靠近
深度学习-图神经网络总结_第3张图片
总的来说图嵌入技术大致可以分为两种:节点嵌入图嵌入。当需要对节点进行分类,节点相似度预测,节点分布可视化时一般采用节点的嵌入;当需要在图级别(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可以用于分类任务

参考文章

  • 2020年,我终于决定入门GCN
  • 【Graph Neural Network】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)等在公司实际推荐系统中有应用么?

你可能感兴趣的:(深度学习,神经网络)