上一个系列主要和大家详细探讨了广告竞价模式,今天我们来聊聊广告系统中的Exploitation and Exploration。
背景介绍
广告系统是一个持续运转的系统,不停的有新创建的广告被投放,参与到竞价排序中。对于投放时间较长、曝光充足的广告(以下称为老广告),CTR预估比较准确,而对于投放时间较短、曝光少的广告(以下称为新广告),由于缺乏历史表现数据,CTR预估的准确率不如老广告。
面对一次广告曝光请求,广告系统有两种选择。一种是采取最大化收益的策略,根据历史表现,选择ecpm最高的广告(Exploitation),还有一种是将曝光机会让给新广告,用来探索学习新广告的真实点击率(Exploration)。如何权衡考虑这两种选择,是新广告选取策略需要解决的问题。
计算广告学将这类问题称之为Exploitation and Exploration问题。如果总是将曝光分配给ecpm最高的老广告,随着老广告自然消亡,可以播放的广告集合将越来越少,最终会给广告平台的收益造成损失。因此需要一定的Exploration策略,探索学习新广告的实际点击率,使系统达到良性循环。
相关算法介绍
关于Exploitation and Exploration的平衡,学术上有一个简化的问题:Multi-armed bandit(多臂老虎机,简称MAB)。arm指的是赌场中老虎机的拉杆,假设赌场上摆放了K台老虎机,每台老虎机的收益(reward)不同,但符合一定的概率分布。请问,总共可以拉 N 次老虎机拉杆,需要采用什么顺序拉杆,才能保证收益最大,也就是赢的钱最多。注意,目标是总收益最大,而不是找到收益最大的老虎机。
这个问题需要在“利用已知信息选择收益最大的老虎机”和“尝试收益未知的老虎机”之间进行平衡。
业界有很多算法来解决Multi-armed bandit问题,下面介绍几种常用的算法:
- A Naïve Algorithm
这是一种很朴素的想法,要想总收益最大,首先我们要找到收益最大的arm。通过对每个arm拉杆实验K次,计算arm平均收益,找到平均收益最大的arm,然后一直选择该arm进行拉杆。当然它的缺点也很明显:(1)最开始的每个arm K次尝试的成本是固定的,并不能根据结果动态调整(2)用于尝试的K次数量不好定,太大的话会增加成本,太小的话平均收益没有统计意义(3)完成尝试阶段后,如果最终的arm,并不是真正收益最大的,后续过程没办法纠正。
- Epsilon-Greedy Algorithm
该算法的思路是,分配较小的比例(ϵ)采用Exploration策略:随机选择arm拉杆;剩余1-ϵ比例采用Exploitation策略:根据历史表现,选择当前统计收益最大的arm拉杆。
相比A Naive Algorithm,该方法能够很快用上已有的知识进行决策,并且如果选择的arm并不是收益最大的,有机会被纠正过来。然而跟A Navie Algorithm一样,ϵ的选择也比较难,太小的话,学习过程太慢,太大的话会影响到收益。
也有些算法在此基础上进行了优化,使得ϵ的值是动态变化的,刚开始ϵ的值较大,随着拉杆次数的增多,对每个arm的收益越来越确定,则逐渐减少ϵ的值。
- Softmax Algorithm
Epsilon-Greedy Algorithm的Exploration策略是采用完全随机的方式,而不考虑已知的arm的平均收益。举个例子,假设有两个arm,A arm的平均收益是10%,B arm的平均收益不管是13%,还是99%。A和B进行Exploration的次数都是一样的。
Softmax Algorithm是Epsilon-Greedy Algorithm的改进版本,在Exploration阶段,并不是随机选择arm,而是用Softmax函数,计算每个arm选中的概率。
选择arm_i的概率是: exp(reward_i)/sum(exp(reward_i)), 被选中的概率与arm的收益是正向关系。
本文主要和大家介绍了广告系统中的Exploitation and Exploration的背景与相关算法,下篇文章会和大家再介绍几种相关的算法以及MAB问题与实际广告系统的区别与联系。
欢迎大家关注微信公众号:计算广告那些事儿,除了原创文章之外,也会不定期和大家分享业内大牛的文章哈!