歡迎光臨
每天分享高質量文章

IEMLRN:基於圖像增強的句子語意表示

作者丨張琨 

學校丨中國科學技術大學博士生

研究方向丨自然語言處理

 

論文動機

 

自然語言理解(Natural Language Inference)主要是用於分析兩個句子(前提句 p,假設句 h)之間的語意推理關係, 包括 Entailment(可以從前提句的語意推理出假設句的語意),Contradiction(不能從前提句的語意推理出假設句的語意),Neutral(無法確定是否能從前提句推理出假設句)。

在真實條件下,自然語言句子的語意時高度依賴情境信息的,相同的句子可能會因為情境信息的不同而表達出不同的語意信息,這也是自然語言句子本身語意的模糊性、二義性等特點導致的,就如下邊的例子:

 

 

如果單純看兩個句子,我們可能會因為 outside market 而推理出天氣是 sunny day,但實際上這也不是能夠十分明確的。而加入了情境信息的話,情況就會有所不同,例如圖 A,那麼兩個句子之間的語意關係就是 Entailment,但換成圖 B 的時候,因為時間變成了晚上,那麼兩個句子之間的語意關係就成了 Contradiction。

而目前大多數的方法在對句子語意進行建模的時候都假設句子是獨立於情境的,這明顯是不夠充分的,因此,本文從這個角度出發,提出了將圖像信息融入到句子語意建模過程中,從而增強句子的語意理解,得到更加準確全面的語意表示。


模型

 

首先是完整的模型圖:

 

 

從整體上看,模型是一個 3-level 的結構,在每一層的結構中包含了 5 個組件。

  • Input Layer:整個模型的輸入層,包括兩個句子的詞的輸入,圖像的特征輸入;

  • Embedding Layer:從不同的粒度對句子中的信息進行表示,分別是詞級別,短語級別,句子級別;

  • Image-Enhanced Unit Layer:圖像增強單元層,利用圖像信息對句子語意表示進行增強,從而得到句子語意更加全面準確的表示;

  • Matching Layer:對得到的句子語意表示進行匹配操作;

  • Classification Layer:對輸入的兩個句子進行語意推理關係分類。

首先對輸入層進行簡單描述,輸入的信息包含圖像和文本,針對圖像,作者選擇了 VGG19 模型進行特征抽取,選擇最後一個捲積層的結果作為圖像的特征表示。

針對文本,作者利用了預訓練的詞向量(glove 840b),字符級別的 embedding,以及一些人工特征的拼接,作為文本中每個詞的表示。接下來將對模型的幾個結構進行詳細分析。

Embedding Layer

 

和傳統的直接拿 embedding 好的詞向量作為模型的最終輸入不同的是,本文首先從不同粒度對模型輸入進行處理。這裡為什麼要這麼處理呢?

因為本文最終是要通過圖像信息對句子的語意表示進行增強,而圖像包含的信息要遠遠高於文本,並且它可能對應到文本的不同粒度上,可能是某個詞,也可能是某個短語。另一方面,對文本的多粒度建模可以更好地對句子語意進行分析。

因此,本文首先對原始的詞向量進行一維捲積(使用 unigram, bigram, trigram),得到了句子的短語表示。需要說明的是,這裡的短語並不是真正的短語,只是一個區域性的特征。在此基礎上,使用了 GRU 對短語級別的表示進行處理,這樣就知道了一個全域性信息,這裡作者稱之為句子級別的表示。

在接下來的內容中,以詞級別的作為例子,剩下的兩個粒度信息使用的是相同的結構。

Image-Enhanced Unit 

首先是該結構的詳細圖解:

 

 

該結構的輸入為三部分,一個附加的情境信息 ,圖像的特征表示 ,以及文本序列的表示 ,這裡使用的詞級別的前提句的序串列示矩陣作為例子。

首先要做的就是利用圖像的特征表示來從另一個角度表示文本中的每個詞,很自然的,co-attention 方法是首選:

 

 

通過該操作,模型就可以利用圖像中的相關信息對文本的語意表示進行增強,相當於從另外一個角度對每個詞進行了表示,那麼接下來最簡單的方法就是把兩個結果拼接起來,但這樣會讓模型的引數規模變大,並且是否可以將來自圖 像的信息表示和來自文本的信息表示同等對待也值得思考。

在本文中,作者仿照 GRU 的結構,對這兩部分的表示進行了一個融合,從而更好的利用這部分的信息:

 

 

融合之後就得到了每個詞的增強表示,接下來需要做的就是如何將這些信息融合,得到句子的語意表示向量。

這裡作者使用了 self-attention 機制,並同時使用了最大池化操作(max-pooling),這樣對句子語意表示重要的信息會被選 擇出來,同時對語意表示最重要的信息也會被選擇出來進行重點突出,通過這種方式,就可以得到句子語意全面的一個表示:

 

 

從公式中可以看出,作者最後將這三部分內容拼接起來,作為最終的句子的語意表示向量。同樣的操作也會放到假設句子上,這樣就得到了兩個句子的增強語意表示。需要強調的是這裡的 v,這是一個被稱之為 inference vector 的向 量,會在下一部分詳細分析。

Matching

這部分就相對比較簡單了,將得到的兩個句子的語意向量表示進行啟髮式的匹配操作。

 

 

這裡,直接拼接可以保留所有的信息,相減操作可以指明推斷方向,同時是一種最朴素的差異判斷方法,而點乘可以認為是一種最簡單的相似度計算方法,通過這樣的操作,就可以得到兩個句子之間推理關係的一個向量表示。

正如上一節所描述的,IEU 單元需要有這樣一個 inference vector 作為輸入,這裡作者是將上一層的 inference vector 送給當前層,這樣模型在短語級別推理時會指導詞級別做出分類的理由,不同粒度之間也建立了信息流動,從而隨著粒度的加深,模型也能夠更加準確的進行語意推理關係的分析和判斷。

最後就是分類層了,通過一個簡單的分類器進行分類就可以了。因為這是一個三層的結構,每一層都會分類,因此作者在訓練時要求模型每一層都能分對,也就是損失函式中有這三層的交叉熵損失函式。而在預測的時候使用的是最後 一層的輸出結果。

以上就是模型的整體結構,一個多粒度的圖像增強結構,還是很有意思的。

 

實驗結果

 

還是首先先上實驗結果:

 

 

從實驗結果上看,該模型在完整的測試集上,以及更加嚴格的測試集上都能取得不錯的效果,這也說明瞭模型的有效性,接下來是模型結構的有效性測試。

 

從這個結果上看,只用單層的話,能看到的信息越多,效果越好,因此我們看到粒度越大,效果越好,並且只用詞級別的表示的話,因為完全不知道句子的結構,所以結果和隨機猜沒有太大差別;當考慮的粒度越多時模型的效果也越 好,這也說明瞭多粒度的考慮確實有助於對句子語意的全面理解。

不過個人感覺這部分應該加一個如果沒有圖像信息的話,結果會怎麼樣,相當於是對圖像有效性的一個檢測,這樣實驗部分就更加全面了。

總結

本文通過將圖像信息引入到自然語言推理中,利用額外補充的信息對句子語意進行增強,從而更加準確地理解句子語意。思路非常新穎,而且這種多模態的建模方法個人感覺也是未來一個比較重要的研究方向。當然本文中也有一些地方還可以改進,例如圖像的利用、圖像的有效性分析等都值得思考。還是一篇很不錯的文章。

已同步到看一看
赞(0)

分享創造快樂