前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WSDM'22「谷歌」SA2C:用于推荐系统的监督优势 Actor-Critic

WSDM'22「谷歌」SA2C:用于推荐系统的监督优势 Actor-Critic

作者头像
秋枫学习笔记
发布2022-09-19 10:54:00
5330
发布2022-09-19 10:54:00
举报
文章被收录于专栏:秋枫学习笔记

关注我们,一起学习~

title:Supervised Advantage Actor-Critic for Recommender Systems link:https://arxiv.53yu.com/pdf/2111.03474.pdf from:WSDM 2022

预备知识:强化学习(DQN,AC)

1. 导读

由于异策略训练,巨大的动作空间和缺乏充分的奖励信号,强化学习(RL)很难直接用于推荐系统(RS)。本文提出一种负采样策略来训练RL,并将其与监督序列学习结合,称为SNQN。并且,利用Actor-Critic的优势扩展上述方法提出SA2C,通过计算优势函数(advantage),将其作为监督序列学习部分的权重。

2. 方法

I

表示商品集合,用户-商品交互序列可以表示为

x_{1:t}=\{x_1,...x_t\}

,其中

x_i

表示在时间戳i时的交互商品,模型目标为利用序列

x_{1:t}

估计

x_{t+1}

对应的商品。

2.1 强化学习设置

从RL角度,下一个交互商品的预测可以建模为马尔科夫决策过程MDP。这里对MDP对应的几个元素进行设置。

  • S:连续状态空间,表示用户状态,时间戳t时刻的用户状态可以表示为
s_{t}=G(x_{1:t}) \in S (t>0)

  • A:离散动作空间,包括候选商品,智能体执行动作a选择某个商品,在离线数据中可以得到正动作,即离线数据中是已知
x_{t+1}

的。

  • P:表示状态转移概率,在从离线数据中学习时,我们可以假设只有正行为才能影响用户状态。换句话说,采取负行为(即负样本)(未观察到的)不会更新用户状态。
  • R:奖励(回报)函数,r(s, a)表示在状态s执行动作a时的即时奖励
\rho^0

:表示初始状态分布,

s^0 \sim \rho^0
  • γ:表示累积回报计算时的折扣系数

RL的目标就是找到使得累积回报的期望最大的策略π,公式如下,其中θ表示策略的参数。

\max _{\pi_{\theta}} \mathbb{E}_{\tau \sim \pi_{\theta}}[R(\tau)], \text { where } R(\tau)=\sum_{t=0}^{|\tau|} \gamma^{t} r\left(\mathrm{~s}_{t}, a_{t}\right)

2.2 SNQN

在在线推荐系统中,无法试错,因为试错的过程会给用户带来不好的体验,因此本文采用异策略(off policy)的训练,并利用SNQN进行采样。对于经典的序列推荐模型,给定序列数据

x_{1:t}

和推荐模型G(),交叉熵损失函数定义如下,其中Y是真实标签。

L_{s}=-\sum_{i=1}^{n} Y_{i} \log \left(p_{i}\right) \text {, where } p_{i}=\frac{e^{y_{i}}}{\sum_{i^{\prime}=1}^{n} e^{y_{i^{\prime}}}}

当G()将用户行为序列编码后得到

s_t

,可以将其作为RL模型中的状态。共享G()部分来进行编码得到状态s,定义另一个输出层来得到Q值,公式如下,其中h和b为可学习参数,

Q\left(\mathbf{s}_{t}, a_{t}\right)=\delta\left(\mathbf{s}_{t} \mathbf{h}_{t}^{T}+b\right)=\delta\left(G\left(x_{1: t}\right) \mathbf{h}_{t}^{T}+b\right)

以上Q值的计算是基于行为序列的,即我们能观察到的正样本,这里没有包含负样本,本文提出负奖励采样策略,SNQN的Q-learning损失函数不仅包含正动作样本,也包含负动作样本,公式如下,这里采用的是一步的时间差分(TD)方法。其中,

a_t^+

,

a_t^-

分别表示正动作和负动作。

N_t

表示未观察的负动作的集合,

\begin{array}{c} L_{q}=\underbrace{\left(r\left(\mathbf{s}_{t}, a_{t}^{+}\right)+\gamma \max _{a^{\prime}} Q\left(\mathbf{s}_{t+1}, a^{\prime}\right)-Q\left(\mathbf{s}_{t}, a_{t}^{+}\right)\right)^{2}}_{L_{p}: \operatorname{positive~TD~error~}} \\ +\underbrace{\sum_{a_{t}^{-} \in N_{t}}\left(r\left(\mathbf{s}_{t}, a_{t}^{-}\right)+\gamma \max _{a^{\prime}} Q\left(\mathbf{s}_{t}, a^{\prime}\right)-Q\left(\mathbf{s}_{t}, a_{t}^{-}\right)\right)^{2}}_{L_{n}: \text { negative TD error }} \end{array}

对于负行为,他的奖励是固定的,即

r(s_t,a_t^-)=r_n

,正行为可根据不同的需求来定义。

将交叉熵损失函数和Q-learning损失函数一起训练,总损失如下,

L_{snqn}=L_s+L_q

伪代码如下,这里总体训练是采用double DQN的方式,即复制两个备份的G'和Q',采用这种方式更稳定,这也可以起到异策略的作用。

2.2 SA2C

Actor-Critic (AC) 方法的关键思想是用Critic来评估Actor所采取的动作的好坏,并为具有高累积奖励的行动分配更高的权重。在 SNQN 方法中,监督学习部分可以被视Actor来模仿用户的行为,即学习用户行为产生正确的动作。Critic就是前面计算Q值的网络。Q值对时间戳敏感,因为折扣系数的存在,序列早期的动作具有更大的影响,所以长序列的早期时间戳中的不良动作也可能具有高 Q 值。

所以这里采用的是优势函数,即Q值的相对优势有多大,即与平均Q值相比,当前执行动作可以获得Q值的相对提升。这个优势可以帮助我们减轻从序列时间戳引入的偏差。然而,沿整个动作空间计算平均 Q 值会引入额外的计算成本,尤其是当候选商品集很大时。SNQN中已经引入了负采样方法,这里一个简洁的解决方案是计算采样动作(包括正例和负例)之间的平均值作为近似值。基于这个动机,平均 Q 值可以定义为:

\bar{Q}\left(\mathrm{~s}_{t}, a\right)=\frac{\sum_{a^{\prime} \in a_{t}^{+} \cap N_{t}} Q\left(\mathrm{~s}_{t}, a^{\prime}\right)}{\left|N_{t}\right|+1}

观察到的(正的)行动的优势被表述为:

A(s_t,a_t)=Q(s_t,a_t^+)-\bar{Q}(s_t,a)

我利用这个优势来重新加权Actor(即监督学习部分Ls)。如果一个正行为比平均值具有更高的优势,就会增加它的权重,反之亦然。为了提高稳定性,在计算平均Q和优势函数时,停止梯度更新并固定Q值。SA2C 的训练损失公式为:

L_{s a 2 c}=L_{a}+L_{q} \text {, where } L_{a}=L_{s} \cdot A\left(\mathrm{~s}_{t}, a_{t}^{+}\right)

3. 结果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.1 强化学习设置
  • 2.2 SNQN
  • 2.2 SA2C
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档