在线深度学习:爱奇艺效果广告分钟级模型优化

01#

  背景

在效果广告投放场景中,媒体侧需要准确衡量每次请求的价值,模型预估值在广告竞价中扮演着核心角色。模型预估精度的提升,是改善媒体侧变现效率、提升广告收益的核心技术驱动力。

此前,爱奇艺效果广告预估模型为小时级模型,从广告投放到效果反馈线上模型有数个小时的延迟。从23年下半年开始,我们致力于从模型时效性优化的方向提升模型能力,将小时级模型升级为分钟级在线深度学习(ODL),在爱奇艺流量取得了6.2%的收入提升。与小时级等离线模型相比,ODL的应用面临着来自工程和效果两方面的挑战,本文总结了ODL落地中遇到的挑战、思考及相应的解决方案。

02#

  ODL挑战及解决方案

从整个系统架构来看,ODL的落地需要重点关注如下几个要求和问题:

工程框架:

  • 稳定性:流式链路鲁棒性要求较高,需避免积压或中断;

  • 时效性:推理端模型更新应具备较高的时效性;

  • 兼容性:框架需有良好的灵活性,能够兼容离线/在线、pCTR/pCVR等模型。

模型效果:

  • 解决实时样本延迟反馈问题;

  • 模型灾难遗忘问题;

  • 样本独立同分布要求。

工程框架

1.服务鲁棒性

ODL简要流程如下图所示,为了流式服务鲁棒性,关键节点进行了相应的优化:

1c7e2d50f551cc5f5535f3717d8a4e68.png

图1 

a.样本持续稳定输出

在线样本每5分钟生产1个批次。为了从源头保证整个链路正常运转,样本的基础数据源——基于数据湖特征快照,部署了两个集群的高可用方案,样本生产模块能够在集群服务异常时自动切换。

b.模型高效训练

ODL初版上线时,每条样本序列化为json类型发送至Kafka,导致下游分布式训练环节存在大量解析、对齐特征的操作,CPU负载上限仅40%,模型训练效率较低。为了避免Kafka样本积压,只能增加并行训练节点,但异步训练场景中,训练节点增加容易带来梯度过期问题。

为了解决问题,通过在样本发送至Kafka时直接序列化为tensorflow原生支持的Example类型,在同资源下,将Kafka消费QPS上限提升了10倍,CPU负载从40%提升至100%,解决了ODL训练效率瓶颈问题,同时大幅减少分布式训练节点数。

2.模型更新时效性

a.模型训练和导出

天级/小时级等离线训练任务一般是在训练任务完成后,由chief节点导出模型文件。但对于ODL任务来说,chief/worker节点需要持续不断地接收新的样本,因此需要对于evaluator节点进行改造,以在满足batch_size增量要求和10分钟的间隔要求后,导出新版模型。

4dc1176b4ae32d831f2753d6f89e4f7d.png

图2 

b.模型部署

模型推理出于灾备和性能考虑,需进行多地、多机房部署。为提高模型更新效率,首先上线了多地机房并行更新,但这也引入了新的性能问题:多地机房数千个容器节点同时从S3下载模型时会遇到速度瓶颈,为了解决该问题导致的模型更新瓶颈,通过icache功能实现机房内P2P分发,降低S3服务压力。

520eb25c1824685ae6f867d1c06ae6b7.png

图3 

3.框架灵活性

a.兼容不同场景

为保证模型效果(详见02-模型效果),ODL模型每天使用天级模型参数进行初始化,故调度框架在设计时对于天级/小时级/在线模型训练应具备较好的兼容性。同时调度框架支持自定义归因窗口,以兼容不同模型所需求的差异化正样本回收。

b.灾备处理 

在监控和灾备处理方面,不仅需要关注服务的执行进度,同时必须对于线上服务质量(样本相关指标/离在线模型预估指标)进行监控。若线上模型学偏(如AUC/预估偏差异常),自动回退至当天warm start版本。

7f6b64d83ed0747d6062fbcb8476ac55.png

图4 

模型效果

1.延迟反馈问题

训练样本的label准确性对于模型学习效果有着直接的影响。

  • 首先,即使样本中混杂比例极低的label冲突样本,仍会导致模型效果严重退化。

  • 其次,在线训练对于样本时效性要求也比较高,从而能够快速感知用户/广告/上下文的变化。

因此,ODL样本需要在准确性和时效性中进行平衡。在实践中进行了如下几点优化:

  • 离线样本:如2.1.3所述,构建天级样本,label准确性高,训练天级模型作为当天ODL模型基线。

  • ODL样本:首先让曝光日志等待一段时间(归因窗口),归因窗口结束后,发送1条样本至Kafka。若归因窗口内回收到点击,则标记为正样本,反之为负样本。

  • PU-loss思想:若点击在归因窗口外回收到,且归因时长在有效窗口范围内,则再次发送1条正样本,但是该样本会进行特殊标记,对于此类样本,借鉴了PU-loss思想,在交叉熵损失基础上进行调整,用于修正此前发送的负样本对于损失函数的影响。

