[2017-JD] Deep Reinforcement Learning for List-wise Recommendations
[2017-JD] Deep Reinforcement Learning for List-wise Recommendations
-
论文地址
-
主要思想:
-
问题
-
问题
-
Actor
-
Critic Framework
-
整体算法
-
- 架构图
- 整体训练过程
-
Online User-Agent Interaction Environment Simulator
-
问题
论文地址
https://arxiv.org/pdf/1801.00209.pdf
主要思想:
1、一次推荐多个item
2、状态s 为之前用户动作果的N个item的顺序集合。

更新方法: 每次推荐之后, 将用户动作过的item放入其中。没有动作果的item相当于丢弃掉了。
3、动作a 为某次推荐的K个item。

比如在 t 时刻的动作a=\{a_t^1, a_t^2, ... a_t^K\}
问题
1、k变化的时候,网络结构需要调成,整个网络需要重训。
2、直接输出k*dim_(w) 的向量,这些向量的表达能力可能需要打个问号。准确性的评估方法?
3、使用w_1, w_2, w_3,...与所有候选集中的embeding来进行点乘, 性能上是个问题。
4、r(s_t, a_t)为某次动作a之后用户的行函数。

问题
1.没有找到r的计算方式, 是把a中个每个item的reward直接加起来,还是按权重加起来呢?
Actor
1、f函数计算K个权重向量。
2、使用这些权重向量与候选集中的所有item的embedding进行点乘,计算出item的score。
3、由于要返回K个item, 先计算第一个item的\mathop{\arg \max}_{i\in \mathcal{A}^i} ^k w_t^1e_i^\mathsf{T}, 再计算第二个, 第三个。。。



Critic Framework
critic和普通的critic没有什么差别:

a_{t+1}搜索空间太大, 直接使用actor返回的a作为a_{t+1}, 当做t+1时刻的Q的a输入。公式修改为:

损失函数定义为:

整体算法
架构图

整体训练过程
更新参数时, 使用DDPG算法。

Online User-Agent Interaction Environment Simulator
文中提出一种模拟线上用户反馈的r计算模拟方式。主要思想是使用线上数据的r。
模拟时,返回s^` ,a^`的r^`时,返回与线上相似的s,a对应的r, 作为模拟的r^`返回。
1、计算当前 p_t =<s_t, a_t>与历史上s_i, a_i之前的相似程度:

2、计算当前 P_t的reward r_t = r_i的概率:

3、由于历史 i很多, 简易方法是将r相同的历史p_i的reward统一考虑, 聚合在一起U_x, 预估当前的r.

4、之后将一次刷新中的单个item的 r^{k}加权求和。\Gamma\in(0, 1]

问题
1.论文中这一部分a_i的意义不明, 像是具体某一个item, 但之前论文中的a_i为一次推荐的K个item的集合。a_t^i才代表一次action中的第i个item。
