如何运用强化学习来提升快手用户留存?

短视频推荐系统的核心目标是通过提升用户留存,牵引 DAU 增长。因此留存是各APP的核心业务优化指标之一。然而留存是用户和系统多次交互后的长期反馈,很难分解到单个 item 或者单个 list,因此传统的 point-wise 和 list-wise 模型难以直接优化留存。

强化学习(RL)方法通过和环境交互的方式优化长期奖励,适合直接优化用户留存。该工作将留存优化问题建模成一个无穷视野请求粒度的马尔科夫决策过程(MDP),用户每次请求推荐系统决策一个动作(action),用于聚合多个不同的短期反馈预估(观看时长、点赞、关注、评论、转发等)的排序模型打分。该工作目标是学习策略(policy),最小化用户多个会话的累计时间间隔,提升 App 打开频次进而提升用户留存。

然而由于留存信号的特性,现有 RL 算法直接应用存在以下挑战:1)不确定性:留存信号不只由推荐算法决定,还受到许多外部因素干扰;2)偏差:留存信号在不同时间段、不同活跃度用户群体存在偏差;3)不稳定性:与游戏环境立即返回奖励不同,留存信号通常在数小时至几天返回,这会导致 RL 算法在线训练的不稳定问题。

该工作提出 Reinforcement Learning for User Retention algorithm(RLUR)算法解决以上挑战并直接优化留存。通过离线和在线验证,RLUR 算法相比 State of Art 基线能够显著地提升次留指标。RLUR 算法已经在快手 App 全量,并且能够持续地拿到显著的次留和 DAU 收益,是业内首次通过 RL 技术在真实生产环境提升用户留存。该工作已被 WWW 2023 Industry Track 接收。

快手:通过强化学习提升用户留存

作者:蔡庆芃,刘殊畅,王学良,左天佑,谢文涛,杨斌,郑东,江鹏

论文地址:https://arxiv.org/pdf/2302.01724.pdf

问题建模

如图 1(a)所示,该工作把留存优化问题建模成一个无穷视野请求粒度马尔科夫决策过程(infinite horizon request-based Markov Decision Process),其中推荐系统是 agent,用户是环境。用户每次打开 App,开启一个新的 session i。如图 1(b),用户每次请求快手:通过强化学习提升用户留存推荐系统根据用户状态快手:通过强化学习提升用户留存决策一个参数向量快手:通过强化学习提升用户留存,同时 n 个预估不同短期指标(观看时长、点赞、关注等)的排序模型对每个候选视频 j 进行打分快手:通过强化学习提升用户留存。然后排序函数输入 action 以及每个视频的打分向量,得到每个视频的最终打分,并选出得分最高的 6 个视频展示给用户,用户返回 immediate feedback快手:通过强化学习提升用户留存。 当用户离开 App 时本 session 结束,用户下一次打开 App session i+1 开启,上一个 session 结尾和下一个 session 开始的时间间隔被称为回访时间(Returning time),快手:通过强化学习提升用户留存。  该研究的目标是训练策略最小化多个 session 的回访时间之和。

快手:通过强化学习提升用户留存

RLUR 算法

该工作首先讨论怎么预估累计回访时间,然后提出方法解决留存信号的几个关键挑战。这些方法汇总成 Reinforcement Learning for User Retention algorithm,简写为 RLUR。

回访时间预估

如图 1(d)所示,由于动作是连续的,该工作采取 DDPG 算法的 temporal difference(TD)学习方式预估回访时间。

快手:通过强化学习提升用户留存

由于每个 session 最后一次请求才有回访时间 reward,中间 reward 为 0,作者设置折扣因子快手:通过强化学习提升用户留存在每个 session 最后一次请求取值为快手:通过强化学习提升用户留存,其他请求为 1。这样的设定能够避免回访时间指数衰减。并且从理论上可以证明当 loss(1)为 0 时,Q 实际上预估多个 session 的累计回访时间,快手:通过强化学习提升用户留存。 

解决延迟奖励问题

由于回访时间只发生在每个 session 结束,这会带来学习效率低的问题。因而作者运用启发式奖励来增强策略学习。由于短期反馈和留存是正相关关系,因而作者把短期反馈作为第一种启发式奖励。并且作者采用 Random Network Distillation(RND)网络来计算每个样本的内在奖励作为第二种启发式奖励。具体而言 RND 网络采用 2 个相同的网络结构,一个网络随机初始化 fixed,另外一个网络拟合这个固定网络,拟合 loss 作为内在奖励。如图 1(e)所示,为了减少启发式奖励对留存奖励的干扰,该工作学习一个单独的 Critic 网络,用来估计短期反馈和内在奖励之和。即 快手:通过强化学习提升用户留存

解决不确定性问题

由于回访时间受到很多推荐之外的因素影响,不确定度高,这会影响学习效果。该工作提出一个正则化方法来减少方差:首先预估一个分类模型快手:通过强化学习提升用户留存来预估回访时间概率,即预估回访时间是否短于快手:通过强化学习提升用户留存 ;然后用马尔可夫不等式得到回访时间下界,快手:通过强化学习提升用户留存; 最后用真实回访时间 / 预估回访时间下界作为正则化的回访 reward。

豆包爱学 豆包爱学

豆包旗下AI学习应用

豆包爱学 674 查看详情 豆包爱学

解决偏差问题

由于不同活跃度群体的行为习惯差异大,高活用户留存率高并且训练样本数量也显著多于低活用户,这会导致模型学习被高活用户主导。为解决这个问题,该工作对高活和低活不同群体学习 2 个独立策略,采用不同的数据流进行训练,Actor 最小化回访时间同时最大化辅助奖励。如图 1(c),以高活群体为例,Actor loss 为:

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

快手:通过强化学习提升用户留存

解决不稳定性问题

由于回访时间信号延迟,一般在几个小时到数天内返回,这会导致 RL 在线训练不稳定。而直接使用现有的 behavior cloning 的方式要么极大限制学习速度要么不能保证稳定学习。因而该工作提出一个新的软正则化方法,即在 actor loss 乘上一个软正则化系数:

快手:通过强化学习提升用户留存

这个正则化方法本质上是一种制动效应:如果当前学习策略和样本策略偏差很大,这个 loss 会变小,学习会趋于稳定;如果学习速度趋于稳定,这个 loss 重新变大,学习速度加快。当快手:通过强化学习提升用户留存,代表着对学习过程不加任何约束。

离线实验

该工作把 RLUR 和 State of the Art 的强化学习算法 TD3,以及黑盒优化方法 Cross Entropy Method (CEM) 在公开数据集 KuaiRand 进行对比。该工作首先基于 KuaiRand 数据集搭建一个留存模拟器:包含用户立即反馈,用户离开 Session 以及用户回访 App 三个模块,然后在这个留存模拟器评测方法。

快手:通过强化学习提升用户留存

表 1 说明 RLUR 在回访时间和次留指标显著优于 CEM 和 TD3。该研究进行消融实验,对比 RLUR 和只保留留存学习部分 (RLUR (naive)),可以说明该研究针对留存挑战解决方法的有效性。并且通过快手:通过强化学习提升用户留存快手:通过强化学习提升用户留存对比,说明最小化多个 session 的回访时间的算法效果优于只最小化单个 session 的回访时间。

在线实验

快手:通过强化学习提升用户留存

该工作在快手短视频推荐系统进行 A/B 测试对比 RLUR 和 CEM 方法。图 2 分别显示 RLUR 对比 CEM 的 App 打开频次、DAU、次留、7 留的提升百分比。可以发现 App 打开频次在 0-100 天逐渐提升乃至收敛。并且也拉动次留、7 留以及 DAU 指标的提升(0.1% 的 DAU 以及 0.01% 的次留提升视为统计显著)。

总结与未来工作

本文研究如何通过 RL 技术提升推荐系统用户留存,该工作将留存优化建模成一个无穷视野请求粒度的马尔可夫决策过程,该工作提出 RLUR 算法直接优化留存并有效地应对留存信号的几个关键挑战。RLUR 算法已在快手 App 全量,能够拿到显著的次留和 DAU 收益。关于未来工作,如何采用离线强化学习、Decision Transformer 等方法更有效地提升用户留存是一个很有前景的方向。

以上就是如何运用强化学习来提升快手用户留存?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/550931.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月9日 20:04:35
下一篇 2025年11月9日 20:05:12

