融合用户和商品评论的双通道CNN推荐算法

2019-08-12 02:35冯兴杰徐一雄曾云泽
现代电子技术 2019年14期
关键词:推荐系统特征提取

冯兴杰 徐一雄 曾云泽

关键词: CNN推荐算法; 推荐系统; 特征提取; 文本矢量化; 抽象特征映射; 评分预测

中图分类号: TN911?34; TP301.6               文献标识码: A                    文章编号: 1004?373X(2019)14?0121?06

Dual channel CNN recommendation algorithm combining user and product reviews

FENG Xingjie, XU Yixiong, ZENG Yunze

(School of Computer Science and Technology, Civil Aviation University of China, Tianjin 300300, China)

Abstract: The recommendation model based on scoring matrix is widely used. However, it ignores the large amount of semantic information in the comments that reflects the user′s interests, and the data sparsity problem still exists although it has achieved certain recommendation accuracy. In allusion to the above problems, a Double?channel CNN recommendation algorithm (C?DCNN) that fuses user reviews and product reviews is proposed. The user and product review texts are vectorized as word vectors, and then the users and the items are extracted by using two CNN networks respectively. Finally, the abstract features of the user and the items are mapped to the same feature space through the dot product in the shared layer to predict the user′s scoring for a particular item. The results of some experiments on the public datasets of Amazon, Yelp, and Beer show that the models MSE on different datasets is smaller than other benchmark algorithms, which also alleviate the problem of data sparsity effectively.

Keywords: CNN recommendation algorithm; recommendation system; characteristic extraction; text vectorization; abstract feature mapping; scoring prediction

0  引  言

在过去10年中,随着互联网的兴起,数据量呈现出爆炸式的增长[1]。为了更好地在信息中挖掘出有价值的信息呈现给客户,诞生了许多形式的推荐系统。例如用户相似度推荐算法[2]、用户隐因子反馈[3]、评论文本的情感[4?6]以及情境感知推荐系统等,发现目前主流的推荐算法都是基于显性评分的,尽管它们达到了一定的推荐精度,但忽略了评论中大量可用的语义信息。传统的推荐方法主要有两类:基于内容的推荐[7?8]和协同过滤推荐[9?10}。虽然传统的推荐方法在提高推荐系统精度方面有着较好的效果,但评分矩阵所具有的稀疏性、推荐的冷启动和扩展性等问题依然存在。本文研究如何利用评论文本来优化推荐模型。

1  相关工作

随着深度学习的崛起,基于神经网络的文本内容挖掘方法,在文本的分类、聚类、情感分析等相关自然语言处理的任务中,逐渐形成一个热潮[11]。深度学习通过组合低层特征形成更加稠密的高层语义抽象,从而自动发现数据的隐含特征表示,解决了传统机器学习中需要人工设计特征的问题。

文献[12]介绍的词频统计思想最先应用于自动分类之中,从而开启了文本挖掘领域的研究。文献[13]的研究显示,评论文本在推荐系统中的应用主要分为两类:用户建模和物品建模。评论文本中最常见的建模方式来自于信息检索领域,在这种方式中,用户和物品可以直接使用与其相关的评论文本来建模。文献[14]利用用户评论学习商品特征在不同主题上的分布及用户对商品不同特征的偏好程度,把商品特征和用户偏好的契合度引入传统的协同过滤算法中,提高了推荐准确率。文献[15]采用LDA模型发现Yelp评论文本的子话题后再进行预测评分。文献[16]在实验中发现评论文本的情感分析也有助于提高预测精度。使用文本建模是解决评分矩阵稀疏性最為直接的方法,但大部分只有正反两类情感,且传统方法更多的是将评论文本分成用户集和商品集,分别对用户集和商品集进行挖掘,得出各自的潜在主题分布,没有考虑相互之间的交互带来的影响,缺乏对于评论文本的充分挖掘。在此基础上,本文提出了融合用户和商品评论的双通道CNN推荐算法(Combine?Double CNN,C?DCNN)。

2  联合用户评论和商品评论的推荐算法

2.1  本文使用符号的定义

