目录
参考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方法更为可取。近期有一些研究,在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策略。
主要贡献如下:
用真实数据进行实验得到的结果表明,从保留似然性和点击预测的角度来说,这种生成对抗模型可以更好地拟合用户行为。根据学习到的用户模型和奖励,研究者发现评估推荐策略可以给用户带来更好的长期累积奖励。此外,在模型不匹配的情况下,基于模型的策略也能够很快地适应新动态(和无模型方法相比,和用户交互的次数要少得多)。
图中绿线是推荐的信息流,黄线是用户的信息流。
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]\)
。
找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(轨迹)来同时学习用户行为模型和回报函数。
基于如下两个现实(realistic)的假设来对用户行为建模:
\(k\)
个item时,会做出令他自己的回报最大的决定。回报\(r\)
意味着这个用户对这个item有多感兴趣或者多满意。而如果他都不感兴趣,可以选择都不点。把点击的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\)
的关系也会变,也就不一定会有那个逼近的形式了\(\mathcal{A}^{t}\)
中的一个特殊的item。这个item的feature vector可以都搞成0,或者可以把reward定义成一个常量。使用用户在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是一个标量吧。
上面提到的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函数学习完了之后,能用来对其他形式的正则进行初始化。
推荐策略需要处理\(\left(\begin{array}{l}{\mathcal{I}} \\ {k}\end{array}\right)\)
(组合数)这么一个combinatorial action space,其中每个action是从有\(K\)
个候选的大集合\(\mathcal{I}\)
中挑选出\(k\)
个item的子集。有两个挑战:
用户的一次请求,系统需要从有\(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}\)
的时候取得最大值\(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。。。
画成网络图就是:
每一个\(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进行梯度下降来更新了。
整体的训练方法: