阅读笔记:DAML: Dual Attention Mutual Learning between Ratings and Reviews for Item 阅论文标题: DAML: Dual Attention Mutual Learning between Ratings and Reviews for Item Recommendation
会议: KDD
时间: 2019
paper链接: https://dl.acm.org/doi/10.1145/3292500.3330906
一、总述
尽管许多基于矩阵分解的协同过滤方法都取得了成功,但在推荐系统领域还有很大的改进空间。主要障碍是冷启动和数据稀疏问题。最近的研究尝试将评论信息整合到评分预测中。但存在两个主要问题:(1)现有的研究大多采用静态、独立的方法提取用户和物品评论的潜在特征表示,忽视了潜在特征之间的相关性,可能无法全面捕捉用户的偏好。(2)没有统一评分和评论的有效框架。
文章提出了Dual Attention Mutual Learning between Ratings and Reviews for Item Recommendation——DAML。具体来说,利用卷积神经网络的local和mutual注意力来共同学习评论的特征,以增强模型的可解释性。然后将评分评论特征集成到统一的神经网络模型中,通过神经因子分解机实现特征间的高阶非线性交互,完成最终的评分预测。
评分只能反映用户的总体满意度,缺乏可解释性,也有冷启动问题。因此研究者关注评论,目前提出了神经网络的方法,如卷积神经网络,比基于主题的模型效果更好,但仍有一些待解决的问题,如上文提到的两个问题。因此文章提出DAML模型,利用CNN的注意力机制和MLP的非线性来实现用户预测评分。
相关的工作是推荐的评论文本和神经网络。
二、问题设定
U为用户集合,I为物品集合,R为评分,是用户和物品的交互,X是用户评论文本集合,S是物品评论文本集合。
DAML的交互输入是用户和物品的identity,通过one-hot编码向量表示,评论数据就是x和s。输出方面,训练过程由一个f函数表示,输出是一个评分R,对任意用户u我们得到他对任意物品的评分ru,i
三、DAML模型
模型分为两个部分,第一个部分是特征学习模块,第二个部分是特征交互模块。
特征学习模块包括两个组件,基于评论的特征学习组件和基于交互的特征学习组件。基于评论的组件使用CNN的注意力机制来学习用户偏好和物品特征之间的相关性。基于交互的组件用于把用户和物品映射到低维密集向量,从而获取非线性特征交互。
特征交互模块中,我们把评分和评论特征聚合到一个统一的神经网络模型,然后用一个神经因子分解机来建模潜在特征向量间的高阶非线性交互。
- 特征学习组件:
基于评论的特征学习利用CNN的卷积操作和注意力机制来学习用户和物品特征之间相关的语义信息:
查找嵌入层:
使用Glove词向量模型来吧单词xu映射到词向量wi,然后通过以出现顺序级联单词形成一个评论矩阵D:
局部注意力层:
通过注意力滑动窗口来学习评论中每一个词的权重,我们取词向量矩阵中i位置的单词作为中心单词,ω作为滑动窗口的宽度,注意力权重s(i)可以通过参数矩阵和偏置被计算如下,theta标记非线性的激活函数,我们使用sigmoid,通过注意力权重来表示重要性,词向量被计算为w accent,D accent则如下:
卷积操作:
对于词向量矩阵D accent,卷及操作用于提取语义信息,特别地,第j次卷积过滤的滑动窗口的大小用来提取局部上下文特征cij:
为了生成l个上下文特征,我们用多个不同卷积权重的卷积过滤来获取每个单词的上下文特征,在卷积后,i位置的上下文特征可以被表示如下,这样我们可以分别获取用户评论和物品评论的上下文特征:
mutual注意力层:
文章使用mutual注意力层来学习用户评论和物品评论间的关系。我们定义一个关联性的评分函数f来利用欧几里得距离计算相关性,这样,注意力矩阵A,用户评论的第k个位置和物品评论的第i个位置的关联权重g,可以表示如下:
局部池化层:
对于mutual注意层的输出特征,我们用一个连续行的滑动窗口的平均来生成粒度更高的更抽象的特征,这样mutual注意力层的权重为:
为了更抽象,减少不相关方面的噪声,在局部池化层中叠加一个卷积层和一个平均池化层。抽象特征计算如下,最后,我们用一个非线性函数来把上下文特征映射到多维空间,完成推荐任务:
基于排名的特征学习:
把one-hot向量通过潜在因子的矩阵映射到嵌入层:
- 特征交互模块:
为了获取用户综合偏好和物品特征,我们首先在模块中融合两个异质信息特征,并级联:
通过神经因子分解机来获取特征的高阶非线性交互,目标方程如下,f(z)建模了特征的高阶交互:
我们通过堆叠多个全连接层来获取特征的高阶交互,最终预测的目标函数被表示为:
- 联合训练
利用平方损失作为目标方程:
整体架构可以通过一个端到端的反向传播范式来训练:
采用随机梯度下降SGD和反向传播共同学习两个模块的参数,对于参数更新,对小批量使用Adam。为了防止过拟合,对神经因子分解机采用了退出策略。
- 时间复杂度分析
四、实验
数据集:Amazon 5-core的五个数据集,Music Instruments, Office Products, Grocery and Gourmet Food, Video Games, Sports and Outdoors的评论。由于数据大且稀疏,我们先进行一个预处理。而后80%训练,10%验证,10%测试。
评判标准是Mean Absolute Error (MAE):
文章实验主要的策略是与基线方法比较,分析各组件和参数的影响,分析基于评论的特征学习。
比较的基线如下,参数设置见paper:
实验证实了DAML的可行性,实验表明潜在特征之间的非线性交互作用比现有的浅层模型能提供更好的推荐性能。证明了CNN对上下文特征的成功提取。计算特征相关性的距离度量方法,可以更直观地显示特征之间的相关性。
同时,潜在因子维度对性能的影响很小,但随着维度增大,时间复杂度提高,而且可能会过拟合。而高阶非线性交互函数可以捕获不同模式下特征之间的相关性,提高推荐性能。
局部注意层能够有效区分信息词,减少噪声干扰;mutual注意层能够通过识别用户-物品对的相关信息,提高推荐性能。局部关注层能够从评论中选择具有用户和项目重要信息的单词。mutual层的热图显示DAML能够有效地捕获用户-商品对评论中的相关语义信息。
五、总结
本文提出了一种新的基于评分和评论的DAML模型。采用局部注意层对评论信息进行过滤,mutual注意层对用户-物品对的相关性进行学习。此外,评分和评论被统一成一个神经网络。然后在DAML中引入神经因子分解机器来捕获特征的高阶非线性交互。
六、表格总结
文章 |
DAML: Dual Attention Mutual Learning between Ratings and Reviews for Item Recommendation |
推荐目标 |
物品评分 |
输入数据及格式 |
用one-hot向量分别编码用户和物品向量。评论文本通过词向量模型把评论单词映射为词向量,级联形成评论矩阵 |
痛点 |
冷启动和数据稀疏问题 |
核心思路 |
通过评分评论信息来辅助推荐,用注意力机制和卷积神经网络增强模型可解释性,同时使用多层感知器的非线性,完成最终预测 |
模型架构图 |
|
网络构建方式 |
模型分为两个部分,第一个部分是特征学习模块,第二个部分是特征交互模块。 特征学习模块包括两个组件,基于评论的特征学习组件和基于交互的特征学习组件。基于评论的组件使用CNN的注意力机制来学习用户偏好和物品特征之间的相关性。基于交互的组件用于把用户和物品映射到低维密集向量,从而获取非线性特征交互。 特征交互模块中,我们把评分和评论特征聚合到一个统一的神经网络模型,然后用一个神经因子分解机来建模潜在特征向量间的高阶非线性交互。 |
涉及深度学习模型 |
CNN,MLP |
其他关键要素 |
使用了两个注意力层,局部的注意力机制,针对评论文本进行学习,相互注意力机制引入函数对用户评论和物品评论的相关性进行评分 |