论文链接:http://www.c-s-a.org.cn/html/...
摘要:
预训练语言模型虽然能够为每个词提供优良的上下文表示特征, 但却无法显式地给出词法和句法特征, 而这些特征往往是理解整体语义的基础. 鉴于此, 本文通过显式地引入词法和句法特征, 探究其对于预训练模型阅读理解能力的影响. 首先, 本文选用了词性标注和命名实体识别来提供词法特征, 使用依存分析来提供句法特征, 将二者与预训练模型输出的上下文表示相融合. 随后, 我们设计了基于注意力机制的自适应特征融合方法来融合不同类型特征. 在抽取式机器阅读理解数据集CMRC2018上的实验表明, 本文方法以极低的算力成本, 利用显式引入的词法和句法等语言特征帮助模型在F1和EM指标上分别取得0.37%和1.56%的提升.
抽取式机器阅读理解可以形式化地定义为: 给定一个包含 m 个字符的问题 q=(q1,q2,⋯,qm) , 一个包含 n 个字符的文章 p=(p1,p2,⋯,pn) 以及一个包含 l 个字符的答案 a=(a1,a2,⋯,al) , 其为 p 中的一个子序列. 我们的目标是学习一个机器阅读理解模型 f , 来根据输入文章 p 和问题 q 得到输出答案 a , 如式(1)所示:
f(p,q)→a (1)
本文工作的结构如图1所示, 我们利用已有的模型对输入数据进行预处理, 得到文本特征. 我们的问答模型首先使用BERT对问题和文章进行编码得到编码后的输出 HC . 接下来, 将 HC 与表征为向量的文本特征通过自适应的注意力机制进行融合, 再使用多层Transformer encoder进行编码, 得到融合特征的编码表示 HF . 将二者通过自适应的注意力特征融合层, 得到我们最终的输出 H , 并利用一个答案位置分类器得到最终的答案开始位置得分和结束位置得分.
1.2 基于BERT的抽取式阅读理解模型本文使用BERT作为基准模型来解决阅读理解问题. 本文任务输入的问题和文章是一串字符, 神经网络无法直接处理这样的数据. 在预训练模型出现前通常的做法是使用静态词向量将不同的词映射为对应的高维向量, 例如基于局部上下文窗口编码单词的Word2Vec[17]和引入全局统计信息的GloVe[18]. 而BERT则使用基于注意力机制的Transformer encoder, 利用大规模语料通过其强大编码能力将文本编码为具有上下文信息的文本向量.针对本文所涉及的问答任务这类的上下句任务, BERT通常会将分字后的问题的词序列和文章的词序列连接起来, 输入序列如式(2)所示:X=[CLS],q1,⋯,qm,[SEP],p1,⋯,pn,[SEP]X=[CLS],q1,⋯,qm,[SEP],p1,⋯,pn,SEP其中, qiqi 表示问题的词序列中第 ii 个字符, pipi 表示文章的词序列中第 ii 个字符; CLS 和 SEP 为BERT中定义的特殊标记, CLS 表示序列开始, SEP 则是分隔标记, 用来分隔问题和文章以及标识输入序列的结束. 随后, 我们利用BERT的Embedding层将输入序列分别映射为词向量(token embedding)、类型向量(segment embedding)和位置向量(position embedding), 将三者相加即为BERT的最终输入特征. 接着通过多层Transformer encoder进行编码, 进而获得问题与文章交互的向量表示 HCHC :HC={hC1,hC2,⋯,hCl}=BERT(EmbBERT(X)),hCi∈RdHC={h1C,h2C,⋯,hlC}=BERT(EmbBERT(X)),hiC∈Rd(3)其中, ll 表示输入序列长度, dd 表示BERT输出的每个词对应的向量的维度, 在本文中 d=768d=768 , hCihiC 表示经由BERT编码后的第 ii 个词对应的上下文表征.接下来, 通常的做法是使用一个全连接层作为分类器得到答案开始位置和结束位置的得分向量, 如式(4)和式(5):LogitBERTStart=Linear(HC)LogitBERTStart=Linear(HC)(4)LogitBERTEnd=Linear(HC)LogitBERTEnd=Linear(HC)(5)在后续的特征融合模块中, 我们将利用BERT输出的上下文向量 HCHC 与词法和句法特征进行融合.1.3 词法与句法特征当前的数据集仅仅包括文本形式的问题和文章, 并未包含所需的额外词法和句法特征, 为了获取额外特征, 我们利用现有模型进行标注, 并将这些特征进行组合, 其中词法特征包括词性特征和命名实体特征, 句法特征包括依存分析特征. 为了使得我们的文本特征阅读模型尽可能地与BERT阅读模型在输入层的分布相同, 我们以单字粒度进行分词, 使得各个特征构建的向量与BERT预训练模型最大长度相同, 以便直接进行拼接. 文本的特征示例如图2所示.
图 2 文本特征标注示例词性(part of speech, POS)特征: 我们使用词性标注的CTB规范[19], 包括37个词性标签. 以单字切分文本后, 使用BIO规则对特征进行重构, 即某个词 ww 的词性为 PP , 按字切分后为 {z1,z2,⋯,zn}{z1,z2,⋯,zn} , 我们将其标注为 {B-P,I-P,⋯,I-P}{B-P,I-P,⋯,I-P} . 对于BERT中的3种特殊标签 CLS 、 SEP 和 UNK , 我们标记为O. 共计75种标签, 我们将其转换为75维的one-hot向量.命名实体(named entity, NE)特征: 我们使用MSRA的命名实体标注规范, 该规范源于中文文本标注规范(5.0 版), 其中包括专有名词(NAMEX)、时间表达式(TIMEX)、数字表达式(NUMEX)、度量表达式(MEASUREX)和地址表达式(ADDREX)五大类及其下属的31个子类. 我们同样使用BIO规则进行标注, 并将其转换为63维的one-hot向量.依存分析(dependency parse, DEP)特征: 该特征用来表示句法结构中各项之间的依赖关系[20], 共44项. 我们同样使用BIO规则进行标注, 并将其转换为89维的one-hot向量.1.4 特征融合模块在处理这些特征标签时, 我们需要将其转换为向量的形式. 首先, 我们对词性、命名实体和依存标签分别通过一个嵌入层映射为固定维度的向量, 并分别将这些特征与上下文特征 HCHC 通过相加的方式融合, 从而将不同的特征融入上下文表示, 见图3. 接着我们使用单个浅层的特征编码器对特征向量进行编码, 该编码器同样是Transformer encoder.编码后我们便得到了词性特征的向量表示 HPHP (POS), 命名实体识别特征的向量表示 HNHN (NE), 以及依存分析特征的向量表示 HDHD (DEP), 编码过程可以如式(6)–式(8)所示:
HP={hP1,hP2,⋯,hPl}=TransformerPOS(EmbPOS(POS(X))+HC),hPi∈RdHP={h1P,h2P,⋯,hlP}=TransformerPOS(EmbPOS(POS(X))+HC),hiP∈Rd(6)HN={hN1,hN2,⋯,hNl}=TransformerNE(EmbNE(NE(X))+HC),hNi∈RdHN={h1N,h2N,⋯,hlN}=TransformerNE(EmbNE(NE(X))+HC),hiN∈Rd(7)HD={hD1,hD2,⋯,hDl}=TransformerDEP(EmbDEP(DEP(X))+HC),hDi∈RdHD={h1D,h2D,⋯,hlD}=TransformerDEP(EmbDEP(DEP(X))+HC),hiD∈Rd(8)
其中, BERT输出上下文相关特征向量 hCihiC 对应的权重为 aCiaiC , 词性特征向量 hPihiP 对应的权重为 aPiaiP , 命名实体特征向量 hNihiN 对应的权重为 aNiaiN , 依存分析特征向量 hDihiD 对应的权重为 aDiaiD .
图 3 实体特征输入模块根据上下文编码对各个特征的注意力权重, 将所有特征进行加权融合, 得到最终的融合了词法与句法特征的问题与文章交互向量表示 HH , 如式(12)–式(15), 我们使用全连接层对 HH 进行二分类, 分别得到每个词作为答案开始位置和结束位置的概率, 并使用Softmax得到归一化后的起止位置的最终得分.LogitStart=Linear(H)LogitStart=Linear(H)(12)LogitEnd=Linear(H)LogitEnd=Linear(H)(13)ScoreStart=Softmax(LogitStart)ScoreStart=Softmax(LogitStart)(14)ScoreEnd=Softmax(LogitEnd)ScoreEnd=Softmax(LogitEnd)(15)