1700498930
1700498931
1700498932
图3-4 某电商网站用户对某商品的评分结果
1700498933
1700498934
但是,显性数据存在一定的问题,譬如用户很少参与评论,从而造成显性打分数据较为稀疏;用户可能存在欺诈嫌疑或者仅给定了部分信息;用户一旦评分,就不会去更新用户评分分值等。
1700498935
1700498936
而隐性数据主要是指用户点击行为、购买行为和搜索行为等,这些数据隐性地揭示了用户对商品的喜好,如图3-5所示。
1700498937
1700498938
1700498939
1700498940
1700498941
图3-5 某用户最近在某电商网站的浏览商品记录(左侧的3本书)
1700498942
1700498943
隐性数据也存在一定的问题,譬如如何识别用户是为自己购买商品,还是作为礼物赠送给朋友等。
1700498944
1700498945
1.基于用户的协同过滤
1700498946
1700498947
基于用户(User-Based)的协同过滤算法首先要根据用户历史行为信息,寻找与新用户相似的其他用户;同时,根据这些相似用户对其他项的评价信息预测当前新用户可能喜欢的项。给定用户评分数据矩阵R,基于用户的协同过滤算法需要定义相似度函数s
:U×U→R,以计算用户之间的相似度,然后根据评分数据和相似矩阵计算推荐结果。
1700498948
1700498949
在协同过滤中,一个重要的环节就是如何选择合适的相似度计算方法,常用的两种相似度计算方法包括皮尔逊相关系数和余弦相似度等。皮尔逊相关系数的计算公式如下所示:
1700498950
1700498951
1700498952
1700498953
1700498954
1700498955
1700498956
其中,i表示项,例如商品;Iu表示用户u评价的项集;Iv表示用户v评价的项集;ru,i表示用户u对项i的评分;rv,i表示用户v对项i的评分;表示用户u的平均评分;表示用户v的平均评分。
1700498957
1700498958
另外,余弦相似度的计算公式如下所示:
1700498959
1700498960
1700498961
1700498962
1700498963
另一个重要的环节就是计算用户u对未评分商品的预测分值。首先根据上一步中的相似度计算,寻找用户u的邻居集N∈U,其中N表示邻居集,U表示用户集。然后,结合用户评分数据集,预测用户u对项i的评分,计算公式如下所示:
1700498964
1700498965
1700498966
1700498967
1700498968
其中,s(u,u’)表示用户u和用户u’的相似度。
1700498969
1700498970
假设有如下电子商务评分数据集,预测用户C对商品4的评分,见表3-6。
1700498971
1700498972
1700498973
1700498974
1700498975
表中?表示评分未知。根据基于用户的协同过滤算法步骤,计算用户C对商品4的评分,其步骤如下所示。
1700498976
1700498977
(1)寻找用户C的邻居
1700498978
1700498979
从数据集中可以发现,只有用户A和用户D对商品4评过分,因此候选邻居只有2个,分别为用户A和用户D。用户A的平均评分为4,用户C的平均评分为3.667,用户D的平均评分为3。根据皮尔逊相关系数公式来看,用户C和用户A的相似度为:
[
上一页 ]
[ :1.70049893e+09 ]
[
下一页 ]