《Exploring Periodicity and Interactivity in Multi-Interest Framework for Sequential Recommendation》
序列推荐系统缓解了信息过载的问题,在文献中引起了越来越多的关注。大多数先前的工作通常基于用户的行为序列获得一个 overall representation ,这不能充分反映用户的 multiple interests 。为此,我们提出了一种称为PIMI 的新方法来缓解此问题。PIMI 可以同时考虑 item 序列中的周期性(periodicity)和交互性(interactivity ),从而有效地建模用户的 multi-interest representation 。具体而言,我们设计了一个周期感知模块(periodicity-aware module )来利用用户行为之间的时间间隔信息。同时,我们提出了一种巧妙的 graph 来增强用户行为序列中 items 之间的交互性,该 graph 可以同时捕获全局的 item features 和局部的 item features 。最后,基于获得的 item representation ,我们采用一个 multi-interest extraction 模块来描述用户的 multiple interests 。在 Amazon 和 Taobao 两个真实数据集上进行的大量实验表明,PIMI 的表现始终优于 SOTA 的方法。
序列推荐系统(Sequential recommendation systems )在帮助用户缓解信息过载的问题方面发挥着重要作用。在电商、社交媒体和音乐等许多应用领域,序列推荐系统可以帮助优化 CTR 等业务指标。序列推荐系统根据用户行为的时间戳对 items 进行排序,并专注于 sequential pattern mining 从而预测用户可能感兴趣的 next item 。大多数现有方法结合用户的偏好和 item representation 来进行预测,因此序列推荐的研究主要关注如何提高用户的和项目的 representation 质量。
由于序列推荐系统具有很高的实用价值,人们已经提出了多种序列推荐方法并取得了良好的效果。例如:
GRU4Rec 是第一个应用 RNN 从而建模序列信息并用于推荐的工作。
《Self-attentive sequential recommendation》 提出了 attention-based 的方法来捕获序列中的高阶的动态的信息。
最近,一些研究(例如《Graph convolutional neural networks for webscale recommender systems》)利用基于 Graph Neural Network: GNN 的方法来获取用户的和项目的 representation ,以供下游任务使用。
然而,我们观察到,大多数先前的研究都获得了用户行为序列的一个 overall representation ,但一个 unified user embedding 很难反映用户的 multiple interests 。在文献中,很少有研究尝试建模用户的 multi-interest representation 从而缓解单个向量的表达能力不足的问题。
最近,MIND 利用基于胶囊网络的动态路由(dynamic routing )方法,将用户的历史行为自适应地聚合到用户的多个 representation 向量中,这可以反映用户的不同兴趣。遵从 MIND, ComiRec 利用自注意力机制和动态路由方法从而用于 multi-interest extraction 。然而,这些方法有以下局限性:
(1):它们仅使用时间信息对 items 进行排序,而忽略了 behaviors of different interests 在用户序列中具有不同的时间周期。例如,在 Figure 1 中,给定一个用户的行为序列,用户可能对日用品(daily necessities )、苹果的产品、以及零食(snacks )感兴趣。他/她可能每个月都会购买日用品,但他/她只在苹果新产品发布期间关注苹果产品。因此,对日用品感兴趣的时间间隔约为一个月,而对苹果产品感兴趣的时间间隔更长,约为一年。综上所述,用户对不同类型 items 的行为有不同的周期性。
(2):没有有效地挖掘 items 之间的交互性。这些方法仅对序列中相邻 items 之间的关联(correlation)进行建模,但在 multi-interest extraction 中没有考虑 items 之间的交互性(interactivity )。事实上,multi-interest extraction 可以看作是 items 之间的 soft clustering 过程,items 之间的交互性对于 clustering 任务是有效的(《Learning node embeddings in interaction graphs》),因为相同类型的 items 将通过 interaction 来学习相似的 representation 。

