
2. 西南财经大学经贸外语学院 成都 611130;
3. 华南理工大学软件学院 广州 510000
2. School of Foreign Languages for Business, Southwestern University of Finance and Economics Chengdu 611130;
3. School of Software Engineering, South China University of Technology Guangzhou 510000
电子商务网站上用户对商品的评论可以帮助其他潜在消费者了解该商品的全貌,帮助潜在消费者进行购买决策。而网站上的海量商品评论让消费者即使花费了很多时间也难以找到自己感兴趣和期望的评论。因此,研究如何从海量评论中发现有价值的评论,并向消费者进行推荐显得尤为重要。
首先需要挖掘用户感兴趣的商品特征,然后有针对性地推荐那些含有对相关特征进行讨论的评论。文献[1, 2, 3]试图利用评论中的文字和社会特征预测消费者对评论的打分,从而向消费者推荐预测打分高的那些评论。然而,这些研究工作没有考虑用户的个性化问题,即可能会把相同的评论推荐给关注点和兴趣点不一样的用户。
为了解决海量商品中的个性化评论推荐问题,本文提出一种个性化评论推荐系统RevRecSys。在RevRecSys系统中,首先利用矩阵分解中的奇异值分解(SVD)将用户的评论分解,获得一个用户特征矩阵,并将其压缩到一个用户潜在因素空间。类似地,将每个评论也映射到一个同样的潜在因素空间。然后根据每个用户的特征矩阵,预测用户对不同评论的打分。最后,向用户推荐具有较高的预测打分的评论。通过将评论推荐问题转化为用户潜在因素空间与评论潜在因素空间的匹配问题,可以很好地解决数据稀疏问题和新评论问题。
1 相关工作 1.1推荐系统文献[4]介绍了现代推荐系统的整体情况,得益于全世界范围学者的努力,现代推荐系统日益成熟。大体上,推荐系统的实现可以分为3类[5, 6]:基于内容(CB)[7, 8, 9]、协同过滤的(CF)[10, 11, 12]和混合方法[13, 14]。对于一个用户和物品,CB通过用户对与物品相似的其他物品的喜好程度来估计该用户对该物品的喜好程度。而CF的主要思想是相似的用户会有相似的品味(基于用户),相似的物品对一个用户会有相近的吸引力(基于物品)。CB和基于物品的CF的主要不同点在于相似性度量的策略的不同。CB通过内容来计算两个物品之间的相似度,而CF是通过对两件物品进行了评分的用户的评分计算两个物品的相似度。在最近的推荐系统里CF更受欢迎,也得到了更广泛的应用。有很多关于CF的工作,它们在特定的情况下能得到各自更好的结果。目前,矩阵因子分解(MF)[15]成为最受欢迎的CF算法之一。经证明,MF胜过现有大多数工艺水平的算法。
虽然推荐系统在人们的日常生活中扮演越来越重要的作用,但评论推荐仍处于起步阶段。
1.2 隐因子模型隐因子模型在信息检索领域得到了越来越多的关注。文献[16]表明隐因子模型在隐语义分析中表现很好。隐因子模型的关键思路是把原问题特征空间映射到维度更少的隐因子空间。通常隐因子空间的每个因子代表问题域的一个模式。例如,对于电影推荐,隐因子可以解释为导演、电影类型、用户年龄段和主演等影响因素。早期的隐因子模型——矩阵因子分解(MF)[17]是基于矩阵分解这个线性代数中著名的技术。许多在特定领域能增强模型的性
能的实现被提出,如SVD++、timeSVD++和RANKSVD++模型分别通过整合用户和物品偏倚、用户的显式回馈、时间效应和基于排序的规则化来加强基本的矩阵模型。另一种类型的隐因子模型是PLSA(概率隐语义分析)[18]和LDA(隐迪利克雷分布)[19]这两种主题模型。这两种模型引进隐主题变量将可观测变量文档和文字联系起来,从而描述语料库的分布结构。主题模型在文档维度规约中得到了广泛的应用。文献[20, 21]用与隐主题一一对应的用户标签标记文档以提高LDA模型的可解释性。文献[21]将用户反馈加入LDA模型作为每篇文档对应的反应变量预测用户评分。
2 RevRecSys系统的机制个性化评论推荐系统一般由评论集合(用R表示)和用户集合(用U表示)两个部分组成。个性化评论推荐系统的目标是把用户可能感兴趣但未曾阅读的评论推荐给用户。为了实现该目标,系统通常会为用户的每个未曾阅读的评论进行预测打分,并把预测得分较高的评论返回给用户[22, 23]。预测得分越高的评论代表着用户越有可能对该评论感兴趣。用户对评论的感兴趣程度取决于该评论是否提及用户感兴趣的商品特征以及是否围绕该特征展开了深入描述。
所以,一个好的个性化评论推荐系统应该向用户推荐描述了用户感兴趣的商品特征的评论。要实现个性化评论推荐,可以分3个步骤:1) 找出用户感兴趣的商品特征,并根据用户感兴趣的商品特征为用户构建用户模型;2) 根据评论对用户感兴趣的商品特征(即用户模型)的描述程度预测用户对该评论的打分;3) 根据评论的预测得分,由高到低向用户进行评论推荐。
2.1 发现用户感兴趣的特征在RevRecSys系统中,用户和商品特征之间的关系可以用一个如下定义的用户-特征矩阵表示。
定义 1 用户-特征矩阵(X)是由所有用户对所有商品特征的平均打分组成的矩阵,其中第i行第j列的元素xi,j,代表用户i对特征j的平均打分,m代表集合U中的用户数量,n代表集合R中所有评论一共提及的商品特征数量。
${X_{m,n}} = \left( {\begin{array}{*{20}{c}} {{x_{1,1}}}&{{x_{1,2}}}& \cdots &{{x_{1,n}}}\\ {{x_{2,1}}}&{{x_{2,2}}}& \cdots &{{x_{2,n}}}\\ \vdots & \vdots & \ddots & \vdots \\ {{x_{m,1}}}&{{x_{m,2}}}& \cdots &{{x_{m,n}}} \end{array}} \right)$ | (1) |
假设用户Alice给两条包含特征“价格”的评论分别打4分和5分,那么xAlice,价格= 4.5。xAlice,价格的值越高,说明用户i对特征j越感兴趣。
为了表示用户的兴趣,通常做法是把用户打过分的评论中出现的商品特征提取出来,构建一个由这些商品特征组成的向量。但由于在现实生活中,一个特征可能有多个表达方式(如“价格”和“价钱”都表示同个特征“价格”),以及特征之间存在一定的语义联系(如特征“价格”和“价值”存在一定的关系),因此采用基于奇异值分解的方法为每个用户构建用户模型。根据奇异值分解,原始的用户-特征矩阵可以被压缩到一个新的向量空间并可以由两个矩阵的点乘拟合:用户-隐因子矩阵和特征-隐因子矩阵。隐因子是显因子(商品特征)的抽象表示。通过用低维度的隐因子抽象表示高维度的显因子,用户-特征矩阵被压缩到一个新的向量空间。用户-隐因子矩阵表示每个用户对各个隐因子的感兴趣程度,而特征-隐因子矩阵则表示各个特征与各个隐因子的语义联系程度。整个拟合的过程可以由式(2)~式(4)以及图 1中的实例表示。
${X_{m,n}} \approx {\widetilde X_{m,n}} = {U_{m,k}}{F'_{n,k}}$ | (2) |
${U_{m,k}} = \left( {\begin{array}{*{20}{c}} {{u_{1,1}}}&{{u_{1,2}}}& \cdots &{{u_{1,k}}}\\ {{u_{2,1}}}&{{u_{2,2}}}& \cdots &{{u_{2,k}}}\\ \vdots & \vdots & \ddots & \vdots \\ {{u_{m,1}}}&{{u_{m,2}}}& \cdots &{{u_{m,k}}} \end{array}} \right)$ | (3) |
${F_{n,k}} = \left( {\begin{array}{*{20}{c}} {{f_{1,1}}}&{{f_{1,2}}}& \cdots &{{f_{1,k}}}\\ {{f_{2,1}}}&{{f_{2,2}}}& \cdots &{{f_{2,k}}}\\ \vdots & \vdots & \ddots & \vdots \\ {{f_{n,1}}}&{{f_{n,2}}}& \cdots &{{f_{n,k}}} \end{array}} \right)$ | (4) |
由于已经把用户感兴趣的特征压缩到由隐因子构成的向量空间,所以要发现用户感兴趣的评论的关键是找到评论和由隐因子组成的用户模型之间的关系。
![]() |
图1把用户映射到由隐因子组成的向量空间的例子 |
对于每条在集合R中的评论而言,每条评论都可用商品的若干特征表示。假设有一条评论“这个相机在光线不足的时候拍出来的照片质量很差”,那么这个评论就可以被看作是一条讨论了特征“照片质量”的评论。因此,在寻找评论和由隐因子组成的用户模型之间的关系时,可以首先利用评论和特征之间的关系,然后把评论也映射到由隐因子组成的向量空间中。评论和特征之间的关系可以用如下定义的评论-特征矩阵表示。
定义 2 一个评论-特征矩阵(Y)是一个由所有商品特征在所有评论中出现的频率组成的矩阵,其中第i行第j列的元素yi,j代表用户i对特征j的平均打分,p代表集合R中评论数量,n代表集合R中所有评论一共提及的商品特征数量。
${Y_{p,n}} = \left( {\begin{array}{*{20}{c}} {{y_{1,1}}}&{{y_{1,2}}}& \cdots &{{y_{1,n}}}\\ {{y_{2,1}}}&{{y_{2,2}}}& \cdots &{{y_{2,n}}}\\ \vdots & \vdots & \ddots & \vdots \\ {{y_{p,1}}}&{{y_{p,2}}}& \cdots &{{y_{p,n}}} \end{array}} \right)$ | (5) |
把评论映射到由隐因子组成的向量空间中的过程可以由式(6)及式(7)以及图 2中实例表示。
${R_{p,k}} \approx {\tilde R_{p,k}} = {Y_{p,n}}{F_{n,k}}$ | (6) |
${R_{p,k}} = \left( {\begin{array}{*{20}{c}} {{r_{1,1}}}&{{r_{1,2}}}& \cdots &{{r_{1,k}}}\\ {{r_{2,1}}}&{{r_{2,2}}}& \cdots &{{r_{2,k}}}\\ \vdots & \vdots & \ddots & \vdots \\ {{r_{p,1}}}&{{r_{p,2}}}& \cdots &{{r_{p,k}}} \end{array}} \right)$ | (7) |
在把评论也映射到隐因子向量空间后,只需把用户-隐因子矩阵和评论-隐因子矩阵进行点乘,即可得到每个用户对每个评论的预测打分。预测打分过程可以用式(8)和式(9)以及图 3中的实例表示。
${S_{m,p}} \approx {\tilde S_{m,p}} = {U_{m,k}}{R'_{p,k}}$ | (8) |
${S_{m,p}} = \left( {\begin{array}{*{20}{c}} {{s_{1,1}}}&{{s_{1,2}}}& \cdots &{{s_{1,p}}}\\ {{s_{2,1}}}&{{s_{2,2}}}& \cdots &{{s_{2,p}}}\\ \cdots & \cdots & \ddots & \vdots \\ {{s_{m,1}}}&{{s_{m,2}}}& \cdots &{{s_{m,p}}} \end{array}} \right)$ | (9) |
在RevRecSys中,根据用户对每条未读评论的预测打分对评论进行排序,并返回其中得分最高的 N条评论给用户。
![]() |
图2用户-评论打分矩阵的分解例子 |
![]() |
图3把评论映射到由隐因子组成的向量空间的例子 |
在传统的推荐系统中,一直存在一个冷启动的问题,即无法推荐新的商品(或评论)给用户以及无法把商品(或评论)推荐给新的用户。对于新用户这个问题,还未能找到解决的方法,但对于新商品(或评论)这个问题,本文的方法能一定程度上解决。在基于用户的协同过滤推荐系统中,系统由于无法找到相似的用户对新商品(或评论)的打分从而无法进行分数预测;在基于商品(或评论)的系统过滤推荐系统中,系统由于无法根据商品(或评论)的打分历史找到新商品(评论)的相似商品(或评论)从而无法进行分数预测;而该方法由于不依赖寻找相似用户或者相似商品(或评论),因此不受此限制。该方法解决新评论问题主要是基于虽然评论为第一次出现,但评论提及的特征却一般不是第一次出现的工作原理。一般情况下,不同用户描述同一个商品时可能会提及同样的特征,而且同一个用户描述不同商品时也可能会提及不同的特征。因此,要解决新评论问题,只需把一条评论拆解成若干个特征;然后根据特征与用户之间的关系,求得用户对评论中出现的各个特征的感兴趣程度;最后把这些感兴趣程度整合在一起即可。
3 实 验 3.1 数据集利用爬虫工具从Epinions网站上抓取一个数据集,并在数据集上进行实验。Epinions.com是一个在线产品评论网站,用户可以在该网站上发表评论,也可以对他人的评论进行打分(分数为1~5分)。把数据集中参与评论数在10~50条之间的用户抽取出来用作实验。该子集一共包括了1 367个用户、7 063条评论、4 116个特征、23 338个评论打分信息。这些评论获得的分数分布如图 4所示,每条评论平均有7个特征。
![]() |
图4评论所获得的分数分布 |
随机把该子集分成两部分,80%的数据用作训练集,20%用作测试集。对于测试集中的每个评论所获得的分数,通过比较该评论实际所获得的分数和RevRecSys预测的分数对系统进行评估。
3.2 衡量标准以下为RMSE、MAE及PC共3个衡量标准的介绍。
RMSE(均方根偏差)定义如下: ${\rm{RMSE}} = \sqrt {\frac{{{{(s - a)}^2}}}{n}} $ 式中,n是测试集中的评论数目;s是评论的预测得分;a是评论的实际分数。RMSE的值越小,推荐系统的准确度就越高。
MAE(平均绝对偏差)定义如下:
${\rm{MAE}} = \frac{1}{n}\sum\limits_{i = 1}^n {|s - a|} $同样,MAE的值越小,推荐系统的准确度越高。
PC(准确度覆盖)与前两个衡量标准不同,PC主要衡量测试集中有多少评论的得分是可以被预测的,PC的定义如下: ${\rm{PC}} = \frac{p}{n}$ 式中,p代表测试集中可以被预测得分的评论的数量。PC的值越高,说明推荐系统越能应对冷启动问题。
3.3 基准方法把RevRecSys系统和另外3个推荐系统进行对比。第1个推荐系统CF是基于协同过滤实现的;第2个推荐系统AVG通过计算一个用户的平均打分来预测未读评论的打分;第3个推荐系统RANDOM是基于随机分配数值实现的。
3.4 实验结果首先把RevRecSys系统和另外3个推荐系统进行对比,对比结果如图 5和图 6所示。
图 5描述了4个推荐系统在RMSE和MAE衡量标准下的结果。RevRecSys、CF、AVG及RANDOM的RMSE值分别为0.67、0.71、0.82和2.50。4个推荐系统的MAE值分别为0.38、0.39、0.53和2.1。显然RevRecSys系统在RMSE和MAE标准下都比另外3系统表现要好。
![]() |
图5推荐系统在RMSE和MAE标准下的表现 |
图 6展示了4个推荐系统在PC标准下的表现。RevRecSys、CF、AVG及RANDOM的PC值分别为0.98、0.90、0.98和1.00。CF因为既无法处理新用户问题又无法处理新评论问题,所以在PC的衡量标准下表现最差。本文的RevRecSys系统虽然能处理新评论问题,但因为无法处理新用户问题,所以在PC的衡量标准下本文系统要比AVG和RANDOM系统表现差。
![]() |
图6推荐系统在PC标准下的表现 |
然后,为了进一步衡量本文的系统,AVG和RANDOM在处理新评论时的准确率,单独抽取了测试集中的新评论,并利用这些新评论进行实验。实验结果如图 7所示。
由图 7可以看到,在处理新评论时,RevRecSys、AVG和RANDOM的RMSE值分别为0.77、1.3和2.12。它们的MAE值分别为0.55、1.15和1.7。通过以上数据,虽然RevRecSys在处理新评论时的准确度不及之前处理旧评论时的准确度,但是在处理新评论时,RevRecSys的准确度是在3种推荐系统中最高的。
![]() |
图7推荐系统在新评论数据集中的表现 |
图 8展示了本文系统在不同k值下的表现。k是被压缩后的向量空间中的维度数目。k的取值越大,代表用户的兴趣用更多的隐因子来表示。从图 8可知,本文系统的RMSE值随着k值的增加而在0.669~0.674间波动。当k=70时,本文系统的RMSE值最小,表现最好。
![]() |
图8RevRecSys在不同k值下的表现 |
本文提出了一个全新的基于奇异值分解的个性化评论推荐系统RevRecSys。该系统首先捕获用户感兴趣的商品特征,并把用户感兴趣的特征映射到隐因子中。然后,系统利用评论内容以及商品特征之间的关系,预测用户对评论的打分。最后,系统根据打分高低为用户推荐评论。由于本文系统是对用户-特征矩阵进行分解,并没有直接对用户-评论矩阵进行分解,因此本文推荐系统还能较好应对冷启动中的新评论问题。实验结果表明本文的推荐系统在预测的准确度以及预测的覆盖度上都优于基准方法。
[1] | KIM S M, PANTEL P, CHKLOVSKI T, et al. Automatically assessing review helpfulness[C]//Proceedings of the 2006 Conference on Empirical Methods in Natural Language Processing. [S.l.]: Association for Computational Linguistics, 2006: 423-430. |
[2] | LU Y, TSAPARAS P, NTOULAS A, et al. Exploiting social context for review quality prediction[C]//Proceedings of the 19th International Conference on World Wide Web. [S.l.]: ACM Press, 2010: 691-700. |
[3] | O'MAHONY M P, SMYTH B. Learning to recommend helpful hotel reviews[C]//Proceedings of the 3th ACM Conference on Recommender Systems. [S.l.]: ACM Press, 2009: 305-308. |
[4] | ADOMAVICIUS G, TUZHILIN A. Toward the next generation of recommender systems: a survey of the state- of-the-art and possible extensions[J]. IEEE Transactions on Knowledge and Data Engineering, 2005, 17(6): 734-749. |
[5] | 许海玲, 吴潇, 李晓东, 等. 互联网推荐系统比较研究[J]. 软件学报, 2009(02): 350-362.XU Hai-lin, WU Xiao, LI Xiao-dong, et al. Comparison study of internet recommendation system[J]. Journal of Software, 2009, 20(2): 350-362. |
[6] | 赵亮, 胡乃静, 张守志. 个性化推荐算法设计[J]. 计算机研究与发展, 2002, 39(8): 986-991.ZHAO Liang, HU Nai-jing, ZHANG Shou-zhi. Algorithm design for personalization recommendation systems[J]. Journal of Computer Research and Development, 2012, 39(8): 986-991. |
[7] | XIE H R, LI Q, CAI Y. Community-aware resource profiling for personalized search in folksonomy[J]. Journal of Computer Science and Technology, 2012, 27(3): 599-610. |
[8] | DI NOIA T, MIRIZZI R, OSTUNI V C, et al. Linked open data to support content-based recommender systems[C]// Proceedings of the 8th International Conference on Semantic Systems. [S.l.]: ACM Press, 2012: 1-8. |
[9] | LIN C J, KUO T T, LIN S D. A content-based matrix factorization model for recipe recommendation[C]//The 18th Pacific-Asia Conference on Knowledge Discovery and DataMining. Tainan, Taiwan, China: Springer, 2014: 560- 571. |
[10] | NOEL J, SANNER S, TRAN K N, et al. New objective functions for social collaborative filtering[C]//Proceedings of the 21st International Conference on World Wide Web. [S.l.]: ACM Press, 2012: 859-868. |
[11] | CHEN K, CHEN T, ZHENG G, et al. Collaborative personalized tweet recommendation[C]//Proceedings of the 35th International ACM SIGIR Conference on Researchand Development in Information Retrieval. [S.l.]: ACM Press, 2012: 661-670. |
[12] | BOBADILLA J S, ORTEGA F, HERNANDO A, et al. A collaborative filtering approach to mitigate the new user cold start problem[J]. Knowledge-Based Systems, 2012(26): 225-238. |
[13] | KARDAN A A, EBRAHIMI M. A novel approach to hybrid recommendation systems based on association rules mining for content recommendation in asynchronous discussion groups[J]. Information Sciences, 2013(219): 93-110. |
[14] | CHEN W, NIU Z, ZHAO X, et al. A hybrid recommendation algorithm adapted in e-learning environments[J]. World Wide Web, 2014, 17(2): 271-284. |
[15] | KOREN Y, BELL R, VOLINSKY C. Matrix factorization techniques for recommender systems[J]. Computer, 2009, 42(8): 30-37. |
[16] | DEERWESTER S, DUMAIS S T, FURNAS G W, et al. Indexing by latent semantic analysis[J]. Journal of the American society for information science, IEEE, 1990, 41(6): 391-407. |
[17] | RICCI F, ROKACH L, SHAPIRA B, et al. Recommender systems handbook [M]. New York: Springer, 2010. |
[18] | HOFMANN T. Probabilistic latent semantic indexing[C]// Proceedings of the 22nd Annual International ACM SIGIR Conference on Research and Development in Information Retrieval. [S.l.]: ACM Press, 1999: 50-57. |
[19] | BLEI D M, NG A Y JORDAN M I. Latent dirichlet allocation[J]. The Journal of Machine Learning Research, 2003(3): 993-1022. |
[20] | RAMAGE D, MANNING C D, DUMAIS S. Partially labeled topic models for interpretable text mining[C]// Proceedings of the 17th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. [S.l.]: ACM Press, 2011. |
[21] | RAMAGE D. Labeled LDA: a supervised topic model for credit attribution in multi-labeled corpora [C]//Proceedings of the 2009 Conference on Empirical Methods in Natural Language Processing. [S.l.]: Association for Computational Linguistics, 2009: 248-256. |
[22] | XIE H, LI Q, MAO X. Community-aware user profile enrichment in folksonomy[J]. Neural Networks, 2014(58): 111-121. |
[23] | XIE H R, LI Q, CAI Y. Community-aware resource profiling for personalized search in folksonomy[J]. Journal of Computer Science and Technology, 2012, 27(3): 599-610. |