雷锋网AI科技评论:继昨天的「知识图谱@ICLR2020」之后,我们今天关注ICLR 2020 上 Transformer的研究动态。
Transformers,作为一种基于注意力的神经架构,在自然语言处理中已经无处不在,在过去一年多的时间里也将自然语言处理推向了新的高度。那么,在ICLR 2020 上有什么新的内容呢?在这篇文章中,我们从三个维度:对架构的修改、训练方法的创新以及应用——介绍相关的 9 篇文章。
注:文中涉及论文,可关注「AI科技评论」微信公众号,并后台回复「Transformer@ICLR2020」打包下载。
一、对架构的修改
1、轻量级BERT
论文:ALBERT: A Lite BERT for Self-supervised Learning of Language Representations
链接:https://openreview.net/pdf?id=H1eA7AEtvS
曾经,预训练是大模型(玩家)的天下,直到出现了 ALBERT。
预训练自然语言表征时,增加模型大小一般是可以提升模型在下游任务中的性能。但是这种纯粹依赖模型尺寸进而期望大力出奇迹的想法在未来会越发困难。进一步增加模型大小将带来三点困难:1)GPU/TPU内存不足;2)训练时间会更长;3)模型退化。
为了解决这些问题,谷歌研究人员提出了「一个精简的 BERT」(A Lite BERT,ALBERT),参数量远远少于传统的 BERT 架构,而性能方面则基本一致。
ALBERT的优化包括三个方面
嵌入向量参数化的因式分解:通过使用与词嵌入大小不同的隐藏大小,可以对嵌入参数化进行因式分解,将其大小从O(Vocab×Hidden)减小为O(Vocab×Emb + Emb + Emb×Hidden),当 Hidden >> Emb时,这种减小会有实质性意义。
跨层参数共享:重新使用不同 Transformer 模块的参数,例如FFN 或注意力权重。句子间顺序预测:作者认为从原始的BERT预测下一个句子并不是什么有挑战的事情,因此引入了新的句子级自监督目标。
结果?与BERT-Large相比,参数可减少18倍,性能相当,推理速度稍快。
2、高效 Transformer
论文:Reformer: The Efficient Transformer
链接:https://openreview.net/pdf?id=rkgNKkHtvB
Transformer是NLP中广为应用的成熟技术,在许多任务中取得了骄人的成绩,尤其是长序列文本上表现突出,但却极其耗费算力和内存资源,Transformer网络一层的参数量约0.5B,需要2G的内存空间,单层网络的Transformer在单台机器上尚可满足,但鉴于以下考虑,整个Transformer网络所需要的资源是惊人的:
一个N层的网络需要的内存资源要多于一层所需内存的N倍,因为同时需要存储激活结果,在反向传播时使用。
Transformer前馈全连接神经网络的宽度(神经单元数)要比attention激活的宽度(可理解为embedding的size)多,需要更多的内存消耗。
对一个长度为L的序列,Attention层的复杂度是,这对长序列文本处理是无法接受的。
Source: Reformer: The Efficient Transformer
这篇文章通过下面几项技术解决上面提到的几个问题:
使用可逆残差层取代标准残差层,在训练阶段只需要存储一层的激活结果而不是N层(N是网络层数)(消除了网络中N的倍数)。
分离前馈全连接层的激活部分,分区块进行处理,消除对内存的消耗。
使用局部敏感哈希(Local-Sensitive Hashing, LSH)技术把计算attention部分的复杂度O(L²)(主要来自于点乘)从降至O(L log L)(其中L代表序列长度)。
3、CPU 上的 Transformer
论文:Lite Transformer with Long-Short Range Attention (LSRA)
链接:https://openreview.net/pdf?id=ByeMPlHKPH
这篇文章针对Transformer 在mobile device(CPU)上做了改进。
Transformer 要实现高性能,需要大量计算,这显然不适用于受硬件限制的移动设备。在这篇文章中,作者提出了一种高效的移动端的轻量级的 Transformer,以此来促进在边缘设备上部署NLP应用程序。
Source: Lite Transformer with Long-Short Range Attention (LSRA)
关键点是,作者提出了一个长短距离注意力(Long-Short Range Attention,LSRA),其中一组heads专门(通过卷积)对局部上下文进行建模,另一组heads(通过注意力)对长程关系进行建模。
这个模型虽然在最终结果上与那些大型Transformer不可比,但1)其研究动机;2)其创新性的架构,值得我们重点关注。
目前这篇文章已经开源:https://github.com/mit-han-lab/lite-transformer
二、训练方法的创新
Transformer架构重要,训练方法也同样。在今年的ICLR上出现了不少令人耳目一新的训练方法。
4、ELECTRA:GAN的巧妙运用
论文:ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators
链接:https://openreview.net/pdf?id=r1xMH1BtvB
这是斯坦福SAIL实验室Manning组与谷歌合作的工作。ELECTRA的全称是Efficiently Learning an Encoder that Classifies Token Replacements Accurately。网传这是2019年最佳NLP预训练模型。
在去年11月份,ELECTRA一经发布,迅速火爆整个NLP圈,其中ELECTRA-small模型参数量仅为 BERT-base模型的1/10,性能却依然能与BERT、RoBERTa等模型相媲美。
在前不久,谷歌也开源了ELECTRA,并发布了预训练模型。中文社区,哈工大讯飞联合实验室(HFL)基于ELECTRA开源代码,也发布了中文版的 ELECTRA 预训练模型。https://github.com/ymcui/Chinese-ELECTRA
感受一下ELECTRA的效果:
Source: ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators
ELECTRA能够取得如此优异结果,基于其新颖的预训练框架,其中包含两个部分:Generator和Discriminator。
Generator: 一个小的MLM,在[MASK]的位置预测原来的词。Generator将用来把输入文本做部分词的替换。
Discriminator: 判断输入句子中的每个词是否被替换,即使用Replaced Token Detection (RTD)预训练任务,取代了BERT原始的Masked Language Model (MLM)。需要注意的是这里并没有使用Next Sentence Prediction (NSP)任务。
在预训练阶段结束之后,只使用Discriminator作为下游任务精调的基模型。
换句话说,作者们把CV领域的GAN运用到了自然语言处理。
值得注意的是,尽管与GAN的训练目标相似,但仍存在一些关键差异。首先,如果生成器碰巧生成了正确的token,则该token被视为“真实”而不是“伪造”;所以模型能够适度改善下游任务的结果。更重要的是,生成器使用最大似然来训练,而不是通过对抗性训练来欺骗判别器。
5、新时代,新任务
论文:TabFact: A Large-scale Dataset for Table-based Fact Verification
链接:https://openreview.net/pdf?id=rkeJRhNYDH
这篇工作来自 UCSB 计算机科学系助理教授王威廉等人的研究。随着现在 Transformer 的性能与人类水平之间的差距越来越小,许多经典的NLP数据集事实上已经过时了。因此,若想更近一步研究,就需要创建一个更具挑战性的新基准。在这种背景下,作者提出了一个新的数据集,用来解决以自然语言表达的基于事实的信息进行建模的问题。
Source: TabFact: A Large-scale Dataset for Table-based Fact Verification
数据集由Wikipedia的16k 的表和118k人工注释的语句组成,这些语句带有ENTAILMENT或REFUTED标签来引用事实数据。
目前这个任务的基准性能仍然处于中等水平,仍然大有可为。
6、加入现实世界知识
论文:Pretrained Encyclopedia: Weakly Supervised Knowledge-Pretrained Language Model
链接:https://openreview.net/pdf?id=BJlzm64tDH
预训练语言模型的最新进展表明,自监督学习对于多种自然语言处理(NLP)任务的有效性。除了标准的语法和语义NLP任务外,预训练的模型还对涉及真实世界知识的任务进行了大幅度改进,这表明大规模语言建模可能是捕获知识的隐式方法。
在这篇文章中,作者提出了一个简单而有效的弱监督预训练目标。这个目标明确强迫模型纳入有关现实世界实体的知识。使用这个新目标训练的模型在「事实完成」(fact completion)任务上有较大改进。当应用于下游任务时,他们的在多个任务(如问答、实体键入)上性能都优于BERT。
三、应用
Transformer不仅与语言建模有关,在一些相关问题上也有一些巧妙的应用。
7、用BERT评估文本生成
论文:BERTScore: Evaluating Text Generation with BERT
链接:https://openreview.net/pdf?id=SkeHuCVFDr
在松散定义的环境(即生成连贯的文本)下,客观地测量生成质量,具有很大的挑战性。传统上,BLUE分数作为文本相似性的代名词,虽然被广泛应用(例如翻译、问答),但在长文本生成任务中却显得不那么完美。
Example of one of the BERT-based scoring function. Source: BERTScore: Evaluating Text Generation with BERT
为了解决这个问题,BERTScore提出了一种新的度量标准,利用来自BERT的预训练上下文嵌入,并通过余弦相似性匹配候选和参考句子中的单词。
这个过程其实非常简单,不涉及任何微调,仅进行预训练的上下文嵌入,以及余弦相似度和基于频率的重要性加权。
相较于BLUE,这种度量方法会失去一些可解释性。这种学习型评分标准是否能成为新的评价标准呢?时间会给出答案。
BERT既然这么牛逼,为什么不能用它作为一种度量标准呢?直接把生成句子和参考句子怼进BERT,然后计算token之间的cos相似度,然后用一个max-pool,再玄学算一下,暴力有效,因吹斯听!据说和人类评估更接近,而且也比较鲁棒(这篇文章好像是某会被拒了,重投ICLR)。来源:https://xueqiu.com/4851636118/135380777
8、用预训练做检索
论文:Pre-training Tasks for Embedding-based Large-scale Retrieval
链接:https://openreview.net/pdf?id=rkg-mA4FDr
大规模查询文档检索问题,即给定一个查询(例如一个问题),会从一个大型文档语料库中返回相应文档集(例如包含答案的段落)。这个问题通常会分为两个步骤:1)检索阶段主要来减小解空间的大小,并返回一个包含候选文档的子集;2)计分阶段,会根据分数对文档进行排序。
对于评分阶段,由于基于交叉注意力模型的BERT类的预训练,有了显著的提高。但检索阶段的研究却仍然较少,目前的方法大多还以来经典的IR技术,例如BM-25(令牌匹配+TF-IDF权重)。这些模型只能处理少量手工的特征,而无法针对感兴趣的其他下游任务进行优化。
Source: Pre-training Tasks for Embedding-based Large-scale Retrieval
在这篇文章中,作者对基于嵌入的检索模型,通过适当设计段落级预训练任务,Transformer模型可以显著改善检索的性能;甚至在缺乏监督训练数据的情况下,在问答任务上也比BM25性能更好。
9、用BERT做视觉语言任务
论文:VL-BERT: Pre-training of Generic Visual-Linguistic Representations
链接:https://openreview.net/pdf?id=SygXPaEYvH
开源:https://github.com/jackroos/VL-BERT
如何利用预训练和微调框架来学习语言和视觉表示呢?
在这篇文章中,作者引入了一种新型的可做预训练的通用表示形式 VL-BERT。VL-BERT以 Transformer和R-CNN作为主干进行扩展(尽管并不是首个这样做的,但它对现有模型的改进让人耳目一新),从而能够将视觉和语言嵌入特征作为输入。输入的每个元素要么是输入句子中的单词,要么是输入图像中的关注区域(RoI)。
Source: VL-BERT: Pre-training of Generic Visual-Linguistic Representations
这个设计可以适用于大多数的可视语言的下游任务。作者将VL-BERT与纯文本语料库一起,在大规模概念字幕数据集(Conceptual Captions dataset)上进行了预训练。实验表明,预训练可以很好地协调视觉语言线索,且有利于下游任务。
这个工作,在发布的时候,也在视觉常识推理(VCR)基准测试的排行榜上取得第一名的成绩。
雷锋网(公众号:雷锋网)雷锋网
雷锋网原创文章,未经授权禁止转载。详情见转载须知。