因此,我们认为用户序列中 items 之间的时间间隔信息和交互信息对于捕获 multi-interest representation 更加 powerful 。
为了解决这些问题,针对序列推荐,我们提出了一种名为PIMI 的新方法来在 MultiInterest 框架中探索周期性和交互性(Periodicity and Interactivity ) 。
首先,我们对序列中 items 之间的时间间隔信息进行编码,以便周期性信息可以参与到用户的 multi-interest representation 中,从而反映用户行为的动态变化。
其次,我们设计了一个巧妙的 graph 结构。以前 GNN-based 的方法忽略了用户行为中的序列信息,我们的 graph 结构克服了这一缺点并捕获了相邻用户行为之间的 correlation 。更重要的是,通过虚拟的中心节点(virtual central node),所提出的 graph 结构可以收集(gather )和分发(scatter )全局的和局部的 item interactivity 信息,以提高 multi-interest extraction 的性能。
最后,我们基于注意力机制为用户获得 multi-interest representation ,可用于选择 candidate items 并进行推荐。
这项工作的主要贡献总结如下:
我们在用户行为序列中加入了时间间隔信息,可以对用户的 multiple interests 的周期性进行建模,并提高用户的 representation 的质量。
我们设计了一种新颖的 graph 结构来捕获 items 之间的全局交互性和局部交互性,同时保留顺序信息(sequential information ),从而提高 item 的 representation 的质量。
我们的模型 PIMI 在两个现实世界的具有挑战性的数据集 Anazon 和 Taobao 上实现了 SOTA 的序列推荐性能。
现有的序列推荐方法通常使用单个向量来表示用户,这很难反映现实世界中用户的 multiple interests 。基于上述观察,我们探索使用多个向量来表示用户的 multiple interests 。
最近用于序列推荐的 multiple interests 框架忽略了两个问题:用户兴趣的周期性(periodicity )、序列中 items 之间的交互性。我们认为用户的兴趣点具有不同的时间周期性,因此将时间信息添加到 multi-interest vectors 中可以提高 user representation 的质量。同时,序列中 items 之间的交互性可以有效地提高 item representation 的质量。
在本节中,我们首先形式化序列推荐问题。然后,我们提出了一种新方法,用于为 recommendation 来探索 Periodicity and Interactivity in Multi-Interest framework,称为 PIMI (如 Figure 2 所示)。

假设 items 集合。每个用户 item。序列推荐的目标是预测用户可能感兴趣的 next item。
Embedding Layer:如 Figure 2 所示,PIMI 的输入是用户行为序列,其中包含一系列 item IDs,表示按时间排序的 user’s actions with items 。我们将用户行为序列 n items ;否则,我们将序列填充为固定长度
根据实验部分的描述,这里是采用一个大小为
的滑动窗口,每滑动一次生成一个样本。
我们为所有 items 构建一个 embedding matrix embedding 向量的维数。embedding look-up 操作将序列中的 items 的 ID 转换为 unified low-dimension latent space 。我们可以得到它的 embedding :
其中:item 的 embedding 向量。
Periodicity Module:对应于用户的行为序列 item 的时间戳。我们只关注用户行为序列中时间间隔的相对长度,并将其建模为任意两个 items 之间的关系。具体而言,给定用户item item sparse encoding :
用于截断时间间隔,防止间隔太大。 这里
可能是个瓶颈。假设序列长度 为 1000,那么为 1M的规模,无法应用于长序列的场景。
与 items 的 embedding 类似,时间间隔 emebdding matrix 为 item ,我们利用 time-aware attention 方法得到 time interval matrix 的 attention score matrix
其中:
attention score matrix item 对于序列中其他 item 的时间间隔的注意力权重。当我们根据注意力得分对时间间隔的 embedding 进行求和时(这里使用 Python 中的广播机制),我们可以得到 items 的 matrix representation item 在整体序列的 timeline 中的 position :
这类似于
position embedding。
Interactivity Module:在 embedding layer 和 periodicity module 之后,我们聚合了 items 的 embedding items 的 time interval representation interactivity module 中。在 interactivity module 中,我们设计了一个巧妙的 graph 结构,将序列中的每个 item 视为一个 node 。我们的 graph 结构不仅可以捕获序列信息,还可以允许 items 通过 graph neural network: GNN 进行交互。实验结果证明,items 之间的交互可以有效改善 multi-interest soft clustering 。
首先,我们从序列中构建一个有意义的 graph 。如 Figure 2 所示,graph 结构包含一个虚拟中心节点(virtual central node )和 item nodes 。
virtual central node 负责跨所有 item nodes 来接收和分发特征。
对于每个 item node ,黑色边表示与virtual central node 的无向连接。这样的 graph 结构可以使任何两个不相邻的 item nodes 成为 two-hop neighbors ,并且可以捕获 non-local information 。
由于用户的行为是一个序列,我们按顺序连接 item node ,如图中红色连接所示。这样的 graph 结构可以建模相邻 items 之间的 correlation,允许每个 item node 从邻居那里收集信息,并捕获local information 。
接下来,我们介绍如何通过 GNN 获取节点的 feature vectors 。我们分别使用 step virtual central node 和 all the item nodes 。我们将
其中 avg() 为均值池化。
step
在第一阶段,每个 item node 聚合以下信息:按顺序的相邻节点 local information 、virtual central node global information 、还有该节点的 previous feature item embedding item node step
其中:MultiAtt() 表示 Multi-Head Attention 网络。
这里考虑了
previous feature与 之间的相似度,基于相似度来融合后者。
实际是一个矩阵而不是一个向量。
在第二阶段,virtual central node 聚合所有 item nodes virtual central node 先前特征 item node 类似,它也使用注意力机制来更新状态:
interactivity module 的整体更新算法如 Alg-1 所示。