本文所用符号定义如下:[Netu],提取用户行为偏好特征的网络;[Neti],提取物品特征的网络;[Mu],用户[u]的评论的词向量映射矩阵;[Mi],物品[i]的评论的词向量映射矩阵;[t],卷积核的窗口大小;[Kj],卷积层中的第[j]个卷积核;[oj],卷积层第[j]个神经元的输出;[Fu],[Netu]经过全连接层后的输出;[Fi],[Neti]经过全连接层后的输出;[g],[Fu]和[Fi]进行拼接后的向量;[yui],用户[u]对物品[i]的预测评分。

2.2  模型结构

本文提出的C?DCNN模型整体结构如图1所示。该模型包含两个平行网络,左边的网络[Netu]主要用来提取用户的行为偏好特征,右边的网络[Neti]主要用来提取物品的特征,最后通过一个共享层整合两个网络的输出从而预测用户的评分。模型的第一层是词向量映射层,用户评论和物品评论会被映射成词向量矩阵作为卷积层的输入;第二层和第三层都是卷积神经网络层,主要用来提取用户行为偏好和物品在高级抽象空间中的特征表达;第四层是全连接层。由于[Netu]和[Neti]的唯一不同就是第一层的词向量映射层,因此接下来的章节主要叙述[Netu]的处理细节,对应[Neti]的处理步骤同[Netu]。

2.3  词向量映射层

图2为Amazon评论数据集前10行。其中reviewerID代表用户ID;asin代表商品ID;overall代表用户对商品的评分;userReviews代表用户在所有商品上的评价集合;movieReviews代表商品的所有评价集合。实验中分别对userReviews和movieReviews中的评价用Word2vec映射成一定维度的稠密向量,再输入到C?DCNN左右两个卷积模型中进行推荐。

词向量映射[f:M→Rn],表示根据词字典M将词映射到[n]维向量的函数,C?DCNN模块中n取值为50。在词向量映射层,评论被映射为词向量矩阵去挖掘语义信息。首先将用户[u]的所有评论词向量合并为一个文档[d],该文档的长度固定为包含[n]个词,因此该用户的评论词向量矩阵[M]为:

[M=θ(d1)⊕θ(d2)⊕…⊕θ(dn)] (1)

式中:[dk]表示文档[d]中第[k]个词k=1,2,…,n;[θ(dk)]表示将该词[dk]映射到相应的[n]维词向量空间。

2.4  卷积模块

第二层是卷积神经网络层,该层用于提取用户[u]的评论词向量矩阵[Mu]的抽象特征,假设共有[m]个神经元,某一个神经元[j]使用词窗大小为[t]的卷积核[Kj∈Rc×t]。因此对词向量矩阵[Mu],每一个卷积核[Kj]的卷积结果可以表示为:

[κj=f(Mu?Kj+bj)]         (2)

式中:符号“[?]”表示卷积操作;[bj]是偏移项;[f]是激活函数ReLUs,其表达式为:

[f(x)=max{0,x}]               (3)

图3是卷积模块中的MaxPooling层,它使用的是一维MaxPooling,词窗大小设置为2。例如,在第一个词窗范围内的9和3,则取最大值9。

通过MaxPooling层,卷积操作的输出[κi]将会被缩减到一个固定大小的向量:

[oj=max{κ1,κ2,…,κ(n-t+1)}] (4)

式(4)是一个卷积核的处理结果,该模型一共使用[k]个卷积核共同提取多种不同的特征,因此[k]个卷积核的输出向量可表示为:

[O=o1,o2,…,ok]           (5)

Dropout是一种防止神经网络过拟合的有效机制,每一轮训练中,随机失活部分隐藏层的神经元使得每次训练的网络都不一样。本文实验中取Dropout的概率为0.5,也就是说,训练时每一个连接都有50%的概率被去除,而在测试时保留所有连接。

BN层的主要作用是允许训练网络使用较大的学习率,加快网络收敛速度。在每次梯度下降时,通过mini?batch来对相应的激活函数做规范化操作,使得结果(输出信号的各个维度)的均值为0,方差为1。

在经过第二个卷积层后,数据输入到全连接层,最后得到用户[u]的高级抽象特征向量[Fu∈Rd×1],全连接层的具体表达式为:

[Fu=f(W·O+b′)]          (6)

式中:矩阵[W]是全连接层的权重参数;[b′]是全连接层的偏移项。最后,可以分别得到用户卷积网络[Netu]和物品卷积网络[Neti]的输出[Fu,Fi]。

2.5  共享层

