清澈如初|个性化推荐算法(推荐系统)概要( 九 )


Item Collaborative Filtering(Item CF) 背景

  • 信息过载 , 用户需求不明确
  • 强依赖于用户行为
工业界主流落地场景
  • 信息流
  • 电商
  • o2oLBS
含义:给用户推荐他之前喜欢的物品相似的物品
如何衡量相似
  • 基于用户行为 , 如果喜欢2个物品的用户重合度越高 , 那么2个物品也就越相似 。如何衡量喜欢
  • 看用户是否真实点击 , 在电商场景下 , 更看重实际转化(实际消费购买);信息流场景下 , 更看重真实的点击(基于一定时长下的停留)

清澈如初|个性化推荐算法(推荐系统)概要物品之间相似度公式:
u(i)表示喜欢物品i的用户数 , 表示同时喜欢物品i和物品j的用户数
根据用户行为计算出用户相似度矩阵:
  • 分子:u(i)表示对item (i)有过行为的用户集合 ,u(j)表示对item (j)有过行为的用户集合, 分子表示user的重合程度 , 重合度越高 , 越相似 。
  • 分母:归一化(举例:对item(i)有过行为的用户2个 , 对item(j)有过行为的用户3个,物理意义:惩罚的热门物品与其他物品的相似度 , 因为热门物品对应的user倒排会非常长造成了与很多物品都有重合 , 如果分母除以一个很大的数 , 将相似度的数值趋于0 。
  • 用户u对物品j的兴趣公式: N(u) 表示用户喜欢的物品集合 , 表示和物品j最相似的k个物品的集合 。 表示物品i和j的相似度.表示用户u对物品i的兴趣 。表示user对 i的行为得分 , 表示物品的相似度得分 对user进行item(j)的推荐 , 根据item(i)来完成推荐的 , item(i)是user行为过的物品并且取与item(i)最相似的top k个(一般50个)
Item CF在工业界落地公式升级1:
理论意义:针对于活跃用户应该被降低在相似度公式中的贡献度 。
如果在某电商系统中 , 如果某User A是批发商 , 他购买了很多物品 , 可能有啤酒 , 书刊等 , 这都不能真实的表现他的兴趣 。 还有一名User B,他只买了啤酒和书刊 , 这能完全表现他的兴趣 。 如果我们在计算啤酒和书刊的相似度的时候 , 如果按照之前相似度公式User A和User B对啤酒和书刊的相似度贡献是一样的 。 这样子显然是不合理的 。 我们需要降低User A在相似度计算过程中的贡献度 。
u(i)表示喜欢物品i的用户数 , 表示同时喜欢物品i和物品j的用户数
与之前的相似度计算公式公式相比 , 分母部门没有发生任何变化 。 那么我们重点看分子部分 。 之前的相似度计算公式中每个重合用户对相似度的贡献是一样的 , 都是1.但是升级后的公式 , 我们发现每个用户对相似度的贡献变成了不一样 。 N(u)表示用户u所行为过的item的总数 。 如果一个用户行为过的item的总数越多 , 那么他的相似度就越低 。 这样子是符合常理的认知的 。
分子:N(u)表示用户u所行为过的item总数 , 如果用户行为过的总数越多 , 对相似度贡献越低 。
Item CF在工业界落地公式升级2
理论意义:用户在不同时间对item的操作应给予时间衰减惩罚 。
因为在很多场景中 , 用户的兴趣随时间是有变化的 。 如在信息流场景中 , 可能30前看过的短视频 , 30天后就不一定喜欢了 。 因为在做物品相似度矩阵计算的时候 , 就假定了用户的行为可以反映用户的兴趣 。 所以需要给予时间衰减降权 。
的物理意义就是说如果item i与item j被行为时间的差异越小 , 那么就越逼近于1.如果他们item i与item j被行为时间的差异越大 , 那么这个贡献就越低 。
与之前的相似度计算公式相比 , 分母部门没有发生任何变化 。 那么我们重点看分子部分 。 每个用户对相似度的贡献也发生了变化 。 这里的变化主要由决定的 。 是指用户item i与 item j所行为的时间的差异 。