【論文筆記】QANET:Combining Local Convolution With Global Self-attention for Reading Comprehension

目錄

 

1. 簡要介紹

2. 模型

3. data augmentation by backtranslation

4. 實驗


​​​​​​​

1. 簡要介紹

模型創新點:

(一)移除了RNN,核心就是卷積 + self-attention。這樣使得訓練更快,相應地模型能使用更多的訓練數據。Convolution capture the local structure of context(local interactions), self-attention models global interactions。兩者相輔相成,不可替代。

(二)使用了輔助的數據增強技術來提高訓練數據,數據來自MT模型的back-translation。

 

QANet首先達到又快又精確,並且首先把self-attention和convolution結合起來。

QANet結構廣泛使用convolutions和self-attentions作爲encoders的building blocks,然後分別encode query和context,然後使用standard attentions學習到context和question之間的interactions,結果的representation再次被encode,然後最後decode出起始位置的probability。

 

組件分析

  1. convolution: local structure
  2. self-attention:global interaction
  3. additional context-query attention:

  它是standard module,從而建立query-aware context vector

 

QANet結構

主要包括5個組件:input embedding layer,a embedding encoder layer, context-query attention layer, a model encoder layer, an output layer.

與其他MRC模型不同的是:所有embedding和model encoders只使用conv和sefl-attention;

 

創新的輔助的data augmentation技術:從原始英文翻譯爲法語後,再翻譯回英語,這樣不僅提高了訓練實例的數量,更提高了措辭多樣化。英語翻譯爲法語後,通過beam decoder,生成k句法語翻譯,然後法語翻譯再通過beam decoder變回英語就獲得了k^2句paraphrases。

 

QANet實驗成果

數據增強技術能提高F1 score從曾經最好的81.4到QANet的84.6。

相比於使用RNN的模型,訓練速度13x speedup,每次training iteration 9x加速,這種加速使得模型可以在大規模數據集上應用。

 

2. 模型

模型定義

 

(1)Input embedding layer

詞嵌入是concatenate word embedding和character embedding。

Word embedding用預訓練的GloVe詞向量初始化,並且在訓練期間固定,維度300維;Character embeddings是用卷積訓練的固定長度的詞向量,每個字符被表示成200維向量;最後拼接二者的輸入得到500維的x:

。最後在這層表示上接一個2層的highway network。

 

(2)Embedding encoder layer

encoder layer是堆疊的基本塊,塊內結構:[convolution-layer × # + self-attention-layer + feed-forward-layer]。塊內的這些每個operations(conv/s-a/ffn)都放在residual block裏,並且每個殘差塊裏的輸出都是:x+f(layernorm(x)),

卷積使用depthwise separable convolutions;

Self-attention-layer使用多頭注意機制,heads is 8;

輸入是500維,輸出128維。

 

(3)Context-Query Attention Layer

這個組件很常用,C和Q代表着編碼的context和question,

 

首先計算context和question每個詞對的相似度,得到的相似矩陣row normalize得到矩陣:,相似度計算方法:

然後context-to-query attention如下計算:

另外,有些組件使用的是query-to-context,比如BiDAF和DCN。

 

(4)Model Encoder Layer

輸入是:,a和b代表着attention矩陣的行。

 

(5)Output layer

Context裏答案的起始位置的概率計算如下:

 

W1W2可訓練變量;M0,M1,M2各自是3個encoders的輸出。

Span score是其起始位置概率的乘積。

得到所有樣本的目標函數的平均:

其中y1iy2i是樣本i真實的起始位置。

 

3. data augmentation by backtranslation

簡單的數據擴充技術!paraphrase的質量和多樣性很重要!

論文作者相信這樣的數據擴充技術可以應用於其他監督的自然語言處理任務

 

該論文創新性地將基於翻譯的數據擴充技術,應用於QA。

 

擴充數據以後,要處理documents和answers,生成new triples of (d’, q, a’),d’來自document paraphrasing,最開始有k^2個paraphrases,a’來自answer extraction。

在生成a’的過程中,使用characterl-level 2-gram scores來計算s’的每個單詞和a的起始字母的分數,從而找到s’裏可能的答案的起始位置。

 

其他的一些數據增強tricks

文本分類上,用單詞的同義詞代替單詞;

Type swap,但是這樣數據多樣性不夠;

生成更多問題來提高diversity,但是這種方法不能提高performance;

此論文的方法可以提供更多句法多樣性;

 

4. 實驗

數據預處理:NLTK tokenizer,The maximum context length is set to 400, dynamically pad the short sentences with special symbol <PAD>, use the pretrained 300-D word vectors GLoVe, all the out-of-vocabulary words are replace with <UNK>;

訓練細節:a learning rate warm-up scheme

 

和不同模型的實驗結果對比:

 

消融分析

在驗證集上自身組件的對比:

看出convolution in encoders很重要。

 

魯棒性研究

2種誤導性的句子:AddSent和AddOneSent。Addsent生成類似問題的句子,但是與正確答案不矛盾;AddOneSent添加隨機人類改善的句子,和context可以無關。

由於模型有用到data augmentation,所以有一定魯棒性。

 

在TriviaQA上的表現

見下圖。由於TriviaQA比SQuAD的context更長、噪聲更多。並且由於它有Multi-paragraph特性,因此作者提到了一些hierachical or multi-step reading tricks,比如首先預測讀取哪個paragraph,然後應用比如BiDAF的模型在那個paragraph裏pinpoint answers。

作者還相信QANet還可以應用於其他multi-paragraph閱讀模型。

 

 

涉及到的要進一步理解的概念

Layer-normalization(2016)

element-wise multiplication

stochastic depth method

 

 

 

發佈了60 篇原創文章 · 獲贊 13 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章