To Top
首页 > 深度学习 > 正文

GAN-CDQN

标签:GAN-CDQN, 强化学习, 推荐, gan, cascade dqn, 级联dqn


目录

参考ICML 2019 | 强化学习用于推荐系统,蚂蚁金服提出生成对抗用户模型

Generative Adversarial User Model for Reinforcement Learning Based Recommendation System

代码:https://github.com/xinshi-chen/GenerativeAdversarialUserModel

ppt:https://icml.cc/media/Slides/icml/2019/201(11-14-00)-11-14-25-4831-generative_adve.pdf

简介

本文提出利用生成对抗网络同时学习用户行为模型transition以及奖励函数reward。将该用户模型作为强化学习的模拟环境,研究者开发了全新的Cascading-DQN算法,从而得到了可以高效处理大量候选物品的组合推荐策略。

本文用真实数据进行了实验,发现和其它相似的模型相比,这一生成对抗用户模型可以更好地解释用户行为,而基于该模型的RL策略可以给用户带来更好的长期收益,并给系统提供更高的点击率

RL在推荐场景中有以下问题:

  • 首先,驱动用户行为的兴趣点(奖励函数)一般是未知的,但它对于 RL 算法的使用来说至关重要。在用于推荐系统的现有RL算法中,奖励函数一般是手动设计的(例如用 ±1 表示点击或不点击),这可能无法反映出用户对不同项目的偏好如何(如Deep Reinforcement Learning for Page-wise Recommendations)。
  • 其次,无模型RL一般都需要和环境(在线用户)进行大量的交互才能学到良好的策略。但这在推荐系统设置中是不切实际的。如果推荐看起来比较随机或者推荐结果不符合在线用户兴趣,他会很快放弃!!这一服务。

为了解决无模型方法样本复杂度大的问题,基于模型的RL方法更为可取。近期有一些研究,在robotics applications中,在相关但不相同环境设置中训练机器人策略,结果表明基于模型的RL采样效率更高。如Neural Network Dynamics for Model-Based Deep Reinforcement Learning with Model-Free Fine-Tuning,还有Gaussian Processes for Data-Efficient Learning in Robotics and Control,还有 Learning to adapt: Meta-learning for model-based control

基于模型的方法的优势在于可以池化大量的off-policy数据,而且可以用这些数据学习良好的环境动态模型,而无模型方法只能用昂贵的on-policy数据学习。但之前基于模型的方法一般都是根据物理或高斯过程设计的,而不是根据用户行为的复杂序列定制的。

本文的框架用统一的minimax框架学习用户行为模型和相关的奖励函数,然后再用这个模型学习RL策略

主要贡献如下:

  • 开发了生成对抗学习(GAN)方法来对用户行为动态性(dynamics)建模,并recover奖励函数。可以通过联合的minimax优化算法同时评估这两个组件。该方法的优势在于:
    • 可以得到更predictive(可预测的?)的用户模型,而且可以用与用户模型一致的方法学习奖励函数
    • 相较于手动设计的简单奖励函数,从用户行为中学习到的奖励函数有利于后面的强化学习
    • 学习到的用户模型使研究者能够为新用户执行基于模型的RL和在线适应从而实现更好的结果。
  • 用这一模型作为模拟环境,研究者还开发了级联DQN(cascade dqn)算法来获得组合推荐策略。动作-值函数级联设计允许其在大量候选物品中找到要展示的物品的最佳子集,其时间复杂度候选物品的数量线性关系,大大减少了计算难度。

用真实数据进行实验得到的结果表明,从保留似然性和点击预测的角度来说,这种生成对抗模型可以更好地拟合用户行为。根据学习到的用户模型和奖励,研究者发现评估推荐策略可以给用户带来更好的长期累积奖励。此外,在模型不匹配的情况下,基于模型的策略也能够很快地适应新动态(和无模型方法相比,和用户交互的次数要少得多)。



图中绿线是推荐的信息流,黄线是用户的信息流。

Setting和RL Formulation

setting:给用户展示了\(k\)个item,然后他点了1个或者0个,然后展示后\(k\)个item。

简单来讲,RL框架就是,推荐系统会在用户状态\(\mathcal{s}\)下,采用策略\(\pi(\boldsymbol{s}, \mathcal{I})\)来从集合\(\mathcal{I}\)中进行选择,使得如下的用户长期累积reward最大:

