【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

为什么推给我的广告都是我想要的?腾讯多模型特征工程解析背后奥秘

  • 2019-04-23
  • 本文字数:4947 字

    阅读完需:约 16 分钟

为什么推给我的广告都是我想要的?腾讯多模型特征工程解析背后奥秘

大数据与深度学习的应用,我们每个人随口都能说上来两个,像淘宝的精准推送,互联网广告的精准投放等等,这些都是大数据与深度学习结合的产物。


在当前 AI+Big Data+Cloud Computing 的时代里,极大促进了人群的精准画像以及广告的精准投放,但是如果没有一个完整的体系架构,这些技术无法通过相互弥补来更大化的优化问题。为了系统化地解决广告系统在初选、精选阶段上多模型优化中对特征数据的需求,腾讯建设了统⼀的特征工程平台。


本次 InfoQ 采访到了腾讯广告特征工程负责人李彪老师,通过对行业的深入剖析,全方位阐述了特征生产、存储和计算等功能当前技术背景下的实现方法与重要性。同时,李彪老师还将会在此次 QCon 广州 【广告系统实践专题】带来多模型特征工程系统化解决方案的相关演讲。


专访内容

1、腾讯当初做这个“统一的特征工程平台”的原因是什么,基于怎样的设计理念?请详细解释下“广告业务多模型特征工程”是一款怎样的产品。


广告系统是流量方、广告主与平台方之间三方博弈的激烈区域,为了平衡三方的利益,当今广告系统都在追求千人千面的广告体验,即精准投放并展示用户感兴趣的广告。在这个过程中,广告业务系统就需要实现精准的广告定向,同时还需要做好广告排序逻辑,并且要从系统性能的角度出发,将广告排序分为初排和精排两个阶段。在每个阶段中都会存在较多的模型,如广告定向阶段有人群扩展模型、自动定向模型、用户兴趣定向模型等,初排阶段有轻量级点击率预估模型(litectr)、轻量级转化预估模型(litecvr)等等,精排阶段有点击率预测模型、转化率预估模型、用户体验负反馈模型等等。


从机器学习模型角度出发,参考 Google 的 D. Sculley 在文章《Hidden Technical Debt in Machine Learning Systems》上所写到,在生产环境下将一个机器学习模型应用到业务上并发挥作用,纯粹应用到机器学习(文章里面用的是 ML Code)的只是很少的部分工作,还存在很大部分的工作在处理特征数据的生产、存储、预处理、模型训练、评估和发布等,因此最近诞生了 SysML 这么个方向。


结合机器学习和系统方面的内容,Google 推出的 TensorFlow Extended (简称 TFX)系统,Facebook 推出了 FBLearner Flow 系统,Uber 搭建了米开朗琪罗系统,Apple 公司也在 Sigmod 2019 上发表了一篇《Data Platform for Machine Learning》的论文。


如上面所述,当然可以是根据每个模型所负责的方向单独来搭建一套机器学习系统,但是对于一个广告业务来说,重复造轮是最浪费资源的行为,并且在性能优化上无法从全局角度考虑。因此腾讯统一建设了一套面向整体广告业务的机器学习平台。其中特征工程平台是机器学习平台下与特征相关的子系统,包括数据的接入、清洗、存储、预处理以及使用等,可以理解为解决了 TFX 系统里 Pre-Trainer 部分的工作。


2、随着大数据、机器学习等技术的快速发展,广告投放正在变得越来越精准,这些技术在腾讯广告业务多模型特征工程中得到了怎样的应用,技术亮点有哪些?


特征工程平台,或者也可以称作机器学习服务的数据平台,解决的是为各个模型(不论是广告定向、广告初排还是广告精排)在处理机器学习模型时所需要的数据研发平台,能够快速满足模型对特征数据的需求迭代。


