067|推荐的Exploit和Explore算法之一:EE算法综述
2018-03-19洪亮劼来自北京
《AI技术内参》
上周,我们聊了一些比较高级的模型,包括张量分解和协同矩阵分解,讨论这些模型如何能够
抓住更多的用户和物品之间的关系。最后,我们还讨论了如何优化更加复杂的目标函数。
这周,我们来看一个完全不同的话题,那就是Exploitation(利用)和Exploration(探索)
的策略,俗称“EE策略”。
一个推荐系统,如果片面优化用户的喜好,很可能导致千篇一律的推荐结果。其实,EE策略
是推荐系统里很有意思,但也非常有争议的一个话题。一方面,大家都明白这类算法的目的,
每年有很多相关论文发表。但另一方面,工业界对于部署这类算法非常谨慎,有的产品经理甚
至视之为“洪水猛兽”。我们今天就来分析一下导致这个现象的一些因素。
走一步看一步的策略
这里再简单阐述一下什么是EE。简单来说,就是我们在优化某些目标函数的时候,从一个时
间维度来看,当信息不足或者决策不确定性(Uncertainty)很大的时候,我们需要平衡两类
决策:
选择现在可能是最佳的方案;
选择现在不确定,但未来可能会有高收益的方案。
在做这两类决策的过程中,我们也逐渐更新对所有决策不确定性的认识。最终,从时间的维度
上来看,我们在不确定性的干扰下,依然能够去优化目标函数。
也就是说,EE可以看作是一个优化过程,需要多次迭代才能找到比较好的方案。
EE的应用历史
早期把EE应用于新闻推荐系统的文章,主要关注在雅虎的今日新闻(TodayModule)这一
产品上,这也基本上是EE最早在互联网应用的尝试,目的是为了优化点击率(CTR)。而更
早的一些奠基性的文章,则是在广告的数据集上展示实验结果。
雅虎的今日新闻其实为EE提供了一些被很多学者和工业界人士忽视了的条件和成功因素。如
果不考虑这些因素,鲁莽地在其他场景中使用这些文献中相似的算法,很可能会产生相当差的
效果。那么是哪些因素呢?主要有两点。
1.相对少量的优质资源。今日新闻每天的内容池(ContentPool)其实并不大。这里面都是
网站编辑精选了的大概100篇文章。这些文章原本的质量就非常高,无论是这里面的任何
一组,用户体验都没有明显变差。内容池每天都人为更换。
2.非常大的用户量。有亿万级的用户,最终可能是从算法随机产生的文章排序中选择了阅读的
文章。因为用户数量巨大,所以算法就相对比较容易收敛(Converge)到稳定的方案,也
就是前面讲的,优化CTR的状态。
正因为有了以上两个因素,在这个模块上,工程师和科学家们享受了后来学者们所无法想象的
“奢侈”,比如运行Epsilon-Greedy这种简单粗暴的EE算法;甚至是完全随机显示新闻,
收集到了大量无偏(Unbiased)的数据,都为很多学术工作奠定了数据基础。时至今日,依
然有不少后续学者,在今日新闻随机数据的基础上进行算法改进。
如果没有了这两条因素,最早的解决方案可能都没法在当时的雅虎施行。原因很简单,如果资
源良莠不齐,资源数量非常大,那么在仅有的几个展示位置,优质资源显示的可能性在短期内
就会比较小(因为系统对于大多数的资源还有很高的不确定性,需要Explore)。
由于优质资源显示得少了,用户就会明显感受到体验下降,最直接的可能就是倾向于不点击甚
至放弃使用产品。用户不和系统交互这样的行为,又进一步减缓了系统学习资源不确定性的速
度。这时,也许亿万级用户数都没法满足学习所有资源的用户数量(毕竟所有用户只有一部分
会落入Exploration)。
关于这个解决方案有一个很有意思的点值得一提,在雅虎的研究人员跳槽到了LinkedIn以
后,LinkedIn也推了相似的方案。为了模拟雅虎今日新闻的这些条件,就对用户内容流里的
数据进行了大规模的过滤。这样就有少数的信息符合高质量的要求,并且能够在用户数允许的
情况下探索到合适的解决方案。
EE的产品部署难点
我们来讲一下EE的产品部署难点,这些难点普遍高于具体的EE算法选择(比如选某一个
UCB或者某一个ThompsonSampling)在产品工程解决方案上的抉择。
为了便于讨论,我们把所有EE算法整体叫作“Random”,简称“R算法”,而把不做EE
的算法叫作“Deterministic”,简称“D算法”。这里面的假设是,D算法比较静态,能够
产生高质量、一致性的内容。这里的一致性是指用户在短时间内的体验比较稳定,不会有大幅
度的界面和内容变