基于注意力机制的深度协同推荐模型

2022-09-22 05:59袁雪梅浦艺钟徐子凡
软件导刊 2022年9期
关键词:注意力向量矩阵

袁雪梅,程 科,2,浦艺钟,2,徐子凡

(1.江苏科技大学计算机学院;2.镇江明知科技有限公司,江苏镇江 212100)

0 引言

随着互联网的迅速发展,数据量呈现出爆炸式增长[1]。推荐系统作为一种可以从海量数据中有效挖掘有价值信息的技术,受到了广泛关注[2]。推荐系统通过分析历史行为数据向用户推荐其可能感兴趣的项目。目前,推荐系统已经与人们的日常生活息息相关,并且在多种领域大放异彩,例如购物平台、新闻媒体等。

推荐算法在推荐系统中占据核心地位,传统推荐算法主要包括基于内容的推荐、协同过滤推荐和混合推荐3种[3]。其中,协同过滤推荐通过对用户历史行为数据进行广泛挖掘并加以分析得到其对项目的偏好信息,进而向用户推荐其可能感兴趣的内容。在众多协同过滤算法中,矩阵分解由于具有扩展性好、准确率高的特性而受到诸多学者的青睐。然而,矩阵分解为用户作出推荐时仅依靠单一的显性评分,在实际场景中很容易遭遇数据稀疏和冷启动问题。随着新时代网络的高速发展,各种形式的辅助信息层出不穷,例如空间位置信息、时间信息、文本信息等。其中评论文本信息含有丰富的语义和情感信息,大多数用户在消费之前都会参考评论信息再作出决定,因此本文对评论文本信息进行建模,以期从中提取出有价值的用户和商品特征。

深度学习技术可提取深层数据特征并有效利用多源异构数据,应用广泛。例如,He 等[4]将矩阵分解在可扩展性方面的优势与深度神经网络(Deep Neural Networks,DNN)强大的提取非线性特征功能相结合,设计了一种通用的神经协同过滤模型(Neural Collaborative Filtering,NCF),大大提高了推荐效果;Alfarhood 等[5]提出DeepHCF(Deep Hybrid Collaborative Filtering)模型,该模型使用卷积神经网络(Convolutional Neural Networks,CNN)提取项目评论特征,将用户和项目特征送入因子分解机(Factorization Machines,FM)[6]得到预测评分,然而该模型仅考虑到项目的评论文本信息。本文在DeepHCF 模型的基础上设计出基于注意力机制的深度协同模型DeepAM(Deep Attention Mechanism),主要从以下两个方面展开研究工作:①引入注意力机制,加强局部特征与整个文本序列的相关性,关注评论文本中最有价值的语义特征,更准确地获取用户兴趣偏好和项目属性特征;②使用FM 提取用户和项目的低阶特征,使用DNN 拟合用户与物品之间的非线性高阶函数,克服了矩阵分解的数据稀疏问题,并仅采用简单的线性加权交互表示用户与物品的交互缺陷[7]。

1 相关研究

1.1 基于评论文本的推荐算法

基于评分矩阵的推荐算法简单高效,但其本身固有的数据稀疏和冷启动缺陷使得该方法在用户对项目评分数据很少的情况下效果不佳。由于用户对项目的评论信息中蕴含着丰富的语义信息,研究者们开始思考通过加入评论文本这类辅助信息弥补单一模型的缺陷。例如,Mukherjee 等[8]发现对评论文本进行分析有助于提高预测精度,使用文本建模是解决评论矩阵稀疏性问题最为直接的方法。然而该模型学习到的均为浅层线性特征,且基于词袋的模型无法保留词序信息;Kim 等[9]提出的ConvMF+(Convolution Matrix Factorization)使用CNN 保留了部分文本词序信息,可以挖掘出更加准确的项目隐向量,然而该模型忽略了用户文本信息的重要性;周传华等[10]提出一种融合评分矩阵和评论文本的DNN 模型,该模型很好地克服了矩阵分解中固有的评分矩阵稀疏问题,并且提高了推荐准确性,但其评分预测模块提取特征方式较为单一。

1.2 融入注意力机制的推荐算法

