短视频如何做到千人千面?FM+GBM排序模型深度解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

背景

信息流短视频以算法分发为主,人工分发为辅,依赖算法实现视频的智能分发,达到千人千面的效果。整个分发流程分为:触发召回、排序与重排三个阶段。排序层在其中起着承上启下的作用,是非常重要的一个环节。在排序层优化的过程中,除了借鉴业界前沿的经验和做法,我们也做了模型上的一些创新。

信息流短视频排序目前使用是以CTR预估为目标的Wide&Deep模型。通过引入时长特征、点击+时长多目标优化等工作,我们取得了不错的收益:

 ●   增加视频平均播放时长特征,作为用户真实体感信号,带来用户消费时长提升;
 ●   通过消费时长样本加权,实现点击+时长多目标优化,实现点击率与消费时长的提升;
 ●   引入多个视频下发场景的样本数据,实现多场景样本融合;

在优化排序模型的过程中,我们也调研了DeepFM/DeepCN等深度模型,这些模型无论从离线还是线上指标上,都没有明显优势。在优化Wide&Deep模型的同时,更迫切的需求,是跳出原有的框架,寻找新的收益点。

9d7991c499d8a9b82991051261863d1811117a0a

引入GBM对submodel和高级特征等信号做集成学习,效果要优于单模型。从计算学习理论上看,Wide&Deep是high-variance模型,容易过拟合(wd模型的训练比评估指标高7%)。GBM通过boosting的方式组合集成多个submodel和高级特征,更好地发挥各自不同的作用和优势互补,同时从整体上有更好的可解释性。

上面是对信息流短视频排序模型演进的简要介绍;而其中的FM+GBM模型是我们团队比较有开创性的一项工作,下面稍微展开介绍。

模型

向量分解机(Factorization Machines, FM)是一种应用较为广泛的推荐模型,其发明者Steffen Rendle目前供职于Google。FM是对传统LR模型在处理高阶交互特征问题上的优化和改进:LR通过特征交叉的方式,将组合后的特征作为新特征加入到模型中,模型复杂度为O(N^2)(N为交互特征的数量,下同),记忆性较强而泛化性偏弱;FM通过将特征表征为隐向量,通过隐向量的相似度(內积)来表示特征关联这种方式来巧妙地提升模型的泛化能力;FM模型的复杂度为O(N*k)(k为隐向量维度超参)。

74028c7689ac9e602b927df6423696d35e0f25e3

以二阶交互的FM模型为例,其模型定义如下:

e0d42400144ed2d38ce8fe9f1259cfb3c0b48646

FM本质上是一个线性模型,不同项之间以线性组合的方式影响模型的输出。如果要考虑更加复杂的模型组合,计算复杂度将会非常高。尽管学术界也有像张量分解(Tensor Decomposition)这类处理高阶交互特征的模型;但在工业级,考虑到效果与性能的折衷,往往只考虑二阶的交互。但在此基础上,我们可以考虑引入非线性的模型来优化FM模型。


在非线性模型中,树模型(CART/GBM/Random Forest)的应用非常广泛。我们引入GBM作为组合FM的非线性模型:

ba63ccc974b6367c4116de8bfa9ad7d6b2db3653

FM+GBM一期(纯GBM)

一期主要打通整个实验框架和数据流,并没有引入额外的信号。GBM使用的信号包括:wd/lr模型等sub-model打分、点击率/时长和体感特征,以及一些简单的匹配度特征。整个实验框架比较简单:精排流程新增GBMScorer,实现以下2个功能:

 ●   分发服务器通过流量分桶决定精排是否使用GBM打分,由GBMScorer具体执行;
 ●   特征归一化和回流。提取的特征经归一化后返回给分发服务器,由分发服务器回流至日志服务器落盘。点击日志也同时经由日志服务器落盘。点击-展现日志通过reco_id+iid对齐,经清洗、过滤和反作弊处理后,提取回流特征用于模型训练;

