基于推荐的GNN方法导读

GNN方法是在确定的图结构中,通过迭代计算,最后求出User和item的向量表示。GNN分为五部分:

1. 嵌入层

先在给定的图结构中通过one-hot等方法获得item和users的向量初步表示矩阵Ev和Eu,对于任何一个uesr和item,通过运算执行去获得向量矢量表示(embedding vector)ev/u ∈Rd,对于此向量作为一个初始值并将其传入到下阶段进行聚合传播。

2. 嵌入聚合层

此层的目的是真实可靠的收集和聚合邻居节点的信息,在user-item图结构中,有两种聚合方式(item聚合方式和user聚合方式):
在这里插入图片描述
eu/v是第一步中得到的矢量,Nu是和user存在相互作用的item的矢量集合(user的一阶邻居),Nv是和item存在相互作用的user的矢量集合(item的一阶邻居),最终得到的nu/v向量是聚合了邻居节点信息的表征向量。f(·)是聚合函数。

3. 嵌入传播层

为了获得高阶user和item交互信息,GNN采用多层神经网络进行训练得到l+1次的向量表示。hu(l)和hv(l)被定义为user和item的第l层的向量嵌入表示,之后,得到第l+1层的向量表示主要为两个步骤:(1)将第l层的邻居们的向量聚合成一个合适长度的nl+1向量。(2)将前一步得到的邻居们的向量和节点在第l层自己的向量聚合。最终得到第(l+1)层的向量。
在这里插入图片描述

4. 预测层

经过l层神经网络的迭代后我们得到了item和user的集合{hu(1), hu(2), …, hu(l)}和{hv(1), hv(2), …, hv(l)},最后user和item的向量表示为eu*和ev*,o(·)是融合函数。
在这里插入图片描述
一些论文也直接使用最后一层的向量作为最后的向量表示,或者将所有层得到的向量相互拼接,或者是采用加权方式进行融合以此得到最后的表征向量。
最后,应用内积来估计用户对目标物品的偏好,如下所示:
在这里插入图片描述
(注意,内积也被用作推荐的相似度分数,以作为top-k推荐方法。)

5. 联合训练

给定一个训练样本(u, v),训练得出其中的(eu*, ev*),此节点对(u,v)的相似度可以被定义成:
在这里插入图片描述
这里V表示所有item的集合,Vu-是和给定节点user u没有相互关系的item的集合,vn表示和user u没有相互关系的一个样本。
但是要是用所有item的负样本进行模型训练的话,训练代价是非常高的,所以可以采用选取一部分负样本进行训练的方式进行模型的训练:
在这里插入图片描述
vn ~ pn(·)代表了预先选取的负样本的集合。

6. 损失函数

基于推荐的GNN的损失函数是最小化下式并进行迭代以求得最终的向量表示结果(D是该网络中所有user-item的连边集合):
在这里插入图片描述

注:基于推荐的GNN方法出自论文《STAM: A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendation》,建议读完此文章之后再看上述论文,可以对文章有着更好的理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值