当前位置:   article > 正文

大咖眼中的AI开源 | 吴磊:大规模机器学习在计算广告中的应用与落地

吴磊 freewheel

6月26日,亚马逊云科技Community Day在上海举办。亚马逊云科技首席开发者布道师、资深数据科学家、资深应用科学家以及亚马逊云科技Machine Learning Hero悉数到场,针对AI开源的技术趋势及落地实践项目进行分享和讨论。

第一期:大咖眼中的AI开源|王宇博:四位一体,构建开源机器学习生态系统

第二期:大咖眼中的AI开源|王敏捷:深图在人工智能中的探索和研究

本期,我们为大家带来了亚马逊云科技Hero吴磊对于大规模机器学习在计算广告中的应用与落地的精彩分享。在亚马逊云开发者公众号后续的内容中也会带来更多的嘉宾分享,感兴趣的小伙伴们可以持续关注!

???? 想要了解更多亚马逊云科技最新技术发布和实践创新,敬请关注2021亚马逊云科技中国峰会!点击图片报名吧~

作为一家为数以千计客户提供广告投放服务的公司,FreeWheel致力于打造融合买卖双方的统一交易平台,在连接媒体和广告主的同时,提供全方位、品效一体的、跨屏的计算广告服务。

从营销诉求和目的的角度,计算广告分为品牌广告和效果广告。在品牌广告领域,FreeWheel会利用机器学习进行计算广告的库存预测和库存推荐。在效果广告领域,当FreeWheel以SSP流量主的角色参与市场的时候,会利用机器学习进行系统优化,而当FreeWheel以DSP广告主的角色参与市场的时候,则会结合历史竞价记录,用机器学习构建预测模型,该模型可根据价格判断赢率,或者给定赢率,从而推荐相应的价格。结合广告库存预测,根据市场上流量和价格的波动,可以很灵活地博取流量采买最大的ROI。

库存预测在计算广告领域有着举足轻重的作用,不论是品牌广告、还是效果广告,库存预测为供需规划、出价策略奠定了坚实基础。所谓库存预测,是指在不同的定向条件上,预测未来一段时间广告库存的存量。对广告主来说,最大的诉求是用最低的广告预算,触达到最相关的用户。因此,我们需要把不同的定向条件如性别、年龄、地域等维度先做分组,然后进行预测。

在计算广告领域用来刻画流量的定向条件非常多,不同维度的组合就是笛卡尔积,组合的数量会随着维度以及维度本身多样性的增加而呈指数级爆炸。假设有1百万种组合,那么就有一百万个时序需要去预测。采用传统方法,比如ARIMA,那么需要训练并维护百万个model,这样的工程量显然不现实。另外,在实际场景中,需要以小时为粒度,预测未来2160个单元,对于这么长的时间序,要保证它的准确性和预测效率,是一个很大的挑战。因为要预测2160时间单元,为了确保准确性,至少需要回溯同样的时间长度,在FreeWheel,每天新增的广告投放日志在10亿这个级别,整体的数据体量是非常大的。

总结来说,吴磊认为库存预测主要面临4个方面的挑战,分别是维度爆炸、工程复杂度、超长时间序和海量数据样本

为了应对这4个方面的挑战,FreeWheel设计、实现了定制化的深度模型。该模型基于Google在2016提出的wide and deep进行设计。

首先针对维度爆炸和工程复杂度问题,FreeWheel通过使用wide和deep,分别提取定向条件和与之对应的时序序列,达到用一个模型就可以应对上百万种不同的时序序列,只需训练并维护一个模型也大大降低了工程上的复杂度。

其次为了应对超长时间序问题,FreeWheel设计了element wise的loss function,让2160个时间单位的反向传播互相独立、互不影响。

最后针对海量数据的挑战,FreeWheel选择亚马逊云科技提供的Amazon SageMaker服务,并将业务从数据中心全部迁移到亚马逊云科技。相比于独立搭建并维护一套分布式环境,这样做大大节约了时间和精力,吴磊说:这符合FreeWheel一贯坚持的把专业的事交给专业的人去做的理念。

对于模型的效果来说,模型的设计与调优固然重要,不过对于投入到整条流水线的精力和时间来说,基本上符合2/8定律,在实际的应用和落地中,往往有80%的时间和精力来处理数据、准备特征和训练样本。

FreeWheel主要用Apache Spark来做样本工程和特征工程、以及相关的数据处理,吴磊简要介绍了这一过程。

对于时序问题来说,首先要面对的是样本补齐的问题。用户行为在时间上往往不是连续的,那么体现在一条时序上,就会发现某些时间是缺失的,这时候,就需要进行样本的补齐。针对这一问题FreeWheel的解决思路是:首先把所有组合事先准备出来,在所有时段上都把广告曝光置零。然后再从线上日志上汇总不同组合下不同时段下的“正样本”,接下来,只要把这两张表做一个左连接,就能达到想要的业务效果。而把两张表用Spark进行连接后,会发现性能非常差,在10台EC2的Spark集群上花了将近7个小时。为了把执行时间降低,FreeWheel团队对Spark的性能了调优——使用哈希值,替换庞大而又众多的join keys。调优之后,在同样的集群规模上,执行时间降低到了20分钟以下。

获得时序样本后,需要进行特征工程。特征工程主要分为2个部分。第一部分是用Spark Window操作把事先按照小时排序的impression做一个窗口滑动操作,这样真真正正把时序样本创建出来。第二部分是特征生成,如根据时间戳,生成各式各样的时间特征。因为数据最终是要feed给Tensorflow深度模型的,因此需要提前把所有的字段做encoding。

样本准备好后,接下来就是模型训练和推理。首先是训练,为了兼顾模型效果和执行效率,FreeWheel参考了迁移学习的思路,用大批量数据预先训练模型,保证模型效果,然后每天用增量数据来微调模型参数。其次是推理,因为模型需要服务不同的下游,有些需要批量的预测结果,所以从任务种类来说分成了以下4种训练和推理任务。

模型上线之后,从效果能上能够保证最细粒度的MAPE控制在20%左右,而聚合后的MAPE,能控制在10%以下。在执行效率方面,离线冷启动即预训练模型的时间是2个小时,增量训练实际只需要10分钟,批量推理5分钟就能完成。

写在最后

多年来,亚马逊云科技在人工智能领域积累了众多项目及实践经验,并一直致力于与全球开发者共创,希望为人工智能领域带来新的活力。2021亚马逊云科技中国峰会上海站已完美落幕,大会以“构建新格局,重塑云时代”为题,携手云计算行业领先的技术践行者,共同分享云时代重塑和构建的故事。同时,上海站也只是本次峰会的先锋官,亚马逊云科技中国峰会还将于9月9日-9月12日在线上与大家见面!

???? 点击图片报名参与亚马逊云科技中国峰会~

该峰会覆盖一百多个技术专场,设有人工智能领域技术分论坛,为您带来干货满满、精彩不断的内容。此外,还将携手开源社区及技术大咖在线观点碰撞,释放活力!

????点击下方视频,一起来听听吴磊分享更多他的构建故事


听说,点完下面4个按钮

就不会碰到bug了!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/850645
推荐阅读
相关标签
  

闽ICP备14008679号