news 2026/7/19 5:36:00

“Deconfounding Duration Bias in Watch-time Prediction for Video Recommendation“ 论文笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
“Deconfounding Duration Bias in Watch-time Prediction for Video Recommendation“ 论文笔记

时长(watch time)是视频推荐中的重要指标之一,提升整体观看时长是视频推荐系统的主要目标。观看时长主要受两个因素的影响:用户是否对视频感兴趣、视频本身的时长(duration)

作者分析发现持续时间数据存在明显的偏差现象(图中给出了明显的体现),具体体现在以下两个方面:

一方面,100s以下的视频,其观看时长和本身时长有着正相关关系,将视频时长作为输入特征的观看时长预测方法会引入偏置问题

另一方面,随时间推移,视频时长分布极不均匀,且长视频曝光占比会逐渐增大,由此模型训练样本被长视频占据,用户个性化兴趣可能无法有效建模

为了解决这种持续时间偏差的问题,作者遵循后门调整的原则并干预观看时间预测的因果图,以消除持续时间到视频曝光的不良影响。在操作上,作者根据持续时间将训练数据分成相等的部分;对于每个持续时间组,学习一个回归模型来预测按组观看时间分位数,其中标签由原始观看时间值和相应组中观看时间的经验累积分布确定。这种分位数预测可以跨持续时间组共享模型参数,从而带来可扩展性的好处

注意,快手和抖音这样的流媒体平台单列场景是不存在印象深刻/点击的问题的,因为所有视频都被直接展示,没有选择点击环节

方法
因果图
image

这里需要掌握 D、V、W、U 的含义和他们之间的连接关系。这里的重要结论是:在因果图中,duration 通过两条路径影响观看时间,D-W(直接影响观看时长)和 D-V-W(先影响曝光从而间接影响观看时长)

模型
image

(1) D2Q

如因果图所示,作者主要遵循后门调整的原则来消除时长的混杂,即消除 duration 对视频曝光的偏差,保留 duration 对观看时间的影响。那怎么消除 duration 对视频曝光的偏差呢?

最暴力的方法就是对每个视频的样本独立训练一个模型,实际上这么做肯定是不可行的,作者采用了一种折中的方法,先对所有的视频样本按 duration 排序等频分桶,那么当分桶数目足够多的时间,桶内视频 duration 差别比较小,如果只用每个桶内的样本单独训练一个模型的话,基本可以消除duration bias 了。

但是这种做法扔然有些缺陷,如果每个分桶都单独训练一个模型(或采用 multitask 建模)会导致模型参数过多,而且不同分桶样本不能共享参数提升泛化性,如果所有分桶都用一个模型训练的话那就无法消除 duration bias。对此,作者采用了对 label 做变换的方法,具体来说不直接拟合观看时长,而是拟合观看时长在这个分桶内所有样本观看时长的分位数,这样就可以把不同分桶的 label 拉到同一尺度,用一个模型训练所有分桶数据也不会有 duration bias,预估时把分位数预估值映射回真实观看时长

(2) Res-D2Q

由背景描述可以注意到,视频时长也应该是模型输入的一部分,以区分不同时长组的样本。为了充分利用持续时间信息,可以在模型架构中额外加入一个持续时间调整塔,如 ResNet,我们将其称为 Res-D2Q,其比 D2Q 进一步提高了观看时间预测精度

实验
image

与传统回归与加权逻辑回归进行了比较,在快手数据集上的效果如图。可以看到 D2Q 实现了显著的提升,Res-D2Q 进一步增强了预测的表现

XAUC 是 AUC 在稠密预测值(如观看时长)上的扩展。其计算方式为:从测试集中均匀采样样本对,对于每一对样本,若模型对两个视频预测的观看时长顺序与其真实观看时长顺序一致,则计 1 分,否则计 0 分,最终将所有样本对的平均得分作为 XAUC。直观上,XAUC 衡量了模型预测的观看时长排序与真实排序的一致性,XAUC 越高,模型性能越好

XGAUC 则是对 XAUC 的用户级改进。它先为每个用户独立计算其 XAUC 值,再将所有用户的 XAUC 按用户样本量大小进行加权平均(样本量越大的用户权重越高)。这种设计可以避免大用户对指标的过度影响,更能反映模型在不同用户群体上的排序表现。XGAUC 越高,代表模型在用户层面的排序能力越强

当没有数据分割时,两种方法是等效的。一旦数据被按照 duration 分割,Res-D2Q 通过改进带有持续时间信息的网络架构而优于 D2Q。此外,随着持续时间组数量的增加,性能首先提高,其优点是通过数据分割来消除持续时间的混杂;然后下降的原因是样本量缩小导致经验观看时间分布的估计误差增加

最后线上效果也在观看时长上取得了 +0.746% 的显著改进,并且已经部署到快手的在线推荐系统中

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 5:34:35

Blender VRM插件全流程指南:从建模到导出虚拟角色

1. 项目概述:为什么是VRM与Blender的组合?如果你最近在折腾3D角色,尤其是想把自己做的模型放到VRChat或者一些支持VRM格式的虚拟直播软件里用,那你大概率已经听说过VRM这个名字了。VRM本质上是一个基于glTF的开放3D角色模型格式&a…

作者头像 李华
网站建设 2026/7/19 5:34:30

【HeyGen数字人商业变现闭环】:从脚本设计→形象定制→多平台分发→ROI追踪的9步标准化SOP(含私有化部署白皮书)

更多请点击: https://intelliparadigm.com 第一章:HeyGen数字人商业变现闭环全景图 HeyGen数字人已从单一视频生成工具演进为支撑企业级商业化落地的智能体基础设施。其变现闭环并非线性流程,而是由内容生产、用户触达、价值交付与数据反哺四…

作者头像 李华
网站建设 2026/7/19 5:32:28

MZmine 3:开源质谱数据分析平台的技术架构创新与性能突破

MZmine 3:开源质谱数据分析平台的技术架构创新与性能突破 【免费下载链接】mzmine3 mzmine source code repository 项目地址: https://gitcode.com/gh_mirrors/mz/mzmine3 在当代代谢组学与脂质组学研究中,质谱数据处理面临三大技术挑战&#xf…

作者头像 李华
网站建设 2026/7/19 5:32:00

解决GCC 10.2下C++20与pybind11编译兼容性问题

1. 项目概述:当现代C遇上Python绑定如果你正在用C20写高性能计算模块,并且想通过pybind11把它优雅地暴露给Python调用,却在GCC 10.2这个“临界版本”上卡在了编译环节,那么这篇指南就是为你准备的。我最近在一个实时数据处理项目中…

作者头像 李华
网站建设 2026/7/19 5:31:47

Python进阶:函数式编程与文件操作实战指南

1. Python第四周学习路线解析"LearnPython_week4"这个标题背后隐藏着一条清晰的Python学习进阶路径。作为过来人,我建议第四周应该聚焦三个核心方向:函数式编程工具包(lambda/map/filter/reduce)、异常处理机制、以及文…

作者头像 李华
网站建设 2026/7/19 5:31:35

C#结合AForge.NET与EMGU CV实现工业级视频处理

1. 项目概述与核心价值在工业检测、安防监控、医疗影像等领域,实时视频流处理一直是核心技术需求。传统方案往往依赖昂贵的专用设备或复杂的C开发,而C#配合AForge.NET和EMGU CV这两个开源库,为开发者提供了高性价比的跨平台解决方案。我在多个…

作者头像 李华