序列推荐: Learning Reinforced Dynami
摘要
近年来,序列推荐在解决许多在线服务中的信息过载问题方面发挥了重要作用。目前的序列推荐侧重于在任何时候为每个用户学习固定数量的表示,为用户提供单个表示或多个兴趣表示。然而,当用户探索电子商务推荐系统上的物品时,该用户的兴趣数量可能会随着时间的推移而变化(例如,增加/减少一个兴趣),这会受到用户不断变化的自我需求的影响。此外,不同的用户可能有不同数量的兴趣。探索个性化的动态用户兴趣数量,并据此学习一组动态的用户兴趣表示是有意义的。本文提出了一个用于推荐系统(RDRSR)的具有动态数量兴趣表示的强化序列模型。
具体而言,RDRSR由动态兴识别(dynamic interest discriminator, DID)模块和动态兴趣分配器(dynamic interest allocator, DIA)模块组成。
- DID模块通过双向自注意和Gumble Softmax学习整体的序列信息,探索用户兴趣的数量。
- DIA模块将历史单击项分配到一组子序列中,并构造用户的动态兴趣表示。我们将分配问题形式化为马尔可夫决策过程(MDP),并从策略中为每个物品采样一个动作,以确定它属于哪个子序列。
此外,在真实数据集上的实验证明了我们的模型的有效性。
Main Story
推荐系统可以缓解信息过载问题,改善用户体验。传统的推荐系统大多侧重于获取一般用户的兴趣,如协同过滤。近年来,越来越多的研究人员研究了序列推荐问题,以捕获动态用户行为,该问题假设用户信息需要随时间变化。
用户通常与从概念上随时间不同的几种类型的项物品进行交互。一些研究人员提出各种方法来模拟用户历史行为中的多种兴趣(multi-interest modeling)。目前所有的多兴趣建模方法都依赖于预先给定的固定数量来生成相应数量的表示,假设所有用户的兴趣数量相同且不随时间变化。如下图所示:
然而,固定数量的兴趣假设在实际应用中不一定正确。
例如,一个用户可能有非常广泛的兴趣,而另一个用户有更集中的意图。
上图显示了两个用户,每个用户都有一系列交互(即点击)物品,用户 A 总体上有三个兴趣(家具、电子产品和运动产品),而用户 B 只有两个兴趣((家具和电子产品) .另一方面,随着时间的推移,在用户行为中,用户可能有更多/更少的兴趣。
用户A一开始只对家具感兴趣,然后A逐渐开始对电子产品和运动产品表现出兴趣。所以我们可以看到用户A的兴趣数量从1变为3。因此,对固定数量的兴趣进行建模并不能完全模拟真实的用户意图。如果用户的兴趣比给定的固定数量多,那么用户的意图就不能准确表示。另一方面,如果用户的兴趣小于给定的固定数字,那么用户的意图表示就带有噪声。因此,考虑用户的动态兴趣数很重要。
本文提出了一种新算法来学习用户行为序列的动态嵌入表示,其中每个嵌入表示对用户意图的一个方面进行编码。
由于阅读该文时,该论文为预印状态,其intro可能会有较大调整
Method
1. Overview
模型的输入是用户行为序列,这些物品被送入嵌入层并转换为物品嵌入。 动态兴趣识别器DID专注于使用双向自注意力和 Gumble-Softmax 的来学习动态兴趣数。 动态兴趣分配器DIA则根据 DID 中的学习兴趣数量激活相应的分配策略。 然后 DIA 将点击物品分配到具有激活策略的子序列中,并通过平均池化方法形成不同的兴趣。 最后,通过策略来决定目标物品属于哪个子序列,并使用相应的用户兴趣表示来计算兴趣和将用于预测的目标物品之间的奖励。Problem definition
-
input:用户交互序列
-
ouput: 预测当前序列下一个交互物品
-
embedding操作: item embedding 与 user
embedding; 对于item embedding 在输入模型时候添加position embedding(可学习)
2. Dynamic Interest Discriminator
用户的动态兴趣数是随着时间的推移而演变和变化的,一个新的点击物品将表明用户获得更多兴趣或减少兴趣,因为他可能会得到他想要的东西。 DID旨在通过用户当前的点击顺序找到用户动态兴趣数量。
首先,使用双向架构自注意力块,点击序列中的兴趣相关项目聚集得更紧密,并获得更多信息的物品表示: 即最基本的self attention: 然后再过两层的前馈神经网络: 然后通过注意力机制,计算用户表征和当前序列表征的象形, 获取联合用户通用表示(user general purpose representation):可以看到以上即为通过基本的transformer结构来得到一个偏好表征f,它是k维的特征,每个特征对应一个偏好数量的概率值,用来选取最后的动态兴趣数量。
链接:【数学】 Gumbel Softmax - 张楚珩的文章 - 知乎https://zhuanlan.zhihu.com/p/115386452
基于上面得到f向量,使用Gumbel Softmax来选择计算概率分布,确定动态兴趣数量;若使用softmax来完成生成的话,该过程不可导,导致无法end-to-end训练算法。 argmax通过gumbel softmax变为下式:3. Dynamic Interest Allocator
DIA 将点击序列拆分为不同的子序列,其中每个子序列代表用户的兴趣,我们使用平均池化方法来获取用户对这些子序列的兴趣表示。 DIA以马尔可夫决策过程(MDP)的形式将分配点击序列问题形式化,并对每个项目进行采样动作形式策略以确定其属于哪个子序列。 我们的策略 可以在做出决定时预见未来的顺序信息,这可以提供有效的线索来确定物品级别的相关性,而无需直接监督信号。
形式化地把任务表示为:使用强化学习算法将序列划分到h个子序列中,每个子序列对应一个用户兴趣表征。
当前时刻,状态表征为, 动作空间为, 即选择子序列分割,那么策略表示为:
对于每个子序列给定初始化的兴趣表征: ,每个向量为d维度向量,并使用用户embedding来初始化。
在T时刻,我们通过策略得到当item所属的子序列,然后相应地对子序列的表征进行更新:
目前原文写作比较混乱... 该部分为译者凭上下文理解所写:
即使我们使用了硬分配,但当我们定义状态转移时, 一些来自其他子序列的信息也被转换为动态兴趣表示,这使提出的模型更加可靠。
Reward setting
通过以上的DIA分配过程,得到了多兴趣表征,那么下面就是要将多兴趣表征和目标物品进行关联。仍然写的比较混乱。。。。
原文未提出详细的说明,我理解应该是下一个商品分配到的兴趣表征,然后通过采样的方法计算目标商品和目前选出的目标兴趣表征的关联:
这样的期望值计算过程没有用到生成的其他兴趣表征,只有当target物品的兴趣选择正确, reward才是最优结果. 为了推进策略学习,文中还计算了所有生成的兴趣簇和target item的关联: 公式应该有误, 应该是e_target为了正交地执行学习的动态多兴趣表示,即使得兴趣间差异尽可能大,计算所有不同生成的动态兴趣表示之间内积的绝对值的平均值, 如下: 若差异越大则内积和往往越小,那么计算期望时会加上负号。
最后的期望计算如下:
Model Optimization
最终的loss如下:
实验
问题:
- 好像没有讨论算法的复杂度,对RL模块介绍也不够清楚
小结
- 本文围绕序列推荐中的多兴趣建模问题出发,针对现有方法采用兴趣数量固定的方法缺陷,提出使用DID进行动态兴趣数量分配; 并使用RL进行模型优化
END
本人简书所有文章均为原创,欢迎转载,请注明文章出处 。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问本人简书主页查看最新信息https://www.jianshu.com/u/40d14973d97c