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

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的邻接矩阵的图该怎么表示和计算呢?但是嵌入可以看做是一种压缩技术,能够起到降维的作用。
  • 向量计算比直接在图上操作更加的简单、快捷

更多内容参考知乎解答。

参考文章

介绍下GCN

Graph Convolutional Network可以从两个角度来理解。

1)第一个角度,也称空域GCN,是Graph + Convolutional Network,在graph上运用CNN的思想。
2)第二个角度,是Graph Convolution + Network,在Graph Convolution上加了一系列非线性函数。

关于GCN的更多解释参见知乎~ 门槛有点高~

参考文章

训练图模型的loss有哪些

交叉熵损失:GCN可以用于分类任务

参考文章

GCN、GraphSAGE、GAT的区别与联系

GCN:训练是full-batch的,难以扩展到大规模网络,并且收敛较慢;
GAT:参数量比GCN多,也是full-batch训练;只用到1-hop的邻居,没有利用高阶邻居,当利用2阶以上邻居,容易发生过度平滑(over-smoothing);
GraphSAGE:虽然支持mini-batch方式训练,但是训练较慢,固定邻居数目的node-wise采样,精度和效率较低。

以上来自知乎~

参考文章

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度 Q 神经网络(Deep Q-Network, DQN)是一种用于强化学习的神经网络结构,它被广泛应用于解决基于马尔可夫决策过程的问题,特别是在深度强化学习中。DQN结构如下所示: 输入层(Input Layer):接收环境状态作为输入,通常使用一个向量表示状态信息。 隐藏层(Hidden Layers):DQN通常包含多个隐藏层,每个隐藏层由多个神经元组成,用于提取状态特征和学习更高级别的表示。 输出层(Output Layer):输出层的神经元数量等于可选动作的数量,每个神经元对应一个动作,输出对每个动作的 Q 值估计。 经验回放缓存(Experience Replay Buffer):用于存储智能体与环境交互的经验元组,包括状态、动作、奖励、下一个状态等信息。 目标网络(Target Network):用于稳定训练过程的辅助网络。它与主网络结构相同,但参数更新频率较低,以减少训练过程中的目标值变化。 动作选择(Action Selection):根据当前状态和 Q 值估计选择动作的策略。 损失函数(Loss Function):用于衡量 Q 值估计与目标 Q 值的差距,通常使用均方误差(Mean Squared Error)作为损失函数。 参数更新(Parameter Update):通过优化算法(如梯度下降)不断更新网络参数,使 Q 值估计逐渐逼近目标 Q 值。 以上是深度 Q 神经网络的常见结构,实际应用中可能会根据具体问题进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值