《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,从而平衡两个数据集的计算成本和推荐质量。
