Deconfounding Duration Bias in Watch-time Prediction for Video Recommendation
Abstract
观看时间预测仍然是通过视频推荐加强用户粘性的关键因素。然而,观看时间的预测不仅取决于用户与视频的匹配,而且经常被视频本身的持续时间所误导。为了提高观看时间,推荐总是偏向于长时间的视频。在这种不平衡的数据上训练的模型面临着偏差放大的风险,这会误导平台过度推荐长时间的视频。
本文首次对视频推荐中观看时间预测中的时长偏差进行了研究。我们使用了一个因果图来说明时长是同时影响视频曝光和观看时间预测的混淆因素——对视频的第一个影响导致了偏差问题,应该被消除,而对观看时间的第二个影响源于视频的内在特征,应该被保留。为了消除不希望的偏差,同时利用自然效应,我们提出了一个基于持续时间-去基础分位数(D2Q)的观察时间预测框架,该框架允许在工业生产系统上执行可扩展性。通过广泛的离线评估和现场实验,我们通过显着优于最先进的基线,展示了这种持续时间反建立框架的有效性。
Introduction
观看时长主要受两个因素的影响:取决于用户对视频的兴趣程度和视频本身的持续时间。
从图2可以看出,视频本身时长小于100秒时,用户观看时间与视频时长呈正相关。

因此,标准的观看时间预测模型通常使用时长和其他视频特征作为特征输入进行预测。然而,不幸的是,这种做法在许多推荐系统中导致了偏见问题。
图3表明,随着时间的推移,推荐逐渐基于持续时间较长的视频。

因此,持续时间较长的视频可能会过度曝光,从而在推荐中低估了用户的真正兴趣。更严重的是,在这种不平衡数据上训练的模型由于链路反馈将放大视频时长的偏差。这损害了理想推荐的多样性和个性化。
尽管流行率很高,但与推荐研究中由项目受欢迎程度或位置引起的许多其他偏差相比,对视频时长偏差的探索要少得多。以最大化用户观看时间为目标,推荐系统可能会学习到视频时长和观看时间之间的虚假相关性;因此,长时间的视频更有可能被播放,即使它们可能无法很好地匹配用户的兴趣。另一方面,由于存在曝光不平衡,长时间的视频通常样本量较大,这可能会影响模型学习。
本文首次对观看时间预测中的持续偏差进行了研究。我们采用直接无环图(称为因果图)来表征观看时间预测中与视频时长有关的因果关系,如图4(a)所示。具体来说,时长作为一个混淆因素,同时影响观看时长预测和视频曝光。

