Large-scale Interactive Recommendation with Tree-structured Policy Gradient

最近读了篇论文,链接http://export.arxiv.org/pdf/1811.05869,没什么事情可做,将原文翻译了下,了解下是怎么用树结构做推荐系统的。

Large-scale Interactive Recommendation with Tree-structured Policy Gradient

摘要:强化学习(RL)最近被引入交互式推荐系统(IRS),因为它可以从动态交互中学习并规划长期性能。由于IRS总是有上千个item(数千个动作)要推荐,大多数现有的基于RL的方法无法处理如此大的离散动作空间问题,从而变得效率低下。现有的工作试图利用DDPG框架来处理大型离散动作空间问题,但存在连续动作表示(actor网络的输出)与真实离散动作之间的不一致问题。为了避免这种不一致并实现高效率的推荐效果,本文提出了一种树结构策略梯度框架(TPGR),其中在item上构建平衡的层次聚类树并选择一个item公式化为寻找从树的根到某个叶子的路径。在两个数据集,精心设计的环境上进行实验,结果表明我们的模型推荐性能最好,推荐效果也比当前最先进的方法有显著的提升。

介绍:在本文中提出了一个树结构的策略梯度推荐框架(TPGR)同时实现了高性能和高效率。在TPGR框架中,在item上构建平衡的层次聚类树并选择一个item公式化为寻找从树的根到某个叶子的路径,这大大降低了训练和决策阶段的时间复杂性。

我们利用策略梯度技术来学习如何做出推荐决策,从而最大化长期奖励。据我们所知,这是大规模交互式推荐系统构建树结构随即策略的第一项工作。

此外,为了使用公共可用的离线数据集来证明所提出的方法的合理性,我们构建了一个环境模拟器来模拟具有源自真实世界数据的原则的在线环境。在两个数据集上的表现显示,与最先进的方法相比,TPGR具有卓越的性能和显著的效率提升。

Proposed Model
问题定义

我们使用 MDP 对推荐过程进行建模,其中关键组件定义如下。

• 状态。状态 s 被定义为用户和推荐系统之间的历史交互,可以通过循环神经网络 (RNN) 将其编码为低维向量(见图 2)。

• 动作。动作a 是选择推荐item,例如歌曲或视频等。

• 奖励。在我们的公式中,所有与推荐系统交互的用户形成了在状态 s 接收到动作 a 后返回奖励 r 的环境,这反映了用户对推荐项目的反馈。

• 转移概率。由于状态是历史交互,因此一旦推荐新item并给出相应的用户反馈,则确定状态转换。

一个推荐过程,它是一系列用户状态、推荐动作和用户反馈,例如
在这里插入图片描述
在这种情况下,序列从用户状态 s1 开始,然后在推荐系统执行推荐动作 a1 后过渡到 s2,环境给出奖励 r1,表示用户对推荐动作的反馈。当满足一些条件时序列在特定状态s_n+1终止。不失一般性,我们将一个episode的n设置为定长。

TPGR 树结构策略梯度推荐

为了处理大的离散动作空间问题并实现高推荐效率,我们建议在item上建立一个平衡的层次聚类树(图 1 左),然后利用策略梯度学习在构造树的每个非叶节点上选择最佳子类的策略的技术(图 1 右)。具体来说,在聚类树中,每个叶子节点都映射到某个item(图1左侧),每个非叶子节点都与一个策略网络相关联(注意,右侧部分只显示了三个但不是所有的策略网络)图 1 为便于演示)。因此,给定状态并由策略网络引导,从根节点到叶节点执行自上而下的移动,并向用户推荐相应的item

item上的平衡层次聚类

层次聚类试图建立一个聚类的层次结构,即聚类树。一种流行的方法是分裂方法,其中原始数据点被分成几个集群,每个集群又被进一步分成更小的子集群。重复划分,直到每个子集群只与一个点相关联。

在本文中,我们的目标是对item进行平衡的层次聚类,其中构建的聚类树应该是平衡的,即对于每个节点,其子树的高度最多相差 1,并且子树也是平衡的。为便于表述和实现,还要求每个非叶子节点具有相同数量的子节点,记为c,除了叶子节点的父节点,其子节点的数量最多为c。

我们可以按照以下聚类算法对item执行平衡层次聚类,该算法以一组向量和一个整数 c 作为输入,将向量划分为 c 个平衡簇(即,每个簇的item数彼此相差最多一)。

在本文中,我们考虑了两种聚类算法,即基于 PCA 的聚类算法和基于 K-means 的聚类算法,其详细过程在附录中提供。通过重复应用聚类算法,直到每个子聚类只与一个item相关联,从而构建平衡聚类树。因此,将平衡聚类树的item集和深度分别表示为 A 和 d,我们有:

在这里插入图片描述
因此,给定 A 和 d,我们可以设置 在这里插入图片描述其中 ceil(x) 返回不小于 x 的最小整数。

item上的平衡层次聚类通常在item的(向量)表示上执行,这可能在很大程度上影响获得的平衡聚类树的质量。在这项工作中,我们考虑了三种产生这种表示的方法:

基于评级。一个item表示为user-item评分矩阵的对应列,其中每个元素(i,j)的值是用户i对item j的评分。

基于 VAE每个item的评分向量的低维表示可以通过使用变分自动编码器 (VAE) 来学习。

基于MF。矩阵分解 (MF) 技术也可用于学习每个item的表示向量。
在这里插入图片描述
在这里插入图片描述
TPGR 的体系结构 树结构策略梯度推荐 (TPGR) 的体系结构基于构建的聚类树。为了简化说明,我们假设有一个状态点来指示当前所在的节点。因此,选择一个item就是将状态点从根移动到某个叶子。树的每个非叶子节点都与一个策略网络相关联,该网络被实现为一个全连接的神经网络,在输出层上有一个 softmax 激活函数。考虑状态点所在的节点v,与v相关的策略网络以当前状态为输入,输出v的所有子节点的概率分布,表示移动到v的每个子节点的概率。

以8个item的推荐场景为例,构建的树深度为3的平衡聚类树如图1(左)所示。对于给定的状态 st,状态点最初位于根(节点 1),并根据对应于根(节点 1)的策略网络给出的概率分布移动到其子节点之一(节点 3)。并且状态点不断移动,直到到达叶节点,并向用户推荐相应的item(图 1 中的项目 8)。

我们使用 REINFORCE 算法来训练模型,而其他策略梯度算法也可以类似地使用。目标是最大化预期的折扣累积奖励,即
在这里插入图片描述
其相对于参数的近似梯度之一是:
在这里插入图片描述其中 πθ(a|s) 是在状态 s 采取动作 a 的概率,Qπθ(s, a) 表示从 s 和 a 开始的预期折扣累积奖励,可以通过以下采样轨迹经验估计策略 πθ。

算法 1 中给出了训练过程的算法描述,其中 I 表示树的非叶节点的数量。为 TPGR 采样一幕时(算法2),pt 表示在时间步长 t 从根到叶子的路径,它由 d 个选择组成,每个选择表示为 1 和 c 之间的整数,表示要移动的相应子节点。从根开始连续选择对应于 pt 的选择,我们沿着 pt 遍历节点,最终到达叶节点。因此,路径 pt 映射到推荐项目 at,因此在给定状态 st 选择的概率是沿 pt 做出每个选择(到达 at)的概率的乘积。

时间和空间复杂度分析 根据经验,树深度 d 的值设置为一个小的常数(在我们的实验中通常设置为 2)。因此,每个策略网络的时间(用于做出决定)和空间复杂度都是 O©(更多细节见附录)。

考虑到在算法 2 中给定特定状态对动作进行采样所花费的时间,TPGR 做出 d 个选择,每个选择都基于最多具有 c 个输出单元的策略网络。因此,TPGR 中采样一项的时间复杂度为在这里插入图片描述
与采样动作的时间复杂度为 O(|A|) 的普通基于 RL 的方法相比,我们提出的 TPGR 可以显着降低时间复杂度。

每个策略网络的空间复杂度为O©,构建的聚类树的非叶节点数(即策略网络的数量)为:
在这里插入图片描述

因此,TPGR 的空间复杂度为在这里插入图片描述
与普通 的基于RL的方法空间复杂度相同。

状态表示

在本节中,我们介绍了这项工作中采用的状态表示方案,其详细信息如图 2 所示。
在这里插入图片描述
在图 2 中,我们假设推荐系统正在执行第 t 次推荐。输入是在时间步长 t 之前推荐的商品 ID 和相应奖励(用户反馈)的序列。每个项目 ID 都映射到一个嵌入向量,该向量可以以端到端的方式与策略网络一起学习,或者可以通过一些监督学习模型(例如矩阵分解)进行预训练,并在训练时固定。每个奖励都通过一个简单的奖励映射函数映射到一个单热向量(详见附录)。

为了对历史交互进行编码,我们采用了一个简单的循环单元(SRU),这是一种快速训练的 RNN 模型,来学习隐藏表示。此外,为了进一步整合更多的反馈信息,我们构建了一个向量,表示为图 2 中的user_statu s_t−1,其中包含一些统计信息,例如时间步 t 之前的正奖励、负奖励、连续正负奖励的数量,然后将其与 SRU 生成的隐藏向量连接以获得时间步长 t 的状态表示。