在调研和实验的过程中,以下是一些经验和教训:

 ●  样本与超参的选择: 为了让模型尽可能地平滑,我们从7天滑动窗口的数据中随机抽取样本,并按比例分割训练/验证/测试集。通过交叉验证的方式选择超参;在所有的超参中,树深度对结果的影响比较大,深度为6时效果明显优于其他选择。在调参过程中,auc和loss这两项评估指标在训练/评估/测试数据集上并没有明显的差异,由此可见GBM模型的泛化性。
 ●  离线评估指标: auc是排序模型常用 的离线评估指标之一,但全局auc粒度太粗,可以结合业务计算一些细粒度的auc。行业有采用以Q uery为粒度,计算QAUC,即单个Query的auc,再按均值或者加权的方式融合得到的auc,比起全局auc指标更加合理。我们采用类似做法,以单次下发为粒度计算auc,再计算均值或者按点击加权。需要注意的是,auc计算的粒度决定了划分数据集的粒度。如果按照单次下发为粒度计算,那么一次下发的所有样本都必须同时落在训练/评估/测试数据集上。除此之外,单次下发中如果零点击或者全点击,这部分数据也是需要废弃的。
 ●  特征的归一化: 尤其是对与用户相关的特征进行归一化尤为重要。通过分析精排打分(wd),我们发现不同用户间的精排打分分布的差异较为显著:同一用户的打分方差小,分布比较集中;不同用户用户打分均值的方差比较大。如果不对精排打分做归一化处理,GBM训练过程很难收敛。

GBM和精排打分也会随特征回流。日志对齐后,可以对这两个模型在离线评估指标上做比较fair的对比。从全局auc/单次下发粒度auc与小流量实验的结果来看,细粒度auc与在线实验的效果更加趋于一致。

FM+GBM二期

一期搭建了实验框架和数据流,二期开始考虑引入新的信号。

纵观眼下GBM用到的信号,主要分为两类:一是item侧信号,这类特征从各个维度刻画了item的特性:热度、时长、质量等。这类特征有助于我们筛选精品内容,提升推荐质量baseline。二是相关性特征,用于刻画用户和视频的关联度(关联度可以通过点击刻画,也可以通过时长刻画;目前主要通过点击),提升推荐的个性化,做到千人千面。个性化水平才是信息流的核心竞争力。

目前相关性特征通过长短期用户画像计算和视频在一级/二级类目和TAG上的匹配程度,至少存在2个问题:

 ●   BoW稀疏的特征表达无法计算语义层面的匹配度;例如,带足球标签的用户和梅西的视频通过这种方式计算得到的匹配度为0。
 ●   目前视频结构化信息的准确率/覆盖率较低,会直接影响这类特征的效果。

wd/lr模型能够一定程度解决上述问题。尤其wd模型,通过embedding技术,将用户和视频本身及各个维度的结构化信息嵌入到一个低维隐向量,能够一定程度缓解这个问题。但是这类隐向量缺乏灵活性,无法脱离wd模型单独使用:计算用户和视频的匹配度,除了需要用户和视频的隐向量,还要结合其他特征,并经过一系列隐层的计算才能得到。

业界主流公司的做法,是通过FM模型,将所有id特征都分成在同一个空间内的隐向量,因而所有的向量都是可比的:不仅用户与视频本身和各个维度的匹配度,甚至用户之间、视频之间,都可以通过简单的向量运算得到匹配度。从模型结构看,FM模型可以认为是能够更加紧密刻画这种匹配度的神经网络结构。为此,我们引入FM模型分解点击-展现数据,得到用户和视频本身及各个维度的隐向量。通过这些隐向量计算用户和视频的匹配度。这些信号和与其它sub-model和高级特征一起,通过GBM进行点击率预估。

这种做法与Facebook在KDD'14发表的LR+GBDT模型有相似之处,差异在于: LR+GBDT本质上是线性模型,而FM+GBM是树模型,能够处理信号与目标间高度非线性的复杂关系,也具备更好的可解释性。整个算法框架如图所示:

cca82831bf19c16fb79c07e1b78857845c454c6d

由于FM需要例行训练,用户隐向量灌库和视频隐向量加载之间存在时间差,而不同版本模型的隐向量之间是不可比的。为此我们设计了简单的版本对齐机制:所有隐向量都会保留最近2个版本的数据;在FM在线计算模块中,实现版本对齐的逻辑,用对齐后最新版本的隐向量计算匹配度。由于例行训练的时间窗口为4~6个小时,保留2个版本的数据是足以保证绝大部分隐向量能够对齐。在更加高频的模型训练中,可以增加版本的数量来确保模型对齐。

效果上:一期+二期离线AUC提升10%,在线CTR和人均点击提升6%。

结语

信息流短视频排序层经过一段时间的迭代优化,目前已经形成 LR->WD->FM+GBM这套相对比较完备体系。这种漏斗体系有助于排序层在性能和效果之间trade-off:越往后,模型越复杂/特征越高级/计算量越大,而参与计算的视频数据量更少。

后续我们的优化目标将从点击率预估转向时长预估,由感知相关性转向真实相关性。这种转换是合理且必要的:用户点击容易受到标题和封面等因素的干扰,而真正体现用户兴趣的是消费时长。时长模型以及点击率预估模型与时长模型的融合实现收益的最大化,将是下一个要重点攻克的问题。


