第八章:不同模型在不同 NLP 任务上的表现
在下面表 2 到表 7 中,我们总结了一系列深度学习方法在标准数据集上的表现,这些数据集都是近年来最流行的探究主题。我们的目标是向读者展示深度学习社区常用的数据集以及不同模型在这些数据集上的当前最佳结果。
词性标注
WSJ-PTB(the Wall Street Journal part of the Penn Treebank Dataset)语料库包含 117 万个 token,已被广泛用于开发和评估词性标注系统。Giménez 和 arquez(2004)在 7 个单词窗口内采用了基于人工特征的一对多 SVM,其中有些基本的 n-gram 模式被评估用来构成二元特征,如:「前一个单词是 the」,「前两个标签是 DT NN」等。词性标注问题的一大特征是相邻标签之间的强依赖性。通过简单的从左到右标注方案,该方法仅通过特征工程建模相邻标签之间的依赖性。
为了减少特征工程,Collobert 等人(2011)通过多层感知机仅依赖于单词窗口中的词嵌入。Santos 和 Zadrozny(2014)将词嵌入和字符嵌入连接起来,以便更好地利用形态线索。在论文《Learning Character-level Representations for Part-of-Speech Tagging》中,他们没有考虑 CRF,但由于单词级的决策是在上下文窗口上做出的,可以看到依赖性被隐式地建模。Huang 等人(2015)把单词嵌入和手动设计的单词级特征连接起来,并采用双向 LSTM 来建模任意长度的上下文。
一系列消融分析(ablative analysis)表明,双向 LSTM 和 CRF 都提升了性能。Andor 等人(2016)展示了一种基于转换(transition-based)的方法,该方法通过简单的前馈神经网络上产生了具有竞争性的结果。当应用于序列标注任务时,DMN(Kumar et al., 2015)允许通过把每个 RNN 的隐藏状态视为记忆实体来多次关注上下文,且每次都关注于上下文的不同部分。
表 2:词性标注句法分析
有两种句法分析:依存句法分析(dependency parsing)和成分句法分析(constituency parsing)。前者将单个单词及其关系联系起来,后者依次将文本拆分成子短语(sub-phrase)。基于转换的方法是很多人的选择,因为它们在句子长度上是线性的。解析器(parser)会做出一系列决定:根据缓冲器(buffer)顺序读取单词,然后逐渐将它们组合到句法结构中(Chen and Manning, 2014)。
在每个时间步,决策是基于包含可用树节点的堆栈、包含未读单词的缓冲器和获得的依存关系集来确定的。Chen and Manning 利用带有一个隐藏层的神经网络来建模每个时间步做出的决定。输入层包含特定单词、词性标注和弧标签的嵌入向量,这些分别来自堆栈、缓冲器和依存关系集。
Tu 等人(2015)扩展了 Chen and Manning 的工作,他们用了带有两个隐藏层的深度模型。但是,不管是 Tu 等人还是 Chen 和 Manning,他们都依赖于从解析器状态中选择手动特征,而且他们只考虑了少数最后的几个 token。Dyer 等人(2015)提出堆栈-LSTMs 来建模任意长度的 token 序列。当我们对树节点的堆栈进行 push 或 pop 时,堆栈的结束指针(end pointer)会改变位置。Zhou 等人(2017)整合集束搜索和对比学习,以实现更好的优化。
基于变换的模型也被应用于成分句法分析。Zhu 等人(2013)基于堆栈和缓冲器顶部几个单词的特征(如词性标签、成分标签)来进行每个转换动作。通过用线性标签序列表示解析树,Vinyals 等人(2015)将 seq2seq 学习方法应用于该问题。
表 3.1:依存句法分析(UAS/LAS=未标记/标记的 Attachment 分数;WSJ=The Wall Street Journal Section of Penn Treebank)表 3.2:成分句法分析命名实体识别
CoNLL 2003 是用于命名实体识别(NER)的标准英语数据集,其中主要包含四种命名实体:人、地点、组织和其它实体。NER 属于自然语言处理问题,其中词典非常有用。Collobert 等人(2011)首次通过用地名索引特征增强的神经架构实现了具有竞争性的结果。Chiu and Nichols(2015)将词典特征、字符嵌入和单词嵌入串联起来,然后将其作为双向 LSTM 的输入。
另一方面,Lample 等人(2016)仅靠字符和单词嵌入,通过在大型无监督语料库上进行预训练嵌入实现了具有竞争性的结果。与 POS 标签类似,CRF 也提升了 NER 的性能,这一点在 Lample 等人(2016)的《Neural Architectures for Named Entity Recognition》中得到了证实。总体来说,带有 CRF 的双向 LSTM 对于结构化预测是一个强有力的模型。
Passos 等人(2014)提出经修正的 skip-gram 模型,以更好地学习与实体类型相关的词嵌入,此类词嵌入可以利用来自相关词典的信息。Luo 等人(2015)联合优化了实体以及实体和知识库的连接。Strubell 等人(2017)提出用空洞卷积,他们希望通过跳过某些输入来定义更宽的有效输入,因此实现更好的并行化和上下文建模。该模型在保持准确率的同时展示出了显著的加速。
表 4:命名实体识别语义角色标注
语义角色标注(SRL)旨在发现句子中每个谓词的谓词-论元(predicate-argument)结构。至于每个目标动词(谓语),句子中充当动词语义角色的所有成分都会被识别出来。典型的语义论元包括施事者、受事者、工具等,以及地点、时间、方式、原因等修饰语 (Zhou and Xu, 2015)。表 5 展示了不同模型在 CoNLL 2005 & 2012 数据集上的性能。
传统 SRL 系统包含几个阶段:生成解析树,识别出哪些解析树节点代表给定动词的论元,最后给这些节点分类以确定对应的 SRL 标签。每个分类过程通常需要抽取大量特征,并将其输入至统计模型中(Collobert et al., 2011)。
给定一个谓词,T?ckstr?m 等人(2015)基于解析树,通过一系列特征对该谓词的组成范围以及该范围与该谓词的可能关系进行打分。他们提出了一个动态规划算法进行有效推断。Collobert 等人(2011)通过解析以附加查找表形式提供的信息,并用卷积神经网络实现了类似的结果。Zhou 和 Xu(2015)提出用双向 LSTM 来建模任意长度的上下文,结果发现不使用任何解析树的信息也是成功的。
表 5:语义角色标注情感分类
SST 数据集(Stanford Sentiment Treebank)包含从电影评论网 Rotten Tomatoe 上收集的句子。它由 Pang 和 Lee(2005)提出,后来被 Socher 等人(2013)进一步拓展。该数据集的标注方案启发了一个新的情感分析数据集——CMU-MOSI,其中模型需要在多模态环境中研究情感倾向。
Socher 等人(2013)和 Tai 等人(2015)都是通过成分解析树及递归神经网络来改善语义表征。另一方面,树形 LSTM(tree-LSTM)比线性双向 LSTM 表现更好,说明树结构能够更好地捕捉自然句子的句法特性。Yu 等人(2017)提出用情感词汇微调预训练的词嵌入,然后基于 Tai 等人(2015)的研究观察改进结果。
Kim(2014)和 l Kalchbrenner 等人(2014)都使用卷积层。Kim 等人提出的模型与图 5 中的相似,而 Kalchbrenner 等人通过将 k-max 池化层和卷积层交替使用,以分层方式构建模型。
表 6:不同情感分类模型在 SST-1 和 SST-2 数据集上的效果机器翻译
基于短语的 SMT 框架(Koehn et al., 2003)将翻译模型分解为原语短语和目标语短语之间的概率匹配问题。Cho et al. (2014) 进一步提出用 RNN 编码器-解码器框架学习原语与目标语的匹配概率。而基于循环神经网络的编码器-解码器架构,再加上注意力机制在一段时间内成为了业内最标准的架构。Gehring et al. (2017) 提出了基于 CNN 的 Seq2Seq 模型,CNN 以并行的方式利用注意力机制计算每一个词的表征,解码器再根据这些表征确定目标语序列。Vaswani et al. (2017) 随后提出了完全基于注意力机制的 Transformer,它目前已经是神经机器翻译最常见的架构了。
表 7:不同机器翻译模型和 BLEU 值问答系统
QA 问题有多种形式,有的研究者根据大型知识库来回答开放性问题,也有的研究者根据模型对句子或段落的理解回答问题。对于基于知识库的问答系统,学习回答单关系查询的核心是数据库中找到支持的事实。
表 8:不同模型在不同问答数据集上的效果上下文嵌入
2018 年,使用预训练的语言模型可能是 NLP 领域最显著的趋势,它可以利用从无监督文本中学习到的「语言知识」,并迁移到各种 NLP 任务中。这些预训练模型有很多,包括 ELMo、ULMFiT、OpenAI Transformer 和 BERT,其中又以 BERT 最具代表性,它在 11 项 NLP 任务中都获得当时最佳的性能。不过目前有 9 项任务都被微软的新模型超过。下图展示了不同模型在 12 种 NLP 任务中的效果:
机器之心曾解读过 BERT 的的核心过程,它会先从数据集抽取两个句子,其中第二句是第一句的下一句的概率是 50%,这样就能学习句子之间的关系。其次随机去除两个句子中的一些词,并要求模型预测这些词是什么,这样就能学习句子内部的关系。最后再将经过处理的句子传入大型 Transformer 模型,并通过两个损失函数同时学习上面两个目标就能完成训练。
如上所示为不同预训练模型的架构,BERT 可以视为结合了 OpenAI GPT 和 ELMo 优势的新模型。其中 ELMo 使用两条独立训练的 LSTM 获取双向信息,而 OpenAI GPT 使用新型的 Transformer 和经典语言模型只能获取单向信息。
BERT 的主要目标是在 OpenAI GPT 的基础上对预训练任务做一些改进,以同时利用 Transformer 深度模型与双向信息的优势。这种「双向」的来源在于 BERT 与传统语言模型不同,它不是在给定所有前面词的条件下预测最可能的当前词,而是随机遮掩一些词,并利用所有没被遮掩的词进行预测。
原文链接:https://nlpoverview.com/