注意力机制最早由Treisman 等[11]提出,本质是一种模拟人脑注意力的模型。人类对同一个输入的不同部位给予的关注度不尽相同,使用注意力机制可以捕捉到最有价值的输入,将重点资源集中在对结果有突出影响力的内容上,极大优化各种深度学习任务结果。2014 年,Google 团队[12]将注意力机制与循环神经网络(Recurrent Neural Network,RNN)模型相结合,取得了很好的图像分类效果。此后,阿里团队[13]提出深度兴趣网络(Deep Interest Network,DIN),使用注意力机制捕捉用户的兴趣点,在一定程度上提升了模型的表达能力;谢恩宁等[14]提出DeepCF-A(Deep Collaborative Filtering Model Based on Attention)模型,在多层感知器(Multilayer Perceptron,MLP)中融入注意力机制得到用户与项目交互的非线性特征,然而该方法只是简单利用了评分矩阵信息;刘浩瀚等[15]在建模用户点击行为时利用注意力机制捕获用户的主要意图;冯兴杰等[16]提出一种个性化注意力机制对评论进行深度建模,使用门控机制融合用户和商品的隐向量,进一步提升了评分预测的准确性,但该模型没有考虑到用户和项目隐表示的非线性交互。

本文提出的DeepAM 模型将CNN 与矩阵分解模型相结合,通过两个并行的CNN 挖掘用户和项目文本评论特征,融入注意力机制赋予评论权重;然后同时使用FM 和DNN 分别提取用户和项目的低阶线性交互特征和高阶非线性特征,最终取得了很好的推荐效果。

2 模型建立

DeepAM 模型结构如图1 所示,该模型由评分数据提取模块、评论数据提取模块、融合模块、评分预测模块组成。评分数据提取模块使用MLP 得到用户和项目的隐向量,该模块通过两个结构一致的CNN 对用户和项目评论文本进行特征学习,并在嵌入层引入注意力机制使CNN 将重点资源集中到与目标关联度高的部分。评分预测模块使用FM 和DNN 加权组合分别提取用户和项目的低阶交互特征和非线性高阶特征,然后通过FM 和DNN 得到两个评分,采用加权融合的方式得到DeepAM 的最终评分。

2.1 评分数据提取模块

MLP 的多层神经网络结构具有强大的自动学习特征的能力,可以解决非线性问题,本文模型便使用MLP 提取用户—项目评分矩阵的特征。评分数据提取模块的输入为用户ID 和项目ID,首先经过嵌入层映射成为稠密向量,再输入到MLP 层提取特征,得到用户隐向量和项目隐向量。MLP 层输出值的计算公式为:

式中,k表示第k层,bk表示第k层偏置。

2.2 评论数据提取模块

评论数据提取模块使用CNN 挖掘用户和项目评论文本的上下文特征,将得到的评论文本特征用于评分预测。CNN 由嵌入层、基于注意力的权值更新层、卷积层、池化层和全连接层组成。

Fig.1 Overall architecture of DeepAM model图1 DeepAM 模型整体架构

2.2.1 嵌入层

嵌入层使用词嵌入模型将评论数据通过函数映射到新的表达空间,实现离散的特征取值到对应向量的映射,两个词义相近的词在表达空间中的距离相近。假设词向量映射f:M→Rn,表示根据词字典M将词映射到n维向量的函数。在实验中,首先将每个用户Uu的评论文本通过嵌入层的作用映射为词向量,合并成包含n个词的文档d,因此得到用户Uu的评论词嵌入矩阵Mu,表示为:

式中,dm表示文档d中第m个词m=1,2,…,n;θ(dm)表示将该词dm映射到n维词向量空间。

2.2.2 基于注意力机制的权值更新层

人类视觉通过扫描全局图像可以快速高效地获得重点关注的目标区域,从而对该重点目标区域投入更多注意力资源。深度学习中的注意力机制模仿人类的视觉注意力,被广泛应用于图像识别、语音识别等领域中。本文将基于单词级别的注意力机制引入到CNN 中,对重点词向量赋予更高权重,以实现对评论文本重点内容的准确建模。

为了突出重点评论的贡献,在卷积层前加入一层注意力权值更新层,通过计算单个词向量的权值为输入层的词向量序列重新赋予权重。使用余弦相似度计算词嵌入矩阵Mu中每个词向量与所有用户评论文本词向量之间的相似度系数simm,表示为:

式中,表示用户评论词向量字典中第m个词向量;表示所有用户词向量。

经过归一化处理可得到与每个词向量相对应的单词级别注意力权重am,表示为:

将用户所有词向量的注意力权重am拼接得到注意力权值矩阵A(Uu),表示为:

对注意力权值矩阵与用户UU的词向量矩阵Mu进行乘积操作,得到更新的带权重信息的词向量矩阵,表示为:

2.2.3 卷积层

卷积层为CNN 的核心层,经过卷积层的卷积操作后,原始输入特征会被增强。该层用于提取用户和项目评论词向量的抽象特征。假设神经元的个数为m,神经元j使用的卷积核Kj∈ℜc×t词窗大小为t。式(6)中得到的词向量矩阵经过卷积核Kj的作用后可表示为:

式中,*为卷积操作;bj为偏置;f选择ReLu 函数进行非线性映射操作,表示为:

2.2.4 池化层

池化层将文本压缩至固定长度nc,以便于后续处理。通过最大池化层的作用,卷积层输出kj将会变成固定向量oj,表示为:

使用s个卷积核分别提取不同文本特征,则s个卷积核的输出向量可表示为:

2.2.5 全连接层

全连接层用于对提取到的所有特征进行加权处理,将经过最大池化操作得到的输出向量输入全连接层。全连接层的输出表示为:

式中,W为权重矩阵,b为全连接层的偏置。同理可得项目评论向量Outputi_review。

2.3 融合模块

使用特征融合方法将处于不同特征空间的输出置于同一个空间中,特征融合采取Concatenation 操作方式。将基于评分矩阵的用户隐向量Outputi_review和CNN 提取到的用户评论文本特征Outputu_review进行横向拼接,其融合方式表示为:

同理可得项目特征向量Outputi。

2.4 评分预测模块

评分预测模块由FM 和DNN 组成。FM 通过不同向量之间的关联计算达到提取交叉低阶特征的效果。将特征融合模块得到的用户和项目特征向量送入FM,二阶多项式的FM 模型输出表示为:

式中,w0为常数偏置,wi为向量第i个分量的权重,xi表示向量中的第i个分量,xj表示第j个分量,wij表示向量中第i个与第j个特征向量的交互值,n表示样本数目。

DNN 由全连接的多层神经网络组成,拥有很强的建模能力,可用于提取非线性高阶特征。DNN 的隐层输出表示为:

式中,wk表示第l层权重值,bk表示第l层偏置。

DeepAM 模型的最终输出由FM 和DNN 的输出线性加权组合而成,表示为:

式中,α表示权重。

3 实验结果与分析

3.1 实验环境

实验环境如表1所示。

Table 1 Experimental environment表1 实验环境

3.2 实验数据集

使用Amazon 5-core 中的3 个子类别数据集Toys and Games、Instant Video 和Digital Music 评 估DeepAM 模 型 的性能。3 个数据集均包含用户对商品的评论以及用户对项目1~5之间的评分信息。表2为各个数据集的基本信息。

Table 2 Dataset basic information表2 数据集基本信息

实验过程中仅保留4 个与实验相关的属性,分别为用户ID、商品ID、评分、评论文本。

3.3 评价指标

采用均方根误差RMSE 验证所得到的预测结果与真实评分的差异,计算公式为:

式中,N 为样本个数,yn为第n个样本的实际评分,为第n个样本的预测评分。

3.4 实验参数设置

按照8∶1∶1 的比例随机将每个实验数据集划分为训练集、验证集、测试集,其中训练集用于训练模型,验证集用于调整模型超参数,测试集用于测试性能。采用五折交叉验证法,选择Adam 优化器,Dropout[17]设置为0.5,正则化系数为0.01,学习率为0.01,批量大小为128,迭代次数为200。实验期间删除所有测试集和验证集评论。

3.5 模型参数分析

选择3 组比较重要的超参数在Toys and Games 数据集上进行实验,包括词向量嵌入维度、MLP 隐藏层数量以及α值。

3.5.1 不同词向量嵌入维度对模型的影响

分别使用50、100、150、200 维预训练的词嵌入模型进行测试,结果如图2 所示。可以看出,在词向量的嵌入维度为50 时,模型取得最佳效果。随着词向量维度的增加,高维空间中的词向量由稠密变得稀疏,不同词向量之间的联系会被削弱,因此RMSE 逐渐增大。

Fig.2 Impact of embedding dimensions on the model图2 词嵌入维度对模型的影响

3.5.2 不同MLP层数对模型的影响

设置MLP 隐藏层数分别为1、2、3、4,结果如图3 所示。

Fig.3 Influence of the number of MLP hidden layers on the model图3 MLP隐藏层数量对模型的影响

可以看出,随着隐藏层数目的增加,模型RMSE 指标呈现出先减小后增加的趋势,说明多层神经网络可以学习到更多的表示信息,但当隐层数目增加到一定程度后,算法的性能提升有限,且模型复杂度也会增加。综合考虑,当隐藏层数目为3时模型取得最佳推荐性能。

3.5.3 不同α值对模型的影响

α表示FM 和DNN 预测评分的权值,分别设置α值为0.1、0.2、0.3、0.4、0.5、0.6、0.7、0.8、0.9、1.0,分别进行10 组实验,迭代次数设置为100,结果如图4 所示。可以看出,当权重α为0.3 时,模型RMSE 可取得最小值,相较α为0.1时下降了4.8%,相较α为1.0 时下降了10.5%,证实了同时使用FM和DNN对特征进行提取对于模型推荐的有效性。

Fig.4 Influence of α value on the model图4 α值对模型的影响

3.6 比较实验

选择5 种经典模型与本文模型进行比较,分别为:①LFM(Latent Factor Model)[18]。其为经典的矩阵分解算法,仅使用用户对项目的评分矩阵作为输入,方法简单且效果好;②NeuMF。结合了传统矩阵分解和MLP,可同时提取线性和非线性特征,是典型的基于深度学习的推荐算法;③DeepCoNN[19]。使用两个并行的CNN 分别学习用户评论信息和项目评论信息,是第一个应用神经网络处理评论信息的推荐算法;④DeepRec。融合评分矩阵和评论文本的DNN 推荐模型;⑤NARRE[20]。带有评论级别解释的神经注意力回归模型,可区分各条评论的贡献。比较模型的信息如表3所示。

Table 3 Comparison model information表3 比较模型信息

DeepAM 模型与4 种对比模型在Amazon 的3 个数据集上的RMSE 结果比较如表4 所示。可以看出,所有模型在Toys and Games 数据集上的表现均优于Instant Video 和Digital Music 数据集,这是由于Toys and Games 数据集包含丰富的数据内容。

此外,基于深度学习的推荐模型性能优于传统机器学习推荐模型。这是由于传统机器学习推荐模型需要人为选择特征,并且只能挖掘浅层特征,而深度学习模型中的多层神经网络在自动挖掘用户和项目深层特征信息方面有着卓越效果。随着数据量的增多,深度学习模型的优势会更加明显。与仅使用评分数据的模型(LFM、NeuMF)相比,同时提取评分和评论信息特征的推荐模型(DeepRec、NARRE、DeepAM)具有更好的推荐性能。由此可以得出评论信息蕴含重要的用户和项目属性特征,可用于提高推荐效果的结论。

Table 4 RMSE comparison of each model表4 各模型RMSE值比较

DeepRec 模型同时使用评分矩阵信息和评论文本信息,取得了较好的推荐效果,但没有区分词向量的权重,无法对比较重要的区域投入更多资源,推荐效果没有融入注意力机制的模型(NARRE、DeepAM)优越,由此证明了注意力机制的有效性。

NARRE 模型能抑制无用评论对模型的影响,但其没有涉及到用户和项目隐表示的非线性特征交互,而Deep-AM 模型在评分预测模块同时利用了FM 提取低阶交互特征和DNN 挖掘非线性特征的功能。实验结果表明,Deep-AM 模型的推荐效果相比NARRE 提升了3.9%,证明了DeepAM 同时引入FM 和DNN 的有效性。

4 结语

本文提出DeepAM 模型,将用户和物品评论信息引入基于评分矩阵的推荐算法中,并且融入注意力机制给评论分配权重,在评分预测模块同时使用FM 提取低阶交互特征和DNN 提取非线性特征。在3 组公开数据集上的实验结果表明,该模型的推荐准确度相较其他5 个常用模型均有一定程度的提高。若在今后实验中增加更多辅助信息,如用户和项目图片、用户社交网络、地理位置等,可更加准确完善地挖掘出用户和商品特征,取得更好的推荐效果。

猜你喜欢
注意力向量矩阵
向量的分解
让注意力“飞”回来
聚焦“向量与三角”创新题
“扬眼”APP:让注意力“变现”
初等行变换与初等列变换并用求逆矩阵
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
矩阵
矩阵
矩阵