论文笔记《Item-Based Collaborative Filtering Recommendation Algorithms》

  • 时间:
  • 来源:互联网
  • 文章标签:

一、基本信息

论文题目:《Item-Based Collaborative Filtering Recommendation Algorithms》

发表期刊及年份:WWW 2001

二、摘要

近几年由于可获得信息的大量增长和访问网站的用户数大量增加,产生了一些重要的挑战:产生高质量的推荐、每秒为大量用户和物品实现实时推荐和在面临数据稀疏性的情况下如何实现快速收敛。在传统的协同过滤网络中,由于用户的增长而变得效果很差。为了解决这些问题,作者提出了基于物品的协同过滤算法。基于物品的协同过滤算法首先分析用户-物品矩阵去挖掘不同物品直接的关系,然后利用这些关系来为用户进行推荐。

在这篇论文中,作者分析了多种基于物品的协同过滤算法,研究了不同的计算物品相似性的方法(例如:物品-物品相关性、cosine相关性)和从这些相似物品中找出推荐物品的方法(例如:权重加和与回归)。最后,我们利用实验评估了我们的结果,并且将它与基础的k-nn算法进行比较。我们的实验表明,基于物品的算法较基于用户的算法性能有较大的提升,同时推荐的质量也比基于用户的算法强。

三、简介

协同过滤网络在实践和研究中都有十分重要的作用,但是还是有两个要克服的问题。

第一个问题就是要改善协同过滤网络的可扩展性。

第二个要改善的问题是改善推荐质量。用户肯定会对哪些推荐不准确的推荐系统产生反感。

在这篇论文中,作者提出了基于物品的协同过滤算法来进行解决这些问题。传统基于用户的协同过滤网络有一个瓶颈:需要在大量的用户中寻找潜在相关用户,我们使用基于物品的协同过滤网络绕过了这个瓶颈,先去寻找相关的物品集合,因为物品之间的关系是相对静态的。

1.相关工作

Tapestry是最早的一个基于协同过滤网络的推荐算法,它的推荐依赖于人们之间密切的关系(例如在一个办公室中,或者一个公司中),但是在一个大型的系统中,我们不能依靠每个人都有联系。后来,有人进行改进,研究出了基于打分的协同过滤网络。后来又有贝叶斯网络、聚类、Horting等方法。

贝叶斯网络通过在训练集上使用决策树构建一个模型,这个模型可以通过几小时或者几天来构建一个很小的模型,但是它的速度会特别快。贝叶斯网络适用于用户偏好变化较慢的情况,不适用于速度更新快的网络。

聚类方法通过证明某一个组的用户有相同的爱好,然后当进行预测时,把一个组的意见进行平均即可。聚类一旦完成,速度可能很快,但是聚类的时候可能处于边缘的一些用户可能出现不准确的情况。

Horting是一个基于图的方法。

Schafer等人曾经提出一个推荐系统,虽然取得了较大的成功,但是在广泛应用方面还是有很大的限制,比如说:数据集的稀疏性、高维性等等。

我们的工作可以将这些问题解决。

2.贡献

这篇论文主要有三个主要的贡献:

1.分析了基于物品的预测方法并且证明了不同的方法去实现这些子任务。

2.构建了一个计算物品相似度的预计算模型提高在线可扩展性。

3.从实验上比较了基于物品的推荐算法和经典的基于用户的算法。

四、协同过滤推荐网络

推荐系统的主要作用是产生一个预测分数或者是一系列Top-N物品集合。基于物品的协同过滤网络的基本思路是推荐物品或者基于其它相似人员的预测。

1.协同过滤网络概述

用户集合:U={u1,u2,…,um},物品集合:I={i1,i2,…,in},用户ui感兴趣的集合为Iui

关于用户感兴趣的集合可以通过很多方式得到,比如用户的评价,用户的购买记录,分析时间日志,或者挖掘网络超链接等。

设定一个特定用户ua∈U,模型的任务就是以下面的两种形式来发现物品的相似性:

  • 预测

    预测的值是一个值Pa,j,用来表示用户对ij∉Iua这个物品的喜爱性。预测的值的范围与Iua的范围应该是一致的(比如说:都是1-5)。

  • 推荐物品

    是一个集合Ir,Ir∈I,是用户最喜欢的物品。注意,推荐物品集合是不在用户已购买的集合之内,也就是说Ir∩Iua=∅,这也就是我们所说的Top-N推荐。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TB0qYyOx-1591712029818)(img/QQ截图20200608141057.png)]

上图显示了协同过滤网络处理过程的的概要图。CF算法将整个mxn矩阵视为打分矩阵,A。每一个元素ai,j代表第i个用户再第j个物品上的打分,他们都是同一个数字范围,0代表还没有打分。协同过滤算法一般可分为两类基于Memory(user-based)和基于Model(item-based)的算法。

基于Memory的协同过滤算法:这种方法利用整个的用户-物品数据进行预测。这些系统利用统计方法寻找与目标用户具有相似历史记录的用户。一旦这个群组的用户生成了,这些系统就会采用各种各样的方法来进行预测或者进行top-N物品推荐。

基于Model的协同过滤算法:这种方法首先对用户评价进行模型构建。这种方法采用一个概率的方法并且将协同过滤处理视为计算用户预测的一个期望值,将他的评价利用到其它物品上。模型的构造过程通过不同的算法来实现,比如贝叶斯网络,聚类和基于规则的方法。贝叶斯构造一个概率模型,聚类将协同过滤视为一个分类过程,将相似的用户分为同一个类,估算用户在一个类内的概率,然后利用条件概率来计算可能的评价。基于规则的方法是利用相关规则对一起购买的物品进行研究,然后根据物品的相关性强弱来生成物品推荐。

