协同过滤推荐算法_基于物品的协同过滤推荐算法2001

164ca9e88e88fb7c8607dc3f37afde82.png

Item-Based Collaborative Filtering Recommendation Algorithms[1]

摘要

推荐系统对于个性化推荐很有必要,基于用户的协同过滤很成功。然而随着信息和用户数量的爆炸式增长,推荐系统现在面临着一些挑战:生成高质量的推荐,对百万量级的用户和物品实时响应,在数据稀疏的情况下实现高覆盖。因此,本文研究了不同的基于物品的协同过滤算法,并通过实验对这些算法进行了分析比较。

note: achieving high coverage in the face of data sparsity. 高覆盖是什么意思?

1. 基于物品的协同过滤算法

1.1物品相似性计算

下面是3种计算物品相似性的方法,其中,

是同时对待评价的两个物品打过分的用户集合
是物品集合,
是用户对物品的打分矩阵,
分别是第i个和第j个物品所在的列,
是第u个用户对第i个用户的打分,
是第i个物品的平均得分,
是第u个用户的平均打分值。
需要注意的是在度量两两物品的相似度时,需要先将同时购买过这两个物品的用户孤立出来(图1),如下是原文。
The basic idea in similarity computation between two items i and j is to first isolate the users who have rated both of these items and then to apply a similarity computation technique to determine the similarity

2dbb60aea51ff2cc44670afef4bff8a3.png
图1. 共评物品的分离与相似性计算

a. 余弦相似性

d8cf54c6753d3829a6bdac8b6d730113.png

b. 皮尔逊相关系数

e29e4f9f380a6399960d02fd44a31d5b.png

c. 修正的余弦相似性(我觉得这块其实是修正的皮尔逊相关系数)

78a0ded42d7fe4f2b471b69c3233839e.png

1.2 预测计算

给出两种计算用户u对物品i的打分预测值的方法。

a. 加权求和

2aa16c27d4a8a9344ba657053e0f0ce3.png

b. 回归

在用余弦相似度或者相关系数计算相似度时,主要是计算两个向量的夹角,两个很相似的向量有可能长度相差很大,这样会导致预测的不准确,因此可以使用回归的方法对评分进行调整。计算还是套用加权求和的公式,但是

变成
,其中
通过对如下的线性模型的参数进行学习来确定,
是同时对i和N打过分的用户集合。

2c67d98910d19ee4724752306eeb1625.png
图2. 一个预测问题

使用图2举例说明,利用加权求和的方法,求出来

,如果用回归的方法,可以计算出来
,那么
,符合直觉多了。

从性能上考虑,一般会选出i的K近邻来做计算,假设一共有N个物品,离线计算出物品间的相似度,每个物品只保留前K个和它最相似的物品,做成哈希索引,大小为N*K。在预测用户u对物品i的评分时,会取出与i最相似的K个物品,如果用户u对其中某个物品打过分,则纳入加权求和的求和项中。

2. 实验评估

数据是从MovieLens上获得的,MovieLens始创于1997年,每天有数百个用户对电影评分或获得推荐。目前MovieLens有超过43000个用户对3500+的电影的评分数据。本文随机抽取10万份评分数据(仅仅从打分超过20个电影的用户中抽取),100x%作为训练集,100(1-x)%作为测试集,x作为一个超参数后面实验会研究。用户-物品矩阵R有943行(用户),1682列(电影)。稀疏程度为

.

本文采用MAE作为评价方式:

其中,pi是真实值,qi是预测值。作者在上一个研究[2]中,同时采用了MAE和ROC的方法,发现对预测质量的评估效果差不多。

作者在做实验的时候,首先将训练集划分为10分,做10-fold交叉验证,通过最小化平均MAE,选出最优的超参数。

基于用户的协同过滤基线算法采用pearson度量相似度(已知最好),并且在不计性能的前提下,使其达到最好的预测质量。

作者首先分析了不同的相似性度量方法对MAE的影响,评分预测采用加权求和的方式,结果如图3所示。可以看出,对用户维度归一化可以有效减少MAE,因为本文后面都采用修正余弦相似度作为相似性度量方式。

2086ed3638dffb01c83c1ceccb9ed14d.png
图3. 相似性度量方法对MAE的影响

图4是训练集占比x对性能的影响,红色是用加权和方法预测评分的MAE,黄色是用回归方法预测评分的MAE。在x<0.8时,回归优于加权和,但是x=0.9时,性能弱于加权和方法。本文选x=0.8。图5是K近邻中的系数K对MAE的影响,本文选择K=30。

5247328576bb3d38ce179c40f69359ef.png
图4. 训练集占比x对性能的影响

fb1f555dac5c3ac035b0fdf4bd5dee72.png
图5. K近邻中的K的选择对性能影响

14d3737be940aba31297a0b75c08df39.png
图6. 左图是x=0.8时,4种算法随K变化的MAE,右图是K=30时,4种算法随x变化的MAE

图6中黄色和红色是基于物品的协同过滤,紫色是基于用户的协同过滤,nonpers是一种非个性化的推荐算法。可以看出,加权和算法是最优算法。x很小时,回归方法最好,但是随着x的增大,性能下降,作者推测可能是过拟合,我觉得可能是程序有问题?

参考

  1. ^Sarwar, B.; Karypis, G.; Konstan, J.; Reidl, J. Item-Based Collaborative Filtering Recommendation Algorithms. In Proceedings of the Tenth International Conference on the World Wide Web (WWW10) (Hong Kong, 2001). ACM Press, New York, NY, 285-295.
  2. ^Sarwar, B. M., Konstan, J. A., Borchers, A., Herlocker, J., Miller, B., and Riedl, J. (1998). Using Filtering Agents to Improve Prediction Quality in the GroupLens Research Collaborative Filtering System. In Proceedings of CSCW '98, Seattle, WA.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值