【王树森推荐系统】召回01:基于物品的协同过滤(ItemCF)
itemCF的原理
ItemCF的实现
-
两个物品的受众重合度越高,两个物品越相似
-
如何判断不相似:受众不重合
-
计算物品相似度:没有应用到喜欢的程度
-
考虑了喜欢的程度:余弦相似度,夹角越小,两个就越相似
-
ItemCF的基本思想:如果用户喜欢item1,而且item1和item2相似,那么用户可能喜欢item2
-
预估用户对候选物品的兴趣:需要计算用户对每个物品的兴趣和该物品对其他物品的相似度
-
计算相似度:余弦相似度
ItemCF的完整流程
- 事先做离线计算:建立用户->物品的索引。记录每个用户最近点击,交互过的物品ID
- 给定任意用户ID,可以找到他近期感兴趣的物品列表。
- 建立物品->物品的索引,计算物品之间两两相似度
- 对于每个物品,索引它最近的K个物品,给定任意物品ID,可以快速找到它最相似的k个物品,而且知道相似度分数
- 用户->物品的索引
- 物品->物品的索引
线上做召回
- 给定用户ID,通过用户->物品索引,找到用户近期感兴趣的物品列表(last-n)
- 对于last-n列表中每个物品,通过 物品->物品索引,找到top-k相似物品
- 对于取回的相似物品(最多有nk)个,用公式预估用户对物品的感兴趣分数
- 返回分数最高的100个物品,作为推荐结果
- 索引的意义在于避免枚举所有物品
- 记录用户感兴趣的n=200个物品
- 取回每个物品最相似的k=10个物品
- 给取回的nk=2000个物品打分
- 返回分数最高的100个物品作为ItemCF通道的输出
- 用索引,离线计算量大,线上计算量小
- 线上做召回图示如下:
原文地址:https://blog.csdn.net/hxdxiaoming/article/details/145215351
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!