《新闻资讯混排场景下的多目标融合实战(三)》,主要给大家介绍了进化学习的做法。这篇会给大家介绍下协方差矩阵自适应进化。
协方差矩阵自适应进化
在之前进化学习的实践当中,我们利用朴素进化算法取得了较好效果,一方面,朴素进化算法天花板低,难以再有显著提升,另一方面,我们希望多目标融合模型可以保持在线持续进化,从而更好地适应上游变化,预测分布变化等,但朴素进化算法自身缺乏进化稳定性和自动调整学习率的特性,所以,利用协方差矩阵自适应进化策略进一步提升融合模型能力。
协方差矩阵自适应进化策略,即CMA-ES(Covariance Matrix Adaptation Evolutionary Strategies),是性能最好的进化策略之一,在中等规模的参数优化问题上可达到较优效果,具备如下进化特性:
使用多变量的正态分布产生新的搜索点:遵循最大熵原理;
自动化控制步长和协方差矩阵:使得快速收敛更加便捷,避免人工调整;
CMA-ES的自动控制能力使得其更能适应在线持续进化的需求,可以增强线上进化安全性。
具体算法如下:
用CMA-ES算法,同样取得了要闻频道下视频深度消费的显著提升。我们也将利用CMA-ES这种稳定性更高、适应性更强的进化算法作为线上持续进化的基础策略。同样,在迭代实验的过程中,也有过不少纠结和试错。
试错1:reward:刷均时长还是人均时长?
我们进化实验的reward中,停留时长是非常重要的一个业务目标。在实验过程中,我们主要关注以下两种时长reward形式:
刷均时长作为reward;
人均时长作为reward;
在想象中, 人均时长作为reward和业务指标更为匹配,但实验效果却没有想象中好,考虑小时级数据人数较少,人均时长波动较大,这种情况下,刷均时长往往能取得还不错的效果。在我们后续小流量实验中,数据量增加,数据完整度更好的情况下,人均时长作为reward更有优势。但数据量增量过多后,例如天级更新,可能会有所丧失模型参数自适应context的速度。
试错2:如何获得持续稳定的在线进化?
在以往的进化实验中,偶发变差的更新可能会导致实验效果反复甚至持续变差,之前的实践中,我们往往会选取表现好的某天参数固定下来作为有望更新到线上的参数。为解决效果反复问题,增强线上持续进化安全性,除了做好进化的相关监控,人工参数回退外,在我们目前的小流量A/B实验中,设计了如下机制来促进更稳定的进化效果:
如下图所示,我们设置了三组小流量实验组:
| 实验组名 | 作用 |
|---|---|
| 探索组 | 使用cma-es生成的30组扰动参数分别在30组用户上进行验证; |
| 观察组 | 小时级更新探索组的最佳参数,观察更新后自身和稳定组的效果差异; |
| 稳定组 | 根据观察组n次更新的效果,决定是否更新与回退:n次更新趋势向好,使用观察组参数更新稳定组;n次更新趋势变差,使用稳定组参数重新覆盖探索组、观察组参数,即更新回退; |
新增稳定组的进化方式,可以使得进化更具稳定性,仅用线上验证确实有效的参数更新稳定组;同时,一旦观察到更新持续变差,可以自动及时回退到较好参数,重新进化。
后续优化方向
加入更多的个性化特征,以更好区分不同context,不同人群;
引入强化学习算法优化长程收益;
联合优化混排阶段的两层融合,协同进化;
使用模型替代融合公式,多目标融合模型直接生成融合分替代生成公式参数;
……
本文主要给大家介绍了协方差矩阵自适应进化的做法。如果你喜欢我的文章或者我的公众号,记得分享、点赞、顺便点个在看再走哦!
欢迎大家关注计算广告那些事儿,除了原创文章之外,也会不定期和大家分享业内大牛的文章哈!