句子對關系是NLP中非常常見的任務,例如句子相似度計算,自然語言推斷等。句子對關系判斷一般都兩種模型:一是表示式模型,例如孿生網絡,DSSM,這類模型的特點是將句子編碼成向量,在編碼時兩個句子可以共享或不共享模型參數,之后再通過余弦,歐式距離等計算兩個向量的距離,從而來表示兩個句子的相關性;二是交互式模型,交互式模型比表示式模型要復雜,但在預測兩個句子的相關性時不僅僅只使用了句子的信息,還使用了詞,短語這一類更細粒度的信息,簡單說就是在模型構造時會將兩個句子中的詞和短語做交互。
雖說預訓練模型在各種基准任務上都取得當前最優的結果,但對於復雜的交互式模型還是有必要了解一些,因為這些模型的交互層在做句子對任務時是值得借鑒的,也許在一些數據集上用預訓練模型做encoder,再配合這些交互層,可能能取得更好的效果,所以接下來我們來看看一些經典的交互式模型。
一,MatchPyramid
論文:Text Matching as Image Recognition
本論文比較早,在attention還沒有在NLP中廣泛的應用下,將文本匹配問題轉換成圖像識別的問題,想法還是比較新奇的。但文本和圖像有一個很明顯的區別就是,文本是一維的,而圖像是二維的,如何將一維的文本轉換成二維的圖像是本文的一個重點,此外在圖像識別中通常是通過多層CNN去提取不同粒度的特征,作者也是利用了這種思想,通過多層的CNN去提取不同粒度的交互特征。
首先我們為什么需要交互式模型,看個具體的例子:

如上圖所示,兩個語義相同的句子,在詞級別上就有很多相同或相似對應的詞,例如down-down,famous-popular等等。在短語級別上也是noodles and dumplings - dumplings and noodls等等。在更細粒度上做交互可以獲得更多的信息。來看看具體的模型實現,模型結構圖如下:

整個模型可以分為匹配矩陣層,卷積層,MLP層。
匹配矩陣層:為了將一維的文本轉換成二維,在這里作者構建了一個匹配矩陣,具體的來說就是兩個句子中的詞兩兩計算相似度得到一個矩陣,矩陣中的元素$M_{ij}$表示句子1中的第$i$個詞和第2個句子中的第$j$個詞的相似度值,具體表達式如下:

在這里作者提供了三種相似度計算的方法:Indicator Function(當兩個詞相同則為1,否則為0,感覺這種方法跟詞袋模型類似,效果應該一般,而且是離散計算的) ,cosine,dot。

卷積層:在這里作者采用了兩層卷積核池化來抽取匹配矩陣中的細粒度特征。卷積核可以看作類似於n-gram,因此卷積核可以捕獲短語與短語之間的相似度信息。

MLP層:在這里作者同樣采用了兩層的全連接層來進一步提取句子特征。
最后的損失函數為交叉熵損失函數,經典的分類損失函數。
二,ESIM
論文:Enhanced LSTM for Natural Language Inference
首先這篇論文本質上是給出了兩個模型——ESIM和HIM,看下具體的模型結構圖,再來說這兩者的區別

橫向來看,上面的圖中既有BiLSTM,還有Tree-LSTM,作者將只使用BiLSTM的模型稱為ESIM,同時使用BiLSTM和Tree-LSTM的模型稱為HIM,從結果來看HIM的效果是要優於ESIM,但是能輸入到Tree-LSTM的數據是比較難以獲得的,你需要給出類似依存樹這樣的信息才行,因此適用性很窄,所以我們只關注ESIM。
整個模型可以分為4層:輸入層,局部推斷層,推斷合成層,預測層。
輸入層:詞向量嵌入,BiLSTM編碼,兩個句子共享參數

局部推斷層:在這里attention已經在NLP中被廣泛使用,而基於attention的交互模式也非常直接,因此后面的模型交互層基本都是基於attention的,首先計算兩個句子中詞與詞之間的點積,得到一個相似度矩陣,然后通過attention機制求得每個詞對應的一個新的向量:

上面式子中$\tilde{a_i}$是$\bar{a_i}$對所有的詞$b$ attention的結果,個人認為這個能提取句子B中的和$\bar{a_i}$相關的信息,用句子B中所有的詞來表示$\bar{a_i}$。在這個基礎上,作者還做了增強推斷,具體的就是對$\tilde{a_i}$和$\bar{a_i}$之間進行交互,得到更多的局部信息,說實話這里我是沒看懂為什么要這么做的。

將得到的$\bar{a}, \tilde{a}, \bar{a}-\tilde{a}, \bar{a} \odot \tilde{a}$四個在詞的維度上拼接
推斷合成層:將推斷的結果組合起來。將上面得到的$m_a, m_b$再經過BiLSTM,然后通過最大池化或平均池化得到句子的向量:

