APP下载

基于混合相似度的协同过滤推荐

2017-04-18汤吴建

软件导刊 2017年2期
关键词:协同过滤

汤吴建

摘要 user-based协同过滤算法在B2C电子商务中是一种重要的推荐方法,但是用户共同评价项目的稀缺性导致了协同过滤算法质量的下降。鉴于此,在考虑用户评分数据的基础上,对用户评分记录进行聚类平滑。考虑用户购买记录作为数据源之一,并用曼哈顿距离相似度计算方法计算用户购买记录,将两者线性组合得到混合相似度,使用混合相似度进行推荐,通过实验计算两者线性组合的最佳权重系数,比传统的利用用户评分记录和用户购买记录的精确度高。实验结果表明,基于混合相似度的协同过滤推荐能有效提高由于数据稀缺性造成的推荐准确度。

关键词 协同过滤;数据稀疏性;混合相似度

DOI DOI: 10.11907/rjdk.162496

中图分类号: TP301

文献标识码: A 文章编号 文章编号: 16727800(2017)002003204

0 引言

随着互联网技术的不断发展,信息过载现象越来越突出,个性化推荐系统应运而生,并不断地改进。协同过滤作为目前推荐系统成功应用,其基本思想是相似用户具有相似的兴趣爱好,寻找目标用户兴趣最紧邻的用户,根据最近邻用户的评分来预测目标用户对商品项的评分值,选择预测评分最高的前N项商品推荐给目标用户[1]。然而,用户评分数据存在着数据稀疏性和推荐实时性,从而使推荐结果存在偏差。

为解决此问题有学者从信息源出发,把用戶的数据分为两大类[2]:显式数据和隐式数据。显式数据为用户的评分数据,而隐式数据是运用信息技术获取用户页面访问情况。董全德[3]提出了基于双信息源的协同过滤算法,判断活动用户对目标项目的兴趣程度,建立相似用户推荐组和专家推荐组,把两个推荐组的建议结合起来,形成一个可靠的信息源,然后分析各自影响活动用户对目标项目的权重,计算活动用户的最终兴趣度,实现系统推荐。贺桂[4]利用用户偏好挖掘技术进行用户显性偏好知识和隐性偏好知识挖掘分析,实现基于用户偏好知识的最近邻居社区构建和智能推荐。有学者为解决稀缺性问题将研究方向放在改进相似度方法方面。杜茂康等[5]运用改进的Slope One算法,该算法使用邻近项目进行计算,降低了数据的稀疏性,同时也减少了计算量;任看看和钱雪忠[6]采用结合修正公式改进的Jaccard相似性系统计算用户之间的相似度,在计算过程中考虑用户之间的共同评分项和所有评分项的关系,以及用户在共同评价项目上的评分差异对用户相似度的影响,从而获取更加精确的用户相似度矩阵。有学者通过聚类的方式来解决数据稀疏性问题。刘剑涛[7]针对传统协同过滤算法依赖单一用户需求形态影响推荐效果的问题,提出了一种基于用户多态聚类的个性化推荐,通过改进的海明距离计算候补邻居集,结合多态相似度进行二次聚类。吴泓辰[8]将协同过滤技术和划分聚类技术相结合,参照矩阵来推荐信息,完善矩阵赋值范围,在此基础上提出划分聚类的改进推荐算法,提高算法的准确性和实时性。

针对数据稀缺性导致推荐质量差的原因,本文使用用户评分矩阵进行相似度计算,使用用户购买记录即用户对商品的购买数量进行相似度计算。一方面购买记录客观地反映了用户的偏好习惯,而且购买记录往往多于用户的评分矩阵;另一方面,没有忽视用户评分矩阵的作用。同时改进了用户相似度计算方法,保证了推荐的质量和精确度。

1 相似度计算方法改进

1.1 用户购买记录相似度

根据协同过滤算法的原理,需要先计算目标用户与推荐系统中其他用户的相似度sim(i,j)。目前,传统的相似度计算方法中最流行的有皮尔逊相关性、余弦相似性以及修正的余弦相似性。但是这些传统相似度计算方法对用户购买记录的计算存在一定问题。具体如下:

1.1.1 皮尔逊相关性