经过 item nodes 的 final feature matrix multi-interest extraction 。
Multi-Interest Extraction Layer:我们使用自注意力方法从用户序列中提取 multi-interest 。给定 interactivity module 中所有 items 的 hidden embedding representation multi-interest 的注意力权重:
其中:
为什么
attention layer采用了4倍的膨胀率?
矩阵 item embedding 与注意力权重的加权和可以获得
由于目标函数是在
个 vector representation中找到最相关的一个,因此越大则该任务越容易、 越小则该任务越难。但是实验阶段发现 太大会降低性能,可能是因为 太大则包含噪音太多。
通过 multi-interest extraction layer 从用户行为计算出 interest embedding 后,基于 interest attention layer 中的 hard attention 策略,对于 target item ,我们使用 argmax 操作在 vector representation 中找到最相关的一个:
其中:multi-interest representation matrix ;target item 的 embedding 。
给定一个训练样本 user embedding target item embedding item softmax )。由于计算成本高昂,我们利用 sample softmax 方法来计算用户 target item
注意:
已经包含了 的信息,因为前者是通过后者来检索 从而得到。
在 multi-interest extraction layer 之后,我们根据每个用户的历史行为获得 multiple interests embedding ,可用于 recommendation prediction 。在测试阶段,每个 interest embedding 都可以独立地从全局 item pool 中聚类 top N items ,在 interest clustering layer 中通过 nearest neighbor library(如,Faiss)来基于 inner product similarity 。
因此,我们可以得到 candidate items ,然后通过最大化以下价值函数得到最终的推荐结果,即包含 items 的集合
其中:candidate item 的 embedding,interest embedding 。
第一步:基于每个
interenst embedding检索个 items,得到个 candidates。第二步:对每个
candidate计算它与个 interenst embedding的相似度,最大的相似度为这个candidate的score。然后获取top-N score的candidates。
在本节中,我们介绍了我们的实验设置,并与几个可比较的基线进行了比较,评估了所提出方法的性能。为了保持比较的公平性,我们遵循 《Controllable multi-interest framework for recommendation》 的数据划分和数据处理方法,这是强泛化条件。我们按照8:1:1 的比例将所有用户分成训练集/验证集/测试集,而不是像弱泛化条件那样,所有用户都参与训练和评估。
在训练时,我们使用用户的整个序列。具体而言,给定行为序列 items 来预测第 item ,其中
在评估中,我们将验证集和测试集用户的前 80% 的用户行为作为模型输入,以获得用户的 embedding representation ,并通过预测剩余 20% 用户行为来计算指标。
这种评估方式有问题?模型训练的是
next item prediction,而评估的是next 20% items prediction。因此是不公平的比较,实验结论存疑。
此外,我们还进行了一些分析实验来证明 PIMI 的有效性。
数据集:
Amazon 数据集:包括来自于 Amazon 的评论(评分、文本等)、产品元数据(价格、品牌等)以及链接。我们在实验中使用Amazon 数据集的 Books 类别。
Taobao 数据集:包含 1 million users 的交互行为,包括点击、购买、加入购物车和收藏商品。我们使用 Taobao 数据集中的用户点击行为进行实验。
我们丢弃交互次数少于 5 次的用户和 items ,以及一些非法的时间戳信息。我们分别设置 Amazon 和 Taobao 的训练样本最大长度为 20 和 50 。经过预处理后,数据集的统计数据如 Table 1 所示。

