RGCL:A Review-aware Graph Contrastive Learning Framework for Recommendation
A Review-aware Graph Contrastive Learning Framework for Recommendation
解决的问题
基于评论的推荐可以自然地形成为具有来自相应用户项目评论的边特征的用户项目二分图。那么就可以利用评论感知图中独特的自监督信号来指导推荐的两个组件:用户-项目嵌入学习,用户-项目交互建模。
RGCL模型与结果
首先构造了一个评论感知的用户-项目图,图上的边包含用户-项目评级以及相应的评论语义信息,这个图具有增强的边特征,可以更好地学习每个邻居节点的权值。增加了两个额外的对比学习任务(节点鉴别和边鉴别)为推荐过程中的两个分量提供自监督信号。
得到的图结构是这样的,包含评级信息以及评论语义:

此图说明了一些符号表示,并且给出基于评论的推荐的任务是预测用户-项目交互图的最终评级矩阵R^。

这是模型的架构图,主要包括边特征图建立、评论感知的图学习、图对比学习、评级预测。
将评分看作边类型来区分评分所携带的语义。使用BERT-Whitening 为用户对项目发表的评论生成表示。评论表示的生成在模型训练时将被冻结,以减少训练时间和内存使用,代表着评论表示的生成将在模型训练开始之前完全结束。
如框架图所示,我们使用评论表示来微调邻居节点对嵌入生成节点的影响,并审查其本身对中心节点的额影响,表示为:
通过类似的方式可以获得从用户传递到项目的消息:
于是得到了在第l层的信息聚合结果:

将第L层的输出作为最终的用户和项目嵌入:
下面就是对用户和项目之间的交互进行预测,这里的交互模型我们通过MLP模型为基础来得到交互特征:
MLP表示具有两个隐藏层和GELU激活函数,在获得评分之后,我们可以根据交互特征预测评分:
其实以上的内容已经是完整的一个模型了,但是,有限的交互行为限制了准确的用户偏好学习,导致模型远远不能令人满意。为了缓解这个问题,构建了节点识别ND增强节点嵌入学习,构建了边识别ED增强交互建模。
采用了节点丢弃来生成用于对比学习的子图。比如对于用户节点来说,以概率随机丢弃项目节点和相应的评论特征,生成两个子图,用于消息传递和聚合。这两个子图得到两个嵌入,我们最大化正对的相似性,最小化负对的相似性,表示为:
同样的,对于项目节点也是一样的,随机丢弃用户节点和对应的评论特征,得到两个子图,最终得到两个嵌入,两部分的损失加在一起就是节点加强的损失:
在公式5中得到的交互特征作为锚示例,遵循CL框架,我们选择相应的评论作为正样本,于是,训练集中随机采样的评论作为负样本。于是优化为:
因为模型侧重于用户对项目的评分,所以采用均方误差MSE作为优化目标:
所用数据集为:
模型结果:
模型所用技术与数学知识
对比学习:随机丢弃和随机选择
评价指标与Baseline
MSE
SVD(一个经典的矩阵因子分解模型)
NCF(使用神经网络预测评级)
DeepCoNN(从文档如评论 中提取用户、项目特征的先驱)
NARRE(在DeepCoNN的基础上添加了注意力机制来给评论 的有用性分配权重)
DAML(通过对用户项目文档 之间的交互进行建模)
SDNet(提出一种基于GAN的方法,将丰富的目标评论 信号转换为NCF)
TransNets(将MLP插入DeepCoNN,将用户和项目特征转换为目标评论 特征的近似值)
GC-MC(将评分预测看作用户-项目图上的链接预测,并采用关系图卷积进行编码)
RMG(最早融合图与评论 的模型之一)
SSG(设计了一种基于评论 感知的图注意力网络)
代码链接
https://github.com/JarenceSJ/ReviewGraph
