数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
四、DREAM [2016]
通常而言,
next basket recommendation
有两种不同的方法:- 协同过滤
collaborative filtering: CF
模型:它捕获用户的通用兴趣general interest
,但是难以考虑历史交易的序列特征。矩阵分解matrix factorization: MF
模型是一个成功的CF
模型,它对整个历史交易数据构建的user-item
矩阵进行因子分解,并用潜在向量来表达用户的通用兴趣。 - 基于马尔科夫链的序列推荐模型:它从历史交易中提取序列特征,然后根据这些序列行为预测
next purchase
。
因此,
next basket recommendation
的一种更合适的方法是在混合模型hybrid model
中同时捕获上述序列行为和用户通用兴趣。- 因子分解个性化马尔科夫链
Factorizing Personalized Markov Chain: FPMC
可以对每两个相邻basket
之间的序列行为进行建模,并且用户的通用兴趣由basket
中的item
来塑造shaped
。但是,FPMC
只是对多个因子进行线性运算,并不能描述多个因子之间的交互。 Hierarchical Representation Model: HRM
似乎部分地解决了如何通过非线性最大池化操作来聚合多个交互因子的问题。然而,所有基于马尔科夫链的方法(包括上述FPMC
和HRM
)都具有相同的缺陷,即这些推荐器只能对每两个相邻basket
之间的局部序列行为进行建模,而这这两个相邻basket
有时可能不相关。例如,用户 $ u $ 可能在 $ t_1 $ 时刻购买了一个ultrabook
、在 $ t_2 $ 时刻购买了一些食物、在 $ t_3 $ 时刻购买了ultrabook
的配件,此时每两个相邻basket
之间不存在任何相关性。因此,我们需要对全局序列行为进行建模,从而充分利用sequential basket
之间的所有相关性,如 $ t_1 $ 时刻和 $ t_3 $ 时刻的basket
。出于这个原因,论文《A Dynamic Recurrent Model for Next Basket Recommendation》
计划在用户的所有sequential basket
中对全局序列特征进行建模。
如前所述,
HRM
提取的局部序列特征不足以对不同basket
之间的关系进行建模,而深度RNN
架构的循环操作可以从用户的所有basket
中捕获全局序列特征。因此,论文《A Dynamic Recurrent Model for Next Basket Recommendation》
提出了一个动态循环模型DREAM
用于next basket recommendation
。DREAM
模型的输入由一系列basket
的item
组成,这些item
构成了特定用户的、顺序的交易。随着时间的推移,池化操作和矩阵运算为每个用户提供dynamic representation
。此外,循环结构可以从整体历史交易数据中获得每个用户的一些全局序列特征。论文在两个真实世界数据集上的实验结果表明,和FPMC
、HRM
等state-of-the-art
模型相比,DREAM
模型在next basket recommendation
方面取得了很大的进步。这项工作的主要贡献:
- 论文调研了每个用户的
dynamic representation
,以及item
购买历史的全局序列行为。 - 论文在两个真实世界数据集上进行实验从而验证了
DREAM
模型的有效性。
据作者所知,
DREAM
是首个尝试结合dynamic representation
和全局序列行为从而提高next basket recommendation
性能的方法。- 协同过滤
4.1 模型
令
$ \mathbf N\in \mathbb R^{|\mathcal I|\times d} $ 为item
的representation
矩阵,其第 $ i $ 行 $ \mathbf{\vec n}_i \in \mathbb R^{d} $ 为item
$ i\in \mathcal I $ 的representation
向量, $ d $ 为representation
维度。所有item
的集合为 $ \mathcal I $ ,集合大小为 $ |\mathcal I| $ 。对于用户
$ u $ ,历史交易 $ \mathbb B^u $ 为basket
集合 $ \left\{\mathcal B_{t_1}^u,\mathcal B_{t_2}^u,\cdots\right\} $ ,其中该集合按照时间顺序排列, $ \mathcal B_{ t_i}^u\sube \mathcal I $ 为用户 $ u $ 在时刻 $ t_i $ 购买的basket of items
。对于具有历史交易数据的
next basket recommendation
,我们将问题公式化为:预测每个用户在给定时刻 $ t_i $ 的item
的ranking list
。DREAM
的整体框架如下图所示。模型的输入是
basket
的序列。对于用户 $ u $ 的一个basket
$ \mathcal B_{t_i}^u $ ,我们得到basket
内item
的潜在representation
$ \mathbf B_{t_i}^u = \left\{\mathbf{\vec n}_{t_i,j}^u\in \mathbb R^d\mid j=1,2,\cdots,|\mathcal B_{t_i}^u|\right\} $ ,其中 $ \mathbf{\vec n}_{t_i,j}^u $ 为basket
$ \mathcal B_{t_i}^u $ 中第 $ j $ 个item
的潜在representation
, $ |\mathcal B_{t_i}^u| $ 为basket
$ \mathcal B_{t_i}^u $ 中的item
数量。现在,我们可以通过聚合这些item representation
来生成basket
$ \mathcal B_{t_i}^u $ 的basket representation
$ \mathbf{\vec b}_{t_i}^u $ 。在这项工作中,我们采用了两种聚合操作:最大池化、均值池化:basket representation
$ \mathbf{\vec b}_{t_i}^u $ 可以作为RNN
的输入层。隐层的
vector representation
$ \mathbf{\vec h}_{t_i}^u $ 是用户 $ u $ 在时刻 $ t_i $ 的dynamic representation
。RNN
矩阵 $ \mathbf R $ 有助于在每两个相邻隐状态 $ \mathbf{\vec h}_{t_i-1}^u $ 和 $ \mathbf{\vec h}_{t_i}^u $ 之间传播序列信号。 $ \mathbf X $ 为basket representation
和用户兴趣之间的转移矩阵。最后,隐层的vector representation
可以计算为:其中:
$ \mathbf{\vec b}_{t_i}^u $ 为用户 $ u $ 在时刻 $ t_i $ 的basket representation
, $ \mathbf{\vec h}_{t_i-1}^u $ 为用户 $ u $ 在前一时刻 $ t_i-1 $ 的dynamic representation
, $ f(\cdot) $ 为激活函数(这里我们选择sigmoid
函数)。最后,模型在时刻
$ t_i $ 输出用户对所有item
的得分 $ \mathbf{\vec o}_{t_i}^u $ :它是每个
item representation
和user dynamic representation
的内积。 $ o^u_{t_i,v} $ 表示用户 $ u $ 在时刻 $ t_i $ 与item
$ v $ 之间的交易得分,较高的得分意味着更可能购买相应的item
。
目标函数:我们选择
Bayesian Personalized Ranking: BPR
作为目标函数。我们的基本假设是:用户在特定时间更喜欢basket
中的item
,而不是负样本(即basket
之外的item
)。负样本可以是basket
之外的任何其它item
。因此我们最大化以下概率:其中:
$ v $ 为用户 $ u $ 在 $ t $ 时刻的正样本, $ v^\prime $ 为用户 $ u $ 在 $ t $ 时刻的负样本, $ \sigma(\cdot) $ 为sigmoid
函数。考虑所有的对数似然以及正则化项,则我们的目标函数为:
其中:
$ \lambda $ 为正则化系数, $ \Theta = \{\mathbf N, \mathbf R, \mathbf X\} $ 为待学习的参数矩阵。我们使用随机梯度下降来更新求解上述最优化问题。
DREAM
仅仅建模序列信息,并未建模用户的全局兴趣。可以看到这里并没有user embedding
矩阵。注意,
DREAM
模型迭代式地学习用户的representation
。即,我们可以迭代式地根据新的交易来更新已有的用户representation
(由于RNN
的性质),这种更新的代价相比分解完整的user-item
矩阵而言要小得多。
4.2 实验
数据集:
Ta-Feng
数据集:RecSys
会议发布的公开数据集,涵盖了从食品、办公用品到家具产品。T-mall
数据集:淘宝发布的一个公共的在线电商数据集,以品牌(而不是商品)的方式记录了在线交易。
我们对上述数据集进行预处理,每个用户至少购买
$ k $ 个item
才会被保留。对于Ta-Feng
数据集我们设置 $ k=10 $ ,对于T-Mall
数据集我们设置 $ k=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
混合模型,预测时同时考虑了序列行为和用户的通用兴趣。HRM
:是一种state-of-the-art
的hierarchical repre- sentation
模型,可以捕获通用的用户兴趣以及序列效应。此外,通过各种非线性操作,HRM
可以比先前的模型更准确地捕获所有这些因子。
评估指标:我们为每个用户
$ u $ 生成 $ K $ 个( $ K=5 $ )item
的ranking list
。我们使用F1-score
和Normalized Discounted Cumulative Gain: NDCG
指标。我们使用每个用户的最后一笔交易作为测试数据集,其它所有交易作为训练数据集。
item representation
是随机初始化的。此外我们给出不同
representation
维度 $ d $ 的结果。对于Ta-Feng
数据集, $ d\in \{50,100,150\} $ ;对于T-Mall
数据集, $ d\in \{10,15,20\} $ 。首先我们将
DREAM
模型与baseline
方法比较,如下图所示。整体而言,next basket recommendation
的性能排名如下:DREAM, HRM, FPMC, NMF, MC, TOP
。- 由于
TOP
仅推荐流行item
,并且没有利用每个basket
的特征,因此该方法效果最差。 - 尽管
NMF
和MC
仅利用了一种特征(或者是序列行为、或者是用户的通用兴趣),我们观察到NMF
比MC
效果更好,尤其是在稀疏的T-Mall
数据集上。可能是因为MC
无法揭露用户之间的协同信息。在T-Mall
的稀疏的user-item
矩阵上,协同信息相比较于稀疏的序列行为,对于生成用户的准确兴趣更重要。 - 在这两个数据集上,
HRM
模型都优于FPMC
模型。虽然FPMC
和HRM
都利用了序列行为,但是HRM
的多个因子之间的非线性运算为其带来了更好的性能。而FPMC
对basket
中item
交互的线性独立假设使其不适用于复杂的商业场景。 DREAM
在两个数据集上的所有指标方面都优于所有baseline
。这表明,具有循环架构的user dynamic representation
在捕获用户的序列特征和动态兴趣方面是有效的。此外,池化操作、激活函数等丰富的非线性操作有助于更好地表达basket
。
- 由于
然后我们比较最大池化和均值池化对
DREAM
模型的性能影响。可以看到,最大池化的效果要优于均值池化。显然,均值池化是一种线性操作,这表明
basket
中的每个item
都以独立的方式影响basket representation
。然而在现实世界的场景中,我们购买的许多item
都是交互的,即,一个item
会影响我们是否购买另一个item
,而购买item
的整体可以shape
我们的兴趣。 因此,更好的解决方案是通过非线性运算来学习basket
内item
的复杂交互关系。最大池化是一种非线性操作,能够比线性操作更好地学习复杂的交互。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论