Deep Reinforcement Learning for List-wise Recommendations

论文题目:多个item一起进行推荐的深度强化学习方法

摘要:

推荐系统通过给用户推荐个性化商品,在缓解信息超载或服务这些问题方面起着至关重要的作用。绝大多数传统推荐系统将推荐算法视为静态过程,并且根据固定策略提出建议。在本文中,我们提出一种新颖的推荐系统,该系统具有在与用户互动期间不断改进其策略的能力。我们将用户和推荐系统之间的顺序交互建模为马尔可夫决策过程(MDP),并且用强化学习(RL),在通过推荐一些尝试的item并从用户的反馈中获得对这些item的补充策略。特别是,我们介绍一个在线的用户代理交互环境模拟器,可以在离线预先训练和评估模型参数,然后再上线。此外,我们验证了用户交互期间的用户和智能体之间的关系,并开发出一种新颖的方法将其纳入LIRD框架以获取一段推荐列表的建议。实验结果是基于一个真实的数据,并且显示了我们提出来的框架的有效性。

关键词:

推荐列表的推荐系统,深度强化学习,Actor-Crtic在线环境模拟器。

1:介绍

京东的推荐系统是智能的电子商务应用程序。他们通过建议用户帮助他们完成信息搜索任务,并推荐给他们最适合其需求和偏好的Item(产品,服务或信息)。 推荐系统越来越多近年来很流行,并且已被广泛用于电影,音乐,书籍,兴趣点和社交等领域事件[5,21,22,32–36]。 大多数现有的推荐系统都将推荐过程看做一种如果有固定模型,那么固定特征永远得到一样的推荐结果这种过程,并使用贪婪策略。 但是,用户状态是有一种有偏好的动态性质,这些方法可能会失败。 此外,大多数现有的推荐系统旨在最大限度地提高即时(短期)回报收入,即让用户立刻下载或者购买推荐的商品,但忽略这些推荐项目将导致更多或更多的长期利润。

在本文中,我们将推荐过程视为用户和推荐系统之间的顺序交互。 并利用强化学习(RL)自动学习最佳推荐策略。 基于强化学习的推荐系统具有两个优点。 首先,他们能够在交互过程中不断更新其策略,直到系统收敛到能够生成最适合用户动态偏好的推荐的最佳策略为止。 其次,通过最大化用户的预期长期累积奖励来制定最佳策略。 因此,系统可以识别具有小的即时奖励但为将来的建议的奖励做出很大贡献的项目。

在推荐者系统(如POMDP [23]和Q-learning [26])上使用强化学习已经做出了努力。 但是,随着推荐项目数量的增加,这些方法可能会变得僵化。 这阻止了它们被实用的推荐系统采用。 因此,我们利用(自适应)人工神经网络作为非线性近似器的深度强化学习[10]来估计RL中的action-value函数。 这种无模型的强化学习方法不会估计过渡概率,也不会存储Q值表。 这使其可以灵活地支持推荐系统中的大量项目。

1.1 List-wise Recommendations

通常推荐系统会给用户一次列出多个项目。列表式建议更多由于它们允许系统提供多样化的功能,因此在实践中很理想以及对用户的补充选择也是个优势。对于列表式建议,我们有一个列表的动作空间,其中每个动作都是一个集合多个相互依赖的子动作(项目)。现有的强化学习推荐器方法也可以推荐项目列表。例如,DQN [14]可以分别计算所有召回项目的Q值,并推荐具有最高回收率的项目清单Q值。但是,这些是根据一个相同的状态,忽略了推荐的items直接的关系。结果,推荐的项目是相似的。在实践中,与互补项捆绑在一起可能会收到更高的收益奖励比推荐所有类似物品要好。例如,在实时新闻提要推荐中,用户可能希望阅读各种感兴趣的主题,以及来自该主题的操作(即推荐)推荐代理将由一组新闻文章组成并非所有主题都相似[30]。因此,在本文中,我们提出了一个原则性方法来获取推荐对象之间的关系项并生成补充项列表以增强性能。

