惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
爱范儿
爱范儿
宝玉的分享
宝玉的分享
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - Franky
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
阮一峰的网络日志
阮一峰的网络日志
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
博客园 - 聂微东
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
博客园 - 叶小钗
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
小众软件
小众软件
博客园 - 司徒正美
博客园 - 【当耐特】
IT之家
IT之家

博客园_首页

Plist 二进制格式 Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 第30篇文章:一个大三计科生的自白 Manim如何在数学公式中完美显示中文? Docker 部署 RocketMQ 5 并发编程核心概念辨析 C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生 CLI 是什么?为什么大厂突然集体卷命令行? 【从0到1构建一个ClaudeAgent】协作-自主Agent UIImageView 设置图片不生效的原因排查 最小二乘问题详解20:无先验约束下的增量式SFM自由网平差 痞子衡嵌入式:大话双核i.MXRT1180之XIP应用里借助MU实现可靠Flash IAP的方法 AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布 Windows下右键编辑js文件无法打开记事本——在注册表中使用环境变量 在后台服务中使用 Scoped 服务,为什么总是报错? H200 安装驱动并使用sglang启动模型 wireshark 抓包Trap上报告警内容 我用 AI 辅助开发了一系列小工具(2):图片压缩工具 [A Primer On MC and CC] 2.1 Memory Consistency 1 - 指令重排序和 SC 模型 Oracle数据库SCN推进技术详解与实践指南 玩转控件:封装个带图片的Label控件 Claude Code 4.7 真正该升级的不是模型,而是你的工作流 前端小白一句话,AI 帮我做了个颜值拉满的桌面媒体播放器。当代码不再是门槛,一句话编程就是现实。 5. WorkBuddy: 小龙虾的灵魂三件套,让你的小龙虾不只是工具 SQLite 分片方案实战:三种分片策略的深度对比 告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库 关于二进制排列组合枚举的总结 AI开发-python-LangGraph框架(3-27-LangGraph从零实现大模型智能决策工作流) ElasticSearch主分片和副本分片概念详解
"Deconfounding Duration Bias in Watch-time Predictio...
绵满 · 2026-05-05 · via 博客园_首页

背景

观看时长(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% 的显著改进,并且已经部署到快手的在线推荐系统中

总结

分桶确实是解决 duration bias 的一个非常直接有效的方式,但是不够优雅,不可避免的带来离散突变的问题(例如 60s 和 61s 本身是很接近的 duration,但是很可能会被分到两个桶,导致预测的结果相差很多),这也是为什么近几年的方法都在抛弃分桶的原因