Baselines:
YouTube DNN:是一个非常成功的深度学习模型用于工业级的推荐系统,它结合了 candidate generation model 和 ranking model 。
GRU4Rec :这是第一项将循环神经网络引入 recommendation 的工作。
MIND:是一种基于 dynamic routing 算法的模型,它针对 multi-interest extraction 。
ComiRec:它是 SOTA 的 multi-interest extraction 模型,有两种不同的实现 ComiRec-SA 和 ComiRec-DR ,分别基于注意力机制和动态路由。
评估指标:Recall@N、NDCG@N、Hit Rate@N 。
Recall@N:表示有多少比例的 ground truth items 被包含在推荐结果中。
NDCG@N:衡量 ranking quality,该 ranking quality 会为 top position ranks 的hit分配 high scores 。
Hit Rate@N:表示有多少比例的推荐结果满足条件:top N position 至少包含一个 ground truth item 。
实现细节:
我们使用 Python 3.7 中的 TensorFlow 1.13 实现 PIMI。
embedding 维度为 64 ,Amazon 数据集和 Taobao 数据集的 batch size 分别为 128 和 256 ,dropout rate = 0.2 ,学习率为 0.001 。
Amazon 数据集和 Taobao 数据集的时间间隔阈值分别为 64 和 7 。
我们使用三个 GNN layers 来使 items 充分地交互。
我们将 interest embedding 的数量设置为 4 ,并使用 10 samples 来计算 sample softmax loss 。
最后,我们在训练阶段最多迭代 1 million 轮。
训练和测试之间的差距:在训练阶段,我们为 next target item 选择最相关的用户兴趣 embedding ;而在测试阶段,我们为用户的每个兴趣 embedding 提取 top N items ,然后根据价值函数
我们这样做有两个原因:
(1):我们的实验是在强泛化条件下进行的。如果测试阶段与训练阶段一致,则模型仅根据最相关的用户兴趣 embedding 来预测 next item ,这是一种弱泛化条件,不适合现实世界的情况。
(2):为了公平比较,我们保持与基线相同的实验条件。
为了证明我们的模型 PIMI 的序列推荐性能,我们将其与其他 SOTA 的方法进行了比较。Table 2 列出了所有方法在 Amazon 数据集和 Taobao 数据集上的实验结果,我们得到以下观察结果。
首先,YouTube DNN 和 GRU4Rec 使用单个向量来表示用户,而 MIND、ComiRec 和 PIMI 使用用户的 multi-interest representation 来进行推荐。实验结果表明,基于用户行为序列的 multi-interest representation 可以更充分地反映现实世界的推荐情况。
其次,MIND 和 ComiRec-DR 都使用基于胶囊网络的 dynamic routing 方法来提取 multiple interests ,而 ComiRec-SA 是一种基于注意力机制的方法。我们观察到,在稀疏数据集 Amazon 上,自注意力方法可以更好地捕获用户行为序列中 items 之间的 correlation ;而在稠密数据集 Taobao 上,动态路由方法更好。这表明虽然自注意力机制可以在稀疏数据集上捕获 global feature ,但在稠密数据集上捕获 local feature 的能力不足。
"这表明虽然自注意力机制可以在稀疏数据集上捕获
global feature,但在稠密数据集上捕获local feature的能力不足",这个结论如何得来?数据似乎无法支撑这个结论。
再次,我们提出的方法 PIMI 在两个数据集上的三个评估指标上都优于其他竞争方法。这表明:利用用户行为的时间戳、以及编码时间间隔信息可以感知 multi-interest representation 中的周期性。特别是 NDCG 指标的显著改进,这意味着由于添加时间间隔信息,推荐结果的 ranking 质量得到了改善,这也可以证明 periodicity module 的有效性。更重要的是,实验表明我们的 interactivity module 可以克服长程依赖和短程依赖的问题,允许 items 的 local features 和 non-local features 有效地交互,大大提高 user’s multi-interest extraction 的性能。这些结果验证了 PIMI 对于序列推荐的可用性和有效性。