[Fu,Fi]是处于不同特征空间的用户特征和物品特征,为了准确地预测出用户对物品的评分,需要将它们映射到相同的特征空间。首先将用户特征向量[Fu]和物品特征向量[Fi]进行拼接操作,得到一个向量[g=(Fu,Fi)]。尽管[Fu,Fi]處于不同的特征空间,但是这两个空间是存在交集的,也就是它们潜在的相互作用。为了进一步捕捉该相互作用,在评分预测函数加入了[Fu,Fi]的点积项[FTuFi],则用户[u]对物品[i]的评分预测函数[yui]的表达式为:

[yui=w0+i=1gwigi+FTuFi]  (7)

3.5  模型结构讨论与分析

为了验证C?DCNN双通道结构的合理性、能有效缓解数据稀疏性以及使用BN层来提高训练速度的必要性,下文分别将具有双通道结构的C?DCNN与单网络结构的SC?DCNN做对比。下面分别介绍C?DCNN与SC?DCNN的区别:

1) C?DCNN。其具有两个网络[Netu]和[Neti]:[Netu]主要从该用户的评论提取该用户的隐特征;[Neti]主要从该物品的评论提取该物品的隐特征。最后使用一个共享层来整合两个网络的输出至相同的特征空間进行评分预测。

2) SC?DCNN。其只使用一个网络[Net],该网络具体的卷积层结构与[Netu]一样。将用户评论矩阵[Mu]和物品评论矩阵[Mi]拼接成一个矩阵[M]作为[Net]的输入。由于只有一个网络,因此取消共享层,即损失函数取消点积项。

如表4所示,分别将C?DCNN和SC?DCNN应用在数据集Yelp,Amazon,Beer来对比两个模型的评分预测MSE。可以看出, C?DCNN在3个数据集上的平均MSE比 SC?DCNN减少0.381。原因在于双通道的参数比单网络的参数多1倍,C?DCNN更能细致地捕获用户和物品的隐特征,而且双通道结构的[Netu]和[Neti]是并行结构,互不干扰,能够分别专注地提取用户和物品高级抽象的隐特征。最后通过额外的共享层将两个网络的隐特征信息映射到相同的特征空间,充分挖掘用户隐特征和物品隐特征的潜在亲和度,因而达到精准预测评分的效果。

冷启动问题目前普遍存在于推荐系统中,特别是当新用户加入系统时,它们可用的评分是有限的,系统从它们的评分来学习出隐含特征并不容易。实验中发现在测试集上,当用户组和评分量很少时,本文提出的C?DCNN模型的MSE明显优于传统的单通道结构模型,有效缓解了数据稀疏性。

3.6  C?DCNN模型稳定性分析

为了验证C?DCNN模型的稳定性,实验中数据集划分采用五折交叉验证,并进行了8轮实验。结果如图5所示,8轮实验中的验证集损失值大体趋势上与训练轮数呈负相关,而且在整体的训练过程中不会出现大幅度的抖动,能够以较大的学习率到达最低的损失值。实验结果表明,C?DCNN模型具有良好的稳定性。

4  结  论

本文提出融合用户和商品评论的双通道CNN推荐算法(C?DCNN)。相比传统利用评分矩阵的模型,所提算法利用文本词向量的C?DCNN有效缓解了数据稀疏性带来的影响,极大地提高了预测的准确率。此外,实验证明了将用户评论和商品评论分别使用两个网络进行处理的合理性,并表明C?DCNN训练过程具有良好的稳定性。

本文关注利用评论文本进行推荐,在今后的研究中将会考虑用户、商品特征随时间变化,潜在特征的权重,以及推荐系统中情境对推荐结果的影响等因素。

参考文献

[1] 黄立威,刘艳博,李德毅.基于深度学习的推荐系统[J].计算机学报,2017(40):1?29.

HUANG Liwei, LIU Yanbo, LI Deyi. Recommendation system based on deep learning [J]. Chinese journal of computers, 2017(40): 1?29.

[2] 徐志明,李栋,刘挺,等.微博用户的相似性度量及其应用[J].计算机学报,2014,37(1):207?218.

XU Zhiming, LI Dong, LIU Ting, et al. The similarity measure of Weibo users and its application [J]. Chinese journal of computers, 2014, 37(1): 207?218.

[3] 余刚,王知衍,邵璐,等.基于奇异值分解的个性化评论推荐[J].电子科技大学学报,2015,44(4):605?610.

