《Learning Hierarchical Representation Model for Next Basket Recommendation》
购物篮分析(market basket analysis)可以帮助零售商更好地了解用户的购买行为,从而作出更好的决策。购物篮分析最重要的任务之一是 next basket recommendation:根据每个用户的序列交易数据来推荐用户下一次访问时可能想要购买的item 。其中,交易(transaction)是在某个时刻购买的一组 item(如鞋子、包包)。该问题有两种建模范式:
序列推荐器(sequential recommender):主要依赖于马尔科夫链。它根据最近的动作预测next purchase 来探索序列交易数据。该模型的一个主要优点是它能够捕获序列行为从而用于良好的推荐。例如,对于最近购买手机的用户,它可能会推荐该用户购买手机配件,其中这些手机配件是其它用户购买手机后也来购买的。
通用推荐器(general recommender):丢弃任何序列信息并学习用户感兴趣的 item 。这类方法中最成功的方法之一是基于模型的协同过滤 (如矩阵分解模型)。显然,通用推荐器擅长通过学习用户的整个购买历史来捕获用户的通用兴趣(general taste)。
next basket recommendation 的更好的解决方案是同时考虑序列行为和用户的通用兴趣。个性化的马尔科夫链(personalized Markov chain: FPMC)朝着这个方向迈出了一步,它能够同时建模序列行为(通过前一个交易中的 item 与后一个交易中的 item 之间的交互)、以及用户的通用兴趣(通过用户与 next basket 中的 item 之间的交互),因此比单独的序列推荐器或者单独的通用推荐器表现更好。然而,FPMC 的一个主要问题在于它的所有组件都是线性组合的,表明它在多个因子之间做出了强独立性假设(即,每个组件都是独立地影响用户的 next purchase )。不幸的是,根据论文《Learning Hierarchical Representation Model for Next Basket Recommendation》的分析,作者表明独立性假设不足以提供良好的推荐。
为解决上述问题,论文《Learning Hierarchical Representation Model for Next Basket Recommendation》为 next basket recommendation 引入了一种新颖的 hierarchical representation model: HRM 。具体而言,HRM 将每个用户和每个 item 表达为连续空间中的一个向量,并使用 two-layer 结构来构建用户、以及上一次交易的 item 的 hybrid representation:
第一层通过聚合上一次交易的 item 向量,从而形成 transaction representation 。
第二层通过聚合用户向量和 transaction representation 从而构建 hybrid representation 。
然后,论文使用得到的 hybrid representation 来预测 next basket 中的 item 。注意,transaction representation 对序列行为进行建模,而 user representation 捕获了用户的通用兴趣。
HRM 允许我们在不同的层灵活地使用不同类型的聚合函数。具体而言,通过采用非线性运算(而不是线性运算),我们可以建模不同因子之间更复杂的交互,而不是独立性假设。例如,通过使用最大池化操作,我们可以比较来自不同因子的特征,并且仅选择那些最重要的特征来形成更高 level 的 representation 从而用于未来的预测。
论文还表明,通过选择适当的聚合函数,HRM 包含了几种现有的方法,包括马尔科夫链模型、矩阵分解模型、FPMC 模型的变体。为了学习模型参数,论文使用负采样程序作为优化方法。论文对三个真实世界的交易数据集进行了实验,结果证明了HRM 与 SOTA baseline 方法相比的有效性。
主要贡献:
为 next basket recommendation 引入了一个通用模型,该模型可以捕获序列行为和用户的通用兴趣,并灵活地结合多个因子之间的不同交互。
在 hierarchical model 中引入了两种类型的聚合函数,即均值池化和最大池化,并研究了这些函数的不同组合的效果。
理论上表明HRM 模型在选择适当聚合函数的情况下,包含了几种现有的推荐方法。
实验表明,HRM 模型在 next basket recommendation 的不同评估指标下始终优于 SOTA baseline 。
相关工作:next basket recommendation 是基于隐式反馈的推荐系统的典型应用,其中用户没有显式的偏好(如评分),而只有正向的观察(positive observation)(如购买或点击)。
序列推荐器:主要基于马尔科夫链模型,通过在给定最近一个动作的情况下预测用户的下一步动作来利用序列数据。我们的工作与之前方法的主要区别在于:除了序列行为之外,我们还包含了用户的通用兴趣。以外,以前的序列推荐器很少解决因子中 item 之间的交互。
通用推荐器:根据用户的整个购买历史进行推荐 ,而不考虑序列行为。通用推荐器的关键思想是协同过滤(collaborative filtering: CF),它进一步可以分为基于内存的 CF(通过某些相似性度量找到 k 近邻的用户或 item 来进行推荐)、以及基于模型的 CF(通过分解 user-item 相关性矩阵来进行推荐)。通用推荐器擅长捕获用户的通用兴趣,但是如果没有建模序列行为,那么很难将其用于用户最近的购买行为。
混合模型(hybrid model):结合了序列行为建模和用户通用兴趣建模。
一个 SOTA 模型是 FPMC,它构建了一个概率转移立方体(transition cube),其中立方体的每一项给出了用户 item item last item、 next item 之间的三个 pairwise 交互来解释这个概率。以这种方式,FPMC 通过 last item 与 next item 之间的交互来建模序列行为,通过用户与 next item 之间的交互来建模用户的通用兴趣。实验表明,这种混合模型可以比单独的序列推荐器、或者单独的通用推荐器实现更好的性能。
动机:next basket recommendation 的一个简单的解决方案是:线性组合序列因子(sequential factor)(来自序列行为模型)和通用因子(general factor)(来自用户通用兴趣模型)。然而,这种线性组合假设多个因子之间是独立的。真实世界的结果表明,不同因子之间的独立性假设可能不足以提供良好的推荐。我们需要一个能够更复杂地集成多个因子之间交互的模型。这成为我们工作的主要动机。
令 item 集合,item 数量。
对于每个用户 item 集合,next basket recommendation 任务是推荐用户 item 。
next basket recommendation 任务可以公式化为对用户 ranking ranking 我们可以向每个用户推荐 top n items 。
为解决上述推荐问题,我们提出了 HRM 模型。HRM 的思想是学习一个可以同时包含序列行为和用户通用兴趣的推荐模型,同时建模这些因子之间的复杂交互。
具体而言,HRM 将每个用户和每个 item 表达为连续空间中的一个向量,并采用两层结构来构建用户和最近一次交易的 item 的 hybrid representation :
第一层通过聚合最近一次交易的 item 向量从而形成 transaction representation 。
第二层通过聚合用户向量和 transaction representation 来构建 hybrid representation。
然后使用得到的 hybrid representation 来预测 next basket 中的 item。HRM 的整体结构如下图所示。正如我们所见,HRM 通过对连续购买进行建模从而捕获序列行为,通过在序列推荐中集成个性化的 user representation 从而建模了用户的通用兴趣。
该模型有两个不足:
首先,模型无法捕获用户的所有历史,只能“看到 “最近” 一次发生的交易,所以无法捕获用户的长期兴趣。
其次,模型没有捕获用户兴趣的动态演变。