腾讯特征工程平台的建设目标有:


  1. 简单易用,业务快速迭代。从模型方的角度来看,模型方同学使用特征数据时不用了解特征数据如何接入、数据存储在哪里、如何存储的、数据是如何去获取到的等等背后的逻辑,只需要简单地声明下我需要什么样的特征数据即可,如只要简单地配置说我需要特征 ,特征工程平台就会根据这个配置,在离线训练时生成包含这些特征的训练样本集,在线预测时会生成对应的预测输入。

  2. 保证数据质量。机器学习里最经典的一句话叫做"Garbage In, Garbage Out",因此为了保证模型的正常工作,就必须要保证输入模型数据的正确性。输入模型的数据主要分为两种,一种是离线训练用的 Training Data,一种是在线预测用的 Serving Data,需要时刻关注 Serving-Training Data 之间的 Skew(偏差),以及 Training Data 或者 Serving Data 的 Drift(漂移)。同时在如何避免、解决 Skew 问题上一直以来都存在着较大的挑战,我们也采取了各种措施来解决避免这块的问题,并取得了不错的成绩。

  3. 系统高性能,节约成本。最近的机器学习模型,特别是深度学习,由于网络结构复杂,网络参数非常多,为了保证模型的效果,通常需要海量的特征数据来进行模型训练。因此我们需要对特征数据的存储、计算等方面进行不断地优化并提升系统的吞吐量,从而节约成本。


当前腾讯建设了统一的前文统计特征生产框架、广告素材特征生产框架、特征仓库、训练样本生产框架以及在线特征服务等等众多完善的系统,初步实现了上述的三大目标,并在数据存储、数据访问计算以及任务管理调度方面做了大量有意义的优化。


3、腾讯广告业务多模型特征平台,在架构层面有着怎样的考量,包括特征生产、存储、离线训练和在线预测上的计算与调度等等?


从架构上,从下往上分为基础设施层、特征生产层、特征存储层、特征计算层以及最上层的特征应用层(即各个模型方)。特征工程平台主要是特征生产层、特征存储层和特征计算层,并在这三层之上提供了公共的任务调度模块和监控告警模块



  • 基础设施层,基于腾讯的大数据基础设施,包括 TDW 系统里的 Spark/HDFS/HBase/Hive/TDBank(类似于 Kafka 一样的消息队列系统),以及自研的 KV 系统 Marvel,列式存储格式 Dragon 以及 OLAP 引擎 Pivot。

  • 特征生产层,在底层基础设施上,存在有搭建了统一的前文统计特征生产框架 CF2 和广告素材特征生产框架 TerraStore

  • 特征存储层,基于特征生产层产生的特征或者其他团队所生产出来的特征(如语义特征、Embedding 特征等等),通过特征注册纳入到特征仓库里,然后根据后续特征计算层的需要,将特征仓库里的特征同步到离线训练需要的 KV 系统和在线预测所需要的 KV 系统,同时也提供了元数据管理、数据质量校验等功能。

  • 特征计算层,为模型方在调研环境提供特征补录、生产环境提供训练样本生产和在线预测提供预测输入等功能,并做到模型方只需简单配置就可以完成这些功能操作。

  • 特征应用层,即使用了特征计算层的各个模型。

  • 公共模块,在特征生产层、特征存储层以及特征计算层里开发了统一的任务调度系统–Hotwheels,对 Training/Serving Data 检测的 Skew/Drift,以及对数据质量进行校验熔断的监控告警系统 Eagle Eye。


4、在当前互联网“一切求快”的效率面前,特征的选择以及上线可以说非常的重要,但是面对大体量的数据规模,开发者不得不将很多的精力放在数据的接入、存储以及访问上,导致整体项目的进度滞后。那么腾讯特征工程平台是如何帮助开发者提升特征上线效率的?还请结合具体的功能实例或案例进行说明。


对的,上文也提到了建设特征工程平台的三大目标中最主要的就是"简单易用,业务快速迭代",因此对于模型方来说,根本不需要关注数据接入、存储和访问等与大数据研发相关的问题,只需要简单配置下就可以完成在离线特征调研和特征上线,极大提升了特征上线的效率。


举例下,以 litectr 为例,假设现在用了如下的 $f_1, f_2, \cdots, f_m



