数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
十四、SHAN [2018]
不同于传统的推荐系统,在序列推荐场景存在新的挑战:
- 首先,用户行为仅反映了他们的隐式反馈(如,是否购买),而不是显式反馈(如,评分)。这种类型的数据会带来更多的噪音,因为我们无法区分用户是不喜欢
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
损失函数。从实验中,可以观察到论文所提出的模型在两个数据集上优于state-of-the-art
的算法。最后,论文的贡献如下:
- 论文引入注意力机制来建模用户动态
user dynamic
、个人偏好从而进行序列推荐。 - 通过层级结构,论文结合用户的长期偏好和短期偏好来生成用户的
high-level hybrid representation
。 - 论文对两个数据集进行了实验,结果表明所提出的模型在召回率和
AUC
指标上始终优于state-of-the-art
方法。
- 首先,用户行为仅反映了他们的隐式反馈(如,是否购买),而不是显式反馈(如,评分)。这种类型的数据会带来更多的噪音,因为我们无法区分用户是不喜欢
相关工作:
为了联合建模用户的个性信息
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
(即,权重)。
14.1 模型
令
$ \mathcal U $ 为用户集合, $ \mathcal V $ 为item
集合, $ |\mathcal U| $ 和 $ |\mathcal V| $ 分别为对应集合的大小。在这项工作中,我们聚焦于从隐式的、顺序的user-item
反馈数据(如,用户的连续check-in
记录、连续的购买交易记录)中抽取信息。对于每个用户
$ u\in \mathcal U $ ,该用户的序列交易记做 $ \mathbb S^u= \left\{\mathcal S_1^u,\mathcal S_2^u,\cdots,\mathcal S_T^u\right\} $ ,其中 $ T $ 为time step
的总数, $ \mathcal S_t^u\sube \mathcal V $ 为用户 $ u $ 在time step
$ t $ 的交易对应的item
集合。- 对于给定的
time step
$ t $ ,item
集合 $ \mathcal S_t^u $ 可以反应用户 $ u $ 在时刻 $ t $ 的短期偏好,这是预测该用户即将购买的next item
的重要因素。 - 另一方面,在
time step
$ t $ 之前购买的item
集合,记做 $ \mathcal L^u_{t-1} = \mathcal S_1^u\cup \mathcal S_2^u\cup\cdots\cup \mathcal S_{t-1}^u $ 可以反映用户 $ u $ 的长期偏好(即通用品味)。
在后面的内容中,我们将
$ \mathcal L_{t-1}^u $ 命名为关于time step
$ t $ 的长期item set
,将 $ \mathcal S_t^u $ 命名为关于time step
$ t $ 的短期item set
。形式上,给定用户
$ u $ 及其序列交易 $ \mathbb S^u $ ,我们的目标是根据从 $ \mathbb S^u $ 中学到的长期偏好和短期偏好来推荐用户即将购买的next item
。- 对于给定的
我们根据用户偏好的以下特点,提出了一种基于
hierarchical attention network
的新方法,如下图所示。这些特点为:用户偏好在不同的
time step
是动态dynamic
的。不同的
item
对将要被购买的next item
有不同的影响。对于不同的用户,相同的
item
可能对next item prediction
产生不同的影响。例如,用户
A/B
的行为序列都是 $ \{i_1,i_2,i_3,i_4\} $ ,但是由于用户A
和B
之间存在差异(例如年龄、性别、收入水平等等),导致相同的行为序列得到不同的注意力权重。
我们方法的基本思想是:通过联合学习长期偏好和短期偏好从而为每个用户生成一个
hybrid representation
。更具体而言,我们首先将稀疏的user input
和item input
(即,one-hot representation
)嵌入到低维稠密向量中。之后,我们通过结合长期偏好和短期偏好的双层结构来学习每个用户的hybrid representation
。- 为了捕获
time step
$ t $ 之前的长期偏好,我们学习了一个long-term user representation
,它是长期的item set
$ \mathcal L_{t-1}^u $ 中的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
)嵌入到两个连续的低维空间中。形式上,令
$ \mathbf U\in \mathbb R^{K\times |\mathcal U|} $ 为user embedding
矩阵,令 $ \mathbf V\in \mathbb R^{K\times |\mathcal U|} $ 为item embedding
矩阵,其中 $ K $ 为潜在embedding
空间的维数。 $ \mathbf{\vec u}_u\in\mathbb R^K $ 为 $ \mathbf U $ 的第 $ u $ 列,表示用户 $ u $ 的user embedding
向量。 $ \mathbf{\vec v}_i\in \mathbb R^K $ 为 $ \mathbf V $ 的第 $ i $ 列,表示item
$ i $ 的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
可能在不同用户上产生不同的影响。例如,假设用户 $ a $ 出于兴趣为自己购买了item
$ x $ ,而用户 $ b $ 购买item
$ x $ 作为礼物送给别人。在这种情况下,可以合理地推断,当预测用户 $ a $ 和 $ b $ 的next item
时,item
$ x $ 具有不同的权重或注意力。
为了满足上述要求,我们提出使用已经成功应用于许多任务的注意力机制。注意力机制首先计算给定用户的长期
item set
中每个item
的重要性,然后聚合这些item
的embedding
从而形成long-term user preference representation
。形式上,注意力网络定义为:其中:
$ \mathbf W_1\in \mathbb R^{K\times K}, \mathbf{\vec b}_1\in \mathbb R^K $ 为模型参数。 $ \mathbf{\vec u} $ 为用户 $ u $ 的user embedding
向量, $ \mathbf{\vec v}_j $ 为长期item set
中item
$ j $ 的item embedding
。 $ \phi(\cdot) $ 为激活函数,这里我们选择ReLU
非线性激活函数。
与传统的注意力模型对每个用户的每个
input
使用相同的context
向量不同(即,global
的),我们将用户 $ u $ 的embedding
$ \mathbf{\vec u} $ 作为context
向量(因此不同用户的context
向量不同,即personalized
的)。注意,和
DIN/RUM
不同,这里的attention
并不是将target item
与历史item
进行注意力计算,而是将用户静态偏好(以 $ \mathbf{\vec u} $ 来衡量)与历史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
$ \mathbf{\vec u}_{t-1}^{\text{long}} $ 为以注意力分数加权的item embedding
的加权和,即:- 由于用户的长期
Long- and Short-term Attention-based Pooling Layer
:除了用户的通用品味之外,还需要考虑用户的序列行为(即,短期偏好)。短期偏好对于预测next item
很重要,并且已有研究将长期偏好和短期偏好相结合从而进行序列推荐。然而,在这些早期工作中,短期偏好和长期偏好的交互仍然是线性的。并且,item
被分配以相同的权重,这无法反映item
对next item prediction
的影响,因此限制了模型的性能。与建模用户长期偏好类似,我们也采用注意力网络,从而为
long-term representation
和短期item set
中的item
的embedding
分配权重,进而捕获用户 $ u $ 的high-level representation
。正式地,其中:
$ \mathbf W_2\in \mathbb R^{K\times K}, \mathbf{\vec b}_2\in \mathbb R^K $ 为模型参数。 $ \mathbf{\vec u} $ 为用户 $ u $ 的user embedding
向量, $ \mathbf{\vec v}_j $ 短期item set
中item
$ j $ 的item embedding
。注意,当 $ j=0 $ 时 $ \mathbf{\vec v}_0 = \mathbf{\vec u}_{t-1}^{\text{long}} $ ,即long-term user representation
。
类似地,
user embedding
被作为context vector
从而实现个性化的注意力(即,相同item
在不同用户上分配不同的权重)。在获得归一化的注意力分数之后,hybrid user representation
计算为:其中
$ \beta_0 $ 为长期用户偏好的注意力权重。总而言之,
$ \mathbf{\vec u}_t^{\text{hybrid}} $ 不仅考虑了长期偏好的动态属性和短期偏好的动态属性,而且还区分了每个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
$ \mathbf{\vec u}_t^{\text{hybrid}} $ 之后,我们采用传统的潜在因子模型来计算用户在item
$ j $ 上的偏好分:但是,用户交易记录是一种隐式数据。由于数据稀疏性问题和
unobserved data
的模糊性ambiguity
,我们很难直接优化偏好分 $ r_{u,j,t} $ 。我们模型的目标是在给定用户在时刻
$ t $ 的长期item set
和短期item set
的情况下,提供一个ranked list
。因此,我们更感兴趣的是item
的排名而不是真实的偏好分。遵循BPR
优化准则,我们为我们的模型提出一个pair-wise ranking
目标函数。我们假设用户更喜欢next purchased item
而不是unobserved item
,并在item
$ j $ 和item
$ k $ 上定义一个排名次序ranking order
$ \succ_{u,\mathcal L_{t-1}^u,\mathcal S_t^u} $ :其中
$ j $ 为被用户 $ u $ 在time step
$ t $ 购买的next item
, $ k $ 是bootstrap sampling
生成的unobserved item
。对于每个
observation
$ (u,\mathcal L_{t-1}^u,\mathcal S_t^u,j) $ ,我们生成pairwise preference order
的一个集合 $ \mathcal D = \left\{(u,\mathcal L_{t-1}^u, \mathcal S_t^u,j,k)\right\} $ 。然后我们通过最大化后验概率maximizing a posterior: MAP
来训练我们的模型:其中:
$ \Theta=\left\{\mathbf U,\mathbf V,\mathbf W_1,\mathbf W_2,\mathbf{\vec b}_1,\mathbf{\vec b}_2\right\} $ 为模型的待学习参数集合, $ \Theta_{u,v} = \{\mathbf U,\mathbf V\} $ 为user embedding
和item embedding
待学习参数集合, $ \Theta_a = \{\mathbf W_1,\mathbf W_2\} $ 为注意力网络的待学习权重集合。 $ \sigma(\cdot) $ 为逻辑回归函数logistic function
, $ \lambda = \{\lambda_{u,v},\lambda_a\} $ 为正则化系数。为什么使用不同的正则化系数?用一个正则化系数不行吗?猜测的原因是不同的参数的取值不同,这可以通过后面的消融实验来验证。如果使用同一个正则化系数,那么该系数的选择被取值较大的参数所主导(可以通过统计参数范数的均值来观察)。进一步地,是否需要针对每个参数设置一个正则化系数?
SHAN
算法:输入:
- 长期
item set
$ \mathcal L_{t-1}^u $ ,短期item set
$ \mathcal S_t^u $ - 学习率
$ \eta $ ,正则化系数 $ \lambda $ ,维度 $ K $
- 长期
输出:模型参数集合
$ \Theta $算法步骤:
从正态分布
$ \mathcal N(0,0.01) $ 中采样从而初始化 $ \Theta_{u,v} $ 。从均匀分布
$ \mathcal U\left(-\sqrt{\frac{3}{K}},\sqrt{\frac{3}{K}}\right) $ 中采样从而初始化 $ \Theta_a $ 。为什么采用不同的权重初始化策略?论文并未解释。
重复以下过程直到算法收敛:
混洗
observation
集合 $ \left\{\left(u,\mathcal L_{t-1}^u, \mathcal S_t^u,j\right)\right\} $ ,对每个observation
$ \left(u,\mathcal L_{t-1}^u, \mathcal S_t^u,j\right) $ 执行:- 随机从
$ \mathcal V\backslash \mathcal L_{t-1}^u $ 中采样一个unobserved item
$ k $ 。 - 计算
$ \mathbf{\vec u}_t^{\text{hybrid}} $ 。 - 计算
$ r_{u,j,t} $ 和 $ r_{u,k,t} $ 。 - 使用梯度下降来更新参数集合
$ \Theta $ 。
- 随机从
返回参数集合
$ \Theta $ 。
14.2 实验
我们进行实验回答以下几个问题:
- 与其它
state-of-the-art
方法相比,我们的模型的性能如何? - 在我们模型中,长期偏好和短期偏好的影响是什么?
- 超参数(如正则化参数、
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
是一种用于隐式用户反馈数据的、state-of-the-art
的pairwise learning to rank
框架。我们选择矩阵分解作为internal predictor
。FPMC
:该方法通过矩阵分解建模用户偏好、通过一阶马尔科夫链建模序列信息,然后通过线性方式将它们组合起来进行next basket recommendation
。FOSSIL
:该方法将factored item similarity
和马尔科夫链相结合,从而建模用户的长期偏好和短期偏好。注意,我们将 $ \eta_u $ 和 $ \eta $ 都设置为单个标量,因为每个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
数据集上,当 $ N $ 从50
继续增加时,TOP
方法在召回率方面超越了BPR
,甚至在AUC
指标上超越了FPMC
。这种现象可以解释为:
- 用户在网上购物时可能倾向于购买热门
item
。因此,当 $ N $ 足够大时TOP
方法可以达到更好的性能。 - 相反,由于
Gowalla
数据集中的用户check-in
数据更加个性化,因此TOP
方法的性能要比其它方法差很多。
最后,我们的模型可以在不同的
$ N $ 上优于所有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
正则化系数 $ \lambda_{u,v} $ 、以及注意力网络正则化系数 $ \lambda_a $ 来避免过拟合问题。下表展示了不同正则化系数的取值对于Recall@20
指标的影响。可以看到:当
$ \lambda_a\gt 0 $ 时,模型性能会大大提高。这也表明注意力网络对我们的任务很有帮助。可以看到,
$ \lambda_a $ 和 $ \lambda_{u,v} $ 的取值范围不同,因此间接说明不同类型参数的范数大小位于不同量级。我们进一步研究了维度大小
$ K $ 的影响。 $ K $ 不仅与user embedding
和item embedding
的size
有关,还与注意力网络中的MLP
参数有关。为简单起见,user embedding
和item embedding
的size
是相同的。可以看到:大的
$ K $ 值可以更好地嵌入用户和item
,并且将更有利于通过注意力网络构建high-level
的因子交互factor interaction
。这种现象类似于传统的潜在因子模型。在实验中,我们将 $ K $ 设为100
,从而平衡两个数据集的计算成本和推荐质量。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论