营销算法之争落幕 简化代码与迁移学习成最大赢家

北京时间 6 月 5 日,IJCAI 2018 阿里妈妈国际广告算法大赛决赛在杭州正式结束,8 支决赛队伍经过了演讲、答辩和 5 名评委的合议之后,最终由 DOG 队获得了冠军,蓝鲸烧香队和躺分队分列二三名,禁止实习咋找工作啊队和强东队获得创新奖,这五支队伍共同获得了 7 月前往斯德哥尔摩参加 IJCAI 2018 主会的参会资格。

赛题介绍

此次大赛以“挖掘更多的技术及人才,赋能整个营销生态”目标,赛程包括了初赛、复赛和决赛三个阶段。而赛题也是随着赛程的推进逐步深入开放数据,难度也逐步增加。

此次大赛的赛题采用的数据均来自于真实业务场景,作为阿里巴巴旗下的大数据营销平台,阿里妈妈拥有阿里集团的核心商业数据,这些数据一直被用于采用深度学习、在线学习、强化学习等人工智能技术来高效精准预测用户购买意向。但是,电商平台是一个复杂的生态系统,用户行为偏好、商品长尾分布、热点事件营销等因素都会给转化率预估带来了巨大挑战。如何更好地利用海量的交易数据来高效准确地预测用户的购买意向,是人工智能和大数据在电子商务场景中需要继续解决的技术难题。

本次比赛以阿里电商广告为研究对象,提供平台的海量真实交易数据,参赛选手通过人工智能技术构建预测模型预估用户的购买意向,即给定广告点击相关的用户(user)、广告商品(ad)、检索词(query)、上下文内容(context)、商店(shop)等信息的条件下预测广告产生购买行为的概率(pCVR),形式化定义为:

pCVR=P(conversion=1 | query, user, ad, context, shop)。结合淘宝平台的业务场景和不同的流量特点,定义了“日常的转化率预估”和“特殊日期的转化率预估”两类挑战。

而通过选手的介绍也会发现此次的赛题难度所在,初赛时提供了前七天的数据预测第八天,而复赛则是提供了第八天上午的数据预测下午,相应的数据量也在增加,在初赛时训练数据集为 48 万,测试数据集为 6 万;复赛时,训练数据集为 1000 万,测试数据集为 173 万。

选手决赛解题思路

在通过层层筛选之后,有 8 支队伍进入了最终决赛。这些队伍的成员均是来自大学、科研机构或者科技公司,实力与经验兼备。

冠军 DOG 队:简化代码与迁移学习

决赛的争夺显得异常激烈,最终夺得桂冠的是由来自产业界的花志祥单人组成的 DOG 队。

花志祥先解释了之前初赛和复赛的解题思路。前七天的数据比较平稳,而第八天出现了较大的波动,因此根据 1 到 7 天的数据同时预测第八天上午和下午的数据,这其实就是使用了迁移学习的方法,在普通的场景下预测促销场景的情景。然后再结合第八天促销当日上午的销量训练模型来获取结果,即预测当日下午的数据。而这个整个模型只利用 Lightgbm 来做。

 

在模型特征方面使用了四种。统计特征方面包括了用户点击商品 item 个数、最后一次搜索时间、看的最大页数、搜索小时平均、交互时间等;时差特征方面主要考虑了两次交互之间的时长,在真实场景中就包括了用户、商品 item 交互、商品品类 item_category、商品品牌 item_brand_id 两次交互的时长等,这些因素在排序特征中则表现为用户与商品的交互次数。

在表征特征方面,使用了词袋统计了 property 是否存在、统计用户的所有查看在特征上的占比、统计 item 被查看的用户在这些特征上的占比的平均情况,而借用这些特征建模以实现对用户行为的精准预测。在核心代码方面,选手只用了一页就成功展现,简洁的代码也是帮助其取得胜利的原因。

评委们对 DOG 队的评价为“迁移学习的使用让人眼前一亮,整个的方法简单,有效,思路清晰”。

亚军蓝鲸烧香队:模型数据完整全面

决赛获得亚军的是由来自产业界的 BRYAN、桑楡、李困困三人组成的蓝鲸烧香队。

主讲人首先把赛题进行了分析,业务场景、搜索和转化预估是其中重点;数据分析方面,每天的样本和交易数、每天交易率、每小时的转化率进行整体趋势预估;数据类型进行划分,缺失数据采用平均数填充和众数填充的方式填充;用户分析方面,借助用户点击次数发现低频诉求,购买次数发现长尾分布,二者结合可发现即时兴趣和目标明确用户;然后深入分析后找到数据里的隐藏信息,最后可以绘制每天的点击数趋势。

为提升优化算法的效率,减少线上成绩的运气性成分,同时避免算法过度依赖于线上数据集的问题,因此采用了线下测试的方法,线上验证的优化在线下有显著的提升。在模型设计方面,团队设计了主模型、全局数据模型、时间信息模型等三个模型来实现精准预测。

在特征方面,蓝鲸烧香把特征群分成了三类特征群,一类原始特征包括了基础特征;二类简单特征包括了转化率特征、排名特征、占比特征、趋势特征等;三类复杂特征则包括了 query 交互特征、用户交互特征、竞争特征、业务特征等。利用多种特征进行线下测试后找到不同特征群对预测准确度的提升,以找到重要的特征。而在模型融合方面,则是采用了简单加权融合的方式来融合 LightGBM 模型。

