推荐系统——基于近邻的协同过滤

1. 基于近邻的协同过滤算法的形式

(1)预测用户-物品组合的评分

预测用户 u u u对于物品 j j j的评分 r u j r_{uj} ruj。因此,称用户和物品构成的矩阵为评分矩阵,矩阵中已知的数据成为训练数据,未知的部分称为测试数据。

(2)确定前k件物品或前k个用户

传统推荐系统中的“top-k”问题,即找到前k件物品而非前k个用户的过程。

(3)Pearson相关系数的定义

Pearson相关系数可以用来衡量用户 u u u和用户 v v v之间评分向量的相似程度 S i m ( u , v ) Sim(u,v) Simu,v I u ∩ I v I_{u}\cap I_{v} IuIv代表了用户 u u u和用户 v v v均做出评分的物品序号集合,仅在这个集合中的物品上计算相关系数。首先,对于每个用户 u u u的评分计算每位用户的平均评分 μ u \mu_{u} μu:

μ u = ∑ k ∈ I u r u k ∣ I u ∣ \mu_{u}=\frac{\sum_{k\in I_u}r_{uk}}{|I_u|} μu=IukIuruk, ∀ u ∈ { 1 , . . . , m } {\forall}u\in\{1,...,m\} u{1,...,m}

用户 u u u和用户 v v v之间的Pearson相关系数定义如下:

S i m ( u , v ) = P e a r s o n ( u , v ) = ∑ k ∈ I u ∩ I v ( r u k − μ v ) ( r v k − μ v ) ∑ k ∈ I u ∩ I v ( r u k − μ v ) 2 ∑ k ∈ I u ∩ I v ( r v k − μ v ) 2 Sim(u,v)=Pearson(u,v)=\frac{\sum_{k\in I_u\cap I_v}(r_{uk}-\mu_v)(r_{vk}-\mu_v)}{\sqrt{\sum_{k\in I_u\cap I_v}(r_{uk}-\mu_v)^2}\sqrt{\sum_{k\in I_u\cap I_v}(r_{vk}-\mu_v)^2}} Sim(u,v)=Pearson(u,v)=kIuIv(rukμv)2 kIuIv(rvkμv)2 kIuIv(rukμv)(rvkμv)

定义基于近邻的预测函数表示如下:
r ^ u j = μ u + ∑ v ∈ P u ( j ) S i m ( u , v ) ( r v j − μ v ) ∑ v ∈ P u ( j ) ∣ S i m ( u , v ) ∣ \hat{r}_{uj}=\mu_u+\frac{\sum_{v\in P_u(j)}Sim(u,v)(r_{vj}-\mu_v)}{\sum_{v}\in P_u(j)|Sim(u,v)|} r^uj=μu+vPu(j)Sim(u,v)vPu(j)Sim(u,v)(rvjμv)

2. 基于用户的协同过滤

该类型中,把与目标用户A相似的评分用来为A进行推荐。这些“同组群体”对每件物品的评分的加权平均值将用来计算A的预计评分。

下表显示了5个用户对6件物品的评分。

123456平均评分Cosine(i,3)Pearson(i,3)
17674545.50.9560.894
2674344.80.9810.939
3331121.01.0
41223342.50.789-1.0
51123320.645-0.817

以用户3对物品1的预测评分为例,解释一下计算过程:

C o s i n e ( 1 , 3 ) = 6 × 3 + 7 × 3 + 4 × 1 + 5 × 1 6 2 + 7 2 + 4 2 + 5 2 3 2 + 3 2 + 1 2 + 1 2 = 0.956 Cosine(1,3)=\frac{6\times3+7\times3+4\times1+5\times1}{\sqrt{6^2+7^2+4^2+5^2}\sqrt{3^2+3^2+1^2+1^2}}=0.956 Cosine(1,3)=62+72+42+52 32+32+12+12 6×3+7×3+4×1+5×1=0.956

P e a r s o n ( 1 , 3 ) = ( 6 − 5.5 ) × ( 3 − 2 ) + ( 7 − 5.5 ) × ( 3 − 2 ) + ( 4 − 5.5 ) × ( 1 − 2 ) + ( 5 − 5.5 ) × ( 1 − 2 ) s q r t ( 6 − 5.5 ) 2 + ( 7 − 5.5 ) 2 + ( 4 − 5.5 ) 2 + ( 5 − 5.5 ) 2 ( 3 − 2 ) 2 + ( 3 − 2 ) 2 + ( 1 − 2 ) 2 + ( 1 − 2 ) 2 = 0.894 Pearson(1,3)=\frac{(6-5.5)\times(3-2)+(7-5.5)\times(3-2)+(4-5.5)\times(1-2)+(5-5.5)\times(1-2)}{sqrt{(6-5.5)^2+(7-5.5)^2+(4-5.5)^2+(5-5.5)^2}\sqrt{(3-2)^2+(3-2)^2+(1-2)^2+(1-2)^2}}=0.894 Pearson(1,3)=sqrt(65.5)2+(75.5)2+(45.5)2+(55.5)2(32)2+(32)2+(12)2+(12)2 (65.5)×(32)+(75.5)×(32)+(45.5)×(12)+(55.5)×(12)=0.894

因此,均值中心化的预测公式为:

r ^ 31 = 2 + ( 7 − 5.5 ) × 0.894 + ( 6 − 4.8 ) × 0.939 0.894 + 0.939 ≈ 3.35 \hat{r}_{31}=2+\frac{(7-5.5)\times0.894+(6-4.8)\times0.939}{0.894+0.939}\approx3.35 r^31=2+0.894+0.939(75.5)×0.894+(64.8)×0.9393.35

同理, r ^ 36 ≈ 0.86 \hat{r}_{36}\approx0.86 r^360.86.。

