QANet

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个词,C={c_1, c_2, ..., c_n}
  • 相应的问句,m个词,Q={q_1, q_2, ..., q_m}

输出C中一段子串,S={c_{i+1}, c_{i+2}, ..., c_{i+j}}。下文中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使用p_1=300维预训练的GloVe (Pennington et al., 2014) 词向量,在训练过程中该word embedding固定不变。所有的oov单词映射为<UNK>token,该token可训练而且是随机初始化的。
  • character embedding获取方式如下:每个character embedding是p_2=200维的可训练向量,这意味着每个word embedding可以看做是他每个character embedding的拼接(这里的拼接有待确认)。每个word的长度被截断或者padding到16。提取该矩阵每一行的最大值,组成一个固定长度(200?)的向量以代表每个word。最后对于一个词x,我们用[x_w;x_c]来作为x的词向量,其中x_w是word embedding,x_c是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。

图1. one encoder block

我们使用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)


未完待续

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 帮助别人原是人性本善,挺美好的一件事情。可有人却能把你使唤得如此理所应当,如果尽心尽力去帮你做一件事,到头来还落...
    墨之屋阅读 484评论 0 0
  • 小美心怀忐忑,一路经过上坡,拐弯,进电梯,出电梯…自己一路盯着走廊上面的灯光,辗转进了手术室。 一进去...
    最爱27号阅读 304评论 0 0