ACL 2019 | 基於知識增強的語言表示模型,多項NLP任務表現超越BERT

PaperWeekly發表於2019-06-03

ACL 2019 | 基於知識增強的語言表示模型,多項NLP任務表現超越BERT論文動機

自從 BERT 被提出之後,整個自然語言處理領域進入了一個全新的階段,大家紛紛使用 BERT 作為模型的初始化,或者說在 BERT 上進行微調。BERT 的優勢就在於使用了超大規模的文字語料,從而使得模型能夠掌握豐富的語義模式。

但 BERT 是否還有改進的空間呢?如下圖,當提到*鮑勃迪倫*的時候,單純依靠大規模的普通文字很難理解到底是指音樂家還是作者,但如果加入充分的先驗知識,那麼模型可能就會學習到更加精細化的語義表示,如何讓 BERT 掌握更多的人類先驗知識呢?

本文就提出了一種方法,將知識圖譜的資訊加入到模型的訓練中,這樣模型就可以從大規模的文字語料和先驗知識豐富的知識圖譜中學習到字、詞、句以及知識表示等內容,從而有助於其解決更加複雜、更加抽象的自然語言處理問題。

ACL 2019 | 基於知識增強的語言表示模型,多項NLP任務表現超越BERT

模型結構

整個模型的動機就是將知識圖譜的資訊有效融入到模型的訓練中,考慮到 BERT 的複雜結構,如何將知識圖譜的資訊進行有效融合呢?作者提出瞭如下的結構:

ACL 2019 | 基於知識增強的語言表示模型,多項NLP任務表現超越BERT

可以看出,模型將 BERT 中的 Encoder 替換為了 T-Encoder+K-Encoder,T-Encoder 依然是對原來的文字進行編碼,這部分和 BERT 是一樣的,在 K-Encoder 中,可以看到輸入輸出都變成了兩個,多了 entity 的資訊。

具體來說,首先可以利用 TransE 的方法對知識圖譜中的內容進行表示,並對文字中的實體進行識別,這樣文字中的實體都會有一個來自知識圖譜的實體表示,需要注意的是文字的長度和實體的長度並不相等,然後先用 mutli-head attention 對文字和實體分別進行處理,得到在整個序列中情境感知的語義表示:

ACL 2019 | 基於知識增強的語言表示模型,多項NLP任務表現超越BERT

接下來就是對這兩種資訊進行融合,或者說利用實體的資訊來增強對文字語義的理解,這個時候就分成兩種情況: 

1. 文字中的詞有實體對應,一個很簡單的思路,通過一個非線性變換,得到融合後的資訊:

ACL 2019 | 基於知識增強的語言表示模型,多項NLP任務表現超越BERT

2. 文中的詞沒有實體對應,為了保證一致性,還是同樣的方法,只是只有實體詞的輸入:

ACL 2019 | 基於知識增強的語言表示模型,多項NLP任務表現超越BERT

通過這樣的方法,就將實體的知識資訊融入到了對文字語義的增強表示中,接下來將相應的單元重複多次,就得到的最終的文字語義表示。 

訓練細節

從模型上實現了知識圖譜資訊的有效融合,那如何訓練呢?如果單純還是和 BERT 的訓練方式相同,知識圖譜的知識資訊可能並不能如期望的那樣進行有效融合,因此作者參考 Masked Language Model 設計了一個 denoising Entity Auto-encoder (dEA) 任務,用以訓練模型對實體資訊的感知和對齊,具體內容如下。

dEA 的目的就是要求模型能夠根據給定的實體序列和文字序列來預測對應的實體,首先是實體和文字之間的對齊概率計算:

ACL 2019 | 基於知識增強的語言表示模型,多項NLP任務表現超越BERT

這個公式也被當作訓練 dEA 時的損失函式,有了目標,那麼資料該如何準備呢?和 Masked Language Model 類似,作者對實體也做了如下處理: 

1. 對於一個給定的文字-實體對應序列,5% 的情況下,實體會被替換為一個隨機的實體,這麼做是為了讓模型能夠區分出正確的實體對應和錯誤的實體對應; 

2. 對於一個給定的文字-實體對應序列,15% 的情況下,實體會被 mask,這是為了保證模型能夠在文字-實體沒有被完全抽取的情況下找到未被抽取的對應關係; 

3. 對於一個給定的文字-實體對應序列,剩下的 80% 的情況下,保持不變,這是為了保證模型能夠充分利用實體資訊來增強對文字語義的表達。 

和 BERT 類似,作者也對輸入進行了一些調整,從而保證了模型能夠自適應不同的任務,下圖展示了針對三類自然語言處理任務的輸入調整:

ACL 2019 | 基於知識增強的語言表示模型,多項NLP任務表現超越BERT

對於一般的 NLP 任務而言,知識在輸入的頭尾加上特定的開始結束符號,然後送給模型,並取 [CLS] 對應的輸出作為輸入句子的表示。

對於一些知識驅動的任務,如關係分類,實體類別識別等任務,作者加入了特定的符號用以區分這些任務,對於實體類別識別任務,作者加入了 [ENT] 來指導模型使用文字表示和實體表示進行最後的實體資訊識別。

對於關係分類任務,作者加入了 [HD] 和 [TL] 分別表示頭實體和尾實體,然後使用 [CLS] 對應的特徵向量來進行最後的分類。整個這部分的操作和 GPT-2 的無監督學習有些類似。

實驗結果

和 BERT 不同的是,作者首先在兩個知識驅動的任務上進行了模型效果的驗證: 

1. Entity Typing:給定實體和對應的上下文,模型需要識別該實體的語義型別 

2. Relation Classification:給定一個句子,模型需要識別出句子中的兩個實體之間的關係。

這兩個任務都是知識驅動的任務,不單單需要模型能夠掌握豐富的語義模型,同時需要模型能夠有豐富的先驗知識,這樣才能進行準確識別和分類,下圖是對應的實驗結果:

ACL 2019 | 基於知識增強的語言表示模型,多項NLP任務表現超越BERT

ACL 2019 | 基於知識增強的語言表示模型,多項NLP任務表現超越BERT

從實驗結果上看,模型取得了非常好的效果,這也說明了模型有效融入了知識圖譜的先驗資訊,實現了文字語義的增強表示,同時作者還在常見的 NLP 任務上和 BERT base 進行了對比,實驗結果也證實了模型的有效性。

ACL 2019 | 基於知識增強的語言表示模型,多項NLP任務表現超越BERT

總結

自從 BERT 被提出後,NLP 領域的研究形式也開始慢慢向 CV 靠攏,利用這些預訓練好的超大模型獲得豐富的語義模式,從而通過在具體任務上的微調獲得最後的效果。

但 NLP 和 CV 還是有很大不同的,自然語言是一種高度抽象的資訊,單純通過語言模型獲取豐富的語義模式並不能一勞永逸地解決所有問題,而這篇文章就進行了這方面的一個嘗試,通過引入外部先驗知識增強模型的語義理解和表徵。那是不是還可以進行不僅僅是文字方面的增強,例如通過語音融入情感資訊,通過影象引入視覺資訊等,這些都是值得研究的地方。


相關文章