数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
十二、ERNIE 2.0 [2019]
预训练的
language representation
,如ELMo
、OpenAI GPT
、BERT
、ERNIE 1.0
和XLNet
,已经被证明可以有效地提高各种自然语言理解任务的性能,包括情感分类、自然语言推理、命名实体识别等等。一般而言,模型的预训练往往是根据
word
和sentence
的共现性co-occurrence
来训练模型。而事实上,在训练语料库中,除了共现性之外,还有其他值得研究的词法lexical
、句法syntactic
和语义semantic
信息。例如,像人名、地名、组织名称这样的命名实体,可能包含概念性的信息conceptual information
。例如:- 句子顺序
sentence order
和句子之间的邻近性proximity
这样的信息使模型能够学习structure-aware representation
。 - 而
document level
的语义相似性、或句子间的篇章关系discourse relation
使模型能够学习semantic-aware representation
。
为了发现训练语料中所有有价值的信息(无论是
lexical
、syntactic
、 还是semantic
的representation
),论文《ERNIE 2.0: A CONTINUAL PRE-TRAINING FRAMEWORK FOR LANGUAGE UNDERSTANDING》
提出了一个continual pre-training framework
,名为ERNIE 2.0
,它可以通过不断的多任务学习multi-task learning
来增量地构建和训练大量的预训练任务。论文的
ERNIE 2.0
框架支持在任何时候引入各种定制化的任务。这些任务共享相同的encoding network
并通过多任务学习进行训练。这种方法使词法信息、句法信息和语义信息的encoding
跨不同任务成为可能。此外,当给定一个新的任务时,ERNIE 2.0
框架可以根据它所掌握的先前的训练参数来增量地训练distributed representation
。总之,论文的贡献如下:
- 作者提出了一个
continual pre-training framework
,即ERNIE 2.0
,它以增量的方式支持定制化的训练任务和多任务预训练。 - 论文构建了几个无监督的语言处理任务来验证所提出的框架的有效性。实验结果表明,
ERNIE 2.0
在16
个任务上比BERT
和XLNet
取得了显著的改进,包括英文的GLUE benchmark
和几个中文任务。 ERNIE 2.0
的微调代码、以及在英文语料上预训练的模型可在https://github.com/PaddlePaddle/ERNIE
上找到。
相比较于
ERNIE 1.0
,ERNIE 2.0
的改进在于预训练阶段的多任务学习。- 句子顺序
相关工作:
用于
language representation
的无监督迁移学习:通过用大量的未标记数据来预训练语言模型从而学习general language representation
是很有效的。传统的方法通常专注于与上下文无关的
word embedding
。诸如Word2Vec
和GloVe
等方法通过在大型语料库上的word co-occurrence
来学习fixed word embedding
。最近,一些以
contextualized language representation
为中心的研究被提出来,上下文相关的language representation
在各种自然语言处理任务中显示出SOTA
的结果。ELMo
提出从语言模型中提取context-sensitive feature
。OpenAI GPT
通过调整Transformer
从而加强了context-sensitive embedding
。BERT
采用了一个masked language model: MLM
,同时在预训练中加入了next sentence prediction
任务。XLM
融合了两种方法来学习跨语言的语言模型,即仅依赖单语数据的无监督方法、以及利用平行双语数据的监督方法。MT-DNN
通过在预训练模型的基础上共同学习GLUE
中的几个监督任务,最终导致在其它监督任务(这些监督任务未在多任务微调阶段进行学习)中取得改进。XLNet
使用Transformer-XL
,并提出了一种推广的自回归预训练方法,即:通过对分解顺序的所有排列组合的期望似然expected likelihood
最大化来学习双向上下文。
持续学习
Continual Learning
:持续学习的目的是用几个任务依次训练模型,使模型在学习新的任务时能记住以前学过的知识。这种方法受到人类学习过程的启发,因为人类能够不断积累通过学习或经验获得的信息来有效地发展新的技能。通过持续学习,模型应该能够在新的任务中表现良好,这要归功于在以前的训练中获得的知识。
12.1 模型
12.1.1 ERNIE 2.0 Framework
如下图所示,
ERNIE 2.0
框架是基于最近在自然语言处理中日益流行的预训练和微调的架构而建立的。ERNIE 2.0
与传统的预训练方法不同,它不是用少量的预训练目标进行训练,而是可以不断引入大量的预训练任务,从而帮助模型有效地学习lexical
、syntactic
、 以及semantic
的representation
。在此基础上,ERNIE 2.0
框架通过多任务学习不断更新预训练的模型。在微调过程中,ERNIE
模型首先用预训练的参数进行初始化,然后用特定任务的数据进行微调。有两种形式的多任务:预训练阶段的多任务、微调阶段的多任务。这里指的是预训练阶段的多任务。
从下图右下角可以看到:预训练阶段的多任务共享相同的
bottom network
。Continual Pre-training
:continual pre-training
的过程包含两个步骤:首先,我们不断地构建具有大数据和先验知识参与的无监督预训练任务。
对于预训练任务的构建,我们构建了不同类型的任务,包括
word-aware
任务、structure-aware
任务和semantic-aware
任务。所有这些预训练任务都依赖于自监督信号或弱监督信号,这些信号可以从海量数据中获得,不需要人工标注。其次,我们通过多任务学习逐步更新
ERNIE
模型。对于多任务预训练,
ERNIE 2.0
框架以continuous learning
的范式训练所有这些任务。具体而言,我们会先用一个简单的任务训练一个初始模型,然后不断引入新的预训练任务来更新模型。当增加一个新任务时,我们会以前一个任务来初始化parameters
。每当引入一个新任务时,都会用前面的任务进行训练(这里采用联合训练),以确保模型不会忘记它所学的知识。这样一来,ERNIE
框架就能不断学习和积累continuous learning
过程中获得的知识,而知识的积累将使模型在新任务中表现更好。每次引入一个新任务都需要重新训练前面所有的旧任务,此时不是依次训练,而是联合训练(损失函数相加)。
另外,这些任务的学习顺序是否会影响最终效果?更近一步地,哪个任务是第一个学习的、哪个任务是最后一个学习的,是否会影响效果?
如下图所示,
continual pre-training
的架构包含一系列共享的text encoding layer
来编码上下文信息。这些text encoding layer
可以通过使用RNN
或deep Transformer
来定制化。编码器的参数可以在所有预训练任务中更新。在我们的框架中,有两种损失函数:一种是
sequence-level
损失,另一种是token-level
损失,它们与BERT
的损失函数类似。每个预训练任务都有自己的损失函数。在预训练期间,一个或多个sentence-level
的损失函数可以与多个token-level
的损失函数相结合从而持续地更新模型。为
Application Task
执行微调:凭借对task-specific
监督数据的微调,预训练模型可以适配adapt
不同的语言理解任务,如问答、自然语言推理、以及语义相似性。每个下游任务在被微调后都有自己的fine-tuned model
。
12.1.2 ERNIE 2.0 Model
为了验证该框架的有效性,我们构建了几个无监督的语言处理任务,并开发了一个预训练模型,称为
ERNIE 2.0
模型。在这一节中,我们介绍了该模型在上述框架中的实现。模型架构:
Transformer Encoder
:ERNIE 2.0
像其他预训练模型(如GPT
、BERT
、以及XLM
)一样,使用multi-layer Transformer
作为basic encoder
。transformer
可以通过自注意力来捕获序列中每个token
的上下文信息,并生成contextual embedding
的序列。给定一个序列,特殊的classification embedding
(即,[CLS]
)被添加到该序列的第一个位置。此外,对于multiple input segment
的任务,符号[SEP]
被添加到segment
之间作为分隔符。注意,
[SEP]
被添加到每个segment
的结尾,而不仅仅是两个segment
之间。Task Embedding
:ERNIE 2.0
通过task embedding
来调制modulate
不同任务的特性。我们用一个从0
到N
的ID
来表示不同的任务,每个task ID
被分配给一个唯一的task embedding
。相应的token embedding
、segment embedding
、position embedding
、以及task embedding
被作为模型的输入。在微调过程中,我们可以使用任何task ID
来初始化我们的模型。ERNIE 2.0
的结构如下图所示。因为微调期间是一个新的任务(即使是相同的任务类型,但是数据集不相同),与预训练的
task ID
都不相同,所以选择任何一个task ID
。
预训练任务:我们构建了几个任务来捕获训练语料中的不同方面的信息:
word-aware
预训练任务:教模型捕获词法信息lexical information
。Knowledge Masking Task
:ERNIE 1.0
提出了一个有效的策略,通过knowledge integration
来增强representation
。它引入了phrase masking
和named entity masking
,并预测whole masked phrase
和whole masked named entity
,从而帮助模型同时学习局部上下文和全局上下文中的依赖性。我们用这个任务来训练一个初始版本的模型。Capitalization Prediction Task
:与句子中的其他词相比,大写的词capitalized word
通常具有某些特定的语义价值semantic value
。cased model
(即,考虑字母大小写的模型)在命名实体识别等任务中具有一些优势,而uncased model
(即,不考虑字母大小写的模型)则更适合于其他一些任务。为了结合两种模型的优势,我们增加了一个任务来预测单词是否被大写。这意味着
ERNIE 2.0
不能在预处理阶段把所有文本转化为小写。Token-Document Relation Prediction Task
: 我们增加了一个任务来预测一个segment
中的token
是否出现在原始文档的其他segment
中。根据经验,出现在文档许多部分的词通常是常用的词或与文档的main topic
有关。因此,通过识别出现在segment
中的、文档的关键词,该任务可以使模型在一定程度上捕获到文档的关键词。这里无法区分文档关键词和常用词。那么是否可以分成三类:仅出现在当前
segment
、出现在当前segment
和当前文档的其它segment
但是未出现在其它文档(即,文档关键词)、出现在当前segment
以及其它文档的其它segment
(即,常用词)。
structure-aware
预训练任务:教模型捕获语料的句法信息syntactic information
。Sentence Reordering Task
:我们增加了一个sentence reordering
任务来学习句子之间的关系。在这个任务的预训练过程中,一个给定的段落被随机拆分成 $ 1 $ 到 $ m $ 个segment
,然后这些segment
被随机混洗。我们让预训练模型来重新排序这些被打乱的segment
。模型是一个 $ k $ 类分类问题,其中 $ k=\sum_{n=1}^m n! $ 。根据经验,sentences reordering
任务可以使预训练的模型学习文档中句子之间的关系。通常
$ k $ 比较小,例如 $ k=3 $ 。Sentence Distance Task
:我们还构建了一个预训练任务,利用document-level
信息学习句子距离。该任务被建模为一个三类分类问题:0
代表两个句子在同一个文档中是相邻的、1
代表两个句子在同一个文档中但是不相邻、2
代表两个句子来自两个不同的文档。
semantic-aware
预训练任务:教模型捕获语义信号semantic signal
。Discourse Relation Task
:除了上面提到的Sentence Distance Task
,我们还引入了一个预测两个句子之间的语义或修辞关系的任务。我们使用《Mining discourse markers for unsupervised sentence representation learning》
建立的数据来为英文任务训练一个预训练模型。遵从该论文的方法,我们还自动构建了一个中文数据集从而用于预训练。篇章关系有
174
个类别标签,典型的例子如下:sentence 1 sentence 2 y 比赛的动机大不相同,但是“旋转瓶子”设法满足了所有玩家的需求。 这是一款精心制作的游戏。 truly 预谋多年之后,伯纳德没什么比嘲笑法律更好的了。 距基尔万农场不到一英里的沼泽地上的工人们挖出了一个人体躯干。 eventually 考虑某个垂直市场或有关多地点独特需求的知识。 欧内斯特(Ernest)的实力在于多地点竞技场,使伯奇(Birch)具有了新的能力。 indeed @ Sklivvz:但是你自己暗中使用了这样一种解释。 告诉你除了测量以外的任何问题都是不实际的。 namely 与来自B或C的类似能力的船只相比,Jeanneau的价格可能是便宜的。 在西雅图,36号和39号的价格下降了约20G,现在39号的价格比36号高出一些。 locally IR Relevance Task
:我们建立了一个预训练任务来学习信息检索information retrieval: IR
中的短文本相关性short text relevance
。它是一个三类分类任务,预测query
和title
之间的关系。我们把query
作为第一个句子,把title
作为第二个句子。百度搜索引擎的搜索日志数据被用来作为我们的预训练数据。在这个任务中,有三种标签:0
表示query
和title
之间具有强相关性,这意味着title
在用户输入query
后被点击。1
表示query
和title
之间具有弱相关性,这意味着当用户输入query
时,这些title
出现在搜索结果中,但未能被用户点击。2
表示query
和title
之间在语义信息上完全不相关,是随机的。
IR Relevance Task
任务强烈依赖于百度的私有数据。
12.2 实验
我们将
ERNIE 2.0
的性能与SOTA
的预训练模型进行比较。- 对于英文任务,我们将
ERNIE 2.0
与BERT, XLNet
在GLUE
上进行比较。 - 对于中文任务,我们
ERNIE 2.0
与BERT, ERNIE 1.0
在几个中文数据集上进行比较。
- 对于英文任务,我们将
12.2.1 预训练和实现
预训练数据:
- 与
BERT
类似,英文语料库中的一些数据是从Wikipedia
和BookCorpus
爬取的。除此之外,我们还从Reddit
上收集了一些。我们还使用Discovery
数据作为我们的篇章关系discourse relation
数据。 - 对于中文语料库,我们收集了各种数据,如百科全书、新闻、对话、信息检索、以及百度搜索引擎的
discourse relation
数据。
预训练数据的细节如下表所示。
- 与
预训练
setting
:为了与BERT
进行比较,我们使用与BERT
相同的transformer setting
。base model
包含12
层、12
个自注意力头、768
维的hidden size
,而large model
包含24
层、16
个自注意力头、1024
维的hidden size
。XLNet
的模型设置与BERT
相同。对于英文语料和中文语料,
ERNIE 2.0
的base model
在48
块NVidia v100 GPU
上训练,large model
在64
块NVidia v100 GPU
上训练。ERNIE 2.0
框架是在PaddlePaddle
上实现的,这是一个由百度开发的端到端开源深度学习平台。我们使用
Adam
优化器,其参数固定为 $ \beta_1=0.9,\beta_2=0.98 $ ,batch size
为393216
个token
。英文模型的学习率被设定为5e-5
,中文模型的学习率为1.28e-4
。学习率由衰减方案noam
来调度的,在每个预训练任务的前4000
步进行warmup
。通过float16
操作,我们设法加速训练并减少模型的内存使用。每个预训练任务都被训练,直到预训练任务的指标收敛。每个预训练任务训练多少个
epoch
?根据这里的说法,每个任务需要被训练到指标收敛。
12.2.2 微调任务
a. 英文任务
我们在
General Language Understanding Evaluation: GLUE
上测试ERNIE 2.0
的性能。具体而言,GLUE
涵盖了多种多样的NLP
数据集,包括:Corpus of Linguistic Acceptability: CoLA
:CoLA
由23
种语言的10657
个句子组成,由其原作者对acceptability
(语法上可接受)进行标注。CoLA
通常被用于这样的任务中:判断一个句子是否符合语法规范syntax specification
。Stanford Sentiment Treebank: SST-2
:SST-2
由9645
条电影评论组成,并针对情感分析进行了人工标注。Multi-genre Natural Language Inference: MNLI
:MNLI
是一个众包的集合,包括433K
个sentence pair
,并针对文本蕴含textual entailment
进行了人工标注,通常用于文本推理任务。Recognizing Textual Entailment: RTE
:RTE
是一个与MNLI
类似的语料库,通常用于自然语言推理任务。Winograd Natural Language Inference: WNLI
:WNLI
是一个捕获两个段落之间共指信息coreference information
的语料库。Quora Question Pairs: QQP
:QQP
由40
多万个sentence pair
组成,数据提取自Quora QA
社区,通常用于判断两个问题是否重复。Microsoft Research Paraphrase Corpus: MRPC
:MRPC
包含5800
对从互联网上的新闻中提取的句子,并对其进行标注,以捕获一对句子之间的语义相等性semantic equivalence
。MRPC
通常被用于与QQP
类似的任务。Semantic Textual Similarity Benchmark: STS-B
:STS-B
包含一个精选的英文数据集。这些数据集包含来自图像标题、新闻标题、以及用户论坛的文本。Question Natural Language Inference: QNLI
:QNLI
是一个语料库,会告诉人们一对给定文本之间的关系是否是question-answer
。AX
:AX
是一个辅助性的手工制作的诊断测试套件,能够对模型进行详细的语言分析linguistic analysis
。
下表是
GLUE
中数据集的详细信息。
b. 中文任务
我们对
9
个中文NLP
任务进行了广泛的实验,包括机器阅读理解、命名实体识别、自然语言推理、语义相似性、情感分析、以及问答。具体而言,我们选择了以下中文数据集来评估ERNIE 2.0
在中文任务上的表现。- 机器阅读理解
Machine Reading Comprehension: MRC
:CMRC 2018
、DRCD
、DuReader
。 - 命名实体识别
Named Entity Recognition: NER
:MSRA-NER
。 - 自然语言推理
Natural Language Inference: NLI
:XNLI
。 - 情感分析
Sentiment Analysis: SA
:ChnSentiCorp
。 - 语义相似度
Semantic Similarity: SS
:LCQMC
,BQ Corpus
。 - 问答
Question Answering: QA
:NLPCC-DBQA
。
这些数据集的详细情况如下表所示。
- 机器阅读理解
机器阅读理解
MCR
:机器阅读理解是一个有代表性的document-level
建模任务,其目的是从给定文本中提取连续的segment
来回答问题。对于机器阅读理解任务,CMRC 2018
、DRCD
、DuReader
被作为测试数据集。Chinese Machine Reading Comprehension 2018: CMRC 2018
:CMRC 2018
是一个用于机器阅读理解的抽取式阅读理解数据集,它由中国中文信息处理学会、IFLYTEK
和哈尔滨工业大学发布。Delta Reading Comprehension Dataset: DRCD
:DRCD
也是一个抽取式阅读理解数据集,由Delta Research Institute
发布。值得注意的是,DRCD
是一个繁体中文数据集,所以我们使用一个已发布的工具将其预转换为简体中文。DuReader
:DuReader
是一个用于机器阅读理解和问答的大规模真实世界中文数据集,由百度在ACL 2018
上发布。数据集中的所有问题都是从真实的匿名用户query
中采样的,问题的答案是手动生成的。实验是在DuReader
针对机器阅读理解的子集上进行的。
命名实体识别
NER
:命名实体识别旨在识别各种实体,包括人名、地名、以及组织名称等。它可以被看作是一个序列标注任务。对于命名实体识别任务,我们选择了由微软亚洲研究院发布的MSRA-NER (SIGHAN 2006)
数据集。自然语言推理
NLI
:自然语言推理旨在确定两个句子或两个词之间的语义关系(蕴含entailment
、矛盾contradiction
、中性neutral
)。对于自然语言推理任务,我们选择了流行的XNLI
数据集。XNLI
是MultiNLI
语料库的一个众包集合,数据集中的pair
都标注以文本蕴含标签,并翻译成包括中文在内的14
种语言。情感分析
SA
:情感分析旨在分析一个句子的情感是正面的还是负面的。情感分析可以被简单地认为是二分类任务。对于情感分析任务,我们使用ChnSentiCorp
数据集,其中包括几个领域的评论,如酒店、书籍、以及电子计算机。语义相似性
SS
:语义相似性旨在根据两个句子的语义内容的相似性来识别它们是否具有相同的意图。对于语义相似性任务,我们使用LCQMC
和BQ Corpus
数据集。LCQMC
是由哈尔滨工业大学在COLTING 2018
上发布的。BQ Corpus
由哈尔滨工业大学和WeBank
在EMNLP 2018
上联合发布。这两个数据集中的每一对句子都与一个二元标签相关联,表明这两个句子是否具有相同的意图。问答
QA
:问答旨在为相应的问题选择答案。对于问答任务,我们使用NLPCC-DBQA
数据集,该数据集于2016
年在NLPCC
发布。
c. 实现细节
微调实验的配置如下表所示,分别为英文任务和中文任务的配置。
d. 实验结果
英文任务实验结果:为了保证实验的完整性,我们对每种方法的
base
模型和large
模型在GLUE
上的表现进行了评估。值得注意的是,XLNet
仅报告了单模型在验证集上的结果,因此我们只能比较ERNIE 2.0
和XLNet
在验证集上(而不是测试集上)的性能。为了获得与BERT
和XLNet
的公平比较,我们在验证集上运行了单任务和单模型的ERNIE 2.0
。下表描述了关于GLUE
的详细结果。这里的单任务指的是微调阶段的单任务(而不是预训阶段的单任务)。
可以看到:
- 根据
base
模型的比较,ERNIE 2.0 BASE
在所有10
个任务上都优于BERT BASE
,获得了80.6
分。 - 根据
large
模型在验证集上的比较,ERNIE 2.0 LARGE
在除MNLI-m
之外的所有8
个任务上都一致性地优于BERT LARGE
和XLNet LARGE
。 - 根据
large
模型在测试集上的比较,ERNIE 2.0 LARGE
在所有10
个任务中都优于BERT LARGE
。最终,ERNIE 2.0 LARGE
在GLUE
测试集上得到了83.6
分,比之前的SOTA
预训练模型BERT LARGE
实现了3.1%
的改进。
- 根据
中文任务实验结果: 下表显示了在
9
个经典的中文NLP
任务上的表现。可以看出:ERNIE 1.0 BASE
在XNLI
、MSRA-NER
、ChnSentiCorp
、LCQMC
和NLPCC-DBQA
任务上的表现优于BERT BASE
,但在其他任务上的表现则不太理想,这是由于两种方法的预训练不同造成的。具体而言,ERNIE 1.0 BASE
的预训练数据不包含长度超过128
的实例,但BERT BASE
是用长度为512
的实例预训练的。所提出的
ERNIE 2.0
取得了进一步的进展,在所有9
个任务上都明显优于BERT BASE
。ERNIE 2.0 LARGE
在这些中文NLP
任务上取得了最好的性能,创造了新的SOTA
结果。用
ERNIE 2.0 LARGE
和别的模型的BASE
版本比较,这是不公平的比较。应该LARGE
对比LARGE
。
没有消融研究?比如预训练任务的重要性、持续学习的方式等等。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论