GNN在推荐系统的应用——>GC-MC与STAR-GCN

GNN ——> 推荐系统(两个算法)


前言

部分资源来自于Youtube

一、GC-MC

1、总体结构

在这里插入图片描述

首先进行one-hot编码,得到X矩阵,结合M(用户-商品交互矩阵)进行编码工作,得到U和V矩阵

然后对U和V进行解码工作,得到一个新的交互矩阵,其中原本的空白值也得到了填充

2、Graph Encoder部分

对一个用户u来说,评分过的商品得到了不同的分数,将相同评分的商品统一的利用Wi矩阵进行转化取平均,将不同分数得到的向量结果进行累加、激活,和矩阵W进行相乘,就得到了hui的表示,如下图所示(对于商品v也一样)
在这里插入图片描述

3、Graph Decoder部分

对于useri和Itemj对不同的评分定义为Mij,对应的不同概率通过softmax计算出来,Qr和QS都是可训练的参数矩阵,便于结合u和v的维度
最后将基于不同评分下的预测矩阵进行有权值的累加,就得到了最后的预测值
在这里插入图片描述

4、损失函数

损失函数的定义如下:
通过已知的评分对预测结果进行误差计算,即评分对应的Mij概率p对应的logp作为损失进行梯度下降,注意这里的概率p是0~1区间的,logp<0

在这里插入图片描述

5、实验结果

在这里插入图片描述

6、不足

输入维度过高,和用户、商品数息息相关
对于新的用户和商品有冷启动问题

二、STAR-GCN

根据以上的不足,STAR-GCN做了很多改进

1、总体架构(比较)

在这里插入图片描述
比GCMC相对而言,stacking了很多对编码器和解码器,并且权重矩阵是共享的
在这里插入图片描述

2、Transductive 和 Inductive(归纳和直推)

在这里插入图片描述
GC-MC是transductive
STAR-GCN 是 Inductive

如何实现直推?——mask

训练过程中一定几率下把部分的输入节点的embedding变成全0,这样模型就有了可以对低信息节点预测的能力,当新进来节点的时候,只需要少量的连接关系产生,就可以产生还不错的预测结果
在这里插入图片描述
下图可以直观的看出两个模型解码器的区别,GCMC如前文所说,主要是对已知评分链路的预测,而STAR-GCN主要是对X矩阵的还原(图中绿色的公式)

在这里插入图片描述

3、LOSS部分

L是所有编码解码器对中产生的Lt和Lr累加产生的公式

Lt是在编码后根据预测值产生的误差。公式在下图中可以看到,其实就是通过编码之后产生的User与Item的embedding进行内积运算(我们认为这就是我们需要的预测值,很常见的想法),然后与真实的评分作差值
在这里插入图片描述

Lr是在解码后与原本X相比产生的误差
公式如下图所示
在这里插入图片描述

4、leakage Issue的避免

预测的时候可能会遇到这样的问题:预测值已经在训练中就已经被纳入计算了
这个事GCN常见的问题,因为GCN训练的时候会将所有的边通过邻接矩阵纳入进来,答案就被涵盖进来,就会出现过拟合问题

如何解决:把需要预测的边直接拿掉
下图中U1和V1之间有边,但是训练时候不能放进去
在这里插入图片描述

5、实验结果

从实验结果来看可以发现,Lr和Leakage Issue的避免都是有显著作用的
recurrent指标代表的是每对编解码器是否通用参数,但是不同数据下是否相同差别不是很明显,所以为了降低时间复杂度,可以共享参数

可用的训练数据的信息越大,对模型的提升效果不明显,代表了该算法较好地解决了cold start的问题。
在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值