融合所有層次的表示就能夠找到正確答案-FusionNet
2017年11月的論文,國立臺灣大學學生在MSR實習時產出。
最近的MRC模型的核心創新點就是如何讓問題q和上下文c的內容進行深度的互動 ,但是這些模型受制於學習能力、計算能力的限制通常只利用了部分資訊 。
影象識別領域的研究認為不同層次 的表示代表著不同的資訊,而這一認識在MRC中也是適用的。
提出了一種能夠利用和融合 問題和答案中不同層次資訊的模型。
核心概念:融合,history-of-word
核心問題:
a.說以往的模型只利用了部分資訊,那麼它們分別利用了哪些資訊如何利用的,可否進行一下分析?
給定兩個包含資訊的向量集A和B(比如Q和C的詞向量集合或者更高階向量表示的集合),利用A的資訊更新B或者利用B的資訊更新A的過程叫做融合(fusion),以往的模型大多都是在設計這個融合的過程。
下圖是論文關於問題1的一個陳述,包含了主要的幾種資訊融合的方式以及以往模型的做法,其中矩形一般是各種RNN網路,箭頭指向的集合代表被融合的集合。融合的過程一般用注意力機制實現。
(1)代表單詞級別的融合,把問題的單詞蘊含的資訊給到上下文中。可以通過把二進位制形式的feature新增到詞向量之後的形式做Hu2017&Chen2017,該特徵表徵上下文裡的單詞是否出現在問題中。
(2)利用問題的高層次表示更新上下文的高層次表示,幫助尋找答案。但是高層次表示本身是不精確的,可能丟失一些細節資訊。
(2‘)把問題的高層次表示融合到上下文的單詞級別的表示。
(3)self-boosted-fusion。利用上下文的高層次表示本身,更新高層次表示,一般用self-attention實現。
(3‘)在融合單詞表示之前進行self-boosted-fusion,比如Xiong2017提出的coattention。
b.怎麼進行深度融合,才算是利用了所有信息?
History-of-word:一個單詞從低層次到高層次所有表示向量一起稱做這個詞的history。
利用fully-aware-attention的機制,進行B->A的融合的時候,首先利用A、B集合中所有詞的history-of-word表示 計算注意力權重,然後把計算得到的權重通過與B中每個單詞加權求和,之後把融合得到的資訊
連線到原本的資訊之後。
具體的做法如下:
(1)3層Fully-Aware-Attention,把3個不同級別問題表示concat後向上下文C進行融合。
(2)把多層上下文C的表示和(1)中融合q的C表示一起傳入BiLSTM。
(3)C自己的Fully-Aware-Attention,就是不同級別的C一起進行self-attention。
(4)把self-attention後上下文C的資訊和C本身的資訊concat起來傳入BiLSTM中。
- 輸入:300維Glove向量+600維Context向量,在C中增加額外的POS、NER和詞頻表示。輸入是 。(這裡和後面指代維度都是指矩陣中每一個向量的維度)
- Fully-Aware Word-Level Fusion:對Q和C的Glove向量進行Fusion,並把得到的fusion表示、C的輸入向量和em向量(C中單詞是否在Q中出現)concat起來作為輸出。本層利用Q更新了C的單詞級別表示,得到了 。
- Reading:多層BiLSTM利用Q和C上一層的輸出,得到不同層次250維的向量輸出。本層得到了Q和C不同層次的表示 ,維度是 。
- Question Understanding:單層BiLSTM利用上一層的輸出,得到問題Q的最終表示 。
- Fully-Aware Higher-Level Fusion:利用問題的History-of-word,更新上下文的History-of-word向量【1400維】(就是剛剛產生的所有向量concat在一起),得到上下文的三個question-aware-encoding: 。這三個encoding再通過BiLSTM得到Quesion-Full-Aware-Encoding: 。
- Fully-Aware Self-boosted Fusion:如上文(3)(4)中所述。得到了上下文C的最終表示 。
- 最後利用得到的上下文和問題的表示進行解碼,推理答案。
此外,對於Full-Attention使用的注意力函式,以及不同層次融合對結果的影響進行了Ablation Analysis。對SQuAD的部分結果進行了與BIDAF的Case Study對比。