数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
三、HRM [2015]
购物篮分析
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
与state-of-the-art baseline
方法相比的有效性。主要贡献:
- 为
next basket recommendation
引入了一个通用模型,该模型可以捕获序列行为和用户的通用兴趣,并灵活地结合多个因子之间的不同交互。 - 在
hierarchical model
中引入了两种类型的聚合函数,即均值池化和最大池化,并研究了这些函数的不同组合的效果。 - 理论上表明
HRM
模型在选择适当聚合函数的情况下,包含了几种现有的推荐方法。 - 实验表明,
HRM
模型在next basket recommendation
的不同评估指标下始终优于state-of-the-art baseline
。
- 序列推荐器
相关工作:
next basket recommendation
是基于隐式反馈的推荐系统的典型应用,其中用户没有显式的偏好(如评分),而只有正向的观察positive observation
(如购买或点击)。序列推荐器:主要基于马尔科夫链模型,通过在给定最近一个动作的情况下预测用户的下一步动作来利用序列数据。我们的工作与之前方法的主要区别在于:除了序列行为之外,我们还包含了用户的通用兴趣。以外,以前的序列推荐器很少解决因子中
item
之间的交互。通用推荐器:根据用户的整个购买历史进行推荐 ,而不考虑序列行为。通用推荐器的关键思想是协同过滤
collaborative filtering: CF
,它进一步可以分为基于内存的CF
(通过某些相似性度量找到k
近邻的用户或item
来进行推荐)、以及基于模型的CF
(通过分解user-item
相关性矩阵来进行推荐)。通用推荐器擅长捕获用户的通用兴趣,但是如果没有建模序列行为,那么很难将其用于用户最近的购买行为。混合模型
hybrid model
:结合了序列行为建模和用户通用兴趣建模。一个
state-of-the-art
模型是FPMC
,它构建了一个概率转移立方体transition cube
,其中立方体的每一项给出了用户 $ u $ 在最近购买了item
$ i $ 的条件下接着购买了item
$ j $ 的概率。通过分解这个立方体,该方法通过用户、last item
、next item
之间的三个pairwise
交互来解释这个概率。以这种方式,FPMC
通过last item
与next item
之间的交互来建模序列行为,通过用户与next item
之间的交互来建模用户的通用兴趣。实验表明,这种混合模型可以比单独的序列推荐器、或者单独的通用推荐器实现更好的性能。
3.1 模型
动机:
next basket recommendation
的一个简单的解决方案是:线性组合序列因子sequential factor
(来自序列行为模型)和通用因子general factor
(来自用户通用兴趣模型)。然而,这种线性组合假设多个因子之间是独立的。真实世界的结果表明,不同因子之间的独立性假设可能不足以提供良好的推荐。我们需要一个能够更复杂地集成多个因子之间交互的模型。这成为我们工作的主要动机。令
$ \mathcal U = \{u_1,\cdots,u_{M}\} $ 为所有用户集合, $ \mathcal I = \{i_1,\cdots,i_{N}\} $ 为所有item
集合, $ M $ 为所有用户数量, $ N $ 为所有item
数量。对于每个用户
$ u $ ,其交易的购买历史为 $ \mathbb T^u=\left(\mathcal T_1^u,\cdots,\mathcal T_{t_u-1}^u\right) $ ,其中 $ \mathcal T_t^u\sube \mathcal I $ 为 $ t $ 时刻该用户的购买item
集合, $ t_u-1 $ 为该用户最近一次购买的时间。所有用户的购买历史记做 $ \mathbb T = \left\{\mathbb T^{u_1},\cdots,\mathbb T^{u_M}\right\} $ 。给定 $ \mathbb T $ ,next basket recommendation
任务是推荐用户 $ u $ 在下一个时刻(即时刻 $ t_u $ )访问时可能会购买的item
。next basket recommendation
任务可以公式化为对用户 $ u $ 在第 $ t_u $ 时刻的交易构建个性化的ranking
$ \succ_{u,t} \in \mathcal I\times \mathcal I $ ,基于这个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
从而建模了用户的通用兴趣。该模型有两个不足:
- 首先,模型无法捕获用户的所有历史,只能“看到 “最近” 一次发生的交易,所以无法捕获用户的长期兴趣。
- 其次,模型没有捕获用户兴趣的动态演变。
- 第一层通过聚合最近一次交易的
更正式而言,令
$ \mathbf V^U\in \mathbb R^{M\times d} $ 为用户representation
矩阵,第 $ u $ 行 $ \mathbf{\vec v}_u^U\in \mathbb R^d $ 为用户 $ u $ 的representation
向量, $ d $ 为因子维度。令 $ \mathbf V^I\in \mathbb R^{N\times d} $ 为item representation
矩阵,第 $ i $ 行 $ \mathbf{\vec v}_i^I\in \mathbb R^d $ 为item
$ i $ 的representation
向量。给定用户
$ u $ 的两个连续的交易 $ \mathcal T^u_{t-1} $ 和 $ \mathcal T^u_t $ ,HRM
通过一个softmax
函数定义用户 $ u $ 在给定最近一个交易 $ \mathcal T_{t-1}^u $ 的条件下购买next item
$ i $ 的概率:其中
$ \mathbf{\vec v}_{u,t-1}^H $ 为用户 $ u $ 在时刻 $ t-1 $ 的hybrid representation
,它被定义为:其中
$ f_1(\cdot) $ 和 $ f_2(\cdot) $ 分别表示第一层和第二层的聚合函数。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
,即: $ \text{HRM}_\text{AvgAvg},\text{HRM}_\text{MaxAvg},\text{HRM}_\text{AvgMax},\text{HRM}_\text{MaxMax} $ ,其中第一个下标表示第一层的聚合函数、第二个下标表示第二层的下标操作。正如我们所看到的,这四个HRM
版本实际上假设多个因子之间的交互程度不同。- 通过仅使用均值池化,
$ \text{HRM}_\text{AvgAvg} $ 假设所有因子之间都是独立的。此外,我们稍后表明 $ \text{HRM}_\text{AvgAvg} $ 可以视为FPMC
的某种变体。 $ \text{HRM}_\text{MaxAvg},\text{HRM}_\text{AvgMax} $ 都引入了部分交互,要么在最近一个交易的item
之间、要么在user represetnation
和transaction representation
之间。 $ \text{HRM}_\text{MaxMax} $ 同时在两层中使用非线性操作,从而假设所有因子之间完全交互。
- 通过仅使用均值池化,
HRM
的损失函数是负的对数似然:其中:
$ \lambda $ 为正则化系数, $ \Theta $ 为模型参数(即 $ \Theta=\left\{\mathbf V^U,\mathbf V^I\right\} $ )。然而直接优化上述目标函数是不现实的,因为计算完整的
softmax
的代价与item
数量 $ N $ 成正比,而这个数量通常非常大。因此我们使用负采样技术:其中:
$ \sigma(x) $ 为sigmoid
函数, $ k $ 为负样本数量, $ j $ 为被采样的负样本, $ P_I $ 为负采样的噪音分布noise distribution
。正如我们所看到的的,带负采样的
HRM
的目标旨在最大化观察到的item
$ i $ 的概率、同时最小化未观察到的item
$ j $ 的概率。我们使用随机梯度下降算法来最小化
$ \mathcal L_\text{NEG} $ 。此外,在学习非线性模型时,我们还采用了Dropout
技术来避免过拟合。在我们的工作中,我们为每个单元设置了一个固定的dropout rate
(即,0.5
)。一旦学到
user representation
和item representation
,则HRM
的next basket recommendation
过程如下:- 给定用户
$ u $ 及其最近一次交易 $ \mathcal T_{t_u-1}^u $ ,对于每个候选item
$ i\in \mathcal I $ ,计算未归一化的概率 $ \mathbf{\vec v}_i^I \cdot \mathbf{\vec v}_{u,t-1}^{H} $ 。 - 然后根据
item
的未归一化概率对item
进行排序,并选择top n
个结果来推荐给用户。
注意,由于排序只需要考虑相对大小,因此没有必要计算完整的
softmax
值。- 给定用户
3.2 和之前模型的关系
HRM
和马尔科夫链的关系:HRM
可以简化为某种类型的马尔科夫链模型。我们选择特殊的聚合函数:
- 对于第一层聚合,我们随机选择一个
item
向量作为transaction representation
。 - 对于第二层聚合,我们选择
transaction representation
作为hybrid representation
。
我们将这种模型称作
$ \text{HRM}_\text{CopyItem} $ ,即:其中
$ \mathbf{\vec v}_s^I $ 表示从最近一次交易中随机选择的item
的representation
。类似于
《distributed representations of sentences and documents》
中的推导,我们得到上式的最优解:这意味着
$ \text{HRM}_\text{CopyItem} $ 实际上是一个factorized Markov chain model: FMC
,它通过分解item
(这些item
来自于两个连续的交易)之间的转移矩阵transition matrix
,这个转移矩阵与shifted PMI
矩阵相关联。当 $ k=1 $ 时,转移矩阵就变为PMI
矩阵。事实上,如果我们采用噪声对比估计进行优化,则最优解为:
这意味着
$ \text{HRM}_\text{CopyItem} $ 分解的转移矩阵是shifted
的对数条件概率矩阵。- 对于第一层聚合,我们随机选择一个
HRM
和矩阵分解模型:HRM
可以简化为矩阵分解模型。HRM vs Matrix Factorization Model
:我们选择特殊的聚合函数:对于第二层聚合,我们选择
user representation
作为hybrid representation
(此时第一层完全被移除掉)。我们将这种模型称作 $ \text{HRM}_\text{CopyUser} $ ,即:其最优解为:
通过这种方式,
$ \text{HRM}_\text{CopyUser} $ 简化为矩阵分解模型,该模型分解了一个shifted PMI
矩阵。这个
shifted PMI
矩阵和 $ \text{HRM}_\text{CopyItem} $ 的shifted PMI
矩阵在公式上不相同。HRM
和FPMC
的关系:HRM
可以简化为FPMC
模型的某种变体。基于
S-BPR
优化准则和最大后验估计的FPMC
,其损失函数为:其中
$ \hat g(\cdot) $ 为预测模型prediction model
:对于
HRM
模型,如果我们选择负样本数量 $ k=1 $ ,并且在每一层使用均值池化,我们称这个变体为 $ \text{HRM}_\text{AvgAvgNeg1} $ ,则它的损失函数为:考虑到每一层都是均值池化,则有:
因此有:
可以看到:
$ \text{HRM}_\text{AvgAvgNeg1} $ 与FPMC
共享相同的预测模型(即, $ \hat g(u,t,i) $ ),但是二者采用不同的pairwise
优化准则optimization criteria
:FPMC
使用pairwise ranking
损失函数,即 $ \log\sigma\left(\hat g(u,t,i) - \hat g(u,t,j)\right) $ ,这使得观察到的item
$ i $ 的ranking
高于未观察到的item
$ j $ 。 $ \text{HRM}_\text{AvgAvgNeg1} $ 也使用pairwise ranking
损失函数,即 $ \log \sigma\left(\hat g(u,t,i)\right)+ \log\sigma\left(-\hat g(u,t,j)\right) $ ,这使得最大化观察到的item
$ i $ 的ranking
、最小化未观察到的item
$ j $ 的ranking
。
实际上,我们也可以采用
S-BPR
准则来定义 $ \text{HRM}_\text{AvgAvg} $ 的目标函数,从而得到与FPMC
相同的模型。基于上述分析,我们可以看到
HRM
实际上是一个非常通用的模型。通过引入不同的聚合函数,我们可以包含已有方法。此外,我们还可以探索其它预测函数以及优化准则,从而展现HRM
的灵活性和潜力。
3.3 实验
数据集:我们使用三个真实交易数据集来评估不同的推荐方法。
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
。预测模型为:其中转移概率
$ p(i\mid j) $ 是从训练集中估计而来。Nonnegative Matrix Factorization: NMF
:是一种state-of-the-art
的协同过滤方法。它是基于user-item
矩阵的非负矩阵分解,该矩阵是通过丢弃序列信息从交易数据集构造而来。FPMC
:next basket recommendation
的state-of-the-art
混合模型,预测时同时考虑了序列行为和用户的通用兴趣。
对于
NMF, FPMC, HRM
方法,我们在Ta-Feng
数据集和BeiRen
数据集上设置维度 $ d\in \{50,100,150,200\} $ ,在T-Mall
数据集上设置 $ d\in \{10,15,20,25\} $ 。评估指标:我们在测试集中对每个用户
$ u $ 的最后一次交易 $ \mathcal T_{t_u}^u $ 进行评估。对每种推荐方法,我们为每个用户 $ u $ 生成一个包含 $ K $ 个item
( $ K=5 $ )的item
列表 $ \mathcal R(u) $ ,其中 $ \mathcal R_i(u) $ 表示第 $ i $ 个位置推荐的item
。我们使用以下指标来评估推荐列表与实际购买的item
:F1-Score
:它是precision
和recall
的调和平均值,是广泛应用的指标。Hit-Ratio
:如果实际购买的item
至少有一项也出现在推荐列表中,则称之为命中。命中的推荐列表占所有推荐列表的比例称之为命中率。命中率关注推荐系统的召回率,即所有用户中有多少比率的人获得至少一个正确的推荐。NDCG@k
:Normalized Discounted Cumulative Gain: NDCG
是一种基于排名的指标,它考虑了列表推荐中的item
顺序。
不同
HRM
变体的比较:- 在聚合中仅使用均值池化操作的
$ \text{HRM}_\text{AvgAvg} $ 在四种变体中效果最差。这表明通过假设所有因子之间的独立性,我们可能无法学到好的推荐模型。 - 仅使用一次最大池化操作的
$ \text{HRM}_\text{AvgMax} $ 和 $ \text{HRM}_\text{MaxAvg} $ 相比 $ \text{HRM}_\text{AvgAvg} $ 的效果更好。但是,这两个模型之间并没有哪个模型表现出一致性地优于对方,这表明不同层的交互都能够以各自的方式来帮助推荐。 - 在聚合中全部使用最大池化操作的
$ \text{HRM}_\text{MaxMax} $ 超越了其它三个变体,这表明在next basket recommendation
中对多个因子之间的交互进行建模的优势。
- 在聚合中仅使用均值池化操作的
不同方法之间的比较:我们选择
$ \text{HRM}_\text{MaxMax} $ 这个HRM
版本与baseline
方法进行比较。- 总体而言,
TOP
方法效果最差。然而我们发现Top
方法在T-Mall
数据集上优于MC
。这可能是由于T-Mall
数据集中的商品实际上是品牌。因此流行品牌在训练集和测试集上的分布非常接近,这符合Top
方法的假设并导致更好的性能。 NMF
方法在大多数情况下优于MC
方法。一个主要原因是MC
方法中估计的转移矩阵相当稀疏,直接应用它进行推荐可能导致效果不佳。提高MC
方法性能的一种方法是分解转移矩阵从而缓解稀疏性问题。- 通过结合序列行为和用户的通用兴趣,
FPMC
可以获得比MC
和NMF
更好的结果。 - 通过进一步引入多个因子之间的交互,
$ \text{HRM}_\text{MaxMax} $ 在三个数据集上的所有指标方面都始终优于所有baseline
方法。
为进一步研究不同方法的性能,我们根据用户的活跃度将用户分为三组(即,不活跃、中等活跃、活跃)并对不同用户组进行比较。以
Ta-Feng
数据集为例,如果用户购买历史少于5
次则为不活跃、超过20
次则为活跃、否则为中等活跃。这样,不活跃、中等活跃、活跃用户的占比分别为40.8%, 54.5%, 4.7%
。由于篇幅所限我们仅报告 $ d=50 $ 下Ta-Feng
数据集的结果,其它数据集的结果也是类似的。Top
方法仍然是所有用户组中表现最差的。MC
在非活跃用户和中等活跃用户上的效果都优于NMF
,而在活跃用户上比NMF
更差。这表明,NMF
很难通过很少的交易来学习良好的user representation
从而进行推荐。- 通过将序列行为和用户的通用兴趣来线性组合,
FPMC
在非活跃用户和活跃用户上的性能优于MC
、在非活跃用户和中等活跃用户上的性能优于NMF
。但是,我们可以看到不同用户组的改进并不是很一致。 $ \text{HRM}_\text{MaxMax} $ 在所有分组上在所有指标都达到最佳性能。这表明,对多个因子之间交互进行建模可以帮助不同类型的用户生成更好的推荐。
- 总体而言,
负采样的影响:这里我们研究负采样数量
$ k $ 对于 $ \text{HRM}_\text{MaxMax} $ 推荐效果的影响。这里我们选择Ta-Feng
数据集和BeiRen
数据集上 $ d=50 $ ,T-Mall
数据集上 $ d=10 $ 。- 随着
$ k $ 的增加,测试集F1-Score
也随之提升,并且三个数据集的趋势非常一致。 - 随着
$ k $ 的增加,获得的性能增益在降低。这表明如果我们继续采样更多负样本,则性能略微提升但是计算复杂度大幅增加。因此在我们的baseline
比较实验中,我们在Ta-Feng, BeiRen, T-Mall
数据集中,分别将 $ k $ 设置为25, 60, 6
。
- 随着
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论