system: [SYSTEM]

user: 4. 基于深度学习的方法 2015 年机器阅读理解进入了基于深度学习模型的时代，Hermann等人 [ 3 ] 提出了神经网络模型“The Attentive Reader”，此模型是有监督的基于attention机制的LSTM模型，实验中证明使用CNN/Daily Mail数据集，该数据集以新闻文章为段落，通过实体替换的方法形成完形填空的形式，实验结果表明准确率远超过往的自然语言处理方法，达到了63.8%。Chen等人 [ 27 ] 基于CNN/Daily Mail数据集提出一种巧妙的深度学习神经网络模型，并证实了深度学习神经网络模型能更好的识别词法匹配和释义，该阅读理解模型准确性提高到了72.4%。 CNN/Daily Mail包含有过多的噪声，为了解决噪声问题，Rajpurkar等人 [ 10 ] 在2016年发布了SQuAD数据集。SQuAD包含十万多问答对，数据规模大，数据质量较高，从而成为机器阅读理解模型主流的测试基准，研究人员基于该数据集提出很多阅读理解模型 [ 28 ] [ 29 ] [ 30 ] [ 31 ]。随着模型的不断进行，基于深度神经网络学习模型的效果已经超过人类，为了进一步更好改善领域的发展，SQuAD 2.0 [ 32 ] 被提出，此版本在已有基础上增加了5万多人类设计的无法回答问题，在SQuAD 2.0上进行阅读理解任务要识别到有些问题是文本段落中找不到答案的。随着词向量的预训练新模型的不断提出，在SquAD数据集基于XLNet预训练性能最好的单模型系统F1值已经达到了95%以上 [ 33 ]，已经超过人类的平均水平91.2%。 图1. 通用基于深度学习的阅读理解方法框架 基于深度学习的阅读理解方法虽然各有自身特点，但是各个模型都是采用4层结构的框架，如图1所示。 1) 嵌入层：使用预训练的词向量将段落X和问题Q表示为多维向量作为模型的输入，还有一些模型方法将词性、命名实体等维度作为特征，有些模型还会引入attention机制融合各个维度的特征。 2) 编码层：使用神经网络模型将嵌入层输入的向量进行编码，进一步提取内部特征学习上下文的语义信息，最终通过attention机制输出经过感知的段落表示和问题表示。 3) 交互层：使用编码层输入的段落表示和问题表示对词语之间的相关性进行计算，融合获取新的表征，通过各种类型的attention机制形成最终的表示。 4) 答案层：根据数据集类型不同，进行最终答案的解码。 基于深度学习学习的阅读理解第一个关键步骤嵌入层，就是将段落和问题进行向量化，在深度学习之前经典的向量化模型是One-Hot、TF-IDF等，这些方法基本上不考虑单词间的关联，不能表达上下文的语义关联关系。为更好的表示文本的语义，字符集嵌入、静态不变向量转换成考虑上下文的动态向量、单词特征嵌入词向量等方法被相继提出。 在机器阅读理解领域，基于单词的分布式假设训练的词向量模型通常使用的Word2Vec、GloVe以及Fasttext。Word2Vec词向量 [ 34 ] 是在大规模的文本语料上利用神经网络模型训练获得的单词向量表示，是通过设置目标单词预测上下文或者上下文预测目标单词的目标进行训练。Word2Vec词向量可以计算性的表示单词与单词指尖的相似性。为了弥补Word2Vec不能使用文本语料库的统计信息的问题，Pennington 等人 [ 35 ] 提出GloVe模型进行词向量的计算。GloVe基于局部上下文串口和全局对数双线性回归模型，通过共现矩阵中的统计信息训练获得。为了解决Word2Vec和GloVe未考虑单词本身的结构和忽略单词形态学特征，Fasttext词向量 [ 36 ] 模型在Word2Vec基础上考虑字词信息学习单词形态学特征。 为进一步学习上下文的关联性，研究人员从词的表征转移到上下文层面，也就是从单词映射组成句子的角度转换成句子到单词的映射，通过段落语句来学习单词的在语境下的语义表示，更好的学习同一个句子中的单词的上下文关联。上下文嵌入的经典模型有CoVe、ELMO、BERT以及XLNet等。 单词除了和语义相似性的单词存在关联，其和处在同一个句子里面的单词也应该是有关联的，单词的词向量要包含其上下文单词的信息，基于以上考虑CoVe词向量 [ 37 ] 被提出，CoVe通过基于机器翻译编码解码的思想提出的MT-LSTM模型训练输出上下文向量。ELMO上下文向量 [ 38 ] 不仅考虑语法、语义和上下文特征还考虑到多义词的现象，引入动态词向量理念，词向量训练生成采用耦合的双向LSTM语言模型获取双向语义信息，一个单词的向量是由整个输入句子的单词综合计算所得。ELMO的双向模型不是同时进行，并不是真正的完全双向，而传统语言模型的原理导致完全双向的Bi-LSTM会存在自己预测自己的可能。BERT [ 14 ] 使用双向Transformer编码模型 [ 39 ]，采用遮蔽语言模型MLM和连续句子预测，BERT是动态词向量，充分考虑字词句的关系表征，可以获取上下文相关的双向特征表示，增加了词向量的泛华能力。BERT基于去噪自编码器模型进行预训练能够很好地建模并学习双向语境信息，但是BERT忽略了被mask位置依赖关系。因此，基于泛化的自回归预训练模型XLNet被提出 [ 33 ]，XLNet利用最大化所有可能的因式分解顺序的对数似然学习双向语境信息，使用用自回归模型克服BERT的缺点。同时，XLNet为了更好的学习长句字依赖关系，引入双注意力流机制，将Transformer改为Transformer-XL [ 40 ]。 编码层的作用是使用神经网络模型将嵌入层输入的向量进行编码，进一步提取内部特征学习上下文的语义信息。机器阅读理解的各种模型中最常用的是循环神经网络(RNN) [ 41 ]。循环神经网络充分考虑上下文的信息，上文信息会输入到下一轮的决策，它可以根据其记忆来处理任意时刻的输入序列，且支持输入序列长度可变。循环神经网络最大的问题是迭代过程中出现梯度消失从而导致不能收敛到最优值，相关RNN的变体被提出，例如长短期记忆网络(LSTM) [ 42 ] 和门控循环单元(GRU) [ 43 ]。RNN思想的编码层存在训练和预测速度慢的问题，针对此问题Yu等人 [ 31 ] 使用CNN [ 44 ] 来代替RNN模型，并用自attention机制 [ 39 ] 来补充CNN不能考虑全局的缺点，实验结果证明此方法能大大提高模型的处理速度。 交互层的作用是段落片段与问题之间单词权重交互，从而相互影响的融合编码的段落向量与问题向量。交互层通常采用attention机制，attention机制首先分别计算段落中单词和问题中单词的相似度，然后进行权重归一化，最后加权求和获得相互影响的新的向量表示。编码层是进一步学习自己的内部结构，有了attention机制的思想，可以用self-attention机制进行阅读理解的编码，也就是自己和自己进行注意力机制学习，由此基于多头self-attention机制的提出Transformer模型，实验证明Transformer模型能很好的并优于RNN、CNN等的编码机制。Wang 等人 [ 45 ] 提出的R-Net模型，首次将自注意力机制运用于机器阅读理解任务。答案层作用是答案预测或生成，此层次需要根据数据集任务的目标不通来计算参数，本文就不再赘述。 基于深度学习的方法具有很好的灵活性，可以不依赖与任何的下游的任务的获取的语言特征，可以将所有的特征都统一到一个端到端的学习框架中。基于深度学习方法统一的学习框架可以减少传统机器学习人工构建特征体系耗费的人力物力，基于深度学习的方法还可以通过向量共享解决数据稀疏性的问题。