最近看了一些资料,随手记下
什么是冷启动
搜索、广告和推荐场景都会遇到的问题,机器学习模型利用已有的用户和item的点击等数据训练,有数据循环的现象(feedback loop),但新创建的item或者新注册的用户如何分发?
用户的冷启动,可以看做是用户兴趣探索的特例,在没有用户历史数据的情况下,或者探索更多的兴趣,可以放在常规的推荐系统框架下优化,不做赘述。
这里主要讨论item的冷启动。
最朴素的做法的问题
最朴素的想法是每个新item保量展现k个,比如k=1000次,ranking score = cold_start_gurant_boost * pctr * pcvr * ...,方法是冷启动阶段的item固定boost系数cold_start_gurant_boost
问题在于过于粗糙,对短期用户体验的损失有可能大于长期收益。 如何减少损失呢?
- 对每个item有差异化的k,比如取绝于作者历史创作,或者分阶段,先保量k=100,再决定是否继续保量到200,以此类推
- ctr、cvr模型的实时性就非常重要,能在最开始的100个展现的正负样本更新模型,就有助于自然流量。但也需要注意潜在的bias和随机性。
- item的cold_start_gurant_boost是固定值,太大可能瞬间保量完成,不能利用2所说的用户反馈,太小可能保量无法完成,
新颖的算法 vs 能上线的方案
很多paper都在讲模型怎么做,最常见的是搜广推 ID embedding+MLP范式的基础去掉id embedding,增加内容理解特征,还有写更复杂的建模,context,离线cluster等等。这里忽视了一个更基本的问题,我个人觉得也是更重要的,冷启动有别于Retrieval + Ranking 两阶段系统,冷启动的整个系统应该如何搭建,观测什么指标,如何做线上测试?
读 Fresh Content Needs More Attention: Multi-funnel Fresh Content Recommendation 有感
干货满满