原文发布时间为:2018-09-14

本文作者:马泽锋

本文来自云栖社区合作伙伴“阿里技术”,了解相关信息可以关注“阿里技术”。

相关文章
|
3月前
|
机器学习/深度学习 人工智能 算法
模型无关的局部解释(LIME)技术原理解析及多领域应用实践
在当前数据驱动的商业环境中,人工智能(AI)和机器学习(ML)已成为各行业决策的关键工具,但随之而来的是“黑盒”问题:模型内部机制难以理解,引发信任缺失、监管合规难题及伦理考量。LIME(局部可解释模型无关解释)应运而生,通过解析复杂模型的个别预测,提供清晰、可解释的结果。LIME由华盛顿大学的研究者于2016年提出,旨在解决AI模型的透明度问题。它具有模型无关性、直观解释和局部保真度等优点,在金融、医疗等领域广泛应用。LIME不仅帮助企业提升决策透明度,还促进了模型优化和监管合规,是实现可解释AI的重要工具。
127 9
|
3月前
|
开发框架 供应链 监控
并行开发模型详解:类型、步骤及其应用解析
在现代研发环境中,企业需要在有限时间内推出高质量的产品,以满足客户不断变化的需求。传统的线性开发模式往往拖慢进度,导致资源浪费和延迟交付。并行开发模型通过允许多个开发阶段同时进行,极大提高了产品开发的效率和响应能力。本文将深入解析并行开发模型,涵盖其类型、步骤及如何通过辅助工具优化团队协作和管理工作流。
80 3
|
1月前
|
机器学习/深度学习 人工智能 PyTorch
Transformer模型变长序列优化:解析PyTorch上的FlashAttention2与xFormers
本文探讨了Transformer模型中变长输入序列的优化策略,旨在解决深度学习中常见的计算效率问题。文章首先介绍了批处理变长输入的技术挑战,特别是填充方法导致的资源浪费。随后,提出了多种优化技术,包括动态填充、PyTorch NestedTensors、FlashAttention2和XFormers的memory_efficient_attention。这些技术通过减少冗余计算、优化内存管理和改进计算模式,显著提升了模型的性能。实验结果显示,使用FlashAttention2和无填充策略的组合可以将步骤时间减少至323毫秒,相比未优化版本提升了约2.5倍。
49 3
Transformer模型变长序列优化:解析PyTorch上的FlashAttention2与xFormers
|
11天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
57 1
|
2月前
|
前端开发 Java Maven
深入解析:如何用 Spring Boot 实现分页和排序
深入解析:如何用 Spring Boot 实现分页和排序
59 2
|
2月前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
100 2
|
2月前
|
存储 安全 Linux
Golang的GMP调度模型与源码解析
【11月更文挑战第11天】GMP 调度模型是 Go 语言运行时系统的核心部分,用于高效管理和调度大量协程(goroutine)。它通过少量的操作系统线程(M)和逻辑处理器(P)来调度大量的轻量级协程(G),从而实现高性能的并发处理。GMP 模型通过本地队列和全局队列来减少锁竞争,提高调度效率。在 Go 源码中,`runtime.h` 文件定义了关键数据结构,`schedule()` 和 `findrunnable()` 函数实现了核心调度逻辑。通过深入研究 GMP 模型,可以更好地理解 Go 语言的并发机制。
|
3月前
|
机器学习/深度学习 搜索推荐 大数据
深度解析:如何通过精妙的特征工程与创新模型结构大幅提升推荐系统中的召回率,带你一步步攻克大数据检索难题
【10月更文挑战第2天】在处理大规模数据集的推荐系统项目时,提高检索模型的召回率成为关键挑战。本文分享了通过改进特征工程(如加入用户活跃时段和物品相似度)和优化模型结构(引入注意力机制)来提升召回率的具体策略与实现代码。严格的A/B测试验证了新模型的有效性,为改善用户体验奠定了基础。这次实践加深了对特征工程与模型优化的理解,并为未来的技术探索提供了方向。
142 2
深度解析:如何通过精妙的特征工程与创新模型结构大幅提升推荐系统中的召回率,带你一步步攻克大数据检索难题
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习与自然语言处理的前沿技术:Transformer模型的深度解析
探索深度学习与自然语言处理的前沿技术:Transformer模型的深度解析
114 0
|
3月前
|
安全 Java
Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧
【10月更文挑战第20天】Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧,包括避免在循环外调用wait()、优先使用notifyAll()、确保线程安全及处理InterruptedException等,帮助读者更好地掌握这些方法的应用。
25 1

推荐镜像

更多