f_n$,litectr 的模型方可以采取如下的步骤:


  1. 先到特征仓库里看下 这个特征长什么样,数据的分布情况如何。

  2. 初步判断特征 有效果,再到特征仓库里看下这个特征在其它模型上的应用情况如何,包括离线调研时对模型业务的效果如何,上线之后线上 ABTest 的效果如何等。

  3. 其他模型使用特征 有效果的话,那么就可以开始发起离线调研任务。使用特征计算层里的特征补录模块的功能,只需要简单的配置下,在 litectr 中已存在包括 个特征的训练样本数据集上,再增加特征 ,生产出来包括有 个特征的训练样本数据集,然后将之前的只有 个特征的训练样本数据集和新增了 的训练样本数据集一起给到模型训练模块去训练,并通过离线评测模型的效果(如离线 AUC 等等)来评估新增特征 的效果。

  4. 在离线评测新增特征 效果不错,那么由特征工程平台里通过数据同步模块将特征仓库里的特征 发布到离线训练所需要的 KV 库和在线预测所需要的 KV 库里去。当前这里是假设特征还没有被其它模型所使用的情况下,若其它模型已经在生产环境中使用了,这一步是可以省略掉的。

  5. 在训练样本生产数据流里增加配置需要特征 和对应的特征抽取逻辑(若没有定制化的操作,可以使用系统默认的特征抽取器),然后就可以得到包括有 的训练样本数据了;同样也一样在在线预测模块里增加配置需要特征 和对应的特征抽取逻辑即可。从而完成了整个特征的上线操作,开启 ABTest 阶段,若效果非常不错的话,将这个特征全量从而完成了一次特征上线的迭代

  6. 在生产环境里使用起来了之后,我们自动会在监控报表系统 Eagle Eye 里增加了对 Training/Serving Data 的 Skew/Drift 的监控报表。


5、这样一套特征工程平台在实践的过程中有遇到过哪些挑战?对后续的业务有何参考价值?


遇见了很多的在大数据研发方面的挑战,这里简单举例下:


  1. 如何解决 Training/Serving Data 的 skew 问题,能否全部通过落地日志的方式来解决呢?落地日志会带来哪些弊端呢?

  2. 在技术栈里用到了 HBase 来作为 KV 存储系统,但是在海量存储和大并发下 GC 是瓶颈,如何来解决这块的问题来提升性能?

  3. 存在有海量的特征数据,使用什么文件格式能满足业务的需求并且节省存储成本?

  4. 由于有很多模型同时在一个平台里执行,如何解决多租户问题,如何保证任务管理分发的高可用和时效性?


通过一系列的努力,腾讯特征工程已经全部解决了上面的一系列问题。关于大数据研发的经验,特别是在存储、访问计算等领域内的经验,是完全可以同时应用到其他的业务上的,另外任务管理分发那里,这是一个通用的系统,可以推广在任何的业务使用上。


6、最后可以根据自身长期积累的研发经验来总结一下,如何做才能在广告系统中最大化数据的价值?


广告系统是一个典型的以数据为驱动的业务,数据在广告业务上的价值有如下几个方面:


  1. 广告定向(Targeting),即大家常说的精准广告定向,从广告主的角度来说这种方式能够有效触达潜在用户人群;从用户的角度来说,看到的广告都是自己所感兴趣的,而不会产生厌烦的情绪。

  2. 商业智能(Business Intelligence),基于 OLAP 等系统分析数据并输出报表,为各方提供决策所需要的数据。

  3. 机器智能(Machine Intelligence),即类似于特征数据一样,将数据应用到模型上,来提升模型的预测效果。


特征工程平台主要是将数据以特征的形式来通过机器智能来体现价值,模型预测效果好的话可以提升类似于广告点击率等业务指标,从而使得用户观看体验、广告主的 ROI、平台方的 RPM 都会往有益的方向发展,也极大发挥了数据的价值。


7、开源是现在的一大趋势,我们特征工程平台会有开源的想法吗,还是已经有了开源的动作?


当前腾讯的特征工程平台同各个模型方结合的都比较紧密,后续会先将与业务关联并非紧密的部分提炼出来,如列式存储系统、任务管理分发系统等,之后会考虑先在腾讯内部的开源系统进行开源,然后根据反馈情况再考虑到业界开源,一起建设好简单易用、高性能、高可用的特征工程平台。

嘉宾介绍

10 年+ 研发和广告系统架构设计经验,先后负责过广告检索系统、⽤户画像系统,最近一直负责特征⼯程平台建设,解决广告业务中多模型对特征的存储、计算方⾯的问题,致力于通过⼤数据研发解决机器学习中数据⼯程问题,提升模型优化的效率和效果,发挥数据的价值。对大数据研发、分布式存储计算、深度学习系统建设有着浓厚的兴趣。


5 月 25-28 日,QCon 全球软件开发大会广州站,李彪老师将会现场进行【广告业务多模型特征工程系统化解决方案】相关内容的分享,通过简要介绍广告系统如何使用模型特征优化业务指标以及特征工程平台的架构等内容,为现场观众讲解如何系统化地解决多模型的特征共享等问题。


