您的位置:首页 > 其它

协同过滤推荐(CF)

2014-01-14 23:03 211 查看
一,协同过滤推荐

如果用户A和用户B的购买经历非常重叠,而且用户A最近买了一本用户B还不知道的书,那么这时就像B推荐这本书,用户是在隐式地与其他人相互协作,这种技术称谓协同过滤(CF, Collaborative Filtering)。

协同方法北京下的常见问题如下:

1,如何发现与我们要推荐的用户有着相似偏好的用户?

2,如何衡量相似度?

3,如何处理还没有购买经历的新用户?

4,如果只有很少的评分该怎么办?

5,除了利用相似的用户之外,还有哪些技术可以用来预测某个用户是否喜欢其他物品?

纯粹的协同过滤不会利用或要求任何有相关物品本身的知识。用书店的例子来说,推荐系统不需要知道书的内容,体裁或者作者。这种策略显而易见的优势是系统不需要获取并维护这些数据。

纯粹的协同方法的输入数据只有给定的用户-物品评分矩阵,输出数据一般有以下集中类型:

1,表示当前用户对物品喜欢或不喜欢程度的预测数值

2,n项推荐物品的列表。(不会包含用户已经购买的物品)

1,基于用户的最邻近推荐

1.1主要思想:首先,给定一个评分数据集和当前用户的ID作为输入,找出与当前用户有相似偏好的其他用户,这些用户称为对等用户或最近邻

然后,对当前用户没有见过的每个产品p,利用近邻对p的评分计算预测值。这种方法的假设是:用户的偏好不会改变

相似度计算:

U={u1,...,u2} P={p1,...,p2}

用户a和用户b的相似度 sim(a,b)

用户a对物品p的预测值 pred(a,p)

Pearson系数(-1 ~ +1,+1代表强正相关),公式:(待编辑)

1.2更好的相似度和赋权体系

单纯使用Pearson方法来发现近邻以及近邻的评分赋权不是最好的选择

Breese et al.(1998)提出对物品的评分进行变换,降低对广受欢迎物品有同样看法的重要性 --- iuf 反文档频率

Herlocker et al(1999)通过方差权重因子解决了同样的问题,该方法提高了具有争议物品的作用

在遇到当前用户只为非常少的物品评分时会出错,因此Herlocker et al(1999,2002)提出使用重要性赋权

1.3选择近邻

降低近邻集合规模的通常用法是为用户相似度定义一个具体的最小阈值,或者将规模大小限制为一个固定值。

Herlocker et al.(2002)中对不同赋权,相似度方案以及不同近邻规模做了详细分析

2,基于物品的最近邻推荐

尽管基于用户的协同过滤方法已经成功运用在不同领域,但在一些有着数以百万计用户和物品的大型电子商务网站上还是存在很大挑战,尤其是在扫描大量

潜在近邻时,这种方法很难做到实时计算预测值。因此,大型商务网站采用:基于物品的推荐,这种推荐非常适合做线下预处理

主要思想:利用物品间的相似度,而不是用户相似度来计算预测值

2.1 余弦相似度

物品的评分看为一个向量

计算公式:

sim(a,b) pred(u,p)

2.2 基于物品过滤的数据预处理

为了在不牺牲推荐精准度的情况下,大规模电子上午网站应用基于物品的推荐算法,其想法是实现构建一个物品相似度矩阵,描述物品两两之间的相似度

在运行时,通过确定与p最相似的物品,并计算u对这些临近物品评分的加权总和来得到用户u对物品p的预测评分。近邻数量受限于当前用户评过分的物品个数

由于这样的物品数量比较少,因此计算预测值可以在线上的短时间内完成

除了这些所谓的基于模型的方法中采用不同的预处理之外,还可以利用评分矩阵中的某一部分以降低计算复杂度,一种基本技术是二次采样

3,评分

3.1 显示评分和隐士评分

3.2 数据稀疏和冷启动问题

前面没有用到用户-物品 组合。在实际应用中,由于用户一般只会评价少部分物品,评价矩阵一般都非常稀疏

Huang et al.(2004) 提出的基于图的方法,解决数据稀疏问题

Breese et al.(1998)缺省投票,另一种解决数据稀疏问题的办法

冷启动问题是稀疏问题的一个特例,此问题包括:(1) 如何给新用户推荐 (2) 如何处理从未被评分或购买过的物品

这两类问题都可以通过混合方法来解决,即利用额外的外部信息(Adomavicius and Tuzhilin 2005)

对于新用户问题,一种方法是在推荐之前要求用户给出最低限度数量的评分(Rashid et al.2002)

Goldberg et al.2001 提出的 eigentaste算法要求用户提供 标准集合 也是类似的策略

4,更多基于模型和预处理的方法

协同推荐技术一般分为两类:基于记忆的和基于模型的。基于记忆的,原始评分数据保存在内存中,直接生成推荐结果;而基于模型的方法会首先离线处理原始数据,

运行时,只需预计算或“学习"就能预测。基于记忆的无法解决数以百万计的用户和物品带来的扩展性问题

4.1 矩阵因子分解

4.2 关联规则挖掘

4.3 基于概率分析的推荐方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: