会议:IJCAI'19
主题:序列推荐
paper:https://www.ijcai.org/proceedings/2019/0190.pdf
code:https://github.com/ouououououou/DIB-PEB-Sequential-RS
1. 准备知识
- 序列推荐:传统的协同过滤推荐,是以一种静态的方法构造user-item间的交互,所能捕捉的用户的偏好较为单一。相反,序列推荐是以一种动态即序列的方法构造user-item间的交互,从其所包含的序列依赖关系中可以捕捉到用户的消费习惯、意图和商品的消费趋势等,有利于更精准地、个性化地和动态地推荐。例如,给曾购买过GPU的用户推荐GPU风扇等。
2. 简介
学习用户多尺度的偏好,例如长期偏好和短期偏好,有利于更加精准的预测用户行为。现有的方法可以大致分为三类:
- 第一类旨在基于用户行为模式的启发式假设,通过时间矩阵分解来建模用户偏好漂移的方法;
- 第二类则侧重于用户偏好于刚刚交互的前几项的短期依赖性,典型的方法是基于马尔可夫链的推荐的方法;
- 第三类是近几年大火的基于神经网络建模用户偏好的方法。这类方法可以基于RNN、CNN几它们的变体去捕捉用户交互item之间的长期和短期依赖性。本文沿着这一方向,设计了一种端到端的神经序列模型去完成序列推荐的任务,。
(1) 现有神经序列模型存在的不足之处:
- 简单地认对于所有用户来说,item的表征静态、固定的,即不会随着时间的变迁、用户的切换而变化。
- user与item相关性的预测过于单一,例如,通过user与item各自表征的内积来衡量。这主要是因为现有的工作对于一个用户只学习一种向量表示,这就导致了模型最终预测的单一性。本文针对一个用户会生成不同尺度上的向量表示来衡量用户不同角度的偏好。
(2) 本文重点:
- 设计Dynamic Item Block (DIB) 模块去学习item的动态向量表示。主要是通过聚合在该时间步之前对该item有过交互的用户的向量表示来得到的。这部分称之为类似用户(similar users),并通过注意力机制确定不同相似用户的对于item表征学习的重要程度。
- 提出Prediction Enhancing Block (PEB)模块,将用户的向量表示投影到多个尺度上,在此基础上,可以相应地进行多个预测,然后集中在一起进行增强学习。
下面将逐个突破这两个模块,并介绍完整的序列推荐模型。
3. Dynamic Item Block (DIB)
DIB可以看作是一个transformer,它以user 的向量表示和item 的向量表示为输入,然后将item的向量表示transformer成一个与用户相关的向量表示。具体步骤为:
- step1: 寻找相似用户(similar users)。本文相似用户指的是与item 有过互动的其他用户,下面以一个例子来具体说明这一过程。
假设现在DIB的输入为user 和item ,寻找与item 有过交互的用户,并按交互时间排序。在交互过的用户列表中找到的确切位置,称之为时间步。那么,在这一时间步之前交互的用户即为的相似用户,如,,,,最终保留K个用户。 - step2: 聚合相似用户的向量表示为作为item 向量表示学习过程中的补充特征。但是,不同用户与item之间的相关性并不完全相同,因此采用attention机制,以区别不同用户向量表示对item 向量表示学习的贡献程度。将用户的相似用户标记为,对应的向量表示为。那么可通过如下两个公式得到:
最终,item 与用户相关(user related)的一个向量表示就可以表示成:
这篇文章将merge定义为,其中参数衡量了补充特征的重要性。
4. Prediction Enhancing Block (PEB)
PEB模块主要将用户的表征映射到不同的尺度上,以便同时预测出用户在不同尺度上与item的相关性。
- step1 : 通过一个全连接层将用户的向量表示映射成个向量表示,其中第个向量表示用符合。那么,就可以预测用户在第个尺度上,选择每个item 的可能性。但是,由于item 数量是庞大的,这篇文章又采用负采样策略降低计算复杂度。具体为
其中,为对应负样本集合。 - step2 :将个按照不同的重要程度,整合成一个值。其中,第个预测值对最终值的贡献程度是通过将通过另一个全连接层映射为个值得到的。
整个网络的损失函数设计为
其中,。损失函数的核心在于最大化正样本的并最小化与的差距,最小化负样本的并最大化与之间的差距。参数用以平衡两个优化目标。
每个尺度上的预测值,与终值的相关程度就可以标准化为:
最终,用户与item 互动的概率可以预测为
5. Models with Sequential Building Blocks
基于 DIB 和 PEB,这篇文章提出了两个顺序模型,分别为:GRU-DIB-PEB和 MN-DIB-PEB,下面依次介绍之。
(1) GRU-DIB-PEB
该模型,首先通过DIB将用户历史交互过的item 向量表示转换成与用户相关向量表示。接着,通过GRU将所有的压缩成一个固定向量。最后,将与用户向量表示concat成为用户最终的向量表示。然后通过PEB模块,就能得到用户与item 交互的概率。
(2) MN-DIB-PEB
该模型,主要采用了记忆网络的思想去生成。
6. 总结
DIB有助于构建具有相似用户作为上下文信息的更好的项目表示,而PEB则以多尺度的方式增强预测,以获得更高的推荐可靠性。