于是,均值中心化的预测结果仍然认为物品1应该优先于物品6被推荐给用户3.然而,一个与之前的推荐至关重要的不同是,在这种情况下,物品6的预测评分只有0.86,低于用户3评价过的任何物品。这与之前物品6的预测评分高于所有已知评分的情况有天壤之别。直接观察上表,显然,用户3理应给予物品6很低的评分,因此,与他相近的用户(用户1和2)对物品6的评分都比他们对其他物品的评分低。由此可见,均值中心化能够就已知的评分提供更好的相对预测。

3. 基于物品的协同过滤

为了推荐目标物品B,首先确定一个物品集合S,使S中的物品与B相似度最高。然后,为了预测任意一个用户A对B的评分,需要确定A对集合S中物品的评分。这些评分的加权值将用来计算用户A对物品B的预计评分。

在计算列之间的相似度之前,每行的评分被以均值为零点中心化。如下表所示:

123456
11.50.51.5-1.5-0.5-1.5
21.22.2-0.8-1.8-0.8
311-1-1
4-1.5-0.5-0.50.50.51.5
5-1-1011
Cosine(1,j)10.7350.912-0.848-0.813-0.990
Cosine(6,j)-0.990-0.622-0.9120.8290.7301

中心化评分: s u j = r u j − μ u s_{uj}=r_{uj}-\mu_u suj=rujμu, ∀ u ∈ { 1 , . . . , m } {\forall}u\in\{1,...,m\} u{1,...,m}.
U i U_i Ui表示已对物品i做出评价的用户集合。因此,如果第一、第三、第四位用户对物品i的评价已知,有 U i = { 1 , 3 , 4 } U_i=\{1,3,4\} Ui={1,3,4}.

于是,物品i和物品j的调整余弦相似度定义如下:

A d j u s t e d C o s i n e ( i , j ) = ∑ u ∈ U i ∩ U j s u i ⋅ s u j ∑ u ∈ U i ∩ U j s u i 2 ∑ u ∈ U i ∩ U j s u j 2 AdjustedCosine(i,j)=\frac{\sum_{u\in U_i\cap U_j}s_{ui}\cdot s_{uj}}{\sqrt{\sum_{u\in U_i\cap U_j}s_{ui}^2}\sqrt{\sum_{u\in U_i\cap U_j}s_{uj}^2}} AdjustedCosine(i,j)=uUiUjsui2 uUiUjsuj2 uUiUjsuisuj.

因为,调整过后的余弦相似度往往可以产生更好的效果,所以这里不需要再使用Pearson相似性度量。

假设我们需要确定用户 u u u对物品 t t t的评分。第一步是通过之前提到的调整余弦相似度确定与物品t最相似的k件物品,用 Q t ( u ) Q_t(u) Qt(u)表示用户 u u u已评价且与 t t t最相似的 k k k件物品。这些评分的加权平均值即是预测结果。物品 j j j与目标物品 t t t的调整余弦相似度即为权重。因此,用户 u u u对目标物品 t t t的预测评分表示如下:

r ^ u t = ∑ j ∈ Q t ( u ) A d j u s t e d C o s i n e ( j , t ) r u j ∑ j ∈ Q t ( u ) ∣ A d j u s t e d C o s i n e ( j , t ) ∣ \hat{r}_{ut}=\frac{\sum_{j\in Q_t(u)}AdjustedCosine(j,t)r_{uj}}{\sum_{j\in Q_t(u)}|AdjustedCosine(j,t)|} r^ut=jQt(u)AdjustedCosine(j,t)jQt(u)AdjustedCosine(j,t)ruj

基本思想是在最终预测阶段中利用用户自己对相似物品的评价。

显然,物品2和物品3与物品1最为相似,物品4和物品5与物品6最相似。因此,用户3对物品2和物品3的原始评分的加权平均值被用来预测他对物品1的评分 r ^ 31 \hat{r}_{31} r^31;同理,他对物品4和物品5的原始评分的加权平均值被用来预测他对物品6的评分 r ^ 36 \hat{r}_{36} r^36

r ^ 31 = 3 × 0.735 + 3 × 0.912 0.735 + 0.912 \hat{r}_{31}=\frac{3\times 0.735+3\times 0.912}{0.735+0.912} r^31=0.735+0.9123×0.735+3×0.912

r ^ 36 = 1 × 0.829 + 1 × 0.730 0.829 + 0.730 \hat{r}_{36}=\frac{1\times0.829+1\times0.730}{0.829+0.730} r^36=0.829+0.7301×0.829+1×0.730

可见,基于物品的方法也表明,用户3可能更倾向于选择物品1而不是物品6。然而由于此次预测利用用户3自己的评分,所以预测的结果与该用户对其他物品的评分有较高的一致性。基于物品的方法的主要优势在于它具有更高的预测准确度。在某些情况下,基于物品的方法和基于用户的方法,虽然它们的推荐列表大致会相同,但可能会产生不同的前k个推荐物品。

4. 基于近邻方法的比较和优劣势

(1)比较

方法解释
基于物品的方法常常产生更相关的推荐结果,因为它使用了自己的评分来做推荐。该方法通过识别与目标相似的物品,再利用用户对这些相似物品的评分,从而判断目标物品的评分
基于用户的方法在基于用户的方法中,用来推测评分的其他用户的兴趣和目标用户的兴趣可能有相同点,但并不完全相同。因此,基于物品的方法可能会更好。

(2)优劣势

基于近邻的方法简单直观,可解释性强,并且容易实现和调试。但是,其在离线阶段的大规模数据上变的无法实现,以及评分矩阵过分稀疏导致的覆盖度不足。

参考文献:
Charu C. Aggarwal 著, 推荐系统原理与实践

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值