感兴趣的同学扫描下方二维码或点击阅读原文可了解大会详情,当前正处于 9 折阶段,咨询可致电鱼丸:13269078023(微信同号)。



链接:https://2019.qconguangzhou.com/presentation/1502


2019-04-23 17:216343
用户头像
佘磊 策划编辑

发布了 50 篇内容, 共 20.2 次阅读, 收获喜欢 76 次。

关注

评论

发布
暂无评论
发现更多内容

大型民营集团如何构建全面预算管理体系?

用友BIP

全面预算

含CPU芯片的PCB可制造性设计问题详解

华秋PCB

工具 芯片 PCB PCB设计 可制造性

灵活预算,畅享高性能!月付香港主机助你建设理想网站!

一只扑棱蛾子

香港主机

为什么强调数智底座能力?

用友BIP

数智底座

用友BIP:助力企业数智化转型,实现数智化国产替代

用友BIP

国产替代

何为低代码?何为高代码?

互联网工科生

软件开发 低代码 JNPF 高代码

火山引擎DataLeap如何解决SLA治理难题(一):应用场景与核心概念介绍

字节跳动数据平台

数据中台 数据治理 SLA 数据研发 企业号 7 月 PK 榜

如何学习ABAQUS有限元仿真分析软件

思茂信息

abaqus abaqus软件 abaqus有限元仿真 有限元分析 有限元仿真

应对618、双十一等大促期间的高负载,API性能测试应该怎么做?负载测试、基线测试、冒烟测试、浸泡测试、峰值测试和尖峰测试详解

龙智—DevSecOps解决方案

自动化测试 API 测试自动化

识别led显示屏扫描方式及常见分类指南

Dylan

分类 识别 扫描 LED显示屏

一文了解什么是ISO 9001认证,以及在静态分析和代码质量领域有哪些通过此认证的工具

龙智—DevSecOps解决方案

代码扫描 静态代码分析 代码分析

手机直播app源码部署搭建:带货潮流,商城功能!——山东布谷科技创作

山东布谷科技

软件开发 直播 源码搭建 直播APP源码 手机直播源码

Nautilus Chain NautDID NFT 将上主网,Layer3 数字身份时代开启

西柚子

数智底座成竞争焦点,用友能否再创辉煌?

用友BIP

数智底座

基于ClickHouse解决活动海量数据问题 | 京东云技术团队

京东科技开发者

数据库 Clickhouse 数据处理 企业号 7 月 PK 榜

任务调度之时间轮实现 | 京东云技术团队

京东科技开发者

定时任务 数据结构与算法 时间轮 企业号 7 月 PK 榜

WiFi 7 (802.11be)-IPQ9574+QCN9274-ultra-wide 320 MHz spectrum channel

wifi6-yiyi

qcn9274 WiFi 7 802.11be

等保测评包过是真的吗?安全吗?

行云管家

等保 等级保护 等保测评

常用语言的线程模型(Java、go、C++、python3) | 京东云技术团队

京东科技开发者

Java c++ Go 线程模型 企业号 7 月 PK 榜

书画家点赞!基于飞桨绘制中国水墨山水画

飞桨PaddlePaddle

人工智能 paddle 飞桨 百度飞桨 AIGC

程序员「求生宝典」!AI大发展下的程序员求生指南,干货满满

Openlab_cosmoplat

一文了解JNPF低代码开发平台

高端章鱼哥

低代码 低代码开发 JNPF

华为云云原生数据库,让企业离应用更进一步

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

Seal AppManager如何基于Terraform简化基础设施管理

SEAL安全

Kubernetes Terraform 平台工程 SealAppManager 企业号 7 月 PK 榜

从TL、ITL到TTL | 京东物流技术团队

京东科技开发者

ThreadLocal ThreadLocalMap 企业号 7 月 PK 榜

大模型时代,科技企业入局能源行业需要新范本

TE智库

新能源 特斯联

等保定级标准是怎样的?是否系统定级越低越好?

行云管家

网络安全 等保 堡垒机 等级

六步带你体验EDS交换数据全流程

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

七年老程序员的五六月总结:十一件有意义的事

拭心

android 程序员 程序人生 成长记录

NFTScan | 07.10~07.16 NFT 市场热点汇总

NFT Research

NFT\

为什么推给我的广告都是我想要的?腾讯多模型特征工程解析背后奥秘_架构_佘磊_InfoQ精选文章