6e0d9324ee96c15d56ab6daf2af70f2c.png

图5

2.模型灾难遗忘问题

实时样本顺序发送至Kafka,与完整天全局样本相比,局部的实时样本分布可能会存在差异。为了避免ODL模型被实时样本带偏,ODL模型借鉴了蒸馏学习思想:将天级模型和ODL模型预估值计算的交叉熵损失作为soft loss加入到原损失函数中,约束模型效果,避免ODL模型严重偏离。

4adb34138065423155d1d64d95860701.png

e2840346a04bf74c52cfe8b4d7d5c13a.png

图6

3.样本独立同分布要求

独立同分布是机器学习的基础要求,对于"hour"特征来讲,天级样本能够覆盖24个取值并充分打散,但ODL样本由于顺序到达,hour特征短时间内仅有一种取值,影响模型泛化性。为此,针对hour特征,天级模型正常训练和更新权重,而在ODL模型训练时进行冻结,使用天级模型训练好的权重但不进行更新。

03#

  总结

本文介绍了我们在ODL方案落地中遇到的问题以及实践的解决方案。目前,爱奇艺效果广告的点击率预估(pCTR)、转化率预估(pCVR)等核心稀疏大模型均已完成在线学习升级,模型时效性整体提升10倍以上,助力效果广告收入进一步提升。

远期,在ODL框架基础上,我们也在持续优化行为序列、多模态等信息在预估模型中的应用,这类信息的融合,在模型训练和高效更新等方面带来了新的挑战,探索实践仍在持续进行中,后续有机会再与大家分享。

参考资料:

分钟级在线深度学习在手淘信息流排序模型中的探索与实践

一文彻底搞懂 CTR 建模

de7062aaa288e1b30dad5f72de10ca0a.png

也许你还想看

AI技术在爱奇艺视频搜索中的应用

爱奇艺广告智能算力探索与实践

爱奇艺广告特征评估流程优化实践

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/881838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10.15学习

1.程序开发的步骤 定义程序的目标→设计程序→编写代码(需要选择语言,一种语言对应一种编译器)→编译→运行程序→测试和调试程序→维护和修改程序 2.ANSI/ISO C标准 1989年ANSI批准通过,1990年ISO批准通过,因此被称…

构建流媒体管道:利用 Docker 部署 Nginx-RTMP 从 FFmpeg RTMP 推流到 HLS 播放的完整流程

最近要实现一个类似导播台的功能,于是我先用 FFmpeg 实现一个参考对照的 Demo,我将其整理为一篇文章,方便后续大家或者和自己参考! 1、软件工具介绍 本次部署相关软件 / 工具如下: FFmpeg:全称是 Fast Fo…

软件确认测试内容和方法分享,CMA、CNAS第三方软件检测机构推荐

在现代软件开发中,软件确认测试扮演着至关重要的角色。它不仅帮助开发团队识别系统中的缺陷,还确保软件产品符合用户需求和期望。 软件确认测试旨在验证软件系统的性能和功能是否符合设计规格和用户需求。它通常在软件开发的后期进行,以确保…

火语言RPA流程组件介绍--浏览器上传文件

🚩【组件功能】:在浏览器内自动点击上传功能按钮,选择本地文件完成文件网页上传 配置预览 配置说明 目标元素 支持T或# 通过捕获网页元素或填写css,xpath获取网页元素作为操作目标 上传文件路径 支持T或# 默认FLOW输入项 需要上传的文件…

AI对抗AI:如何应对自动化攻击新时代?

在当今这个生成式AI迅猛发展的时代,自动化攻击的威胁日益加剧。 在人工智能浪潮下,如何利用AI对抗AI,从而实现全方位的网络安全防护? 一、AI浪潮下,自动化攻击加剧 AI技术的发展既带来了前所未有的挑战,也…

Redis 排行榜:实现、操作与性能优化

Redis 是一个高性能的内存数据库,支持多种数据结构,其中有序集合(Sorted Set)特别适合用于实现排行榜功能。本文将详细介绍如何使用 Redis 的有序集合实现一个简单而高效的排行榜系统,包括排行榜的基本操作、示例代码以…

从零开始构建:Python自定义脚本自动化你的日常任务

从零开始构建:Python自定义脚本自动化你的日常任务 Python 作为一种简洁且功能强大的编程语言,被广泛应用于各种自动化任务中。通过编写 Python 脚本,你可以轻松地将日常重复性工作自动化,例如文件操作、数据处理、网络爬虫、系统…