1.2架构选择

通常,存在两种Deep Q学习架构,如图1(a)(b)所示。传统的深度Q学习采用图1(a)所示的第一种架构,该架构仅输入状态空间并输出所有动作的Q值。这种架构适用于状态空间大,动作空间小的场景,例如玩Atari [14]。但是,一个缺点是它无法处理大型动态空间场景,例如推荐系统。第二种Q学习架构,如图1(b)所示,将state和action视为神经网络的输入,并输出与该action相对应的Q值。这种架构不需要将每个Q值存储在内存中,因此可以处理较大的动作空间,甚至可以连续动作。利用第二架构的一个挑战性问题是时间复杂度,即,该架构分别计算所有潜在action的Q值。为了解决这个问题,在本文中,我们的推荐政策基于Actor-Critic框架[25],如图1(c)所示。 Actor输入当前state,并会输出一个state-specific评分函数的参数。然后,RA对所有项目评分并选择得分最高的项目。接下来,Critic使用一种近似架构来学习值函数(Q值),该函数可判断所选action是否与当前state匹配。请注意,Critic与图1(b)中的DQN共享相同的体系结构。最后,根据Critic的判断,Actor会在建议性能改进的方向上更新其策略参数,以在后续迭代中输出适当的操作。该架构适用于大型行动空间,同时还可以减少冗余计算。

Deep Reinforcement Learning for List-wise Recommendations_第1张图片

1.3在线环境模拟器

与像Atari这样的在线游戏中使用的Deep Q学习方法不同,后者可以采取任意行动并及时获得反馈/奖励,而在线推荐系统之前很难获得在线奖励。在实践中,有必要离线训练参数并在在线应用模型之前对其进行评估,因此,如何训练我们的框架并离线评估我们的框架性能是一项艰巨的任务。为了应对这一挑战,我们提出了一种在线环境模拟器,该模拟器输入当前状态和选定的动作并输出模拟的在线奖励,这使框架能够根据模拟的奖励离线训练参数。更具体地说,我们根据用户的历史记录来构建模拟器。直觉与推荐系统采用的算法无关,在相同的state(或用户的历史记录)和相同的action(向用户推荐相同的商品)的情况下,用户将对这些商品做出相同的反馈。

为了在在线应用推荐系统之前评估其性能,一种实用的方法是根据用户的历史点击/购买记录对其进行测试。 但是,我们只有用户历史记录中与我们推荐的这些item的真实反馈(奖励),与当前推荐系统的巨大项目空间相比,这些反馈很少。 因此,我们无法获得不在用户历史记录中的项目的反馈(奖励)。 这可能会导致离线和在线测量之间的结果不一致。 我们提出的在线环境模拟器还可以通过在给定任何状态-动作对的情况下生成模拟的在线奖励来缓解这一挑战,从而推荐系统可以从整个项目空间对项目进行评分。 基于离线训练和评估,当我们在线启动我们的框架时,可以将训练有素的参数用作初始参数,可以通过基于策略的开发和探索来更新和改进这些参数。

1.4 我们的贡献

我们主要贡献总结如下:
•我们构建了一个在线的user-agent交互环境仿真器,该仿真器适用于在线应用推荐系统之前的离线参数预训练和评估。
•我们提出了一个基于深度强化学习LIRD的List-wise推荐框架,该框架可用于具有大型动态项目空间的场景中,并可显着减少多余的计算
•我们在现实世界的电子商务数据集中证明了所提出框架的有效性,并验证了列表推荐对准确推荐的重要性。本文的其余部分安排如下。
在第2节中,我们首先通过强化学习来正式定义推荐系统的问题。然后,我们提供了将推荐程序建模为顺序的用户-代理交互的方法,并介绍了有关使用Actor-Critic框架通过在线模拟器自动学习最佳推荐策略的详细信息。第三节基于实词电子商务站点进行了实验,并给出了实验结果。第4节简要回顾了相关工作。最后,第5节总结了本文并讨论了我们的未来工作。

2拟议框架

在本节中,我们首先通过强化学习来正式定义符号和推荐系统的问题。 然后,我们构建一个在线的user-agent交互环境模拟器。 接下来,我们在此背景下提出了一个基于Actor-Critic的强化学习框架。 最后,我们讨论了如何通过用户的行为日志来训练框架,以及如何利用该框架进行列表推荐。

2.1 Problem Statement

我们研究了推荐任务,在该任务中,推荐系统智能体(RA)通过在一系列时间步长上顺序选择推荐项来与环境E(或用户)进行交互,从而最大化其累积奖励。 我们将此问题建模为马尔可夫决策过程(MDP),其中包括一系列状态,动作和奖励。 更正式地说,MDP由五个元素(S,A,P,R,γ)的元组组成,如下所示:

Deep Reinforcement Learning for List-wise Recommendations_第2张图片

用户状态 st 被定义为用户的使用历史,比如用户过去在时间 t 前点击、下载、安装、购买过的 N 个 item。而且这个序列要按照时间顺序。

Deep Reinforcement Learning for List-wise Recommendations_第3张图片

动作 at 被模型基于用户状态 st 计算出来的一个推荐列表(多个item)。K是推荐系统在每个时间推荐的数量

Deep Reinforcement Learning for List-wise Recommendations_第4张图片

奖励R:推荐智能体给出了at之后,用户会给出他的反馈,他可以进行曝光、点击、下单,智能体立即根据这些反馈计算出来奖励

Deep Reinforcement Learning for List-wise Recommendations_第5张图片

状态转移概率P: 状态转移概率 p(s t+1 | st, at),定义了当智能体给用户推荐 at 列表后,用户的状态从 st 转移到了 st+1。如果用户只是曝光了所有的推荐结果,那么s(t+1)=st,而如果用户点击/购买了部分item,然后更新下一个状态st + 1。 更多细节将在以下小节中显示。
Deep Reinforcement Learning for List-wise Recommendations_第6张图片

γ 取值范围是[0,1],定义了我们再计算未来奖励时候的奖励系数,如果当这个值为0的话,我们就只考虑即时奖励,当r为1的话,所有的都会根据当前的 states 被计算出

在实践中,仅使用离散索引来表示项目是不够的,因为推荐系统中的候选集,不管是电商里面的产品也罢、或者是应用商店里面的app也罢,不同的item之间都是有相关关系的,不像英文字母那样。 一种常见的方法是使用额外的信息来表示项目。 例如,我们可以使用品牌,价格,每月销售等属性信息。在本文中,我们使用user-agent交互信息(即用户的历史Item记录),比如用户的浏览item记录。 我们将每个项目视为一个单词,将在一个推荐会话中点击、购买的item视为一个句子。 然后,我们可以通过词嵌入[9]获得密集的低维向量表示。

Deep Reinforcement Learning for List-wise Recommendations_第7张图片

图2说明了MDP中的agent与user的交互。 通过与环境(用户)互动,推荐系统的agent对用户推荐item,而且不是乱推荐的,这份推荐结果要使预期收益最大化,其中包括延迟的回报。 我们遵循以下标准假设:延迟奖励在每个时间步长上被折除γ倍。

通过上面的符号和定义,列表项推荐的问题可以正式定义如下:给定历史MDP,即(S,A,P,R,γ),目标是找到推荐策略π :S→A,可以最大化推荐系统的累积奖励

2.2 在线 User-Agent 交互环境模拟器

为了应对训练我们的框架和离线评估框架性能的挑战,在本小节中,我们提出了一个在线的user-agent交互环境模拟器。 在线推荐过程中,给定当前状态st,RA向用户推荐项目列表,并且用户浏览这些项目并提供她的反馈,即跳过/单击/订购部分推荐项目。 RA根据用户的反馈立即收到奖励r(st,at)。 为了模拟上述在线交互过程,模拟器的任务是基于当前状态和所选择的动作,即f:(st,at)→rt来预测奖励。

