邓郁旭
摘要:针对大规模电子商务中商品和用户数量巨大、已有推荐算法精度不高的缺点,提出一种改进的基于协同过滤的推荐算法。该算法首先对用户和商品进行了聚类,然后利用SVD训练用户和商品的兴趣特征,进而依据兴趣特征进行商品推荐。实验证明该方法较已有方法在推荐准确度上有大幅度提高。
关键词:协同过滤商品推荐聚类相似度
[中图分类号]F425[文献标识码]A[文章编号]1000-7326(2012)07-0101-02
1引言
本文首先利用用户和商品之间的相似度分别对用户和商品进行聚类已达到降低维度的作用,然后将聚类的结果用来进行用户和商品兴趣特征的训练,继而依据兴趣特征进行推荐,最后通过实验证明本文提出的推荐算法较已有算法的推荐精确度和计算时间有明显提高。
2算法框架
本文提出的算法首先根据用户信息和商品信息分别对商品和用户进行聚类,然后利用聚类的结果为购买矩阵将为,继而使用压缩后的购买矩阵利用奇异值分解(SingularValueDecomposition)进行用户和商品的特征训练,最后通过用户和商品特征来预测用户对商品的感情去程度,从而实现个性化的商品推荐。算法主要包括3步,如图1所示。
图1本文的算法框架
3商品和用户聚类
本节介绍对商品和用户的聚类,首先定义商品相似度和用户相似度,然后提出给予相似度的聚类算法。
对用户和商品进行聚类,可以有效降低用户和商品维度,同时通过将相似的用户和商品聚类为同一个簇,避免了对兴趣特征训练带来的噪音。
3.1用户相似度
用户相似度SimUser(u1,u2)衡量了用户u1和u2之间的相似程度,该值越高说明用户之间的相似程度越高,取值范围为[0,1].SimUser(u1,u2)的计算综合考虑了用户u1和u2的标签和购物行为历史之间的相似程度,如下所示:
为标签相似度,为购物历史行为相似度。其中、为权重系数,*的取值可以分别为0.5,或者根据不同的应用而有所调整。
ProfileSim的计算如下:
其中F是所有标签属性的集合,如F={age,page,income,city},若用户u1和u2如果在f标签上的值相等,则否则为。如用户u1和u2的年龄相同,所在城市不同,则.
PurSim的计算如下:
为标题相似度,为商品描述相似度。其中为权重系数,。的取值可以分别为0.5,或者根据不同的应用而有所调整。
采用最小编辑距离相似度。的计算方法如下:
其中为商品pi中出现的关键词集合。为在中出现的频率,为的全局出现频率。tf*idf可以提高具有特征信息的关键词的权重,而降低出现频率高且无意义的停止词(StopWord)的权重。
3.3聚类算法
根据已经定义的相似度公式,利用表1的聚类算法来对用户和商品分别进行聚类。
表1聚类算法
其中为[0,1]之间的参数,越大,聚类生成的聚簇就会越多。一般,其取值大小可根据不同应用环境有所调整。
4商品和用户兴趣特征提取
本文使用奇异值分解来实现对商品和用兴趣特征的训练,奇异值分解是线性代数中一种重要的矩阵分解,是矩阵分析中正规矩阵酉对角化的推广。在信号处理、统计学等领域有重要应用。
奇异值分解定义如下:
假设A是一个N*M的矩阵,那么得到的U是一个N*k的正交矩阵,Σ是一个k*k的对角矩阵,VT是一个k*N的正交矩阵。当k>=rank(A)时,上式为等式,k为U和V中特征向量的维数。k取值太小误差大,k取值过大,又会出现过拟合(overfiting)现象。
已有的基于奇异值分解的协同过滤推荐算法直接使用购买矩阵P(用户i购买了商品u时,Pi,u=1,否则Pi,u=0)作为奇异值分解中的矩阵A,这样的方法当用户和商品规模很大时矩阵过于稀疏,而且引入了过多的噪音,影响了推荐效果。
本文首先根据用户簇和商品簇对矩阵P进行调整,生成矩阵P’(用户簇i购买了商品簇u时,P’i,u=1,否则P’i,u=0),这样既解决了矩阵稀疏的问题,又避免了噪音的引用。
5基于兴趣特征的推荐
本节介绍如何利用已训练出的用户和商品特征进行个性化的商品推荐。
当需要对用户u进行商品推荐时根据第四节得到的商品簇和用户簇的兴趣特征向量以及稀疏对角矩阵,利用表2中的算法来想用户u推荐m个商品。
表2商品推荐算法
由算法可以看到,本文提出的方法首先是得到用户最感兴趣的m个商品簇,然后在分别从每一个商品簇中推荐一个最具代表性的商品。这样既提高了推荐的准确率,又在不同的簇中可以提高推荐结果的多样性(persity)。
6实验
为了证明本文提出算法的有效性,我们在推荐的准确度上进行评估。实验的数据源是eBay上从2010年1月到2012年1月期间经过采样的活跃用户购物行为记录和商品信息。共包括3923种商品,13,972个用户,每个用户平均购买过47.4件商品。
本文采用了基于用户相似度的推荐算法、基于商品相似度的推荐算法、基于SVD的推荐算法和本文提出的推荐算法对数据集分别设定不同的推荐商品数进行了测试。在测试中采用用户80%的购买行为数据作为训练集,然后利用训练集进行模型的训练,然后预测用户剩下的20%的购物行为,并记录平均的推荐准确数。本文分别进行了5次交叉验证(FiveCross-validation),并取平均值,如图2所示。
图2实验对比图
由实验结果可以发现,基于SVD的推荐算法比起基于用户相似度的推荐算法和基于商品相似度的推荐算法的推荐准确度有所提高,而本文提出的方法在准确度方面大幅度超越了基于SVD的协同过滤推荐算法,这是因为本文的方法首先对用户和商品进行了聚类,这样减低了维度且避免了噪音,从而提高了推荐的效果。
7总结
实验证明本文提出的推荐算法较已有算法的推荐精确度和计算时间有明显提高。然而本文提出的推荐算法计算代价较高,只能进行离线推荐。如何利用Hadoop等分布式计算来提高算法的运行速度从而实现在线推荐,将是下一步的研究工作。
作者简介:邓郁旭(1978—),女,贵州铜仁人,铜仁学院物理与电子科学系计算机专业讲师,本科,研究方向:计算机科学与技术(贵州铜仁,554300)。
[参考文献]
[1]汤显,郭景峰,高英飞.基于类别相似性的增量协同过滤推荐算法[A].第二十三届中国数据库学术会议论文集(研究报告篇)[C].2006年.
[2]郁雪.基于协同过滤技术的推荐方法研究[D].天津大学.2009年.
[3]Eui-Hong(Sam)Han,GeorgeKarypis.Feature-basedrecommendationsystem[C].ICIK.2005
[4]SteffenRendle,LarsSchmidt-Thieme.Pairwiseinteractiontensorfactorizationforpersonalizedtagrecommendation[C].ICWD.2010.
[5]吴婷.协同过滤技术在电子商务推荐系统中的应用与研究[D].武汉理工大学.2009.
[6]ZhangMu,ChenYi,ZhangXiaohong,etal.StudyontheRecommendationTechnologyforTourismInformationService[C].ICCID.2010
责任编辑:何蔚荣