- 1 -
中国科技论文在线
基于评论的电影推荐系统
刘英,郑岩**
作者简介:刘英(1989-),女,硕士研究生,主要研究方向:数据挖掘,自然语言处理
通信联系人:郑岩(1972-),女,副教授,主要研究方向:自然语言处理,人工智能
(北京邮电大学计算机学院,北京,100876)
5 摘要:互联网的迅猛发展导致“信息过载”,用户很难快速准确的定位自己感兴趣的产品。
本文提出融合用户评论的协同过滤推荐算法,通过挖掘电影网站的用户评论信息,建立电影
文档的空间向量模型,对模型进行 LDA 降维,便于计算电影之间的相似度,然后结合用户
打分权重得到综合相似度,最后对目标用户进行电影推荐。实验结果表明,本文所提出的算
法与传统的只考虑用户对电影评分的推荐算法相比提高了推荐精度,大幅度改善了推荐的质10
量。
关键词:用户评论;LDA;相似度;协同过滤
中图分类号:TP39
Film recommendation system based on reviews 15
LIU Ying, ZHENG Yan
(Beijing University of Posts and Telecommunications,Beijing,100876)
Abstract: The rapid development of the Internet has led to "information overload",the user is
difficult to quickly and accurately locate products of this paper propose a collaborative
filtering recommendation algorithm based-on user comments ,by mining users' reviews on movie 20
site,the establishment of the vector space model of the film documents, use Linear Discriminant
Analysis(LDA) reducing the dimension for the model,ease of calculation the similarity between
the movie and combining user rating weights,finally recommend movies for the target user. The
experimental results show that the proposed algorithm can improve the recommendation accuracy
comparing with the traditional collaborative filtering recommendation algorithm considering only 25
the movie's score by the user ,and improve quality of recommendation greatly.
Key words: users' review; LDA; similarity;collaborative filtering
0 引言
近年来,随着互联网的迅猛发展,大量的网络信息同时呈现在我们面前。例如,Amazon
上有数百万本图书,Netfix 上有数万部电影,面对如此海量的信息,用户如何找到自己感兴30
趣的部分,推荐系统应运而生。推荐系统是根据用户兴趣爱好给其推荐可能感兴趣的信息解
决了“信息过载”问题,提高了信息处理效率[1]。
在电影网站中很多用户在看完电影后都会发表相应的评论和评分,在被应用于推荐系统
方面时,电影评论的分析非常有价值,这些评论信息更有效的反应了用户对某个电影的喜好
程度。当用户浏览网站寻找电影时,网站可以利用这些信息推荐给目标用户可能感兴趣的一35
些电影,提高了用户体验,帮助用户在最短的时间内找到自己喜欢的电影欣赏。
目前在结合评论挖掘的推荐方面,Adomavicius 等[2]通过深入研究各种推荐算法,指出
推荐系统在应用评论挖掘的方面还有待发展。针对目前推荐系统中结合电影评论研究相对缺
乏的情况[3],本文提出一种基于电影评论挖掘的推荐算法,该算法在考虑了用户偏好对推荐
结果影响的同时,还充分利用用户评论建立了文档向量空间模型,对建立的向量空间模型进40
行 LDA 降维,便于快速计算电影之间的相似度,采用基于物品的协同过滤算法对目标用户
推荐可能感兴趣的电影,解决了现有推荐系统所存在的“数据稀疏”问题,该算法在很大程
度上提高了系统推荐效果。
- 2 -
中国科技论文在线
1 数据准备及预处理
数据准备 45
本论文的数据来自豆瓣电影网页信息,对豆瓣电影网页信息抓取的基本思路是:首先得
到网页中电影的基本信息包括电影名、评分、导演、演员、类型,然后再抓取整个电影的前
十页的所有用户评论,将电影名和该电影相关的评论存在一个文档里,电影的基本信息存在
另外一个文档里,便于后面对电影评论进行处理。
挖掘步骤如下: 50
1) 电影基本信息挖掘
取每个网页中的电影名、评分、导演名、演员(因为每个电影的演员有很多,一般情况
下主演会放在演员列表的前面,因此这里只取演员列表中的前两个演员进行存储),根据对
网页内容的分析,一般每个电影所属类型不超过三个,所以这里只抓取每个电影的前三种类
型存放在文档中。 55
2) 电影评论内容挖掘
(1)抓取所有电影的评论,因为每个电影的评论是按着有用度降序排列的,越有用的
评论则放在评论页靠前的位置,因此对每个电影只抓取前十页评论进行存储,这样抓取既保
证了评论的有用性又可以避免抓到无用的评论。
(2)抓取单个电影的评论,存储格式为电影名 1、评论,电影名 2、评论„„电影名 n、60
评论,对单个电影评论的挖掘也是采用只抓取前十页用户的评论。
(3)抓取用户—电影—评分信息,存储格式为用户名—电影名—评分,这样可以得到
每个用户看过的所有电影及其相应的评分,这里的评分是用户对电影的评分等级,主要用于
系统推荐电影时考虑到用户的评分权重。
数据预处理 65
将前面抓取到的所有电影的评论,进行分词,本文采用的是在 Python 编程领域中高准
确率、高效率的分词组件—结巴分词。分词后词表有很多无用词,采用哈工大中文停用词表,
在此基础上人工加入一些涉及到电影评论领域的停用词,进行了去除停用词的处理。排除停
用词来减小词表文件的大小。观察统计好的词表发现,里面有很多词作为评价词没有价值,
并且出现的次数很少,因此做了排除低频词的处理。讲过这三步预处理工作,电影的{评价70
词:词频}字典建立完毕,便于后文对电影文档向量化。
2 系统整体设计
本文实现的个性化产品推荐系统中首先挖掘用户评论,得到电影的基本信息和用户的评
论信息;其次对目标用户进行电影推荐时,将每个电影看作一个文本,并把文本用向量空间
模型表示,辅助以 LDA 降维;然后根据建立好的空间向量模型,计算文本之间的相似度;75
最后采用基于物品的协同过滤算法对目标用户进行电影推荐。电影推荐系统整体框架如图 1
所示:
- 3 -
中国科技论文在线
图 1 电影推荐系统整体框架
Fig. 1 The overall framework of movie recommendation system 80
电影文本处理
在实际处理过程中,可以将一个电影看成一个文档,电影之间相似度的计算则变为文本
相似度问题。相似度计算的首要问题就是如何将文本信息表示为数学上可分析处理的形式,
即要建立文本信息特征,用特征项(如评分、类型、演员、导演、主要评论词)来代表目标
文本信息。建立文本特征,常用方法是:对每个电影文本内容进行预处理,构建{评论词:85
词频}字典,对文本内容进行分词,去掉停用词的预处理工作。
电影文本向量化
文本特征信息表示模型有多种,常见的有向量空间模型、布尔逻辑模型、概率模型及混
合模型等。其中向量空间模型是近几年来应用效果比较好的方法之一。它把文本用特征项及
特征项权重组成的向量来表示,把聚类过程简化为空间向量的运算,大大降低了问题的复杂90
度。本文采用向量空间模型(T1,W1, T2,W2,„Tn,Wn)来表示文本信息(其中,Ti 为特征项;
Wi 为 Ti 的权重)。
一个电影由评分、导演、演员、类型、评论词组成,这些特征项内容都是通过爬虫抓取
到的,在对电影文本量化处理的过程中,首先导演、演员和类型这些特征项的权重表示采用
的是一对一的编号表示,经过预处理后评论词的维度还是会比较大,实验中维度达到 1500095
多维,维度太大不利于相似度的高效计算,本文对评论词采用了主题模型 LDA 降维处理,
用主题维度来表示原来评论词的维度,大大的降低了文本表示的维度,对降维好的评论词维
度权重表示采用的是预处理阶段建好的{评论词:词频}中的对应的词频来向量化。这样就
将一个电影文本表示成了数学上可分析处理的向量形式[4]
融合用户评论的协同过滤推荐算法 100
协同过滤算法分为两大类,一类是基于记忆的(memory-based),也叫基于用户的
(user-based)另一类为基于模型的(model-based),也叫基于物品的(item-based)[5]。User-based
- 4 -
中国科技论文在线
算法存在两个问题:
1、数据稀疏性。很多电子商务推荐系统有大量的商品,用户购买的物品总量肯能不到
网站商品总量的 1%,不同用户之间购买的物品重叠性较低,这就导致难以找到用户的邻居。 105
2、算法可扩展性。面对日益增加的用户和物品,最近邻算法的计算量也会随之增大,
不适合大数据量情况下的使用[6][7]。
通常用户的兴趣爱好比较稳定 model-based 算法在一定程度上可同时解决上面两个问
题。但是传统的协同 model-based 推荐算法在做推荐时只考虑用户对该电影的评分信息,推
荐精度不高,融合用户评论的 model-based 推荐算法不但考虑用户的评分信息而且还考虑了110
导演、类型、演员、用户评论这些特征项,在很大程度上可以提高推荐精度,融合用户评论
的 model-based 推荐算法主要分为两个阶段:
1)根据建立好的空间向量模型计算推荐系统中电影之间的相似度[8],本论文中相似度
的计算采用的是欧几里得距离。
2)根据电影的相似度与用户的评分加权得到综合相似度,为目标用户生成 top-N 的推115
荐列表。
因为物品之间的相似度相对比较稳定,所以在系统中可以线下计算好网站中不同电影之
间的相似度,把结果存在表中,当对于给定目标用户进行推荐时只需进行查表,选择与用户
看过电影最相似的 N 个电影进行推荐。
3 实验结果与分析 120
实验数据
本文从
等基本信息。数据集的内容来自 16 种类型的电影信息和评论信息,共有 209280 个用户对
3980 个电影的评论信息,总评论信息量达到 300M。
数据集中每一条电影数据包括一个整体的评分、导演、演员(只采用演员列表中的前两125
个演员)、类型(只取前三种类型)和该电影的评价内容。
图片中包含了三个电影的信息,包括名字、评分、导演、演员、类型:
图 2 电影的评分、导演、演员、类型信息
Fig. 2 The information of film’s rating, director, actor and types 130
电影《坏未来》的部分评论信息展示:
图 3 电影的部分评论信息
The part of the film’s reviews
- 5 -
中国科技论文在线
评价指标 135
本论文中网站再推荐电影时,采用的是给用户一个个性化的推荐列表,这种推荐叫做
TopN 推荐。TopN 推荐的预测准确率一般通过准确率(precision)/召回率(recall)度量。
令 R(u)是根据用户在训练集上的行为给用户做出推荐的列表,而 T(u)使用户在测试集
上的行为列表,则推荐结果的召回率定义为:
Uu
Uu
|T(u)|
|T(u)R(u)|
Recall
140
推荐结果的准确率定义为[9]:
Uu
Uu
|)u(R|
|T(u)R(u)|
Precision
实验结果分析
一般情况下,随着推荐列表长度的增大,准确率指标会减小而召回率会增大。该实验的
目的在于比较不考虑评论和电影基本信息的条件下,传统的协同过滤算法与本文所提出的融145
合用户评论和电影基本信息的协同过滤算法的准确率和召回率的值。实验结果如下图所示:
图 4 融合用户评论的协同推荐算法与传统的协同过滤算法比较
Fig. 4 the Model-CF combining of users’ reviews compared with traditional Model-CF
虽然两个推荐系统的性能曲线有所交叠,但是以方块标示的融合电影评论和基本信息的150
系统的性能在绝大多数情况下要远好于用圆点标示的只考虑电影评分的系统。通过实验结果
我们可以发现,对于一个性能较好的系统,其曲线应当尽可能的向上突出。具体来说曲线与
坐标轴之间的面积应当越大。最理想的系统, 其包含的面积应当是 1,而所有系统的包含
的面积都应当大于 0。
4 结论 155
本文给出了基于用户评论挖掘的产品推荐算法,通过用户评论挖掘得到电影的向量表
示,据此建立电影向量模型,并将电影相似度与用户评分加权得到综合相似度,以此来修正
传统基于物品的协同过滤算法的片面性。同时 model-CF 解决了数据稀疏性问题,推荐的准
确率比传统的协同过滤算法提高很多[10]。
当前,推荐技术发展的比较成熟,但是评论挖掘方面的研究还处于探索阶段,推荐技术160
- 6 -
中国科技论文在线
与评论挖掘的结合研究还有待发展。本文重点研究评论挖掘与基于物品的协同过滤推荐技术
的结合方案,并通过实验验证了算法的优越性。由于电影的数量在不断增加,下一步工作将
围绕在大规模数据场景中,通过分布式计算电影之间的相似度来提高算法性能。
[参考文献] (References)
[1] 刘建国,周涛.个性化推荐系统的研究进展[J].自然科学进展,2009,19(1):1-11. 165
[2] 扈中凯,郑小林.基于用户评论的产品推荐算法[J].浙江大学学报,2013,47(8):1475-1485.
[3] Jianfeng Hu,Bo Recommendation System[J].CS224W Project Report,2012:1-9.
[4] 吴颜,沈浩.协同过滤系统中数据稀疏问题的解决[J].计算机应用,2007,6(24):94-97.
[5] Silvana Aciar,Debbie System Based on Consumer Product Reviews[J].IEEE,2006.
[6] 姚清耘,刘功申,李翔.基于向量空间模型的文本聚类算法[J].计算机工程,2008,34(18):39-41. 170
[7] 余文喆,张蓉.电子商务中的商品推荐系统[J].华东师范大学学报,2013,3:46-53.
[8] Badrul Sawar,George -based Collaborative Fitering Recommendation
Algorithms[J].ACM,2001:285-295.
[9] 项亮.推荐系统实践[M].北京:人民邮电出版社,2012.
[10] , of Recommender System Based on Customer Reviews[J].International 175
Journal of Research in Engineering and Technology,2013,2(11):428-431.