有时候我们会遇到推荐算法上线之后,效果不如预期的情况。这种情况下,该如何改进呢?
下面就尝试列出一些检查清单,按照重要性的顺序,建议从上往下依次检查。当然,这些清单还不全面,欢迎大家一起来补充!
1. 用来统计效果指标的行为日志是否正确
错误Case:
- 之前有一个客户把实验桶标识存储在Web页面的cookie里,在不同推荐场景的页面之间跳转时,收集到日志服务器的实验桶标识发生了错乱。
- 还是这个客户,只在当前推荐场景的第一页收集了实验埋点,从推荐结果的第二页开始就没有收集埋点信息,导致效果统计时第二页之后的流量都算到基准桶里了。
- 当推荐服务超时或异常时,APP端会出一个兜底的默认推荐列表;这个时候实验桶标记既不应该记录为算法桶标记,也不应该记录为基准桶标记,而应该记录为一个特殊的’other’标记,否则在统计效果的时候就会发现有些用户既存在于算法桶内又存在于基准桶内的矛盾。
2. 流量切分是否稳定、随机和足量
错误Case:
- 一些小流量的推荐场景,按天为周期统计指标得到的结论是不可靠的,应根据流量情况适当拉长统计周期;以短周期的效果指标做决策是有风险的。
3. 统计效果指标的代码是否正确
错误Case:
- 统计到的流量切分比例跟实际的切分比例不一致的情况,还是经常出现的。很可能是流量切分的逻辑不合理,或者日志回流的链路上存在问题。
4. 实验变量控制是否正确
错误Case:
- 基准桶和实验桶的推荐候选集不一致,是推荐系统刚上线时经常遇到的问题
5. 工程链路是否正确,是否能做到持续正确
6. 算法模型有效么?并且持续有效么?
7. 推荐策略是否有瑕疵?
8. 是否考虑了推荐策略对业务长期受益的影响?