Deep Reinforcement Learning for List-wise Recommendations_第8张图片

根据协作过滤技术,具有共同历史记录的人类将对同一项目做出类似的决定。 有了这个假设,我们将state和action总结成state-action对,并随机生成模拟奖励。更具体地说,我们首先建立一个内存M = {m1,m2,···}存储用户的历史浏览历史记录,其中mi是user-agent交互三元组((si,ai)→ri)。 算法1中建立的在线仿真内存,给出来一些历史推荐反馈的case {a1,···,aL},我们可以从历史的session中观察到初始会话的初始状态s0 = {s1,···,sN}(第2行)。每次我们按时间顺序观察K个item(第3行),其中“ l = 1,L; K”表示每次迭代将向前移动K大小的窗口。我们可以观察到当前状态(第4行),当前K项(第5行),以及用户对这些项的反馈(第6行),然后我们将三元组((s,a)→r)存储在内存中(第7行)。最后,我们更新状态(第8-13行) ,然后移至下K个项目。由于我们保持固定长度的状态s = {s1,···,sN},因此,每次用户单击/购买推荐列表中的某些item时,我们都将这些item添加到状态集中,并在该状态的头部删除相同数量的项目,就相当于一个先进先出的队列。例如,RA建议使用以下列表向用户提供五个项目{a1,···,a5},如果用户单击a1、购买a5,则更新为{s3,···,sN,a1,a5}。

Deep Reinforcement Learning for List-wise Recommendations_第9张图片

然后,我们计算了当前 state-action 对pt(st,at)与内存中每个现有历史状态操作对的相似性。 在这项工作中,我们采用余弦相似度为:

第一项测量状态相似性,第二项评估动作相似性。 参数α控制两个相似度的权重,达到平衡的状态。 直观地说,随着相似度在pt和mi之间的增加,将pt映射到奖励ri的机会更高。 因此,可以将pt→ri的概率定义如下:

然后我们可以根据上述概率映射当前state-action对。 这种预测的主要挑战是计算的复杂度,即我们必须计算pt与每个mi∈M之间的成对相似度。为解决这一挑战,我们首先根据奖励将用户的历史浏览进行分组。 请注意,奖励排列的数量通常受到限制。 例如,RA每次向用户推荐两项,用户跳过/点击/订购一项的奖励为0/1/5,则两项奖励的排列有9,即U = {U1, ···,U9} = {(0,0),(0,1),(0,5),(1,0),(1,1),(1,5),(5,0), (5,1),(5,5)},比历史记录的总数小得多。 然后概率可以将pt映射到Ux的过程如下:

Deep Reinforcement Learning for List-wise Recommendations_第10张图片

Deep Reinforcement Learning for List-wise Recommendations_第11张图片

我们假定ri是我们推荐给用户items后,用户给我们的反馈状态的奖励列表。比如 ri的取值是(1,5)也就是说用户对这次的两个推荐结果是一次点击、一次购买。N(x)是用户浏览历史行为分成的组的size。r=u(x)*s(x)。s(x)是state的平均向量,a(x)是推荐列表的平均向量,我们只需要预计算 U(x)、s(x)、a(x)这三个变量的相似度,还可以根据上面公式3中的概率把 pt 分发到 U(x) 这个列表中去逐个计算。在训练模型的时候,RA会每1000个迭代步就更新一次 N(x)、s(x)、a(x)。因为|U|比整个的历史记录中的记录要远小。公式3可以很有效率的把pt分发到奖励列表U(x)中

在训练模型的时候,奖励通常是一个数字,而不是一个向量。因为当把p(t)分发到U(x)中的时候,我们会像下面一样计算整个推荐列表的奖励 rt:

Deep Reinforcement Learning for List-wise Recommendations_第12张图片

其中k是推荐列表中的顺序,K是推荐列表的长度,并且Γ∈(0,1]。等式(4)的推荐对推荐列表的顶部有更高的贡献,这迫使RA更专注于推荐列表的顶部排序

