分享人:宋凯 博士
整理者:林宜蓁
导读:
本文从广告主的角度,分享联邦学习实践的经验跟思考。
先介绍业务与技术选型背景:团队项目为用户增长及成本控制,方式为广告渠道投放,投放目标分为拉新、拉活两类。
所以,希望微视侧能与广告平台侧利用双方数据,实现收益共赢,但保证数据的安全不出域。在这种背景下我们团队选择了“联邦学习”,其为多方安全合作提供了一种解决方案。
文章围绕下面五点展开:
一、联邦学习
DATA
首先,简介联邦学习(Federated Learning,FL)的先导知识。
1. 联邦学习背景
机器学习模型都是 data-driven,但现实里数据皆为孤岛:公司与公司之间、甚至部门与部门之间无法共享数据;直接的共享会侵犯用户的隐私,也损伤公司的利益。2016年 Google 的文章以输入法 NLP 为背景,提出用安卓手机终端在本地更新模型,这篇文章一般被认为是联邦学习的开端。随即,我国微众银行、腾讯等公司也做了许多开创性的工作。
联邦学习的基本定义为:在进行机器学习的过程中,各参与方可借助其他方数据进行联合建模。各方无需直接触达他方数据资源,即数据不出本地的情况下,安全进行数据联合训练,建立共享的机器学习模型。
2. 联邦学习的两种架构
3. 联邦学习的三种分类
三种联邦学习交互的信息有异,受到的困扰也不同;比如:横向联邦学习时,各参与方数据异构,因此数据非独立同分布,也是联邦学习的研究热点。
目前纵向联邦学习已在我们业务中落地,也在探索联邦迁移学习、横向纵向的结合。
4. 联邦学习与分布式机器学习比较
精度上界:联邦学习不像优化其他具体的排序、召回模型,更像是在数据安全限制下,去推动整个建模。所以,理论上把共享数据下分布式机器学习(Distributed Machine Learning,DML)的结果作为上限。
联邦学习(FL)与分布式机器学习(DML)比较
虽然有人把联邦学习作为一种分布式机器学习的特殊情况,但是与一般的DML相比,联邦学习仍存在如下区别:
二、腾讯联邦学习平台Angel PowerFL
DATA
从联邦学习发展开始,腾讯参与度就非常高。包括:制定发布《联邦学习白皮书2.0》、《腾讯安全联邦学习应用服务白皮书》等;基建方面,基于腾讯开源的智能学习平台Angel(https://github.com/Angel-ML/angel),构建PowerFL,目前内部开源;实践方面,在金融、广告、推荐场景,有多次尝试和落地。
1. 工程特色
腾讯联邦学习平台PowerFL除了易部署、兼容性好等机器学习平台基本要求,还有以下五个工程特色:
2. 算法优化
另外,针对算法侧也做了许多优化:
值得提到的是,除了基于同态加密方案,PowerFL还支持秘密分享和差分隐私(噪声扰动)等联邦神经网络隐私保护方案。
三、微视广告投放整体业务
DATA
我们团队的一个整体目的是迭代优化智能投放系统,我们从以下三点进行了发力:
1. 增长获客渠道
包含外渠采买、内软导流、自增长;其中,外渠采买实现形式上又可细分为 Marketing API 批量创建广告、RTA 人群定向、sDPA/mDPA 商品库、RTB 实时竞价等。
2. 增长素材形式
为了承接 Marketing API、RTA,持续优化广告创意;为了承接 RTB、sDPA/mDPA,优化原生广告内容;为了与自增长中的分享/收徒呼应,优化了补贴、红包、优惠券等策略或模型。
3. 增长技术
无论 RTA、RTB,核心都是优化用户与素材的精准匹配。我们针对素材、用户、两者的交互持续探索:
四、广告投放联邦学习架构
DATA
以下介绍联邦学习在微视广告投放框架中的角色:对 RTA 人群包的圈选。
1. 广告系统概览
首先,下图即为一个简单普适的广告系统:来自用户设备ID的广告请求,到达广告系统;通过广告召回、广告定向过滤 RTA、广告粗排、广告细排、广告下发,最后达成广告曝光。
2. RTA广告投放架构
然后,我们把其中 RTA 侧的框架放大。RTA 的目的为前置判断用户价值,执行人群定向、辅助分质出价。
3. 联邦学习粗粒度框架
这里,我们介绍下联邦学习粗粒度框架:
第五部分我们将详细拆解。
五、建模实践和细节介绍
DATA
1. 先导工作
相比于拉活,拉新更迫切使用联邦学习,因为端内特征更加稀疏,许多用户仅有用户设备ID;所以,优先切入拉新,先导工作包含:
1.1 拟合目标:四任务模型
1.2 微视单侧数据探索与特征工程
2. 模型训练
做完准备工作,微视侧开始与广告平台侧进行联合联邦学习建模。
2.1 联邦模型训练迭代流程
(1)数据对齐:确定用于协作训练的公共样本集合{id},有以下两种方式
(2)多方特征工程
(3)协同训练
(4)离线评估
(5)在线评估
2.2 基于 DNN 的联邦模型(FL-DNN)
微视侧与广告平台AMS侧共同训练多任务 DNN 模型,多任务结构从样本策略、修改损失函数等简单实现方式,演进到 MMoE ;工程上基于 Horovod 并行。
2.3 FL-DNN 模型参数的迭代过程
(1)初始化:A(host,AMS侧)、B(guest,微视侧)分别初始化各自网络(记为和)的参数、,交互层参数,记学习率为,记噪声为、、;
(2)前向传播:(表示同态加密)
(3)反向传播
(4)梯度更新:A、B、I分别对梯度更新,完成一轮迭代:
此结构与召回、粗排常用的双塔看似相似,但实际上设计原则并不同。双塔结构常被诟病 embedding 交互时机过晚,所以有了许多改进版,比如 MVKE模型(腾讯),把 embedding 的交互时机提早。纵向联邦学习中,A侧的可以在第一层,甚至没有变化(即仅做特征加密)就交给B侧,如此原则上没有交互时机问题。
2.4 FL-DNN 模型参数迭代特殊情况:单侧特征
B(guest侧)在没有或特征太弱下,只能提供用户设备ID、label,上述参数迭代过程退化为没有的情况,读者可尝试写下参数更新过程。
实际中,因为数据量、特征覆盖度、求交损耗等问题,为保证 DNN 训练充分,以下两种情况叠加:
3. 在线服务
各参与方只能得到与自己相关的模型参数,预测时需要各方协作完成:
(1)发送请求:用户设备ID,分别触达A、B;
(2)embedding 计算
(3)label 计算
4. 效果展示
在与腾讯广点通AMS的合作中,相对微视单独训练,联邦学习使得 Group-AUC +0.025;主目标与3个次目标都呈正相关且有提升。主要目标主启次留率(覆盖率折算后)提升 +4.7PP。初版上线后各项指标均有显著提升,已发布全量。在迭代的第二版也取得了GAUC的显著提升,正在小流量实验。
下图则展示了主启次留成本的有效降低(橙色):
5. 迭代中
5.1 拉新模型
推进与其他渠道的联邦协作,但团队无力在每个投放平台都维护一个联邦模型。初步尝试将与AMS平台联合训练的模型,放到在其他平台拉新。但因数据异构(样本分布偏差)等原因,此模型不如 base 模型(微视单侧)好;另各投放平台存在利益冲突,都希望广告主重点投放自家流量,因此,我们在尝试横向与纵向的结合:微视与广告平台是纵向,广告平台之间是横向,期望从三方联邦协作切入,目前正在迭代联邦迁移思路。
5.2 拉活模型
与AMS平台合作,联邦模型打通后,我们想复用到拉活模型上。因用户拉活是多目标、多兴趣、异行为序列的情形,我们将重心放在时效性与模型的创新上,进行了基于 MMoE-Mind-transformer 模型的探索。
5.3 迭代困难
(1)效率和稳定性
(2)可解释性和 debug 困难:联邦的双方都看不到对方原始数据,甚至有时双方还会隐藏各自的神经网络结构。这样的确保证数据的安全;但从迭代角度看,问题定位更难。
(3)多方联邦建模的困难
六、Q&A
DATA
Q1. TEE(可信赖执行环境)在联邦学习任务中是必备的吗?什么场景下会基于TEE完成任务?当前介绍的项目是基于TEE计算的吗?
A1. 当前并无使用 TEE 环境,若使用 TEE 就可直接明文操作,无需大量加密操作;因 TEE 环境下保证即使明文操作,数据也是安全且对对方不可见;目前无论数据求交、模型训练(梯度、embedding)都是密文操作。
Q2. 联邦学习的第一步数据对齐,需要做映射表维护吗?
A2:无需维护映射表,因数十亿用户量加上特征,映射表数据量达到数百G级别,其实是一种资源的浪费;实际操作样本对齐时是按顺序操作,广告平台侧给的ID,是按约定从上往下的顺序,即无需再维护kv的映射关系。
Q3. Serving(在线服务)时,需要拿对方(广告平台)的特征,这块延时如何?
A3. Serving 的延时还是通讯带来的,广告平台在自己的机器上训练广告平台侧的模型,微视侧在自己的机器上训练微视侧的模型,最终交互时也是交互 embedding。
Q4. 所有情况下,B侧(guest侧)提供 label 都是必须的吗?
A4. B侧(guest侧,微视侧),因数据不出域不会提供 label 给对方,见“FL-DNN 模型参数的迭代过程”章节公式可知,梯度是在 B 侧计算完成,对方无法得知 label。
Q5. 使用联邦学习后 Group-AUC 增加 +0.025,未使用联邦学习前的 Group-AUC 是多少?
A5. 数值没有太直接指导意义,不同场景下的样本定义、拟合目标改变即改变;原先从 0.70 级别,提到 0.72-0.73 级别。
Q6. 腾讯前段时间发的 MKVE 论文全名是?
A6. 2021-tencent-Mixture of Virtual-Kernel Experts for Multi-Objective User Profile Modeling。
Q7. FL-DNN 建模中需要第三方,如何信任第三方?
A7. 其实按去中心化的架构无需第三方,可由一系列的加解密操作的算法来承担。
Q8. 如果双方都是 TEE 的执行环境,网络中交换的数据都是明文的吗?
A8. 对,明文即可。
Q9. 联邦框架和RTA结合,是离线产出人群包,还是在线实时预估?
A9. 经探索,拉新侧的实时重要度并不高,是把离线人群包导入DMP,再给RTA对接;拉活侧因为想抓住用户短时间内的兴趣变化,有实时性的要求,目前正在研究。
往期精选
- 标题图来源:Pexels -
扫码关注 | 即刻了解腾讯大数据技术动态