强化学习在推荐系统的应用

论文笔记Deep Reinforcement Learning based Recommendation with Explicit User-Item Interactions Modeling

Posted by CY on December 23, 2021

Deep Reinforcement Learning based Recommendation with Explicit User-Item Interactions Modeling

Abstract

目前大多数推荐算法(协同过滤、矩阵因子分解、逻辑回归、因子分解机、神经网络、多臂赌博机等等)存在两个limitation:

  • 将推荐视为静态程序,忽略用户与推荐系统之间的动态交互性质;
  • 专注于推荐项目的即时反馈,而忽视了长期的回报。

论文提出了基于深度强化学习的推荐框架——DRR,DRR将推荐过程看做一个序列化决策过程,利用Actor-Critic算法来建模用户和推荐系统之间的交互,这个过程可以认为是动态适应(dynamic adaptation)和长期奖励(long-term rewards)。另外,一个状态表示模块也集成进DRR,可以显示地捕捉到物品和用户间的交互,论文实现了三个实例化结构,并在四个数据集上完成了离线/在线的评估实验。

I. INTRODUCTION

论文提出了 deep reinforcement learning based recommendation framework with explicit user-item interactions modeling (DRR). 状态表示模块state representation module被集成到“Actor-Critic” type framework DRR中,该模块显示地建模复杂的动态交互过程,可以达到更好的推荐性能。具体来说,从历史交互数据中得到用户和物品的嵌入式表达,被喂入到设计良好的多层神经网络,它显式地建模用户和项目之间的交互,以根据用户的潜在的顺序行为生成用户的连续状态表示。这个模块一方面用于生成ranking action来计算ranking的推荐分数,另一方面,state representation和ranking action一起作为critic的输入,来评估Q-value(也就是评估当下状态下action的好坏)。基于评估结果,Actor(policy)模块得到更新。

image-20211213161734730

A. Non-RL based Recommendation Techniques

B. RL based Recommendation Techniques

model-based的方法不适用于推荐场景(十分耗时),所以更多研究model-free方法:policy-based 和 value-based

III. PRELIMINARIES

我们将推荐过程建模为一个顺序决策问题,其中推荐者(即agent)与用户(即environment)进行交互, 通过最大化整个推荐过程的累积奖励,在时间步长内按顺序推荐一个项目列表。更具体地说,推荐过程可以建模为MDP,如下所示:

image-20211213163243081

image-20211213163446934

下图展示了MDP形式的recommender-user interactions. 考虑到当前的用户状态和对先前行动的即时奖励,recommender会采取一个action。请注意,在我们的模型中,action既不对应于推荐项目,也不推荐项目列表。相反,一个动作是一个连续的参数向量continuous parameter vector。 参数向量通过与item嵌入内积来确定所有候选项目的排名分数,然后排序topN进行推荐。 用户根据推荐结果把反馈给recommender,user state更新。recommender得到rewards(根据user feedback)。在不失去泛化的情况下,推荐过程是一个T timestep trajectory*

image-20211213164441756

* If a recommendation episode terminates in less than T timesteps, then the

length of the episode is the actual value.

image-20211213163537230

IV. THE PROPOSED DRR FRAMEWORK

A. Three Key Ingredients in DRR

full_model

1) The Actor network:

In DRR, the user state, denoted by the embeddings of her $n$ latest positively interacted items(n个最新的正向交互), is regarded as the input.

Then the embeddings are fed into a state representation module to produce a summarized representation $s$ for the user. 可以定义如下:\(s_t=f(H_t)\)

image-20211213165459073

这样定义状态的理由:(i)优质的推荐系统应迎合用户的口味,即用户喜欢什么项目;(ii)最新的记录更准确地代表用户最近的兴趣。

最后,通过ReLU和Tanh激活层,state representation s 被转化为 action $a=π_θ(s) $ —— output

特别地:action $a$ 被定义为一个由连续参数向量表示的排序函数 $a∈R^{1\times k}$,通过使用action,可以将该项目的排名分数定义为:$score_t=i_ta^\Tau$

然后是排名最高的项目(w.r.t. the ranking scores) 推荐给用户。请注意,这里采用了广泛使用的ε-greedy exploration

2) The Critic network:

是一个Deep Q-Network,利用一个参数化为$Q_ω(s,a)$的深度神经网络来近似真实的状态动作值函数$Q^π(s,a)$,即Q-value函数。Q-value函数反映了Actor网络生成的action policy好不好,具体来说,Critic网络的输入是:1️⃣ 状态表示模块生成的用户状态$s$ 2️⃣ policy网络生成的action $a$ ,输出是Q-value,是个标量。根据Q-value,更新Actor网络的参数,以提高action $a$的性能的方向,即$boosting Q_w(s,a)$。 根据deterministic policy gradient,我们可以根据下式通过sampled policy gradient来更新Actor:

image-20211213200108351

3) The State Representation Module
  • DRR-p

    image-20211213201727233

    提出了一种基于product的状态表示模块神经网络,利用点积操作(product operator) 来获取item之间的pairwise local dependency. 这里首先是克隆了$H={i_1,…,i_n}$中的item表示,两两进行元素对应乘积得到$n(n-1)/2$个新的特征向量,再和克隆向量concat。元素对应乘积的部分,每个item的重要性权重也会被学习到,

    元素对应乘积(element-wise product):两个矩阵中对应元素乘积

    image-20211213203055701

  • DRR-u

    image-20211213201959459

    image-20211213203608451

  • DRR-ave

image-20211213201907821

上面两个结构可以看出,$H$中item的位置会影响state representation。当H很大时,我们期望项目的位置很重要(能表示一些信息),因为H表示一个长期序列;而如果序列H是一个shor-term,记忆项目的位置可能会导致过拟合。所以我们设计了另外一个结构来消除位置的影响。item集合先经过平均池化层,然后和user embedding相乘。

image-20211213204922165

B. Training Procedure of the DRR Framework

(7-12) transition generation

(13-17) model update

image-20211213205320888

C. Evaluation

1) Offlfline evaluation:

具体来说,对于一个给定的会话$S_j$,recommender只推荐在此会话中出现的项目,表示为$I(S_j)$,而不是整个项目空间中的项目。原因是我们只能在已记录的离线日志中得到真实的反馈。

The offlfline evaluation procedure can be treated as a rerank procedure of the candidate set by iteratively selecting an item w.r.t. the action generated by the Actor network in DRR framework.

此外,在离线评估中没有更新模型参数。

image-20211213210700000

2) Online evaluation with environment simulator:

Probabilistic matrix factorization- pretrain a PMF [37] model as the environmentsimulator, i.e., to predict an item’s feedback that the user never rates before.

PMF来预测item的feedback(用户之前没有评分)在线评估是根据算法1——参数会不断更新,它与算法1的主要区别在于,推荐项目的反馈可以由环境模拟器观察到。此外,在每次推荐会话开始前,我们将参数重置回θ和ω,这是在训练阶段学习到的策略,以便进行公平比较。

V. EXPERIMENT

Precision@k and NDCG@k

learning_curve

补充知识

Prioritized Experience Replay

在抽取经验池中过往经验样本时,采取按优先级抽取的方法,使得算法更快收敛,效果更好

Abstract

经验回放使得在线强化学习的agent能够记住和重新利用过去的经验,在以往的研究中,过去的经验(transition,经验池中的一条记录,表示为元祖形式,包含state,action,reward,discount factor,next state),只是通过均匀采样来获取。然而这种方法,只要原来有过这个经验,那么就跟别的经验以相同的概率会被再次利用,忽略了这些经验各自的重要程度。

本文我们提出了一种优先回放结构,这种方法可以使重要的经验被回放的概率大,从而使学习变得更有效率。

Introduction

经验回放机制:

1、更新完参数立刻丢掉输入输出的数据:

造成两个问题:这种强相关的更新打破了很多常用的基于随机梯度下降算法的所应该保证的独立同分布特性,容易造成算法不稳定或者发散;放弃了一些在未来有用的需要重放学习的一些稀有经验。

2、1992年提出Experience Replay,解决了这两个问题,并在2013年提出的DQN(Mnih et al.)中应用,原始DQN中只是从经验池中随机取样进行回放利用。经验回放虽然可以减少agent学习所需要的经验数量(输入的data),但会增加计算量与内存,但是增加的计算量与内存对于agent与环境交互而言更cheaper。

Experience replay liberates online learning agents from processing transitions in the exact order they are experienced.

3、这里我们提出如何对经验标记优先级,来使重放比单纯的随机抽样回放更有效。

Prioritized replay further liberates agents from considering transitions with the same frequency that they are experienced.

我们用TD-error (Q现实-Q估计)来表示优先级的大小。

1、这种方式会丢失多样性,我们用stochasitic prioritization(proportional prioritization和rank-based prioritization)来弥补;

2、这种方式也会引入bias,我们用importance-sample weights来弥补