\[ \pi^{*}=\underset{\pi\left(\boldsymbol{s}^{t}, \mathcal{I}^{t}\right)}{\arg \max } \mathbb{E}\left[\sum_{t=0}^{\infty} \gamma^{t} r\left(\boldsymbol{s}^{t}, a^{t}\right)\right] \]

其中,\(s^{0} \sim p^{0}\)\(\mathcal{A}^{t} \sim \pi\left(s^{t}, \mathcal{I}^{t}\right)\)\(\boldsymbol{s}^{t+1} \sim P\left(\cdot | \boldsymbol{s}^{t}, \mathcal{A}^{t}\right)\)\(a^{t} \in \mathcal{A}^{t}\)

  • 环境:在推荐的每一页的\(k\)个item中可以点击其中一个的用户
  • 状态\(\boldsymbol{s}^{t} \in \mathcal{S}\):用户历史点击的一个有序序列
  • 动作\(\mathcal{A}^{t} \in\left(\begin{array}{c}{\mathcal{I}^{t}} \\ {k}\end{array}\right)\):推荐系统从\(\mathcal{I}^{t}\)个候选中选择\(k\)个候选的子集。其中,\(\left(\begin{array}{c}{\mathcal{I}^{t}} \\ {k}\end{array}\right)\)表示\(\mathcal{I}^{t}\)中的所有的\(k\)元素子集。而\(\mathcal{I}^{t} \subset \mathcal{I}\)是所有候选\(\mathcal{I}\)在时间步\(t\)的候选子集。
  • 状态转移\(P\left(\cdot | s^{t}, \mathcal{A}^{t}\right) : \mathcal{S} \times\left(\begin{array}{l}{\mathcal{I}} \\ {k}\end{array}\right) \mapsto \mathcal{P}(\mathcal{S})\):给定状态\(\mathcal{s}^{t}\),以及展示的集合\(\mathcal{A}^{t}\)的情况下,转移到状态\(\boldsymbol{s}^{t+1}\)的转移概率。等价于下文提到的在用户行为上的分布\(\phi\left(s^{t}, \mathcal{A}^{t}\right)\)
  • 奖励函数\(r\left(\boldsymbol{s}^{t}, \mathcal{A}^{t}, a^{t}\right) : \mathcal{S} \times\left(\begin{array}{l}{\mathcal{I}} \\ {k}\end{array}\right) \times \mathcal{I} \mapsto \mathbb{R}\):用户在状态\(\boldsymbol{s}^{t}\)下,采用动作\(a^{t} \in \mathcal{A}^{t}\)得到的回报。在这里假设推荐系统得到的回报和用户得到的回报一样,所以长期回报也是一样。
  • 策略\(\mathcal{A}^{t} \sim \pi\left(s^{t}, \mathcal{I}^{t}\right) : \mathcal{S} \times 2^{\mathcal{I}} \mapsto \mathcal{P}\left(\left(\begin{array}{c}{\mathcal{I}_{k}} \\ {k}\end{array}\right)\right)\):在用户状态\(\mathcal{s}^{t}\)下,从集合\(\mathcal{I}^{t}\)中选择子集\(\mathcal{A}^{t}\)进行展示的概率。

可见,

  • 环境状态状态转移用户有关,
  • 行为策略推荐系统有关。
  • 回报推荐系统用户均有关。

使用\(r\left(\boldsymbol{s}^{t}, \mathcal{A}^{t}, a^{t}\right)\)来强调回报对推荐的action的依赖,也就是说,用户只能从展示的结果集中进行选择。其实,\(r\left(\boldsymbol{s}^{t}, \mathcal{A}^{t}, a^{t}\right)=r\left(\boldsymbol{s}^{t}, a^{t}\right) \cdot \mathbf{1}\left(a^{t} \in \mathcal{A}^{t}\right)\)。所以下文在讲用户模型的时候,就使用\(r\left(\boldsymbol{s}^{t}, a^{t}\right)=r\left(\boldsymbol{s}^{t}, \mathcal{A}^{t}, a^{t}\right)\)来表示了,假设\(a^{t} \in \mathcal{A}^{t}\)是true。