vue3--通用 button 组件实现

背景 在日常开发中,我们一般都是利用一些诸如:element-ui、element-plus、ant-design等组件库去做我们的页面或者系统 这些对于一些后台管理系统来说是最好的选择,因为后台管理系统其实都是大同小异的,包括功能、布局结构等 但是对于前台项目,比如官网、门户网站这些 …

软考中级 - 软件设计师学习笔记 - 1.2 计算机体系结构

1.2.1 计算机体系结构的发展 按处理机的数量(宏观上) 单处理系统:利用一个处理单元和其他外部设备结合起来。并行处理与多处理系统:将两个以上的处理机连接起来,彼此进行通信协调,以便共同求解一个大问题的…

Spring Boot 3新特性@RSocketExchange轻松实现消息实时推送

Spring Boot 3新特性RSocketExchange轻松实现消息实时推送 随着微服务架构的普及,实时消息推送成为许多现代应用程序的核心需求。Spring Boot 3引入了RSocketExchange注解,这一新特性使得开发者能够轻松实现消息实时推送,极大地简化了客户端…

【Linux驱动开发】嵌入式Linux驱动开发基本步骤,字符驱动和新字符驱动开发入门,点亮LED

【Linux驱动开发】嵌入式Linux驱动开发基本步骤,字符驱动和新字符驱动开发入门,点亮LED 文章目录 开发环境驱动文件编译驱动安装驱动自动创建设备节点文件 驱动开发驱动设备号地址映射,虚拟内存和硬件内存地址字符驱动旧字符驱动新字符驱动 …

live2d 实时虚拟数字人形象页面显示,对接大模型

live2dSpeek 测试不用gpu可以正常运行 https://github.com/lyz1810/live2dSpeek 运行的话还需要额外下载https://github.com/lyz1810/edge-tts支持语音 ## 运行live2dSpeek >npm install -g http-server >http-server . ## 运行edge-tts python edge-tts.py

Shell实战之chmod权限讲解

目录 引言chmod命令基础权限的数字表示法权限的符号表示法特殊权限位递归修改权限实战示例常见问题与解答最佳实践与安全考虑总结 引言 在Unix和Linux系统中,文件权限管理是系统安全和用户访问控制的核心。chmod(change mode)命令是Shell脚本中最常用…

使用 Helsinki-NLP 中英文翻译本地部署 - python 实现

通过 Helsinki-NLP 本地部署中英文翻译功能。该开源模型性价比相对高,资源占用少,对于翻译要求不高的应用场景可以使用,比如单词,简单句式的中英文翻译。 该示例使用的模型下载地址:【免费】Helsinki-NLP中英文翻译本…

心觉:激活潜意识财富密码:每天一练,财富自动来

Hi,我是心觉,与你一起玩转潜意识、脑波音乐和吸引力法则,轻松掌控自己的人生! 挑战每日一省写作200/1000天 为什么有些人总是轻而易举地吸引到财富 而你却努力多年仍然徘徊在财务的困境中? 你每天都在辛苦工作&…

MambaVision原理和源码调测

Hatamizadeh, Ali and Jan Kautz. “MambaVision: A Hybrid Mamba-Transformer Vision Backbone.” ArXiv abs/2407.08083 (2024): n. pag. 1.模型原理 关键思路: 通过重新设计Mamba的架构和在最终层增加自注意力块,提高了Mamba模型对视觉特征的建模能力…

爬虫学习实战

1.大学排名爬取(简单) selenium实现爬取。 # -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By import timeurl https://daxue.911cha.com/ driver webdriver.Chrome() # 设置隐式等待,…

专题:贪心算法(已完结)

1.分发饼干 方法一&#xff1a;用最大的胃口 找到最大的饼干&#xff08;先遍历胃口&#xff09; class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {// 主要思路 用最大的饼干找最大的胃口sort(g.begin(),g.end());so…

C语言练习

题目&#xff1a; 1.运用switch选择语句&#xff0c;编写一段C语言&#xff0c;请根据输入的数字&#xff0c;显示相应的星期日&#xff0c;如果数字所对应的星期日并不存在请显示“抱歉&#xff0c;您输入的内容并不存在。” 分析&#xff1a;1.在本题中&#xff0c;要运用到…

大厂面试真题-说一下推和拉的模式以及常见的使用

Pull&#xff08;拉&#xff09;模式和Push&#xff08;推&#xff09;模式是消息传递中的两种基本机制&#xff0c;它们在消息中间件和注册中心中的应用广泛而多样。 Pull&#xff08;拉&#xff09;模式 Pull模式是一种消息消费模式&#xff0c;其中客户端主动从服务端拉取…