《Sequential Recommender System based on Hierarchical Attention Network》
不同于传统的推荐系统,在序列推荐场景存在新的挑战:
首先,用户行为仅反映了他们的隐式反馈(如,是否购买),而不是显式反馈(如,评分)。这种类型的数据会带来更多的噪音,因为我们无法区分用户是不喜欢 unobserved item
、还是仅仅因为没有意识到它们。因此,通过传统的潜在因子模型(latent factor model
)直接优化这样的 one-class
分数(如 1
或 0
)是不合适的。
其次,越来越多的数据来源于 session
或交易(transaction
),形成了用户的序列模式(sequential pattern
)和短期偏好。例如,用户离开机场后更喜欢在酒店休息而不是运动,用户在购买相机后更可能购买相机相关的配件而不是衣服。然而,以前的方法主要关注用户的通用品味(general taste
),而很少考虑序列信息,这导致重复的推荐(repeated recommendation
)。
在文献中,研究人员通常分别使用独立的模型来分别刻画用户的长期偏好(即,通用品味)和短期偏好(即序列模式),然后将它们集成在一起。例如,FPMC
分解观察到的 user-item
矩阵从而学习用户的长期偏好,并利用 item-item
转移信息来建模序列信息(sequential information
),然后将二者线性相加从而获得最终分数。
然而,这些模型忽略了用户通用品味的动态变化,即,用户的长期偏好会随着时间的推移而不断演变。为每个用户学习一个静态的、低维的向量来建模该用户的通用品味是不够的。此外,这些模型主要通过线性模型来为 user-item
交互、 item-item
交互分配固定权重,这限制了模型的表达能力。已有研究表明,非线性模型可以更好地建模用户活动中的 user-item
交互。
为此,论文 《Sequential Recommender System based on Hierarchical Attention Network》
提出了一种新颖的方法,即 Sequential Hierarchical Attention Network: SHAN
,从而解决 next item
推荐问题。注意力机制可以自动为用户分配 item
的不同影响(即,权重)从而捕获动态特性(dynamic property
),而层次结构(hierarchical structure
)结合了用户的长期偏好和短期偏好。具体而言:
首先将用户和 item
嵌入到低维稠密空间中。
然后使用 attention layer
计算用户长期行为中每个 item
的权重,并使用这个权重对长期行为中的 item vector
进行加权和从而生成用户的 long-term representation
。
之后,使用另一个 attention layer
将近期的用户序列行为与 long-term representation
相结合。
同一个 user embedding
向量在两个 attention network
中作为 context
信息,从而计算不同用户的不同权重。为了学习模型参数,论文采用 Bayesian personalized ranking: BPR
优化准则来生成一个 pair-wise
损失函数。从实验中,可以观察到论文所提出的模型在两个数据集上优于 SOTA
的算法。
最后,论文的贡献如下:
论文引入注意力机制来建模用户动态(user dynamic
)、个人偏好从而进行序列推荐。
通过层级结构,论文结合用户的长期偏好和短期偏好来生成用户的 high-level hybrid representation
。
论文对两个数据集进行了实验,结果表明所提出的模型在召回率和 AUC
指标上始终优于 SOTA
方法。
相关工作:
为了联合建模用户的个性信息(individual information
)和序列信息,人们引入了马尔科夫链来用于传统的推荐。《Factorizing personalized markov chains for next-basket recommendation》
结合了分解方法(用于建模用户的通用品味)、以及马尔科夫链(用于挖掘用户序列模式)。遵从这个思想,研究人员利用不同的方法来抽取这两种不同的用户偏好。
《Playlist prediction via metric embedding》
和 《Personalized ranking metric embedding for next new poi recommendation》
使用 metric embedding
从而将 item
投影到低维欧氏空间中的点(point
),从而用于play list
预测、以及successive location
预测。
《Factorization meets the item embedding: Regularizing matrix factorization with item co-occurrence》
利用 word embedding
从 item-item
共现中抽取信息,从而提高矩阵分解性能。
然而,这些方法在捕获 high-level
的 user-item
交互方面的能力有限,因为不同组件(component
)的权重是固定的。
最近,研究人员转向推荐系统中的图模型和神经网络。
《Unified point-of-interest recommendation with temporal interval assessment》
提出了一种双加权(bi-weighted
)的低秩(low-rank
)的图构建模型(graph construction model
),该模型将用户的兴趣和序列偏好,与时间间隔评估(temporal interval assessment
)相结合。
《Wide & deep learning for recommender systems》
将 wide linear model
与 cross-product feature transformation
相结合,并采用深度神经网络来学习 feature embedding
之间的高度非线性交互。然而,该模型需要特征工程来设计交叉特征,而交叉特征在高度稀疏的真实数据中很少观察到。
为解决这个问题,《Neural factorization machines for sparse predictive analytics》
和 《Attentional factorization machines: Learning the weight of feature interactions via attention networks》
分别设计了 B-Interaction layer
和 attentional pooling layer
,从而基于传统的分解机(factorization machine: FM
)技术自动学习二阶特征交互。
《Sessionbased recommendations with recurrent neural networks》
和 《Recurrent recommender networks》
采用循环神经网络 RNN
来挖掘轨迹数据(trajectory data
)中的用户动态( user dynamic
)和 item
偏好。然而,在许多实际场景中,session
中的 item
可能不会遵守严格的顺序(例如,在线购物中的交易),此时 RNN
不太适用。
除此之外,《Learning hierarchical representation model for nextbasket recommendation》
和 《Diversifying personalized recommendation with user-session context》
学习了user hierarchical representation
,从而结合用户的长期偏好和短期偏好。
我们遵循这个 pipeline
,但是有以下贡献:
我们的模型建立在 hierarchical attention network
之上,可以捕获动态的长期偏好和短期偏好。
一些
RNN-based
推荐方法也是捕获动态的长期偏好,而MF-based
推荐方法才是捕获静态的长期偏好。
我们的模型利用 user-item
交互的非线性建模。它能够学习不同用户对相同 item
的不同的 item influence
(即,权重)。
令 item
集合,user-item
反馈数据(如,用户的连续 check-in
记录、连续的购买交易记录)中抽取信息。
对于每个用户 time step
的总数,time step
item
集合。
对于给定的 time step
item
集合 next item
的重要因素。
另一方面,在 time step
item
集合,记做
在后面的内容中,我们将 time step
item set
,将 time step
item set
。
形式上,给定用户 next item
。
我们根据用户偏好的以下特点,提出了一种基于 hierarchical attention network
的新方法,如下图所示。这些特点为:
用户偏好在不同的 time step
是动态(dynamic
)的。
不同的 item
对将要被购买的 next item
有不同的影响。
对于不同的用户,相同的 item
可能对 next item prediction
产生不同的影响。
例如,用户
A/B
的行为序列都是,但是由于用户 A
和B
之间存在差异(例如年龄、性别、收入水平等等),导致相同的行为序列得到不同的注意力权重。
我们方法的基本思想是:通过联合学习长期偏好和短期偏好从而为每个用户生成一个 hybrid representation
。更具体而言,我们首先将稀疏的 user input
和 item input
(即,one-hot representation
)嵌入到低维稠密向量中。之后,我们通过结合长期偏好和短期偏好的双层结构来学习每个用户的 hybrid representation
。
为了捕获 time step
long-term user representation
,它是长期的 item set
item embedding
的加权和,权重由 user embedding
导出的、attention-based pooling layer
来生成。
为了进一步结合短期偏好,final hybrid user representation
将 long-term user representation
和短期 item set
中的 item embedding
相结合,其中权重根据另一个 attention-based pooling layer
学习而来。
如上所述,我们的模型同时考虑了动态的长期用户偏好和动态的短期用户偏好。此外,通过使用不同的、学到的权重,长期用户偏好和短期用户偏好对将要购买的 next item
具有不同的影响。
最后,值得指出的是,相同 item
在不同用户上的影响也是不同的,因为 attention layer
中权重的学习过程是由 user embedding
指导的,而 user embedding
是个性化的。
接下来我们详细介绍我们模型的各个部分。
Embedding Layer
:与自然语言处理中的、离散的 word symbol
类似,原始的 user ID
和 item ID
的表达能力非常有限。因此,我们的模型首先采用 embedding layer
将 user ID
和 item ID
(即,one-hot representation
)嵌入到两个连续的低维空间中。
形式上,令 user embedding
矩阵,令 item embedding
矩阵,其中 embedding
空间的维数。 user embedding
向量。item
item embedding
向量。
从理论上讲,传统的矩阵分解相当于一个双层神经网络:第一层为 user
和 item
构建低维的 embedding
,第二层执行内积运算。然而,通过矩阵分解的 embedding
只能捕获 low-level
、bi-linear
、以及静态的 representation
,这限制了模型的表达能力。不同的是,我们的模型基于这些 basic embedding
来学习high-level
、非线性的、动态的 user representation
,这些将在后面解释。
Long-term Attention-based Pooling Layer
:在序列推荐系统中,长期偏好和短期偏好分别对应于用户的通用品味和序列行为。
由于用户的长期 item set
通常会随着时间而变化,因此为每个用户学习静态的长期偏好 rerepsentation
并不能完全表达长期偏好的 dynamic
。
另一方面,从最新的长期 item set
中重构 long-term user representation
更为合理。
此外,我们认为相同的 item
可能在不同用户上产生不同的影响。例如,假设用户 item
item
next item
时,item
为了满足上述要求,我们提出使用已经成功应用于许多任务的注意力机制。注意力机制首先计算给定用户的长期 item set
中每个 item
的重要性,然后聚合这些 item
的 embedding
从而形成 long-term user preference representation
。形式上,注意力网络定义为:
其中:
user embedding
向量,item set
中 item
item embedding
。
ReLU
非线性激活函数。
与传统的注意力模型对每个用户的每个 input
使用相同的 context
向量不同(即,global
的),我们将用户 embedding
context
向量(因此不同用户的 context
向量不同,即 personalized
的)。
注意,和
DIN/RUM
不同,这里的attention
并不是将target item
与历史item
进行注意力计算,而是将用户静态偏好(以来衡量)与历史 item
进行注意力计算。
对于
DIN/RUM
,相同用户的、不同的target item
会得到不同的注意力权重,因此在推断期间对于每个候选item
都需要重新计算。此外,不同用户的、相同的
target item
会得到相同的注意力权重,因此它是non-personalized
的。对于
SHAN
,相同用户的、不同的target item
会得到相同的注意力权重,因此在推断期间对于每个候选item
无需重新计算。此外,不同用户的、相同的
target item
会得到不同的注意力权重,因此它是personalized
的。本质上,
SHAN
的注意力机制是类似于self-attention
,它仅用到了target user
侧的信息,而并没有使用target item
侧的信息。由于没有进行user-item
的信息交互,因此有利于模型的在线推断(类似于双塔模型的架构比较容易在线部署,例如将target user
侧的emebdding
离线计算好并推送到线上,target item
侧的embedding
实时计算并基于embedding
向量的相似度来做召回)。
最后,我们计算 long-term user representation
item embedding
的加权和,即:
Long- and Short-term Attention-based Pooling Layer
:除了用户的通用品味之外,还需要考虑用户的序列行为(即,短期偏好)。短期偏好对于预测 next item
很重要,并且已有研究将长期偏好和短期偏好相结合从而进行序列推荐。然而,在这些早期工作中,短期偏好和长期偏好的交互仍然是线性的。并且, item
被分配以相同的权重,这无法反映 item
对 next item prediction
的影响,因此限制了模型的性能。
与建模用户长期偏好类似,我们也采用注意力网络,从而为 long-term representation
和短期 item set
中的item
的 embedding
分配权重,进而捕获用户 high-level representation
。正式地,
其中:
user embedding
向量,item set
中 item
item embedding
。注意,当 long-term user representation
。
类似地,user embedding
被作为 context vector
从而实现个性化的注意力(即,相同 item
在不同用户上分配不同的权重)。在获得归一化的注意力分数之后,hybrid user representation
计算为:
其中
总而言之,item
对预测 next item
的贡献。此外,两个层级的注意力网络可以捕获 user
和 item
之间的非线性交互。
这里的注意力机制并不是基于向量内积的,而是基于
MLP
的,因此引入了非线性交互。
注意,《Learning hierarchical representation model for nextbasket recommendation》
还可以通过使用最大池化聚合 final representation
来实现非线性的目的。但是,它同时丢失了很多信息。我们将通过实验证明我们的模型可以实现比它更好的性能。
注意力加权和聚合的方式是介于
sum
池化和max
池化之间的版本:
当注意力均匀分布时,注意力加权和聚合退化为
sum
池化。当注意力极度不均时,注意力加权和聚合退化为
max
池化。此外,还可以通过
CNN/RNN
来进行聚合,它们是与sum
池化、max
池化完全不同的聚合方式。
模型推断(Model Inference
):当计算出 hybrid user representation
item
但是,用户交易记录是一种隐式数据。由于数据稀疏性问题和 unobserved data
的模糊性(ambiguity
),我们很难直接优化偏好分
我们模型的目标是在给定用户在时刻 item set
和短期 item set
的情况下,提供一个 ranked list
。因此,我们更感兴趣的是 item
的排名而不是真实的偏好分。遵循 BPR
优化准则,我们为我们的模型提出一个 pair-wise ranking
目标函数。我们假设用户更喜欢 next purchased item
而不是 unobserved item
,并在 item
item
ranking order
)
其中 time step
next item
,bootstrap sampling
生成的 unobserved item
。
对于每个 observation
pairwise preference order
的一个集合 maximizing a posterior: MAP
)来训练我们的模型:
其中:
user embedding
和 item embedding
待学习参数集合,
logistic function
),
为什么使用不同的正则化系数?用一个正则化系数不行吗?猜测的原因是不同的参数的取值不同,这可以通过后面的消融实验来验证。如果使用同一个正则化系数,那么该系数的选择被取值较大的参数所主导(可以通过统计参数范数的均值来观察)。进一步地,是否需要针对每个参数设置一个正则化系数?
SHAN
算法:
输入:
长期 item set
item set
学习率
输出:模型参数集合
算法步骤:
从正态分布
从均匀分布
为什么采用不同的权重初始化策略?论文并未解释。
重复以下过程直到算法收敛:
混洗 observation
集合 observation
随机从 unobserved item
计算
计算
使用梯度下降来更新参数集合
返回参数集合
我们进行实验回答以下几个问题:
与其它 SOTA
方法相比,我们的模型的性能如何?
在我们模型中,长期偏好和短期偏好的影响是什么?
超参数(如正则化参数、embedding
维度)如何影响模型性能?
数据集:
Tmall
数据集:包含中国最大的在线购物网站(即,Tmall.com
)上的用户行为日志。
Gowalla
数据集:记录了用户在 location-based
社交网站 Gowalla
中 check-in
的时间的 point-of-interest: POI
信息。
我们专注于这两个数据集上过去七个月生成的数据。在此期间,少于 20
个交互的 item
被剔除。此后,将一天内的用户记录视为一个 session
(即,交易 transaction
)来表示短期偏好,并删除所有的 singleton session
(即,session
中仅有一个 item
)。
类似于 《Diversifying personalized recommendation with user-session context》
,我们随机选择最近一个月 20%
的 session
进行测试,其余的用于训练。我们还在每个 session
中随机保留一个 item
作为待预测的 next item
。
预处理之后,这两个数据集的基本统计信息如下表所示:
评估指标:我们采用两个广泛使用的指标 Recall@N
和 AUC
。
Recall@N
指标评估在所有测试 session
中,ground truth item
排在 top-N
的 case
占所有 ground truth item
的比例。
AUC
指标评估 ground truth item
在所有 item
中的排名有多高。
这里将
ranking list
中非ground truth
的其它item
视为负样本,将ground truth item
视为正样本,因此AUC
指标严重依赖于负样本的采样方式。事实上,
Recall@N
指标也会依赖于负样本的采样方式。
baseline
方法:
TOP
:基于流行度的推荐,其中流行度通过训练集中item
的出现频次来统计。
BPR
:BPR
是一种用于隐式用户反馈数据的、 SOTA
的 pairwise learning to rank
框架。我们选择矩阵分解作为 internal predictor
。
FPMC
:该方法通过矩阵分解建模用户偏好、通过一阶马尔科夫链建模序列信息,然后通过线性方式将它们组合起来进行 next basket recommendation
。
FOSSIL
:该方法将 factored item similarity
和马尔科夫链相结合,从而建模用户的长期偏好和短期偏好。注意,我们将 session
的长度是可变的。
HRM
:该方法生成 user hierarchical representation
来捕获序列信息和通用品味。我们使用 max pooling
作为聚合操作,因为这样可以达到最佳效果。
SHAN
:这是我们提出的模型,它使用两个注意力网络来挖掘长期偏好和短期偏好。
我们还展示了简化版本的性能(叫做 SAN
),它忽略了层次结构,并通过单个注意力网络从长期 item set
和短期 item set
中计算 item
的权重。
为了公平地比较,所有 model-based
方法都基于 BPR
优化准则来优化一个 pair-wise ranking
目标函数。
对比结果:下图展示了所有方法在 Tmall
和 Gowalla
数据集上的 Top-5 to Top-100
的召回率和 AUC
指标。从结果可以看到:
SHAN
在 Tmall
数据集的所有指标下始终以较大的优势优于所有其它方法。
具体而言,与第二好的方法(即 HRM
)相比,SHAN
在 Tmall
数据集上和 Gowalla
数据集上的召回率指标分别提高了 33.6%
和 9.8%
。这表明:我们的模型通过注意力网络为 long-term representation
和 short-term representation
捕获了更 high-level
的、更复杂的、非线性的信息,而 HRM
可能会通过 hierarchical max pooling
操作丢失很多信息。
此外,SHAN
的性能优于 SAN
,可能是因为长期 item set
的 item
数量远远多于短期 item set
。因此,单个注意力网络很难为属于短期 item set
的较少、但是更重要的 item
分配适当的权重。
HRM
在大多数情况在这两项指标下的表现普遍优于 FPMC
。
具体而言,HRM
在 Tmall
和 Gowalla
数据集上的 Recall@50
的相对性能(相对于 FPMC
方法)提升分别为 6.7%
和 4.5%
。这证明了多个因子( factor
)之间的交互可以通过最大池化操作来学习。
此外,尽管是简单的最大池化,该操作引入的非线性交互将提高模型性能。另外,SHAN
实现了比 HRM
更好的性能,这表明注意力网络在建模复杂交互方面比最大池化更强大。
在大多数情况下,所有混合模型(即,FPMC, FOSSIL, HRM, SHAN
)在两个数据集的不同指标下均优于 BPR
。以 AUC
为例,混合模型相对于 BPR
的性能提升持续保持在非常高的水平。这表明序列信息对于我们的任务非常重要,而 BPR
忽略了它。另外,SHAN
在这些混合模型中获得了最佳性能。
令人惊讶的是,在 Tmall
数据集上,当 50
继续增加时,TOP
方法在召回率方面超越了 BPR
,甚至在 AUC
指标上超越了 FPMC
。
这种现象可以解释为:
用户在网上购物时可能倾向于购买热门 item
。因此,当 TOP
方法可以达到更好的性能。
相反,由于Gowalla
数据集中的用户 check-in
数据更加个性化,因此 TOP
方法的性能要比其它方法差很多。
最后,我们的模型可以在不同的 baseline
。
不同组件的影响:为了评估每个组件对 final user hybrid representation
的贡献,我们进行实验来分析下表中每个组件。SHAN-L
表示仅建模用户的通用品味,SHAN-S
表示仅建模用户的短期偏好。
与同样仅建模长期偏好的 BPR
相比,SHAN-L
实现了更好的性能。例如,BPR
在 Tmall
数据集和 Gowalla
数据集上的 Recall@20
指标分别为 0.019
和 0.204
。这表明通过动态方式 dynamic way
来建模通用品味,要比通过固定的 embedding
向量更好。
SHAN-S
在很大程度上优于 SHAN-L
,这表明短期序列信息在 predicting next item task
上更为重要。
令人惊讶的是,SHAN-S
在两个数据集上都优于 HRM
。例如,HRM
在 Tmall
数据集和 Gowalla
数据集上的 AUC
指标分别为 0.734
和 0.966
。原因可能是 SHAN-S
中的 basic user embedding vector
(它融合了 user basic preference
)是通过短期 item set
中每个 item
的权重从而计算得到的。因此,SHAN-S
还考虑了用户的静态通用品味、以及序列信息从而生成 hybrid representation
。
结果还表明:一层的注意力网络优于两层的最大池化操作。
SHAN-S
在 Tmall
数据集上的 Recall@20
指标要好于 SHAN
。这表明在该数据集上,用户在上一个 session
中的点击行为对当前 session
中的 next clicked item
没有太大影响。
最后,在大多数情况下,SHAN
的性能优于两个单组件的模型。这表明:将动态的用户通用品味添加到 SHAN-S
有助于预测 next item
。因为 SHAN-S
仅仅是结合了用户的 basic
的、fixed
的偏好以及序列行为。
超参数的影响:这里我们研究正则化系数和 embedding size
对模型的影响。由于篇幅所限,我们仅展示 Recall@20
指标下的结果。
在我们的模型中,我们利用 user embedding
和 item embedding
正则化系数 Recall@20
指标的影响。
可以看到:当
可以看到,
和 的取值范围不同,因此间接说明不同类型参数的范数大小位于不同量级。
我们进一步研究了维度大小 user embedding
和 item embedding
的 size
有关,还与注意力网络中的 MLP
参数有关。为简单起见,user embedding
和 item embedding
的 size
是相同的。
可以看到:大的 item
,并且将更有利于通过注意力网络构建 high-level
的因子交互(factor interaction
)。这种现象类似于传统的潜在因子模型。在实验中,我们将 100
,从而平衡两个数据集的计算成本和推荐质量。