一, 写在前面
关于标题所承载的话题, 一直有计划写个总结, 没料到各种耽搁, 从 17 年底拖到了 19 年的今天. 不过这也带来了一点额外的收获, 18 年呈现的新挑战让我对技术的发展脉络和关键点有了更深刻的认知. 因此在这个时间点, 在深度学习 (Deep Learning, 下文简称 DL) 落地互联网, 驱动业界技术的轮子旋转了差不多第一圈的时候, 系统地把我们的实践经验做个梳理和盘点, 跟大伙聊聊, 对业界, 对不少还在这条路上折腾的同行们, 权当一个可做粗浅参考的路标. 此外, 既然踩在了第二圈即将转动的交叉点附近, 也斗胆对下一阶段技术的发展抛些板砖, 谈谈我们看到的挑战和趋势.
能力有限, 本文主要以点击率 (Click-Through Rate, CTR) 预估技术这个战场来展开叙述:
这是我熟悉的主场, 下文叙述也主要以我负责的阿里定向广告点击率预估技术发展过程为蓝本 ;
我常把 CTR 预估技术类比为数学领域的黎曼猜想, 它是镶嵌在互联网应用技术上的一颗闪亮的明珠, 它的技术前进既是业界技术的真实写照, 很多时候也是引领和驱动互联网应用技术发展的原力 (广告领域的性价比因素).
当然资深的从业者们应该都清楚, 互联网一大批核心技术都跟 CTR 预估有着千丝万缕的联系, 因此这里技术的探讨足够典型.
为了不引起误解, 提前交代一下, 本文主要是基于我们团队公开发表的论文, 探讨技术为主, 不宜披露的数字都隐去了. 这些技术绝大部分都已经在实际生产系统中落地, 服务着阿里典型业务 (如定向广告, 信息流广告等) 的主流量, 且取得了显著的收益. 一个可以公开的数字是, 基于 DL 的 CTR 技术迭代已经带来了超过百亿人民币规模的直接广告收入增长. 目前在国内, 阿里妈妈的广告市场份额是无可争议的第一. 因此读者可以放心, 这些技术不是华而不实的炫技, 而是真正经受过工业级规模洗礼的实战利器. 此外, 本文不是详细地给大家解读 paper, 而是跳出结果, 回归技术思考, 探讨 DL 驱动这个领域技术发展的过往, 现在和未来.
倡导: 技术的封闭性在 open-source 时代已经不堪一击. 业界顶尖团队的领先优势最多保持半年到一年, 拥抱开放, 共同推进行业技术的发展是不可阻挡的洪流, 也是我们行为背后的驱动力.
二, 深度学习驱动的 CTR 预估技术演化
0. 浅层模型时代: 以 MLR 为例
2005-2015 这十年间, 大规模机器学习模型 (特指浅层模型) 一度统治着 CTR 预估领域, 以 G/B 两家为代表的 "大规模离散特征 + 特征工程 + 分布式线性 LR 模型" 解法几乎成为了那个时代的标准解. 相关的工作相信读者们耳熟能详, 甚至据我所知今天业界的不少团队依然采用这样的技术.
阿里在 2011-2012 年左右由 @盖坤同学创新性地提出了 MLR(Mixed Logistic Regression) 模型并实际部署到线上系统, 同时期也有如 FM 模型等工作出现. 这些模型试图打破线性 LR 模型的局限性, 向非线性方向推进了一大步.
我在 2014 年加入阿里定向广告团队, 不久负责了 Ranking 方向, 推进 CTR 技术的持续迭代是我工作的主航道之一. 作为 MLR 模型的诞生团队, 显然我们对它有着强烈的偏爱. 最初 MLR 模型的主要使用方式是 "低维统计反馈特征 +MLR", 这是受阿里技术发展初期的轨道限制, 读者不用太惊讶.
我们做的第一个工作, 就是试图将 MLR 模型推向大规模离散特征体系, 核心思考是细粒度的特征刻画携带的信息量要远比统计平均特征的分辨率高, 这种特征体系至今在整个业界都是最先进的. 要完成这样一个升级, 背后有巨大的挑战 (在 DL 时代启动初期, 我们也遇到了类似的挑战), 具体包括:
从数百维统计特征到数十亿离散特征, 训练程序要做重大升级, 从数据并行模式要升级到模型并行方式, 且非线性模型复杂度高, 需要充分利用数据的结构化特点进行加速;
"大规模离散特征 + 分布式非线性 MLR 模型" 解法直接从原始离散特征端到端地进行数据模式学习, 至少在初期时我们没有做任何的特征组合, 完全依赖模型的非线性能力. 在这种互联网尺度 (百亿参数 & 样本) 的数据上, 模型能不能学习到兼具拟合能力与泛化能力的范式?
这种超大规模数据上的非凸优化 (MLR 加入正则后进一步变成非光滑) 学术界鲜有先例. 它的收敛性是一个巨大的问号.
当然, 结果是我们成功了. 15 年初的时候成为了新的技术架构, 在定向广告的所有场景都生产化落地, 取得了巨大的成功. 但是我们不得不承认,"大规模离散特征 + 分布式非线性 MLR 模型" 的解法在业界并没有大规模地被采纳, 有多种原因, 技术上来讲 MLR 模型的实现细节我们直到 17 年才正式地写了一篇论文挂在了 arxiv 上, 代码也没有开源, 大家想要快速尝试 MLR 也不太方便; 其次 LR+ 特征工程的解法深深影响了很多技术团队的思考方式和组织结构, 我们后面会谈到, 这种对特征工程的依赖直到 DL 时代还大量保留着, 一个重要的因素也是因为特征工程比较符合人的直观认知, 可以靠快速试错并行迭代, MLR 这类非线性端到端的解法需要比较强的模型信仰和建模能力.
大约从 14 年到 16 年, 我们在基础 MLR 架构上做了大量的优化, 后来以 MLR 的论文公布为契机, 我在阿里技术官微里面写了一篇介绍文章, 里面披露了大量的改进细节, 大家有兴趣可以翻阅翻阅, 算是致敬 MLR 时代: MLR 深度优化细节 https://mp.weixin.qq.com/s/MtnHYmPVoDAid9SNHnlzUw .
1. 技术拐点: 端到端深度学习网络的突破
15 年的时候, 基于 MLR 的算法迭代进入瓶颈. 当时认识到, 要想进一步发挥 MLR 模型的非线性能力, 需要提高模型的分片数 -- 模型的参数相应地会线性增长, 需要的训练样本量同样要大幅度增加, 这不太现实. 期间我们做了些妥协, 从特征的角度进行优化, 比如设计了一些直观的复合特征, 典型的如 "hit 类特征": 用户历史浏览过商品 A/B/C, 要预估的广告是商品 C, 通过集合的 "与" 操作获得 "用户历史上浏览过广告商品" 这个特征.
细心的读者应该很容易联想到后来我们进一步发展出来的 DIN 模型, 通过类似 attention 的技巧拓展了这一方法. 后来进一步引入一些高阶泛化特征, 如 user-item 的 PLSA 分解向量, w2v embedding 等. 但这些特征引入的代价大, 收益低, 工程架构复杂.
15 年底 16 年初的时候我们开始认真地思考突破 MLR 算法架构的限制, 向 DL 方向迈进. 这个时间在业界不算最早的, 原因如前所述, MLR 是 DL 之前我们对大规模非线性建模思路的一个可行解, 它助力了业务巨大的腾飞, 因此当时够用了 -- 能解决实际问题就是好武器, 这很重要.
在那个时间点, 业界已经有了一些零散的 DL 建模思路出现, 最典型的是 B 家早期的两阶段建模解法 -- 先用 LR/FM 等把高维离散特征投影为数千规模的稠密向量, 然后再训练一个 MLP 模型. 我们最初也做过类似的尝试如 w2v+MLR/DNN, 但是效果不太显著, 看不到打败 MLR 的希望 (不少团队从 LR 发展过来, 这种两阶段建模打败 LR 应该是可行的). 这里面关键点我们认为是端到端的建模范式.
实践和思考不久催生了突破. 16 年 5-6 月份我构思出了第一代端到端深度 CTR 模型网络架构 (内部代号 GwEN, group-wise embedding network), 如图 1 所示. 对于这个网络有多种解释, 它也几乎成为了目前业界各个团队使用深度 CTR 模型最基础和内核的版本.
图 1 给出了思考过程, 应该说 GwEN 网络脱胎换骨于 MLR 模型, 是我们对互联网尺度离散数据上端到端进行非线性建模的第二次算法尝试. 当然跟大规模 MLR 时期一样, 我们再一次遭遇了那三个关键挑战, 这里不再赘述.
有个真实的段子: 16 年 6 月份我们启动了研发项目组, 大约 7 月份的时候有同学发现 G 在 arxiv 上挂出了 WDL(wide and deep) 那篇文章, 网络主体结构与 GwEN 如出一辙, 一下子浇灭了我们当时想搞个大新闻的幻想. 客观地讲当时技术圈普遍蔓延着核心技术保密的氛围, 因此很多工作都在重复造轮子. 16 年 8 月份左右我们验证了 GwEN 模型大幅度超越线上重度优化的 MLR, 后来成为了我们第一代生产化 deep CTR model.
因为 WDL 的出现我们没对外主推 GwEN 模型, 只作为 DIN 论文里的 base model 亮了相. 不过我在多次分享时强调, GwEN 模型虽看起来简单直接, 但是背后对于 group-wise embedding 的思考非常重要, 去年我受邀的一个公开直播中对这一点讲得比较透, 感兴趣的同学可以翻阅 GwEN 分享资料: https://zhuanlan.zhihu.com/p/34940250
2. 技术拐点: 模型工程奠基
GwEN 引爆了我们在互联网场景探索 DL 技术的浪潮, 并进而催生了这个领域全新的技术方法论. 以阿里定向广告为例, 16-17 年我们大刀阔斧地完成了全面 DL 化的变革, 取得了巨大的技术和业务收益. 如果给这个变革的起点加一个注脚, 我认为用 "模型工程" 比较贴切. 这个词是我 17 年在内部分享时提出来的 (不确定是不是业界第一个这么提的人), 后来我看大家都普遍接受了这个观点.
如果说大规模浅层机器学习时代的特征工程 (feature engineering, FE) 是经验驱动, 那么大规模深度学习时代的模型工程 (model engineering, ME) 则是数据驱动, 这是一次飞跃. 当然 ME 时代不代表不关注特征, 大家熟悉的 FE 依然可以进行, WDL 式模型本来就有着调和 feature 派和 model 派的潜台词 (听过不同渠道的朋友类似表述, G 家的同学可以证实下) 不过我要强调的是, 传统 FE 大都是在帮助模型人工预设一些特征交叉关系先验, ME 时代特征有更重要的迭代方式: 给模型喂更多的, 以前浅层模型难以端到端建模的 signal(下一节细说),DL model 自带复杂模式学习的能力.
说到这, 先交代下 GwEN/WDL 端到端 deep CTR model 成功后业界的情况: 很多技术团队奉 WDL 为宝典, 毕竟 G 背书的威力非常大. 随后沿着 "把特征工程的经验搬上 DL 模型" 这个视角相继出了多个工作, 如 PNN/DeepFM/DCN/xDeepFM 等.
这些模型可以总结为一脉相承的思路: 用人工构造的代数式先验来帮助模型建立对某种认知模式的预设, 如 LR 模型时代对原始离散特征的交叉组合 (笛卡尔乘积), 今天的 DL 时代演变为在 embedding 后的投影空间用內积, 外积甚至多项式乘积等方式组合. 理论上这比 MLP 直接学习特征的任意组合关系是有效的 --"No Free Lunch" 定理. 但我经常看到业界有团队把这些模型逐个试一遍然后报告说难有明显收益, 本质是没有真正理解这些模型的作用点.
16 年底的时候, 在第一代 GwEN 模型研发成功后我们启动了另一条模型创新的道路. 业界绝大部分技术团队都已跨入了个性化时代, 尤其在以推荐为主的信息获取方式逐渐超越了以搜索为主的信息获取方式时更是明显, 因此在互联网尺度数据上对用户的个性化行为偏好进行研究, 建模, 预测, 变成了这个时期建模技术的主旋律之一.
具体来说, 我们关注的问题是: 定向广告 / 推荐及个性化行为丰富的搜索场景中, 共性的建模挑战都是互联网尺度个性化用户行为理解, 那么适合这种数据的网络结构单元是什么? 图像 / 语音领域有 CNN/RNN 等基础单元, 这种蕴含着高度非线性的大规模离散用户行为数据上该设计什么样的网络结构? 显然特征工程式的人工代数先验是无法给出满意的解答的, 这种先验太底层太低效. 这个问题我们还没有彻底的认知, 探索还在继续进行中, 但至少在这条路上我们目前已经给出了两个阶段性成果:
DIN 模型 (Deep Interest Network,KDD'18), 知乎 @王喆同学有一篇实践性较强的解读, 推荐参阅《DIN 解读》: https://zhuanlan.zhihu.com/p/51623339
- MLR: "Learning Piece-wise Linear Models from Large Scale Data for Ad Click Prediction"
- WDL: "Wide and Deep Learning for Recommender Systems"
- DeepFM: "DeepFM: A Factorization-Machine based Neural Network for CTR Prediction"
- PNN: "Product-based Neural Network for User Response Prediction"
- DCN: "Deep & Cross Network for Ad Click Prediction"
- xDeepFM: "xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems"
- DIN: "Deep Interest Network for Click-Through Rate Prediction"
- DIEN: "Deep Interest Evolution Network for Click-Through Rate Prediction"
- ESMM: "Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate"
- Rocket Training: "Rocket Launching: A Universal and Efficient Framework for Training Well-performing Light Net"
来源: http://www.tuicool.com/articles/y2IJZnZ