「学术报告」阿里巴巴靳骏奇:强化学习在展示广告实时竞价的应用
2018年8月4月,由北京理工大学大数据创新学习中心与中国科学院人工智能联盟标准组联合主办的“2018深度强化学习:理论与应用”学术研讨会,学界与业界顶级专家济济一堂,共同分享深度强化学习领域的研究成果。
阿里妈妈精准展示技术算法团队靳骏奇老师以强化学习在展示广告实时竞价当中的应用为主题进行了报告,以下分享内容根据嘉宾口头分享整理。
强化学习在展示广告实时竞价当中的应用
靳骏奇 阿里妈妈精准展示技术算法团队
阿里妈妈是以广告推荐为主要业务的部门,广告其实就是信息,它的作用就是连接用户和产品。消费者日常生活中对产品的认知很多情况下都是通过广告,比如报刊、电视和路边商场的广告牌等。2015年美国统计的数据显示广告市场中互联网占有份额最大,所以互联网广告营销方面是非常重要的。
阿里妈妈是隶属于阿里巴巴集团的国内领先的广告营销平台,拥有核心商业数据,每天有超过50亿的推广流量,每天完成超过3亿件商品的推广展现,覆盖高达98%的网民,实现数字媒体的一站式触达。阿里妈妈可以结合当前用户的兴趣推广想要的商品和广告。
CPC广告扣费模式是对商家或者广告主按照点击扣费,但是费用是由广告主出价决定。淘宝展示广告生态特点:①闭环生态提供完整的用户行为和广告计划数据。②大多数是中小广告主,相比品牌营销,更加关注收益的增长。③广告主的诉求比较多样(点击、购买、展现、回报率),通过对点击出价竞争流量即CPC扣费模式。④广告投放需考虑媒体平台的要求(CTR、CVR、GMV)。
作为平台投放广告也不仅仅是要考虑广告的营收,同时要考虑广告投出去以后用户喜不喜欢,真正投出用户喜欢的东西用户才会愿意去点、愿意去买,所以我们要考虑平台的要求,比如点击率要高、转化率要高,GMV就是用户点了广告,购买商家商品的成交额,成交额越高商家就越开心,用户也越开心,因为用户买到自己想要的商品,商家卖出了自己生产的货物。
消费者打开手机淘宝APP的一瞬间相当于向淘宝平台发送了请求,比如阿里机房存放了广告主的商品信息,背后淘宝的商品量也是非常大的,可能是千万或者上亿,到底把哪些展现给你看呢?一方面要结合你的兴趣,另一方面每个广告主会对商品有一个出价,根据用户的点击率以及商品的出价计算得到一个分数,按照这个分数排序。比如屏幕只能展现七个广告,那么就把前面七个展现出来,通过这种方式保证广告的收入和用户的体验。
这种传统方法存在不够优化的问题。如上图吸尘器例子,广告主出价一块五,访问此广告的用户可能是Housewife或Young guy,如果是Housewife购买成交的可能性更大,Young guy购买成交的可能性比较小。不同的用户进来以后广告主出价都是一块五,显然对广告主来说很亏,不是很好的优化。按理说Housewife来了出价应该更高一些,要把广告位竞争下来,这样就能够转化了。
这里存在的问题就是同价不同质,同样的出价流量质量是不一样的,出价就会决定最后页面展示哪些商品。展示商品的时候也不单纯是要去优化广告的收入,也希望优化整个平台的成交量和广告主的ROI,希望广告主在平台上面的营销效果最好,ROI回报最好,这样大家才会用我们淘宝的平台,其它的指标下我们也要干预排序,使得展示出来的广告用户体验特别好。
具体怎么干预呢?大家可以看到平台的优化措施,传统排序采用的出价是bid,干预以后变成Optimized_bid,这种调整相当于广告主把出价记录到系统里面,平台根据算法帮助动态调整出价,如果Housewife就可以调高,低质流量来了自动可以往低调整。这些都是算法完成的,通过这种方式优化平台贸易的效率。
涉及到强化学习,这里最重要的点就是要根据State作出Action决策,这里一定要抓住流量到底是高质量流量还是低质量流量,Action就是结合State对出价进行调整,平台的成交量更高或者点击率更高,投资回报率也会更高。
我们需要优化多个目标,包括广告主体验和公司平台收益,帮助广告主调整竞价,使得出价可以反映真实的流量价值。通过强化学习算法建立离线模拟优化参数,通过强化学习线上自动优化参数,参数优化也是基于预估值反馈升级为基于真实效果的反馈。阿里出了一个小册子叫做《强化学习在阿里的技术演进与业务创新》,整个册子当中把阿里的业务和强化学习的应用做了非常好的汇总,感兴趣落地的同学可以去看一看。
我们有很多机器可以随意初始化,每台机器都用自己的参数跑出效果,比如跑了一天的数据以后看一看每台机器在这一天里面的GMV或者点击指标,选出最好的头部指标机器,然后把参数保存下来,剩下的比较差的参数扔掉,然后我们再做均值方差估计,重新采用生成很多参数,来回迭代让参数逐渐收敛到局部最优,通过对参数空间的扰动,根据当前参数采样真实奖赏反馈计算和采样方差。
这是一个Policy Gredient的方法,工程实现非常简单,很容易调试和分析,收敛也非常稳定,很多论文都用在策略学习上面。如果大家真正去搞落地的话一定是简单算法落地到复杂算法演进的过程,公司的算法一定会有一个进化的过程,CEM是Policy Gredient方法的一种,简单有效,轻量性使其很容易推广到其它策略学习场景,但最大的问题就是样本利用低下,也是无梯度优化方法的通病,但因为我们知道它的弱点,所以我们会控制让参数量不会很大,样本低效的缺点可以避开,这样效果就非常好了。
系统采用了分布式集群,帮助广告主实时出价竞争流量,然后会把线上的实时结果通过多个机器进行日志处理,然后把多个机器的日志合并回流,回流以后我们会具体来做奖赏的解析和计算,计算以后转到专门的训练机器上面进行参数训练,训练以后再把参数传到模型存储服务上面,然后推到线上机器完成这样的回流,这样线上就是不断自动化进化的过程。
实验结果是算法完全落地,而且也是满流量落地的,一般落地就会在比较大的活动期间试验算法,“双十一”进行了十天完整的实验,十天累计的效果GMV就是消费者和平台卖家成交额增长了百分之二,平台广告收入增加百分之十一,点击率提高百分之四,说明消费者很满意,商家也很满意,消费者愿意点击,商家也卖的东西更多了。“双十一”之后提升的效果依然能够保持,我们当天看到成交额提高了百分之六,广告收入提高了百分之十一,用户点击率提高了百分之七,这些就是我们对比没有强化学习和强化学习。
基于CEM的OCPC算法综合优化了广告主、用户、平台的三方的利益,通过优化广告主出价提升流量分配效率,离线模拟和在线生产都证明了这种分化的有效性。这是没有区分对待广告主,淘宝上面每天有几亿用户访问平台,背后可能也有上亿商家去卖东西,上亿商家之间肯定会有竞争,大家也会想会不会有恶性竞争,如果广告主都打价格战很惨烈,最后谁也没有捞到好处,或者可能都不是特别优的策略,最后导致整个平台的效率很低。我们希望研究广告主之间是不是会有博弈上的问题,能不能找到更好的博弈点,所以就是基于广告主视角强化学习算法。
我们回顾一下平台的模型,上图右上角就是当用户请求发过来的时候沿着箭头一直往左走,进入系统的Matching环节,包括上亿和千万的商品库当中选择获选的商品,经过Real-timePrediction,比较好的广告主就进入了Ranking环节。竞价其实也是有初筛的,选出候选者之后就要互相竞争竞价,每个人出一个价格,结合这种出价进行排序,排序以后把头部的广告就投出去。Ranking的环节就是博弈的过程,出价高可以拿到流量,但付出的代价就会更高一些。
怎么才能让大家不出现恶性竞争或者囚徒困境呢?我们要优化广告主的bid值,因为①无法掌握市场即时的价格波动;②预算也是有约束的;③目标函数多样化;④有些广告主比较非理性。建模的挑战:①预算约束下,出价的序列问题。比如如果让广告主去买流量,一天只有一千块钱,一份流量要花十块钱,上午流量都花光了下午就都没有了。②众多广告主参与也的复杂博弈环境,③处理大规模数据的工业级分布式系统实现问题。
我们的目标是:①优化博弈均衡,实现广告主、平台和用户的三方共赢;②通过建模广告主实现更好的平台调控能力;③相比传统的流量优化,实现广告主长期利益和决策的优化;④可行的工业级解决方案;⑤我们提出了DistributedCoordinated Multi-Agent Bidding (DCMAB)。
平台也有非常多的广告主,如果我们对每个广告主都做Actor建模的话可能带来数据的稀疏,很多广告主的行为很相似,所以我们对广告主做了一个聚类,相似的广告主聚在一起,消费者也有类似的情况。考虑这个状态的时候可以加入很多其它新的状态,这里只是列出了我们认为比较主要的状态。
广告主和消费者一旦产生了一次点击或广告展现就会产生广告消耗,这里有两个定向流动:①消费者会给商家付钱,因为要去买货。②消费者点了广告商家向阿里平台支付广告费用。涉及到钱的我们都认为是重要信息,所以都当做状态放在这里,其它涉及到消费者的静态信息,比如年龄、性别、背景和职业都会当做Feature放进来,连接起来当做很长的向量,这就是强化的State。
我们对广告主的奖赏就是依据成交额,因为这是广告主在有限的预算下,今天只有一千块钱的广告预算,希望最大化卖货量,比如卖了一万块钱的货,也是把广告主做了聚类,聚类当中也可以看到对每个价格进行了出价的调整。State状态当中涉及到广告消耗和成交额,每次点击一次的费用,广告主也有一个预算,每次给消费者展现一次广告自己可能就卖了一些货,也有可能花了广告费用,两个信息都作为StateTranslation,强化学习方面也是用了Actor critic架构。
Q-Function的定义就是S0等于S,未来所有的Reward累计总和的期望可以拆解成一部分Reward,加上下一步的Q-Function。我们认为是虚拟性的策略,所以后面关于Policy采样直接变成了确定性的函数,就是S放到M函数当中,拿到Action以后就是确定性的贝尔曼方程。
学习目标也是很重要的概念,我们有这么多的广告主,到底优化哪个?如果函数定义就很重要,我们用到了纳什均衡的概念,大家都尽可能优化自己,最后进入的状态就是所有人都不愿意违背自己当前的策略,因为认为自己当前的策略已经是最好的了,然后大家就稳定在均衡的状态。如果是一个并行系统,每次Action决策和StateTransition都要进行多机通信,所以我们做了一些权衡和优化,就是State Action每隔一段时间来做同步,粒度肯定就会变粗了,我们怎么去做权衡?需要尽可能把这段时间的信息来做汇总,汇总的信息同步的时候让每个Actor都能够感知得到。
我们对广告主要看怎样聚类比较合适,聚成三类效果更好。调整了广告主的预算以后,蓝线是算法给出的,红线是人工给出的,我们会发现预算很低的时候人工可能就过早把钱花光了,整个平台的成交量非常低,因为到后面就退出市场了,但算法一直可以保证非常高的成交额。
下面我们对比了几个很强的基线,只优化一轮,不考虑长期,还有A2C,我们会考虑把所有信息都加进来。最后可以看到TotalRevenue Reward我们是最好的,方差也比较小,因为信息输入比较充分。
上图右上角是蓝色和红色,蓝色是每个广告主可以设定目标Reward是什么,每个广告主优化自己Revenue,红色是每个广告主平台总量的Revunue,如果都是自私的广告主,平台总量的Revenue偏低,齐心协力一起合作的话,平台总量的Revenue会被拉高,所以存在囚徒困境的现象。我们要让合作型广告主逐步加入竞价环境里面,到了最后再全部加入合作,黄色一直到红色发现平台Revenue逐级升高,说明合作型广告主越来越高,能够把总体成交额都拉上来。
最后结论:该算法具备灵活调控能力,从而实现相对均衡,能够并行高效处理广告需求。我们做事情的方法论是解决问题是目的,强化学习建模只是一个措施,措施需要服务于目的,要从业务需求出发借鉴强化建模优势灵活运用,不要拿来算法生硬地套用。具体到OCPC业务,无论是单效流量还是多智能多时间的策略组合,动作受限下的组合优化特性是问题的本质,不会因为强化学习消除。探索强化学习提供给我们的可持续迭代方案,这也是支持对标长期终极指标,强化学习要素的引入让我们现有的预估方案更适合原始问题的组合优化属性。
获取完整PPT,请后台回复:学术报告
供稿人:赵盼云
精彩的学术报告背后,是一群优秀的学术人才。都说搞学术的人需要“超凡脱俗”,需要耐得住清贫寂寞,其实……芯君想说:完全不需要这样啊!比如,马上申请2018百度奖学金——是的,百度为每位具有AI才能的“潜力股”学术精英们提供了广阔的平台资源和发展空间,为其提供20万研究资金支持,帮助优秀学子全身心投入科研工作,心无旁骛地进行科学探索。
还等什么,你——未来的学术之星,赶快申请报名吧!
素材来源:搜狐科技、雷锋网、新浪科技等
如需转载,请后台留言,遵守转载规范