数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
1.3 时序模型
用户的偏好不是静态的,而是随着时间的推移而动态演变。与使用上述模型对用户的静态偏好
static preference
进行建模不同,基于时序temporal/sequential
的推荐聚焦于对用户的动态偏好dynamic preference
或随着时间的序列模式sequential pattern
进行建模。给定一个用户集合
$ \mathcal U = \{u_1,\cdots,u_M\} $ ,以及一个item
集合 $ \mathcal I = \{i_1,\cdots,i_N\} $ ,当前的时序推荐可以分为三类:- 基于时间的推荐
temporal based recommendation
:对于一个用户 $ u\in \mathcal U $ 和一个item
$ i\in \mathcal I $ ,相关的user-item
交互行为被表示为一个四元组: $ (u,i,r_{u,t},t_{u,i}) $ 。其中: $ r_{u,i} $ 为详细评分, $ t_{u,i} $ 为该评分的时间戳。基于时间的推荐聚焦于对用户行为随时间的动态性进行建模。 - 基于会话的推荐
session based recommendation
:在某个会话 $ \mathcal S=[i_1,i_2,\cdots,i_{|\mathcal S|}] $ 中( $ \mathcal S\sube\mathcal I $ ),用户与一组item
进行交互(例如,用购物车消费、在有限的时间段内浏览互联网)。在许多基于会话的application
中,用户不登录且用户ID
不可用。因此,基于会话的推荐的流行方向是从会话数据中挖掘序列的item-item
交互模式从而获得更好的推荐。 - 基于时间和会话的推荐
temporal and session based recommendation
:这种方法结合了时间推荐和会话推荐的定义,其中每个事务transaction
被描述为 $ (u,\mathcal S,t) $ ,其中 $ \mathcal S \sube \mathcal I $ 为用户 $ u $ 在特定时间 $ t $ 消耗的item
的集合。在这种情况下,需要同时捕获item
的时间演变temporal evolution
和序列模式。
我们在下表中总结了推荐系统中建模时间和序列效应的主要技术,并在下图中说明了一些代表性工作。
- 基于时间的推荐
1.3.1 基于时间的推荐
基于时间的推荐模型聚焦于捕获用户偏好随时间的时间演变
temporal evolution
。由于RNN
在建模时间模式temporal pattern
方面的优越性,许多基于时间的方法都考虑了RNN
。Recurrent Recommender Network: RRN
是时间推荐的代表性研究之一,它同时赋予用户和item
各自一个LSTM
自回归架构。在RRN
中,用户 $ u $ 在时间 $ t $ 对item
$ i $ 的预测评分 $ \hat r_{u,i}^{(t)} $ 建模为:其中:
$ \mathbf{\vec p}_u^{(t)} $ 为用户 $ u $ 在时刻 $ t $ 的动态embedding
, $ \mathbf{\vec q}_i^{(t)} $ 为item
$ i $ 在时刻 $ t $ 的动态embedding
, $ f(\cdot,\cdot) $ 为temporal
评分预测函数。 $ \mathbf{\vec x}_u^{(t)} \in \mathbb R^{|\mathcal I|} $ 为 $ t-1 $ 时刻到 $ t $ 时刻之间,用户 $ u $ 在所有item
上的评分向量。 $ \mathbf{\vec x}_i^{(t)}\in \mathbb R^{|\mathcal U|} $ 为 $ t-1 $ 时刻到 $ t $ 时刻之间,item
$ i $ 收到所有用户的评分向量。RRN
并不是建模每个time step
,而是建模一段时间区间(比如一天、一个月),这可以大大降低序列的长度。 $ \mathbf W_u $ 和 $ \mathbf W_i $ 为待学习的投影矩阵。
因此,
RRN
通过两个RNN
学习用户和item
的潜在向量随时间的演变。基于
RRN
,一些工作考虑了丰富的上下文因素,如社交影响、item
元数据、多媒体数据融合。以用户侧的RNN
为例,我们可以将用户潜在embedding
的演变推广为:其中还注入了额外的
contextual embedding
从而建模用户temporal embedding
的时间演变。最近,一个新兴的趋势是使用
Neural Turning Machine
和Memory Network
对时间演变进行建模。和RNN
相比,Memory Network
引入了一个memory
矩阵从而将状态存储在memory slots
中,并通过读写操作随时间更新内存。由于memory
存储是有限的,在推荐中应用Memory Network
的关键是如何随着用户的时序行为随时间更新memory
。研究人员提出了一种带有user memory network
的通用memory augmented
的神经网络来存储和更新用户的历史记录,并且user memory network
是从item level
和feature level
实现的(《Sequential recommendation with user memory networks》
)。研究人员进一步提出在memory
读写过程中使用软寻址的注意力机制,从而更好地捕获用户的长期稳定兴趣和短期时间兴趣。
1.3.2 基于会话的推荐
许多现实世界的推荐系统经常遇到来自匿名用户的短会话数据
short session data
,即user ID
信息不可用。基于会话的推荐在这种情况下很流行,它对给定许多会话记录的、序列的item transition pattern
进行建模。GRU4REC
是基于RNN
的框架下为基于会话的推荐而设计的。具体而言,GRU4REC
类似于一个RNN
结构,它递归地将会话中的当前item
作为输入、更新hidden state
、并根据hidden state
输出预测的next item
。给定匿名会话,GRU4REC
的关键部分是如何构造mini-batch
从而适应RNN
的数据形式。由于目标是捕获会话如何随着时间的推移进行演变,因此作者设计了一个session parallel min-batch
。作者抽取前几个会话的第一个事件event
从而形成第一个mini-batch
,所需的输出是相应会话的第二个事件。在这样的公式下,模型捕获了会话中item
之间的复杂相关性从而进行基于会话的推荐。研究人员通过考虑
item
特征、局部意图、用户信息、数据增强技术从而进一步研究了GRU4REC
。通过使用embedding
矩阵处理item ID
、item name
、item category
,我们可以将一系列点击表示为帧frame
,因此可以将3D CNN
的架构迁移到基于会话的推荐。此外,人们提出了一种基于自注意力的SASRec
序列模型,该模型对整个用户序列进行建模,无需任何循环操作和卷积操作,并自适应地选择item
从而进行推荐。研究人员还提出了一种基于翻译的模型来捕获用户
$ u $ 、前一个item
$ j $ 、当前item
$ i $ 之间的个性化的、序列的三阶交互third order interaction
。给定item embedding
矩阵 $ \mathbf Q $ ,每个用户的embedding
$ \mathbf{\vec p}_u $ 可以近似为: $ \mathbf{\vec q}_i + \mathbf{\vec p}_u\simeq \mathbf{\vec q}_j $ 。因此,基于翻译的模型捕获了两个item
的相关性。虽然上述模型在会话中的连续
item
之间建立了关系,但是如何对会话中远程item
之间的转移进行全局建模仍在探索中。研究人员将GNN
用于基于会话的推荐。SR-GNN
是最初的几次尝试之一。如下图所示,图是通过将所有item
作为节点来构造的,如果这两个节点在会话中共现,则两个节点之间存在一条边。然后,采用GNN
来学习item embedding
,从而可以对来自会话行为数据的item
的高阶关系进行建模。不同的GNN based
模型在图构建和图聚合过程中有所不同。
1.3.3 基于时间和会话的推荐
给定每个用户随时间的会话数据,这类模型同时利用用户的时间演变模型
temporal evolution modeling
、以及隐藏在会话中的序列item
模式sequential item pattern
来进行推荐。目前,解决方案分为两类:第一类同时学习用户的长期偏好和短期动态偏好,第二类采用先进的神经网络模型来学习统一的user representation
。在第一类中,每个用户的长期偏好是根据该用户的历史行为来建模的,而短期偏好是根据前一个会话或当期会话来建模的。例如,研究人员提出了基于时间和会话的推荐的
hierarchical attention network
,其中第一个注意力层根据历史记录学习用户的长期偏好,第二个注意力层根据当前会话学习用户的短期偏好:其中:
Att1
表示底层的注意力网络,它从最近的用户行为序列 $ \mathcal T_u^{(t-1)} $ 中学习用户的短期偏好。Att2
是顶层的注意力网络,它平衡短期用户偏好和长期用户偏好。 $ \mathbf{\vec p}_u $ 为用户长期偏好embedding
向量。
与采用
hierarchical attention
相反,研究人员建议采用注意力机制来学习item
相关性,并在顶层设计循环状态从而进行序列推荐(《Déjà vu: A contextualized temporal attention mechanism for sequential recommendation》
)。人们也提出
hierarchical RNN
来用于随时间推移的、基于会话的个性化推荐,其中一个session level
的GRU
单元用于建模会话内的用户活动、一个user level
的GRU
单元建模用户偏好随时间的演变(《Personalizing session-based recommendations with hierarchical recurrent neural networks》
)。此外,研究人员利用
hierarchical attention network
通过feature level
注意力和item level
注意力来学习更好的短期用户偏好(《Hierarchical gating networks for sequential recommendation》
)。对于长期的用户兴趣建模,研究人员建议利用最近的会话,设计注意力建模或memory addressing
技术来寻找相关的会话。另一类模型利用
3D
卷积网络进行推荐,将推荐问题定义为 $ \left( S_{t-L}^{u},\cdots, S_{t-2}^{u}, S_{t-1}^{u}\right)\rightarrow S_t^u $ ,其中 $ S_t^{u}\in \mathcal I $ 为用户 $ u $ 在 $ t $ 时刻的序列行为, $ L $ 为序列的最大长度。Convolutional Sequence Embedding Recommendation: Caser
是一项代表性工作,它结合了CNN
来学习序列模式。它通过卷积操作从而同时在union level
和point level
来捕获用户的通用偏好和序列模式,并捕获了skip behavior
。此外,研究人员提出利用基于
GNN
的推荐模型来用于推荐。图结构由所有会话构成,从而形成全局item
相关图、或者每个时间段的item
相关图。例如,研究人员构建了timea-ware hypergraph
来建模item
随时间的相关性。之后,采用自注意力模块用于根据随着时间推移学到的dynamic item embedding
来建模用户的动态兴趣(《Next-item recommendation with sequential hypergraphs》
)。
1.3.4 总结
- 基于
temporal/sequential
的模型聚焦于用户随时间的动态偏好。因此,现有的大多数工作都集中在用户和item
的序列信息上,并利用序列模型(如RNN
、Memory Network
)来捕获用户偏好演变的趋势。主要挑战在于识别长期兴趣和短期兴趣,以及在没有user ID
信息的情况下识别全局兴趣和局部兴趣。由于GNN
擅长处理不同粒度的user-item
交互,我们可以观察到它在基于temporal/sequential
的模型中受到越来越多的关注。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论