数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
二十二、SIM [2020]
-
点击率
Click-Through Rate: CTR
预估建模在推荐系统recommender system
和在线广告online advertising
等工业应用中起着至关重要的作用。由于用户历史行为数据user historical behavior data
的快速增长,以学习用户兴趣的意图representation
为重点的用户兴趣建模user interest modeling
被广泛引入CTR
预估模型。然而,由于真实在线系统中计算负担和存储负担的限制,大多数提出的方法只能对长度最多数百的用户行为序列数据进行建模。事实证明,丰富的用户行为数据具有巨大的价值。例如,在全球领先的电商网站之一的淘宝网中,有
23%
的用户在过去五个月内点击了1000
多种商品。如何设计一种可行的解决方案来对长的用户行为序列数据long sequential user behavior data
进行建模,这一直是一个开放而热门的话题,吸引了来自工业界和学术界的研究人员。-
研究的一个分支借鉴了
NLP
领域的思想,提出使用memory network
对长的用户行为序列数据进行建模,并取得了一些突破。阿里巴巴提出的MIMN
是一项典型的工作,它是通过共同设计co-design
学习算法和serving system
来达到SOTA
的。MIMN
是第一个可以对长度可达1000
的用户行为序列进行建模的工业级解决方案。具体而言,
MIMN
将一个用户多样化diverse
的兴趣增量地incrementally
嵌入到固定大小的memory matrix
中。该矩阵将通过每个新的行为进行更新,这样用户建模的计算就和CTR
预估解耦。因此,对于在线serving
而言,latency
将不再是问题。而存储代价依赖于memory matrix
的大小,该大小远远小于原始的用户行为序列。在长期兴趣建模
long-term interest modeling
中可以找到类似的思想。然而,对于memory network-based
方法来建模任意长的序列数据仍然是具有挑战性的。实际上我们发现:当用户行为序列的长度进一步增加,比如增加到10000
甚至更多时,对给定一个特定的候选item
的情况下,MIMN
无法精确地捕获用户的兴趣。这是因为将用户所有的历史行为编码到固定大小的memory matrix
会导致大量的噪声被包含在memory unit
中。 -
另一方面,正如
DIN
在以前的工作中指出的,一个用户的兴趣是多样化diverse
的,并且在面对不同候选item
时会有所不同。DIN
的关键思想是:在面对不同的候选item
时,从用户行为序列中搜索有效信息,从而建模用户的特定兴趣special interest
。通过这种方式,我们可以解决将用户所有兴趣编码为固定大小的参数parameter
的挑战。DIN
确实为使用用户行为序列数据的CTR
建模带来了很大的提升。但是,如前所述,面对长的用户行为序列数据,DIN
的搜索公式的计算成本和存储成本是不可行的。因此,我们能否应用类似的搜索技巧,并设计一种更有效的方法来从长的用户行为序列数据中提取知识?
在论文
《Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction》
中,作者通过设计一个新的建模范式来解决这一挑战,并将其命名为基于搜索的兴趣模型Search-based Interest Model: SIM
。SIM
采用了DIN
的思想,并且仅捕获与特定候选item
相关的用户兴趣。在
SIM
中,用户兴趣是通过两个级联cascaded
的搜索单元search unit
来提取的:-
通用搜索单元
General Search Unit: GSU
:充当原始的、任意长的行为序列数据的通用搜索,并具有来自候选item
的query
信息,最终得到和候选item
相关的用户行为序列子集Sub user Behavior Sequence: SBS
。为了满足
latency
和计算资源的严格限制,在GSU
中使用了通用、但是有效的方法。根据我们的经验,可以将SBS
的长度缩短为数百个,并且可以过滤原始的、长的用户行为序列数据中的大部分噪声信息。 -
精准搜索单元
Exact Search Unit: ESU
:对候选item
和SBS
之间的精确关系进行建模。在这里,我们可以轻松应用DIN
或DIEN
提出的类似方法。
论文主要贡献:
- 提出了一种新的范式
SIM
,用于长的用户行为序列数据进行建模。级联的两阶段搜索机制的设计使得SIM
具有更好的能力,可以在可扩展性scalability
和准确性accuracy
方面为长期的life-long
用户行为序列数据建模。 - 介绍了在大规模工业系统中实现
SIM
的实践经验。自2019
年以来,SIM
已经部署在阿里巴巴展示广告系统display advertising system
中,带来了7.1%
的CTR
提升和4.4%
的RPM
提升。现在SIM
正在服务于主要流量。 - 将长的用户行为序列数据建模的最大长度提高到
54000
,比已发布的SOTA
行业解决方案MIMN
大54
倍。
-
-
相关工作:
-
用户兴趣模型
User Interest Model
:基于深度学习的方法在CTR
预估任务中取得了巨大的成功。在早期,大多数前期作品使用深度神经网络来捕获来自不同
field
的特征之间的交互,以便工程师可以摆脱枯燥的特征工程的工作。最近,我们称之为用户兴趣模型User Interest Model
的一系列工作聚焦于从用户历史行为中学习潜在用户兴趣的representation
,这些工作使用不同的神经网络架构(如CNN, RNN, Transformer, Capsule
等等)。DIN
强调用户的兴趣是多样化的,并引入了一种attention
机制来捕获用户对不同target item
的diverse
兴趣。DIEN
指出,用户历史行为之间的时间关系对于建模用户漂移drifting
的兴趣非常重要。在DIEN
中设计了一个基于GRU
的、带辅助损失的兴趣抽取层interest extraction layer
。MIND
认为,使用单个向量来表示一个用户不足以捕获用户兴趣的变化的特性varying nature
。在MIND
中引入了胶囊网络Capsule network
和动态路由方法dynamic routing method
,从而学习用户兴趣的、以多个向量表示的representation
。- 受到
self-attention
架构在seq-to-seq learning
任务重成功的启发,DSIN
引入了Transformer
来对用户的cross-session
和in-session
中的兴趣进行建模。
-
长期用户兴趣
Long-term User Interest
:MIMN
的论文中显示了在用户兴趣模型中考虑长期历史行为序列可以显著提高CTR
模型的性能。尽管更长的用户行为序列为用户兴趣建模带来了更多有用的信息,但是它极大地增加了在线serving sysem
的延迟和存储负担,同时也为point-wise
的CTR
预估带来了大量的噪声。一系列工作聚焦于解决长期用户兴趣建模中的挑战。长期用户兴趣建模通常基于非常长的、甚至是
life-long
的历史行为序列来学习用户兴趣representation
。-
《Lifelong Sequential Modeling with Personalized Memorization for User Response Prediction》
提出了一种Hierarchical Periodic Memory Network
,用于对每个用户进行life-long
序列建模,其中对序列模式进行个性化memorization
。 -
《Adaptive user modeling with long and short-term preferences for personalized recommendation》
选择一个attention-based
框架来结合用户的长期偏好和短期偏好。他们采用了attentive Asymmetric-SVD
范式来对长期兴趣建模。 -
《Practice on Long Sequential User Behavior Modeling for Click-through Rate Prediction》
提出了一种memory-based
的架构,称作MIMN
。该架构将用户的长期兴趣嵌入到固定大小的memory network
中,从而解决用户兴趣数据的大容量存储问题。并且他们设计了一个UIC
模块来增量记录新的用户行为,从而解决latency
的限制。但是,
MIMN
在memory network
中放弃了target item
的信息,而target item
已经被证明对于用户兴趣建模很重要。
-
-
22.1 模型
-
通过建模用户行为数据来预估
CTR
,这已经被证明是有效的。典型地,attention-based CTR
模型(如DIN, DIEN
)设计复杂的模型结构,并且包含attention
机制,以通过从用户行为序列中搜索有效知识来捕获用户的多样化兴趣。其中搜索的input
来自于不同的候选item
。但是在现实世界的系统中,这些模型只能处理长度小于
150
的短期short-term
行为序列数据。另一方面,长期long-term
用户行为数据很有价值,并且对长期兴趣进行建模可以为用户带来更多样化的推荐结果。我们似乎陷入了一个两难的境地:在现实世界的系统中,我们无法通过有效而复杂的方法来处理有价值
valuable
的life-long
用户行为数据。为应对这一挑战,我们提出了一种新的建模范式,称之为基于搜索的兴趣模型Search-based Interest Model: SIM
。SIM
遵循两阶段搜索策略,可以有效地处理长的用户行为序列。我们首先介绍
SIM
的总体工作流程,然后详细介绍我们提出的两种搜索单元search unit
。 -
SIM
遵循一个级联的two-stage search
策略,其中包含两个单元:通用搜索单元General Search Unit: GSU
、精确搜索单元Exact Search Unit: ESU
。SIM
的整体工作流如下图所示。-
第一阶段:我们利用
GSU
从原始的长期行为序列中寻找top-K
相关relevant
的子行为序列,其复杂度为线性时间复杂度。这里K
通常要比原始序列的长度要短得多。如果有时间和计算资源的限制,则可以执行一种有效的搜索方法来搜索相关
relevant
的子行为序列。在后续内容中,我们提供了GSU
的两种简单实现:软搜索soft-search
和硬搜索hard-search
。GSU
采取一种通用general
但有效effective
的策略来减少原始的行为序列的长度,从而满足对时间和计算资源的严格限制。同时,长期用户行为序列中可能会破坏用户兴趣建模的大量噪声可以在第一阶段通过搜索策略进行过滤。 -
第二阶段:
ESU
将经过过滤的用户行为子序列作为输入,并进一步捕获精确precise
的用户兴趣。由于长期用户行为序列的长度已经减少到数百,因此可以应用复杂体系结构的精巧
sophisticated
的模型,如DIN, DIEN
等等。
然后遵循传统的
Embedding&MLP
范式,将精确precise
的长期用户兴趣的输出、以及Other Feature
作为输入。注意:尽管我们分别介绍了这两个阶段,但是实际上它们是一起训练的。
-
22.1.1 General Search Unit
-
给定一个候选
item
(即将被CTR
模型打分的target item
),只有一部分用户行为有价值。这部分用户行为与最终用户决策密切相关。挑选出这些相关relevant
的用户行为有助于用户兴趣建模。然而,使用整个用户行为序列直接对用户兴趣进行建模将带来巨大的资源占用和响应延迟
latency
,这在实际应用中通常是无法接受的。为此,我们提出了一个通用搜索单元general search unit: GSU
,从而减少用户兴趣建模中用户行为的输入数量。这里,我们介绍两种通用的搜索单元:硬搜索hard-search
和软搜索soft-search
。 -
给定用户行为的列表 $ \mathbf B=[\mathbf b_1;\mathbf b_2;\cdots,\mathbf b_T] $ ,其中 $ \mathbf b_i $ 为第 $ i $ 个用户行为(这里每个行为就是用户点击或购买的
item
), $ T $ 为用户行为列表的长度。通用搜索单元计算每个行为 $ \mathbf b_i $ 相对于候选item
的相关性得分relevant score
$ r_i $ ,然后选择得分top-K
的相关relevant
行为作为行为子序列sub behaviour sequence
。硬搜索和软搜索的区别在于相关的分 $ r_i $ 的计算:
$ r_i=\begin{cases} I(c_i = c_a),&\text{hard-search}\\ \left(\mathbf W_b\mathbf{\vec e}_i\right)\cdot \left(\mathbf W_a\mathbf{\vec e}_a\right),&\text{soft-search} \end{cases} $其中:
-
$ I(\cdot) $ 为示性函数, $ c_i $ 表示第 $ i $ 个行为 $ \mathbf b_i $ 的类目, $ c_a $ 为
target item
的类目。 -
$ \mathbf W_b \in \mathbb R^{d^\prime\times d} $ 和 $ \mathbf W_a \in \mathbb R^{d^\prime\times d} $ 为权重参数, $ \mathbf{\vec e}_i\in \mathbb R^d $ 为第 $ i $ 个行为 $ \mathbf b_i $ 的
embedding
向量, $ \mathbf{\vec e}_a \in \mathbb R^d $ 为target item
的embedding
向量。 $ d $ 为item embedding
的维度, $ d^\prime $ 为映射的新空间的维度。对于软搜索,
GSU
和ESU
共享相同的embedding
参数。
-
-
硬搜索
hard-search
:硬搜索模型是非参数non-parametric
的。只有和候选item
相同类目category
的行为被挑选出来,然后得到一个子行为序列并发送给ESU
。硬搜索非常简单,稍后在实验中我们证明它非常适合在线
serving
。 -
软搜索
soft-search
:在软搜索模型中,首先将 $ \mathbf b_i $ 编码为one-hot
向量,然后嵌入到低维向量 $ \mathbf{\vec e}_i $ 中。-
为了进一步加速成千上万个用户行为的
top-K
搜索,基于embedding
矩阵 $ \mathbf E $ 的、亚线性时间sublinear time
的最大内积搜索maximum inner product search
方法ALSH
用于搜索和target item
最相关的top-K
行为。其中 $ \mathbf E $ 为所有distinct
行为的embedding
向量组成。借助训练好的
embedding
和最大内积搜索Maximum Inner Product Search: MIPS
方法,成千上万个用户行为可以减少到数百个。 -
需要注意的是:长期
long-term
数据和短期short-term
数据的分布是不同的。因此,在软搜索模型中直接使用从短期用户兴趣建模中学到的参数可能会误导长期用户兴趣建模。所以在本文中,软搜索模型的参数是在基于长期行为数据的辅助CTR
预估任务下训练的,如上图左侧的软搜索训练soft search training
所示。用户整体行为序列的
$ \mathbf{\vec u}_r = \sum_{i=1}^T r_i \mathbf{\vec e}_i $representation
$ \mathbf{\vec u}_r $ 可以通过将 $ r_i $ 和 $ \mathbf{\vec e}_i $ 相乘得到:行为
representation
$ \mathbf{\vec u}_r $ 和target Ad
向量 $ \mathbf{\vec e}_a $ 然后拼接起来,作为后续多层感知机Multi-Layer Perception: MLP
的输入,从而建模辅助任务。注意,如果用户行为序列增长到一定程度,则不可能将整个用户行为序列馈入辅助任务的模型。这种情况下,可以从长的用户行为序列中随机采样子序列,子序列仍然遵循原始行为序列相同的分布。
-
22.1.2 Exact Search Unit
-
在第一个搜索阶段,我们从长期用户行为中选择和
target item
最相关的top-K
子用户行为序列 $ \mathbf B^{(*)}=\left[\mathbf b_1^{(*)};\cdots;\mathbf b_K^{(*)}\right] $ 。为了进一步从相关行为中建模用户兴趣,我们引入了精确搜索单元Exact Search Unit: ESU
。ESU
是一个以 $ \mathbf B^{(*)} $ 为输入的、attention-based
的模型。考虑到这些选出来的用户行为横跨了很长时间,因此每个用户行为的贡献是不同的,所以涉及到每个行为的时间属性
temporal property
。具体而言,target item
和选出来的K
个用户行为的时间间隔 $ \mathbf D = [\Delta_1;\Delta_2;\cdots;\Delta_K] $ 用于提供时间距离temporal distance
信息。$ \mathbf B^{(*)} $ 和 $ \mathbf D $ 被编码为
embedding
矩阵 $ \mathbf E^{(*)}=\left[\mathbf{\vec e}_1^{(*)};\mathbf{\vec e}_2^{(*)};\cdots;\mathbf{\vec e}_K^{(*)}\right] $ 和embedding
矩阵 $ \mathbf E^{(t)}=\left[\mathbf{\vec e}_1^{(t)};\mathbf{\vec e}_2^{(t)};\cdots;\mathbf{\vec e}_K^{(t)}\right] $ 。 其中, $ \mathbf{\vec e}_j^{(*)} $ 和 $ \mathbf{\vec e}_j^{(t)} $ 的拼接作为第 $ j $ 个行为的最终representation
,记作 $ \mathbf{\vec z}_j=\text{concat}\left(\mathbf{\vec e}_j^{(*)},\mathbf{\vec e}_j^{(t)}\right) $ 。我们利用
$ \text{att}_{i,\text{score}}(j) = \text{Softmax}\left(\left(\mathbf W_{i,z}\mathbf{\vec z}_j\right)\cdot\left(\mathbf W_{i,a}\mathbf{\vec e}_a\right) \right)=\frac{\exp\left[\left(\mathbf W_{i,z}\mathbf{\vec z}_j\right)\cdot\left(\mathbf W_{i,a}\mathbf{\vec e}_a\right)\right]}{\sum_{k=1}^K \exp \left[\left(\mathbf W_{i,z}\mathbf{\vec z}_k\right)\cdot\left(\mathbf W_{i,a}\mathbf{\vec e}_a\right)\right]}\\ \mathbf{\vec z}^{}=\sum_{j=1}^K \text{att}_{i,\text{score}}(j)\times \mathbf{\vec z}_j $multi-head attention
来捕获用户的多样化兴趣:其中:
- $ \text{att}_{i,\text{score}}(j) $ 为作用在第 $ j $ 个行为 $ \mathbf{\vec z}_j $ 上的第 $ i $ 个
attention score
, $ \mathbf{\vec z} ^{} $ 为第 $ i $ 个head
的attention
。 - $ \mathbf W_{i,z},\mathbf W_{i,a} $ 为第 $ i $ 个
head
的权重矩阵。
最终的用户长期
diverse
兴趣表示为: $ \mathbf{\vec u}_{\text{long}} = \text{concat}\left(\mathbf{\vec z}^{<1>};\cdots;\mathbf{\vec z}^{}\right) $ ,其中 $ H $ 为 head
数量。然后 $ \mathbf{\vec u}_{\text{long}} $ 被馈入到MLP
中用于点击率预估。 - $ \text{att}_{i,\text{score}}(j) $ 为作用在第 $ j $ 个行为 $ \mathbf{\vec z}_j $ 上的第 $ i $ 个
-
最终模型同时使用了长期用户行为和短期用户行为,其中:
- 长期用户行为使用
ESU
来抽取长期用户兴趣representation
$ \mathbf{\vec u}_{\text{long}} $ 。 - 短期用户行为使用
DIEN
来抽取短期用户兴趣representation
$ \mathbf{\vec u}_{\text{short}} $ 。
长期用户兴趣
representation
$ \mathbf{\vec u}_{\text{long}} $ 、短期用户兴趣representation
$ \mathbf{\vec u}_{\text{short}} $ 、以及Other feature representation
一起拼接作为后续MLP
的输入。长期用户兴趣由长期用户行为来捕获,这里使用
GSU + ESU
的原因是序列太长,DIEN
无法处理。短期用户兴趣由短期用户行为来捕获,这里使用
DIEN
是因为序列较短因此可以更精细地建模。对于较短的序列,没必要使用GSU
来硬过滤。 - 长期用户行为使用
-
最后,我们在交叉熵损失函数下同时训练
$ \mathcal L = \alpha \text{Loss}_{GSU} + \beta \text{Loss}_{ESU} $GSU
和ESU
:其中:
-
$ \alpha $ 和 $ \beta $ 为超参数,用于控制损失之间的比例。在我们的实验中:
- 如果
GSU
为软搜索模型,则 $ \alpha=\beta = 1 $ 。 - 如果
GSU
使用硬搜索模型,那么 $ \alpha = 0 $ 。
- 如果
-
$ \text{Loss}_{ESU} $ 为
ESU
单元的损失,这也是SIM
模型主任务的目标损失。 -
$ \text{Loss}_{GSU} $ 为
GSU
单元的损失。- 如果
GSU
为硬搜索,则由于硬搜索没有参数,因此不考虑其损失。 - 如果
GSU
为软搜索,则它是SIM
模型辅助任务的目标损失。辅助任务也是一个CTR
预估任务,只是它采用了更简单的架构(没有multi-head
、没有DIEN
)、更少的特征(没有短期用户行为、没有Other feature
)。
- 如果
这个辅助损失函数本质上是强制
GSU
部分学到的embedding
是任务相关的。可以理解为boosting
模型的一种:GSU
部分已经学到了CTR
相关的信息,ESU
部分继续拟合残差。SIM
、DeepMCP
、DMR
等模型都是类似的思想,要求模型的子结构也能够捕获到CTR
相关的信息,从而使得约束了模型的解空间。 -
22.1.3 在线实现
-
这里我们介绍在阿里巴巴的展示广告系统
display advertising system
中实现SIM
的实际经验。 -
life-long
用户行为数据在线serving
的挑战:工业级的推荐系统或广告系统需要在一秒钟内处理的大量的流量请求,这需要CTR
模型实时响应。通常,serving latency
应该小于30
毫秒。下图简要说明了我们在线展示广告系统中用于CTR
任务的实时预测Real Time Prediction: RTP
系统。该系统由两个关键组件组成:计算节点Computation Node
、预估server
。考虑到
lifelong
的用户行为,在实时工业系统中建立长期的用户兴趣model serving
就变得更加困难。存储和延迟的限制可能是长期用户兴趣模型的瓶颈。实时请求的数据量(数据量 = 请求条数 x 单条请求的数据量)会随着用户行为序列长度的增加而线性增加。此外,我们的系统在流量高峰时每秒可为超过100
万用户提供服务。因此,将长期模型部署到在线系统是一个巨大的挑战。 -
在线
serving
系统:前面我们提出了两种类型的GSU
:软搜索模型和硬搜索模型。对于软搜索模型和硬搜索模型,我们对从阿里巴巴在线展示广告系统收集的工业数据进行了广泛的离线实验。我们观察到软搜索模型生成的
top-K
行为数据与硬搜索模型的结果极为相似。换句话讲,软搜索的大部分top-K
行为通常属于target item
相同类目category
的。这是我们场景中数据的一个特色。在电商网站中,属于同一类目的item
在大多数情况下是相似的。考虑到这一点,尽管在离线实验中软搜索模型的性能要比硬搜索模型稍好,但是在平衡性能提升和资源消耗之后,我们选择硬搜索模型将SIM
部署到我们的广告系统中。对于硬搜索模型,包含所有长的用户行为序列数据的索引是关键组件。我们观察到,行为可以通过其所属类目自然访问到。为此,我们为每个用户建立一个两级的结构化索引
two-level structured index
,并将其命名为用户行为树user behavior tree: UBT
,如下图所示。简而言之,
UBT
遵循Key-Key-Value
数据集结构:第一个key
是user-id
,第二个key
是category id
,最后一个value
是属于每个类目的特定的行为item
。UBT
被实现为分布式系统,最大容量可达22TB
,并且足够灵活以提供高吞吐量的query
。然后,我们将
target item
的category
作为我们的硬搜索query
。在
GSU
之后,用户行为的长度可以从一万多个减少到数百个。因此,可以缓解在线系统中lifelong
行为的存储压力。下图显示了
SIM
的新CTR
预估系统。新系统加入了一个硬搜索模块,以从长的用户行为序列数据中寻找target item
相关的有效行为effective behaviors
。注意:
GSU
的UBT
的索引可以离线构建。这样,在线系统中的GSU
的响应时间可以非常短,与GSU
的索引构建相比可以忽略。此外,其它用户特征可以并行计算。
22.2 实验
-
这里我们详细介绍了我们的实验,包括数据集、实验配置、模型比较、以及一些相应的分析。由于
SIM
已经部署在我们的在线广告系统中,因此我们还会进行仔细的在线A/B test
,并比较几个著名的工业级的模型。 -
数据集:我们在两个公共数据集、以及阿里巴巴在线展示广告系统收集的工业数据集进行了模型比较。
-
Amazon Dataset
:由Amazon
的商品评论和元数据meta-data
组成。我们使用Amazon
数据集的Books
子集,该子集包含75053
个用户、358367
个item
、1583
个类目category
。对于该数据集,我们将评论视为一种交互行为,并按时间对一个用户的评论进行排序。
Amazon Books
数据集的最大行为序列长度为100
。我们将最近的10
个用户行为划分为短期short-term
用户序列特征,将最近的90
个用户行为划分为长期long-term
用户序列特征。这些预处理方法已经在相关作品中广泛使用。 -
Taobao Dataset
:是来自淘宝推荐系统的用户行为集合。数据集包含几种类型的用户行为,包括点击、购买等。它包含大约800
万用户的用户行为序列。我们采用每个用户的点击行为,并根据时间对其进行排序从而构建用户行为序列。
Taobao Dataset
的最大行为序列长度为500
。我们将最近的100
个用户行为划分为短期用户序列特征,将最近的400
个用户行为划分为长期用户序列特征。数据集将很快公开。 -
Industrial Dataset
:是从阿里巴巴在线展示广告系统收集的。样本是由曝光日志构建的,标签为是否点击。训练集是由过去49
天的样本组成,测试集是第50
天的样本组成,这是工业建模的经典设置。在这个数据集中,每个样本的用户行为特征包含最近
180
天的历史行为序列作为长期行为特征,以及最近14
天的历史行为序列作为短期行为特征。超过30%
的样本包含长度超过1
万的行为序列数据。此外,行为序列的最大长度达到54000
,这比MIMN
中的行为序列长54
倍。
这些数据集的统计信息如下表所示。注意,对于
Industrial Dataset
,item
为广告。 -
-
baseline
方法:我们将SIM
和以下主流的CTR
预估模型进行比较。DIN
:是用户行为建模的早期工作,旨在针对候选item
进行用户行为的软搜索。和其它长期用户兴趣模型相比,DIN
仅将短期用户行为作为输入。Avg-Pooling Long DIN
:为了比较长期用户兴趣下的模型性能,我们对长期行为应用了均值池化操作(没有使用任何attention
操作),并将long-term embedding
、以及其它特征embedding
拼接起来。MIMN
:它巧妙地设计了模型体系结构从而捕获长期的用户兴趣,实现了state-of-the-art
性能。SIM(hard)
:我们提出的SIM
模型,其中第一阶段使用硬搜索,并且在ESU
中没有time embedding
。SIM(soft)
:我们提出的SIM
模型,其中第一阶段使用软搜索,并且在ESU
中没有time embedding
。SIM(hard/soft) with Timeinfo
:我们提出的SIM
模型,其中第一阶段使用硬搜索/软搜索,并且在ESU
使用time embedding
。
-
实验配置:我们采用与相关工作(即
MIMN
)相同的实验配置,以便可以公平地比较实验结果。- 对所有模型,我们使用
Adam
优化器。 - 我们使用指数衰减,学习率从
0.001
开始。 - 全连接网络
FCN
的layer
设置为200 x 80 x 2
。 embedding
维数设置为4
。- 我们使用
AUC
作为模型性能的评估指标。
- 对所有模型,我们使用
-
下表显式了所有模型在公共数据集上的比较结果。
a
表示SIM
采用软搜索且没有时间间隔的embedding
。b
没有在Amazon Dataset
上实验,因为该数据集没有时间戳数据。-
和
DIN
相比,具有长期用户行为特征的其它模型的性能要好得多。这表明长期用户行为对CTR
预估任务很有帮助。 -
和
MIMN
相比,SIM
取得了显著提升,因为MIMN
将所有未过滤的用户历史行为编码到固定长度的memory
中,这使得难以捕获多样化的长期用户兴趣。 -
SIM
使用两阶段搜索策略从庞大的历史行为序列中搜索相关的行为,并针对不同target item
来建模多样化的长期用户兴趣。实验结果表明:
SIM
优于所有其它长期兴趣模型。这充分证明了我们提出的两阶段搜索策略对于长期用户兴趣建模很有用。而且,包含time embeding
可以实现进一步的提升。
-
-
消融研究--两阶段搜索的有效性:如前所述,我们的
SIM
模型使用两阶段搜索策略。- 第一阶段遵循通用搜索策略,从而过滤得到与
target item
相关的历史行为。 - 第二阶段对第一阶段的行为进行
attention-based
的精确exact
搜索,从而准确地accurately
捕获用户对于target item
的多样化的长期兴趣。
这里我们通过对长期历史行为应用不同操作的实验来评估所提出的两阶段搜索架构的有效性。这些不同的操作如下:
-
Avg-Pooling without Search
仅仅简单地应用均值池化来聚合长期行为embedding
,没有使用任何过滤。它和Avg-Pooling Long DIN
相同。 -
Only First Stage(hard)
在第一阶段对长期历史行为应用硬搜索,并通过对过滤后的结果应用均值池化从而得到固定大小的、聚合的embedding
,从而作为MLP
的输入。即没有第二阶段搜索策略。 -
Only First Stage (soft)
几乎和Only First Stage(hard)
,但是前者采用软搜索而不是硬搜索。我们根据预训练
pre-trained
的embedding
向量,离线计算target item
和长期用户行为之间的内积相似度得分。然后根据相似度得分选择top 50
个相关行为来进行软搜索。 -
最后三个实验是我们提出的两阶段搜索架构的搜索模型。
实验结果如下表所示,可以看到:
- 与简单的均值池化
embedding
相比,所有具有过滤策略的方法都极大地提高了模型性能。这表明在原始的长期行为序列中确实存在大量的噪声,而这些噪声可能会破坏长期用户兴趣的学习。 - 和仅进行一阶段搜索的模型相比,我们提出的具有两阶段搜索策略的搜索模型通过在第二阶段引入
attention-based
的搜索而取得了进一步的提升。这表明:精确地precisely
建模用户对target item
的多样化的长期兴趣,有助于CTR
预估任务。并且在第一阶段搜索之后,过滤后的行为序列通常比原始序列短得多,attention
操作不会给在线RTP
系统带来太多负担。 - 包含
time embedding
的模型得到了进一步的提升,这表明不同时期peroid
的用户行为的贡献是不同的。
- 第一阶段遵循通用搜索策略,从而过滤得到与
-
我们进一步对阿里巴巴在线展示广告系统收集的工业数据集进行实验,下表给出了实验结果。
a
表示该模型目前已经部署在我们的在线serving
系统,并且服务于主要的流量。-
SIM
相比MIMN
在AUC
上提升了0.008
,这对于我们的业务而言意义重大。 -
和第一阶段使用硬搜索相比,第一阶段使用软搜索的性能更好。
-
在第一阶段,硬搜索和软搜索这两种搜索策略之间只有微小的差距。
- 在第一阶段应用软搜索会花费更多的计算资源和存储资源。因为软搜索需要在
online serving
中使用最近邻搜索,而硬搜索只需要从离线构建的两级索引表中检索。因此,硬搜索更加有效且系统友好。 - 对两种不同的搜索策略,我们对来自工业数据集的超过
100
万个样本和10
万个具有长期历史行为的用户进行了统计。结果表明:硬搜索策略保留的用户行为可以覆盖软搜索策略的75%
。
最后,我们在第一阶段选择更简单的硬搜索策略,这是在效率
efficiency
和性能performance
之间的trade-off
。 - 在第一阶段应用软搜索会花费更多的计算资源和存储资源。因为软搜索需要在
-
-
在线
A/B test
:自2019
年以来,我们已经在阿里巴巴的展示广告系统中部署了SIM
。从2020-01-07 ~ 2020-02-07
,我们进行了严格的在线A/B test
实验,从而验证SIM
模型。和MIMN
(我们的最新模型)相比,SIM
在阿里巴巴的展示广告场景中获得了巨大收益,如下表所示。现在,SIM
已经在线部署并每天为主要场景流量提供服务,这为业务收入的显著增长做出了贡献。下表为
2020-01-07 ~ 2020-02-07
期间,SIM
相对于MIMN
的在线效果提升,其中模型应用于淘宝App
首页的“猜你喜欢” 栏目。 -
Rethinking Search Model
:我们在用户长期兴趣建模方面做出了巨大努力,所提出的SIM
在离线和在线评估方面都取得了良好的性能。但是 ,由于进行了精确的precise
长期兴趣建模,SIM
的性能会更好吗?SIM
是否会倾向于推荐和人们长期兴趣相关的item
?为回答这两个问题,我们制定了另一个指标,即点击样本的
Days till Last Same Category Behavior
$ d_{\text{category}} $ 。 $ d_{\text{category}} $ 定义为:在点击事件发生之前,用户在相同类目cateogry
的item
上的最近行为距离当前点击事件的时间间隔。例如,用户 $ u_1 $ 点击了类目为 $ c_1 $ 的
item
$ i_1 $ ,并且用户 $ u_1 $ 五天前点击了相同类目 $ c_1 $ 的item
$ i_2 $ (并且在这五天之内没有点击相同类目的其它item
)。如果将点击事件记作 $ s_1 $ ,那么样本 $ s_1 $ 的Days till Last Same Category Behavior
为5
,即 $ d_{\text{cateogry}}^{s_1} = 5 $ 。此外,如果用户 $ u_1 $ 历史上从未在类目 $ c_1 $ 上有任何行为,我们设置 $ d_{\text{cateogry}}^{s_1} = -1 $ 。对于给定的模型,可以使用 $ d_{\text{category}} $ 来评估模型在长期兴趣
long-term interest
或短期兴趣short-term interest
上的选择偏好selection preference
。-
经过在线
A/B test
之后,我们根据提出的 $ d_{\text{category}} $ 指标分析了SIM
和DIEN
(这是短期的CTR
预估模型的最新版本)的点击样本。点击样本越多则说明模型效果越好(模型找的越准)。根据 $ d_{\text{category}} $ 我们将点击样本(这里指的是模型预估参与竞价的结果)拆分为两个部分:长期的(
>14
天)、短期的(<14
天)。方框显示了不同 $ d_{\text{category}} $ 的SIM
模型点击样本的提升比例(相对于DIEN
模型)。曲线表示不同 $ d_{\text{category}} $ 下不同模型找到的点击样本数量。可以看到:在短期部分( $ d_{\text{category}} <14 $ )上的两个模型之间几乎没有差异,因为
SIM
和DIEN
在过去14
天中都具有短期的用户行为特征。在长期部分,SIM
提升比例更大。 -
此外在工业数据集上,我们统计了 $ d_{\text{category}} $ 的均值、以及用户拥有和
target item
相同类目的历史行为的概率。结果如下表所示(在不同模型找到的点击样本上统计到的)。结果表明:
SIM
的提升确实是更好的长期兴趣建模的结果。并且和DIEN
相比,SIM
倾向于推荐与人们长期行为有关的item
。
读者注:这里假设
A/B test
时流量相等,因此点击量的差异等价于CTR
的差异。 -
-
部署的实践经验:这里我们介绍了在线
serving
系统中实现SIM
的实践经验。阿里巴巴的高流量是众所周知的,它在流量高峰时每秒为超过
100
万用户提供服务。此外,对于每个用户,RTP
系统需要计算数百个候选item
的预估CTR
。我们对整个离线用户行为数据建立一个两阶段索引,该索引每天都会更新:第一阶段是user id
;在第二阶段,一个用户的life-long
行为数据由该用户所交互的类目来索引。虽然候选
item
的数量为数百,但是这些item
的类目数量通常少于20
。同时,来自GSU
的每个类目的子行为序列的长度被截断为不超过200
(原始的行为序列长度通常小于150
)。这样,来自用户的每个请求的流量是有限的并且可以接受的。此外,我们通过
deep kernel fusion
优化了ESU
中multi-head attention
的计算。下图显示了我们的实时
CTR
预估系统相对于DIEN,MIMN,SIM
流量的效率。值得注意的是:MIMN
可以处理的最大用户行为长度是1000
,而这里显示的性能是基于截断的行为数据(MIMN
和DIEN
中,用户行为的长度被截断为1000
)。- 而
SIM
中的用户行为的长度不会被截断,并且可以扩展到54000
,使得最大长度可以扩展到54
倍。针对一万个行为的SIM serving
,相比于截断用户行为的MIMN serving
,latency
仅增加了5ms
。 DIEN
的最大流量为200
,因此图中只有一个点。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论