2.3 The Actor Framework

在本小节中,我们提出了一个 list-wise 项目推荐程序,该程序包括两步,即:1)生成 state-specific 的评分功能参数,以及2)生成推荐动作。当前实用的推荐系统依赖于打分或者排序系统,这个系统会依赖用户对系统推荐item进行的反馈,也就是曝光或者购买这些数据来训练模型。 为了解决这个问题,我们提出一个 state-secific 的打分函数,这个会根据用户的当前状态对推荐item进行排序

在上一节中,我们将状态s定义为整个浏览历史,它可以是无限的且效率低下。 更好的方法是只考虑点击、购买的项目,例如最近10个被点击/订购的项目。 一个好的推荐系统应该推荐用户最喜欢的项目。 用户给与正反馈的item代表着有关用户偏好的关键信息,即用户喜欢哪些项。 因此,我们仅将它们用于state-specific的评分功能。

Deep Reinforcement Learning for List-wise Recommendations_第13张图片

我们的 state-specific 在计算的时候,会把当前 state st 中的每一个元素都设置一个权重,就像公式5中说到的那样

其中fθπ是由θπ参数化的函数,从状态空间映射到权重表示空间。 在这里,我们选择深度神经网络作为参数生成函数。

接下来,我们介绍基于上述评分函数参数的动作生成步骤。 在不损失一般性的前提下,我们假设得分函数参数wkt和项目空间I中第i个项目的嵌入ei是线性相关的:

Deep Reinforcement Learning for List-wise Recommendations_第14张图片

注意,用非线性关系扩展它很简单。 然后,在计算完所有项目的得分后,RA会选择得分最高的项目作为动作at的子动作akt。 我们在算法2中提出了list-wise商品推荐算法。

Actor首先生成权重向量列表(第1行)。 对于每个权重向量,RA对项目空间中的所有项目进行评分(第3行),选择得分最高的项目(第4行),然后将此项目添加到推荐列表的末尾。 最终,RA从项目空间中删除了该项目,这阻止了将同一项目推荐给推荐列表。

Deep Reinforcement Learning for List-wise Recommendations_第15张图片

Deep Reinforcement Learning for List-wise Recommendations_第16张图片

2.4 The Critic Framework

Critic 旨在利用逼近器来学习动作值函数Q(st,at),该判断值判断Actor产生的动作at是否与当前状态st相匹配。 然后,根据Q(st,at),Actor以改善性能的方向更新其参数,以在随后的迭代中生成适当的动作。 强化学习中的许多应用都是利用最佳action-value函数Q *(st,at)。它是最优策略可实现的最大预期回报,应遵循Bellman方程[2]:

实际上,要选择一个最佳的a(t + 1),| A | 的值必须达到内积最大化。 这阻止了等式(7)在具有巨大动作空间的实际推荐系统中被采用。 但是,第2.3节中提出的Actor体系结构为Critic输出了确定性操作,从而避免了上述| A |的计算成本。 等式(7)中的评估如下:

Q值函数Q(st,at)是基于状态st和用户的执行动作at的预期收益。

在实际的推荐系统中,状态和动作空间很大,因此无法为每个state-action对估计action-value函数Q(s,a)。 此外,许多state-action对可能不会出现在实际情况中,因此很难更新其值。 因此,使用近似函数来估计动作值函数(即,Q(s,a)≈Q(s,a;θμ))更加灵活和实用。 实际上,action-value函数通常是高度非线性的。 深度神经网络被称为非线性函数的出色近似器。 在本文中,我们将参数为θ μ的神经网络函数逼近器称为深度Q网络(DQN)。 可以通过将损失函数L(θμ)的序列最小化来训练DQN

Deep Reinforcement Learning for List-wise Recommendations_第17张图片

上面公式9中,yt是每次迭代的目标值,当优化损失函数的时候,上一次迭代时候的参数是可以被修改的。在实践中,为了计算的效率,通常来通过随机梯度下降来优化损失函数,而不是计算上述梯度中的全部期望。