Experiments and Results
Datasets

MovieLens (10M) Netflix

Data Analysis

不失一般性,我们将高于 3 的评分视为正面评分(注意最高评分为 5),其他评分为负面评分。对于在其之前最多有 b 个连续正(负)评级的评级,我们将其连续正(负)计数定义为 b。因此,每个评分都可以与特定的连续正(负)计数相关联,我们可以计算具有相同连续正(负)计数的评分的平均评分。

我们给出了相应的平均评分 .图 3 中的连续正(负)计数,我们可以清楚地观察到用户评分行为的顺序模式:用户倾向于对具有较大连续正计数(绿线)的项目给予线性更高的评分,反之亦然反之(红线)。原因可能是用户之前消费过的越满意(令人失望)的物品,她获得的愉悦(不高兴)就越多,因此,她倾向于对当前的物品给予更高(更低)的评分。
在这里插入图片描述

Environment Simulator and Reward Function

为了训练和测试基于 RL 的推荐算法,一种直接的方法是进行在线实验,其中推荐系统可以直接与真实用户进行交互,但是,这对于平台来说可能过于昂贵且具有商业风险(Zhang、Paquet,和霍夫曼 2016)。因此,在本文中,我们通过构建环境模拟器来模拟在线环境,专注于在公共可用离线数据集上评估我们提出的模型。

具体来说,我们将数据集的评分归一化到 [−1, 1] 范围内,并使用归一化值作为相应推荐的经验奖励。为了将序列模式考虑在内,我们将序列奖励与经验奖励相结合来构建最终奖励函数。在每一集内,环境模拟器随机采样一个用户 i,推荐系统开始与采样的用户 i 交互直到该集结束,向用户 i 推荐项目 j 的奖励,表示为动作 a, 在状态 s 给出为:
在这里插入图片描述

Main Experiments

实验详情

对于每个数据集,将用户分为两部分,其中 80% 的用户用于训练,而另外 20% 的用户用于测试。在我们的实验中,两个数据集的情节长度设置为 32,奖励函数中的权衡因子 α 分别设置为 0.0、0.1 和 0.2。在每一集中,一旦推荐了一个项目,它就会从可用项目集中删除,因此在一个集中不会出现重复的项目。

