数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
二十七、时空周期兴趣学习网络ST-PIL [2021]
POI
推荐是基于位置的社交网络中的一项重要任务,它有助于建模用户和位置之间的关系。最近,学者根据长期兴趣和短期兴趣推荐
POI
并取得成功。长期兴趣是通过用户历史到店来获得,短期兴趣是通过最近到店来建模的。这些兴趣通过编码器网络(例如LSTM
)来编码。然而,它们未能很好地捕获到周期性的兴趣。人们倾向于在相似的时间或相似的地域访问相似的门店。因此,只有一小部分到店与用户的下一次到访行为高度相关。因此,到店序列作为输入会弱化相关部分的信号。有一些方法试图通过建模周期性来解决这个问题:
DeepMove
应用当前的移动状态mobility status
来捕获所有到店的周期性。LSTPM
使用time slot
计算时序相似性temporal similarity
从而获得时间加权的轨迹表达time-weighted trajectory representation
。
但是,这些方法在学习周期兴趣方面仍然能力有限。
到店上下文,例如空间信息
spatial information
、时间信息temporal information
,可以用于建模周期兴趣。- 首先,用户活动受时间限制,呈现出天级别模式
daily pattern
和小时级别模式hourly pattern
。例如,一些用户可能只在周末去度假,另一些用户会在晚上去餐馆。 - 其次,用户在不同地域表现出地域模式
areal pattern
。例如,用户在景区参观古迹、在商圈附近购物。 - 第三,用户会在特定时间访问同一个
POI
,这就是 小时-区域级别的模式hourly-areal pattern
。例如,很多人八点钟去公司上班。
而
DeepMove
和LSTPM
等之前的方法在学习周期性时并没有充分利用时空信息。受上述分析的启发,论文
《ST-PIL: Spatial-Temporal Periodic Interest Learning for Next Point-of-Interest Recommendation》
提出了一个时空周期兴趣学习网络Spatial-Temporal Periodic Interest Learning network: ST-PIL
。具体而言,ST-PIL
采用长短期兴趣学习的架构,但是充分利用时空上下文中从历史到店中检索到相关的部分,从而获得周期性兴趣。- 在长期模块中,我们学习天级别的时间周期兴趣,然后利用层内注意力
intra-level attention
来得到长期兴趣。 - 在短期模块中,我们构造各种短期兴趣序列,从而分别获取小时粒度、地域粒度、小时 x 地域粒度的时空周期兴趣。
- 最后,我们利用层间注意力
inter-level attention
自动融合多个兴趣。
主要贡献:
- 提出了充分考虑时空周期性的思想,具体而言,构建了天级别、小时级别、地域级别、小时-地域级别的周期性。
- 提出了两个层级的注意力:层内注意力从用户的天级模式中学习长期兴趣、层间注意力融合了长期兴趣和短期兴趣。
相关工作:这里简要回顾一下近期关于
POI
推荐的一些研究并总结了差异。长期兴趣和短期兴趣的结合最近备受关注,并取得了
state-of-the-art
。DRCF
通过协同过滤捕获长期兴趣,并通过RNN
添加短期兴趣。STGN
通过设计时空门spatial-temporal gates
来修改LSTM
从而提升兴趣。Deep-Move
应用RNN-based
方法来捕获短期规律,并设计一个历史注意力模块从而利用用户状态的移动周期性mobility periodicity
。LSPL
和PLSPL
使用attention layer
来获得长期兴趣,并使用LSTM
对近期的连续行为进行建模从而获得短期兴趣。LSTPM
使用各种技术得到的所有轨迹来捕获长期兴趣,例如:周期性的时间加权操作、用于捕获短期兴趣的LSTM
和geo-dilated LSTM
。
之前的这些工作和我们的研究之间的差异是明显的。以前的工作通常从有限的粒度(例如
time slot
)中捕获周期性,而我们充分利用时空上下文,并设计有效的注意力操作来自动结合combine
。
27.1 模型
已知条件:
- 用户集合 $ \mathcal U = \{u_1,u_2,\cdots\} $ ,
POI
集合 $ \mathcal P=\{p_1,p_2,\cdots\} $ ,类目集合 $ \mathcal C = \{c_1,c_2,\cdots\} $ 。 - 每个
POI
都有一个类目 $ c\in \mathcal C $ 。 - 空间信息:每个
POI
都有一个经纬度,我们使用geohash-5
编码,得到geohash
编码集合 $ \mathcal G=\{g_1,g_2,\cdots\} $ 。每个POI
都对应于一个geohash
编码。 - 时间信息:我们有一周七天,即 $ \mathcal W=\{w_1,\cdots,w_7\} $ 。我们有一天
24
小时,即 $ \mathcal M=\{m_1,\cdots,m_{24}\} $ 。 - 用户的第 $ t $ 个到店表示为 $ h^t=\left(p^t,c^t,w^t,m^t,g^t\right) $ 。
给定用户的所有历史到店序列 $ H=\{h^1,h^2,\cdots,h^{t-1}\} $ ,以及用户当前的时空信息(即 $ \left(w^t,m^t,g^t\right) $ ),我们预估用户可能到店的
top-k POI
。这里要求获取用户的实时地理位置,即用户当前位置和门店
POI
匹配。- 用户集合 $ \mathcal U = \{u_1,u_2,\cdots\} $ ,
Long-Term Module
:使用周几的时间上下文查找用户的天级别模式daily pattern
,并使用注意力机制来建立长期兴趣。天级别模式旨在捕获用户的天级周期性,从周一到周日。
首先,构建七组掩码:第 $ k $ 组掩码表示用户历史到店序列中,每个行为是否是周
k
产生的。例如,第一组掩码:
[1,1,0,0,1,0,...0]
,这表示历史到店序列第一个行为、第二个行为、第五个行为都是周一产生的。接下来,我们用每一组掩码和到店序列进行逐元素相乘(从而得到周
k
的行为序列),然后通过均值池化以及一个全连接层(这个全连接层在周一...周日之间共享),从而得到周k
的天级别embedding
。我们得到七个天级别
embedding
,记做 $ \mathbf L = \left[\mathbf{\vec l}_1,\cdots,\mathbf{\vec l}_7\right] $ 。我们创建一个
$ \mathbf{\vec q}^t = \left[\mathbf{\vec p}^t,\mathbf{\vec c}^t,\mathbf {\vec w}^t, \mathbf{\vec m}^t, \mathbf{\vec g}^t \right] $query
$ q $ 来获取attention
,第 $ t $ 个query
由候选POI
和已知上下文 $ (w^t,m^t,g^t) $ 的拼接组成:其中每个
POI
都可以作为候选,但是只有一个是positive
的,并且这里的ID
都转换为embedding
向量。然后我们通过
$ e_j^t = \mathbf{\vec v}_e^\top \tanh \left(\mathbf V_1\mathbf{\vec q}^t+ \mathbf V_2 \mathbf{\vec l}_j^t\right)\\ \mathbf{\vec e}^t = \text{softmax}(\{e_1^t,\cdots,e_7^t\})\\ \mathbf{\vec l}^t = \sum_{j=1}^7 e_j^t \mathbf{\vec l}_j^t\\ $Bahdanau attention
来聚合 $ \mathbf L^t $ :其中 $ \mathbf{\vec v}_e,\mathbf V_1,\mathbf V_2 $ 都是
attention
的参数。
Short-Term Module
:用于捕获基本序列模式和上下文感知(例如hourly
周期性 、areal
周期性、hourly-areal
周期性)。在第 $ t $ 次 到店,假设我们有当前的时间槽
time slot
$ m^t=23 $ 、有area
$ g^t=47 $ 。我们构建四条序列:- 序列 $ \mathcal S_1^t $ :到访序列中,最近的
5
个到访POI
。捕获序列模式Sequential Pattern
。 - 序列 $ \mathcal S_2^t $ :到访序列中,最近的、相同
geohash=47
的5
个到访POI
。捕获Areal Pattern
。 - 序列 $ \mathcal S_3^t $ :到访序列中,最近的、相同或者相近小时(
22
点、23
点、或24
点)的5
个到访POI
。捕获Hourly Pattern
。 - 序列 $ \mathcal S_4^t $ :到访序列中,最近的、相同
geohash=47
的、相同或相近小时(22
点、23
点、或24
点)的5
个到访POI
。捕获Hourly-Areal Pattern
。
每个序列都暗含某种行为模式,对于每个序列,我们使用
$ \mathbf{\vec s}_k^t = \text{LSTM}(\mathcal S_k^t) $LSTM
来捕获用户对应pattern
的兴趣:- 序列 $ \mathcal S_1^t $ :到访序列中,最近的
Inter-level Attention
:用于获取用户最终的兴趣。在当前时刻 $ t $ ,我们有五个兴趣: $ \{\mathbf{\vec l}^t,\mathbf{\vec s}_1^t,\mathbf{\vec s}_2^t,\mathbf{\vec s}_3^t,\mathbf{\vec s}_4 ^t \} $ 。其中, $ \mathbf{\vec l}^t $ 捕获长期的天级兴趣,其它四个捕获短期的兴趣。我们使用
$ a_l^t = \mathbf{\vec v}_a^\top \tanh\left(\mathbf V_3 \mathbf{\vec q}^t + \mathbf V_4\mathbf{\vec l}^t\right)\\ a_{s_k}^t = \mathbf{\vec v}_a^\top \tanh\left(\mathbf V_3 \mathbf{\vec q}^t + \mathbf V_4\mathbf{\vec s}_k^t\right),k=1,2,\cdots,4 $Bahdanau attention
来获取用户最终的兴趣:其中 $ \mathbf{\vec v}_a,\mathbf V_3,\mathbf V_4 $ 为
attention
权重。然后我们拼接所有的兴趣,得到最终的用户兴趣
$ \mathbf{\vec x}^t = \left[a_l^t \mathbf{\vec l}^t, a_{s_1}^t \mathbf{\vec s}_1^t,\cdots,a_{s_4}^t \mathbf{\vec s}_4^t\right] $representation
:这里有几点注意:
- 由于兴趣都来自历史到店,因此我们为
query
$ \mathbf{\vec q}^t $ 和各个兴趣添加了一个dropout layer
,从而避免在计算注意力权重之前过拟合。 - 其次,当这些兴趣捕获不同的
pattern
时,我们通过加权拼接来聚合他们,从而保留独特的模式。 - 此外,我们在注意力权重上放弃了
softmax
来改善重要模式的表达能力。
- 由于兴趣都来自历史到店,因此我们为
Prediction Layer
:我们将 $ \mathbf{\vec q}^t $ 和 $ \mathbf{\vec x}^t $ 进行拼接,然后馈入MLP
。模型的输出为交叉熵:
$ \mathcal L = -\sum_{i=1}^N y_i\times \log p(y_i) + (1-y_i)\times \log (1-p(y_i)) $其中
N
为所有候选POI
(在所有候选里,只有一个positive
)。模型整体架构如下图所示。
27.2 实验
数据集:两个公开的、真实的数据集,来自于
NewYork city: NYC
和Tokyo: TKY
。 每个到店包含:用户ID
、POI ID
、类目ID
、经度、纬度。数据处理:删除到店人数少于
5
的POI
,并且对每个用户保留他/她最近的500
个到店。评估方式:留一法,每个用户保留最近一次的到店作为测试集,剩余的到店用户训练集和验证集。然后从用户未到店的
POI
中挑选20
个作为负样本。评估指标为Acc@k
、MRR@k
。评估结果:
ST-PILL
:只有长期兴趣的ST-PIL
模型。ST-PILS
:只有短期兴趣的ST-PIL
模型。ST-PIL
明显优于其它方法。ST-PILS
优于ST-PILL
,而ST-PIL
是最好的。这表明同时融合长期兴趣和短期兴趣的价值。
长期模块的
attention
研究:att-qk
表示长期模块attention
且包含query
,att-k
表示长期模块attention
但是不包含query
,seq-avg
表示长期模块不使用注意力而是取均值。L
表示仅使用长期模块而没有短期模块,L+S
表示同时使用长期模块和短期模块。结论:带
query
的注意力机制效果最佳。短期模块的四种兴趣研究:依次采用不同的短期兴趣组合,从而评估这些短期兴趣的效用。
- 就单个兴趣而言,空间周期性(
S2
)和时空周期性(S4
)优于其它两个,表明它们的影响力强于序列效应和时间周期性。也就是,当用户选择某个区域的POI
时,他/她更可能去之前访问过的POI
。 - 就组合兴趣而言,
ST-PILS
的整体性能优于任何单个短期兴趣。此外,当我们逐渐增加四个短期兴趣时,效果越来越好。这表明这些兴趣是互补的。
- 就单个兴趣而言,空间周期性(
未来工作:设计更加自动化的方法来代替构建不同序列的预操作。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论