QANet: Combining Local Convolution with Global Self-Attention for Reading Comprehension
论文地址:https://arxiv.org/abs/1804.09541
赵伟松,zws2lll@gmail.com,15652311958,北京,360
如有错误,请指正
1 Introduction
2 The Model
2.1 PROBLEM FORMULATION
本文中的阅读理解任务被以下形式定义:给定
- 特定短文,n个词,
- 相应的问句,m个词,
输出C中一段子串,。下文中x同时表示英文单词和其对应的词向量。
2.2 MODEL OVERVIEW
本文模型包括5部分,
- embedding层
- embedding编码层
- C-Q attention层
- 模型编码层
- 输出层
这是主流阅读理解模型的架构。本文的模型与当下主流模型的不同之处在于: embedding层和模型编码层使用的是CNN和Attention机制。所以我们的模型运算更快而且可以并行处理。需要提及的是,虽然self-attention机制被广泛的应用在Vaswani et al. (2017a),但是CNN和selft-attention机制相结合的技术还是很前沿的。
具体讲讲模型的5个部分:
1. 输入Embedding层:
我们使用标准的技术,通过结合word embedding和character embedding获取最终的word embedding。
- word embedding使用维预训练的GloVe (Pennington et al., 2014) 词向量,在训练过程中该word embedding固定不变。所有的oov单词映射为<UNK>token,该token可训练而且是随机初始化的。
- character embedding获取方式如下:每个character embedding是维的可训练向量,这意味着每个word embedding可以看做是他每个character embedding的拼接(这里的拼接有待确认)。每个word的长度被截断或者padding到16。提取该矩阵每一行的最大值,组成一个固定长度(200?)的向量以代表每个word。最后对于一个词x,我们用来作为x的词向量,其中是word embedding,是x的character embedding的卷积输出(啥意思?)。这里借鉴Seo et al. (2016), 采用两层的highway网络(highway和ResNet中的Short connection结构相似)于最终的word embedding之上,为了简单起见,本文还是使用x最为这一层的输出。
2. Embedding编码层:
编码层是若干个一下block的叠加。[convolution-layer × # + self-attention-layer + feed-forward-layer],如图1。
我们使用depthwise separable convolutions(Chollet, 2016) (Kaiser et al., 2017) ,因为该网络具有更好的记忆和更好的生成能力(待看这两篇论文)。一个block有4层卷积,每层卷积128个filter,kernel是7*7。
self-attention-layer采用multi-head attention机制(Vaswani et al., 2017a)