头图

显式融合词法和句法特征的抽取式机器阅读理解模型

在做了一段时间之后,百度sti比赛分数上不去,下面是调研了答案抽取任务优化思路,主要是融合词法和句法特征的抽取式机器阅读理解模型, 在抽取式机器阅读理解数据集CMRC2018上的实验表明, 本文方法以极低的算力成本, 利用显式引入的词法和句法等语言特征帮助模型在F1和EM指标上分别取得0.37%和1.56%的提升,并且在百度数据集可以尝试下有一些作用

论文链接:http://www.c-s-a.org.cn/html/...

摘要:

预训练语言模型虽然能够为每个词提供优良的上下文表示特征, 但却无法显式地给出词法和句法特征, 而这些特征往往是理解整体语义的基础. 鉴于此, 本文通过显式地引入词法和句法特征, 探究其对于预训练模型阅读理解能力的影响. 首先, 本文选用了词性标注和命名实体识别来提供词法特征, 使用依存分析来提供句法特征, 将二者与预训练模型输出的上下文表示相融合. 随后, 我们设计了基于注意力机制的自适应特征融合方法来融合不同类型特征. 在抽取式机器阅读理解数据集CMRC2018上的实验表明, 本文方法以极低的算力成本, 利用显式引入的词法和句法等语言特征帮助模型在F1和EM指标上分别取得0.37%和1.56%的提升.

image.png

抽取式机器阅读理解可以形式化地定义为: 给定一个包含 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)

1 声望
0 粉丝
0 条评论
推荐阅读
百度,关于技术理想与对未来的期待丨首届搜索技术创新挑战赛 x 冠军团队专访
日前,由百度搜索联合北京大学、山东大学、湖南人工智能学会、西安电子科技大学等各地高校、学会,共同举办的「新智能·新搜索」为主题的首届搜索技术创新挑战赛(STI)圆满落幕。赛程历时 2 个月,超过 1600 名参...

思否编辑部1阅读 9.1k

开发一个全网搜索引擎的大致流程
由于对搜索引擎技术很感兴趣,便开始尝试开发一个搜索引擎。在参考了网上有限的资料后,加上自己钻研,最终开发出了一个小型的全网搜索引擎,底部有项目地址和搜索测试图片。

会飞的鸟1阅读 5.7k评论 1

从零开发全网搜索引擎
客观来说,一个标准的全网搜索引擎很复杂,要处理的数据量亿级、百亿甚至更高,当然这些数据需要足够的硬件支持,个人只需要懂得技术流程逻辑,并实现较大数据(千万及以上)的搜索即可。

会飞的鸟阅读 2k

我在京东做研发丨当ChatGPT“遇上”垂直搜索:看金融搜索问答NLP应用
新版Bing搜索引擎率先拥抱ChatGPT并火速上线ChatGPT带来的浪潮为垂直搜索又会带来什么新机遇?京东搜索问答技术专家详细分享ChatGPT与搜索引擎的异同NLP在垂直领域搜索问答的落地实践“ChatBot+搜索引擎”融合模式...

京东云开发者阅读 1.3k

封面图
Windows 10开始菜单搜索框禁用Web内容搜索
使用regedit在注册表条目HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Search下创建BingSearchEnabled(DWORD大小),并配置为0:

jack阅读 419

基于Kafka和Elasticsearch构建实时站内搜索功能的实践
目前我们在构建一个多租户多产品类网站,为了让用户更好的找到他们所需要的产品,我们需要构建站内搜索功能,并且它应该是实时更新的。本文将会讨论构建这一功能的核心基础设施,以及支持此搜索能力的技术栈。

京东云开发者阅读 299

封面图
如何利用语音搜索优化您的WordPress网站?
随着技术的进步随着时间的推移而增加,人类正在寻求创造和发展更简单的生活方式。互联网是数百万人每天使用的大量信息来源。语音搜索是一项创新的进步,允许用户使用语音命令在互联网上搜索他们的查询。因此,与...

六翼开源阅读 148

1 声望
0 粉丝
宣传栏