《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
可以成功捕获这些周期性信息,从而有助于更好地表示兴趣。