LOADING

加载过慢请开启缓存 浏览器默认开启

推荐系统

转化流程

分析用户开始流程转化为目标用户的行为,将之划分为不同阶段,每个阶段的加深都代表用户兴趣的深入,后续推荐系统的设计皆以此为蓝本

如短视频推荐中,存在曝光->点击->动作(点赞、收藏、评论、转发等)这样一条转化流程

推荐系统链路

  1. 召回,多通道快速获取大量候选项(千万级、亿级)
  2. 粗排,使用小模型对候选进行打分排序截断(top-k)快速获取候选(千级、万级)
  3. 精排,用大规模神经网络模型对候选进行打分排序截断(可选),这是实现精细推荐的核心(百级)
  4. 重排,对精排后的数据进行采样排序优化、多样性优化、插入广告或其他内容(数十级)

前期融合模型(在输入神经网络前就进行了特征交叉)无法在召回阶段使用

测试链路

离线实验->A/B测试(用户分流,在线测试)->全量测试

流量不足问题

生产中,推荐系统全链路以及其他各个部门可能都需要进行A/B测试,那么可能会出现流量不够分、流量不足的问题

解决方法——分层实验

将各阶段划分到层,同层实验互斥不同层之间正交(同时进行)

Holdout

取一定数量用户作为holdout用户,对其不进行任何策略优化(目的用于测算自然增长),其余用户使用策略,对比两组的各项指标

推全

新建推全层,与其他层正交

反转实验

在新的推全层上保留一个小的反转桶,使用旧策略,以长期观察策略对业务指标影响

数据存储

user emb和item emb的存储

user emb存储到KV表,通过user-id快速获取user emb

item emb通常存储到专业向量数据库

最近邻查找

给定一个查询向量q,计算每一个候选向量v与它的近邻程度(如欧式距离、内积、余弦相似度等)返回最近邻结果

ANN(近似最近邻查找)

直接计算最近邻计算开销巨大,采用先聚类/分块取得索引,查询向量先与索引进行匹配,再与索引所在聚类的其他向量做计算,减少计算开销