数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
- 线性模型
- 支持向量机
- 朴素贝叶斯
- 决策树
- knn
- 集成学习
- 梯度提升树
- 数据预处理
- 模型评估
- 降维
- 聚类
- 半监督学习
- EM 算法
- 最大熵算法
- 隐马尔可夫模型
- 概率图与条件随机场
- 边际概率推断
- 主题模型
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- 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
- CRF ++
- lightgbm
- xgboost
- xgboost 使用指南
- scikit-learn
- spark
- numpy
- matplotlib
- matplotlib 使用指南
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
二十九、HyperRec [2020]
-
从电商平台到流媒体服务再到信息分享社区,推荐系统旨在根据用户的历史交互(如购买、浏览、以及关注)准确推断用户的偏好。
next-item
推荐(根据用户的历史的序列交互来预测用户的next action
)是一个有前景的方向,并且人们在这方面的努力最近取得了很好的成功。一个关键问题是如何在这类模型中处理
item
。具体而言,在next-item
推荐的某个时间段内,我们认为item
的含义可以通过相关性correlation
来揭示,这个相关性是在短期内由用户交互user interaction
来定义的。如下图所示:-
iPhone8
是在2017
年发布并且它与其它几款最新的设备(如Nintendo Switch
)一起购买的,表明它是当时的hot new technology item
。一旦像
iPhone11
这样的新版本在2019
年发布,iPhone8
就成为一个budget choice
,因为它可以与其它价格合理的设备一起购买(如,Nintendo Switch
的Lite
版本,或者早先版本的AirPods
)。 -
同样,我们可以推断用户
A
购买的花束是用于婚礼的,因为她还购买了通常与婚礼相关的其它tiem
。
为了捕获
item
语义的这些变化,论文《Next-item Recommendation with Sequential Hypergraphs》
提出在超图hypergraph
中对这类短期item
相关性建模,其中在超图中每个超边hyperedge
可以连接多个节点。在这方面,虽然超图中的每个节点都表示一个item
,但是超边可以将用户在短时间内交互的一组item
连接起来。然而,从
item
相关性超图item-correlation hypergraph
中抽取有表达力的item
语义并非易事。- 一方面,由超边编码的
item
相关性不再是二元(pairwise
)的,而是三元、四元、甚至是高阶的。这种复杂的关系不能用传统的方法处理,因为这些传统方法仅关注pairwise association
。 - 另一方面,
item
语义可以通过multiple hops
传播。例如,在上图中(2019
年9
月),虽然不是由某个用户共同购买,但是iPhone8
也和Apple Lightning cable
相关(具有2-hop
连接 )。
因此,需要一种设计来有效地利用超图从而学习有表达力的
item
语义。此外,如何为
next-item
推荐捕获item
的动态含义是另一个挑战,因为item
的语义会随着时间和用户的变化而变化。这种变化有助于揭示用户的偏好模式preference pattern
。- 如上图所示,用户
C
在2017
年购买iPhone8
证明用户C
追逐最新设备;而用户D
在2019
年购买iPhone8
表明用户D
追求性价比。尽管在这两种情况下的item
是相同的,但是iPhone8
的基本语义已经发生改变。 - 即使在同一个时间点,一个
item
也可以为不同的用户带来不同的含义。如上图中的用户B
的一束鲜花可以反应家居装饰home decoration
,而用户A
的同样一束鲜花可以反应一场婚礼。
尽管在
next-item
推荐中存在将item
视为动态dynamic
的早期工作,但是它们通常将item
的变化建模为时间的函数。如何捕获上述两个观点(随时间变化、以及跨用户变化)对于高质量的next-item
推荐至关重要,但是仍然有待探索。为了应对上述挑战,论文
《Next-item Recommendation with Sequential Hypergraphs》
提出了HyperRec
,这是一种新颖的端到端框架,该框架具有序列超图sequential Hypergraph
从而增强next-item
推荐。-
为了解决不同时间段的短期相关性,
HyperRec
根据时间戳截断用户交互从而构建一系列超图。借助超图卷积网络hypergraph convolutional network: HGCN
,HyperRec
能够聚合具有直接或高阶连接的相关item
,从而在每个时间段生成dynamic embedding
。分时间段建模,从而捕获时间变化。
-
为了建模历史时间段内
item embedding
的影响,HyperRec
开发了一个残差门控层residual gating layer
,从而将前一个时间段的dynamic item embedding
和static item embedding
相结合,从而生成HGCN
的输入。捕获历史时间段对于当前时间段的影响。
-
随着时间和用户发生变化,来自
HGCN
的embedding
将被馈入一个fusion layer
来生成同时包含了dynamic item embedding
和短期用户意图short-term user intent
的final representation
,从而用于每个特定的user-item interaction
。 -
在个性化的
next-item
推荐中,动态用户偏好可以从用户的交互序列中推断出来。因此,HyperRec
使用self-attention layer
从交互序列中捕获动态用户模式dynamic user pattern
。从当前
session
来捕获用户变化。 -
在预测用户对某个
item
的偏好时,static item embedding
和most recent dynamic item embedding
都被考虑在内。
总体而言,论文的贡献如下:
-
作者从两个角度研究了
item
的动态性(随时间变化、以及跨用户变化),并揭示了利用item
之间的短期相关性来改进next-item
推荐的重要性。 -
作者开发了一种具有序列超图的、新型的
next-item
推荐框架,从而生成包含item
之间短期相关性的dynamic item embedding
。该框架的两个特色是:- 用于控制来自历史残差信息
residual information
的残差门控层。 - 用于编码每个交互的
fusion layer
,该层同时采用dynamic item embedding
和短期用户意图从而用于序列模式建模sequential pattern modeling
。
- 用于控制来自历史残差信息
-
通过在各种数据集上的实验,证明了所提出的模型在
Top-K next-item
推荐方面优于state-of-the-art
模型。
-
-
相关工作:
-
next-item
推荐:与将用户视为静态的推荐系统相比,next-item
推荐通常在用户每次交互之后更新用户的state
,并根据顺序地消费的item
之间的关系来生成预测。-
一些工作聚焦于没有
user id
的情况下为短期的interaction session
提供推荐,这通常假设session
中的item
彼此高度相关,并且以一个强烈的意图intent
为中心。 -
另一类研究使用跨较长时间的历史
item
序列来建模用户偏好。开创性的工作采用马尔科夫链(
《Factorizing personalized markov chains for next-basket recommendation》
)和基于翻译的方法(《Translation-based recommendation》
)来建模用户序列交互的item
之间的转移transition
。最近,人们在应用不同的神经网络从用户的序列行为中捕获用户的动态偏好
dynamic preference
方面做出了很多努力。GRU4Rec
利用GRU
来研究用户的序列交互。- 然后人们提出了
GRU4Rec+
(《Recurrent neural networks with top-k gains for session-based recommendations》
)作为GRU4Rec
的修改版本,它具有新设计的一族损失函数从而用于Top-K
推荐。 - 同时,
Caser
和NextItNet
采用卷积神经网络来捕获用户历史交互的序列模式sequential pattern
。 SASRec
利用self-attention layer
从而从历史交互中抽取用户偏好。
然而,这些方法侧重于建模序列模式而没有考虑时间效应
temporal effect
,从而导致在不同时间段或来自不同用户的相同交互产生相似的latent representation
。 -
先前有一些工作聚焦于推荐系统设计中的时间效应。
- 在
TimeSVD++
中,为了保持时间动态,他们训练了各种SVD
模型从而在不同时间段进行评分。 - 考虑到用户和
item
都随着时间的推移而演变,《Coupled Variational Recurrent Collaborative Filtering》
、《Recurrent Recommendation with Local Coherence》
、《Recurrent recommender networks》
中的工作利用并行RNN
分别建模用户序列模式和item
序列模式,并旨在预测用户将如何在不同的时间戳来对item
进行评分。 《Recurrent coevolutionary latent feature processes for continuous-time recommendation》
建议使用结合RNN
和point proess
的模型来为用户和item
生成co-evolutionary
的feature embedding
。
这些方法是为显式反馈序列
explicit feedback sequence
(如,评分)而设计的,需要依赖精确的时序信息。因此,它们不适合处理具有隐式反馈和稀疏时间戳的场景。 - 在
-
-
Neural Graph-based
推荐:随着neural graph embedding
算法的最新进展,人们越来越关注在各种推荐场景中利用图结构。其中许多工作利用静态图中的高阶链接从而为user
或item
生成丰富的latent representation
。- 在社交推荐中,可以用
GNN
来研究用户之间的社交联系,从而建模社交网络中用户偏好的传播。 - 不同的是,
PinSage
提出使用item-item
链接构建的图上生成item embedding
,从而用于下游推荐。 - 此外,还有一些工作聚焦于
user-item
交互图(《Graph convolutional matrix completion》
、《Neural Graph Collaborative Filtering》
),他们基于user-item
交互从而构建了一个链接了user
和item
的静态图。
然而,这些方法并不是为捕获推荐系统中的序列模式而设计的。
- 为了建模时间动态模式
temporally dynamic pattern
,《Temporal recommendation on graphs via long-and short-termp reference fusion》
提出了Session-based Temporal Graph: STG
,从而在一个图中链接user, item, session
。通过从不同类型的节点(user/session
)开始的随机游走过程,它能建模用户的长期偏好和短期偏好从而用于推荐。 《Session-based Social Recommendation via Dynamic Graph Attention Networks》
的工作包括一个用于捕获动态用户行为的RNN
、以及一个用于建模static user-user graph
上的社交影响力social influence
的graph attention layer
。SR-GNN
建议使用session
序列来构建session graph
,然后使用GNN
从这些session graph
中抽取item co-occurrence
。它基于session
中item embedding
的注意力聚合attentive aggregation
从而生成next-click prediction
。
- 在社交推荐中,可以用
-
超图
hypergraph
:超图是常规图的推广,其中每个超边hyperedge
可以编码各种数量的对象之间的相关性。超图已被用于统一各种类型的内容从而用于context-aware recommendation
。在建模各种类型对象之间的相关性方面,早期的工作应用超图来辅助传统的协同过滤从而融合上下文信息。- 在
《Music recommendation by unified hypergraph: combining social media information and music content》
中,为了融合社交关系和音乐内容从而用于音乐推荐,他们提出使用超图来建模music social community
中各种类型的对象(如,user, group, music track, tag, album
)之间的关系。 - 类似地,
《News recommendation via hypergraph learning: encapsulation of user behavior and news content》
的工作使用超图来建模reader, article, entity, topic
之间的相关性,从而用于个性化新闻推荐。
这些方法是根据特定社区的属性而设计的,无法轻易地推广到其它的
next-item
推荐的任务。 - 在
-
29.1 模型
29.1.1 背景
-
Motivation
:这里我们对来自三个在线平台(Amazon, Etsy, Goodreads
)的数据进行初步调研。我们同时从长期和短期的角度探讨item
的动态模式dynamic pattern
以及item
之间的相关性。-
item
经常出现和消失:首先,我们检查了
Etsy
中item
的“生命周期”(lifecycle
)。Etsy
是销售手工制品的最大电商平台之一。在下图(a)
中,我们总结了Etsy
上列出的所有item
从2006
年到2018
年的活跃时间(即,从第一次购买和最后一次购买之间的时间gap
)。我们发现
Etsy
中超过一半的商品在不到一年的时间内就成为inactive
(即,断货或被升级的型号所取代)。在其它在线平台上也可以找到类似的模式。随着item
的频繁出现和消失,短期关系short-term relationship
可能对item
建模至关重要。因为从长期角度来看,item
之间的关系是不稳定的。 -
item
的热门程度随着时间的推移而迅速变化:其次,我们检索了
2001
年到2005
年每个月在Amazon
上的Bestsellers
(即,在购买排名top 1%
的商品)。然后我们计算每个月的Bestsellers
列表和一个月后/两个月后/三个月后/或者更长时间之后的Bestsellers
列表之间的Jaccard Similarity
,结果如图(b)
所示。- 从蓝色曲线可以看到,前后相邻两个月的
Bestsellers
的交集仅有30%
左右。 - 从绿色曲线可以看到,间隔六个月的
Bestsellers
之间几乎没有交集(accard similarity
小于10%
)。
由于一个
item
的热门程度可以反应社区对该item
的看法,而Bestsellers
列表随时间的变化表明:社区中item
的含义可以随时间变化。 - 从蓝色曲线可以看到,前后相邻两个月的
-
item
共现随时间变化:最后,我们转向
Goodreads
中的item
。Goodreads
是一个平台,在该平台上用户分享他们对书籍的想法。每个用户都有一个交互的item
序列,其中用户以时间顺序对序列中的item
进行评分、tagging
、或者评论。我们根据时间戳(按年份)拆分这些交互的item
序列,并使用不同年份的序列训练不同的item embedding
模型。具体而言,我们采用word2vec
根据item
的共现来生成book embedding
。基于这些embedding
,我们找到了每本书在不同年份的top-10
邻居。然后我们计算每本书在2012
年的邻居与1 ~ 5
年后的邻居之间的Jaccard similarity
,并在下图(c)
中展示平均结果。我们发现:书籍的
2012
年邻居和2013
年邻居之间的相似度为40%
,并且随着时间间隔越大而相似度越低。即,item
之间的关系随着时间的推移而变化,时间间隔越长,则变化越大。
综上所述,从长期角度来看,
item
之间的关系正在发生变化,从而导致item
语义的变化。因此,这些启发了我们利用item
之间的短期相关性,同时建模它们的动态模式从而用于next-item
推荐。 -
-
Question
:我们提出了一种新颖的端到端的next-item
推荐框架(即,HyperRec
),该框架利用了序列超图sequential hypergraph
从而融合了短期的item
相关性,同时建模随时间的动态dynamics over time
和跨用户的动态dynamics across users
。我们的HyperRec
围绕三个指导性的研究问题来展开:-
RQ1
:如何定义超图结构中的item
之间的相关性,以及如何通过考虑item
之间的multi-hop
链接从而将短期item
相关性有效地融合到dynamic item embedding
中?即,如何定义和捕获
item
之间的相关性。 -
RQ2
:历史的item
的意义可以暗示它们未来的特性,但是如何将不同时间段的embedding process
联系link
起来,以及连续时间段之间的residual information
如何流动?即,如何考虑历史的
item
信息。 -
RQ3
:如何将短期用户意图与dynamic item embedding
融合从而表达用户交互序列中的每个交互,以进行动态用户偏好建模?即,得到的
dynamic item embedding
怎么用。
-
-
令
$ \mathcal U=\{u_1,u_2,\cdots,u_N\} $ 为平台中 $ N $ 个用户的集合, $ \mathcal I = \{i_1,i_2,\cdots,i_M\} $ 为平台中 $ M $ 个item
的集合。我们考虑 $ T $ 个不同的时间戳的集合 $ \mathcal T=\{t_1,t_2,\cdots,t_T\} $ 。每个时间戳 $ t_n\in \mathcal T $ 相当于某个短的时间段。对于每个用户 $ u $ ,我们将 $ u $ 交互的item
列表按照时间顺序排序为 $ \mathcal S^{(u)} = \left\{\left(i_1^{(u)},t_1^{(u)}\right),\left(i_2^{(u)},t_2^{(u)}\right),\cdots,\left(i_{|\mathcal S^{(u)}|}^{(u)},t_{|\mathcal S^{(u)}|}^{(u)}\right)\right\} $ ,其中 $ \left(i_n^{(u)},t_n^{(u)}\right) $ 表示用户 $ u $ 在时间段 $ t_n^{(u)}\in \mathcal T $ 与item
$ i_n^{(u)} $ 交互。这里的序列指的是比
session
更长的序列,称作sequence
。如果仅仅是session
,那就没有必要划分时间段了。这也意味着我们必须知道
user id
,否则没有办法获取用户所有的历史交互数据。因此该方法难以应用到匿名的场景中。每个
item
$ i_n $ 都有一个可训练的static latent embedding
$ \mathbf{\vec e}_n\in \mathbb R^{d} $ ,所有item
的static latent embedding
构成static embedding
矩阵 $ \mathbf E = \left[\mathbf{\vec e}_1,\mathbf{\vec e}_2,\cdots,\mathbf{\vec e}_M\right]\in \mathbb R^{d\times M} $ 。static embedding
对于不同的用户和不同的时间戳而言是不变的。next-item
推荐的目标是:给定用户 $ u $ 的交互序列 $ \mathcal S^{(u)} $ ,预测用户 $ u $ 之后会感兴趣的item
。
29.1.2 序列超图
-
由于用户在短时间内购买的
item
是相关的,因此定义item
之间的适当链接appropriate connection
是至关重要的。用户可能与不同数量的item
进行交互,而传统的图结构通常仅支持item
之间的pairwise
关系,因此不适合这种情况。因此,我们提出使用超图来建模这种短期相关性。在超图中,多个
item
可以与一条超边hyperedge
链接。例如下图中,2017
年9
月的超图由7
个节点(即,item
)和3
条超边组成。用户A
购买的三个item
通过一条超边链接在一起。此外,除了超图中的直接链接之外,item
之间的高阶链接也可以暗示它们之间的相关性。例如,下图中(2019
年9
月),虽然不是由同一个用户购买,但是iPhone8
也与Apple Lightning caple
有关因为它们之间存在2-hop
链接。使用超图卷积网络
hypergraph convolutional network: HGCN
,我们可以利用直接链接和高阶链接来提取item
之间的短期相关性。同时,一个item
不应该被视为在不同时间段是不连续discrete
的,因为item
过去的特征可以暗示它未来的特征。例如,虽然iPhone8
在上图中从2017
年到2019
年在含义上发生了根本性的变化,但是它在2019
年的representation
应该继承了iPhone8
在2017
年的representation
的一些特性。接下来,以超图为主要的拓扑结构,我们将讨论如何有效地生成这种动态的
item representation
,并同时考虑item
在短期内的相关性和不同时间段之间的联系connection
。 -
短期超图
Short-term Hypergraph
:为了捕获不同时间段的item
相关性,我们可以根据时间戳将user-item
交互拆分为多个子集。令 $ \mathcal G=\left\{\mathcal G_{t_1},\mathcal G_{t_2},\cdots,\mathcal G_{t_T}\right\} $ 表示一系列的超图,其中 $ \mathcal G_{t_n} = \left(\mathcal V_{t_n},\mathcal E_{t_n},\mathbf W_{t_n},\mathbf H_{t_n}\right) $ 是基于时间段 $ t_n $ 内发生的所有user-item
交互来构建的:-
$ \mathcal V_{t_n}\sub \mathcal I $ 为 $ \mathcal G_{t_n} $ 中的节点集合, 即时间段 $ t_n $ 中所有被交互的item
。 -
$ \mathcal E_{t_n}\sub \mathcal U $ 表示超边的集合,它类似于在 $ t_n $ 期间进行交互的所有user
。一个超边代表一个
sequence
,有多少个sequence
就有多少个超边。通常一个sequence
对应于一个用户的所有历史行为序列(比session
更长),因此 $ \mathcal E_{t_n} $ 类似于在 $ t_n $ 期间进行交互的所有user
。因此,有多少个用户就有多少个超边。 -
每个
$ \mathcal G_{t_n}\in \mathcal G $ 都与一个大小为 $ \left|\mathcal V_{t_n}\right|\times \left|\mathcal E_{t_n}\right| $ 的关联矩阵incidence matrix
$ \mathbf H_{t_n} $ 相关联。在时间段 $ t_n $ ,当 $ v\in \mathcal V_{t_n} $ 并关联超边 $ \epsilon $ 时(即,用户 $ \epsilon $ 在时刻 $ t_n $ 购买item
$ v $ ),我们有 $ H_{t_n,v,\epsilon} = 1 $ ,否则 $ H_{t_n,v,\epsilon} = 0 $ 。 $ \mathbf H_{t_n} $ 给出的是节点到用户之间的关系。 -
每个
$ \mathcal G_{t_n}\in \mathcal G $ 还与一个大小为 $ \left|\mathcal E_{t_n}\right|\times \left|\mathcal E_{t_n}\right| $ 的权重矩阵 $ \mathbf W_{t_n} $ 相关联。 $ \mathbf W_{t_n} $ 是一个对角矩阵,其中 $ W_{t_n,\epsilon,\epsilon} $ 代表超边 $ \epsilon\in \mathcal E_{t_n} $ 的权重。在这项工作中,我们让所有超边共享相同的权重并让
$ W_{t_n\epsilon,\epsilon}=1,\forall \epsilon \in \mathcal E_{t_n} $ 。 $ \mathbf W_{t_n} $ 给出的是用户到用户之间的关系,这里 $ \mathbf W_{t_n} $ 就是单位矩阵。
定义
$ \mathbf D_{t_n}\in \mathbb R^{|\mathcal V_{t_n}|\times |\mathcal V_{t_n}|} $ 和 $ \mathbf B_{t_n}\in \mathbb R^{|\mathcal E_{t_n}|\times |\mathcal E_{t_n}|} $ 分别是节点和超边的度矩阵degree matrix
,即:节点
$ v $ 的degree
等于它连接的所有用户的加权和,权重由 $ \mathbf H_{t_n} $ (连接的权重)和 $ \mathbf W_{t_n} $ (超边的权重) 指定。超边
$ \epsilon $ 的degree
等于它连接的所有节点的加权和,权重由 $ \mathbf H_{t_n} $ (连接的权重)指定。在不同的时间段,会有一组不同的
user-item
交互,从而导致拓扑结构变化的超图。我们的目标是通过捕获item
相关性,从而从每个短期的超图中抽取item
语义。不同的时间段除了能够捕获随时间变化的语义之外,还能够降低超图的规模从而有利于内存。如果不区分时间段,那么超图会包含所有的用户(即,超边),可能需要很大的内存来处理。
-
-
超图卷积网络
Hypergraph Convolution Network: HGCN
:在每个时间段,我们的目标是利用item
之间的相关性来实现它们的temporally dynamic embedding
,其中在这个短的时间段内,相关的item
应该彼此接近。为了实现这一点,一个item
应该从它的所有相邻item
中聚合信息(即,latent representation
)。这天然地符合卷积运算的假设,即,应该在被链接的item
之间进行更多的传播。鉴于
$ \mathcal V_{t_n} $ 中的节点具有一组初始的latent representation
$ \mathbf x^{(0)}_{t_n} = \left[\mathbf{\vec x}_{t_n,1}^{(0)},\mathbf{\vec x}_{t_n,2}^{(0)},\cdots,\mathbf{\vec x}_{t_n,\left|\mathcal V_{t_n}\right|}^{(0)}\right] $ ,则卷积运算可以定义为:初始的
latent representation
是通过残差门控组件得到的,其中该组件会利用前一个时间段 $ t_n-1 $ 的HGCN
得到的dynamic item embedding
。其中:
$ \tau(\cdot) $ 表示激活函数(如ReLu
)。 $ \mathbf P^{(0)} $ 表示初始层和第一层之间的可训练的权重矩阵。
上式的括号内可以重新组织为:
$ \sum_{\epsilon=1}^{\left|\mathcal E_{t_n}\right|}H_{t_n,i,\epsilon}W_{t_n,\epsilon,\epsilon}\sum_{v=1}^{\left|\mathcal V_{t_n}\right|}\left(H_{t_n,v,\epsilon}\mathbf{\vec x}_{t_n,v}^{(0)}\mathbf P^{(0)}\right) $ 。 其中:- 内层:对于每条超边
$ \epsilon $ ,聚合它包含的所有节点representation
。其中权重为 $ H_{t_n,v,\epsilon} $ (这里设定为0/1
的二元值),并且节点representation
经过 $ \mathbf P^{(0)} $ 的线性投影。 - 外层:聚合节点
$ i $ 所属的所有超边,其中权重为 $ H_{t_n,i,\epsilon}\times W_{t_n,\epsilon,\epsilon} $ 。由于本文中 $ W_{t_n,\epsilon,\epsilon} $ 设置为1
,因此权重等于 $ H_{t_n,i,\epsilon} $ (为0/1
二元值)。
可以看到,这里可以视为一个异质图的
meta-path
,即V-E-V
,其中异质图包含两种类型的节点:V
为超图中的节点、E
为超图中的超边(作为异质图中的节点)。因此这里考虑的是超图节点之间的一阶关系。这个卷积操作将对每条超边进行编码:首先聚合每条超边包含的所有节点信息到该超边,然后聚合目标节点所在的每条超边的信息从而得到该节点的
embedding
。对于不同的目标节点,第一步是共享的(即,聚合每条超边包含的所有节点信息到该超边)。
我们可以将这个卷积过程表示为矩阵形式:
为了防止堆叠多个卷积层引起的数值不稳定性,我们需要添加堆成归一化。最终我们得到:
这里
$ f(\cdot) $ 表示一个操作,该操作使用one-hop
邻居来更新节点从而用于单层hypergraph convolutional layer
。我们可以堆叠多个卷积层从而聚合来自超图中高阶邻居的信息。在这样的hypergraph convolutional network: HGCN
中,第 $ L $ 层的输出可以计算为:从第
$ L $ 层得到的 $ \mathbf X_{t_n}^{(L)} $ 可以继承前一层的embedding
,从而捕获超图中item
相关性的传播。而在不同的时间段 $ t_n $ ,超图的拓扑结构正在发生变化,导致dynamic item embedding
反映了不同时间段的短期相关性。超图卷积网络和传统的
GCN
的核心区别在于:超图卷积网络在信息传递时,传递了整个用户(即,超边)的信息,即:其中节点
$ v_1 $ 到节点 $ v_2 $ 之间不仅传递了节点 $ v_1 $ 的信息,还传递了节点 $ v_1 $ 所属超边的信息(high-level
的)。相比较而言,传统
GCN
在节点 $ v_1 $ 到节点 $ v_2 $ 之间仅仅传递了节点 $ v_1 $ 的信息。 -
残差门控
Residual Gating
:虽然item
正在发生改变,但是item
在不同时间段的特征之间仍然存在联系。item
的某些特征会从上一个时间段保留到下一个时间段。例如,item
可能具有一些平滑变化、或者始终不变的固有特征。为了将residual information
从先前的时间段传播到未来,我们引入了residual gating
从而将 $ t_1,t_2,\cdots,t_{n-1} $ 时间段的dynamic embedding
与static embedding
拼接来产生每个节点的initial embedding
。item
$ i $ 在 $ t_n $ 的initial embedding
可以计算为:其中:
$ \mathbf W_R $ 和 $ \mathbf{\vec z}_R $ 是gate
的转换矩阵和转换向量,是待学习的参数。 $ \tanh(\cdot) $ 是tanh
非线性激活函数。 $ \mathbf{\vec x}_{t_{\lt n},i}^{(L)} $ 表示item
$ i $ 在 $ t_n $ 之前的最新超图的dynamic embedding
。如果item
$ i $ 没有出现在任何先前的超图中,我们忽略residual component
并让 $ \mathbf{\vec x}_{t_n,i}^{(0)} = \mathbf{\vec e}_i $ 。 $ \mathbf{\vec e}_i $ 为item
$ i $ 的static embedding
。 $ g $ 通过门控函数来计算,用于控制保留residual information
信息的比例。
-
通过这个
residual gating
,我们按时间顺序连接超图,从而得到HyperRec
的主要组件:序列超图sequential hypergraph
(如下图所示)。在每个时间段,每个item
都将从static item embedding
以及来自过去的residual information
来初始化。然后,HGCN
可以结合短期item
相关性来生成有表达力的dynamic item embedding
。使用残差门控的一个局限性在于:不同时间段的超图需要串行地计算而无法并行计算,因此计算速度会更慢(相比较于并行计算)。
29.1.3 Dynamic User Modeling
-
短期用户意图
Short-term User Intent
:如下图所示,短期用户意图可以根据用户在特定时间段内交互的所有item
中推断出来。这天然地属于超边的定义,超边完全解释了用户在短期内交互的所有item
。具体而言,我们可以通过以下操作聚合每个超边上的dynamic node embedding
来推断每个用户的短期意图:这里用到的是每个节点
$ v $ 在HGCN
中最后一层(即,第 $ L $ 层)的dynamic item embedding
。结果矩阵
$ \mathbf U_{t_n} =\left[\mathbf{\vec u}_{t_n,1},\mathbf{\vec u}_{t_n,2},\cdots,\mathbf{\vec u}_{t_n,\left|\mathcal E_{t_n}\right|} \right] $ 可以被视为在 $ t_n $ 时间段内的短期用户意图的集合。这里的
user
实际上指的是sequence
,它是比item
更高level
的概念。 -
融合层
Fusion Layer
:然后,我们希望将dynamic item embedding
和短期用户意图结合起来,从而更好地表达序列中的每个交互。我们提出如下融合层来生成user
$ u $ 和item
$ i $ 之间在时间段 $ t_n $ 的交互的representation
:其中:
$ \mathbf{\vec e}_i $ 为item
$ i $ 的static item embedding
, $ \mathbf{\vec x}_{t_n,i}^{(L)} $ 为item
$ i $ 的dynamic item embedding
。 $ \mathbf{\vec u}_{t_n,u} $ 为矩阵 $ \mathbf U_{t_n} $ 中的向量,表示 $ t_n $ 时间段处的短期用户意图。 $ \mathbf W_F,\mathbf{{\vec z}} $ 是对应的转换矩阵和转换向量,是待学习的参数。
现在
$ \mathbf{\vec e}_{t_n,i,u} $ 包含了几个部分:静态部分(由 $ \mathbf{\vec e}_i $ 给出)、时间动态性(由 $ \mathbf{\vec x}_{t_n,i}^{(L)} $ 给出)、用户动态性(由 $ \mathbf{\vec u}_{t_n,u} $ 给出)。为了避免过拟合,在训练期间,对于在与我们想要预测的
item
所相同时间段内发生的交互,我们将 $ \mathbf{\vec u}_{t_n-1,u} $ 和 $ \mathbf{\vec x}_{t_n-1,i}^{(L)} $ 馈入fusion layer
从而生成 $ \mathbf{\vec e}_{t_n,i,u} $ 。这是因为:如果使用
$ \mathbf{\vec u}_{t_n,u} $ 和 $ \mathbf{\vec x}_{t_n,i}^{(L)} $ ,则由于它们使用了超边,而超边可能包含了需要预测的next item
,因此会发生信息泄露。 -
self-attention
:我们采用self-attention
作为基础模型来捕获交互序列中的动态模式。 $ \mathbf{\vec e}_{t_n,i,u} $ 可以被视为在 $ t_n $ 时间段用户 $ u $ 和item
$ i $ 之间交互的embedding
。即,现在我们有了更优表达力的
item embedding
,因此需要获得当前时刻的用户偏好。假设我们有用户
$ u $ 根据时间排序的一个交互序列 $ \mathcal S^{(u)} = \left\{\left(i_1^{(u)},t_1^{(u)}\right),\left(i_2^{(u)},t_2^{(u)}\right),\cdots,\left(i_{|\mathcal S^{(u)}|}^{(u)},t_{|\mathcal S^{(u)}|}^{(u)}\right)\right\} $ 为了表达第 $ k $ 个交互,我们还考虑了位置 $ k $ 。我们使用 $ \mathbf{\vec o}_k^{(u)} = \mathbf{\vec e}_{t_k^{(u)},i_k^{(u)},u} + \mathbf{\vec p}_k $ 来表示交互,其中 $ \mathbf{\vec p}_k $ 是position
$ k $ 的position embedding
,用于刻画顺序信息。给定
embedding
序列 $ \left(\mathbf{\vec o}_1^{(u)},\mathbf{\vec o}_2^{(u)},\cdots,\mathbf{\vec o}_{|\mathcal S^{(u)}|}^{(u)}\right) $ ,self-attention
旨在根据序列中每个元素与最后一个元素 $ \mathbf{\vec o}_{|\mathcal S^{(u)}|}^{(u)} $ 之间的相似性(即,注意力分数)来生成aggregation
。其中, $ \mathbf{\vec o}_{|\mathcal S^{(u)}|}^{(u)} $ 和 $ \mathbf{\vec o}_{j}^{(u)} $ 之间的注意力分数可以计算为:其中:
$ \mathbf W_Q,\mathbf W_K $ 为变换矩阵(待学习的),而 $ d $ 为embedding
维度。attentive aggregation
可以计算为:其中:
$ \mathbf W_V $ 为变换矩阵(待学习的)。生成的
$ \mathbf{\vec d}_{t^{(u)}_{|\mathcal S^{(u)}|},u} $ 可以表示用户 $ u $ 在时间段 $ t^{(u)}_{|\mathcal S^{(u)}|} $ 与序列 $ \mathcal S^{(u)} $ 中的item
交互之后的动态偏好dynamic preference
。
29.1.4 偏好预测
-
在预测用户对
item
的偏好时,我们应该同时考虑dynamic item embedding
和static item embedding
:其中:
$ \mathbf{\vec d}_{t_{< n+1},u} $ 表示在 $ t_{n+1} $ 之前生成的最新的dynamic user preference
。 $ \mathbf{\vec x}_{t_{< n+1},i}^{(L)} $ 表示在 $ t_{n+1} $ 之前生成的最新的dynamic item embedding
。
这里并没有使用交互的
representation
$ \mathbf{\vec e}_{t_n,i,u} $ ,因为这里要预测的就是:对于候选item
$ i $ ,用户是否 $ u $ 是否会与之交互。 -
为了训练模型,我们采用
Bayesian Pairwise Loss
,其中我们假设用户更喜欢该用户交互过的item
而不是未交互过的item
。损失函数为:其中:
$ ||\theta||^2 $ 为L2
正则化, $ \lambda $ 为正则化系数。 $ \text{sigmoid}(\cdot) $ 为sigmoid
函数。- 训练集
$ \mathcal C $ 中的每个元素 $ (u,t,i,j) $ 由一个ground truth tuple
$ (u,t,i) $ 组成(即,用户 $ u $ 在时间段 $ t $ 与item
$ i $ 交互),而item
$ j $ 为用户 $ u $ 未交互的item
(负样本)。
29.2 实验
-
数据集:我们遵从先前的工作(
SASRec
、BERT4Rec
)一样在leave-one-out setting
下评估next-item
推荐问题,并按照《Recurrent Recommendation with Local Coherence》
和《Recurrent recommender networks》
中的真实场景拆分训练集和测试集。注意,模型仅使用cutting timestamp
之前的交互进行训练。对于每个用户,我们使用cutting timestamp
之后的第一个交互作为验证集,第二个交互作为测试集。为了探索模型的泛化能力,我们评估了三个不同的在线平台采样到的数据。
-
Amazon
:这是一个公开的Amazon
数据集的更新后的版本,覆盖了从1996
年5
月到2018
年10
月的Amazon
评论。为了探索一组多样化产品之间的短期item
相关性,我们混合了来自不同类目的购物数据,而不是对每个类目进行实验。我们使用评论时间戳来估计购买的时间戳。我们移除少于
50
次购买的item
。我们保留在cutting timestamp
之前购买至少5
个item
且在cutting timestamp
之后购买至少2
个item
的用户。 -
Etsy
:Etsy
数据集包含2006
年11
月到2018
年12
月期间,销售手工艺品的最大电商网站之一的购买记录。我们移除交易少于50
笔的item
,然后过滤掉2018
年之前少于5
笔交易、或2018
年少于2
笔交易的用户。 -
Goodreads
:Goodreads
数据集来自一个图书阅读社区,用户可以在其中对图书进行tag
、评分、撰写评论。我们将不同类型的交互视为对item
的隐式反馈。我们保留了2017
年之前交互5
本书以上且2017
年交互2
本书以上的用户。这个数据集要比
Amazon
和Etsy
都更稠密,因为这样一个信息共享平台中的item
(即,书籍)更稳定,并且不太可能像电商平台中那样被新的item
替换(如,商品可能被升级后的版本所替代)。
这些数据集的统计结果如下表所示。
-
-
评估指标:
-
遵从
leave-one-out setting
,在测试集中,每个用户仅关联一个item
,这个item
就是该用户在cutting time
之后的item
。 -
我们采用常见的
next-item
推荐指标来评估每个模型在Top-K
推荐中的性能,包括:Hit Rate: HIT@K
、Normalized Discounted Cumulative Gain: NDCG@K
、Mean Reciprocal Rank: MRR
。 -
遵从之前的
Top-K
推荐工作(《Neural collaborative filtering》
、SASRec
),我们为每个用户随机选择100
个negative item
,并将测试集的item
(即,positive item
)与negative item
进行排名rank
。排名是基于推荐系统生成的预测偏好分。 -
由于每个用户的测试集仅有一个
item
,因此hit rate
等于recall
,表明测试的item
是否出现在Top-K
列表中。 -
Ideal Discounted Cumulative Gain
对于所有用户而言都是一个常数,因此在计算NDCG@K
时可以忽略(因为对于每个用户,测试集仅有一个item
)。在基于预测分数的排序中,假设用户
$ u $ 的测试item
的排序为 $ r_u $ ,那么:- 如果
$ r_u\le K $ 则 $ \text{NDCG}_u@K=\frac{1}{\log_2(1+r_u)} $ ,否则 $ \text{NDCG}_u@K=0 $ 。 - 如果
$ r_u\le K $ 则 $ \text{HIT}_u@K=1 $ ,否则 $ \text{HIT}_u@K=0 $ 。
根据这个计算,在
leave-one-out setting
中,NDCG@1 = HIT@1
。 - 如果
-
MRR
衡量测试item
的平均倒数排名,即, $ \text{MRR} = \frac{1}{|\mathcal U_\text{test}|} \sum_{u\in \mathcal U_\text{test}} \frac{1}{r_u} $ ,其中 $ \mathcal U_\text{test} $ 是所有测试用户的集合。
我们报告每个数据集上所有用户的平均
NDCG
和平均Hit Rate
,其中 $ K=1 $ 和 $ K=5 $ 。 -
-
baseline
:PopRec
:热门度推荐。这种简单的方法根据item
的受欢迎程度来排序,并推荐最热门的item
。TransRec
:基于翻译的推荐。TransRec
使用user-specific
翻译操作来建模交互序列中不同item
之间的转移。GRU4Rec+
:具有Top-k Gains
的RNN
。作为GRU4Rec
的改进版,该模型采用GRU
来建模序列行为,并使用一族新的损失函数来提高Top-K
增益。TCN
:用于next-item
推荐的简单卷积生成网络(《A Simple Convolutional Generative Network for Next Item Recommendation》
)。该模型改进了典型的CNN-based
的next-item
推荐,使用masked filter
和堆叠的一维空洞卷积层,从而建模远程依赖关系。HPMN
:Lifelong Sequential Modeling with Personalized Memorization
(《Lifelong Sequential Modeling with Personalized Memorization for User Response Prediction》
)。HPMN
采用分层周期记忆网络hierarchical periodic memory network
,可以同时捕获用户的多尺度序列模式,从而可以将近期用户行为与长期模式相结合。HGN
:用于序列推荐的Hierarchical Gating Network
(《Hierarchical Gating Networks for Sequential Recommendation》
)。该方法包含一个特征门控feature gating
以及一个实例门控instance gating
,用于分层地选择item
特征和item
实例,从而用于为next-item
推荐来建模用户。SASRec
:Self-attentive Sequential Recommendation
。它采用self-attention layer
来捕获用户交互序列中的动态模式。它可以被视为HyperRec
中动态用户建模组件的简化版本,该简化版本使用static item embedding
来表示每个交互。BERT4Rec
:带有来自于Transformer
的双向编码器representation
的序列推荐。该方法利用双向自注意力模块从左右两侧捕获用户历史行为序列中的上下文信息。- 除了上述
baseline
之外,我们还将所提出的模型与后文介绍的变体进行比较,作为我们的消融实验案例。
HyperRec
要求user ID
的信息从而可以得到完整的用户历史行为序列。然而,这里的有些baseline
方法是针对匿名session
进行的(如GRU4Rec+
、SASRec
、BERT4Rec
。这些方法既可以用于匿名session
也可以用于非匿名session
(提供了user id
),但是它们并没有针对非匿名session
进行优化,如,建模user embedding
。所以这里的比较不一定公平。 -
配置:
-
实验是在配备了
12GB Nvidia TITAN Xp GPU
的服务器上进行的。 -
所有数据集的最大序列长度设置为
50
。 -
为了公平比较,训练过程中所有模型的负采样率都设置为
1
。即,对于每个ground-truth tuple
,我们都将它与一个随机采样的negative item
相结合。 -
对于
HPMN, GRU4Rec+, HGN, BERT4Rec
,我们使用原始论文中提供的实现和配置。对于TCN
和SASRec
,我们使用《Session-based Social Recommendation via Dynamic Graph Attention Networks》
中提供的实现。 -
为了获得每个模型的最佳性能,我们执行超参数搜索,其中:
-
dropout rate
搜索范围: $ \{0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9\} $ 。在
HyperRec
的哪一层执行dropout
?作者并未讲明。 -
正则化系数
$ \lambda $ 的搜索范围: $ \{10^{-5}, 10^{−4}, 10^{−3}, 10^{−2}, 10^{−1}\} $ 。 -
embedding size
搜索范围: $ \{25, 50, 100, 150, 200\} $ 。 -
对于特定于模型的超参数,我们根据验证集来微调。
-
-
我们在
TensorFlow
中实现了HyperRec
及其所有变体,并采用Adam
作为优化器。在实验中,经过grid search
之后,学习率设为0.001
、batch size = 5120
。我们将所有数据集的embedding size
设为100
。我们微调了每个数据的层数,范围在 $ \{1,2,3,4,5\} $ 。我们也微调了时间段粒度,范围在 $ \{1, 3, 6, 12, 18\} $ 个月。
-
-
实验结果:我们将
HyperRec
与baseline
进行比较,结果如下表所示。可以看到:- 在所有评估指标下,
HyperRec
在每个数据集中都显著优于所有baseline
。这证明了HyperRec
在真实环境(其中item
随着时间演变)中改进next-item
推荐的有效性。 TransRec
相比于简单地推荐热门item
相比,可以提供有前景的改进。然而,TransRec
将用户视为他们购买的consecutive items
之间的线性翻译,这限制了模型处理现实问题的能力,其中用户和item
都在改变。HPMN
由分层记忆网络组成并为用户创建lifelong profile
,其中记忆网络的每一层都旨在捕获特定时期的周期性用户偏好periodic user preference
。我们发现HPMN
在Amazon
中的表现优于TransRec
在30%
以上,但是在Etsy
和Goodreads
上似乎较弱。TCN
建立在一维空洞卷积之上,展示出它在建模短期行为方面的优势。TCN
在Etsy
中优于HPMN
,但是它似乎不太适合像Goodreads
这样长期偏好很重要的场景。- 作为针对
GRU4Rec
的高级版本,在Amazon
和Goodreads
数据集上,GRU4Rec+
可以通过GRU
来进行动态用户建模并采用针对RNN
模型定制化的损失函数,从而改进TCN
和HPMN
。 HGN
配备了新颖的特征门控和实例门控从而增强短期用户建模,因此优于上述baseline
。SASRec
和BERT4Rec
都使用self-attention layer
来建模序列用户模式。在BERT4Rec
中,通过随机屏蔽用户序列中的item
,它能够训练一个双向模型用于推荐。然而,它并没有像原始的BERT
一样为NLP
带来巨大的提升,因为序列中从右到左的模式不一定能够提供预测用户动态偏好的信息。- 与
the state-of-the-art
相比,HyperRec
在Amazon
中可以实现比其它数据集最大的改进。原因可能是HyperRec
能够从极其稀疏的具有超图拓扑的user-item
交互中完全地抽取item
特性。
- 在所有评估指标下,
-
消融研究:我们通过移除或替换
HyperRec
中的基础组件来进行一系列消融测试,从而评估这些组件的有效性。消融测试的结果如下表所示。为了公平地比较,当模型中有超图时,结果是以12
个月为粒度并且两层的HGCN
来实现的。-
首先,在所有数据集上,
HyperRec
与所有变体相比都实现了最佳的性能,这证明了HyperRec
设计的有效性。 -
为了评估超图结构的有效性,我们在
(3)
中为每个用户和每个item
在不同时间段分配不同的latent embedding
作为dynamic item embedding
和短期用户意图。也就是说,我们没有像HyperRec
那样利用超图来建模短期item
相关性,而是使用这些time-dependent embedding
来编码数据集中的变化。我们发现性能有很大的下降。在Amazon
和Goodreads
数据集中,(3)
的性能甚至比使用static item embedding
的(2)
更差。一个原因是:每个时间段的
user-item
交互过于稀疏,无法直接充分训练time-dependent embedding
。但是带HGCN
的超图能够在每个时间段从multi-hop
链接中充分抽取item
之间的有效的相关性。 -
然后我们转向
HyperRec
中dynamic item embedding
所赋予的每个组件,从而检查它们的贡献。- 在
(4)
中,通过移除residual component
,超图的initial embedding
仅由static item embedding
组成。虽然在所有数据集上的性能下降,但是我们发现它在Goodreads
中带来了最大的性能损失。因此,通过控制过去的residual information
来连接不同时间段的dynamic item embedding
是很重要的。 - 对于
(5)
和(6)
,我们分别移除fusion layer
中的 $ \mathbf{\vec x}_{t_n,i}^{(L)} $ 和 $ \mathbf{\vec u}_{t_n,u} $ ,从而检查生成的dynamic item embedding
和短期用户意图如何影响动态用户偏好建模中的特定交互的含义。由于(5)
和(6)
在所有数据集上都实现了相似的性能,因此我们可以得出结论:这两个组件对于捕获交互的含义meaning of an interaction
都很重要。 - 在
(7)
中,我们使用公式 $ \bar y_{t_{n+1},u,i} = \mathbf{\vec d}_{t_{< n+1},u} ^\top \left(\mathbf{\vec x}_{t_{< n+1},i}^{(L)} + \mathbf{\vec e}_i\right) $ 计算偏好分时移除了dynamic item embedding
$ \mathbf{\vec x}_{t_{< n+1},i}^{(L)} $ 。我们发现这个组件对Amazon
和Goodreads
有很大贡献。然而,在Etsy
上,item
对即时送礼事件instant gifting event
(如,圣诞节、纪念日)更为敏感,因为上一个时间段的dynamic item embedding
可能无法提供对当前时间段的深入洞察。
- 在
-
-
超参数分析:我们探索
HyperRec
在不同数量的卷积层、以及不同的时间段粒度下的性能。-
HGCN
层数:我们通过改变超卷积层的数量来比较HyperRec
的性能,结果如下图所示。-
当仅有一个卷积层时,每个
dynamic item embedding
仅聚合来自通过超边与其直接相连的item
的信息。在这个阶段,HyperRec
可以超越它的仅考虑static item embedding
的变体,这说明了在next-item
推荐中探索短期item
相关并且采用dynamic embedding
的必要性。 -
与仅有一层相比,堆叠两个卷积层可以带来显著的提升。我们可以推断:超图和
HGCN
是一种有效选择从而用于抽取短期的有表达力的item
语义。并且在超图中考虑高阶邻域的信息很重要。 -
但是,对于
Etsy
和Amazon
而言,由于数据非常稀疏,因此没有必要进一步增加卷积层的数量。2 ~ 3
层的HGCN
足以抽取不同时间段的item
语义。然而,由于
Goodreads
在每个超图中包含相对更多的交互,因此更多的卷积层可以进一步改善embedding
过程。
-
-
时间粒度
Time Granularity
:时间段的粒度控制了HyperRec
对随时间变化的敏感程度。在下图中,我们通过将粒度从1 ~ 18
个月来展示模型的性能。可以看到:-
当时间粒度较小时,我们发现模型无法达到最佳性能,因为交互非常稀疏,不足以构建一组有表达能力的
item embedding
。 -
当扩大粒度时,我们发现
HypereRec
的性能在所有数据集上都有所提高。- 在
Amazon
数据集上,当粒度设置为12
个月时,模型性能达到最佳。 - 在
Etsy
数据集上,最佳的粒度较小,因为Etsy
上销售的商品(即手工制品)的波动性高于Amazon
上的商品。 - 在
Goodreads
数据集上,最佳的粒度约为6
个月。因为在Goodreads
中,对于每个时间段都有更多的交互从而用于dynamic item embedding
。
- 在
-
如果我们进一步扩大粒度,则模型性能会下降,因为这会低估
item
的变化并且可能会给模型带来噪声。
-
-
-
用户生命周期:我们评估具有不同生命周期的用户,其中生命周期指的是用户的最后一次交互和第一次交互之间的时间间隔。实验结果如下图所示。可以看到:
- 对于生命周期较短(不到一年)的用户,
HGN
比SASRec
效果更好;而对于生命周期更长的用户,SASRec
比HGN
更好。 - 我们发现
HyperRec
显著优于所有生命周期的baseline
。对于生命周期较长的用户,HyperRec
可以实现较大的提升,这表明HyperRec
在捕获长期用户模式并同时考虑短期相关性方面具有优势。
- 对于生命周期较短(不到一年)的用户,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论