Article
- 作者:Guanjie Zheng, Fuzheng Zhang, Zihan Zheng, Yang Xiang, Nicholas Jing Yuan, Xing Xie, Zhenhui Li
- 文献题目:DRN:新闻推荐的深度强化学习框架
- 文献时间:2018
摘要
- 在本文中,我们提出了一种新颖的深度强化学习框架用于新闻推荐。由于新闻特征和用户偏好的动态特性,在线个性化新闻推荐是一个极具挑战性的问题。尽管已经提出了一些在线推荐模型来解决新闻推荐的动态性,但这些方法存在三个主要问题。首先,他们只尝试模拟当前的奖励(例如,点击率)。其次,很少有研究考虑使用用户反馈而不是点击/不点击标签(例如,用户返回的频率)来帮助改进推荐。第三,这些方法往往会不断向用户推荐类似的新闻,这可能会导致用户感到厌烦。因此,为了解决上述挑战,我们提出了一个基于深度 Q-Learning 的推荐框架,它可以明确地模拟未来的奖励。我们进一步考虑用户返回模式作为点击/不点击标签的补充,以捕获更多用户反馈信息。此外,还结合了有效的探索策略来为用户寻找新的有吸引力的新闻。在商业新闻推荐应用程序的离线数据集和在线生产环境上进行了大量实验,并显示了我们方法的优越性能。
Data
- 新闻推荐的动态变化难以处理。
- 首先,新闻很快就会过时。因此,新闻特征和新闻候选集正在迅速变化。
- 其次,用户对不同新闻的兴趣可能会随着时间的推移而变化。因此,有必要定期更新模型。
- 尽管有一些在线推荐方法可以通过在线模型更新来捕捉新闻特征和用户偏好的动态变化,但它们仅尝试优化当前奖励(例如,点击率),因此忽略当前的建议可能对未来产生什么影响。
- 其次,目前的推荐方法通常只考虑点击/不点击标签或评分作为用户的反馈。 然而,一个用户多久返回到这个服务也将表明该用户对推荐的满意程度。
- 它倾向于不断向用户推荐相似的项目,这可能会降低用户对相似主题的兴趣。 在文献中,一些强化学习方法已经提出在寻找新项目的决策中增加一些随机性(即探索)。 最先进的强化学习方法通常应用简单的
?
\epsilon
??-greedy 策略或上置信区间 (UCB) 。 然而,这两种策略都可能在短期内在一定程度上损害推荐性能。 ?-greedy 策略可能会向客户推荐完全不相关的物品,而 UCB 无法获得相对准确的物品奖励估计,直到该物品被多次尝试。 因此,有必要进行更有效的探索。
主要贡献
- 我们提出一个强化学习框架来进行在线个性化新闻推荐。与以前的研究不同,此框架采用了DQN结构,可以照顾到立即和将来的回报。尽管我们专注于新闻推荐,但是我们的框架可以推广到许多其他推荐问题。
- 我们认为用户的积极性有助于提高推荐的准确性,与单纯使用用户点击标签相比,这可以提供额外的信息。
- 应用了一种更有效的探索方法“Dueling Bandit Gradient Descent”,避免 了传统的探索方法(例 如
?
\epsilon
?-greedy 和 Upper Confidence Bound)引起的推荐准确性下降。
- 我们的系统已在商业新闻推荐应用程序中在线部署。大量的离线和在线实验显示了我们方法的优越性能。
方法
算法流程
- 我们的模型由离线部分和在线部分组成。在离线阶段,四种功能从新闻和用户中提取。多层深度
Q
Q
Q网络用于根据这四种功能预测奖励(即,用户新闻点击标签和用户活动的组合)。该网络是使用离线用户新闻点击日志来训练的。然后,在在线学习部分中,我们的推荐智能体
G
G
G将通过以下方式与用户互动并更新网络:
- (1) PUSH:在每个时刻
(
t
1
,
t
2
,
t
3
,
t
4
,
t
5
,
.
.
.
)
(t_1,t_2,t_3,t_4,t_5,...)
(t1?,t2?,t3?,t4?,t5?,...)中,当用户向系统发送新闻请求时,推荐智能体G会将当前用户的特征表示和候选新闻作为输入,并生成推荐给L的新闻的前
k
k
k个列表。L是当前模型的开发(exploitation)和新物品的探索(exploration)的结合。
- (2) FEEDBACK:收到被推荐新闻
L
L
L的用户
u
u
u将通过单击这组新闻来给他们反馈B。
- (3) MINOR UPDATE(次要更新):在每个时间戳之后(例如,在时间戳
t
1
t_1
t1? 之后),利用前一个用户
u
u
u 和新闻列表
L
L
L 的特征表示,以及反馈
B
B
B,智能体
G
G
G 将通过比较开发网络
Q
Q
Q 和探索网络
Q
^
\hat Q
Q^?的推荐性能来更新模型。 如果
Q
^
\hat Q
Q^?给出更好的推荐结果,则当前网络将向
Q
^
\hat Q
Q^? 更新。 否则,
Q
Q
Q 将保持不变。 每次推荐发生后,可能会发生次要更新。
- (4) MAJOR UPDATE(主要更新)::在一定时间段
T
R
T_R
TR?之后(例如,在时刻
t
3
t_3
t3?之后),智能体
G
G
G将使用用户反馈
B
B
B和存储在存储器中的用户活动来更新网络
Q
Q
Q。在这里,我们使用replay buffer更新网络。具体而言,智能体
G
G
G维护具有最近历史点击和用户活动记录的内存。每次更新发生时,智能体
G
G
G都会采样一批记录以更新模型。重大更新通常在一定的时间间隔(例如一小时),在此间隔内进行数千次推荐印象并收集他们的反馈。
- (5)重复步骤(1)-(4)。
特征构造
- 为了预测用户是否会单击一条特定的新闻,我们构建了四类特征:
- 新闻特征:包括417维第一热点特征,用于描述此新闻中是否出现某些属性,包括标题,提供者,排名,实体名称,类别,主题类别,最近1小时,6小时,24小时,1周和1年中的点击次数。
- 用户特征:主要描述用户分别在1小时,6小时,24小时,1周和1年内单击的新闻的特征(即标题,提供者,排名,实体名称,类别和主题类别)。每个时间间隔的总点击次数也是如此。因此,总共将有413
×
\times
× 5 = 2065个维度。
- 用户新闻互动特征:这些25维特征描述了用户与某条新闻之间的交互,即实体(以及类别,主题类别和提供者)出现在用户阅读历史中的频率。
- 上下文特征:这些32维特征描述新闻请求发生时的上下文,包括时间,工作日和新闻的新鲜度(请求时间与新闻发布时间之间的间隔)。
深度强化推荐
- 考虑到新闻推荐的动态功能以及估计未来奖励的需求,我们采用了深度强化推荐深度Q网络(DQN)来模拟一个用户可能点击一条特定新闻的概率。在强化学习的设置下,用户单击一条新闻(以及将来推荐的新闻)的可能性实质上是我们的代理可以获得的奖励。因此,我们可以将总奖励建模为公式1。
- 其中状态
s
s
s由上下文特征和用户特征表示,动作
a
a
a由新闻特征和用户新闻互动特征表示,
r
i
m
m
e
d
i
a
t
e
r_{immediate}
rimmediate?代表针对当前情况的奖励(例如,用户是否单击此新闻),
r
f
u
t
u
r
e
r_{future}
rfuture?代表智能体对未来奖励的预测。
γ
\gamma
γ是折扣因子,用于平衡即时奖励和未来奖励的相对重要性。具体来说,假设
s
s
s为当前状态,我们使用DDQN通过在时刻
t
t
t上采取行动
a
a
a来预测总奖励,如公式2。
其中
r
a
,
t
+
1
r_{a,t+1}
ra,t+1?表示通过采取行动
a
a
a获得的即时奖励(下标
t
+
1
t+1
t+1是因为奖励总是延迟1时刻而不是当前动作)。在此,
W
t
W_t
Wt?和
W
t
′
W_{t′}
Wt′?是DQN的两组不同参数。 在此公式中,假设选择了动作
a
a
a,我们的智能体
G
G
G将推测下一个状态
s
a
,
t
+
1
s_{a,t+1}
sa,t+1?。基于此,给定一组候选动作
a
′
a′
a′,根据参数
W
t
W_t
Wt?选择给出最大未来奖励的动作
a
′
a′
a′。此后,基于
W
t
′
W_{t′}
Wt′?计算估计的未来奖励给定状态
s
a
,
t
+
1
s_{a,t+1}
sa,t+1?。每隔几次迭代,将切换
W
t
W_t
Wt?和
W
t
′
W_{t′}
Wt′?。事实证明,这种策略可以消除对Q 值的过估计。通过此过程,DQN将能够在考虑当前和未来情况的情况下做出决策。 如图所示4,我们提供了四类特征进入网络。用户特征和上下文特征用作状态特征,而用户新闻互动特征和新闻特征用作动作特征。一方面,获得奖赏在特定状态下的动作
a
a
a与所有特征密切相关。另一方面,由用户本人的特征(例如,该用户是否活跃,该用户今天是否已经阅读了足够的新闻)所确定的奖励更多地受到用户状态和上下文的影响。基于这种观察,我们将
Q
Q
Q函数分为值函数
V
(
s
)
V(s)
V(s)和优势函数
A
(
s
,
a
)
A(s,a)
A(s,a),其中
V
s
V_s
Vs?仅由状态特征确定,而
A
(
s
,
a
)
A(s,a)
A(s,a)由状态特征和动作特征确定。
用户活跃度
- 传统的推荐器系统仅专注于优化类似CTR的指标(即仅使用点击/不点击标签),这仅从用户中提取了部分反馈信息。表现推荐的选择还可能影响用户是否要再次使用该应用程序,即更好的推荐将增加用户与应用程序进行交互的频率。因此,还应该适当考虑用户活动的变化。
- 用户以非统一的方式请求新闻。用户通常在短时间内(例如30分钟)阅读新闻,在此期间,他们将以较高的频率请求或单击新闻。然后,当他们想要在几个小时后阅读更多新闻时,他们可能会离开该应用程序并返回该应用程序。当用户请求新闻时就会发生用户返回(用户在单击新闻之前总是会请求新闻,因此,也将隐式考虑用户单击)。
- 我们使用生存模型来模拟用户返回和用户活跃度。生存模型已应用于估算用户返回时间。假设
T
T
T是下一次事件(即用户返回)发生之前的时间,则危害函数(即事件发生的瞬时速率)可以定义为公式3。
然后可以将事件在
t
t
t之后发生的概率定义为公式4。 预期寿命
T
0
T_0
T0?可计算为 - 在我们的问题中,我们简单地设置
λ
(
t
)
=
λ
0
\lambda(t) =\lambda_0
λ(t)=λ0?,这意味着每个用户都有固定的返回概率。每次检测到用户返回时,我们都会为此特定用户设置
S
(
t
)
=
S
(
t
)
+
S
a
S(t)=S(t)+S_a
S(t)=S(t)+Sa?。用户活动得分不会超过1。例如,如图所示5,该特定用户的用户活动性从时间0的
S
0
S_0
S0?开始衰减。在时间戳
t
1
t_1
t1?,用户返回,这导致用户活动性
S
a
S_a
Sa?增大。然后,用户活动度在
t
1
t_1
t1?之后继续下降。在
t
2
t_2
t2?,
t
3
t_3
t3?,
t
4
t_4
t4?和
t
5
t_5
t5?发生类似的情况。注意,尽管此用户在
t
4
t_4
t4?到
t
9
t_9
t9?请求期间的请求频率相对较高,最大用户活动性被截断为1。
- 参数
S
0
S_0
S0?,
S
a
S_a
Sa?,
λ
0
\lambda_0
λ0?,
T
0
T_0
T0?是根据我们数据集中的真实用户模式确定的。
S
0
S_0
S0?设置为0.5以表示用户的随机初始状态(即,他或她可以处于活动状态也可以处于非活动状态)。我们可以观察到用户每两个连续请求之间的时间间隔的直方图,如图6。我们观察到,除了一天中多次阅读新闻外,人们通常每天都会定期返回该应用程序。因此,我们将
T
0
T_0
T0?设置为24小时。根据公式4和公式5将衰减参数
λ
0
\lambda_0
λ0?设置为
1.2
×
1
0
?
5
s
e
c
o
n
d
?
1
1.2 \times 10^{?5}second^{?1}
1.2×10?5second?1。另外,将每次点击的用户活跃度增加
S
a
S_a
Sa?设置为0.32,以确保用户将在每天一次的基本请求后返回到初始状态,即
S
0
e
?
λ
0
T
0
+
S
a
=
S
0
S_0e^{{-\lambda}_0T_0}+S_a=S_0
S0?e?λ0?T0?+Sa?=S0?。
- 点击/不点击标签
r
c
l
i
c
k
r_{click}
rclick?和用户活动性
r
a
c
t
i
v
e
r_{active}
ractive?如公式6。
尽管我们在这里使用生存模型来评估用户的活跃度,但其他选择,例如泊松点过程也可以应用,并且应该起到类似的作用。
探索
- 在强化学习中进行探索的最直接的策略是贪婪和UCB。
?
\epsilon
? -greedy会随机推荐概率为
?
\epsilon
? 的新项目,而UCB会选择许多次未探索的项目(因为这些项目可能会有较大的差异)。显然,这些琐碎的探索技术将在短期内损害推荐的效果。因此,我们没有进行随机探索,而是应用了Dueling Bandit梯度下降算法做探索。
- 直观地,如图7, 智能体
G
G
G将使用当前的网络
Q
Q
Q生成推荐列表
L
L
L,和另一个使用探索网络
Q
^
\hat Q
Q^?的列表
L
^
\hat L
L^。网络
Q
^
\hat Q
Q^?的参数
W
^
\hat W
W^可以通过往当前
Q
Q
Q网络的参数
W
W
W添加一个较小的扰动?W(公式7)得到。
其中
α
\alpha
α是探索系数,
r
a
n
d
(
?
1
,
1
)
rand(-1,1)
rand(?1,1)是-1和1之间的一个随机数。然后,智能体
G
G
G将进行概率交织,以使用
L
L
L和
L
^
\hat L
L^生成合并的推荐列表
L
^
\hat L
L^。要确定推荐中每个位置的项目,在日期列表
L
^
\hat L
L^中,概率交织方法基本上将首先在列表
L
L
L和
L
^
\hat L
L^之间随机选择。假设选择了
L
L
L,则
L
L
L中的项目
i
i
i将以其在
L
L
L中的排名确定的概率放入
L
^
\hat L
L^(具有最高排名的项目将以较高的概率被选择)。然后,列表
L
^
\hat L
L^将被推荐给用户
u
u
u,智能体
G
G
G将获得反馈
B
B
B。如果探索网络
Q
^
\hat Q
Q^?推荐的项目收到了更好的反馈,则智能体
G
G
G将使用的参数将网络
Q
Q
Q更新为
Q
^
\hat Q
Q^?,网络参数被更新为公式8。 否则,智能体
G
G
G将保持网络
Q
Q
Q不变。通过这种探索,智能体可以进行更有效的探索而不会损失太多的推荐准确性。
实验
数据集
- 我们对从商业新闻推荐应用程序,并将我们的系统在线部署到该应用程序达一个月。当新闻请求时,每个推荐算法都会给出其推荐到达并记录用户反馈(是否单击)。采样数据的基本统计数据如表2。在第一个离线阶段,训练数据和测试数据按时间顺序分开(最后两周用作测试数据),以使在线模型能够更好地学习不同会话之间的顺序信息。在第二个在线部署阶段,我们使用离线数据对模型进行预训练,并运行所有比较的实际生产环境中的方法。
评估措施
- CTR. 点击率的计算公式如下:
- Precision@k. 按公式10计算
k
k
k处的精度
- nDCC. 我们使用标准归一化折现累积增益(standard Normalized Discounted Cumulative Gain)作为公式11, 其中
r
r
r是推荐列表中项目的排名,
n
n
n是推荐列表的长度,
f
f
f是排名函数或算法,
y
r
f
{y_r}^f
yr?f 是1或0,指示是否发生点击,而
D
(
r
)
D(r)
D(r)是折扣。
和
实验设置
- 在我们的实验中,通过对参数空间进行网格搜索来确定参数,以找到具有最佳点击率的参数。详细设置见表3。
结论
- 在本文中,我们提出了一种基于DQN的强化学习框架来进行在线个性化新闻推荐。与以前的方法不同,我们的方法可以有效地对动态新闻功能和用户偏好进行建模,并明确规划未来,以便从长远来看获得更高的回报(例如CTR)。我们还考虑将用户返回模式作为单击/不单击标签的补充,以捕获更多用户反馈信息。此外,我们将有效的探索策略应用到我们的框架中,以改善建议的多样性并寻找潜在的更有价值的建议。实验表明,该方法可以显
着提高推荐准确性和推荐多样性。我们的方法可以推广到许多其他推荐问题。 - 对于将来的工作,相应地为不同用户(例如,重度用户和一次性用户)设计模型将更有意义,尤其是用户活动性度量。如果不同类别的人群观察到不同的模式,则可以带来更多的见解。
|