消融研究:我们进一步研究发现,periodicity module 和 interactivity module 都是序列推荐任务的重要组成部分。我们进行了消融研究,将 PIMI 与 PIMI-P 和 PIMI-I 进行比较。
对于模型变体PIMI-P ,我们删除了periodicity module ,只让 items 通过 interactivity module 进行交互。
对于模型变体 PIMI-I ,我们删除了 interactivity module ,只在 periodicity module 中引入了时间间隔信息。
我们在 Table 3 展示了 PIMI、PIMI-P 和 PIMI-I 在 Amazon 验证集和 Taobao 验证集上的实验结果。根据实验结果,我们得出以下观察结果:
PIMI 在 Recall 、NDCG 、Hit Rate 方面的表现均优于 PIMI-P 和 PIMI-I,这表明每个组件都有效地提高了性能。
PIMI-I 的表现比 PIMI-P 差,这表明我们的 graph 结构的有效性。造成这种结果的原因可能是,尽管具有相似时间间隔的 items 可能属于同一兴趣;但是,如果没有 items 之间的交互,那么 multi-interest extraction 时可能会出现错误的 clustering 。
Table 3和Table 2的PIMI数据不一致?数据质量存疑。

virtual central node 的影响:为了证明我们的 graph 结构在解决序列推荐中 items 之间的交互性方面非常有效,我们进行了一个实验来比较 PIMI 和 PIMI-central_node 。对于模型变体 PIMI-central_node ,我们删除了 graph 结构中的 virtual central node ,只对序列中相邻 items 之间的 correlation 进行建模。
Table 4 中的实验结果证明,仅对序列信息进行建模无法充分探索 items 之间的交互性。

time interval threshold 的影响:Table 5 给出了在 Amazon 数据集上不同时间间隔阈值对 Metrics@50 的影响。我们选择时间间隔阈值为 {32,64,128,256} days 进行分析实验。实验结果表明:较大的时间间隔阈值会导致 sparse encodings ,较小的时间间隔阈值会导致 insufficient learning 。Amazon 数据集上的最佳时间间隔阈值设置为 64 。

GNN layers 数量的影响:Figure 4 展示了在 Amazon 数据集上不同 GNN 层数的性能对比。实验结果表明:
随着 GNN 层数的增加,通过 feature transfer ,items 之间的交互会使得 items 学习到更高质量的 representation ,模型的性能也会更高。
然而,当 GNN 层数积累到一定程度时,由于过拟合,multi-interest extraction 的有效性会略有降低,计算成本也会增加。

兴趣数量 Figure 5 显示了在 Amazon 数据集上兴趣数量 Metrics@20 和 Metrics@50 的影响。对于 Amazon 数据集,当 PIMI 获得更好的性能。在现实世界中,每个用户的兴趣数量通常不会太多或太少。因此,设置太小或太大的兴趣数量都无法反映用户的真实情况。

案例研究:如 Figure 3 所示,在 Amazon 数据集中,我们随机选择一个用户并从用户的行为序列中生成四个 interest embedding 。我们发现用户的四个兴趣是关于历史(history)、健康(health)、商业(business)和宗教(religion)。我们观察到:用户对健康书籍的阅读周期约为五个月,而用户对商业书籍的阅读周期约为半年。这表明我们提出的 PIMI 可以成功捕获这些周期性信息,从而有助于更好地表示兴趣。