2.5 The Training Procedure

图3展示了建议的 user-agent 在线交互仿真器和LIRD的深层强化推荐框架。接下来,我们讨论参数训练过程。 在这项工作中,我们利用DDPG算法[10]来训练所提出框架的参数。 算法3中介绍了针对所提出的框架DEV的训练算法。

Deep Reinforcement Learning for List-wise Recommendations_第18张图片

Deep Reinforcement Learning for List-wise Recommendations_第19张图片

在每次的迭代,都会有两个阶段。(1):过渡时期,lines 8-20,(2):参数更新阶段,lines 21-28。在过渡时期(line 8),给定一个状态 st,RA首先会根据算法2中提出的方法,推荐出来一个列表的 item at={at1,...,atk}。然后智能体从仿真器(line10)获取到用户的反馈 rt,然后更新状态到 st+1,接下来就是算法1中提出来的状态,然后整个程序把 (st,at,rt,st+1)这几个变量储存到内存D中,然后把st=st+1。在参数更新阶段:我们拿出来一个batch的上面 (st,at,rt,st+1),然后更新 Actor、Critic。

在算法中,我们引入了广泛使用的技术来训练我们的框架。 例如,我们利用一种称为“experirnce replay”的技术[11](第3,22行),并引入了独立的评估和目标网络[14](第2,23行),这有助于平滑学习并避免差异参数。 对于目标网络的软目标更新(第27,28行),我们使用τ= 0.001。 此外,我们利用优先采样策略[16]帮助框架从最重要的历史转变中学习。

2.6 The Testing Procedure

在框架训练阶段之后,RA获得训练有素的参数,即Θπ和Θμ。 然后我们可以在模拟器环境上进行框架测试。 模型测试也遵循算法3,即参数在测试阶段不断更新,而与训练阶段的主要区别是在每次推荐session之前,我们将参数重置回Θπ和Θμ,以便在每个推荐阶段之间进行公平比较。 我们可以人为地控制推荐效果的时长,以研究短期和长期绩效。

3 EXPERIMENTS

在本节中,我们将使用来自真实电子商务网站的数据集进行广泛的实验,以评估所提出框架的有效性。 我们主要关注两个问题:(1)与代表性基线相比,我们提出的框架的绩效如何; (2)基于列表的策略如何对性能做出贡献。 我们首先介绍实验设置。 然后,我们寻求以上两个问题的答案。 最后,我们研究了重要参数对框架性能的影响。

3.1实验设置
我们在2017年7月的真实电子商务网站的数据集中评估了我们的方法。我们按时间顺序随机收集了100,000个session的数据(1,156,675个item),并使用前70%的session作为训练集,然后使用30%的会话作为测试集。对于给定的会话,从用户的先前会话中收集初始状态。在本文中,我们将N = 10个先前点击/购买的item用作用户的状态记录。每次RA向用户推荐K = 4个item的列表。根据经验,将曝光/点击/购买的item的奖励r分别设置为0、1和5。item嵌入的维数为50,我们将折现系数γ= 0.75。对于所提出框架的参数,例如K和γ,我们通过交叉验证对其进行选择。相应地,我们还对基线进行了参数调整,以进行公平的比较。我们将在以下小节中讨论有关建议框架的参数选择的更多详细信息。

为了评估所提出框架的性能,我们选择MAP [28]和NDCG [7]作为衡量性能的指标。 我们与传统的“学习排名”方法的不同之处在于,我们将点击项和订购项同时排名,并通过不同的奖励对其进行设置,而不是像“学习排名”问题那样仅对点击项进行排名。

3.2 item推荐的绩效比较

为了回答第一个问题,我们将提议的框架与以下代表性基线方法进行了比较:

•CF:协作过滤[3]是一种通过收集许多用户的偏好信息来自动预测用户兴趣的方法,该假设基于以下假设:人们通常会从与自己品味相近的人那里获得最佳建议。
•FM:因子分解机[20]将支持向量机的优势与因子分解模型结合在一起。 与矩阵分解相比,可以使用维数参数对高阶交互进行建模。
•DNN:我们选择一种具有反向传播技术的深度神经网络作为基线,以推荐给定会话中的项目。 DNN的输入是用户的历史单击/订购项的嵌入。 我们训练DNN输出下一个推荐项目。
•RNN:此基准利用基本RNN来根据点击/订购历史预测用户下一步将购买什么。 为了最大程度地减少计算成本,它仅保留有限数量的最新状态。

•DQN:我们使用深度Q网络[14],其中嵌入了用户的历史点击/订购项(状态)和推荐项(动作)作为输入,并根据等式训练了该基线。 7.请注意,DQN在我们的框架中与Critic共享相同的体系结构。

由于测试阶段是基于模拟器的,因此我们可以人为地控制推荐会话的时长,以研究短期和长期会话的性能。 我们定义短期会议的推荐项目少于50个,而长期会议的推荐项目超过50个。 结果如图4所示。我们进行以下观察:

Deep Reinforcement Learning for List-wise Recommendations_第20张图片

•在短期和长期会话中,CF,FM和DNN的性能都比RNN,DQN和LIRN差,因为CF,FM和DNN会忽略用户浏览历史记录的时间顺序,而RNN可以捕获时间顺序,DQN和LIRN能够在交互过程中不断更新其策略。
•在简短的推荐session中,RNN,DQN和LIRD表现更好。换句话说,RNN模型和DQN和LIRD等强化学习模型都可以推荐与用户的短期兴趣相匹配的适当项目。
•在长时间的推荐session中,DQN和LIRD明显优于RNN,因为RNN旨在最大程度地提高推荐的即时奖励,而强化学习模型(如DQN和LIRD)旨在实现短期和长期奖励之间的权衡。该结果表明,引入强化学习可以提高建议的绩效。
•LIRD的性能类似于DQN,但是LIRD的训练速度比DQN快得多,因为DQN会为所有可能的动作计算Q值,而LIRD可以减少这种冗余计算。该结果表明,LIRD适合于具有巨大作用空间的实用推荐系统。

综上所述,我们可以得出第一个问题的答案–提议的框架在建议绩效方面胜过大多数具有代表性的基准。 与DQN相比,LIRD可以得到有效的培训。

3.3 Performance of List-Wise Recommendations

为了验证按列表推荐策略的有效性,我们研究了建议的框架LIRD在长期会话中如何随着推荐列表长度(即K)的变化而执行,同时固定了其他参数。 注意,K = 1是逐项推荐。结果如图5所示。可以观察到:

•通常,推荐性能会随着推荐列表长度的增加而先增加然后降低。
•当K = 4时,建议的框架实现最佳性能。换句话说,K较小的LIRD可能会丢失同一推荐列表中各项之间的相关性; 而建议的K较大的框架会引入噪声。

总而言之,适当选择K的基于列表的推荐策略可以提高推荐性能,从而回答了第二个问题。

3.4仿真器性能

在线模拟器具有一个关键参数,即α,它控制模拟器中状态和动作相似性之间的权衡,请参见等式(3)。 为了研究此参数的影响,我们研究了拟议的框架LIRD如何在长期会话中与α的变化一起工作,同时固定了其他参数

结果如图4所示。我们注意到,当α= 0.2时,提出的框架可实现最佳性能。 换句话说,当我们将当前state-action 对pt(st,at)映射到奖励时(概率基于pt与内存中的历史历史状态-动作对mi(si,ai)之间的相似性) ,动作相似性会做出更大的贡献,而状态相似性也会影响奖励映射过程。

3.5位置和时间顺序的讨论

我们建立LIRD框架的假设是,在推荐项目的页面中,用户将按照位置顺序浏览项目,即,用户将从上至下观察项目页面。 这样,先前的位置项可以影响后面的位置项,反之亦然。 但是,有时用户可能将商品添加到购物车中,继续浏览后面的位置商品,然后决定是否订购购物车中的商品。 因此,后面的位置项也可以相反地影响先前的项,即,位置顺序并不严格等于时间顺序。 我们将其作为未来的调查方向

