基于隐语义模型的协同过滤推荐研究
2016-05-19徐梦锦赵晓东
徐梦锦++赵晓东
摘要:将协同过滤推荐算法应用于电子商务领域会使算法在实时性、可扩展性等方面的缺陷变得不可忍受,因此该文提出了基于隐语义模型的协同过滤推荐算法。该算法在使用隐语义模型对产品进行聚类的基础上应用协同过滤算法,在大大缩小了算法运行时间的情况下,仍然能够在一定程度上提高算法的推荐准确率。
关键词:协同过滤推荐;隐语义模型;产品聚类;梯度下降;负反馈数据
中图分类号:TP391.1 文献标识码:A 文章编号:1009-3044(2016)07-0084-03
Research on Collaborative Filtering Algorithm Based on Latent Factor Model
XU Meng-jin,ZHAO Xiao-dong
( College of Electronic and Information Engineering in Tongji University, Shanghai 201804, China)
Abstract: The disadvantages that applying collaborative filtering recommendation algorithm to the e-commerce field is becoming intolerable. So in this paper we presents a collaborative filtering recommendation algorithm based on latent factor model. The algorithm uses latent factor model to cluster items. Then run collaborative filtering algorithm in the base of the clustering result. This algorithm can not only reduce the time that algorithm spends but also increase the precision of recommend results.
Key words: collaborative filtering recommendation; latent factor model; item clustering; gradient decent algorithm; negative feedback
1 概述
互联网技术的发展加快了信息堆积的速度,使人们陷入了信息过载的境地。而个性化推荐算法的出现则可以在一定程度上拯救互联网时代信息大爆炸所带来的困境。协同过滤算法在处理非结构化复杂对象方面拥有别的个性化推荐算法无法比拟的优势,因此成为了当前个性化推荐领域应用最广泛的算法[1]。
将协同过滤推荐算法应用到电子商务领域不仅可以提高网站的销售额,更可以提高用户对网站的满意度和忠诚度,为电子商务网站带来巨大商机。但是随着电子商务网站的不断发展,应用传统的协同过滤算法在处理庞大、稀疏矩阵时出现的诸如实时性差、可扩展性差等缺陷变得越来越明显,严重影响了推荐系统的性能。因此,本文提出了一种基于隐语义模型的协同过滤推荐算法,该算法首先使用隐语义模型对产品进行聚类,并利用聚类结果重构用于计算推荐列表的用户-产品评分矩阵,从而减小评分矩阵规模,提高算法的实时性。
2 基于隐语义模型的协同过滤推荐算法
常用的聚类方法一般都属于排他性的聚类方法,即一个固定的点只属于特定的某一个类别。而产品的聚类过程往往是非排他性的,一个产品有可能同时属于好几个不同的类别。所以本文提出了一种使用隐语义模型进行聚类的方法,以实现产品的非排他性聚类。其中,排他性聚类方法与非排他性聚类方法的区别如图1所示。
2.1 隐语义模型
隐语义模型使用机器学习相关统计方法,对用户历史评分数据进行迭代学习,从而将用户-产品评分矩阵R分解成用户特征矩阵P和产品特征矩阵Q。即使用较低维的矩阵P、Q的乘积来表示用户-产品评分矩阵[2],具体形式如式(1)所示:
通过对产品相关性矩阵Q的分析可以得出,Q中的每一项[qik]表示第i个产品在第k个隐性特征上的权值,我们可以将其理解为第i个产品属于第k个隐类的权值。基于上述分析,本文提出了一种基于隐语义模型的产品聚类方法,该方法通过提取[Qk]中权值最高的若干个产品作为每类的产品集合来完成产品的聚类过程。因为每个产品属于每个类别的可能性是根据权值来度量的,所以一个产品可能会同时出现在不同的类别中,因此使用基于隐语义模型的聚类方法可以实现产品的非排他性聚类。
2.2 负反馈数据
个性化推荐算法的运行基础即为用户的历史行为数据,其中,能得到较准确的推荐结果的数据为高质量的显性反馈数据,也就是用户对产品的具体评分数据,如movielens收集的用户对电影的评分数据。但是,在电子商务领域,显性反馈数据的获取比较困难,因为用户往往不愿意花费时间对商品进行打分。而用户的隐性反馈数据往往比较容易获得,因此系统可以收集到较多的数据。所以,本文主要研究隐性反馈数据下的推荐算法应用,其中,隐性反馈数据主要由用户的浏览、购买、搜索等行为构成。
由于本文针对的是隐性反馈数据下的推荐算法研究,而在隐性反馈数据集中,只存在正样本,即用户有过行为的产品集合,而没有负样本。而应用隐语义模型需要使用同时具有正样本和负样本的数据集,所以在对产品进行聚类前需要先对负样本进行采样并重构用于训练的基础数据集。
本文结合rong pan在论文中讨论的方法[5]设计了如下的负样本采样规则:首先,负样本的采样过程应该以用户为单位进行,即对每个用户来说,负样本的数目应该与该用户的正样本数目成比例;其次,负样本的采样过程中,应该偏向于采样那些比较热门但是用户却没有行为的产品。这是因为对冷门产品来说,用户没有对其产生评价更可能是因为用户没有发现该产品。所以,在用户没有过行为的产品中,热门产品有更大的几率成为负样本。
在负样本采集完成后,算法会将负样本加入用户的历史行为数据集中,其中,数据集中的原始评分数据记为1,而负样本数据记为0。并将重构后的数据集作为后续用于训练隐语义模型的训练集。
3 算法描述
基于隐语义模型的协同过滤算法通过使用隐语义模型训练得到产品相关性矩阵Q,并在每个隐类[Qk]中选取权值较大的若干项作为该隐类下的产品集合,从而得到产品的聚类结果。基于隐语义模型的协同过滤推荐算法主要可以分为聚类和推荐两个过程,其具体流程如下:
第1步,根据1.2节提出的采样规则进行负样本采样。并将负样本加入到用户的历史评分数据中。
第2步,使用0~1的数值初始化用户特征向量P与产品特征向量Q。
第3步,使用第1步得到的包含负样本的用户评分数据对P和Q进行迭代更新,直至参数收敛,也就是使式3最小化。
第4步,使用训练得到的产品特征矩阵Q构建产品的聚类结果。即在[Qk]中中选取权值最大的若干项作为该类的产品集合。
第5步,根据第4步得到的聚类结果重构用户-产品评分矩阵,将评分矩阵按产品的类别拆分成相应的几个规模较小的矩阵。
第6步,根据目标用户的历史消费记录判断用户兴趣所属商圈(即产品的类别),并在该类别对应的用户-产品评分矩阵中计算该用户与其他用户的相似性,其中相似性计算公式如式(6)所示[6]。 式(6)中[Ui]和[Uj]分别表示用户i和用户j购买的产品集合。
4 实验结果分析
本实验使用的数据集为movielens提供的943个用户对1682部电影的评分数据,由于本文研究的场景为隐性反馈数据场景,所以在实验中隐去了具体的评分数据,统一使用1表示用户对该产品有过行为。
下面将基于隐语义模型的协同过滤推荐算法的实验结果分别与传统的基于用户的协同过滤推荐、基于产品的协同过滤推荐和基于多级图划分的协同过滤推荐的实验结果进行了对比。其中,基于多级图划分的协同过滤推荐是另一种基于产品聚类的协同过滤推荐的实现方式[8],其使用多级图划分算法对产品进行分类。本文以曲线图的方式展示了该算法与其他算法的在各个评测指标上的对比结果,其中图2和图3分别为推荐准确率与召回率对比图,而图4为各个算法的运行时间对比图。
从图2、3、4中可以看出,与其他的算法相比,基于隐语义模型的协同过滤推荐算法的准确率与召回率除了在测试集中用户数量最少的u1数据集上比基于用户的协同过滤算法低以外,在其余情况下均比其他算法高。这说明,对产品进行准确的聚类可以过滤掉对当前用户无效的一些噪音数据,从而提高算法的准确率。而该算法的运行时间除了比基于多级图划分的协同过滤算法稍高以外,比其他算法的运行时间均要短很多。与传统的基于产品的协同过滤算法相比,甚至低了将近1个数量级。这说明通过对产品进行聚类,基于隐语义模型的算法成比例地缩小了用户-产品评分矩阵,减小了算法在计算用户相似度时的时间复杂度。
5 总结
本文提出的基于隐语义模型的协同过滤推荐算法在利用隐语义模型对产品进行聚类的基础上应用基于用户的协同过滤算法,通过减小用户-产品评分矩阵有效地缩短了推荐算法的运行时间,进而提高了推荐系统的实时性。同时,在产品聚类基础上重构用户-产品评分矩阵的过程实际上将很多对计算无效的数据过滤掉了,所以该算法也在一定程度上提高了推荐准确率。在产品数量更多的推荐应用中,本文提出的基于隐语义模型的协同过滤推荐可以通过产品聚类更有效、直观地减少用户-产品评分数据规模,也就是说,该算法能够更有效地减少算法的运行时间,使推荐算法可以应用于产品数量不断增多的电子商务系统中,因此,该算法具有较高的系统可扩展性。
参考文献:
[1] Ricci F,Rokach L,Shapira B,et al.Recommender Systems Handbook[M].Berlin:Springer,2011:145-186.
[2] 陈清浩, 冯军焕. 混合k最近邻模型与隐语义模型的推荐算法[J]. 信息系统工程, 2015(3):129-130.
[3] 鲁权. 基于协同过滤模型与隐语义模型的推荐系统研究与实现[D]. 长沙:湖南大学, 2013.
[4] Pan R, Zhou Y, Cao B, et al. One-Class Collaborative Filtering[C]// IEEE International Conference on Data Mining. IEEE, 2008:502-511.
[5] 边文龙, 黄晓霞. 融合隐语义模型的聚类协同过滤[J]. 微型机与应用, 2015, 34(15):26-28.
[6] 项亮. 推荐系统实践[M]. 北京:人民邮电出版社, 2012.
[7] 黄创光, 印鉴, 汪静,等. 不确定近邻的协同过滤推荐算法[J]. 计算机学报, 2010(8):1369-1377.
[8] 柳先辉,徐梦锦.基于多级图划分的协同过滤算法研究[J].机械设计与制造工程,2015,44(12):14-17