系列文章传送门
(1)工业界推荐系统-小红书推荐场景及内部实践【业务指标、链路、ItemCF】
(2)工业界推荐系统-小红书推荐场景及内部实践【UserCF、离线特征处理】
(3)工业界推荐系统-小红书推荐场景及内部实践【矩阵补充、双塔模型】
(4)工业界推荐系统-小红书推荐场景及内部实践【正负样本选择】
(5)工业界推荐系统-小红书推荐场景及内部实践【线上召回和模型更新】
(6)工业界推荐系统-小红书推荐场景及内部实践【其他召回通道】
该系列文章根据小红书搜推算法工程师、团队负责人王树森B站上主讲的《工业界的推荐系统》之小红书业务场景及内部实践整理而得。感谢大佬分享工业界前沿的推荐系统实战技术!
召回
基于用户的协同过滤(UserCF)
原理
实现
ItemCF实际应用中,需要考虑热门物品的影响,降低热门物品的权重,
完整流程
1. 离线计算
-
建立“用户->物品”的索引
- 记录每个用户最近点击、交互过的物品ID。
- 给定任意用户ID,可以找到他近期感兴趣的物品列表。
-
建立“用户->用户”的索引
- 对于每个用户,索引他最相似的 k 个用户。
- 给定任意用户ID,可以快速找到他最相似的 k 个用户。
2. 线上召回
- 给定用户ID,通过“用户->用户”索引,找到 top-k 相似用户。
- 对于每个 top-k 相似用户,通过“用户->物品”索引,找到用户近期感兴趣的物品列表(last-n)。
- 对于取回的 𝑛𝑘 个相似物品,用公式预估用户对每个物品 的兴趣分数。
- 返回分数最高的100个物品,作为召回结果。
离散特征处理
离散特征
- 性别:男、女两种类别。
- 国籍:中国、美国、印度等200个国家。
- 英文单词:常见的英文单词有几万个。
- 物品ID:小红书有几亿篇笔记,每篇笔记有一个ID。
- 用户ID:小红书有几亿个用户,每个用户有一个ID。
离散特征处理
- One-hot编码:把序号映射成高维稀疏向量。
类别数量太大时,通常不用 one-hot 编码。
- Embedding:把序号映射成低维稠密向量。
编程实现:TensorFlow、PyTorch 提供 embedding 层。