推荐系统召回层策略全解析:从协同过滤到多元召回

推荐系统召回层作为推荐系统的关键环节,承担着从海量物品中快速筛选出与用户潜在兴趣相关物品的重任。其策略丰富多样,每种策略都有独特的原理和应用场景。下面深入剖析各主要召回策略,助力理解推荐系统的核心运作机制。

一、基于协同过滤的召回策略

(一)ItemCF:基于物品的协同过滤

ItemCF 依据物品间的相似度进行推荐,物品相似度的计算基于用户历史行为构建的共现矩阵 。其核心在于,若喜欢物品\(i_1\)和\(i_2\)的用户重叠度高,则认为这两个物品相似 。计算物品相似度常采用余弦相似度,将物品表示为用户 - 物品共现矩阵的列向量,向量元素为用户对物品的兴趣分数 。预估用户对候选物品的兴趣时,通过用户对历史物品的兴趣分数与物品间相似度相乘并累加得到 。

为实现线上实时推荐,ItemCF 需离线维护用户→物品索引(记录用户近期交互物品及兴趣分数)和物品→物品索引(存储每个物品的相似物品及相似度分数) 。线上召回时,先根据用户 ID 从用户→物品索引获取其感兴趣物品,再通过物品→物品索引找到这些物品的相似物品,计算用户对这些相似物品的兴趣分数,去重后返回分数最高的若干物品 。

(二)UserCF:基于用户的协同过滤

UserCF 基于用户间的相似度进行推荐,若用户\(user_1\)和\(user_2\)喜欢的物品重叠度高,则二者相似 。用户相似度同样通过余弦相似度衡量,把用户表示为用户 - 物品共现矩阵的行向量,元素值反映用户对物品的兴趣程度,还可考虑物品热门程度以降低热门物品权重 。预估用户对候选物品的兴趣时,计算用户与其他用户的相似度,结合其他用户对物品的兴趣分数相乘并累加 。

UserCF 也需离线维护两个索引,即用户→用户索引(存储每个用户的相似用户及相似度分数)和用户→物品索引(与 ItemCF 的该索引相同) 。线上召回时,先通过用户→用户索引找到相似用户,再借助用户→物品索引获取相似用户感兴趣的物品,计算用户对这些物品的兴趣分数,去重后返回高分物品 。

二、向量召回通道策略

(一)矩阵补充模型

矩阵补充模型将用户 ID 和物品 ID 映射为向量,通过向量内积预估用户对物品的兴趣,并学习 embedding 层参数拟合真实兴趣分数 。训练时,基于用户 - 物品共现矩阵中已知的兴趣分数数据,最小化目标函数来求解参数 。该模型虽能补全矩阵元素以进行推荐,但在实践中存在诸多不足,如仅依赖 ID embedding,未充分利用物品和用户属性;负样本选取方式欠佳;训练模型的方法效果不如余弦相似度和交叉熵损失 。

线上服务时,训练后的用户和物品 embedding 矩阵分别存储,物品向量因数量庞大,需存储在支持近似最近邻查找的向量数据库(如 Milvus、Faiss、HnswLib 等)中 。线上召回时,根据用户 ID 查询得到用户向量,在向量数据库中查找内积最大的若干物品作为召回结果 。

(二)双塔模型 DSSM

双塔模型是推荐系统的重要召回通道,包含用户塔和物品塔,分别提取用户和物品特征并输出向量,通过向量的内积或余弦相似度预估用户兴趣 。训练方式有 Pointwise(独立处理每个样本的二元分类)、Pairwise(对比正样本和负样本)和 Listwise(考虑一个正样本和多个负样本的多元分类),实际应用中可多种方式结合 。

训练时,正负样本的选取至关重要。正样本通常为曝光且有点击的用户 - 物品二元组;负样本可分为简单负样本(如全体物品、batch 内负样本)和困难负样本(被召回但排序淘汰的物品) 。简单负样本抽样时需注意热门物品和冷门物品的平衡,困难负样本则有助于提升模型对用户潜在兴趣的判断能力 。错误负样本(曝光但未点击的物品)不适用于召回模型训练 。

线上召回时,离线存储物品向量到向量数据库并建立索引,用户发起请求时,实时计算用户向量,在向量数据库中进行最近邻查找,返回余弦相似度最高的物品 。模型更新分为全量更新(天级别,训练整个模型)和增量更新(小时 / 分钟级别,仅训练 embedding

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值