YU Gang, WANG Zhiyan, SHAO Lu, et al. Personalized comment recommendation based on singular value decomposition [J]. Journal of University of Electronic Science and Technology of China, 2015, 44(4): 605?610.

[4] 申昌,冀俊忠.基于双通道卷积神经网络的文本情感分类算法[J].模式识别与人工智能,2018,31(2):158?166.

SHEN Chang, YAN Junzhong. Text sentiment classification algorithm based on two?channel convolutional neural network [J]. Pattern recognition and artificial intelligence, 2018, 31(2): 158?166.

[5] 李涵昱,钱力,周鹏飞.面向商品评论文本的情感分析与挖掘[J].情报科学,2017,35(1):51?55.

LI Hanyu, QIAN Li, ZHOU Pengfei. Affective analysis and mining for commodity comment texts [J]. Information science, 2017, 35(1): 51?55.

[6] 李勇敢,周学广,孙艳,等.中文微博情感分析研究与实现[J].软件学报,2017,28(12):3183?3205.

LI Yonggan, ZHOU Xueguang, SUN Yan, et al. Research and implementation of sentiment analysis in Chinese weibo [J]. Journal of software, 2017, 28(12): 3183?3205.

[7] 冷亚军,陆青,梁昌勇.协同过滤推荐技术综述[J].模式识别与人工智能,2014,27(8):720?734.

LENG Yajun, LU Qing, LIANG Changyong. Overview of collaborative filtering recommendation techniques [J]. Pattern recognition and artificial intelligence, 2014, 27(8): 720?734.

[8] 单京晶.基于内容的个性化推荐系统研究[D].长春:东北师范大学,2015.

SHAN Jingjing. Research on content?based personalized recommendation system [D]. Changchun: Northeast Normal University, 2015.

[9] 王瑞琴,蒋云良,李一啸,等.一种基于多元社交信任的协同过滤推荐算法[J].计算机研究与发展,2016,53(6):1389?1399.

WANG Ruiqin, JIANG Yunliang, LI Yixiao, et al. A collaborative filtering recommendation algorithm based on multiple social trusts [J]. Journal of computer research and development, 2016, 53(6): 1389?1399.

[10] 陆坤,谢玲,李明楚.一种融合隐式信任的协同过滤推荐算法[J].小型微型计算机系统,2016,37(2):241?245.

LU Kun, XIE Ling, LI Mingchu. A Collaborative filtering recommendation algorithm based on implicit trust [J]. Microcomputer systems, 2016, 37(2): 241?245.

[11] SILVER D, HUANG A, MADDISON C J, et al. Mastering the game of Go with deep neural networks and tree search [J]. Nature, 2016, 529(7587): 484?489.

[12] 杨霞,黄陈英.文本挖掘综述[J].科技信息,2009(33):82.

YANG Xia, HUANG Chenying. Summary of text mining [J]. Science and technology information, 2009(33): 82.

[13] CHEN L, CHEN G, WANG F. Recommender systems based on user reviews: the state of the art [J]. User modeling and user?adapted interaction, 2015, 25(2): 99?154.

[14] 谭云志,张敏,刘奕群,等.基于用户评分和评论信息的协同推荐框架[J].模式识别与人工智能,2016,29(4):359?366.

TAN Yunzhi, ZHANG Min, LIU Yiqun, et al. Collaborative recommendation framework based on user rating and comment information [J]. Pattern recognition and artificial intelligence, 2016, 29(4): 359?366.

[15] HUANG J, ROGERS S, JOO E. Improving restaurants by extracting subtopics from yelp reviews [C]// Proceedings of Final Submission of the iConference. Berlin, Germany, 2014: 1?5.

[16] MUKHERJEE S, BASU G, JOSHI S. Incorporating author preference in sentiment rating prediction of reviews [C]// Proceedings of the 22nd International World Wide Web Conference(WWW). Rio de Janeiro, Brazil, 2013: 47?48.

猜你喜欢
推荐系统特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于Daubechies(dbN)的飞行器音频特征提取
一种基于LBP 特征提取和稀疏表示的肝病识别算法
数据挖掘在选课推荐中的研究
基于用户偏好的信任网络随机游走推荐模型
基于个性化的协同过滤图书推荐算法研究
个性化推荐系统关键算法探讨
浅谈Mahout在个性化推荐系统中的应用
关于协同过滤推荐算法的研究文献综述
基于DSP的直线特征提取算法