BERT,Bidirectional Encoder Representations from Transformers,多Transformer的双向编码器表示法。
RNN,recurrent neural network,循环神经网络。
LSTM,long short-term memory,长短期记忆网络。
NLI,Natural language inference,自然语言推理。
知识蒸馏(knowledge distillation),一种模型压缩技术,指训练一个小模型来重现大型预训练模型的行为。使用知识蒸馏法将知识从预训练的大型BERT模型迁移到小型BERT模型。也称师生学习。
两类文本摘要(text summarization)任务:
未登录词(out-of-vocabulary word, OOV word),
GeLU,即高斯误差线性单元(Gaussian Error Linear Unit),用于激活函数。
ASR,automatic speech recognition,自动语音识别。
MSE,mean squared error,均方误差。MSE最小化作为训练任务。
t-SNE,t-distributed stochastic neighbor embedding,t分布随机邻域嵌入法。用于
CEL,cosine embedding loss,余弦嵌入损失。两个特征向量之间的距离,距离越小,特征向量越准确。
TLM,translation language modeling,翻译语言模型构建任务。
RNN和LSTM已广泛应用于时序任务:文本预测、机器翻译、文章生成等。然而面临一大问题就是如何记录长期依赖。
Transformer完全依赖于注意力机制,并摒弃循环,及自注意力(self-attention)。
可将预训练模型用于两种场景:
有两种:不区分大小写(BERT-uncased)和区分大小写(BERT-cased)。
对于NER任务,named entity recognition,命名实体识别,必须使用区分大小写的模型。
数据集包含文本,故而需要对文本进行向量化,常用算法:TF-IDF、word2vec。
Hugging Face,一个致力于通过自然语言将AI技术大众化的组织,其开源Python Transformers库常用于NLP和自然语言理解(natural language understanding,NLU)任务,包括100多种语言的数千个预训练模型,兼容PyTorch和TensorFlow。
安装:pip install transformers
Google Colab:在线。
BERT模型可使用如下几个约定的符号:
几种标准配置:
在将数据输入BERT之前,首先使用如下3个嵌入层将输入转换为嵌入:
[CLS]
只在第一句的开头添加,而[SEP]
在每一句的结尾都要添加。[CLS]
用于分类任务,而[SEP]
用于表示每个句子的结束。
位置编码:
WordPiece:特殊的词元分析器,遵循子词词元化规律。
BERT模型在以下两个自然语言处理任务上进行预训练:
语言模型构建任务是指通过训练模型来预测一连串单词的下一个单词。可以把语言模型分为两类:
全词掩码(whole word masking):如果子词被掩盖,则该子词对应的单词也将被掩盖。
下句预测(next sentence prediction):用于训练BERT模型的策略,一个二分类任务。给BERT提供两个句子,让其预测第二个句子是否是第一个句子的下一句。
3种常用的子词词元化算法:
ALBERT:A Lite version of BERT,BERT的精简版,尽量缩短训练时间。
使用以下两种技术减少参数的数量:
在应用跨层参数共享时有以下几种方式:
与任务无关的数据增强方法:
n-gram
采样方法掩码方法和基于词性的词汇替换方法是互斥的,两者只能选择一个。
RoBERTa:Robustly Optimized BERT Pretraining Approach,稳健优化的BERT预训练方法,在预训练步骤上有一些变化:
ELECTRA:Efficiently Learning an Encoder that Classifies Token Replacements Accurately,高效训练编码器如何准确分类替换标记。使用一个生成器(generator)和一个判别器(discriminator),并使用替换标记检测这一新任务进行预训练
SpanBERT,被普遍用于预测文本区间的问答任务和关系提取任务。
pipeline API是由Transformers库提供的简单接口,用于无缝地执行从文本分类任务到问答任务等各类复杂任务
损失函数是以下3种损失之和:
蒸馏可以在多层进行:
两阶段学习框架,即在预训练阶段和微调阶段都应用知识蒸馏法。
Transformer层蒸馏包括两次知识蒸馏:
BERT for summarization,为文本摘要任务微调。
在Transformer模型中,编码器是一个预训练的BERTSUM模型,但解码器是随机初始化的,这将导致微调时出现差异。由于编码器已经经过预训练,它可能会过拟合,而解码器没有经过预训练,它可能会欠拟合。为解决这个问题,需要使用两个Adam优化器,分别用于编码器和解码器,并对二者使用不同的学习率。
为了评估文本摘要任务,需使用一套评估指标ROUGE(Recall-Oriented Understudy for Gisting Evaluation)。ROUGE在Chin-Yew Lin的论文ROUGE: A Package for Automatic Evaluation of Summaries
中首次提出,包含5种评估指标:
ROUGE-N指标(N代表n-gram)是指候选摘要(预测摘要)和参考摘要(实际摘要)之间的多元召回率。召回率为候选摘要和参考摘要之间重叠的元词总数与参考摘要中的元词总数的比率。
召回率 = 重叠的元词总数 参考摘要中的元词总数 召回率=\frac{重叠的元词总数}{参考摘要中的元词总数} 召回率=参考摘要中的元词总数重叠的元词总数
ROUGE-L指标基于最长公共子序列(longest common subsequence, LCS)。两个序列之间的LCS是长度最大的相同子序列。如果候选摘要和参考摘要之间有一个LCS,则可说候选摘要匹配参考摘要。
M-BERT模型中的零数据知识迁移不依赖于词汇的重叠,即词汇重叠对M-BERT模型中的零数据知识迁移没有影响。因此,M-BERT模型能够很好地迁移到其他语言中。
世界语言结构图谱(World Atlas of Language Structures,WALS)是一个大型数据库,它包括语言的结构属性,如语法、词汇和语音属性。
使用跨语言目标训练的BERT模型被称为跨语言模型(简称为XLM模型)。XLM模型比M-BERT模型表现得更好,因为它可以学习跨语言的特征。
XLM模型使用单语言数据集和平行数据集进行预训练。平行数据集由语言对文本组成,即由两种不同语言的相同文本组成。平行数据集,也称为跨语言数据集。单语言数据集来自维基百科,平行数据集有多个来源,包括MultiUN(联合国多语言语料库)和OPUS(Open Parallel Corpus,开源平行语料库)。XLM模型使用字节对编码,并对所有语言创建共享词表。
XLM模型使用以下任务进行预训练:
XLM-R模型是对XLM的扩展,即XLM-RoBERTa模型,代表最先进的跨语言特征学习技术。
对于小语种,获得平行数据集很难,在XLM-R模型中,只用掩码语言模型构建任务目标来训练模型,不使用翻译语言。XLM-R模型只需要一个单语言数据集。
French Language Understanding via BERT。法语语料库由24个子语料库组成,包含来自不同来源的数据,如维基百科、书籍、内部抓取、WMT19数据、OPUS的法语文本以及维基媒体等。
FLUE(French Language Understanding Evaluation,法语理解评估)。FLUE类似于法语的GLUE标准。FLUE标准中的数据集包括:
由Ubiquitous Knowledge Processing Lab(UKP-TUDA)研发,是用来获得固定长度的句子特征的,扩展了预训练的BERT模型(或其变体)以获得句子特征。普遍用于句子对分类、计算两个句子之间的相似度等任务。
两种汇聚策略:
Sentence-BERT模型使用二元组网络架构来执行以一对句子作为输入的任务,并使用三元组网络架构来实现三元组损失函数。
公布的Sentence-BERT模型:
一个针对临床领域的BERT模型,它在一个大型临床语料库上进行预训练。临床记录或进度记录包含关于病人的非常有用的信息:就诊记录、症状、诊断情况、日常活动、观察记录、治疗计划、放射性检查结果,等等。理解临床记录的上下文特征具有挑战性,因为它们有自己的语法结构、缩略语和行话。
使用MIMIC-III临床记录进行预训练。MIMIC-III是Beth Israel Deaconess Medical Center参与创建的一个大型健康数据集合,包括一个重症医学数据集,含有超过40000名重症监护室病人的观察数据。
一个针对生物医学领域的BERT模型。可以针对许多生物医学领域特定的下游任务对BioBERT模型进行微调,如生物医学问答任务、生物医学命名实体识别任务等。
使用以下两个生物医学数据集:
与疾病相关的实体,可以使用以下数据集:
对于与药物/化学品相关的实体,可以使用以下数据集:
对于与基因相关的实体,可以使用以下数据集:
对于与物种相关的实体,可以使用以下数据集:
第一个联合学习视频特征及语言特征的模型,可应用于图像字幕生成、视频字幕添加、预测视频的下一帧等任务。
与训练BERT模型的下句预测任务类似,语言−视觉对齐也是一个分类任务。但不预测一个句子是否是另一个句子的下一句,而是预测语言标记和视觉标记是否在时间上吻合,即,需要预测文本(语言标记)是否与视频画面(视觉标记)匹配。
使用以下3个目标进行预训练,它们被称为纯文本、纯视频和文本−视频:
Facebook AI推出的一个有趣的模型。最适合文本生成,语言翻译和语言理解。
基于Transformer架构,本质上是一个降噪自编码器,是通过重建受损文本进行训练的。本质上是一个带有编码器和解码器的Transformer模型。将受损文本送入编码器,编码器学习给定文本的特征并将特征发送给解码器。解码器获得编码器生成的特征,重建原始文本。
BART模型的编码器是双向的,这意味着它可以从两个方向(从左到右和从右到左)读取一个句子,但解码器是单向的,它只能从左到右读取一个句子。有一个双向编码器(针对两个方向)和一个自回归解码器(针对单一方向)。
BART模型是通过最小化重建损失来训练的,也就是原始文本和解码器的生成文本之间的交叉熵损失。不同于BERT模型,在BERT模型中,我们只是将被掩盖的标记送入编码器,然后将编码器的结果送入前馈网络层,用前馈网络层来预测被掩盖的标记。但在BART模型中,将编码器的结果反馈给解码器,由其生成或重构原始句子。
BART模型有两种配置:
破坏文本的增噪方法:
本书提到的数据集:
本书提到的Python库:
本书提到的Python Transformers内置的预训练模型: