强化学习与多任务推荐

人工智能
本文将分享强化学习和多任务推荐。近年来,多任务学习(MTL)在推荐系统(RS)应用中取得了巨大的成功。然而,目前大部分基于 MTL 的推荐模型往往忽略了用户与推荐系统互动的会话(Session)模式,因为它们主要是依据基于单个 Item 的数据集而构建。

一、短视频推荐两阶段约束强化学习算法

图片

首先介绍的一项快手自研的 WWW 2023 Research Track 工作,主要解决短视频推荐场景下的带约束多目标优化问题。

在短视频推荐单列场景中,用户通过上下滑形式和系统进行交互,观看多个视频。用户对每个视频反馈 2 种信号,播放时长以及互动(关注、点赞、评论、收藏、分享等)。由于播放时长稠密与留存和 DAU 相关度高,短视频推荐系统主优化目标是提升总观看视频时长,这一问题可以由强化学习方法有效解决;另一方面,由于互动指标能一定程度地反应用户满意度,和留存有相关性,我们希望算法也能够满足互动指标约束,

因此本文将短视频推荐建模成一个约束强化学习问题(CMDP),目标是在满足互动指标约束情况下最大化视频播放时长。然而现有约束强化学习算法由于以下原因并不适用:第一单一 Critic 模型联合预估时长将会主导互动;第二短视频推荐系统存在多个约束目标,直接优化约束强化学习对偶问题需要对拉格朗日超参进行搜索,这会带来极大的搜索成本。

我们提出 Two-Stage Constrained Actor-Critic(TSCAC)算法:

  • 第一阶段:对于每个互动辅助信号,学习不同 policy 优化对应的信号;
  • 第二阶段,学习 policy 优化播放时长目标,同时满足和第一阶段学习到的 policy 的距离约束。我们在理论上得到了第二阶段问题的最优解并提出新的优化 loss。通过在  KuaiRand 数据集的离线评估和快手 App 在线 A/B 测试,我们证明 TSCAC 显著优于 Pareto 优化以及 State of the Art 约束强化学习算法。TSCAC 算法已经在快手 App 全量。

1、问题建模

图片

我们把短视频推荐系统看作 agent,用户视为环境,每当用户打开 App,开启一个 session,一个 session 包括多次请求。每次请求是一个 step,推荐系统(agent)根据当前用户的 state,返回一个 action(视频)给用户。用户看到视频后反馈多个 reward 信号(观看时长,点赞、关注、评论、转发等互动信号)。用户离开 App 这个 session 结束。推荐系统目标为最大化 session 累计观看时长,同时满足互动约束。推荐系统的优化目标为学习一个推荐策略(policy), 求解以下 program。

图片


2、TWO-STAGE CONSTRAINED ACTOR-CRITIC 算法

为了解决上述挑战,我们提出两阶段约束强化学习算法(Two-stage constrained actor-critic, TSCAC),我们针对不同的反馈信号,采取不同的 Critic 模型进行预估。策略优化方面,第一阶段分别学习策略优化相应的辅助目标,第二阶段我们最大化主目标时长,并且增加第一阶段预训练得到策略的距离约束。

  • Stage One: Policy Learning for Auxiliary Response

我们对于每个目标分别用不同的策略进行学习,用 Temporal Difference(TD) loss 的形式来训练 Critic:

图片

我们采用 Actor-Critic 算法常用的 advantage-based loss 来训练 Actor:

图片


  • Stage Two: Softly Constrained Optimization of the Main Response

第二阶段我们需要最大化主目标时长收益,但是也需要兼顾辅助目标。基于第一阶段学习到的辅助策略隐含了辅助目标信息的假设,我们学习策略最大化主目标,同时约束主策略和其他辅助策略不会距离太远,即:

图片

然而这个问题需要加很多 KL 约束不好直接优化策略,我们可以证明(5)对偶问题存在以下最优解形式:

图片

因此我们学习策略最小化和最优解的 KL 距离:

图片

这个 loss 的动机在于辅助策略 \pi_{\theta_i}提供了 action 的重要性,如果辅助策略觉得这个 action 很差,那么这个 action 的样本重要性会很低。\lambda_i 代表了约束强弱,值越大提供约束越强,极端情况为 0 时意味着不加任何约束,公式(7)和直接优化主目标等价。实际应用时候我们设置所有辅助目标都采用的超参值,有效地缩减搜索空间。

3、离线实验

我们将 TSCAC 算法在 KuaiRand 公开数据集进行验证,对比了 BC(Behavior Cloning)Wide&Deep、DeepFM 监督学习算法,State of the Art 约束强化学习方法 RCPO,以及 Pareto 优化推荐算法。

图片

表 2 结果证明,TSCAC 方法不仅在主目标 WatchTime 显著优于其他算法,并且在Click,Like,Comment 等指标也取得了最好的效果。注意到 Pareto 优化方法没有主次之分,学到降低 Hate 的一个 pareto 最优点,但是主目标相比 BC 算法负向。

4、在线实验

我们在快手短视频推荐系统进行在线 A/B 实验,基线为 Learning to Rank 算法,实验组为 TSCAC、RCPO 以及只学习互动的 Actor-Critic 算法(Interaction-AC)。

图片

表 3 展示了算法收敛后,不同指标的百分比提升对比。可以发现 TSCAC 算法相比 RCPO 不仅主目标更好(0.1% 的 watchtime 就视为统计显著),并且辅助目标也是全面正向,对比 Interaction-AC 算法的互动指标也非常接近。下图展示了 TSCAC 算法训练到收敛每天的效果变化。

图片

二、基于强化学习的多任务推荐框架

下面介绍第二个工作,同样也是强化学习在多任务优化上的应用。这篇工作是快手和香港城市大学的合作项目,是一个典型的多任务优化问题。

图片


1、摘要

近年来,多任务学习(MTL)在推荐系统(RS)应用中取得了巨大的成功。然而,目前大部分基于 MTL 的推荐模型往往忽略了用户与推荐系统互动的会话(session)模式,因为它们主要是依据基于单个 item 的数据集而构建。平衡多个输出目标一直是该领域的一个挑战。为了解决这个问题,我们提出了一个基于强化学习(RL)的 MTL 框架,即 RMTL 。该框架使用动态权重来平衡不同推荐任务的损失函数。具体来说,RMTL 结构可以通过以下方式解决上述两个问题:

  • 从 session 尺度构建 MTL 环境。
  • 训练多任务 actor-critic 网络结构,并能与现有的基于 MTL 的推荐模型兼容。
  • 使用 critic 网络生成的权重来优化和微调 MTL 损失函数。

在基于 KuaiRand 等多个公开数据集的实验证明了 RMTL 的有效性,其 AUC 显著高于 SOTA 基于 MTL 的推荐模型。我们还验证 RMTL 在各种 MTL 模型中的表现,证明其具有良好的兼容性和可转移性。

2、问题建模

我们构建基于 session 的 MDP 用于 RL 训练,以此来提高 MTL 模型的性能。经典的 MTL 方法通常面临将序列性的用户行为引入建模的困难,因为用户行为的时间戳高度相关,而建立在 MDP 序列之上的强化学习可以解决这个问题。对于每个会话 session,状态转移记录是由原始数据集中存储的时间戳分隔的。这种构造可以生成按顺序组织的 session MDP 序列,具有整体损失权重更新的优点。马尔科夫过程由状态(state),动作(action),奖励函数(reward function),转移函数(transition function)组成。状态空间 S 是状态的集合,其中包含 user-item 组合特征。行动空间 A 是连续动作的集合,其中每个元素在 A 中表示 CTR 和 CTCVR 的预测值。为了与 BCE 损失的定义保持一致,我们使用负 BCE 值定义每个步骤的奖励函数。

3、算法

我们提出 RMTL 框架:使用状态表示网络将数据特征转换为状态信息。Actor 网络可以是任何基本的 MTL 模型,输出特定的动作向量。Critic 网络用来提高 Actor 网络的性能,并为特定任务生成自适应调整的损失权重。

图片

其中状态表示网络是由嵌入层和多层感知机组成的,以提取 user-item 特征。分类特征首先被转换为二进制向量,然后输入到嵌入层中。此外,数值特征通过线性变换转换为相同的维度。以上过程转化得到的特征将被合并并进一步作为另一个 MLP 网络的输入。

在强化学习的框架下,Actor 网络可以被称为策略代理。以 ESMM 为例:共享底层被移除,我们使用两个平行的神经网络,由 𝜃1 和 𝜃2 进行参数化,分别表示两个任务的 Tower 层。每个 Tower 层的输出是确定性的动作值,代表特定任务的预测值。在 MDP 序列的训练过程完成后,本文基于加权 BCE loss 计算总体的损失函数,以解决收敛问题。

图片

本文提出了一种 Multi-critic 结构,其中有两个并行的 MLP 网络共享一个底层网络。Critic 网络的第一部分是一个共享的底层网络,它同时转换 user-item 特征和 Action 信息。然后将用户 item 特征和 Action 信息组合为两个可微的行动价值网络的输入,这些网络由𝜙𝑘参数化并输出估计的 Q 值,并且本文计算平均 Temporal Difference(TD)误差 𝛿以更新 critic 网络。目标损失函数的权重沿着 Q 值方向反向调整,以此来改善 actor 网络的优化过程。

图片

整体算法过程如下:给定 user-item 组合特征,状态表示网络生成基于输入特征的状态。然后,我们从 Actor 网络中提取状态信息获取动作。动作值和 user-item 组合特征经过 MLP 层和嵌入层进一步处理,作为 Critic 网络的输入,计算每个任务 𝑘的 Critic 网络 𝑄 值。最后,可以根据每个任务的 BCE 损失和适应权重估计多任务的整体损失函数 L。

4、实验

本文主要在两个基准数据集,RetailRocket 和 Kuairand 上进行实验。评估指标是 AUC 分数,logloss 和 s-logloss(定义为所有会话的平均 Logloss)。由于本文的 RMTL 结构修改了 MTL 目标损失函数,因此选择了具有其默认损失函数和一个基于 RL 的模型作为基线。本文总共进行了3 个实验:整体效果、可转移性研究和消融实验,以说明该方法的有效性。

在整体性能和比较方面,本文比较了五个基准多任务学习模型和 RMTL 模型在两个不同数据集上 CTR/CTCVR 预测任务的性能。在大多数情况下,PLE 模型在所有多任务学习基准模型中表现最好,这证明 PLE 基准模型可以提高任务之间信息共享的效率,以实现更好的预测性能。本文提出的 RMTL 模型的每个版本都在两个数据集上表现出优于相应的非 RL 版本基准模型的结果。特别是在 RetialRocket 数据集上,RMTL 模型的 AUC 增益约为 0.003-0.005,比相应的基准模型高。通过利用强化学习框架的序列特性,RMTL 能够处理基于会话的推荐数据,并通过自适应调整损失函数权重在 CTR/CTCVR 预测任务中取得显著改进。

图片

RMTL 方法在 RetialRocket 数据集上的转移性研究中,本文试图弄清楚从不同的策略学习到的 critic 网络是否可以应用于同一 MTL 基准模型并提高预测性能。例如,“mmoe-ESMM”表示应用从 MMoE 结构训练的 critic 网络的 ESMM 模型。可以看出:

  • 三个 MTL 模型的预训练 critic 网络可以显著提高每个基准模型的 AUC。
  • 三个 MTL 模型的预训练 critic 网络可以显著降低每个基准模型的 Logloss。

总的来说,预训练的 ciritc 网络能够提高大多数 MTL 模型的预测性能。

图片

实验的最后一部分是对于 RetailRocket 数据集上 PLE 模型的剖析研究,本文改变了原有设定中的一些部分,并定义了以下三个变体:

  • CW: 表示对整体损失函数应用恒定权重,并且不对 actor 网络进行梯度策略更新,从而消除了 critic 网络的贡献。
  • WL: 表示损失权重受到 session 行为标签的控制。
  • NLC: 不对损失权重执行线性变换,而是直接将负 Q 值分配给损失权重。

可以观察到:

  • CW 在两个预测任务的 AUC 和 logloss 指标上表现最差。
  • WL 和 NLC 在本研究中的表现几乎相同,优于 CW 变体,AUC 提高了 0.002-0.003。

使用本文提出的总损失设置的 RMTL-PLE 在两个任务上均取得了最佳表现,说明了该线性组合权重设计的有效性。

图片

图片

最后总结一下 RMTL 和 MTL 的一些经验。

推荐系统在长期优化的时候,尤其是在长期优化复杂指标的时候,是非常典型的强化学习和多任务优化场景。如果是主副目标联合优化,可以通过 soft-regularization 去约束目标学习。多目标联合优化时,考虑到不同目标的动态变化,也能够提升它的优化效果。除此之外也有一些挑战,比如在强化学习不同模块结合时,会对系统的稳定性带来很多挑战。这时对数据质量的把控以及 label 的准确性的把控,和模型预估的准确率的监督是非常重要的途径。另外,推荐系统和用户因为是直接交互,不同目标在反映用户体验的时候,仅仅是片面的反应,所以得到的推荐策略也会非常的不同。在不断变化的用户状态下,还要联合优化,提升用户的全面体验,这在未来肯定是非常重要的课题。

三、问答环节

Q1:快手的时长信号和互动信号一般用的是什么 loss?是分类还是回归?互动目标和观看目标离线评估一般看哪些指标?

A1:时长指标是最典型的回归任务。但是我们同样也注意到,时长的预估是和视频本身的长度强相关的。比如短视频和长视频的分布就会非常不一样。所以在预估时要先对其做分类处理,然后再做 regression。

最近在 KDD 也有一篇文章,用树方法去拆分时长信号预估。可以把时长分成长视频和短视频,各有各自的预估范围,然后可以用树的方法进行更细致的划分。长视频可以分成中视频和长视频,短视频也可以分成超短视频和短视频。整体效果上来看,目前还是在分类的框架下,然后再做 regression,效果会稍微好一点。其他的互动指标预估,和现有的预估方法类似。

离线评估一般会同时关注 AUC 和 GAUC。时长我们主要看的是 online 的指标。离线和线上的评估也存在差异。如果离线的评估没有 significant 的 improvement 的话,那线上一般也不一定能看到对应的提升效果。

Q2:是否遇到过数据特别稀疏,或者要调的某个目标本身特别稀疏的情况?如果基于线上数据调参,那反馈周期可能较长,这样调参效率会不会比较低?这种情况下有什么解决办法?

A2:我们最近也有一些工作去讨论这种极其稀疏的情况,甚至是几天才会有反馈信号。其中最典型的就是用户的留存。因为用户可能离开之后,过几天才会回来。拿到信号的时候,模型已经更新过好几天了。解决这类问题有一些折中的方案,可以去分析一下实时的指标,或者实时的反馈信号有哪些和这种极其稀疏的信号有相关性。然后可以通过优化这些实时的信号去间接地优化长期信号。

以留存为例。我们发现它和用户的实时观看时长是强正相关的。一般用户观看时长增长,就代表了用户对系统的粘度提高。这样基本上能够保证用户留存的下界。我们去优化留存的时候,一般会使用一些其他相关的指标去优化留存。

Q3:快手的多目标融合用强化学习这种方式的时候,一般会使用哪些优化特征?是不是会存在一些很精细的特征,比如用户的 ID?会不会导致模型收敛非常困难?

A3:User ID 其实还好,我们的 User 特征,除了有 ID 特征以外,还会有一些统计特征。除此之外在推荐链路上,RL 在我们的应用模块是处于比较靠后的阶段,比如精排和重排阶段。在前面的一些阶段也会给出一些预估和模型的排序信号。这些都有一些用户的信号在里面。所以目前推荐的强化学习,在推荐的场景下拿到的User 侧的信号还是很多的,基本上不会出现只用 User ID 的这种情况。

我们发现如果不用 User ID 的话,对个性化影响比较大。如果只用一些用户的统计特征,有的时候不如 User ID 的提升效果那么大。如果让 User ID 的影响占比太大的话,会有波动性的问题。

责任编辑:姜华 来源: DataFunTalk
相关推荐

2024-04-03 07:56:50

推荐系统多任务推荐

2023-03-09 08:00:00

强化学习机器学习围棋

2020-08-10 06:36:21

强化学习代码深度学习

2022-09-28 15:34:06

机器学习语音识别Pytorch

2023-11-29 07:25:58

2022-11-02 14:02:02

强化学习训练

2020-11-12 19:31:41

强化学习人工智能机器学习

2021-09-17 15:54:41

深度学习机器学习人工智能

2020-06-05 08:09:01

Python强化学习框架

2017-07-25 16:04:31

概念应用强化学习

2023-06-25 11:30:47

可视化

2023-07-20 15:18:42

2020-01-23 15:33:07

AI 数据人工智能

2023-04-23 10:12:14

算法强化学习

2023-08-28 06:52:29

2023-04-06 16:29:18

模型AI

2021-04-13 16:18:30

人工智能强化学习人脸识别

2020-11-06 17:04:17

强化学习机器学习人工智能

2017-08-22 15:56:49

神经网络强化学习DQN

2022-09-04 14:38:00

世界模型建模IRIS
点赞
收藏

51CTO技术栈公众号