QANet: Combining Local Convolution with Global Self-Attention for Reading Comprehension
論文地址:https://arxiv.org/abs/1804.09541
趙偉松,zws2lll@gmail.com,15652311958,北京,360
如有錯(cuò)誤,請指正
1 Introduction
2 The Model
2.1 PROBLEM FORMULATION
本文中的閱讀理解任務(wù)被以下形式定義:給定
- 特定短文,n個(gè)詞,
- 相應(yīng)的問句,m個(gè)詞,
輸出C中一段子串,。下文中x同時(shí)表示英文單詞和其對應(yīng)的詞向量。
2.2 MODEL OVERVIEW
本文模型包括5部分,
- embedding層
- embedding編碼層
- C-Q attention層
- 模型編碼層
- 輸出層
這是主流閱讀理解模型的架構(gòu)。本文的模型與當(dāng)下主流模型的不同之處在于: embedding層和模型編碼層使用的是CNN和Attention機(jī)制。所以我們的模型運(yùn)算更快而且可以并行處理。需要提及的是,雖然self-attention機(jī)制被廣泛的應(yīng)用在Vaswani et al. (2017a),但是CNN和selft-attention機(jī)制相結(jié)合的技術(shù)還是很前沿的。
具體講講模型的5個(gè)部分:
1. 輸入Embedding層:
我們使用標(biāo)準(zhǔn)的技術(shù),通過結(jié)合word embedding和character embedding獲取最終的word embedding。
-
word embedding使用
維預(yù)訓(xùn)練的GloVe (Pennington et al., 2014) 詞向量,在訓(xùn)練過程中該word embedding固定不變。所有的oov單詞映射為<UNK>token,該token可訓(xùn)練而且是隨機(jī)初始化的。
-
character embedding獲取方式如下:每個(gè)character embedding是
維的可訓(xùn)練向量,這意味著每個(gè)word embedding可以看做是他每個(gè)character embedding的拼接(這里的拼接有待確認(rèn))。每個(gè)word的長度被截?cái)嗷蛘遬adding到16。提取該矩陣每一行的最大值,組成一個(gè)固定長度(200?)的向量以代表每個(gè)word。最后對于一個(gè)詞x,我們用
來作為x的詞向量,其中
是word embedding,
是x的character embedding的卷積輸出(啥意思?)。這里借鑒Seo et al. (2016), 采用兩層的highway網(wǎng)絡(luò)(highway和ResNet中的Short connection結(jié)構(gòu)相似)于最終的word embedding之上,為了簡單起見,本文還是使用x最為這一層的輸出。
2. Embedding編碼層:
編碼層是若干個(gè)一下block的疊加。[convolution-layer × # + self-attention-layer + feed-forward-layer],如圖1。

我們使用depthwise separable convolutions(Chollet, 2016) (Kaiser et al., 2017) ,因?yàn)樵摼W(wǎng)絡(luò)具有更好的記憶和更好的生成能力(待看這兩篇論文)。一個(gè)block有4層卷積,每層卷積128個(gè)filter,kernel是7*7。
self-attention-layer采用multi-head attention機(jī)制(Vaswani et al., 2017a)