对于 DDPG-KNN,较大的 k(即最近邻居的数量)会导致更好的性能,但效率会更差,反之亦然(Dulac-Arnold 等人,2015 年

对于 TPGR,我们将聚类树深度 d 设置为 2,并在构建平衡树时应用基于 PCA 的聚类算法和基于评分的项目表示,因为它们给出了最佳的经验结果,如下一节所示。TPGR 的实现代码 3 可在线获得。为了公平比较,我们考虑k值分别设置为1、0.1N和N(N表示项目数)的三种情况.

所有模型的所有其他超参数都是通过网格搜索精心选择的。

评估指标 由于基于 RL 的方法的目标是获得最佳的长期奖励,我们使用测试集中每个用户的每个推荐的平均奖励作为一个评估指标。此外,我们采用 Precision@k、Recall@k 和 F1@k(Herlocker 等人,2004 年)作为我们的评估指标。具体来说,我们将 k 的值设置为 32,与剧集长度相同。对于每个用户,所有评分高于 3.0 的项目都被视为相关item,其他的被视为无关。

相关结果与分析 在我们的实验中,所有模型都根据四个指标进行评估,包括每个推荐的平均奖励、Precision@32、Recall@32 和 F1@32。关于奖励函数中的两个数据集和三种不同的权衡因子 α 设置,汇总结果列于表 2 中。

从表 2 中,我们观察到我们提出的 TPGR 在所有设置中执行了所有比较的方法,在大多数情况下,显着性检验 (Ruxton 2006) p的值小于 10−6(表 2 中的 * 标记),这证明了 TPGR 的性能优势。

当将基于 RL 的方法与传统和基于 MAB 的方法进行比较时,发现基于 RL 的模型在大多数情况下提供卓越的性能并不令人惊讶,因为它们具有长运行规划和动态适应,这是其他方法所缺乏的。在所有基于 RL 的方法中,我们提出的 TPGR 实现了最佳性能,这可以解释为两个原因。首先,项目的层次聚类将额外的项目相似性信息合并到我们的模型中,例如,相似的项目往往会聚集到聚类树的一个子树中。其次,与使用一个复杂的神经网络进行决策的普通基于 RL 的方法不同,我们建议进行树结构分解并采用一定数量的具有更简单架构的策略网络,这可能会减轻训练过程并导致更好的性能。

此外,随着权衡因子 α 的值增加,我们观察到 TPGR 相对于 HLinearUCB(即我们实验中最好的非 RL 方法)在平均奖励方面的改进变得更加显着,这表明TPGR 确实具有捕获序列模式以最大化长期回报的能力。
在这里插入图片描述
时间比较 在本节中,我们比较了基于 RL 的模型在两个数据集上的效率(就训练和决策阶段消耗的时间而言)。为了使时间比较公平,我们取消了一个集中没有重复项的限制,以避免涉及掩码机制,因为掩码机制的不同实现的效率有很大差异。此外,所有模型均采用相同架构的神经网络,由三个全连接层组成,隐藏单元的数量分别设置为32和16,并在4核8线程的同一台机器上进行实验CPU (i7-4790k, 4.0GHz) 和 32GB RAM。我们记录了一个训练步骤的消耗时间(即采样 1000 集并更新具有这些情节的模型)以及为每个模型做出 100 万个决策所消耗的时间。

如表 3 所示,与 DQN-R 和 DDPG-R 相比,TPGR 在训练和决策阶段消耗的时间要少得多。k 设置为 1 的 DDPG-KNN 获得了很高的效率,但是这是没有意义的,因为它实现了非常差的推荐性能,如表 2 所示。在另一种 k 设置为 N 的情况下,DDPG KNN 的时间复杂度很高,这使得使它甚至比 DQN-R 和 DDPG-R 慢得多。因此,DDPG KNN 无法同时实现高效率和高效率。与 DDPG-KNN 在有效性和效率之间进行权衡,即设置 k 为 0.1N 的情况相比,我们提出的 TPGR 在有效性和效率方面都实现了显着提高。
在这里插入图片描述

Influence of Clustering Approach

由于 TPGR 的体系结构基于平衡层次聚类树,因此必须选择合适的聚类方法。在上一节中,我们介绍了两个聚类模块,基于 K-means 和基于 PCA 的模块,以及三种表示项目的方法,即基于评分的方法、基于 MF 的方法和基于 VAE 的方法。因此,有六种组合可以进行平衡的层次聚类。将 α 设置为 0.1,我们根据 Netflix 数据集的平均奖励来评估上述六种方法。结果如图 4(左)所示。
在这里插入图片描述
如图 4(左)所示,将基于 PCA 的聚类模块与基于评分的项目表示相结合可实现最佳性能。造成这种结果的原因有两个。首先,基于评分的表示保留了用户和物品之间的所有交互信息,而基于 VAE 和基于 MF 的表示都是低维的,降维后保留的信息少于基于评分的表示.因此,使用基于评级的表示可能会导致更好的聚类。其次,作为簇数c(即子节点非叶节点的数量)很大(Netflix 数据集为 134,树深度设置为 2),从基于 K-means 的方法导出的聚类树的质量将对中心点的初始化选择和距离函数等,这可能会导致比基于 PCA 的方法等更稳健的方法更差的性能,如我们在实验中所观察到的。

Influence of Tree Depth

为了显示树深度如何影响 TPGR 的性能和训练时间,我们将树深度从 1 改变到 4 并记录相应的结果。如图 4(右)所示,绿色曲线显示了每个训练步骤相对于不同树深度所消耗的时间,其中每个训练步骤包括对 1 千个片段进行采样并使用这些片段更新模型。需要注意的是,树深度设置为 1 的模型实际上没有树结构,只有一个策略网络,以状态作为输入,并给出所有项目的策略可能性分布。因此,树结构模型(即树深度设置为 2、3 和 4 的模型)确实显着提高了效率。图 4(右)中的蓝色曲线展示了 TPGR 在不同树深度下的性能,从中我们可以看到,树深度设置为 2 的模型实现了最佳性能,而其他树深度导致了轻微的折扣表现。因此,在使用 TPGR 时,将聚类树的深度设置为 2 是探索合适树深度的一个很好的起点,这可以显着降低时间复杂度并提供出色甚至最佳的性能。

提高了效率。图 4(右)中的蓝色曲线展示了 TPGR 在不同树深度下的性能,从中我们可以看到,树深度设置为 2 的模型实现了最佳性能,而其他树深度导致了轻微的折扣表现。因此,在使用 TPGR 时,将聚类树的深度设置为 2 是探索合适树深度的一个很好的起点,这可以显着降低时间复杂度并提供出色甚至最佳的性能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值