A Survey on Contextual Embeddings 上下文文本嵌入方法研究阅读笔记
这篇文章做了什么
本篇论文对基于上下文的文本嵌入方法进行研究,首先给出基于上下文的文本嵌入方法的定义,然后介绍了常用的基于上下文的文本嵌入几种方法。同时,对多语种的上下文预训练模型和如何将上下文嵌入方法应用到具体任务中进行了说明。
核心内容
1.上下文嵌入方法与传统方法有什么不同
传统的文本嵌入模型将每个字词(token)与一个向量(vec)相对应。例如Word2Vec 词向量, GloVe(Global Vectors)全局向量等,是用一个向量去表示一个字词。
而基于上下文的嵌入方法分两步,首先不利用上下文先将字词对应一个向量,然后利用聚集函数f,将该向量转换成基于上下文的嵌入表示。所以聚集函数f发挥了重要的作用,具体模型将在下文详细介绍。
2.上下文嵌入方法的预训练模型
2.1无监督预训练模型
2.1.1 ELMo
ELMo(Embeddings from Language Models)介绍
ELMo算法通过在大量的语料上预训练语言模型,然后再将预训练好的模型迁移到具体的下游NLP任务,从而提高模型的能力。
2.1.2 GPT GPT2 and Grover
GPT(Generative pre-training)介绍
GPT模型主要包含两个阶段,第一个阶段,先利用大量未标注的语料预训练一个语言模型,接着,在第二个阶段对预训练好的语言模型进行微改,将其迁移到各种有监督的NLP任务,并对参数进行fine-tuning,具体内容可以参考上述链接。
GPT2介绍
GPT-2 有着超大的规模,是一个在海量数据集上基于 transformer 训练的巨大模型。GPT-2 是使用「transformer 解码器模块」构建的,具体内容可以参考上述链接。
Grover(Graph Representation frOm self-superVised mEssage passing tRansformer)介绍
Grover通过将GNNs中消息传递网络(Message Passing Networks)集成到Transformer的架构中,得到表现力很强的分子编码器,允许其从大量为标记的化学分子数据中学习到丰富的分子结构和语义信息。具体内容可以参考上述链接。
2.1.3 BERT及其变种
BERT(Bidirectional Encoder Representations from Transformers)介绍
BERT通过在海量的语料的基础上运行自监督学习方法为单词学习一个好的特征表示。BERT使用了Transformer作为算法的主要框架,使用了Mask Language Model(MLM) 和 Next Sentence Prediction(NSP) 的多任务训练目标。对于Transformer的了解可以参考[Transformer详解]。
ERNIE(Enhanced Representation through Knowledge Integration)详解
百度公司基于BERT模型,改进了mask机制,提出了ERNIE模型。该模型在预训练阶段从三个层面增加了外部的知识,分别是basic-level masking 词层面,phrase level masking(Whole Word Masking (WWM) style)短语层面,entity level masking 实体层面。从而提高预训练的效果。
ERNIE1.0版本存在不足
1.只针对中文进行优化,国外关注较少
2.基于百度飞浆paddle paddle框架开发,不如tensorflow和pytorch主流。
ERNIE2.0:A Continual Pre-Training Framework for Language Understanding 提出了一个持续学习的框架,模型可以持续添加任务但不降低之前任务的精度,从而能够更好更有效地获得词法lexical,句法syntactic,语义semantic上的表达。
常见预训练任务有:
MLM (Masked Language Model) 掩膜语言模型
NSP (Next Sentence Predict) 下文判断预测
DLM(Dialogue Language Model) 对话语言模型
SpanBERT详解
SpanBERT和BERT 在掩膜机制和训练目标上存在差别。首先,随机的单个 token 添加掩膜,而是对随机对邻接分词添加掩膜。其次,本文提出了一个新的训练目标 span-boundary objective (SBO) 进行模型训练。通过对分词添加掩膜,使模型依据其所在语境预测整个分词。另外,SBO 能使模型在边界词中存储其分词级别的信息,使得模型的调优更佳容易。
StructBERT详解
StructBERT是阿里巴巴达摩院提出的NLP预训练模型,增加了两个预训练任务。一是Word Structural Objective(WSO),该任务对未MASK的词,随机抽选一个trigram,打乱顺序后重构该顺序,相应被打乱的节点接softmax后预测需要重构之前的顺序。
二是Next Sentence Prediction(NSP),对于BERT而言,NSP任务过于简单,通常有97%-98%的准确率,因此structBERT对NSP进行扩展,将其改成三分类问题,即预测下一个句子是在当前句子之前、之后或任意抽取。实际构造训练数据的时候上述各取三分之一。
RoBERTa详解
RoBERTa作为BERT的改进版本,在预训练上采用了动态mask机制,舍去了NSP任务,利用了更多的预训练数据,更大的mini-batch,更强的算力训练,更长的训练时长进行训练。同时,应用了更大的字节对编码(Bytes Pair Encoding)词典处理语料库中的词汇,提高了模型的性能。
ALBERT(A Lite BERT)详解
ALBERT是BERT的精简版本,参数量远远少于传统的 BERT 架构。ALBERT采取了下面三种手段,一是对词向量因式分解,降低参数量;二是多层共享参数,避免参数量随着网络深度的增加而增加;三是增加SOP(Sentence Order Prediction)任务损失,专注句子的连贯性。
XLNET详解
XLNET是BERT的升级版本,主要从三个方向进行了优化。第一是采用自回归模型,放弃BERT的自编码模型,利用排列语言模型保留序列上下文信息,同时避免mask在微调阶段带来的人为误差。第二是采用双流注意力机制,即内容表述和查询表述。第三是集成了Transformer-XL的两个优点:片段循环机制(解决长序列依赖问题)和相对位置编码(区分不同片段)。
UniLM详解
UniLM是一种语言模型,类似BERT,其特点是不仅能很好处理NLU(Natural Language Understanding)的问题,也能很好处理NLG(Natural Language Generative)的问题,可以解释为一种既能阅读又能自动生成的预训练模型。
ELECTRA详解
MASS详解
T5详解
BART详解
未完待续……