邢长征,赵宏宝,张全贵,郭亚兰
辽宁工程技术大学 电子与信息工程学院,辽宁 葫芦岛125105
1 引言
推荐系统是解决信息过载问题的有效方法,并在许多领域取得成功。传统的推荐主要包括基于协同过滤的推荐、基于内容的推荐和混合推荐。矩阵分解作为协同过滤推荐的主要方法,利用用户和物品的潜在因子交互信息来预测评分,经常出现数据稀疏性问题。混合推荐利用互联网中大量的多源异构辅助信息(side information),例如图像、评论文本和用户社交关系[1],并与协同过滤推荐结合,可有效缓解评分矩阵的数据稀疏性问题。由于辅助信息中存在一些复杂特征,如何有效地与协同过滤推荐算法融合是该类型推荐模型的难点问题[2]。
在辅助信息中,评论文本由于隐含丰富的用户偏好和物品属性信息,受到研究人员的广泛关注。许多研究工作提出基于主题模型的方法[3-7]来提取评论文本中的主题信息。Wang 等人提出CTR(collaborative topic regression)[3]模型,将潜在狄利克雷概率模型(latent Dirichlet allocation,LDA)、概率矩阵分解(probabilistic matrix factorization,PMF)[8]和协同过滤方法结合,用于科学文章推荐。McAuley 等人[4]提出HFT(hidden factors as topics)模型,使用主题建模技术来发现物品或用户评论的潜在主题。在TopicMF(topic matrix factorization)模型[5]中遵循类似的方法,主要区别在于它同时为用户和物品的评论建模。RMR(ratings meet reviews)方法[6]在物品评论文本上应用主题建模技术,并将主题与基于评分的混合高斯模型相结合来提高评分预测准确度。JMARS(jointly modeling aspects,ratings and sentiments)模型[7]基于协同过滤和主题建模,先挖掘评论文本中用户和物品的情感主题信息,再和评分联系起来。上述研究的局限性是用于评论文本处理的词袋表示(bag-of-words,BOW)方法,只能对评论文本进行浅层理解,忽略掉评论文本中单词的上下文语义信息。
为克服词袋表示的缺陷,一些研究方法采用神经网络学习评论文本中低层特征,并进行稠密的高层特征表示[9-12]。Kim 等人[9]提出卷积矩阵因子分解模型(convolutional matrix factorization,ConvMF),采用卷积神经网络(convolutional neural network,CNN)处理评论文本,捕获局部的上下文信息,并与概率矩阵分解(PMF)相结合,来缓解评分矩阵稀疏性问题。为了同时利用评论文本中隐含的用户偏好和物品属性信息,Zheng 等人[10]提出深度协作神经网络模型(deep cooperative neural networks,DeepCoNN),为用户评论集和物品评论集分别建立文本偏好矩阵,用卷积神经网络分别提取用户特征和物品特征,最后在共享层采用矩阵分解的方法来预测评分。Chen等人[11]在此基础上对用户评论集和物品评论集采用注意力机制来挑选有用的评论文本,但在利用CNN进行文本卷积处理时,采用了最大池化操作,丢失了评论文本中一些关键信息,从而不能有效地提取评论文本中的语义信息。此外,该模型将评论文本中内容的不同部分视为同等重要,忽略了评论文本中的不同主题(aspect)信息对评论文本语义表示的重要性。HAUP(hierarchical attention model for rating prediction by leveraging user and product reviews)[12]模型在DeepCoNN 的基础上,采用双向门控循环神经网络(bidirectional gated recurrent unit,Bi-GRU)构建评论的文档表示,在单词级和语句级应用注意力机制来识别评论文档中最重要的部分,但没有考虑到评论集合中单条评论的有效性。此外,文本情感分析对利用文本中的观点信息有一定帮助作用。文献[13]利用词向量表示文本,以及利用双向长短期记忆网络(bidirectional long short-term memory,Bi-LSTM)为文本的单词建立上下文依赖关系,并通过注意力机制,提取出文本中不同的主题信息。
受上述研究工作启发,为了标记评论文本中重要的主题信息和有效的评论信息,本文提出融合评论文本层级注意力和外积的推荐模型。采用基于Bi-LSTM 的主题级注意力关注评论文本中的主题信息,采用评论级注意力关注有效的评论文本,从而在两方面充分提取评论文本的语义信息。采用外积对潜在因子模型(latent factor model,LFM)进行改进,充分考虑用户和物品特征交互的高阶交互关系。在对比实验结果上展示出本文提出模型的有效性。
2 相关理论2.1 评论文本的层级注意力
评论文本的层级注意力包括两部分,分别是对评论文本内容应用的Bi-LSTM 主题级注意力和对评论集应用的评论级注意力。
2.1.1 Bi-LSTM 主题级注意力
在Bi-LSTM 主题级注意力表示层中,采用文本情感分析[13]类似的方法处理评论文本。该表示层的输入为评论文本单词序列,输出为评论文本主题级注意力嵌入(embedding)向量O。图1 给出了Bi-LSTM 主题级注意力表示层的架构。
采用词嵌入方法将评论中的每个单词映射到d维向量,将给定评论文本转换为具有固定长度为n的嵌入向量。单词嵌入采用Glove 在维基百科语料库中预训练嵌入。对于一条评论文本V,假定它有n个单词,用一系列单词嵌入表示:
其中,wn是一个d维嵌入向量,代表评论文本中第n个单词。序列V表示为2D 矩阵,将所有单词嵌入连接起来,其大小为n×d。
此时序列V中的每个单词向量彼此独立。为了在单个评论文本中获得相邻单词之间的某种依赖关系,使用两个单向的长短期记忆网络(long short-term memory,LSTM)处理评论文本:
假设评论文本由r个部分组成,每一部分的主题信息可以用一些重要的单词或者短语表示。为了提取评论文本不同部分的主题信息,采用自注意力机制(self-attention)对评论文本表示向量H执行r次关注,得到评论文本的主题级注意力向量表示A,如下表示:
其中,A的大小为r×n,Ws1和Ws2是权重矩阵,Ws1∈,da是可以任意设置的超参数,tanh是非线性激活函数。函数沿其输入的第二维执行归一化。可以将式(6)视为两层没有偏置项的多层感知器(multi-layer perception,MLP),其隐藏单位数是da,参数是{Ws2,Ws1}。
将主题级注意力矩阵A和Bi-LSTM 隐藏状态H相乘,得到评论文本注意力嵌入矩阵Mat:
其中,嵌入矩阵Mat对应的维度为r×2u。
上述得到的文本特征嵌入矩阵2D 结构,很适合CNN 网络来处理,可以保持嵌入矩阵的上下文信息。若采用MLP,需要将矩阵转化为一维向量结构,再进行特征表示和映射。由于MLP 对应的网络层参数较多,造成网络要训练和优化的参数增多,增加网络的学习负担。此外,Bi-LSTM 处理得到的特征矩阵的列维度较大,CNN 网络可对其进行局部卷积,以此达到降维的目的,降低模型学习难度,减少冗余维度对模型建模的影响。为了降低嵌入矩阵的维度,在CNN 网络中采用和嵌入矩阵列维度相同宽度的卷积核进行处理,压缩列维度特征。在此处的CNN网络不采用池化层(pooling layers),比如最大池化(max pooling)、平均池化(mean pooling),因为池化层在对嵌入矩阵进行下采样过程只会保留局部接收域的最大值(或平均值),丢失特征矩阵的关键信息。因此,对嵌入矩阵Mat采用卷积层来进一步提取特征。卷积层由m个神经元组成,每个神经元与卷积核K∈ℝτ×2u相关联,对嵌入矩阵Mat应用卷积运算,第j个神经元产生的局部特征zj为:
其中,biasj是偏置项,∗是卷积运算,ReLU 是非线性激活函数。
卷积层的最终输出将m个神经元的输出串联,得到评论文本的特征向量O:
2.1.2 评论级注意力
本文采用文献[11]提出的评论级注意力方法挑选评论集中有效的评论文本。以物品评论集为例(用户评论集处理与其类似),评论级注意力表示的目标是在物品i的评论集中选择有代表性的评论特征,并将这些特征进行线性组合来表示物品i。在评论集中,应用双层网络来计算注意力分数ail。注意力网络的输入中包含物品i的第l个评论的特征向量(Oil)和用户ID(ID 嵌入表示,uil)。添加用户ID 用来标记填写评论的用户,这有助于识别始终编写无效评论的用户。注意力网络为:
在获得每个评论的注意力之后,物品i的特征向量被计算为以下加权和:
其中,s为物品评论集中评论文本的个数;Ori为基于评论级注意力的输出向量,通过区分每条评论的贡献,并在向量空间中表示物品i的特征。
将Ori传递到具有权重矩阵和偏置项的全连接层,计算物品评论集的k维特征向量表示Yi:
2.2 LFM 潜在因子模型和外积运算
潜在因子模型(LFM)是一类基于矩阵分解的算法,用于预测用户u对物品i的评分如下[11]:
其中,全局平均评分为μ,用户偏置项为bu,物品偏置项为bi以及用户和物品的交互为。此外,pu和qi分别是表示用户偏好和物品特征的k维因子。
在协同过滤的经典模型中,将用户和物品表示为潜在因子向量,用两者的交互作为用户向量和物品向量之间的内积。矩阵分解采用内积作为交互函数。内积交互函数如下[14]:
在内积隐含假设中,向量维度间需相互独立,然而这种假设并不符合实际情况,向量维度可以解释为物品的某些属性,它们不一定相互独立[15]。利用外积[16-17]显式地为向量维度之间的成对关系建模,得到一个2D 矩阵,记为特征交互图(interaction map)E0,表示为:
其中,E0是k×k矩阵,其中每个元素被评估为。
矩阵中的对角线部分表示内积操作,通过考虑不同向量维度之间的相关性,它比矩阵分解方法包含更多高阶的特征表示。
3 融合评论文本层级注意力和外积的推荐方法3.1 模型体系结构
Fig.2 Neural network architecture of RHAOR图2 RHAOR 的神经网络架构
本文提出模型——融合评论文本层级注意力和外积的推荐方法(review text hierarchical attention and outer product for recommendation method,RHAOR)的体系结构如图2 所示。该模型由两个并行的神经网络组成,一个用于用户建模(Netu),另一个用于物品建模(Neti)。在两个网络的顶部,添加外积交互层和多卷积隐藏层以构建和提取用户和物品的潜在因子的外积交互特征表示,并在预测层计算模型的最终预测评分。
由于Netu和Neti仅在模型的输入中有所不同,本文将重点详细说明Neti的过程。对具有相似结构的Netu应用相同的处理过程。在Neti的第一阶段,提出的模型需要分别处理物品i的每条评论。首先,将每个评论转换为单词向量矩阵,将其表示为Vi1,Vi2,…,Vis。其次,应用Bi-LSTM 主题级注意力,从输出中获得物品评论集的一组特征向量,记为Oi1,Oi2,…,Ois。最后,对Neti的物品评论集中应用评论级注意力,获得物品评论集的特征表示Yi。同理可得,用户评论集的特征表示为Xu。
3.2 外积交互层
近年来,Zhang 等人提出CoupledCF(neural useritem coupling learning for collaborative filtering)方法[17]为用户/项目的多属性信息建立成对的外积交互矩阵来学习显式的嵌入特征表示,并用于深度协同过滤推荐任务。受其启发,本文采用外积交互层处理用户评论和物品评论的多主题间依赖关系建立外积交互表示。因此,在同一向量空间中,将用户ID 嵌入和用户评论集特征联合表示用户特征,将物品ID 嵌入和物品评论集特征联合表示物品特征,分别得到用户特征向量P和物品特征向量Q:
其中,pu和qi分别是用户ID 嵌入和物品ID 嵌入,用来唯一标识参与评分预测的目标用户和物品。Xu和Yi分别是用户评论集特征和物品评论集特征。
对用户特征向量P和物品特征向量Q进行外积
交互,得到一个外积特征交互图E,如下:其中,⊗表示两向量元素的外积交互操作,k为外积预测因子。特征交互图E的大小为k×k。
采用外积交互表示具有如下优势:(1)基于内积交互的矩阵分解方法只包含外积交互矩阵的对角元素信息,忽略了不同特征维度间的依赖关系。而外积交互表示得到的外积交互矩阵不仅包含内积交互信息,还会考虑不同特征维度间的高阶交互信息。(2)此外,外积交互表示可提高深度学习模型在稀疏数据上的泛化能力,提高模型推荐性能。
3.3 多卷积隐藏层
在外积特征交互图上是多卷积隐藏层(multiconvolution hidden layer),其目标是从交互图中提取更高抽象级别的特征表示。特征交互图的结构很适合采用多层CNN 网络来处理,特征交互图的处理过程与图像的像素矩阵处理类似,可以用多个卷积核将特征图进行下采样,不断提取特征图的局部信息,构建特征图的全局上下文信息,经过多层卷积网络处理,得到外积特征点。与MLP 相比,网络隐层权重参数相对较少,模型训练过程中需要优化的参数较少,模型训练时间短。为了能够从交互特征图中提取到有效的外积表示,本文采用和文献[16]中相同的方式,采用特定的卷积网络结构,处理2D 特征交互图。其中,输入特征图E的维度为k×k,卷积隐藏层个数为lbk,卷积核大小为2×2,步长为2,指定卷积核K′的个数为nc=32。第c个卷积隐藏层中的特征映射表示为2D 矩阵Ec,第c个隐藏层的所有特征图表示为3D 张量εc。给定输入交互图E,经过卷积处理,第c层的特征图表示如下:其中,K′表示卷积核,∗表示卷积操作,表示第c层的偏置项。
最后一层输出大小为1×1×nc的张量,经过维度调整得到长度为nc的向量Vece,传递到具有权重矩阵We∈ℝ1×nc和偏置项be∈ℝ1的全连接层来计算多卷积隐藏层的最终输出g。
3.4 评分预测层
在评分预测层中,受文献[14]和文献[16]的启发,本文对LFM 进行改进,将外积交互和多卷积隐藏层引入LFM 中,最终将多卷积隐藏层的输出值g传递给改进的LFM 以得到实值评分:
其中,bu、bi和μ分别表示用户偏置项、物品偏置项和全局偏置项。bu和bi分别反映不同用户和不同物品对评分数据的影响,μ是全部评分数据的平均值,反映不同数据集用户平均评分差异。外积交互g反映用户对物品的局部偏好,而偏置项反映全局偏好,即全部用户对物品的群体意见(全局偏好)。因此,用户对物品的最终偏好评分预测由局部偏好和全局偏好共同决定。
3.5 目标函数优化
由于本文所关注的任务是评分预测,常用的目标函数是均方误差(mean square error,MSE)[4,11,18]:
其中,T表示训练实例的集合,而Ru,i是用户u指定给物品i的真实评分。是惩罚项,即模型的参数向量Δ的L2 范数,描述模型参数的复杂度。λΔ是L2 正则化参数,可以调整均方误差和惩罚项之间的关系。如果模型发生过拟合,惩罚项会变得很大,通过调整正则化参数的大小,可以对惩罚项大小进行约束。
模型网络中所有的参数在训练过程中采用后向传播技术进行优化。此外,模型还采用Dropout 防止过拟合,Dropout 在训练过程中通过随机丢弃神经网络中的一些神经元以及连接权重,提高模型的泛化能力。而在模型测试过程中进行评分预测时,Dropout 设置为不可用状态,即对测试网络中的参数不进行丢弃。为了优化目标函数,采用Adam 作为优化器。它的主要优点是学习率可以在训练阶段自动调整,并获得比随机梯度下降法(stochastic gradient descent,SGD)更快的收敛速度。
4 实验
本文实验是在单机下进行操作的,系统为Ubuntu16.04 LTS,Intel®Corei7-6800K@3.40 GHz CPU,16 GB 内存,使用Python3.6 语言和Tensorflow 1.12.0深度学习库实现。使用Yelp 和Amazon 的公开数据集来评估提出的模型。本章将介绍这些数据集以及具体的实验设置。
4.1 数据集
本文使用4 个来自不同域的公开数据集验证模型的性能。3 个数据集来自Amazon 的5-core 商品评论数据集(http://jmcauley.ucsd.edu/data/amazon),分别是Amazon Instant Video、Grocery and Gourmet Food和Toys and Games。另一个数据集来自Yelp Challenge 2013 的餐厅评论数据集(https://www.kaggle.com/c/yelp-recsys-2013/data)。同时,对Yelp 2013 数据集进一步处理,确保所有用户和物品至少有5 个评分。上述4 个数据集的评分范围是1~5 分。表1 总结了这些数据集的相关信息。
Table 1 Related information of datasets表1 数据集的相关信息
4.2 评价指标
当评分预测结果为实值,采用广泛使用的均方根误差[11,18-19](root mean square error,RMSE)来衡量算法在评分预测中的准确性。一个较小的均方根误差代表较好的性能。RMSE 定义为:
其中,N表示所有测试实例的数目。
4.3 对比模型
将提出的模型与以下传统的模型进行对比。
(1)PMF 模型[8]。通过引入高斯分布为用户和物品的潜在因子建模。
(2)HFT 模型[4]。使用矩阵分解和LDA 为评分和评论文本建模。
(3)ConvMF 模型[9]。将CNN 与PMF 结合,并使用CNN 来提取物品评论文档的潜在特征。
(4)自适应主题注意力模型A3NCF(adaptive aspect attention-based neural collaborative filtering)[18]。能够捕获用户对物品不同主题的注意力,并通过构建主题模型从评论文本中提取用户偏好和物品特征。
(5)DeepCoNN 模型[10]。采用两个并行的CNN网络来对评论文本中用户行为和物品属性进行建模。
(6)NARRE(neural attentional regression model with review-level explanations)模型[11]。通过引入注意力机制来探索评论文本的有效性,并在评分预测过程中提供评论级的解释。
4.4 参数选取
将数据集随机切分成训练集(80%)、验证集(10%)和测试集(10%)。验证集用来调整超参数,而最终的算法性能比较在测试集中进行。对比算法的参数按照对应的论文初始化,然后经过微调实现最优性能。对于PMF,设置潜在因子数量为10。对于HFT,设置主题数量为5。对本文提出的算法RHAOR,采用网格搜索方法寻找最优参数。学习率在{0.000 02,0.000 20,0.002 00,0.020 00,0.200 00}范围中查找。为防止过拟合,L2 正则化参数λΔ在{0.001,0.010,0.100,1.000,10.000}中查找,将Dropout 在{0.1,0.3,0.5,0.7,0.9}中进行查找。每次处理的数据量大小(Batch size)在{16,32,64,128}中查找。Bi-LSTM 的隐层神经元数量在{16,32,64,128}中查找。外积交互层预测因子数量在{8,16,32,64}中查找。主题级注意力超参数da在{20,30,40,50}中查找,超参数r在{10,20,30,40}中查找。在参数调整好以后,主题级注意力处理模块中CNN 网络的卷积核大小设置为(3,64),对应卷积核个数设置为32。多卷积隐藏层中各卷积隐层的卷积核大小设置为(2,2),对应各层卷积核个数设置均为32。此外,本文使用预训练的Glove 词嵌入维度为100。经过多次调整,选取一组最优模型参数,如表2 所示。
在验证集上来探索模型参数设置。在Amazon Instant Video 和Toys and Games 数据集上,通过多次实验,选择不同预测因子k对RMSE的影响,如图3所示。为验证RHAOR外积交互的有效性,将RHAOR进行扩展,将评分预测阶段的3 个网络层(外积交互层、多卷积隐藏层和评分预测层)替换为基于LFM 的评分预测层[11],得到变体模型RHAOR_I。
Table 2 Model parameter setting表2 模型参数设置
Fig.3 Effect of different predictive factors on rating performance图3 不同预测因子对评分性能的影响
探讨预测因子的数量,预测因子分别取[8,16,32,64]。本文提出的RHAOR 算法随着预测因子k的增加一直优于对比算法。RHAOR、DeepCoNN和NARRE均在k=32 时性能达到最佳。
4.5 实验结果与分析
实验1(推荐准确度)本文模型和现有模型在所有数据集上的RMSE值在表3 给出。RHAOR_I 为本文模型RHAOR 的变体,采用的是矩阵分解的点积交互预测评分,分析得出如下结论:
(1)考虑评论文本的方法(HFT、ConvMF、A3NCF、DeepCoNN、NARRE 和RHAOR)推荐性能优于仅考虑评分的协同过滤模型(PMF)。评论信息比评分信息丰富,能够提高潜在因子的表示能力。因此,高质量的建模有助于更好地学习用户偏好和物品特征,提高评分预测准确率。
(2)采用深度学习技术(ConvMF、A3NCF、Deep-CoNN、NARRE 和RHAOR)的方法通常优于基于主题模型的方法(HFT)。原因如下:文献[10]显示,在评论文本分析方面上,和主题模型(比如LDA)相比,神经网络拥有更强大的特征提取能力。深度学习用非线性方式对用户和物品进行建模[14],这是传统基于协同过滤模型的局限性。基于深度学习的方法可以采用Dropout、正则化等技术手段来避免模型训练过程过拟合,增强模型的鲁棒性。
(3)如表3 所示,本文方法(RHAOR)始终优于现有的对比方法,这验证了提出模型的有效性。RHAOR采用主题级注意力和评论级注意力,挖掘评论文本中的语义信息,缓解了评分数据稀疏性问题。并为用户潜在表示和物品潜在表示建立外积交互,以及采用多卷积隐藏层提取高阶交互关系,以达到提高评分预测准确率的目的。
(4)与传统的点积预测模型(RHAOR_I)相比,基于外积预测的模型(RHAOR)展示出更好的性能。验证了外积交互层和多卷积隐层的有效性,即外积交互能够构建关于用户和物品之间的嵌入维度的多种非线性交互的信息,多卷积隐层能够进一步提取外积交互矩阵的高阶非线性特征,两者共同提高了算法的评分预测性能。
实验2(不同层级注意机制的有效性分析)当不使用评论级注意力时,将为每条评论文本分配标准化的恒定权重;当不考虑主题级注意力时,主题级注意力退化为正常的Bi-LSTM 文本处理模块。本文将RHAOR 进行不同程度的更改以得到变体模型,以验证不同层级注意力对文本处理语义分析的影响。将仅考虑主题级注意力的模型命名为RHAOR_A,将仅考虑评论级注意力的模型命名为RHAOR_R,将不使用主题级和评论级注意力的模型命名为RHAOR_N。应用不同级注意力的比较结果如图4 所示。
Table 3 Performance comparison of all methods on 4 datasets (RMSE)表3 所有方法在4 个数据集上的性能比较(RMSE)
Fig.4 Effcet of different level attention mechanisms图4 不同层级注意力机制的影响
从图4 中可以看出,当应用注意机制时,与不采用注意力相比,评分预测的性能得到显著改善。此外,层级注意方法可以进行更精确的预测,从而验证了本文方法的有效性。从主题级注意力方法的较好表现来看,与评论级相比,其对模型性能提升有更多的贡献。
5 结束语
本文方法利用层级注意力来关注评论文本不同主题信息和评论文本的有效性,进一步提高评分预测的精度和可解释性。采用Bi-LSTM 表示评论文本中上下文和单词序列的语义信息,并同时考虑评论文本的主题级和评论级注意力,标记评论文本中的多主题语义信息和有效的评论文本。采用外积交互表示用户偏好和物品特征的高阶非线性交互关系。该方法通过在Amazon 和Yelp 数据集上的实验进行验证,与现有方法相比,提出方法通过细粒度挖掘评论文本的多层次语义信息,显著提高了评分的预测水平。今后的研究将考虑用户和物品多属性信息和评论文本信息的结合,评论文本和社交关系结合对推荐结果的影响。并尝试采用中文语料库,探索融合评论文本的推荐方法在中文语境下的应用。