Kevin Clark、Minh-Thang Luong、Christopher D. Manning、Quoc V. Le作者路雪编译arXiv选自

遗珠之作?谷歌Quoc Le这篇NLP预训练模型论文值得一看

BERT 论文出现的几周前,斯坦福大学和谷歌大脑合作的一篇同样关于 NLP 预训练模型的论文发布。该研究提出一种新型自训练算法 Cross-View Training (CVT),结合预训练词向量和自训练算法,使用标注数据和无标注数据的混合,从而改善 Bi-LSTM 句子编码器的表征,进而改善整个模型。此外,CVT 与多任务学习结合起来后效果尤为显著。

在大量标注数据上训练的深度学习模型效果最好。但是,数据标注成本很高,这刺激了人们对有效监督学习技术的需求(监督学习可以利用无标注样本)。在神经自然语言处理任务中广泛使用且成功的一种监督学习策略是预训练词向量 (Mikolov et al., 2013)。近期的研究训练 Bi-LSTM 句子编码器去做语言建模,然后将其语境敏感(context-sensitive)表征纳入监督模型中。这种预训练方法先在大型无标注数据语料库上进行无监督表征学习,然后再进行监督训练。

预训练的一个重要缺陷在于表征学习阶段无法利用标注数据——模型尝试学习通用表征而不是针对特定任务的表征。较老的监督学习算法(如自训练算法)没有这个问题,因为它们在标注和无标注数据上连续学习一项任务。自训练曾对 NLP 非常有效,但该方法较少用于神经模型。而斯坦福大学和谷歌大脑合作的这篇论文展示了一种对神经序列模型也很有效的新型自训练算法——Cross-View Training (CVT)。

在自训练中,模型在标注数据上正常学习,而在无标注数据上则兼任教师和学生:教师对样本作出预测,学生基于预测进行训练。尽管该过程对一些任务有价值,但它略显累赘:模型已经在训练过程中生成预测了。近期的计算机视觉研究解决了这个问题,方法是向学生网络的输入添加噪声,训练一个对输入扰动足够鲁棒的模型。但是,使用噪声对离散输入(如文本)比较困难。

该研究从多视角学习(multiview learning)中获得灵感,训练模型对同一输入的不同视角生成一致的预测结果。CVT 没有将整个模型作为学生模型,而是向模型添加辅助预测模块——将向量表征转换成预测的神经网络,将它们也作为学生来训练。每个学生预测模块的输入是模型中间表征的子集,对应于受限视角的输入样本。例如,用于序列标注的一个辅助预测模块仅关联到模型第一个 Bi-LSTM 层的「前向」(forward)LSTM,因此它在进行预测时看不到当前序列右侧的任何 token。

CVT 的作用在于改善模型的表征学习。辅助预测模块可以从整个模型的预测中学习,因为整个模型具备更好、视角不受限的输入。尽管辅助模块的输入对应受限视角的输入样本,但它们仍然能够学习作出正确的预测,因此能够改进表征的质量。这反过来改善了整个模型,因为它们使用的是同样的表征。简而言之,该方法将在无标注数据上进行表征学习与传统的自训练方法结合了起来。

CVT 可用于多种任务和神经架构,但是本研究主要聚焦于序列建模任务,其预测模块与共享 Bi-LSTM 编码器关联。研究者提出对于序列标注器、基于图的依存句法分析器和序列到序列模型都很有效的辅助预测模块,并在英语依存句法分析、组合范畴语法(CCG)supertagging、命名实体识别词性标注、文本语块识别(text chunking)和英语-越南语机器翻译任务上对该方法进行了评估。CVT 在所有这些任务上都改进了之前发布的结果。此外,CVT 还可以轻松高效地与多任务学习结合使用:只需在共享 Bi-LSTM 编码器上添加适合不同任务的额外预测模块。训练统一模型来联合执行所有任务(除了机器翻译)可以改善结果(优于多任务 ELMo 模型),同时降低总训练时间。

论文:Semi-Supervised Sequence Modeling with Cross-View Training

论文链接:https://arxiv.org/pdf/1809.08370.pdf

代码地址:https://github.com/tensorflow/models/tree/master/research/cvt_text

摘要:无监督表征学习算法(如 word2vec 和 ELMo)可以提升很多监督式 NLP 模型的准确率,主要原因在于它们可以利用大量无标注文本。而监督模型在主要的训练阶段只能从任务特定的标注数据中学习。因此,我们提出一种监督学习算法 Cross-View Training (CVT),使用标注数据和无标注数据的混合改善 Bi-LSTM 句子编码器的表征。在标注数据上使用标准的监督学习;在无标注数据上,CVT 教只能看到有限输入(如句子的一个部分)的辅助预测模块将预测结果与能看到完整输入的整个模型的预测结果进行匹配。由于辅助模块和完整模型共享中间表征,因此这会反过来改善完整模型。此外,我们还展示了 CVT 与多任务学习结合起来后效果尤为显著。我们在五个序列标注任务、机器翻译和依存句法分析任务上对 CVT 进行了评估,均达到了当前最优结果。

2 Cross-View Training(CVT)

2.1 方法

图 1:CVT 方法概览。

2.2 将 CVT 与多任务学习结合起来

在共享 Bi-LSTM 编码器上添加适用于其他任务的额外预测模块即可轻松结合 CVT 与多任务学习。在监督学习阶段,我们随机选择任务,然后使用小批量标注数据更新 Lsup。在无监督学习阶段,我们一次性在所有任务上联合优化 LCVT,首先让所有主要预测模块运行推断,然后让所有辅助预测模块从预测中学习。模型在小批量标注数据和无标注数据上进行交替训练。

多个任务的标注数据对多任务系统的学习很有用,但是大部分数据集只为一个任务而标注。因此多任务 CVT 的一个好处就是模型基于无标注数据创建了适用所有任务的(artificial)标注数据。这显著改善了模型的数据效率、缩短了训练时间。由于运行预测模块计算成本较低,因此计算用于多个任务的 LCVT 并不比单任务模型慢多少。但是,我们发现适用所有任务的标注数据可以大幅加速模型收敛速度。例如,在六个任务上训练的 CVT 模型收敛时间大约是单个任务上模型的平均收敛时间的 3 倍,总训练时间降低了 50%。

图 2:序列标注模型中的辅助预测模块。每个模块都只看到受限视角的输入。例如,「forward」预测模块在预测当前 token 的标签时看不到它右侧的语境。为简洁起见,这里仅展示了一个层 Bi-LSTM 编码器,以及该模型一个时间步的预测。

4 实验

表 1:在测试集上的结果,所有分数均为 5 次运行的平均值。NER、FGN 和机器翻译任务的分数标准差大约为 0.1,POS 的分数标准差是 0.02,其他任务的分数标准差是 0.05。+Large 模型的隐藏单元数量是其他模型的 4 倍,它的大小与包含 ELMo 的模型差不多。* 表示半监督,† 表示多任务。


表 2:有/没有适用所有任务的标注数据时,多任务 CVT 的开发集性能。

图 4:不同方法的开发集 vs. 训练集准确率。「small」模型的 LSTM 隐藏状态大小是其他模型的 1/4(256 vs. 1024)。

表 3:在序列标注任务上,对辅助预测模块进行模型简化测试(ablation study)。

图 5:左图:模型在开发集上的性能 vs. 模型训练集所占比例。右图:开发集性能 vs. 模型大小。x 轴表示 LSTM 层中隐藏单元的数量,网络中投影层和其他隐藏层的隐藏单元数量是它的一半。点表示三次运行的平均值。

表 4:单任务模型在开发集上的性能对比。CVT-MT frozen 表示我们在五个任务上预训练了 CVT + 多任务模型,然后在第六个任务上仅训练预测模块。ELMo frozen 表示我们基于 ELMo 嵌入训练预测模块(不包括 LSTM)。

理论斯坦福谷歌大脑Quoc LeNLP预训练模型论文
2
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

基于Transformer 的双向编码器表征技术

BERT是谷歌发布的基于双向 Transformer的大规模预训练语言模型,该预训练模型能高效抽取文本信息并应用于各种NLP任务,并刷新了 11 项 NLP 任务的当前最优性能记录。BERT的全称是基于Transformer的双向编码器表征,其中“双向”表示模型在处理某一个词时,它能同时利用前面的词和后面的词两部分信息。

半监督学习技术

半监督学习属于无监督学习(没有任何标记的训练数据)和监督学习(完全标记的训练数据)之间。许多机器学习研究人员发现,将未标记数据与少量标记数据结合使用可以显着提高学习准确性。对于学习问题的标记数据的获取通常需要熟练的人类代理(例如转录音频片段)或物理实验(例如,确定蛋白质的3D结构或确定在特定位置处是否存在油)。因此与标签处理相关的成本可能使得完全标注的训练集不可行,而获取未标记的数据相对便宜。在这种情况下,半监督学习可能具有很大的实用价值。半监督学习对机器学习也是理论上的兴趣,也是人类学习的典范。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

词性标注技术

词性标注是指为分词结果中的每个单词标注一个正确的词性的程序,也即确定每个词是名词、动词、形容词或其他词性的过程。

表征学习技术

在机器学习领域,表征学习(或特征学习)是一种将原始数据转换成为能够被机器学习有效开发的一种技术的集合。在特征学习算法出现之前,机器学习研究人员需要利用手动特征工程(manual feature learning)等技术从原始数据的领域知识(domain knowledge)建立特征,然后再部署相关的机器学习算法。虽然手动特征工程对于应用机器学习很有效,但它同时也是很困难、很昂贵、很耗时、并依赖于强大专业知识。特征学习弥补了这一点,它使得机器不仅能学习到数据的特征,并能利用这些特征来完成一个具体的任务。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

语料库技术

语料库一词在语言学上意指大量的文本,通常经过整理,具有既定格式与标记;事实上,语料库英文 "text corpus" 的涵意即为"body of text"。

命名实体识别技术

命名实体识别(NER)是信息提取(Information Extraction)的一个子任务,主要涉及如何从文本中提取命名实体并将其分类至事先划定好的类别,如在招聘信息中提取具体招聘公司、岗位和工作地点的信息,并将其分别归纳至公司、岗位和地点的类别下。命名实体识别往往先将整句拆解为词语并对每个词语进行此行标注,根据习得的规则对词语进行判别。这项任务的关键在于对未知实体的识别。基于此,命名实体识别的主要思想在于根据现有实例的特征总结识别和分类规则。这些方法可以被分为有监督(supervised)、半监督(semi-supervised)和无监督(unsupervised)三类。有监督学习包括隐形马科夫模型(HMM)、决策树、最大熵模型(ME)、支持向量机(SVM)和条件随机场(CRF)。这些方法主要是读取注释语料库,记忆实例并进行学习,根据这些例子的特征生成针对某一种实例的识别规则。

word2vec技术

Word2vec,为一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相邻位置的输入词,在word2vec中词袋模型假设下,词的顺序是不重要的。 训练完成之后,word2vec模型可用来映射每个词到一个向量,可用来表示词对词之间的关系。该向量为神经网络之隐藏层。 Word2vec依赖skip-grams或连续词袋(CBOW)来建立神经词嵌入。Word2vec为托马斯·米科洛夫(Tomas Mikolov)在Google带领的研究团队创造。该算法渐渐被其他人所分析和解释。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

序列到序列技术

多任务学习技术

推荐文章
暂无评论
暂无评论~