相关推荐

  • JavaScript算法实现_javascript编程挑战

    数组去重:利用Set特性去除重复元素,return […new Set(arr)];2. 回文判断:转小写后与反转字符串比较,cleaned === cleaned.split(”).reverse().join(”);3. 快速排序:选基准值分治递归,left、…

    2025年12月21日
    000
  • js如何实现文本差异对比 4种差异比对算法快速找出文本变化内容

    js实现文本差异对比需遵循以下步骤:1.预处理文本,如清洗字符;2.选择算法如lcs、diff、levenshtein距离或基于单词的对比;3.用js实现所选算法;4.将结果以高亮或报告形式展示。lcs通过动态规划找出最长公共子序列,可优化空间与提前结束运算。diff算法识别插入、删除、替换操作,可…

    2025年12月20日 好文分享
    000
  • C++怎么使用std::algorithm库_C++常用算法函数sort、find、for_each

    std::sort、std::find 和 std::for_each 是 C++ 中常用算法,分别用于排序、查找和遍历操作,需包含 头文件,作用于迭代器区间,提升代码简洁性与可读性。 在C++中,std::algorithm 库提供了大量实用的通用算法函数,它们作用于容器或数组的迭代器区间,极大简…

    2025年12月19日
    000
  • c++中什么是C++标准库的算法(algorithms)_c++ STL算法库功能与常用操作概览

    C++标准库算法通过迭代器操作容器数据,提供查找、排序、修改、比较、集合及数值运算等功能,如sort、find、copy、accumulate等,具有代码简洁、性能优化、通用性强的优势,支持lambda表达式定制逻辑。 C++标准库中的算法(algorithms)是一组用于操作容器中数据的函数模板,…

    2025年12月19日
    000
  • C++循环与算法结合实现高性能程序

    循环与算法结合可显著提升C++性能。合理选择for、while等循环结构,优先使用for循环及范围遍历以提高可读性和优化潜力。通过循环展开减少迭代次数,利用SIMD指令集(如SSE、AVX)实现数据并行处理,能大幅提升数据密集型任务效率。在算法层面,应选用高效算法(如快速排序、二分查找),并优化循环…

    2025年12月18日
    000
  • C++STL算法all_of any_of none_of使用方法

    答案:C++11引入all_of、any_of和none_of算法,用于判断区间元素是否全部、任意或无一满足条件,返回bool值,支持lambda,提升代码可读性。 在C++11中,STL引入了三个非常实用的算法:all_of、any_of 和 none_of。它们定义在头文件 gorithm&gt…

    2025年12月18日
    000
  • C语言算法问答集:将算法应用于人工智能

    搜索算法:二分查找,高效地在数组中查找元素。排序算法:快速排序,将数据序列按特定顺序排列。图形算法:dijkstra 算法,寻找两个节点间最短路径。机器学习算法:线性回归,训练模型对数据进行预测。 C 语言算法问答集:将算法应用于人工智能 前言 算法在人工智能(AI)中扮演着至关重要的角色,可为 A…

    2025年12月18日
    000
  • C语言算法:难点疑难全解析

    C语言算法:难点疑难全解析 简介 C语言算法是计算机科学中的基石,然而对于初学者来说,理解和掌握这些算法可能颇具挑战性。本文将深入解析C语言算法中常见的难点和疑难问题,并通过详实的代码示例进行讲解。 难点1:递归 立即学习“C语言免费学习笔记(深入)”; 递归是一种强大的算法设计技术,但理解其原理和…

    2025年12月18日
    000
  • C语言算法问答集:从初学者到算法专家的进阶指南

    算法是一种有限的解决问题步骤序列,用于提供输入并生成输出。学习算法可提高问题解决能力、优化代码效率和设计复杂程序。c 语言中常用的数据结构包括数组、链表、栈、队列、树和图。提高算法效率的方法有使用更快的数据结构、优化算法复杂度和使用归纳和分治技术。上述代码段展示了如何使用 c 语言算法查找数组中最大…

    2025年12月18日
    000
  • C语言算法问答集:探索算法的可视化

    C 语言算法问答集:探索算法的可视化 算法的可视化是通过图形表示使其更易于理解和分析的过程。在 C 语言中,我们可以使用各种库和技术来实现算法的可视化。在这篇文章中,我们将探讨一些常见的算法及其可视化的实战案例。 排序算法 排序算法是数据结构中最常见的任务之一。它们根据特定标准重新排列数据元素。我们…

    2025年12月18日
    000
  • C语言算法问答集:算法思维在现实世界中的体现

    求最大公约数:采用欧几里德算法,判断两数是否互质,若否,则以较大数对较小数取模,直至较小数为 0,此时较大数即为最大公约数。求斐波那契数列:可采用递归或迭代算法,递归算法利用斐波那契数列的递推公式,迭代算法则通过循环计算斐波那契数列的每一项。判断素数:基于试除法,从 2 开始依次判断数字是否可被从 …

    2025年12月18日
    000
  • C语言算法问答集:算法竞赛的入门与实战

    C语言算法问答集:算法竞赛的入门与实战 1. 什么是算法竞赛? алгоритм (algoritm)是解决问题的步骤或程序。算法竞赛是一种比赛,参赛者使用算法解决问题,竞争谁能在规定时间内解决最多问题。 2. 如何入门算法竞赛? 学习一门编程语言,如 C 语言。了解基础数据结构(如数组、链表)和算…

    2025年12月18日
    000
  • C语言算法:常见数据结构与算法详解

    c语言程序中常用的数据结构包括数组、链表、栈和队列。此外,还提供了搜索算法(线性搜索和二分搜索)、排序算法(冒泡排序和选择排序)、图遍历算法(广度优先搜索和深度优先搜索)等一系列算法。这些数据结构和算法的应用,可以大大优化代码性能,简化问题求解。 C语言算法:常见数据结构与算法详解 引言 数据结构是…

    2025年12月18日
    000
  • C语言算法问答集:解决常见问题

    问题 1:求最大公约数,代码:int gcd(int a, int b) {…}。问题 2:求数组总和,代码:int sum(int arr, int size) {…}。问题 3:求阶乘,代码:int factorial(int n) {…}。问题 4:反转字符…

    2025年12月18日
    000
  • C语言算法:从入门到精通的学习路线图

    c 语言算法学习路线图包括:入门:安装编译器,学习基本语法,练习基本算法。中级:掌握数组、指针、结构体,学习排序算法,探索递归和动态规划。高级:掌握贪心算法、分治算法和回溯算法,研究图论和动态规划的复杂算法。实战案例:通过案例深入理解算法,并将其应用到实际问题中。 C 语言算法:从入门到精通的学习路…

    2025年12月18日
    000
  • C语言算法问答集:破解动态规划问题

    动态规划算法通过子问题重叠和最优子结构优化问题求解效率。最长公共子序列、0-1 背包问题和扩展欧几里得算法都是常见的动态规划问题,可使用 c 语言实现。实战案例中,动态规划用于查找网格中从左上角到右下角路径上的最大和,通过创建表格存储子问题解决方案,以避免重复计算。 C语言算法问答集:破解动态规划问…

    2025年12月18日
    000
  • C语言算法问答集:在真实项目中应用算法

    数组排序:冒泡排序算法可按顺序排列整数数组,例如按学生分数排序。字符串查找:strcmp() 函数可比较字符串并查找子字符串,例如,在文本编辑器中搜索特定单词。树形结构遍历:前序遍历算法可通过递归方式遍历二叉树,按深度优先顺序打印每个节点的数据。 C 语言算法问答集:真实项目案例 引言 算法在现代编…

    2025年12月18日
    000
  • C语言算法问答集:算法教育的最佳实践

    问题和回答:冒泡排序算法:采用两个循环,比较相邻元素,将较大的元素后移。二分查找算法:在排序数组中寻找目标元素,通过二分法缩小搜索范围。动态规划算法:用于解决斐波那契数列,使用循环计算并存储中间值。贪心算法:解决背包问题,通过排序物品单位价值,尽可能选择高价值物品。递归算法:求解归并排序,将数组分为…

    2025年12月18日
    000
  • C语言算法:深度学习与算法应用

    摘要:本教程介绍了 c 语言中的深度学习算法及其应用。基本算法包括:线性回归:训练模型并最小化误差。逻辑回归:计算逻辑函数和训练模型。决策树:创建节点并训练树模型。实战案例:图像分类:读入图像数据。训练卷积神经网络。根据预测模型进行图像分类。 C 语言算法:深度学习与算法应用 引言 深度学习是机器学…

    2025年12月18日
    000
  • C语言算法问答集:常见陷阱和误区

    c 语言算法常见陷阱和误区:越界访问数组:忘记边界检查,导致越界访问。使用未初始化的变量:使用未初始化的变量,导致意外结果。指针悬空:使用指向已释放内存的指针,导致内存错误。整数溢出:整数运算结果超出表示范围,导致溢出。 C 语言算法问答集:常见陷阱和误区 引言 算法是编程中的基石,但即使是最经验丰…

    2025年12月18日
    000

发表回复

登录后才能评论
关注微信