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

2022-09-19 10:54:00 浏览数 (1)

关注我们,一起学习~

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} rleft(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为可学习参数,

Qleft(mathbf{s}_{t}, a_{t}right)=deltaleft(mathbf{s}_{t} mathbf{h}_{t}^{T} bright)=deltaleft(Gleft(x_{1: t}right) mathbf{h}_{t}^{T} bright)

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

a_t^

,

a_t^-

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

N_t

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

begin{array}{c} L_{q}=underbrace{left(rleft(mathbf{s}_{t}, a_{t}^{ }right) gamma max _{a^{prime}} Qleft(mathbf{s}_{t 1}, a^{prime}right)-Qleft(mathbf{s}_{t}, a_{t}^{ }right)right)^{2}}_{L_{p}: operatorname{positive~TD~error~}} \ underbrace{sum_{a_{t}^{-} in N_{t}}left(rleft(mathbf{s}_{t}, a_{t}^{-}right) gamma max _{a^{prime}} Qleft(mathbf{s}_{t}, a^{prime}right)-Qleft(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}, aright)=frac{sum_{a^{prime} in a_{t}^{ } cap N_{t}} Qleft(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 Aleft(mathrm{~s}_{t}, a_{t}^{ }right)

3. 结果

0 人点赞