评委对蓝鲸烧香队的评价为“演讲令人印象深刻,整个的模型数据等各方面都非常全面和完整,也取得了非常好的效果”。

季军躺分队:业务的深刻理解

获得季军的队伍是由浙江工业大学陈波成、中南大学罗宾理和天津大学吴昊三人组成的躺分队。

躺分队先对赛题进行了解析,他们认为赛题的难点,一方面在于如何在正常流量数据中,找到适合表达促销或突变的特征;另一方面如何在模型选择上,如何找到尽快落地于工业界的轻量级框架。通过分析后发现,最后一天为大促日,因此建模方向可以分成两种,一种是常规思路针对 User 和各项交互建模,另一种则是针对促销时探求变化进行建模。

因此,躺分队提初了四套训练方案,分辨是针对变化的 Only-7、全量数据的 All-day、全量数据的采样 Sample-All、全量统计特征提取 Day7 特征 All-to-7。分别对赛题进行了验证。

在特征工程方面,躺分队先对基础特征进行分列,然后去掉取值变化小的列,再去掉缺失值过多的列。在用户特征方面,通过基础数据确定用户偏好行为;再通过时间差等推出用户的近期行为情况。然后对店铺吸引的人群状况和广告吸引的人群状况等进行画像。

借助这些特征可以使用前 7 天的数据来预测第八天的概率值,推算 Item_property_list 与 predict_category_property 的匹配程度,因为考虑到赛题实际场景,当用户检索时,查询词的预测的类目有与检索词相匹配,用户更有机会购买。

在模型选择方面选择了神经网络,这样可以将 ID 特征放入交叉层连续特征 Embedding。总结后发现,首先是应当对促销时期应考虑变化特征,其次合理的特征提取框架是致胜之道,再者多模型的融合可以提升精度较多。

 

评委对躺分队的评价为“对整个的系统思考非常的完整,业务理解深刻,业务分析到位”。

创新奖:禁止实习咋找工作啊队与强东队

在原本的计划中,决赛将会产生两支特别奖的队伍,但是禁止实习咋找工作啊队与强东队两支队伍的表现让评委组临时决定把奖项修改为创新奖,去鼓励在过程中有创新想法的这两支队伍。

禁止实习咋找工作啊队由中科院庄晓敏、中科院计算所张卫民、香港科技大学李昊阳三人组成。他们首先将数据区分了时间区间,有效的利用了不同特点的历史数据,以统计特征分析用户行为;这样做发现了两个用户的行为特点,第一 User 数据稀疏大部分用户只在一天出现,第二数据少的用户转化率反而高。

因此,对数据少的用户采用构造特征区分出来,便于模型总体判断;而对数据较多的用户则直接用构造特征具体表现用户行为。时间特征方面包括了小时热点、趋势特征、窗口等很多都是强特征;而比较特殊的一点在于 Embedding 特征,同一个用户点击过的 item 按照时间顺序排序,作为一个 doc, 这样一个 doc 实际表示的是用户的点击序列。Doc 中的每个”word”(item) 的上下文, 表示的是用户关注的跟这个 item 类似的 item;同理还能推算出 Shop 和 User 的特;而 Embedding 特征在几个模型上实验,线下提升万分之 3+~ 万分之 6+;此外,因为被越多优质的网页所指的网页,它是优质的概率就越大,用户点击的 PageRank 值也一样重要。

 

模型算法方面,组合特征模型需要不同单模型特征拼接做一定筛选;Kfold-average 模型的话,单模型做 10fold,9 个 fold 训练,预测 test 集合,10fold 做 avg。能有效降低 variance,结果有提升且更加稳定。最终选定的模型便如上图所示。

评委对禁止实习咋找工作啊队的评价为“团队比较有特色,充分的挖掘了用户序列化行为信息、用户表达,提升了效果”。

强东队则是由吉林大学李强、山东大学沈冬冬、中南大学蒋浩然三人组成。他们首先对赛题进行了分析,发现购物交互中 98% 的用户点击次数是在 10 次以下的。对此做出一些特征点,比如首次点击、点击次数总和、最爱商品等。但是真正对此次比赛有用的是深度学习的一些特征,这其中主要有三种,单种类特征的 encoding、连续特征的分桶之后的 encoding、多特征的 pad 之后使用 attention 加权。

多特征能够通过 pad 能输入到 Embedding 层,队伍借鉴了 DIN 网络的思路,创建 attention 层对多特征加权。深度学习领域的 ctr 模型中大部分模型都在优化特征的二阶组合。在一阶和二阶使用 lr 层和 fm 层,fm 层优化到线性,多阶特征也可以使用 cin 层或者 mvm 层,考虑到 cin 层的复杂度过高,使用了简便的 mvm 层组合无限阶特征。

在 deep 层可以获取特征间的非线性关系,输入分别为离散特征的 embdding,连续特征分桶后的 embdding,多特征 attention 之后的加权向量。将 lgb 的叶子进行 encoding 放入 deep 层,可以更加显性的获得特征的组合信息。

值得注意的是,在 DL 模型调试时,应当尽量使用矩阵运算;对 embedding 层使用一维的 dropout 会减少过拟合风险;NN 特征随机性比较大,每次训练出来的模型有随机性,可以多次取平均;使用 hashtrick 大大减少资源的损耗。评委对强东队的评价为“利用深度学习方法进行端到端的学习,里面涉及了工业模型,在所有选手中非常亮眼”。