最后將向量$V$輸入到全連接層中經softmax分類。
三,BiMPM
論文:Bilateral Multi-Perspective Matching for Natural Language Sentences
本論文將交互式模型分為五個典型的部分:詞表示層(嵌入層),上下文表示層(編碼層),句子匹配層,聚合層,預測層。
詞表示層:顯而易見就是用詞向量來表征詞
上下文表示層:在這里使用BiLSTM來捕捉上下文信息


句子匹配層:這一層是本文的核心,這一層提供了四種匹配策略,並且對於每種匹配策略都從不同的視角出發,我們來看看具體的含義,首先什么是不同的視角?我們在計算兩個向量的余弦值時引入一個矩陣$W$,表達式如下:

這個矩陣$W$中的每個向量都會對向量$v_1, v_2$做element-wise的映射,表達式如下:

上面式子中的$W_k$是矩陣$W$中的第$k$個向量,本來兩個向量的余弦值是一個標量,通過引入矩陣$W$,我們會得到一個向量$m$,這個向量就是從不同視角下計算得到的余弦值。
本論文還提供了四種匹配策略,如下圖所示:

四種策略分別為:Full-Matching,Maxpooling-Matching,Attentive-Matching,Max-Attentive-Matching。這里提供的四種策略並沒有做詞與詞的交互,而是直接做的詞與句子向量的交互。這樣感覺很像是將一個句子拆分來,來計算該句子的每個部分和句子的余弦值,此外每個分布的權重可能不一樣,然后按照對應的權重加權和。上面提供的四種策略的不同之處只在於如何表征句子向量
Full-Matching:該策略就是將最后時刻的輸出作為句子向量的表征,然后計算詞和句子向量之間的相似度,在這里只顯示了句子p中的詞對句子q的句向量的余弦值,公式如下:

Maxpooling-Matching:該策略采用max pooling的方式輸出句子向量

Attentive-Matching:該策略采用attention的方式輸出句子向量



Max-Attentive-Matching:該策略就是將上面的策略中的加權和求句向量改成權重最大的方式求句向量。
對於采用多少個不同視角,也就是矩陣$W$中應該含有多少個映射向量,作者也做了實驗:

隨着視角數的增加,模型的性能還是會上升的。
聚合層:將上述不同策略得到句子(此時的詞向量長度等於矩陣$M$的向量數)再經過Bi-LSTM,之后將最后時刻的向量拼接再一起(不同策略的拼接在一起,再把兩個句子的拼接在一起)。
預測層:將聚合層的輸出輸入到softmax中進行分類。
四,MWAN
論文:Multiway Attention Networks for Modeling Sentence Pairs
看完這篇論文后,有一種想法,也不只是針對這篇論文,而是很多論文中的交互式模型都非常復雜,這些復雜的模型到底是怎么想出來的,還是說是不斷的嘗試得到的,不懂為什么要這么設計,以及這樣設計后會什么會有效。說了這么多來看看這篇論文吧,這篇論文用了很多attention機制,並且也對比了不同attention機制的結果,這個還是挺不錯的。
模型結構如下:

整個模型同樣可以分為5層:嵌入層,編碼層,匹配層,聚合層,預測層。本文的重點都在匹配層和聚合層。
嵌入層:在這里作者采用了GLOVE詞向量嵌入。
編碼層:采用了BiGRU進行編碼。
匹配層:作者采用了4種attention機制來做詞對詞的匹配,4種attention機制分別為:Concat Attention,Bilinear Attention,Dot Attention,Minus Attention。

對於句子Q種的詞隱層向量$h_j^q$,通過4種對句子P做的attention機制后,可以得到4種對應的attention后的向量$q_t^c, q_t^b, q_t^d, q_t^m$。
聚合層:這一層就是對上面4種attention后的向量和原隱層向量的聚合,首先分別對4種attention后的向量和原隱層向量單獨聚合,通過門機制來控制信息的流出:


上面就是對attention向量$q_t^c$和原隱層向量$h_t^p$的聚合,這樣聚合完之后,在每個詞的位置還是有4個向量,在這里作者再次采用attention機制對這4個向量做加權和:

通過這樣一系列的操作折后,對句子Q和P種的每個詞就是一個單獨的向量,這樣整個句子的維度和encoder后的維度一致。然后再進入到一個BiGRU層去捕獲聚合后的上下文信息。
預測層:這一層會將兩個句子合並成一個向量,然后輸出到分類器中,在這里作者依然用了attention來獲得最終的向量,先隨機初始化一個向量對句子Q做attention,得到句子向量$r^q$:

利用$r^q$對句子P做attention,得到句子向量$r^p$,又因為$r^p$是由$r^q$attention出來的結果,因此作者直接將$r^p$作為最終兩個句子語義交互的向量,再進入到softmax分類。
另外在作者的實驗中表明Dot Attention的結果是要優於另外3種的,當你只采用一種attention機制時,可以首選Dot,其實在大多數論文種采用的attention都是Dot。
