用户信任和项目偏好融合的协同过滤算法研究
2019-09-10杨俊芳
摘 要 电子商务的快速发展为企业带来了新的契机,同时由于网站物品种类的增多,基数变得庞大,寻求需求物品信息变得麻烦且费时。电子商务中对用户商品的推荐就是利用资源信息进行整合过后向用户推荐的过程。协同过滤算法的优越性使它成为目前最成功的方法。Memory-based协同过滤算法有User-based以及Item-based兩种协同过滤算法。在实际的电子商务中,用户对商品的使用或者评分评价总量不超过所有总量的百分之一,其影响了“用户-项目评分数据集”的缺失,影响了推荐精度,对此本文针对用户信任以及项目偏好的融合进行了协同过滤算法的研究。
关键词 协同过滤 信息融合 推荐系统 模糊聚类
引言:
Memory-based协同过滤算法最核心的要点就是用户对某一商品的评价。系统通过数据的整合统计对用户进行分组,在研究中称之为邻居,他们的偏好和目标用户偏好之间具有较高的一致性。这种评价数据由于商品的总占比很低而造成了稀疏性,因此引起了用户组合定位的不精准。Item-based系统过滤算法的缺陷是因为只能通过用户已购买商品进行推荐,用户的兴趣无法提前挖掘,进行“跨类型”推荐[1]。
一、协同过滤相关工作
不管是User-based还是Item-based,两者都是利用了用户对商品评价的数据来对目标用户实现目标推荐。其中User-based算法在进行运算时并没有充分进行兴趣与购买商品关系的调整。Item-based算法则没有充分做好邻居的兴趣项目与目标用户之间关系的调整[2]。
本文针对用户信任和项目偏好相融合的协同过滤算法的研究整合了User-based以及Item-based的基本算法理论。结合了模糊聚类算法,利用相关算法实现相近项目以及用户之间的类聚[3]。
这种评价的数据算法在电子商务中体现为通过以往用户群对某一种商品进行评价来使目标用户对该商品关注点进行预测的过滤过程。通过矩阵R(m,n)来体现该数据,用户以及项目在该矩阵中分别用行列表示;也可以利用行向量R来表示“用户-项目”评分数据R=[u1,u2,……,um]T,UK=[RK1,RK2,……,RKn]T,k=1,2,……,m或者列向量R=[t1,t2,……,tn],tl=[R1l,R2l,……,Rml],l=1,2,……,n。其中表示某用户UK对某项目tl的评分。
User-based算法,就是依据最接近的邻居对商品的评价数据进行目标客户的商品推荐过程。这种算法最中心的要点就是寻找一个精准的邻居集(邻集的选择可以使用K近邻法和阈值的设立,后者要注意在进行阈值设立的过程中应严格控制好数值的高低,太高或者太低会造成项目的缺少和无筛选意义)。相似邻居查找准确度以及效率定位了User-based算法的有效性。邻居相似度度量计算中的相关性计量sim(x,y)表示为
其中Rxs和Rys分别代表用户x和用户y对项目s的评分;Rx和Ry表示用户x、y对项目的平均评分;Sxy表示用户x、y的交集。
没有进行评分评价的项目预测表达式如下:
其中x、p、lu分别表示项目、用户、相似用户数。
“Item-based协同过滤算法”与“User-based协同过滤算法”的要点具有一定的相似性,其中只是对“历史评分数据集”的相识度计算进行了“用户相似度”的替换。
项目进行相似度计算过后相似项目集选取的公式如下
评分Pus中u、s、lt、sim(s,d)表示预测用户,未平项目,相识项目数,项目相似度。
协同过滤的算法过程如图2-3
协同过滤的过程中,矩阵m×n目的是进行相似用户的寻找,如果对某一种商品越有兴趣,在矩阵中体现为评价分数越高,在进行推荐前要进行预测以及最终的推荐。如果用户没有进行商品集合,但是在相同商品的学者用户中对物品集合有着较高的评价,就会按照预测评分对目标用户进行相应推荐。
二、用户信任和项目偏好相融合的协同过滤算法
要充分实现用户信任以及项目偏好之间互相通过的协同过滤算法的最基本思想就是用户进行商品评价数据以及商品属性的充分利用来实现目标用户的商品推荐。项目协同过滤法的评分数据极为稀疏,相似用户的集合难以准确定位[4]。
研究过程主要分为三步:第一步,模糊聚类,对象是用户对商品的评价数集;第二步,进行没有评价项目的初始预测,并且将预测的数据填充于评分数据集中;第三步,通过计算所拥有的数据,算出相似用户集,完成所有项目的评分以及预测评分。
(一)未评分项目的初始预测
把评分数据接近的项目进行一个簇的聚集叫做聚类分析,在一个簇中利用协同过滤法进行没有评分项目的用户预测评分,通过该手段可以降低评分数据稀疏性和计算维度[5]。
第一步,把“模糊c-均值算法”运用到用户对商品评价数据的矩阵R中,并进行划分,R1,R2,R3,……,Rc,其中R1∪R2∪R3……∪Rg=R,Ri∩Rj=φ。
第二步,进行ua和Ruata所属类的查找,如果Ruata∈Ri,,则Ri中的项目可以作为没有评分项目的邻居。
第三步,在类似Ri中利用相关相似性作为度量函数的计算,未评分项目ta与邻居项目tb相似度关系为:
第四步,进行ua对ta的评分P的预测以及评价数据矩阵的填充,P的表达式为:
(二)未评分项目的评分预测
进行预测填充的用户对商品评价数据矩阵通过模糊c-均值聚类法进行兴趣相近的用户分配,利用簇中的相关用户进行商品的预测评价[6]。具体计算步骤如下:
第一步,使用模糊c-均值算法与用户对商品评价数据矩阵A中,将其分为g类:A1,A2,A3,A4,……,Ag,其中A1∪A2∪A3……∪Ag=A,Ai∩Aj=φ。
第二步进行Ua邻居的确定,Ua∈Ai则Ai中的用户即为Ua的邻居。
第三步,计算Ua的与Ua的一致程度,查找Ai中目标用户与其他用户在初始评分数矩阵中项目并集S,其中没有进行评分的项目通过(一)中步骤进行填充,在S中利用相關相似性度量的方法进行相似度计算。
第四步,在Ai中,将没有进行评价的项目实现预测评分。
三、实验以及结果分析
利用Minnesota GroupLens Research的MovieLens数据集进行了一个实验,在MovieLens数据集中对200个用户的800部电影评分数据进行截取,然后进行训练集和测试集的划分,其比例为0.8,并在所测试的对象中选择五个评价作为透明。
采用MEA(Mean Absolute Error)来进行上述几种算法的科学性和准确性测量,最终得到的MAE值的大小表明了对应算法效果的优劣与推荐商品精准性的高低。测试集中项目评分和用户的MAE表示为
该式子中Pxs、Rxs、L分别代表用户x对项目s的评分值预测、x对s的实际评分、测试集合基数。
实验将基于“用户的协同过滤算法”、“用户聚类的协同过滤算法”进行协同参照,计算出每个绝对值偏差MAE,通过MAE比较来进行推荐算法的质量比较。最终的实验结果为:“用户的协同过滤算法”、“用户聚类的协同过滤算法”MAE分别为0.7824、0.8205,而融合了用户以及项目信息的协同过滤法MAE为0.7621。该实验结果表明在三种方法中本文所探究的计算方法所算出的MAE最小,同时也验证了该种算法所进行推荐商品的质量最高。
四、结束语
我们通过研究发现,基于用户的协同算法的计算的复杂度是远高于基于条目的复杂度,所以在不同的使用场景我们需要根据产品和用户需求,以及使用环境来选择合适的算法。
基于用户信任和项目偏好相融合的协同过滤算法拥有自己强大的优势,首先我们可以看出利用用户相似度矩阵给出的推荐一般在多样性上都是会有比较好的结果,但是用户的收藏不一定相似,其实这样反而给用户的收藏补充了新的内容,这样可能也会存在一些没有用的噪声,但是他也能给用户带来不一样的惊喜。 基于用户信任和项目偏好相融合的协同过滤算法也有自己明显的缺点,当我们把他运用到大规模的系统中的时候,系统的计算量会明显剧增,非常大,对硬件要求比较高。同事用户没有新的内容收藏,这个时候就不会有先的内容推荐。如果用户相似度比较小,这时为用户计算相似用户难度就比较大,这也是基于用户信任和项目偏好相融合的协同过滤算法的缺点。
在基于用户信任和项目偏好相融合的协同过滤算法中,充分进行了用户对商品评价数据相关信息的利用,极大程度地降低了数据的稀疏性,提高了项目预算结构的精准性。同时引入了模糊聚类的算法思想,减小了维度以及计算量,提高了预算速率。该方法在用户信任、相似性以及属性多个方面进行了传统算法的改进,相关的实验结果也给予了肯定,但是评分时间的纳入、云散复杂度的减小依然需要进一步探讨和研究。
参考文献:
[1]王艳. 融合信任关系的协同过滤算法改进研究[D]. 北京交通大学, 2017.
[2]杨秀梅, 孙咏, 王丹妮,等. 融合用户信任模型的协同过滤推荐算法[J]. 计算机系统应用, 2016, 25(7):165-170.
[3]何明, 孙望, 肖润,等. 一种融合聚类与用户兴趣偏好的协同过滤推荐算法[J]. 计算机科学, 2017, 44(b11):391-396.
[4]郑洁, 钱育蓉, 杨兴耀,等. 基于信任和项目偏好的协调过滤算法[J]. 计算机应用, 2016, 36(10):2784-2788.
[5]朱爱云, 任晓军. 基于社会信任和隐式项目的协同过滤推荐算法的研究[J]. 现代计算机(专业版), 2018(5).
[6]王明佳, 韩景倜. 基于用户对项目属性偏好的协同过滤算法[J]. 计算机工程与应用, 2017, 53(6):106-110.
作者简介:杨俊芳,对外经济贸易大学高级研修班。