更正式而言,令 representation 矩阵,第 representation 向量,item representation 矩阵,第 item representation 向量。
给定用户 HRM 通过一个 softmax 函数定义用户 next item
其中 hybrid representation ,它被定义为:
其中
HRM 的一个优点是我们可以引入各种聚合函数来从 lower level 形成 higher level 的 representation。通过这种方式,我们可以对不同层的多个因子之间的不同交互进行建模,即在第一层对构成了 transaction representation 的 item 之间的交互进行建模,在第二层对 user represetnation 和 transaction representation 之间的交互进行建模。
在这项工作中,我们研究了均值池化(average pooling)和最大池化(max pooling)这两种典型的聚合函数。显然,均值池化是一种线性运算,它假设输入的 representation 之间相互独立。相反,最大池化是一种非线性操作,它对输入的 representation 之间的交互进行建模,只有那些最重要的特征才会被保留下来。
注意,还可以定义其它类型的聚合函数,如 top-k 均值池化或者 Hadamard product。我们可能会在将来的工作中研究这些聚合函数。此外,还可以考虑在深度神经网络中引入非线性层,然而我们求助于简单的模型,因为这样的计算复杂度较低从而可以用于非常大的数据集。
由于 HRM 中有两个聚合,因此我们根据不同的操作组合得到四个版本的 HRM,即:HRM 版本实际上假设多个因子之间的交互程度不同。
通过仅使用均值池化,FPMC 的某种变体。
item 之间、要么在 user represetnation 和 transaction representation 之间。
HRM 的损失函数是负的对数似然:
其中:
然而直接优化上述目标函数是不现实的,因为计算完整的 softmax 的代价与 item 数量
其中:sigmoid 函数,noise distribution)。
正如我们所看到的的,带负采样的 HRM 的目标旨在最大化观察到的 item item
我们使用随机梯度下降算法来最小化 Dropout 技术来避免过拟合。在我们的工作中,我们为每个单元设置了一个固定的 dropout rate (即,0.5)。
一旦学到 user representation 和 item representation,则HRM 的 next basket recommendation 过程如下:
给定用户 item
然后根据 item 的未归一化概率对 item 进行排序,并选择 top n 个结果来推荐给用户。
注意,由于排序只需要考虑相对大小,因此没有必要计算完整的
softmax值。
HRM 和马尔科夫链的关系:HRM 可以简化为某种类型的马尔科夫链模型。
我们选择特殊的聚合函数:
对于第一层聚合,我们随机选择一个 item 向量作为 transaction representation。
对于第二层聚合,我们选择 transaction representation 作为 hybrid representation 。
我们将这种模型称作
其中 item 的 representation 。
类似于 《distributed representations of sentences and documents》 中的推导,我们得到上式的最优解:
这意味着 factorized Markov chain model: FMC ,它通过分解 item (这些 item 来自于两个连续的交易)之间的转移矩阵(transition matrix),这个转移矩阵与shifted PMI 矩阵相关联。当 PMI 矩阵。
事实上,如果我们采用噪声对比估计进行优化,则最优解为:
这意味着 shifted 的对数条件概率矩阵。
HRM 和矩阵分解模型:HRM 可以简化为矩阵分解模型。
我们选择特殊的聚合函数:对于第二层聚合,我们选择 user representation 作为 hybrid representation (此时第一层完全被移除掉)。我们将这种模型称作
其最优解为:
通过这种方式, shifted PMI 矩阵。
这个
shifted PMI矩阵和的 shifted PMI矩阵在公式上不相同。
HRM 和 FPMC 的关系:HRM 可以简化为 FPMC 模型的某种变体。
基于 S-BPR 优化准则和最大后验估计的 FPMC ,其损失函数为:
其中 prediction model):
对于 HRM 模型,如果我们选择负样本数量
考虑到每一层都是均值池化,则有:
因此有:
可以看到:FPMC 共享相同的预测模型(即,pairwise 优化准则(optimization criteria):
FPMC 使用 pairwise ranking 损失函数,即 item ranking 高于未观察到的 item
pairwise ranking 损失函数,即 item ranking、最小化未观察到的 item ranking 。
实际上,我们也可以采用 S-BPR 准则来定义 FPMC 相同的模型。
基于上述分析,我们可以看到 HRM 实际上是一个非常通用的模型。通过引入不同的聚合函数,我们可以包含已有方法。此外,我们还可以探索其它预测函数以及优化准则,从而展现 HRM 的灵活性和潜力。
数据集:我们使用三个真实交易数据集来评估不同的推荐方法。
Ta-Feng 数据集:RecSys 会议发布的公开数据集,涵盖了从食品、办公用品到家具产品。
BeiRen 数据集:来自中国的大型零售企业 BeiGuoRenBai,记录了 2013 年 1 月到 2013 年 9 月期间的超市购买记录。
T-Mall 数据集:淘宝发布的一个公共的在线电商数据集,以品牌(而不是商品)的方式记录了在线交易。
我们首先对数据集进行预处理。对于 Ta-Feng 和 BeiRen 数据集,我们删除了用户量少于 10 个的商品、以及商品量少于 10 个的用户。对于较小的 T-Mall 数据集,我们删除了用户量少于 3 个的商品、以及商品量少于 3 个的用户。处理后的数据集如下表所示。
最后,我们将所有数据集拆分为训练集和测试集,其中测试集仅包含每个用户的最后一笔交易,而剩余所有交易都放入训练集中。

baseline 方法:
TOP:将训练集中最流行的 item 作为每个用户的推荐。
MC:马尔科夫链模型(即序列推荐器),它根据用户的最后一笔交易来预测 next purchase 。预测模型为:
其中转移概率
Nonnegative Matrix Factorization: NMF:是一种 SOTA 的协同过滤方法。它是基于 user-item 矩阵的非负矩阵分解,该矩阵是通过丢弃序列信息从交易数据集构造而来。
FPMC:next basket recommendation 的 SOTA 混合模型,预测时同时考虑了序列行为和用户的通用兴趣。
对于 NMF, FPMC, HRM 方法,我们在 Ta-Feng 数据集和 BeiRen 数据集上设置维度 T-Mall 数据集上设置
评估指标:我们在测试集中对每个用户 item (item 列表 item。我们使用以下指标来评估推荐列表与实际购买的 item:
F1-Score:它是 precision 和 recall 的调和平均值,是广泛应用的指标。
Hit-Ratio:如果实际购买的 item 至少有一项也出现在推荐列表中,则称之为命中。命中的推荐列表占所有推荐列表的比例称之为命中率。命中率关注推荐系统的召回率,即所有用户中有多少比率的人获得至少一个正确的推荐。
NDCG@k:Normalized Discounted Cumulative Gain: NDCG 是一种基于排名的指标,它考虑了列表推荐中的 item 顺序。
不同 HRM 变体的比较:
在聚合中仅使用均值池化操作的
仅使用一次最大池化操作的
在聚合中全部使用最大池化操作的 next basket recommendation 中对多个因子之间的交互进行建模的优势。

不同方法之间的比较:我们选择 HRM 版本与 baseline 方法进行比较。
总体而言,TOP 方法效果最差。然而我们发现 Top 方法在 T-Mall 数据集上优于 MC。这可能是由于 T-Mall 数据集中的商品实际上是品牌。因此流行品牌在训练集和测试集上的分布非常接近,这符合 Top 方法的假设并导致更好的性能。
NMF 方法在大多数情况下优于 MC 方法。一个主要原因是 MC 方法中估计的转移矩阵相当稀疏,直接应用它进行推荐可能导致效果不佳。提高 MC 方法性能的一种方法是分解转移矩阵从而缓解稀疏性问题。
通过结合序列行为和用户的通用兴趣,FPMC 可以获得比 MC 和 NMF 更好的结果。
通过进一步引入多个因子之间的交互,baseline 方法。

为进一步研究不同方法的性能,我们根据用户的活跃度将用户分为三组(即,不活跃、中等活跃、活跃)并对不同用户组进行比较。以 Ta-Feng 数据集为例,如果用户购买历史少于 5 次则为不活跃、超过 20 次则为活跃、否则为中等活跃。这样,不活跃、中等活跃、活跃用户的占比分别为 40.8%, 54.5%, 4.7% 。由于篇幅所限我们仅报告 Ta-Feng 数据集的结果,其它数据集的结果也是类似的。
Top 方法仍然是所有用户组中表现最差的。
MC 在非活跃用户和中等活跃用户上的效果都优于 NMF,而在活跃用户上比 NMF 更差。这表明,NMF 很难通过很少的交易来学习良好的 user representation 从而进行推荐。
通过将序列行为和用户的通用兴趣来线性组合,FPMC 在非活跃用户和活跃用户上的性能优于 MC、在非活跃用户和中等活跃用户上的性能优于 NMF 。但是,我们可以看到不同用户组的改进并不是很一致。

负采样的影响:这里我们研究负采样数量 Ta-Feng 数据集和 BeiRen 数据集上 T-Mall 数据集上
随着 F1-Score 也随之提升,并且三个数据集的趋势非常一致。
随着 baseline 比较实验中,我们在 Ta-Feng, BeiRen, T-Mall 数据集中,分别将 25, 60, 6 。
