🥍广告投放引擎算法流程解析
type
status
date
slug
summary
tags
category
icon
password
Status
目录
第一章:开篇 - 当算法遇上广告
“在广告投放的战场上,算法就是你的武器,数据就是你的弹药。”
1.1 一个真实的场景
想象这样一个想·场景:
凌晨3点,你躺在床上刷着手机,突然看到一条运动鞋的广告。点开一看,正好是你最近想买的那款,尺码、颜色都合适,价格还比其他平台便宜50块。你毫不犹豫地下单了。
这看起来像是巧合,但实际上,这背后是一套精密的算法系统在工作:
- 特征捕获:你最近搜索过”跑步鞋”,浏览过运动装备,停留时间较长
- 模型预估:CTR模型预测你有23.7%的概率会点击这个广告
- 智能出价:CVR模型预测你有8.5%的转化概率,系统计算出最优出价
- 实时竞价:在100ms内完成30+维度过滤、模型预估、出价决策
- 精准投放:广告恰好在你最有购买欲望的时刻出现
这一切,都发生在不到100毫秒的时间里。
1.2 程序化广告的革命
1.2.1 从粗放到精准
传统广告投放就像”广撒网”:
- 在电视台买时段,覆盖百万观众,但只有0.1%是目标用户
- 在门户网站买横幅广告,展示给所有人,转化率不到1%
- ROI极低,广告主的钱大部分都浪费了
程序化广告的出现彻底改变了这一切:
提升5倍的背后,就是算法的力量。
1.2.2 RTB实时竞价的博弈
每一次广告展示,都是一场激烈的实时竞价(RTB, Real-Time Bidding):

在这个过程中,算法的准确性直接决定了胜负:
- 预估过高 → 出价过高 → 成本浪费
- 预估过低 → 出价过低 → 失去流量
- 预估精准 → 出价合理 → 利润最大化
1.3 算法驱动的核心价值
1.3.1 为什么需要算法?
广告投放面临的核心挑战:
1. 海量特征维度
人工规则完全无法处理如此高维的特征空间,只有深度学习才能胜任。
2. 实时性要求
- RTB竞价:< 100ms 响应时间
- 每秒处理:10万+ QPS
- 并发请求:多DSP同时竞价
3. 精度要求
- CTR预估误差1% → 成本增加10%
- CVR预估误差5% → ROI下降30%
- 点击率从5%提升到6% → 收入增长20%
1.3.2 算法的三重价值
① 预测价值:知道谁会点、谁会买
CTR/CVR模型通过深度学习,从海量历史数据中学习:
- 什么样的用户会对什么样的广告感兴趣
- 在什么时间、什么场景下转化概率最高
- 如何平衡点击和转化的多目标优化
② 决策价值:知道该出多少价
基于预估结果,智能出价引擎计算:
③ 优化价值:持续学习、自我进化
- 在线学习:实时反馈,模型每天更新
- A/B测试:持续优化,效果提升不停
- 冷启动策略:新广告也能快速找到目标用户(目前业界逐渐淘汰)
1.4 本文的核心内容
第二章:问题定义
- CTR vs CVR:两个预估任务的本质区别
- 为什么CVR比CTR难10倍?
- 多目标建模的技术挑战与解决方案
第三章:模型架构
- 从LR到DNN:推荐模型的演进历程
- Wide & Deep、DeepFM、DCN:如何选择?
- 动态Embedding:亿级特征的终极武器
第四章:特征工程
- 稀疏特征处理:Hash、Embedding、交叉
- ID类特征 vs 统计类特征的平衡
- 特征重要性分析:找出真正有用的特征
第五章:训练与部署
- Horovod分布式训练:从1小时到10分钟
- TensorFlow Serving:百万QPS的推理服务
- 模型更新策略:如何做到平滑上线
第六章:算法与业务融合
- 预估 → 出价:算法如何驱动决策
- eCPM计算:平衡收益与成本的艺术
- 冷启动:新广告的破冰之旅
第七章:效果评估
- 离线指标:AUC、LogLoss、GAUC
- 在线指标:CTR、CVR、ROI、Revenue
- A/B测试:从实验设计到结果分析
1.5 实战案例预告
在接下来的章节中,我会结合真实的生产环境代码进行讲解:
案例1:亿级特征的动态Embedding实现
案例2:独立的CTR和CVR模型架构
案例3:实时预估服务的高可用设计
“在正确的问题上做正确的事,比在错误的问题上做正确的事要重要100倍。”
第二章:问题定义 - 预估什么,如何预估
2.1 广告预估的本质
在深入技术细节之前,我们先要搞清楚一个根本问题:我们到底在预估什么?
2.1.1 广告投放的两个关键决策
每次广告投放,我们都需要回答两个问题:
① 这个用户会点击吗? → CTR预估(Click-Through Rate)
② 这个用户会转化吗? → CVR预估(Conversion Rate)
看起来很简单,但背后隐藏着深刻的商业逻辑:

2.1.2 为什么两个预估都需要?
很多新手会问:“有了CVR预估,为什么还需要CTR?直接预估转化不就行了?”
这是一个非常好的问题。答案在于媒体计费方式的多样性:
计费方式 | 全称 | 计费时机 | 需要预估 | 应用场景 |
CPM | Cost Per Mille | 按展示付费 | - | 品牌广告 |
CPC | Cost Per Click | 按点击付费 | CVR | 效果广告 |
CPA | Cost Per Action | 按转化付费 | - | 电商广告 |
OCPC | Optimized CPC | 按点击付费,优化转化 | CTR + CVR | 智能投放 |
实际案例:
2.2 CTR预估:点击率的业务价值
2.2.1 什么是CTR?
定义:CTR(Click-Through Rate)= 点击次数 / 曝光次数
2.2.2 CTR预估的业务价值
① 流量价值评估
CTR直接决定了流量的价值:
② CPM出价的核心依据
在CPM(按展示付费)模式下,CTR预估精度直接影响ROI:
③ 用户体验优化
CTR高的广告 = 用户真正感兴趣的广告 = 更好的用户体验
2.2.3 CTR预估的技术挑战
挑战1:样本不均衡
解决方案:
挑战2:特征稀疏性
解决方案(动态Embedding):
挑战3:实时性要求
我们的解决方案:
2.3 CVR预估:转化率的技术挑战
2.3.1 什么是CVR?
定义:CVR(Conversion Rate)= 转化次数 / 点击次数
2.3.2 为什么CVR比CTR难10倍?
这不是夸张,而是真实的工程经验。让我逐一拆解:
难点1:样本稀疏性指数级提升
难点2:样本选择偏差(Sample Selection Bias)
这是CVR预估最致命的问题:
核心矛盾:
- 训练集:只有点击用户的数据(5%的人群)
- 预测集:需要对所有用户预估(100%的人群)
真实影响:
业界解决方案:
方案1:ESMM(Entire Space Multi-Task Model)
方案2:我们的多目标CVR建模
难点3:延迟反馈(Delayed Feedback)
CVR的另一个独特挑战:转化可能发生在点击后的任意时间
我们的解决方案:
难点4:负样本定义的模糊性
CTR很清晰:点了就是正样本,不点就是负样本。
CVR却很模糊:
真实数据分布:
业界实践:
2.3.3 CVR预估的业务价值
尽管困难重重,CVR预估的价值却是巨大的:
① 精准出价的关键
② ROI优化的核心
2.4 多目标建模的权衡
在实际业务中,我们往往需要同时优化CTR和CVR。这就引出了多目标学习的挑战。
2.4.1 为什么需要多目标?
单目标的局限性:
多目标的优势:

2.4.2 多目标学习的经典范式
范式1:Hard Parameter Sharing
优点:参数量少,训练快
缺点:任务冲突时效果差
范式2:MMOE (Multi-gate Mixture-of-Experts)
优点:任务自适应选择专家,效果好
缺点:参数量大,训练慢
范式3:ESMM (Entire Space Multi-Task Model)
这是我们重点使用的方案,前面已经介绍过:
2.4.3 我们的多目标实践
在实际项目中,我们采用了改进的多目标CVR建模:
设计思路:
- 共享DNN表示:学习通用的用户-广告匹配模式
- 独立FM交叉:为每个转化目标学习特定的特征交叉
- 多窗口转化:同时建模即时转化、短期转化、长期转化
实际效果:
关键要点
1. CTR vs CVR的本质区别
- CTR:曝光→点击,样本充足,预估相对容易
- CVR:点击→转化,样本稀疏,存在选择偏差
2. CTR预估的三大挑战
- 样本不均衡(95%负样本)
- 特征稀疏性(亿级特征)
- 实时性要求(30ms预估)
3. CVR预估的四大难点
- 样本稀疏性(只有CTR的5%数据)
- 样本选择偏差(训练集≠预测集)
- 延迟反馈(转化发生在未来)
- 负样本定义模糊(37%的样本难以判断)
4. 多目标建模的必要性
- 利用曝光数据,解决CVR样本少的问题
- 消除选择偏差,提升预估准确性
- 同时优化点击和转化,最大化ROI
工程实践要点
第三章:模型架构设计
3.1 推荐模型的演进史
在深入我们的架构设计之前,让我们先回顾一下推荐系统模型的演进历程。理解历史,才能更好地把握未来。
3.1.1 第一代:线性模型时代(2010年前)
LR (Logistic Regression) - 工业界的基石
优点:
- 简单、可解释性强
- 训练快速,易于上线
- Facebook、Google早期都在用
致命缺陷:
工程师的噩梦:
3.1.2 第二代:因子分解机时代(2010-2016)
FM (Factorization Machine) - 特征交叉的突破
2010年,Steffen Rendle提出FM,优雅地解决了特征交叉问题:
FM的魔法:
实际效果:
3.1.3 第三代:深度学习时代(2016-至今)
Wide & Deep (Google, 2016) - 深度学习的工业化
Google的实践经验:
DeepFM (Huawei, 2017) - FM与DNN的完美结合
华为的实验结果:
DCN (Google, 2017) - 显式高阶交叉
DCN的创新点:
3.1.4 第四代:超大规模时代(2020-至今)
DLRM (Facebook, 2019) - 万亿参数的工业实践
arxiv.org![arxiv.org]()
arxiv.org
arxiv.org
Facebook的生产经验:
3.2 DNN模型的选择与演进
基于业界实践和我们的实际需求,让我们看看如何选择合适的模型。
3.2.1 模型选型的权衡矩阵
模型 | 效果 | 训练速度 | 参数量 | 工程复杂度 | 适用场景 |
LR | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐ | ⭐ | 快速baseline |
FM | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐ | 数据量小 |
Wide&Deep | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | 需要记忆+泛化 |
DeepFM | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | 推荐场景首选 |
DCN | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | 高阶交叉重要 |
DLRM | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 超大规模 |
3.2.2 我们的模型演进路径
基于实际业务需求和数据特点,我们的模型经历了三个阶段:
阶段1:轻量级DNN + FM(当前生产环境)
为什么选择DNN + FM组合?
为什么FM embedding只有8维?
实验结果表格
emb_size | AUC | 训练时间 | 内存占用 | 说明 |
1 | 0.750 | 10min | 2GB | - |
4 | 0.768 | 15min | 4GB | - |
8 | 0.772 | 20min | 6GB | 最优平衡点 |
16 | 0.773 | 35min | 10GB | 边际收益递减 |
32 | 0.774 | 60min | 18GB | 性价比低 |
核心设计原则:
阶段2:多目标CVR建模(已上线)
多目标设计的价值:
单目标 CVR
- 特点:仅预估一个转化窗口(如 24 小时)
- 局限性:
- 无法区分即时转化与延迟转化
- 预估准确性有限
样本利用率低
多目标 CVR
- 特点:同时预估多个转化窗口
immediate_cvr:30 分钟内转化short_cvr:24 小时内转化long_cvr:7 天内转化
- 优势:
- 充分利用样本(覆盖不同窗口的正样本)
- 学习转化的时间模式(捕捉即时 / 延迟转化规律)
- 支持个性化窗口预估(适配不同业务场景需求)
实际效果对比
指标 | 单目标 CVR | 多目标 CVR | 差异分析 |
核心 AUC | 0.68 | 即时:0.72 / 短期:0.71 / 长期:0.69 | 多目标各窗口 AUC 均更高 |
训练样本量 | 50000 | 50000 | 样本量相同,多目标利用率更高 |
在线 ROI(投入产出比) | 1.2 | 1.6 | 多目标提升 33% |
3.3 动态Embedding的技术优势
在亿级特征场景下,动态Embedding是必选项,不是可选项。
3.3.1 为什么需要动态Embedding?
问题:静态Embedding的内存爆炸
解决:动态Embedding按需分配
3.3.2 动态Embedding的核心原理
3.3.3 我们的动态Embedding实践
关键特性:
- 按需分配:只为出现的ID分配内存
- 分布式存储:支持多机多卡训练
- 持久化支持:训练完可保存到Redis/RocksDB
- 新ID友好:新ID自动分配,无需重新训练
3.4 FM交叉特征的妙用
虽然我们因为数据量限制主要使用了轻量级方案,但FM的特征交叉能力不容小觑。
3.4.1 FM的数学原理(深度解析)
FM 模型核心数学表达式
FM 模型通过一阶项捕捉特征独立贡献,二阶项捕捉特征间交互关系

优化计算(\(O(nk)\)):数学变形降复杂度

数学证明:
3.4.2 我们的FM实现
为什么DNN只用sum,不用全连接层?
这是一个很好的问题,答案在于数据量和过拟合的权衡:
3.4.3 什么时候升级到标准DNN?
升级时机:
升级条件与当前状态对比表
评估维度 | 升级阈值要求 | 当前状态 | 是否满足 |
每日样本量 | ≥1000 万 | 700 万 | ❌ |
特征维度 | ≥1000 | 百级别 | ❌ |
过拟合差距 | ≤0.05(训练 AUC - 验证 AUC) | 0.08(差距偏大) | ❌ |
业务精度要求 | "high" | "medium" | ❌ |
第四章:特征工程的艺术
“特征决定了模型的上限,而算法只是在逼近这个上限。” - Andrew Ng
4.1 特征工程的重要性
在深度学习时代,很多人认为”特征工程已死,深度学习万岁”。但在广告推荐领域,特征工程仍然是王道。
4.1.1 一个真实的案例
为什么特征工程这么重要?
4.1.2 特征金字塔

4.2 稀疏特征的处理
稀疏特征是广告推荐中最常见的特征类型,也是最难处理的。
4.2.1 什么是稀疏特征?
4.2.2 稀疏特征处理的三种方案
方案1:One-Hot编码(不推荐)
方案2:Hash编码(传统方案)
Hash冲突的影响:
实验结果
Bucket Size | 冲突率 | AUC | 备注 |
100,000 | 99.9% | 0.65 | 几乎所有 ID 都冲突 |
500,000 | 99.0% | 0.68 | - |
1,000,000 | 95.0% | 0.70 | - |
5,000,000 | 86.5% | 0.73 | - |
方案3:动态Embedding
4.2.3 我们的特征处理流程
4.3 特征交叉策略
特征交叉是提升模型效果的核心武器。
4.3.1 为什么需要特征交叉?
4.3.2 特征交叉的层次
一阶特征:原始特征
二阶交叉:两个特征的组合
三阶及以上:高阶交叉
4.3.3 我们的交叉策略
4.4 特征重要性分析
并不是所有特征都有用,需要分析哪些特征真正起作用。
4.4.1 统计方法:特征覆盖率
特征名称(Feature) | 覆盖率(Coverage) | 唯一值数量(Unique) | 熵值(Entropy) | 特征评价与建议 |
user_id | 100% | 5M | 15.6 | 高熵、全覆盖,信息密度高,保留 |
ad_id | 100% | 1M | 13.8 | 高熵、全覆盖,信息密度高,保留 |
user_age | 95% | 80 | 4.1 | 低熵但覆盖率高,业务意义明确,保留 |
ad_category | 100% | 50 | 3.5 | 低熵但全覆盖,广告核心属性,保留 |
device_brand | 60% | 200 | 4.8 | 覆盖率不足(仅 60%),删除 |
user_income | 30% | 10 | 2.3 | 覆盖率极低(仅 30%)+ 低熵,删除 |
保留特征:user_id、ad_id、user_age、ad_category核心原因:覆盖率≥95%(无严重缺失),且要么信息密度高(高熵:user_id/ad_id),要么是业务核心属性(ad_category/user_age)。
删除特征:device_brand、user_income核心原因:覆盖率过低(分别为 60%、30%),大量样本缺失该特征,会导致模型训练偏差或特征利用效率低。
4.4.2 模型方法:特征Importance
排名 | 特征 | Embedding L2 | Permutation(AUC 下降) | SHAP(平均绝对值) | 备注 |
1 | user_ad_cross_ctr | 8.5 | 0.08 | 0.15 | 最重要(统计交叉特征) |
2 | user_id | 7.2 | 0.06 | 0.12 | ID 类特征,重要性高 |
3 | ad_id | 6.8 | 0.05 | 0.10 | ID 类特征,重要性较高 |
4 | ad_ctr_7d | 5.5 | 0.04 | 0.08 | 广告统计特征,较重要 |
5 | user_ctr_7d | 4.9 | 0.03 | 0.06 | 用户统计特征,中等重要 |
6 | hour | 2.1 | 0.01 | 0.02 | 上下文特征,重要性低 |
7 | user_age | 1.5 | 0.005 | 0.01 | 上下文特征,重要性最低 |
- 统计交叉特征主导:
user_ad_cross_ctr(用户 - 广告交叉点击率)在三种方法中均排名第一,说明人工设计的高质量统计交叉特征价值最高。
- ID 类特征次重要:
user_id和ad_id的 Embedding 重要性较高,是模型捕捉用户 / 广告个性化偏好的核心。
- 上下文特征较弱:
hour和user_age的重要性较低,对预测贡献有限。
4.4.3 特征选择策略
操作 | 特征名 | 操作后 AUC | 是否保留 | 说明 |
添加 | user_ad_cross_ctr | 0.7200 | ✅ | 从基准 0.5 提升 0.22 |
添加 | user_id | 0.7450 | ✅ | 提升 0.025 |
添加 | ad_id | 0.7650 | ✅ | 提升 0.02 |
添加 | ad_ctr_7d | 0.7750 | ✅ | 提升 0.01 |
添加 | user_ctr_7d | 0.7800 | ✅ | 提升 0.005 |
跳过 | hour | - | ❌ | 未达 0.7810 的提升阈值 |
跳过 | user_age | - | ❌ | 未达 0.7810 的提升阈值 |
最终结论
保留核心特征(5 个):
user_ad_cross_ctr、user_id、ad_id、ad_ctr_7d、user_ctr_7d删除低价值特征(2 个):
hour、user_age(无法显著提升 AUC)最终模型性能:AUC=0.78(特征精简后无性能损失,且减少冗余计算)
最终特征总结:
第五章:训练到推理的全链路
“训练一个模型很容易,把它稳定运行在生产环境才是真功夫。”
5.1 从实验到生产的鸿沟
很多工程师都经历过这样的场景:
这一章,我们要解决的就是:如何把实验室里的模型,稳定、高效地运行在生产环境。
5.2 分布式训练(Horovod)
当数据量达到亿级,单机训练已经不可行。我们需要分布式训练。
5.2.1 为什么选择Horovod?
5.2.2 Horovod核心原理
Ring-AllReduce优势:
5.2.3 我们的Horovod实践
关键技术点:
5.2.4 性能优化实践
优化维度 | 未绑定 CPU(默认) | 绑定 CPU 后 | 优化提升幅度 |
总训练时间 | 60 分钟 | 45 分钟 | 减少 25% |
CPU 利用率(均值) | 60%(存在进程间资源竞争) | 95%(CPU 资源饱和利用) | 提升 58% |
核心优势 | - | 无资源抢占,计算过程稳定 | - |
5.3 TensorFlow Serving部署
训练完成后,需要部署到生产环境提供实时预估服务。
5.3.1 为什么选择TensorFlow Serving?
5.3.2 模型导出
5.3.3 TensorFlow Serving配置
5.3.4 客户端调用(投放引擎服务端)
5.4 预估服务的高可用设计
在生产环境,高可用性至关重要。
5.4.1 服务架构设计
核心设计原则:
- 无状态服务:所有TF Serving实例无状态,可随意扩缩容
- 负载均衡:使用gRPC负载均衡,均匀分配请求
- 健康检查:定期检查服务状态,自动剔除故障节点
- 优雅降级:预估失败时,使用历史CTR/CVR兜底
5.5.3 缓存策略
5.6 本章小结
🎯 核心要点
1. 分布式训练(Horovod)
- Ring-AllReduce:无中心瓶颈,近线性加速
- FP16压缩:通信量减半
- CPU绑定:避免进程竞争,性能提升25%
2. TensorFlow Serving部署
- 模型导出:SavedModel格式
- gRPC API:高性能通信
- 批处理:QPS提升40倍
3. 高可用设计
- 连接池:复用连接,降低延迟
- 超时降级:30ms超时 → 历史CTR兜底
- 模型热更新:零停机发布
4. 性能优化
- 批处理:QPS从1K → 40K
- 模型量化:FP16速度翻倍
- 缓存策略:延迟降低40%
💡 生产经验
🚀 下一章预告
在下一章《算法融入决策流程》中,我们将深入探讨:
- 预估结果如何转化为出价
- eCPM计算的核心逻辑
- 冷启动CTR的补偿机制
- 多成本类型的出价策略
第六章:算法融入决策流程
“算法的价值不在于预估得有多准,而在于能为业务带来多少收益。”
6.1 从预估到出价:算法驱动决策
预估只是第一步,如何将预估结果转化为出价决策,才是算法的真正价值所在。
6.1.1 完整的决策链路

6.1.2 核心决策公式
6.2 eCPM计算的核心逻辑
eCPM(effective Cost Per Mille)是连接算法与业务的桥梁。
6.2.1 eCPM的本质
6.2.2 我们的eCPM实现
关键点解析:
6.2.3 eCPM的调整策略
实际效果:
6.3 多成本类型的出价策略
不同的成本类型,出价策略完全不同。
6.3.1 CPM出价(按展示付费)
CPM出价的挑战:
6.3.2 CPC出价(按点击付费)
CPC出价的优势:
6.3.3 OCPC出价(优化的CPC)
OCPC的核心价值:
第七章:效果评估与优化
“没有评估就没有优化,没有优化就没有进步。”
7.1 效果评估的双重视角
在广告领域,效果评估需要从两个维度来看:离线指标和在线效果。
7.1.1 离线 vs 在线的鸿沟
关键矛盾:
7.2 离线指标:模型质量的度量
离线指标是快速迭代的基础,但要正确理解和使用。
7.2.1 核心离线指标
AUC (Area Under Curve)
LogLoss (对数损失)
GAUC (Group AUC)
7.2.2 离线评估框架
7.3 在线指标:业务价值的度量
离线指标再好,最终要看在线业务效果。
7.3.1 核心在线指标
7.3.2 指标的业务含义
7.4 A/B测试框架
A/B测试是验证算法效果的金标准。
7.4.1 A/B测试设计
7.4.2 A/B测试分析
7.4.3 A/B测试的常见陷阱
7.5 模型迭代策略
持续优化才能保持竞争力。
7.5.1 迭代周期
🙏 致谢
感谢你读完这个系列!希望这些内容对你有所帮助。
持续学习,持续进步! 🚀
参考的文章:
[1] Factorization Machines
- Rendle, S. (2010). "Factorization Machines." IEEE International Conference on Data Mining (ICDM).
[2] Wide & Deep Learning
- Cheng, H. T., et al. (2016). "Wide & Deep Learning for Recommender Systems." 1st Workshop on Deep Learning for Recommender Systems.
[3] DeepFM
- Guo, H., et al. (2017). "DeepFM: A Factorization-Machine based Neural Network for CTR Prediction." IJCAI.
[4] Deep & Cross Network (DCN)
- Wang, R., et al. (2017). "Deep & Cross Network for Ad Click Predictions." ADKDD.
[5] Deep Learning Recommendation Model (DLRM)
- Naumov, M., et al. (2019). "Deep Learning Recommendation Model for Personalization and Recommendation Systems." arXiv preprint.
[6] Entire Space Multi-Task Model (ESMM)
- Ma, X., et al. (2018). "Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate." SIGIR.
[7] Multi-gate Mixture-of-Experts (MMOE)
- Ma, J., et al. (2018). "Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts." KDD.
[8] Horovod
- Sergeev, A., & Del Balso, M. (2018). "Horovod: fast and easy distributed deep learning in TensorFlow." arXiv preprint.
[9] Ring-AllReduce Algorithm
- Patarasuk, P., & Yuan, X. (2009). "Bandwidth optimal all-reduce algorithms for clusters of workstations." Journal of Parallel and Distributed Computing, 69(2), 117-124.
[10] A/B Testing Methodology
- Kohavi, R., Longbotham, R., Sommerfield, D., & Henne, R. M. (2009). "Controlled experiments on the web: survey and practical guide." Data Mining and Knowledge Discovery, 18(1), 140-181.
[11] TensorFlow Recommenders Addons (TFRA)
- Dynamic Embedding实现
[12] Horovod - Distributed Training Framework
[13] TensorFlow Serving
[14] TensorFlow Model Optimization
[15] Google AI Blog - Wide & Deep Learning
- "Wide & Deep Learning: Better Together with TensorFlow"
[16] Facebook AI Blog - DLRM
- "DLRM: An advanced, open source deep learning recommendation model"
[17] Uber Engineering Blog - Horovod
- "Meet Horovod: Uber's Open Source Distributed Deep Learning Framework"
[18] Alibaba Tech - ESMM实践
- "阿里妈妈:品牌广告中的NLP算法实践"
[19] Netflix Tech Blog - A/B Testing
- "It's All A/Bout Testing: The Netflix Experimentation Platform"
[20] Criteo AI Lab - CTR Prediction
- "Deep Learning for Click-Through Rate Estimation"
