协同过滤召回算法的几个优化点(一)

协同过滤召回算法的几个优化点(一)

协同过滤算法是电商推荐场景中非常常见、发展历史也比较久的一类启发式算法。
通常情况下,电商的用户数量远比商品数量大、稳定性上来说也是商品相对稳定。
所以电商场景下通常使用Item Based CF算法,同时,采用余弦相似度的较多。

以此为例,记录一下项目中实际用到的几个优化点,可视情况组合使用。

原始评分预测公式1 r ^ u i = ∑ j ∈ S ( j , k ) ∩ N ( u ) w i j r u j \widehat{r}_{ui}={\textstyle\sum_{j\in S(j,k)\cap N(u)}}w_{ij}r_{uj} r ui=jS(j,k)N(u)wijruj

其中:

  1. r ^ u i \widehat{r}_{ui} r ui:用户u对物品i的预测评分
  2. N(u):用户喜欢的(有过评价的)物品集合
  3. S(j,k):和物品j最相似的K个物品集合
  4. S ( j , k ) ∩ N ( u ) S(j,k)\cap N(u) S(j,k)N(u):和物品j最相似的K个物品中,用户评价过的物品集合
  5. w i j w_{ij} wij:物品i和j的相似度
  6. r u j r_{uj} ruj:用户u对物品j的兴趣(评分)

物品相似度 w i j = ∣ N ( i ) ∩ N ( j ) ∣ ∣ N ( i ) ∣ w_{ij}=\frac{\left|N(i)\cap N(j)\right|}{\left|N(i)\right|} wij=N(i)N(i)N(j)
其中N(i)是喜欢物品i的用户数,分子是同时喜欢物品i和j的用户数。

优化点1:热门物品惩罚

如果物品j过于热门,有很多用户进行了评分,那么它会参与到许多物品的相似度计算中,而且所计算出的 w i j w_{ij} wij会很大,造成任何一个物品都和热门物品j有很大的相似度,这对于推荐的个性化和多样性是不利的。

一个改进的方法是将 w i j w_{ij} wij的分母由 ∣ N ( i ) ∣ \left|N(i)\right| N(i)改为 ∣ N ( i ) ∣ ⋅ ∣ N ( j ) ∣ \sqrt{\left|N(i)\right|\cdot\left|N(j)\right|} N(i)N(j) ,从而降低物品j的权重。

优化点2:显式使用评分值

原始的相似度计算公式中,分子 ∣ N ( i ) ∩ N ( j ) ∣ \mid N(i)\cap N(j)\mid N(i)N(j)是同时喜欢物品i和j的用户数、分母 ∣ N ( i ) ∣ \mid N(i)\mid N(i)是喜欢物品i的用户数,都没有用到评分值࿱

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值