当前位置: 代码迷 >> 综合 >> 【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations
  详细解决方案

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

热度:93   发布时间:2023-10-21 02:22:46.0

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

 

1、Introduction

这里主要介绍了:强化学习是可以根据用户实时的反馈,捕捉用户的动态喜好,,实时更新策略(policy),还能实现长期收益的最大化。与其他不同的是,这里是生成一个网页的物品(网页版商城),是2D的,而不是1D的流式推荐(手机版商城)。

(ps:对于手机用户来说,一般用户最关注的是第一个商品,把他最感兴趣的放在第一个就好了,但是对于页面来说,很难说用户最喜欢关注哪个地方,每个人的关注点可能不太一样,第一行第一个不一定是最好的,所以需要学习。)

 

2、模型结构

2.1 Overview

这里用的就是强化学习了。

将推荐任务当作一个Markov Decision Process,利用强化学习去优化推荐策略。

 

1)state space S:就是生成用户的当前兴趣,这个是基于用户以前的历史数据(浏览、反馈等)

2)Action space A:【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations基于状态s,生成一个页面的M个物品。

3)Reward R: 状态s下采取动作a,用户的反馈是什么(点击、购买、跳过),就会获得一个reward

4)Transition P: 状态s下采取动作a,转移到下一个状态s' 的概率(由于这里是model free的模型,所以就不需要预测这个转移概率)

5)衰减因子 γ:0~1之间的一个数字,表示用户有多重视未来的奖励。如果γ=0,则模型只注重当下的奖励,γ=1,模型在预测当前价值的时候要考虑未来所有的奖励

 

他这里用的是Actor-Critic的方法,critic用的是DQN,所以不需要储存Q-table

不选下图a方法的原因:给出一个state,要计算所有action的Q value,计算量太大

不选下图b方法的原因:

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations根据求最优解的公式,还是要算max Q,也就还是要算下一个状态的所有a,计算量还是很大。

所以用c方法,先用actor选出action a,再让critic去计算,在当前state,选择action a的Q value是多少。

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

 

2.2 Actor的结构

有三个挑战:1、初始兴趣(state)是什么。 2、学习实时兴趣的时候,要捕捉用户的什么兴趣,用户喜欢的物品在页面哪个位置。3、怎么生成、展示一个2D的页面。

 

2.2.1 Initial State 初始状态

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

输入用户最近购买、点击的物品e。

e是公司根据过往数据预训练好的的表达向量。

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations通过线性、激活、输入gru,获得最终的initial state。gru的公式就不写了。

 

2.2.2 Real-time State 实时状态

因为是推荐一个页面的推荐系统,且一次推荐M个,所以输入是【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations,是用户对每M个物品的反馈。

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

e是与训练的表达。c是类别(category),是一个one hot向量。f是反馈(feedback)(点击、跳过、购买),也是一个one hot向量。

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

将他们过线性层再拼接起来。获得一个物品的综合表达X

由于我们的网页是h行w列,所以构造一个 h×w|X| 大小的矩阵 Pt

为了将这个矩阵综合成一个低维度的表达,我们使用卷积。【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

 

对于每一次我们给用户一个页面P,他都会给我们一个反馈。我们把p输入gru,我们使用attention去计算每个hidden的权重,加权求和得到最终的state。

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

 

2.2.3 获得action

使用 deconvolution neural network (DeCNN) 去获得action

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

生成一个h×w|X| 大小的矩阵。但是生成的物品的表达可能和与训练好的不同,所以需要map一下,之后会提到。

 

2.3 Critic的结构

要把state和action输入到function中计算Q value。

但是我们2.2.3计算出来的a是二维的,比较麻烦,所以用卷积,化成一维的。然后使用DQN网络就可以啦。

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

(吐槽:折腾来折腾去的,这几个卷积层是同一个吗?)

 

3 训练和测试

3.1.1 online 训练过程(使用真实的购物网站训练)

因为生成的e可能是不存在的,所以我们要map到最像的那个。

使用cos相似度计算。

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

为了降低计算消耗,先把【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations计算好。  max Q*也是要计算这个的。

 

mapping的算法如下,保证在一个page里面,不会有两个一样的物品。

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

 

3.1.2 offline 的训练过程(使用用户的历史数据训练)

我们使用用户的历史数据来训练Actor-Critic。但是实际上,我们预测的a和真实的a是不一样的,无论预测的a是什么,真实的a都是不变的。(由于是基于历史数据,用户看到什么和操作什么都是不可改变的。所以真实a永远不变。)所以我们要减少预测a和真实a的差距。reward实用真实a计算的。

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

 

3.1.3 训练算法

Critic的loss函数就和一般的Q learning的是一样的。参数μ'和π'是被固定的参数。莫烦python DQN pytorch代码详解

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

 

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

对于actor,我们希望他的总分期望越来越大。

(policy gradient:其实每个动作的概率都在增加,但是,如果这个action的奖励更多,他增加的幅度更大。总体上,好的action更大。)

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

offline 训练的不同是,第8行的选择,用真实值,第13行之前,需要最小化预测和真实action的。

 

3.2 测试过程

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

reward:跳过0分,点击1分,购买5分。

 

offline的测试就是将所有物品排序,下一次用户点击、购买的要排的尽量靠前。

【论文笔记】Deep Reinforcement Learning for Page-wise Recommendations

  相关解决方案