reward函数和transition都是未知的,可以从数据中学习。只要这两个学好了,那么就可以通过使用例如Q-learrning等算法,不断地对模型进行query,来估计上文提到的最优的策略\( \pi^{*}=\underset{\pi\left(\boldsymbol{s}^{t}, \mathcal{I}^{t}\right)}{\arg \max } \mathbb{E}\left[\sum_{t=0}^{\infty} \gamma^{t} r\left(\boldsymbol{s}^{t}, a^{t}\right)\right]\)

Generative Adversarial User Model

找reward的过程,其实是一个逆向强化学习的过程,可以参考漫谈逆向强化学习 - A Brief Review to Inverse Reinforcement Learning

什么是逆向强化学习呢?当完成复杂的任务时,强化学习的回报函数很难指定,我们希望有一种方法找到一种高效可靠的回报函数,这种方法就是逆向强化学习。我们假设专家在完成某项任务时,其决策往往是最优的或接近最优的,当所有的策略产生的累积汇报函数期望都不比专家策略产生的累积回报期望大时,强化学习所对应的回报函数就是根据示例学到的回报函数。即逆向强化学习就是从专家示例中学习回报函数。当需要基于最优序列样本学习策略时,我们可以结合逆向强化学习和强化学习共同提高回报函数的精确度和策略的效果。

而paper的话,可以看吴恩达的Algorithms for Inverse Reinforcement Learning

受imitation learning的启发,通过expert demonstration来学习序列决策策略(sequential decision-making policies),参考Abbeel和吴恩达的Apprenticeship learning via inverse reinforcement learning【其中的”Apprenticeship”的意思就是学徒】,还有Model-free imitation learning with policy optimization,还有Generative adversarial imitation learning,还有Behavioral Cloning from Observation。因此,本文提出了一个unified mini-max optimization来基于sample trajectories(轨迹)来同时学习用户行为模型和回报函数。

User Behavior As Reward Maximization

基于如下两个现实(realistic)的假设来对用户行为建模:

  • 用户不是消极的(passive)。当用户看到展现的\(k\)个item时,会做出令他自己的回报最大的决定。回报\(r\)意味着这个用户对这个item有多感兴趣或者多满意。而如果他都不感兴趣,可以选择都不点。
  • reward不仅和当前这个被选择的item有关,也和用户的历史有关。例如,一个用户听了a的某一首歌,可能他会对a的其他歌也感兴趣;而如果他听了很多a的歌,可能他也会感到厌倦了。这些都是和personal experience有关的。

把点击的item(视为用户的action \(a^{t}\))还有用户的历史(视为状态\(\mathcal{s}^{t}\))都作为reward函数的输入:\(r\left(s^{t}, a^{t}\right)\)。而没有点击的item会被视为special item或者action。

假设在session \(t\),展示给用户\(k\)个item \(\mathcal{A}^{t}=\left\{a_{1}, \cdots, a_{k}\right\}\),而他们对应的特征是\(\left\{\boldsymbol{f}_{1}^{t}, \cdots, \boldsymbol{f}_{k}^{t}\right\}\)。然后他采用可以使自己的期望reward最大的策略\(\phi^{*}\)来做出action \(a^{t} \in \mathcal{A}^{t}\)。这个策略可以看成是在一个候选action集合\(\mathcal{A}^{t}\)上的概率分布:

\[ \phi^{*}\left(\boldsymbol{s}^{t}, \mathcal{A}^{t}\right)=\arg \max _{\phi \in \Delta^{k-1}} \mathbb{E}_{\phi}\left[r\left(\boldsymbol{s}^{t}, a^{t}\right)\right]-R(\phi) / \eta \]

其中,

  • \(\Delta^{k-1}\)是probability simplex,也就是概率单纯形,参考https://juejin.im/entry/58e09c2cda2f60005fcd5573,简单理解好像。。就是\(k\)个元素,和为1,所以可以看成是一个概率分布。
  • \(R(\phi)\)是一个凸的正则函数。
  • \(\eta\)能控制正则化的强度

引理1:假设正则项是\(R(\phi)=\sum_{i=1}^{k} \phi_{i} \log \phi_{i}\),也就是negative Shannon entropy,而且\(\phi \in \Delta^{k-1}\)是任意一种mapping。然后这个最优策略有如下逼近形式:

\[ \phi^{*}\left(\boldsymbol{s}^{t}, \mathcal{A}^{t}\right)_{i}=\exp \left(\eta r\left(\boldsymbol{s}^{t}, a_{i}\right)\right) / \sum_{a_{j} \in \mathcal{A}^{t}} \exp \left(\eta r\left(\boldsymbol{s}^{t}, a_{j}\right)\right) \]

进一步地,在每一个session \(t\)中,用户的最优策略\(\phi^{*}\)与如下离散的choice model是等价的,其中,\(\varepsilon^{t}\)服从Gumbel分布(参考【Learning Notes】Gumbel 分布及应用浅析),wikipedia的解释https://en.wikipedia.org/wiki/Gumbel_distribution,简单来说是一个极值分布,比如每个点是周围若干个点的max或者min这种。。

\[ a^{t}=\arg \max _{a \in \mathcal{A}^{t}} \eta r\left(\boldsymbol{s}^{t}, a\right)+\varepsilon^{t} \]

如上引理说明了,用户根据reward function去greedily地选择一个item(exploitation),而其中的Gumbel noise \(\varepsilon^{t}\)使得用户可以去deviate(偏差)和explore其他reward相对小一点的item。在经济学模型中,已经有类似的方法了,例如Maximum score estimation of the stochastic utility model of choice,还有Conditional logit analysis of qualitative choice behaviour,但之前的经济学模型并没有把多样的特征还有用户状态的演变考虑进去。可见,\(\eta\)越小,越偏向explore。不过,因为每个人的reward也不一样,所以实际应用的时候,简单地设置\(\eta=1\)

注意:

  • 其他的正则\(R(\phi)\)也可以用,这样\(\phi^{*}\)\(r\)的关系也会变,也就不一定会有那个逼近的形式了
  • 对于用户没有点击任意一个item这种情况,可以看成一直在展现集合\(\mathcal{A}^{t}\)中的一个特殊的item。这个item的feature vector可以都搞成0,或者可以把reward定义成一个常量。

Model Parameterization

使用用户在session \(t\)之前历史点击的embedding来表示状态\(\boldsymbol{s}^{t}\),然后基于状态和当前action \(a^{t}\)的embedding来定义reward函数\(r\left(\boldsymbol{s}^{t}, a^{t}\right)\)

定义用户的状态\(\boldsymbol{s}^{t} :=h\left(\boldsymbol{F}_{*}^{1 : t-1} :=\left[\boldsymbol{f}_{*}^{1}, \cdots, \boldsymbol{f}_{*}^{t-1}\right]\right)\),其中每一个\(\boldsymbol{f}_{*}^{\tau} \in \mathbb{R}^{d}\)是session \(\tau\)的点击item的特征向量,\(h(\cdot)\)是一个embedding函数,本文提出了一种简单且有效的position weighting scheme。\(\boldsymbol{W} \in \mathbb{R}^{m \times n}\)是一个行数\(m\)是一个固定的历史的时间步数,而\(n\)列里每一列与positions上的importance weights的集合有关。所以embedding函数\(h \in \mathbb{R}^{d n \times 1}\)可以设计成如下形式:

\[ \boldsymbol{s}^{t}=h\left(\boldsymbol{F}_{*}^{t-m : t-1}\right) :=\operatorname{vec}\left[\sigma\left(\boldsymbol{F}_{*}^{t-m : t-1} \boldsymbol{W}+\boldsymbol{B}\right)\right] \]

其中,\(\boldsymbol{B} \in \mathbb{R}^{d \times n}\)是一个bias矩阵。\(\sigma(\cdot)\)是非线性变换。\(\operatorname{vec}[\cdot]\)把输入矩阵的列concate到一起,形成一个长向量。当然,也可以使用LSTM来对历史进行建模。但position weighting scheme是浅层网络,比RNN在前向计算和反向传播上都更加高效。



接下来,定义reward函数还有用户行为模型。

用户的选择\(a^{t} \in \mathcal{A}^{t}\)和特征是\(\boldsymbol{f}_{a^{t}}^{t}\)的item有关,所以,reward定义如下:

\[ r\left(\boldsymbol{s}^{t}, a^{t}\right) :=\boldsymbol{v}^{\top} \sigma\left(\boldsymbol{V}\left[\begin{array}{c}{\boldsymbol{s}^{t}} \\ {\boldsymbol{f}_{a^{t}}^{t}}\end{array}\right]+\boldsymbol{b}\right) \]

用户行为模型如下:

\[ \phi\left(s, \mathcal{A}^{t}\right) \propto \exp \left(\boldsymbol{v}^{\prime \top} \sigma\left(\boldsymbol{V}^{\prime}\left[\begin{array}{c}{\boldsymbol{s}^{t}} \\ {\boldsymbol{f}_{a^{t}}^{t}}\end{array}\right]+\boldsymbol{b}^{\prime}\right)\right) \]

其中,\(\boldsymbol{V}, \boldsymbol{V}^{\prime} \in \mathbb{R}^{\ell \times(d n+d)}\)是权重矩阵,而\(\boldsymbol{b}, \boldsymbol{b}^{\prime} \in \mathbb{R}^{\ell \times 1}\)是bias向量(原文写错了,和作者邮件确认了应该是这个维数),\(\boldsymbol{v}, \boldsymbol{v}^{\prime} \in \mathbb{R}^{\ell}\)是最终的regression参数。

为了简化一点,把reward的所有参数定义为\(\theta\),而用户模型的所有参数定义为\(\alpha\),因此,reward就是\(r_{\theta}\),而用户模型就是\(\phi_{\alpha}\)

自己来梳理一下。。有m个时间步,每个时间步的f是dx1维的,所以F是dxm,而w是mxn,所以乘完后是个dxn,然后这个vec的操作就是把n列竖着叠到一起,变成一个dnx1的向量。这就是s。然后那个s,f呢,f只是一个item,所以是dx1维,而s是dnx1,把这两个竖着叠在一起就是(n+1)xd=dn+d这么多行,所以V就是lx(dn+d)。V乘以s和f的那个,出来就是一个lx1的。最后的r是一个标量吧。

Generative Adversarial Training

上面提到的reward函数\(r\left(s^{t}, a^{t}\right)\)和用户行为模型\(\phi\left(s^{t}, \mathcal{A}^{t}\right)\)均是未知的,需要从数据中学习。用户行为模型\(\phi\)试图模仿真实用户最大化其reward \(r\)的真实action序列。根据gan的术语,

  • \(\phi\)可以看做是一个generator。基于用户的历史,产生用户的下一个行为。参数是\(\alpha\),要让把假的当成真实最大,所以在下面的式子里,需要\(\alpha\)最大!
  • \(r\)可以看做是一个discriminator,试图分辨出用户的真实行为与generator产生的用户行为。参数是\(\theta\),要让把真实的当成真实最大,而下面的式子第二项前有个负号,所以要\(\theta\)最小。。

给定一个有\(T\)个已观测action的轨迹(trajectory)\(\left\{a_{\text {true}}^{1}, a_{\text {true}}^{2}, \ldots, a_{\text {true}}^{T}\right\}\),以及对应的点击item的特征\(\left\{\boldsymbol{f}_{*}^{1}, \boldsymbol{f}_{*}^{2}, \ldots, \boldsymbol{f}_{*}^{T}\right\}\),解决如下mini-max的优化问题:

\[ \begin{aligned} \min _{\theta} \max _{\alpha}\left(\mathbb{E}_{\phi_{\alpha}}\right.&\left[\sum_{t=1}^{T} r_{\theta}\left(\boldsymbol{s}_{\text {true}}^{t}, a^{t}\right)\right]-R\left(\phi_{\alpha}\right) / \eta ) -\sum_{t=1}^{T} r_{\theta}\left(\boldsymbol{s}_{\text {true}}^{t}, a_{\text {true}}^{t}\right) \end{aligned} \]

其中,\(\boldsymbol{s}_{\text {true}}^{t}\)用来强调这是观测到的数据。上式前面那项是基于真实state使用用户模型产出的action得到的reward,也就是正常gan里的D(G(z)),后面一项是真实的state下真实action的reward,也就是正常gan里的D(x)。

对于一般化的正则项\(R\left(\phi_{\alpha}\right)\),mini-max的优化问题并没有一个逼近形式,所以需要通过交替更新\(\phi_{\alpha}\)\(r_{\theta}\)

\[ \left\{\begin{array}{l}{\alpha \leftarrow \alpha+\gamma_{1} \nabla_{\alpha} \mathbb{E}_{\phi_{\alpha}}\left[\sum_{t=1}^{T} r_{\theta}\right]-\gamma_{1} \nabla_{\alpha} R\left(\phi_{\alpha}\right) / \eta} \\ {\theta \leftarrow \theta-\gamma_{2} \mathbb{E}_{\phi_{\alpha}}\left[\sum_{t=1}^{T} \nabla_{\theta} r_{\theta}\right]+\gamma_{2} \sum_{t=1}^{T} \nabla_{\theta} r_{\theta}}\end{array}\right. \]

这个更新过程可能不一定会stable,因为这本身可能是一个非凸问题。所以可以在初始化的时候加个特殊的正则。对于entropy的正则,有个如下引理2的逼近形式:

引理2:假设正则项是\(R(\phi)=\sum_{i=1}^{k} \phi_{i} \log \phi_{i}\),而\(\Phi\)包含了所有的从\(\mathcal{S} \times\left(\begin{array}{l}{\mathcal{I}} \\ {k}\end{array}\right)\)映射到\(\Delta^{k-1}\)的mapping。那么如上的优化问题可以等价为如下最大化likelihood的估计:

\[ \max _{\theta \in \Theta} \prod_{t=1}^{T} \frac{\exp \left(\eta r_{\theta}\left(s_{t r u e}^{t}, a_{t r u e}^{t}\right)\right)}{\sum_{a^{t} \in \mathcal{A}^{t}} \exp \left(\eta r_{\theta}\left(s_{t r u e}^{t}, a^{t}\right)\right)} \]

当entropy正则的reward函数学习完了之后,能用来对其他形式的正则进行初始化。

Cascading RL Policy for Recommendation

推荐策略需要处理\(\left(\begin{array}{l}{\mathcal{I}} \\ {k}\end{array}\right)\)(组合数)这么一个combinatorial action space,其中每个action是从有\(K\)个候选的大集合\(\mathcal{I}\)中挑选出\(k\)个item的子集。有两个挑战:

  • 在combinatorial action space这个空间上的可能的很高的计算复杂度
  • 对某种item组合的长期reward(Q)的预估也需要一个复杂度较高的框架

Cascading Q-Networks

用户的一次请求,系统需要从有\(K\)个候选的大集合\(\mathcal{I}\)中挑选出\(k\)个item的子集\(\mathcal{A}\)

最优的Q如下:

\[ Q^{*}\left(s^{t}, \mathcal{A}^{t}\right)=\mathbb{E}\left[r\left(s^{t}, \mathcal{A}^{t}, a^{t}\right)+\gamma \max _{\mathcal{A}^{\prime} \subset \mathcal{I}} Q^{*}\left(s^{t+1}, \mathcal{A}^{\prime}\right)\right], a^{t} \in \mathcal{A}^{t} \]

而学到了这个最优的Q之后,最优的推荐策略就是:

\[ \pi^{*}\left(\boldsymbol{s}^{t}, \mathcal{I}^{t}\right)=\arg \max _{\mathcal{A}^{t} \subset \mathcal{I}^{t}} Q^{*}\left(\boldsymbol{s}^{t}, \mathcal{A}^{t}\right) \]

其中,\(\mathcal{I}^{t} \subset \mathcal{I}\)是在\(t\)时候的item候选集合。挑战就是,组合数\(\left(\begin{array}{l}{K} \\ {k}\end{array}\right)\)是非常巨大的,即使是不大的K=1000, k=5,组合数也有1.6亿!。。而且,同一个item,在不同的组合里,被点击的概率也会因不同用户在不同时刻而不同。

因此,本文用不止一个Q函数,而是使用k个相关的Q函数来进行建模。

定义推荐的action为\(\mathcal{A}=\left\{a_{1: k}\right\} \subset \mathcal{I}\),最优的action为\(\mathcal{A}^{*}=\left\{a_{1: k}^{*}\right\}=\arg \max _{\mathcal{A}} Q^{*}(s, \mathcal{A})\)

也就是说,给定一组当前推荐系统推荐的\(a_1,...,a_k\),需要得到一组使得\(Q^*(s,a_{1:k})\)最大的最优的\(a^*_1,...,a^*_k\)

可以这么拆解,

  • 输入\(s\)\(a_1\),找到使得\(Q^{1*}(s,a_1)\)最大的动作\(a_1^*\)
  • 输入\(s\)\(a_1^*\)还有\(a_2\),找到使得\(Q^{2*}(s,a_1^*,a_2)\)最大的动作\(a_2^*\)
  • 输入\(s\)\(a_{1:k-1}^*\)还有\(a_k\),找到使得\(Q^{k*}(s,a_{1:k-1}^*,a_k)\)最大的动作\(a_k^*\)

其中,

  • 第一步的\(Q^{1*}(s,a_1)\)可以看成是\(Q^*(s,a_{1:k})\)当动作取\(a_{2:k}\)的时候取得最大值
  • 第二步的\(Q^{2*}(s,a_1^*,a_2)\)可以看成是\(Q^*(s,a_{1:k})\)当动作取\(a_{3:k}\)的时候取得最大值
  • 第k步的\(Q^{k*}(s,a_{1:k-1}^*,a_1)\)可以看成是\(Q^*(s,a_{1:k})\)

于是:

\[ \begin{array}{l}{\text { Cascading Q-Networks: }} \\ {\qquad \begin{aligned} a_{1}^{*} &=\arg \max _{a_{1}}\left\{Q^{1 *}\left(s, a_{1}\right):=\max _{a_{2: k}} Q^{*}\left(s, a_{1: k}\right)\right\} \\ a_{2}^{*} &=\arg \max _{a_{2}}\left\{Q^{2 *}\left(s, a_{1}^{*}, a_{2}\right):=\max _{a_{3: k}} Q^{*}\left(s, a_{1: k}\right)\right\} \\ \cdots & \\ a_{k}^{*} &=\arg \max _{a_{k}}\left\{Q^{k *}\left(s, a_{1: k-1}^{*}, a_{k}\right):=Q^{*}\left(s, a_{1: k}\right)\right\} \end{aligned}}\end{array} \]

看ppt。。。



画成网络图就是:



Parameterization and Estimation

每一个\(Q^{j*}\)通过神经网络来定义:

\[ \boldsymbol{q}_{j}^{\top} \sigma\left(\boldsymbol{L}_{j}\left[\boldsymbol{s}^{\top}, \boldsymbol{f}_{a_{i}}^{\top}, \ldots, \boldsymbol{f}_{a_{j-1}^{\prime}}^{\top}, \boldsymbol{f}_{a_{j}}^{\top}\right]^{\top}+\boldsymbol{c}_{j}\right), \forall j \]

其中,参数\(\Theta_{j}\)包括了\(\boldsymbol{L}_{j} \in \mathbb{R}^{\ell \times(d n+d j)}\)\(\boldsymbol{c}_{j} \in \mathbb{R}^{\ell}\)\(\boldsymbol{q}_{j} \in \mathbb{R}^{\ell}\)

这里的state和前面用户模型的是共享的,即

\[\boldsymbol{s}^{t}:=h\left(\boldsymbol{F}_{*}^{1: t-1}:=\left[\boldsymbol{f}_{*}^{1}, \cdots, \boldsymbol{f}_{*}^{t-1}\right]\right)\]

还有

\[ \boldsymbol{s}^{t}=h\left(\boldsymbol{F}_{*}^{t-m: t-1}\right):=\operatorname{vec}\left[\sigma\left(\boldsymbol{F}_{*}^{t-m: t-1} \boldsymbol{W}+\boldsymbol{B}\right)\right] \]

理论上,结果要是最优的话,那么要求\(Q^{j*}\)恰好就是\(Q^*\)

\[ Q^{j *}\left(s, a_{1}^{*}, \cdots, a_{j}^{*}\right)=Q^{*}\left(s, a_{1}^{*}, \cdots, a_{k}^{*}\right), \quad \forall j \]

但严格要求相等是很难的,作者做了如下近似。

定义loss为:

\[ \begin{array}{l}{\left(y-Q^{j}\right)^{2}, \text { where }} \\ {y=r\left(s^{t}, \mathcal{A}^{t}, a^{t}\right)+\gamma Q^{k}\left(s^{t+1}, a_{1: k}^{*} ; \Theta_{k}\right), \forall j}\end{array} \]

也就是说,所有的\(Q^j\)个网络都拟合同一个目标y。这样,参数\(\Theta_{k}\)就可以通过对上述loss进行梯度下降来更新了。

整体的训练方法:




原创文章,转载请注明出处!
本文链接:http://daiwk.github.io/posts/dl-gan-rl-recommend.html
上篇: VQ-VAE
下篇: multi-sample dropout

comment here..