转化流程
分析用户开始流程到转化为目标用户的行为,将之划分为不同阶段,每个阶段的加深都代表用户兴趣的深入,后续推荐系统的设计皆以此为蓝本
如短视频推荐中,存在曝光->点击->动作(点赞、收藏、评论、转发等)这样一条转化流程
推荐系统链路
- 召回,多通道快速获取大量候选项(千万级、亿级)
- 粗排,使用小模型对候选进行打分、排序、截断(top-k),快速获取候选(千级、万级)
- 精排,用大规模神经网络模型对候选进行打分、排序、截断(可选),这是实现精细推荐的核心(百级)
- 重排,对精排后的数据进行采样、排序优化、多样性优化、插入广告或其他内容(数十级)
前期融合模型(在输入神经网络前就进行了特征交叉)无法在召回阶段使用
测试链路
离线实验->A/B测试(用户分流,在线测试)->全量测试
流量不足问题:
生产中,推荐系统全链路以及其他各个部门可能都需要进行A/B测试,那么可能会出现流量不够分、流量不足的问题
解决方法——分层实验
将各阶段划分到层,同层实验互斥,不同层之间正交(同时进行)
Holdout
取一定数量用户作为holdout用户,对其不进行任何策略优化(目的用于测算自然增长),其余用户使用策略,对比两组的各项指标
推全
新建推全层,与其他层正交
反转实验
在新的推全层上保留一个小的反转桶,使用旧策略,以长期观察策略对业务指标影响
数据存储
user emb和item emb的存储
user emb存储到KV表,通过user-id快速获取user emb
item emb通常存储到专业向量数据库
最近邻查找
给定一个查询向量q,计算每一个候选向量v与它的近邻程度(如欧式距离、内积、余弦相似度等)返回最近邻结果
ANN(近似最近邻查找)
直接计算最近邻计算开销巨大,采用先聚类/分块取得索引,查询向量先与索引进行匹配,再与索引所在聚类的其他向量做计算,减少计算开销