皮尔逊相关性是一种度量两个变量间线性相关程度的方法[9],设用户i和用户j共同购买集合为Ii,j,则皮尔逊相关性所得到的两个用户间的相似度sim (i,j 为:

1.1.2 余弦相关性

余弦相似性通过测量两个向量之间角的余弦值来度量它们之间的相似性。设用户i和用户j的购买数量分别为I和J,其中未购买的设置为0。则用户i和用户j的余弦相似性可用式(1)来表示:

1.1.3 修正的余弦相关性

为了解决没有考虑不同用户的购买数量尺度问题,引入了修正的余弦相关性,通过考虑用户购买数量的平均数来消除评分尺度的差异,其公式为:Sim(i,j)= ∑nc=1(R

这3种相似度计算方法不适用于用户购买记录,首先没有考虑不同用户的购买数量尺度问题[10],其次由于未购买的设置为0,如果购买数量矩阵出现稀疏性严重的情况下,矩阵中出现很多0值,但实际上用户没有购买不代表用户的偏好为0,将导致计算出来的相似性结果存在偏差,不利于预测目标用户的购买数量[11]。

1.1.4 适合用户购买记录的相似度

为了找到一种适合用户购买记录的相似度计算方法,本文引进了曼哈顿距离。

曼哈顿距离也叫City Block相似度,是由十九世纪的Hermann Minkowski所创词汇,是一种度量空间距离的几何学概念,用来表明标准坐标系上两个点的绝对轴距总和。公式如下:

其中,Ri,a,Rj,a为用户i和用户j购买a产品的数量。

用上述曼哈顿距离相关性有效解决了由于购买数量稀缺性极大时分母可能为0的状态,从而提高了用户之间相似度计算的质量,保证了推荐算法的精确度。

1.2 用户评分记录相似度

为了缓解用户评分记录的稀缺性,可以对评分矩阵进行填充,本文采用文献[12]提出的一种有效用户聚类平滑原始矩阵方法。首先对评分矩阵进行Kmeans聚类,利用同类中的平均偏移来近似预测评分矩阵的未知评分,定义如下:

Ru(t)= Ru(t) 有评分Ru ∧ (t) 未知评分

其中,Ru ∧ 是用户u对未知项目t预填充的平滑值。预填充是基于Kmeans用户聚类结果,假设聚类结果为Cu∈ C1u,C2u,…,Cku ,Ru ∧ 的计算公式为:

1.3 改进的混合评分相似度

本文结合用户的购买记录相似度与用户评分记录相似度产生混合相似度评分,这样不但可以弥补数据在稀缺性下造成推荐准确性降低的缺点,而且购买记录本来直观反映了用户偏好。这里需要引入一个权重变量来权衡购买记录相似度与用户评分记录相似度,最后的相似度计算如下:

2 基于混合相似度的协同过滤推荐过程

用户兴趣矩阵的稀缺性影响了最后推荐的准确性,单单考虑用户评分记录不能很好地缓解用户兴趣矩阵的稀缺性,在此基础上将用户购买记录作为兴趣矩阵的一部分,具体推荐过程如下:

(1)获取兴趣矩阵,即用户的评分矩阵和用户购买记录矩阵。

(2)针对用户购买记录矩阵的特殊性采用曼哈顿距离公式(4)、(5)求得用户购买记录矩阵的相似度。

(3)针对用户评分矩阵采用式(6)、式(7)聚类平滑原始矩阵,增加其共同评分项目,再采用公式(8)求得用户评分矩阵的相似度。图1为原始矩阵的平滑过程。

(4)利用权重系数将用户购买记录相似度与用户评分记录相似度整合在一起获得混合相似度。

(5)根据聚类中心判断到达用户,以便缩小最近邻的搜索范围,可以使用K-NN最近邻,通过式(11)找到当前用户的K个最近邻,并选择其中TOP-N推荐给当前用户为。

3 实验验证

3.1 实验数据

采用某电子商务网站上的评分数据集以及交易记录数据集对该算法进行验证,该数据集共有1 321个用户以及1 045个商品,其中包括82 826个评价记录以及231 640个交易记录。评价记录需要使用数字量化,范围是1~5,其中,5表示最喜欢;1表示最不喜欢,而购买记录用购买数量来表示。为了提高推荐质量不妨选取用户对超过20种商品作过评价的进行推荐。可以计算出该数据的稀缺性为:1- max{82826,231640} 1321×1045 =83.22%。如果只考虑用户的评价记录,稀缺性为:1- 82826 1321×1045 =94%,经过两种方法对比,既考虑用户评分记录和用户购买记录要比只考虑用户评分记录更能解决数据稀缺性,而且用户购买记录更能真实客观反映用户的偏好,从而提高了协同过滤算法的效率。将评分数据集分为训练集和测试集两部分进行实验验证。

3.2 评估标准

推荐系统中最常用的度量指标有两种,一种是平均绝对误差(Mean Absolute Error,MAE),该方法直观且容易实现;另一种是根均方误差(Root Mean Squared Error,RMSE),该方法也有不错的度量效果。本文实验运用平均绝对误差指标衡量推荐效果,平均绝对误差定义如下:

其中,ri为真实评分,pi为预测评分,N表示测试集中项目的数量。MAE值越小说明真实值与测试值越接近,即推荐系统的推荐能力越强。

3.3 实验结果及讨论

首先测试Given5条件下,混合相似度权重系数α。从0~1以0.1平均递增,当α为0时,相似度为评分记录相似度;当α为1时,相似度为购买记录相似度,如表1所示。

Given15条件下基于用户购买记录相似度计算MAE值为0.566,基于用户评分记录相似度计算MAE值为0.607,当α为0.6时取得最佳权重值MAE值最小。

根据图2所示基于改进的混合相似度的协同过滤方法在权重系数分别取0.6、0.5、0.6时MAE取值最小,并且都小于在同等近邻数量下基于用户购买记录相似度方法与基于用户评分记录相似度的协同过滤方法,可知基于改进的混合相似度的协同过滤方法在一定程度上能消除数据稀缺性带来的推荐质量下降问题。

4 结语

针对个性化推荐系统中数据稀疏性问题,本文引入将用户购买记录和用户评分记录相结合的思想,对计算相似度的方法进行改进,为验证本文算法的有效性,将最近邻数在5、10、15下权变系数从0~0.1的MAE值进行测定。在权变系数为0时,即为基于用户评分记录的协同过滤算法;在权变系数为1时,即为基于用户购买记录的协同过滤算法,实验结果表示权变系数在0.4~0.6之间MAE值最小,表明本文方法在一定程度上能解决数据稀疏性的問题。本文没有考虑冷启动和用户兴趣转移等问题,下一步将研究冷启动和用户兴趣转移下的混合相似度的协同过滤方法,更好地提高算法效率和推荐质量。

参考文献:

[1] 张莉,秦桃,滕丕强.一种改进的基于用户聚类的协同过滤算法[J].情报科学,2014,10:2427,32.

[2] SCHAFERJB,KONSTANJA,RIEDL J.Ecommerce recommendation applications[J].DataMining and Knowledge Discovery,2000,5(1):115152.

[3] 董全德.基于双信息源的协同过滤算法研究[J].合肥工业大学学报:自然科学版,2010(7):984987,996.

[4] 贺桂和.基于用户偏好挖掘的电子商务协同过滤推荐算法研究[J].情报科学,2013,12:3842.

[5] 杜茂康,刘苗,李韶华,等.基于邻近项目的Slope One协同过滤算法[J].重庆邮电大学学报:自然科学版,2014,03:421426.

[6] 任看看,钱雪忠.协同过滤算法中的用户相似性度量方法研究[J].计算机工程,2015(8):1822,31.

[7] 刘剑涛.个性化推荐系统中用户多态聚类研究[J].现代图书情报技术,2012(2):1822.

[8] 吴泓辰,王新军,成勇,彭朝晖.基于协同过滤与划分聚类的改进推荐算法[J].计算机研究与发展,2011(S3):205212.

[9] 夏陪勇.个性化推荐技术中的协同过滤算法研究[D].青岛:中国海洋大学,2011.

[10] HJAHN.A new similarity measure for collaborative filtering to alleviate the new user coldstarting Problem[J].Information Sciences,2008,178(1):3751.

[11] 何有世,宋翠莉.基于用户购买记录的改进协同过滤推荐[J].计算机工程与设计,2014(9):30913094.

[12] XUE G,LIN C,YANG Q,et al.Scalable collaborative filtering using clusterbased smoothing[R].In Proceedings of the 28thannual international ACM SIGIR conference on Reserarch and development in information retrieval,Brazil:ACM Press,2005.

(责任编辑:陈福时)

猜你喜欢

协同过滤
改进的协同过滤推荐算法