4相关工作

在本节中,我们简要回顾与我们的研究相关的作品。 通常,相关工作可以主要分为以下几类。

与本文有关的第一类是传统的推荐技术。推荐系统通过提供用户可能感兴趣的项目列表来帮助用户。在向用户提供有意义的建议方面已经做出了努力。协作过滤[12]是最成功和使用最广泛的技术,其基于这样的假设,即人们通常会从与自己品味相似的人那里获得最佳建议[3]。另一种常见的方法是基于内容的过滤[15],它试图推荐与用户过去订购的商品具有相似属性的商品。基于知识的系统[1]基于特定领域的知识来推荐商品,这些知识涉及某些商品功能如何满足用户的需求和偏好以及该商品对用户的有用性。混合推荐系统基于上述两种或两种以上技术的组合[4]。与该类别密切相关的另一个主题是基于深度学习的推荐系统,它能够有效地捕获非线性和非平凡的用户-项目关系,并能够将更复杂的摘要编码为更高级别的数据表示形式。层[31]。例如,Nguyen等人[18]。提出了一种基于CNN的个性化标签推荐系统。它利用构造层和最大池化层从图像补丁中获取视觉特征。吴等[29]为现实世界的电子商务网站设计了基于会话的推荐模型。它利用基本的RNN来根据点击历史预测用户下一步会购买什么。这种方法有助于在计算成本和预测准确性之间进行权衡。

第二类是关于推荐系统的强化学习,这与传统的项目建议不同。在本文中,我们将推荐过程视为用户和智能体之间的顺序交互。并利用强化学习来自动学习最佳推荐策略。实际上,强化学习已在推荐领域得到了广泛的研究。 Shani等人[23]基于MDP的CF模型。通过使用过去历史的有限而非无限窗口来定义当前状态,可以将其视为近似部分可观察的MDP(POMDP)。为了减少POMDP的高计算和表示复杂性,已经开发了三种策略:值函数逼近[6],基于策略的优化[17、19]和随机抽样[8]。此外,Mahmood等[13]我们采用强化学习技术在会话推荐器中观察用户的响应,目的是最大化数值累积奖励函数,以模拟用户从每个推荐会话中获得的收益。 Taghipour等人[26,27]将网页推荐建模为一个Q-Learning问题,并学会了将Web使用数据作为操作来提出建议,而不是从数据中发现明确的模式。该系统继承了不断学习过程中强化学习的内在特征。 Sunehag等人[24]引入的代理可以成功解决高维组合板岩动作空间的顺序决策问题。

5结论
在本文中,我们提出了一种新颖的框架LIRD,该模型将推荐会话建模为马尔可夫决策过程,并利用深度强化学习自动学习最佳推荐策略。基于强化学习的推荐系统具有两个优点:(1)它们可以在交互过程中不断更新策略,(2)他们能够学习一种策略,该策略可以最大化用户的长期累积奖励。与以前的工作不同,我们提出了一个列表式推荐框架,该框架可用于具有较大且动态项目空间的方案中,并可显着减少多余的计算。请注意,我们设计了一个在线用户与代理交互的环境模拟器,该模拟器适用于在在线应用推荐系统之前进行离线参数的预训练和评估。我们根据来自真实电子商务站点的数据进行广泛的实验来评估我们的框架。结果表明:(1)我们的框架可以提高推荐性能; (2)列表策略优于逐项策略。

有几个有趣的研究方向。 首先,除了我们在这项工作中使用的物品的位置顺序外,我们还想研究更多的顺序,例如时间顺序。 其次,我们想通过更多的座席与用户交互模式进行验证,例如,将项目添加到购物车中,并研究如何对它们进行数学建模以获得建议。 最后,在工作中提出的框架是相当笼统的,我们想研究提出的框架的更多应用,特别是对于具有正(负)信号的应用。

 

 

你可能感兴趣的:(AI爱好者社区)