2.基于用户的协同过滤网络存在的问题

之前基于用户的协同过滤网络是非常成功的,但是他们的广泛应用缺受到了限制,主要原因如下:

  • 稀疏性

    实际上,许多推荐系统是用来评价很大的物品集。即使用户买2000种书,那也不到总数的1%。因此,推荐系统不能为用户做出任何的推荐,最终导致推荐的准确率很低。

  • 可扩展性

    紧邻算法伴随用户和物品的增长需要的计算力会快速增长。伴随数万用户和物品的增长,一个典型的基于web的推荐系统运行已存在的算法会遇到严重的扩展性问题。

此处省略一万字。主要是作者研究其它人对这两个问题的改进。

五、基于物品的协同过滤算法

基于物品的协同过滤网络研究目标用户评价过得物品并且计算这些物品与目标物品的相似性,然后选择出k个最相近的物品。一旦最相似的物品找到了,然后就可以通过平均目标用户在这些相似物品上的权重来计算prediction了。我们称之为相似性计算和prediction生成。

1.物品相似性计算

基于物品的协同过滤算法最重要的一步就是计算物品的相似性然后选出最相近的物品。两个物品i和j之间的相似度计算的基本思想是隔离对这两个项目都进行过评分的用户,然后应用相似度计算技术确定相似度si,j。图2指出了具体的计算方式。行代表用户,列代表物品。

此处的isolate这个单词按我的理解是挑选出这些进行计算的意思,一开始的时候以为把这些筛选掉,那么下面的图右方的解释相矛盾了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dL0QFR65-1591712029844)(img\image-20200608154055521.png)]

图右边说明的意思:

物品与物品的相似性是通过研究同时打分的物品来的。在计算Item i和j的相似性si,j的时候,每一对都是来自不同的用户,在这个例子中他们是来自1,u还有m-1。

有很多方式来计算物品之间的相关性,下面叙述三种。

1.cosine相似性

在这个例子中,两个物品是在m维用户空间中的两个向量(结合图2就知道为什么是两个m维向量了)。图2两个向量中i与j的相似性sim(i,j)的计算方式如下:
sim(i,j)=cos(i,j)=iji2j2 \operatorname{sim}(i, j)=\cos (\vec{i}, \vec{j})=\frac{\vec{i} \cdot \vec{j}}{\|\vec{i}\|_{2} *\|\vec{j}\|_{2}}
其中“·”代表两个向量点乘的意思。

2.基于correlation相似性(皮尔逊相关性)

在计算之前我们必须选出(isolate)两个物品i和j都评价过的用户,然后利用这些用户进行下面的计算:
sim(i,j)=uU(Ru,iRˉi)(Ru,jRˉj)uU(Ru,iRˉi)2uU(Ru,jRˉj)2 \operatorname{sim}(i, j)=\frac{\sum_{u \in U}\left(R_{u, i}-\bar{R}_{i}\right)\left(R_{u, j}-\bar{R}_{j}\right)}{\sqrt{\sum_{u \in U}\left(R_{u, i}-\bar{R}_{i}\right)^{2}} \sqrt{\sum_{u \in U}\left(R_{u, j}-\bar{R}_{j}\right)^{2}}}
Ru,i代表的是用户u对物品i的评分,Riˉ\bar{R_i}代表物品i的平均得分。

3.改进的cosine相似性

基于用户的协同过滤网络和基于物品的协同过滤网络在计算相似性时一个主要的不同就是基于用户的协同过滤网络在矩阵中是按行来计算的,每一对代表不同用户的评价。使用cosine来进行相似性计算有很大的不足,不同用户的评价范围是不同的。经过改善的cosine相似性通过减去响应用户的平均值抵消掉了这部分的误差。相似性计算如下:
sim(i,j)=uU(Ru,iRˉu)(Ru,jRˉu)uU(Ru,iRˉu)2uU(Ru,jRˉu)2 \operatorname{sim}(i, j)=\frac{\sum_{u \in U}\left(R_{u, i}-\bar{R}_{u}\right)\left(R_{u, j}-\bar{R}_{u}\right)}{\sqrt{\sum_{u \in U}\left(R_{u, i}-\bar{R}_{u}\right)^{2}} \sqrt{\sum_{u \in U}\left(R_{u, j}-\bar{R}_{u}\right)^{2}}}
在这个公式中,Ruˉ\bar{R_u}是第u个用户打分的平均值。

2.prediction计算

一旦我们基于设定的相似性标准挑选出了最相似的物品,下一步就是研究目标用户的打分然后获得prediction。作者提出了两种方法。

1.权重加和

2.回归

3.性能含义

六、实验评估

1.数据集

2.评价标准

1.实验过程

3.实验结果

4.模型大小的敏感度

1.Weighted Sum

Pu,i=all similar items, N(si,NRu,N)all similar items ,N(si,N) P_{u, i}=\frac{\sum_{\text {all similar items, } \mathrm{N}}\left(s_{i, N} * R_{u, N}\right)}{\sum_{\text {all similar items }, \mathrm{N}}\left(\left|s_{i, N}\right|\right)}

2.regression

1.详细的过程

2.总结与展望

本文链接http://www.taodudu.cc/news/show-83117.html