时长对观看时间的第一个影响表明,用户倾向于花更多的时间观看本质上时长较长的视频,这是一种自然效应,应该通过观看时间预测模型来捕捉。然而,从视频时长到视频的第二个影响是困扰许多观看时间预测模型的一个偏差项。这样的效应说明时长影响视频曝光的可能性,这代表了模型对时长较长的视频的不公平偏好,应该消除。这种对视频时长效应的明确建模,与之前只使用视频时长作为观看时间预测特征的工作相反,使我们能够消除不希望的偏差,但保留真正的影响。
为了处理视频时长偏差,我们遵循后门调整的原则,对观看时间预测的因果图进行干预,以消除视频时长对视频曝光的不良影响,如图4(b)所示。我们注意到,从持续时间到观看时间的影响是保留的,因为这种关系是内在的,应该在预测中加以利用。
在操作上,我们根据视频时长将训练数据分成相等的部分;对于每个视频时长组,我们学习了一个回归模型来预测分组的观看时间分位数,其中标签由原始观看时长值和相应组中观看时间的经验累积分布确定。这样的分位预测支持跨视频时长组共享模型参数,从而带来可伸缩性方面的好处。总结我们的贡献如下:
- 观看时间预测中视频时长偏差的因果公式。我们采用因果图来形式化观看时间预测中被忽视但广泛存在的视频时长偏差问题。我们指出时长是影响观看时间预测和视频曝光的混淆因素,前者是固有的,应该保留,后者是偏差,应该消除。
- 通过可伸缩性调整视频时间。在后门调整的指导下,我们基于视频时间对数据进行分割,并对每个视频时间组拟合观看时间预测模型,以消除视频曝光的持续时间偏差。我们根据视频时间修改观看时长label,以允许跨组共享参数并获得可伸缩性。
- 广泛的离线评估。我们对从快手App收集的数据进行了一系列线下评估,以证明我们的模型相对于现有基线的优势。我们进一步对视频时长组的数量进行了消融研究,发现随着组数量的增加,我们的模型性能首先提高(由于视频时长去偏),然后下降(由于减少的组样容量增加了估计误差)。
- 在线实验的好处。我们进一步将我们的方法应用于快手平台上的视频推荐,结果表明,与现有策略相比,通过消除不必要的持续时间偏差,我们的方法提高了观看时间预测的准确性,并有助于优化实时视频消费。
相关文章:
Deconfounding Duration Bias in Watch-time Prediction for Video Recommendation
Abstract 观看时间预测仍然是通过视频推荐加强用户粘性的关键因素。然而,观看时间的预测不仅取决于用户与视频的匹配,而且经常被视频本身的持续时间所误导。为了提高观看时间,推荐总是偏向于长时间的视频。在这种不平衡的数据上训练的模型面…...
python多进程
python多进程的使用有两种方式: multiprocessingconcurrent的使用方式 multiprocessing的使用方式 定义线程池的数量开始处理,结果回调 下面以多进程下载图像为例: import multiprocessing import requests from io import BytesIO from…...
springboot 的yaml配置文件加密
springboot 的yaml配置文件加密 一、采用yaml 插件加密添加依赖创建启动类配置加密密钥加密需要加密的内容用过测试类编写加密的YAML配置解密配置可选:自定义配置扩展:修改ENC() 一、采用yaml 插件加密 使用Jasypt对Spring Boot的YAML配置文件进行加密是…...
npm发布、更新、删除包
如何将自己开发的依赖包发布到npmjs上供别人使用?五个步骤搞定! 实现步骤: 创建自己的工具包项目,进行开发。注册npmjs账号。执行npm login在控制台登录,填写用户信息。执行npm publish发布包。更新及删除。 步骤一…...
【JavaEE进阶】——Mybatis操作数据库(使用注解和XML方式)
目录 🚩三层架构 🎈JDBC操作回顾 🚩什么是MyBatis 🚩MyBatis⼊⻔ 🎈准备工作 📝创建⼯程 📝数据准备 🎈配置数据库连接字符串 🎈写持久层代码 🎈单…...
【数据结构】六种排序实现方法及区分比较
文章目录 前言插入排序希尔排序选择排序堆排序快速排序冒泡排序总结 前言 众所周知,存在许多种排序方法,作为新手,最新接触到的就是冒泡排序,这种排序方法具有较好的教学意义,但是实用意义不高,原因就在于…...
QT之QTableWidget详细介绍
本文来自于学习QT时遇到QTableWidget类时进行总结的知识点,涵盖了QTableWidget主要函数。本人文笔有限,欢迎大家评论区讨论。 一、QTableWidget介绍 QTableWidget 类是 Qt 框架中的一个用于展示和编辑二维表格数据的控件。它是对 QTableView 和 QStand…...
mac电脑安卓设备文件传输助手:MacDroid pro 中文激活版
MacDroid Pro是一款专为Mac电脑和Android设备设计的软件,旨在简化两者之间的文件传输和数据管理,双向文件传输:支持从Mac电脑向Android设备传输文件,也可以将Android设备上的文件轻松传输到Mac电脑上。完整的文件访问和管理&#…...
车流量监控系统
1.项目介绍 本文档是对于“车流量检测平台”的应用技术进行汇总,适用于此系统所有开发,测试以及使用人员,其中包括设计背景,应用场景,系统架构,技术分析,系统调度,环境依赖…...
LAMP集群分布式实验报告
前景: 1.技术成熟度和稳定性: LAMP架构(Linux、Apache、MySQL、PHP)自1998年提出以来,经过长时间的发展和完善,已经成为非常成熟和稳定的Web开发平台。其中,Linux操作系统因其高度的灵活性和稳…...
vue3中函数必须有返回值么?
在 Vue 3 中,特别是涉及到Composition API的使用时,setup() 函数确实必须有返回值。setup() 函数是组件的入口点,它的返回值会被用来决定哪些数据和方法是可被模板访问的。返回的对象中的属性和方法可以直接在模板中使用。如果setup()没有返回…...
经常用到的函数
创建文件夹和删除文件夹的函数 def make_dirs(*dirs):for new_dir in dirs:if not os.path.exists(new_dir):try:os.makedirs(new_dir)except RuntimeError:return Falsereturn Truedef remove_files(file_path_list):""" 删除列表中指定路径文件Args:file_pat…...
vue3学习(六)
前言 接上一篇学习笔记,今天主要是抽空学习了vue的状态管理,这里学习的是vuex,版本4.1。学习还没有学习完,里面有大坑,难怪现在官网出的状态管理用Pinia。 一、vuex状态管理知识点 上面的方式没有写全,还有…...
[数据集][目标检测]猫狗检测数据集VOC+YOLO格式8291张2类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):8291 标注数量(xml文件个数):8291 标注数量(txt文件个数):8291 标注…...
简单模拟实现shell(Linux)
目录 前言 展示效果 实现代码 前言 该代码模拟了shell的实现,也就是解析类似于“ls -a -l"的命令,当我们启动我们自己写的shell的可执行程序时,我们输入"ls"的命令,也可以展示出在shell中输入&…...
SQL深度解析:从基础到高级应用
SQL(Structured Query Language)是用于管理关系型数据库的语言,广泛应用于数据管理、分析和查询。本文将详细介绍SQL的基础知识、高级特性以及一些常见的代码示例,帮助您全面掌握SQL的应用。 一、SQL基础语法 数据库操作 创建数据…...
乡村振兴与脱贫攻坚相结合:巩固拓展脱贫攻坚成果,推动乡村全面振兴,建设更加美好的乡村生活
目录 一、引言 二、巩固拓展脱贫攻坚成果 1、精准施策,确保稳定脱贫 2、强化政策支持,巩固脱贫成果 3、激发内生动力,促进持续发展 三、推动乡村全面振兴 1、加快产业发展,增强乡村经济实力 2、推进乡村治理体系和治理能力…...
[AI Google] Google I/O 2024: 为新一代设计的 I/O
编辑注:以下是 Sundar Pichai 在 I/O 2024 上讲话的编辑版,并包含了更多在舞台上宣布的内容。查看我们收藏中的所有公告。 Google 完全进入了我们的 Gemini 时代。 在开始之前,我想反思一下我们所处的这一刻。我们已经在 AI 上投资了十多年…...
CentOS配置DNS
1.打开/etc/resolv.conf文件 sudo vi /etc/resolv.conf2.添加配置 nameserver 114.114.114.1143.保存并关闭文件。 4.为了确保配置生效,重启网络服务或重启系统。例如: 重启网络: sudo systemctl restart network重启系统: …...
ArcGIS空间数据处理、空间分析与制图;PLUS模型和InVEST模型的原理,参量提取与模型运行及结果分析;土地利用时空变化以及对生态系统服务的影响分析
工业革命以来,社会生产力迅速提高,人类活动频繁,此外人口与日俱增对土地的需求与改造更加强烈,人-地关系日益紧张。此外,土地资源的不合理开发利用更是造成了水土流失、植被退化、水资源短缺、区域气候变化、生物多样性…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
FFmpeg avformat_open_input函数分析
函数内部的总体流程如下: avformat_open_input 精简后的代码如下: int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...
深入解析光敏传感技术:嵌入式仿真平台如何重塑电子工程教学
一、光敏传感技术的物理本质与系统级实现挑战 光敏电阻作为经典的光电传感器件,其工作原理根植于半导体材料的光电导效应。当入射光子能量超过材料带隙宽度时,价带电子受激发跃迁至导带,形成电子-空穴对,导致材料电导率显著提升。…...
