论文解读:Explicit Utilization of General Knolwdge in Machine Reading Comprehension
简要信息:
序号 | 属性 | 值 |
1 | 模型名称 | KAR |
2 | 所属领域 | 问答系统,自然语言处理 |
3 | 研究内容 | 机器阅读理解 |
4 | 核心内容 | Data Augmentation |
5 | GitHub源码 | |
6 | 论文PDF |
摘要:
为了弥补机器阅读理解和人类之间的差异(To bridge the gap between MRC and human beings),主要以数据增强以及噪声鲁棒方面,本文,我们探索了一种让神经网络与通识知识相结合的方法。一方面,我们提出一种数据增强方法,对于question和passage来说,使用WordNet抽取单词之间的语义关系来作为通识知识;另一方面,我们提出端到端的MRC方法(Knowledge Aided Reader),利用上述抽取的通识知识辅助注意力机制。
动机:
(1)虽然现阶段很多最新的模型(BiDAF、R-Net、QANet等)已经达到了比较好的效果,且在例如SQuAD等leaderboard上的SOTA模型,但是是否这些模型真正像人类一样具有一定的理解能力呢?事实上没有。一方面,MRC模型需要大量的训练数据,而人类则需要很少或不需要数据就可以在验证集上得到很高的效果;另一方面,MRC只能利用文本自身的知识,而人类则可以利用通识知识(常识、世界知识等)。一种经典的思路是获取inter-word(单词之间的)语义关系;
(2)一种策略是将通识知识集成到神经网络中,因此要解决两个问题包括:
- 从passage和question中抽取通识:使用WordNet、ConceptNet或Freebase等外部知识库;本文使用WordNet
- 利用它们去预测答案区间:使用神经网络将外部的知识进行编码;
贡献:
- 提出一种数据增强方法,是用户WordNet抽取词汇之间的相关性;
- 提出一种端到端的方法KAR利用抽取的外部知识辅助进行attention计算
方法:
Semantic Relation Chain:
WordNet保存了同义词集,同义词集内的单词表达了相似的场景,每个词都有多个不同的场景,因此也有不同的同义词,每个同义词对应一个场景。同义词集则进一步将每个单词构建了语义联系。WordNet总共有16中语义联系。作者基于这些关系,定义了新的概念(semantic relation chain)。即任何两个单词之间的chain由一系列的relation组成(相当于两个结点之间由一系列的边组成一条路径)
Inter-word Semantic Connection
对应一个同义词集 ,作者则定义一个新的同义词集 ,其表示所有可以通过relation chain与该单词相连的所有词。所以 是
最终对于question-passage pair,抽取所有的单词及其对应在passage相关联的词。即对于每个token,都将得到一个与之有关联的在passage中index集合。
Knowledge Aided Reader
整体架构如图所示:
主要以Attention为主,包括另个attention:
- knowledge aided mutual attention:将question融入到passage中;
- knowledge aided self-attention:根据新的表征使用self-attention进行信息聚集;
(1)Lexicon Embedding Layer:使用GloVe预训练词向量,以及字符向量,并喂入一层全连接层形成embedding,passage和question分别得到对应的embedding。
(2)Context Embedding Layer:将上一层embedding喂入参数共享的BiLSTM中;
(3)Coarse Memory Layer:使用knowledge aided mutual attention将question与passage融合,并输出新的passage表征 ,然后再次使用BiLSTM对 的表征进行编码;
(4)Refined Memory Layer:使用knowledge aided self-attention将 进行信息聚合,然后再一次使用BiLSTM进行编码,得到passage的新表征 ;
(5)Answer Span Prediction Layer:同时将
knowledge aided mutual attention、
根据WordNet抽取的通识知识,每个token都将对应passage中的多个token,因此可以通过attention形式,将这些token的embedding加权去和,得到一个emebdding向量,随后将这个向量与原始的token对应的向量拼接起来后,喂入一个全连接层,得到新的向量。权重相似度的计算函数如下:
knowledge aided self-attention
用与上面相似的方法,根据与当前token有关联的其他token进行加权求和,并与原始向量拼接后喂入全连接层。
实验部分:
首先在SQuADv1.1进行实验,但额外使用AddOneSent和AddSent(判断鲁棒性的数据集,基于SQuAD额外添加的一些噪声),发现我们的模型虽然在原始的SQuAD上效果不是SOTA,但在添加噪声后效果明显高于SOTA,如图:
其次,作者对WordNet中的chain的长度超参数进行了分析,如图:
发现当长度控制在3时,效果最佳,每个token有相关联的token的平均个数约为2.21。(个人认为,这个关联数太少了,很多词不仅具有同义词的关系,还应该具有更深层次的关系) 下面三幅图表明了当训练的数据集依次变少时(百分数对应的是每个passage中question-passage pair的占比,因为一般每个passage都会对应很多个question),发现整体的效果都在下降,但是我们的模型依旧比现有的SOTA好,得益于引入通识知识。