推荐系统基础
推荐系统基础
推荐系统基本概念
推荐系统的目标就是从物品的数据库中选出几十个物品推给用户
算法工程师:对模型,特征,策略,系统做改进提升各种指标
转化流程
不同的产品的转化流程不同,小红书推荐系统的转化流程如下:
消费测指标
-这些指标反映用户对推荐是否满意,属于短期指标
北极星指标
衡量推荐系统好坏最重要的指标
若消费测指标与北极星指标有冲突,以北极星指标为准;激励发布通常是由冷启动来负责,详见后面笔记
实验流程
推荐系统的链路
召回:从物品的数据库中快速取回一些物品。比如小红书由上亿篇笔记,当用户刷新小红书时系统会调用几十条召回通道,每条召回通道取回几十到上百条笔记,然后去重去掉用户不喜欢的作者,笔记,话题等,最后一共取回几千篇笔记
粗排:用规模较小的机器学习/深度学习模型给几千篇笔记逐一进行打分,按照分数进行排序,保留分数最高的几百篇笔记(粗排,精排比较类似,唯一的区别精排模型更大用的特征更多)
精排:用大规模的深度神经网络(现在用tranformer比较多)给几百篇笔记重新打分,打分后不需要做排序直接进入重排。
精排的分数反映用户对笔记的兴趣(精排打分更可靠,但计算量也更大,这就是为什么先用粗排做筛选再用精排,这样做可以很好平衡计算量和准确性),在精排后可以做阶段也可以不做截断直接重排
重排:根据精排分数和多样性分数进行随机抽样得到几十篇笔记,然后根据规则将相似内容打散并插入广告和运营内容(重排最重要的功能是做多样性抽样)
召回
排序
粗排,精排
二者比较类似,唯一的区别精排模型更大用的特征更多
重排
抽样:依据精排分数大小和多样性进行抽样
打散:用规则打散相似内容。不能把内容过于相似的笔记排在相邻的位置上(不能给NBA球迷首页5个内容全推NBA,避免同质化,排第一的是NBA内容那接下来几个位置就不放NBA的内容,相似的笔记会往后挪)
人为干涉:插入广告,运行推荐内容,根据生态要求调整排序
总结
AB测试
AB测试基本概念
什么时候需要进行AB测试?当团对实现了一种新的算法,在离线数据中跑出来的结果是正向的,考虑将算法进行上线给用户使用,在上线之前我们需要进行 AB对照实验,来观察新算法在线上实际运行的效果。
如何设计AB测试? 随机分组 + 对照
分层实验
为什么要用分层实验,直接就按上文中直接分10个桶不好吗? 上述将所有用户分成10个桶,每个桶占10%,这样的桶的数量有限,而大公司中需要流量来做实验的团队很多,会出现流量不够用的情况,这个时候就需要用到分层实验
如何分层?
同层互斥
不同层正交
互斥和正交
Holdout机制
holdout桶用于考察⼀个部门(⽐如推荐系统)在⼀段时间内对业务指标总体的提升。比如将10%的用户作用到holdout桶,holdout桶是干净的对照组,任何这段时间内新加的算法都不能在上面。
实验推全&反转实验
有的指标(点击、交互)⽴刻受到新策略影响,有的指标(留存)有滞后性,需要长期观测。
实验观测到显著收益后尽快推全新策略。⽬的是腾出桶供其他实验使⽤,或需要基于新策略做后续的开发。
推全实验:在90%用户上新建一层,该层与其他层正交
若推全层中有需要长期观测的指标,则⽤反转实验解决上述⽭盾,既可以尽快推全,也可以长期观测实验指标。
反转实验:在推全的新层中开⼀个旧策略的桶,长期观测实验指标。