数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
一、MMOE [2018]
近年来,深度神经网络模型已成功应用于很多现实世界的大规模应用程序
application
中,例如推荐系统。这些推荐系统通常需要同时优化多个目标。例如,当给用户推荐电影时,我们希望用户不仅“购买”和“观看”电影,还希望用户能够喜欢这些电影,从而吸引用户回头观看更多的电影。即,我们可以创建模型来同时预测用户的购买情况和他们的评分情况。事实上,很多大规模推荐系统已经采用了基于深度神经网络模型的多任务学习。研究人员表示:多任务学习模型可以利用正则化和迁移学习来改善所有任务的模型预测。
但是在实践中,多任务学习模型并不总是在所有任务上都超越相应的单任务模型。实际上很多基于
DNN
的多任务学习模型对诸如数据分布差异和任务之间关系之类的因素很敏感。来自任务差异的固有冲突inherent conflict
实际上会损害至少一部分任务的预测,尤其是当模型参数在所有任务之间广泛共享时。因此,重要的是研究特定任务目标task-specific objective
和任务间关系inter-task relationship
之间建模的权衡tradeoff
。早期的工作研究了多任务学习中的任务差异
task difference
,方法是为每个任务假设特定的数据生成过程,并根据假设来度量measuring
任务差异,然后根据任务的差异来提出建议。然而,由于实际应用程序通常具有更复杂的数据模式,因此很难度量任务差异并利用这些工作中建议的方法。最近的一些工作提出了新的建模技术来处理多任务中的任务差异,而不依赖于显式的任务差异度量。但是,这些技术通常涉及为每个任务添加更多的模型参数,从而适应任务差异。由于大规模推荐系统可能包含数百万或数十亿个参数,这些额外的参数可能是欠约束的
under-constrained
(即无法得到充分学习),这可能会损害模型质量。另外,由于serving
资源有限,这些参数的额外计算成本在实际生产环境中通常也是不可实现的。在论文
《Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts》
中,我们提出了一种新颖的、基于Multi-gate Mixture-of-Expert: MMoE
结构的多任务学习方法,该方法受到Mixture-of-Expert: MoE
模型和最近的MoE layer
的启发。MMoE
显式地对任务关系task relationship
建模,并学习task-specific
函数以利用共享的representation
。它允许自动分配参数来捕获共享的任务信息shared task information
或特定于任务的信息task-specific information
,而无需为每个任务添加许多新参数。MMoE
的骨干基于最常用的共享底部Shared-Bottom
多任务DNN
架构。Shared-Bottom
模型架构如图(a)
所示,其中输入层之后的几个底层bottom layer
在所有任务之间共享,然后每个任务在bottom representation
的顶部都有一个独立的tower
网络。MMoE
模型不是所有任务共享一个底部网络bottom network
,而是有一组bottom network
,如图(c)
所示。每个bottom network
称作一个专家子模型expert submodel
。论文中每个专家都是前馈神经网络。- 然后我们为每个任务引入一个门控网络
gating network
。门控网络馈入输入特征input feature
,并输出softmax
的门控权重,并以这些权重来集成assembling
所有的专家。 - 集成专家的结果被传递到任务特定
task-specific
的tower
网络中。通过这种方式,不同任务的门控网络可以学习专家集成的不同混合模式,从而捕获任务关系。
以这种方式,我们允许不同的任务以不同的方式利用专家。
为了理解
MMoE
是如何为不同级别level
任务相关性来学习它的专家和任务门控网络task gating network
的,我们进行了一项人工合成实验synthetic experiment
。在该实验中,我们可以通过任务之间的皮尔逊相关系数Pearson correlation
来度量和控制任务相关性。我们使用两个人工合成回归任务,并使用正弦函数作为数据生成机制来引入非线性。- 实验表明:
MMoE
优于baseline
方法,尤其是当任务相关性较低的情况下。 - 在这组实验的多次运行中,我们还发现
MMoE
更容易训练(即可训练性trainability
),并且收敛到一个更低的loss
。这与最近的发现有关,即调制modulation
和门控机制可以提高训练非凸深度神经网络的可训练性trainability
。
我们进一步评估了
MMoE
在benchmark
数据集(UCI Census-income
数据集)上的性能,该数据集具有多任务的配置。我们比较了几种state-of-the-art
的多任务模型,这些模型通过软参数共享soft parameter sharing
来建模任务关系,并观察到MMOE
方法的提升。最后,我们在一个真实的大规模内容推荐系统上测试
MMoE
。在这个系统中,当向用户推荐item
时,我们同时学习两个分类任务。我们用数千亿个训练样本来训练MMoE
模型,并将其与Shared-Bottom
的生产模型production model
进行比较。我们观察到离线指标(如AUC
)有显著提升。此外,我们的MMoE
模型在在线实验中不断提升在线指标。通过在
benchmark
数据集和真实的大型推荐系统上进行的实验,我们证明了MMoE
方法在几种state-of-the-art
多任务学习模型上的成功。除了上述效果上的优点之外,实际机器学习生产系统的另一个主要设计因素是计算效率,这也是
Shared-Bottom
多任务模型被广泛使用的最重要原因之一。该模型的共享部分在serving
时节省了大量的计算。MMoE
模型在很大程度上保留了计算优势,因为门控网络通常都是轻量级的,而专家网络在所有任务中共享。此外,通过将门控网络设计为稀疏的top-k
门,MMoE
模型有可能实现更好的计算效率。论文贡献:
- 首先,我们提出了一种新颖的
Multi-gate Mixture-of-Expert: MMOE
模型,该模型显式地对任务关系进行建模。通过调制modulation
和门控gating
网络,我们的模型在建模共享信息shared information
和建模任务特定信息task-specific information
之间自动地调整。 - 其次,我们对人工合成数据进行控制实验。我们报告了任务相关性
task relatedness
如何影响多任务学习中的训练动态training dynamics
,以及MMoE
如何提高模型表达能力和可训练性trainability
。 - 最后,我们对真实的
benchmark
数据集、以及具有数亿用户和item
的大型生产推荐系统进行了实验。我们的实验验证了我们提出的方法在现实环境中的效率efficiency
和效果effectiveness
。
相关工作:
DNN
中的多任务学习:多任务模型可以学习不同任务的共性commonalities
和差异differences
。这样做可以提高每个任务的效率和模型质量。《Multitask learning》
和《Multitask learning: A knowledge-based source of inductive bias》
提出了一种广泛使用的多任务学习模型,它具有共享底部shared-bottom
模型结构,其中底部隐层在任务之间共享。这种结构大大降低了过拟合的风险,但是可能会因为任务差异导致优化冲突optimization conflicts
,因为所有任务都需要在共享底层上使用相同的parameters
。为了了解任务相关性如何影响模型质量,早期的工作生成不同的任务相关性的人工合成数据,从而评估多任务模型的有效性。
最近的一些方法不是在任务之间共享隐层和相同的模型参数,而是对特定任务的参数
task-specific parameters
添加了不同类型的约束。例如,对于两个任务,
《Low Resource Dependency Parsing: Cross-lingual Parameter Sharing in a Neural Network Parser》
在两组参数之间添加了L2
约束。《Cross-stitch networks for multi-task learning》
为每个任务学习task-specific
隐层embedding
的unique combination
。《Deep multi-task representation learning: A tensor factorisation approach》
使用张量分解模型为每个任务生成隐层参数。与
shared-bottom
模型相比,这些方法具有更多的task-specific
参数,并且在任务差异导致共享参数更新的冲突时,可以获得更好的性能。但是,大量task-specific
参数需要更多的训练数据来拟合,并且在大模型中可能效率不高。
子网集成
subnetwork ensemble
& 专家混合expert mixture
:在本文中,我们应用了深度学习中的一些最新发现,例如参数调制parameter modulation
和集成方法ensemble method
来为多任务学习的任务关系建模。在DNN
中,集成模型ensemble model
和子网络集成subnetwork ensemble
已被证明能够提高模型性能。《Learning factored representations in a deep mixture of experts》
和《Outrageously large neural networks: The sparsely-gated mixture-of-experts layer》
将mixture-of-experts: MOE
模型转换为基础构建块(MoE layer
),并将它们堆叠在DNN
中。MoE layer
在训练训练期间和推断期间,根据layer input
来选择子网(即expert
)。因此,该模型不仅在建模方面更强大,而且通过将稀疏性引入门控网络来降低计算成本。- 类似地,
PathNet
是为通用人工智能处理不同任务而设计的,是一个巨大的神经网络,具有多层、以及每层内多个子模块。在为每个任务训练时,多条路径随机选择并由不同的workers
并行训练。最佳路径的parameters
是固定的,并选择新的路径来训练新任务。
我们从这些工作中获取灵感,通过使用子网(即
expert
)的集成来实现迁移学习,同时节省计算成本。多任务
Application
:由于分布式机器学习系统的发展,许多大规模的现实世界application
都采用了DNN-based
多任务学习算法,并观察到了实质性的质量提升。- 在多语言机器翻译任务上,通过参数共享,训练数据有限的翻译任务(例如小语种翻译任务)可以通过与拥有大量训练数据的其它翻译任务联合学习来改进。
- 在推荐任务上,多任务学习有助于提升上下文感知推荐。
- 在
《Ask the gru: Multitask learning for deep text recommendations》
中,通过共享feature representations
和lower level hidden layers
可以改进文本推荐任务。 - 在
《Deep neural networks for youtube recommendations》
中,shared-bottom
模型用于学习视频推荐的ranking
算法。
与这些早先的工作类似,我们在现实世界的大规模推荐系统上评估了我们的建模方法。我们证明了我们的方法具有可扩展性,并且与其它
state-of-the-art
建模方法相比具有良好的性能。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论