©NLP論文解讀 |楊健
論文標題:
ERNIE:Enhanced Language Representation with Informative Entities
收錄會議:ACL
論文連結:
https://arxiv.org/abs/1905.07129
專案地址:
https://github.com/thunlp/ERNIE
1、問題
論文作者認為儘管預訓練語言模型能夠從大規模文字語料中學習到詞法、語法等資訊,然而這些預訓練模型卻忽略了知識圖譜提供的知識。
這些知識能夠為預訓練模型提供實體的語義以及實體間的關聯,從而提高預訓練模型的理解能力。
我們以下面這一句子為例解釋知識圖譜如何提高預訓練模型的理解能力。
Bob Dylan wrote Blowin’ in the Wind in 1962, and wrote Chronicles: Volume One in 2004.
如果我們不知道Blowin’ in the Wind是一首歌,而Chronicles: Volume One是一本書,那麼模型在實體分類任務上將難以推理出Bob Dylan是一名歌手和作家。在關係分類任務上也無法推斷出Bob Dylan和Blowin’ in the Wind是創作者的關係。
此外,由於預訓練模型使用經過分詞的子詞(token)作為最小的語義單元,針對句子中的歌曲和書名短語,由於出現頻率過低,模型可能無法將其識別為一個完整的語義單元,從而只能模糊的學習到UNK wrote UNK in UNK。
為預訓練模型注入知識圖譜中的實體資訊和三元組知識,能夠讓預訓練模型識別出實體,並習得實體間的關聯。
然而知識的注入面臨著兩個問題,一個是給定文字,如何提取出其中的相關實體並對其編碼。二是知識表示學習使用和文字編碼不同的編碼方式,這會生成語義向量空間異構的表示向量,如何融合異構向量成為了關鍵的問題。
2、解決方案
為了解決上述的兩個問題,作者提出了下面的解決方案。針對第一個問題,作者首先抽取出文字中的實體。
這一步驟在工程上是通過獲取維基百科的頁面,並將其中帶有超連結的名詞或者短語作為實體。在此基礎上,通過字串比對的方式對齊抽取出的實體和知識圖譜中的實體。
而為了編碼實體資訊,作者使用了TransE對知識圖譜中的三元組建模,從而生成表示向量。為了更好的區分文字中的實體和知識圖譜中的實體,筆者使用指稱項表示文字中出現的實體,而用實體表示知識圖譜中的實體。
對於第二個問題,作者在BERT原有的預訓練任務基礎上引入實體預測任務,也即作者所指的去噪實體自編碼(dEA)。具體而言,模型在資料準備階段會構建文字序列和對應的實體序列,文字指稱項向量會和實體向量融合,該融合向量將用於判斷它在圖譜中所代表的實體。
已有的預訓練模型僅僅利用文字預測掩碼子詞,而這一任務則需要預訓練模型同時利用實體資訊和文字資訊預測,促使了預訓練模型融合實體知識。
2.1 模型結構
模型的結構由文字編碼器(T-encoder)和知識編碼器(K-encoder)所組成。文字編碼器部分採用BERT模型所使用的Transformer編碼層,在具體實現上作者使用了5層編碼層來構成文字編碼器。
知識編碼器則由7層作者自定義的聚合層所構成,主要負責實體資訊和文字資訊的融合以及編碼。模型結構如下圖所示:
給定文字輸入序列,模型首先使用文字編碼器編碼文字,生成表示向量:
該文字向量w將和經過TransE編碼的實體向量e共同傳入聚合層,聚合層使用兩個多頭自注意力層MH-ATT分別對文字和知識向量編碼:
針對編碼後的第i層第j個文字向量和第k個實體向量分別進行矩陣相乘,將其對應向量相加並經過非線性變化,生成融合向量h :
該融合向量h將分別經過兩個轉換矩陣,重新生成攜帶文字資訊和圖譜資訊的實體向量和文字向量ek:
這兩個向量將在輸出層經過歸一化和殘差連線。事實上,知識編碼器中包含了兩種不同型別的編碼器,一種僅僅對文字向量進行自注意力操作,主要負責的是文字向量和實體向量的求和。另一種才如上文所述,對兩類向量都進行自注意力操作。具體的過程詳見程式碼解讀。
2.2 模型的預訓練
除了BERT的兩個預訓練任務,作者還引入了針對掩碼實體的預測任務。考慮到文字指稱項和圖譜中的實體在對齊過程中可能會存在錯誤,作者針對5%的指稱項隨機挑選一個實體與其融合,讓模型在融合錯誤實體的情況下預測正確實體,以訓練模型的糾錯能力。
針對15%的文字指稱項,作者對融合實體資訊的文字指稱項進行掩碼,並讓模型對其預測,以訓練模型在沒有獲得所有對齊實體資訊的情況下,也能正確預測實體。
針對剩餘85%的文字指稱項,作者不做任何改變,讓模型從實體序列和文字序列中學習語義,根據融合後的向量預測正確實體。
筆者發現,作者在工程實現上並沒有做這部分的實現,而是沿用BERT模型訓練資料構建部分的程式碼。
這也讓筆者猜測,實體序列的掩碼以及隨機選擇可能沒有必要,只不過為了工程實現的便捷,賦予這部分操作一個合理的理論依據。
考慮到知識圖譜中的實體數量巨大,如果針對所有的實體進行預測將會大大降低模型的效率。因此,作者僅使用實體序列中的實體,利用如下概率分佈公式,計算正確的實體。
這樣的做法由於縮小了模型的選擇空間,在一定程度上降低了預測的難度,但提高了預訓練的效率。是一種模型能力與訓練時長的折中。
2.3模型的微調
作者選擇了實體分類和關係分類這兩類知識密集型任務用於模型的微調。關係分類(relation classification)任務是指給定文字序列和其中的兩個實體,模型需要判斷出兩個實體間的關係。
實體分類(entity typing)是指給定實體,模型需要預測出正確的實體型別。對於關係分類任務,作者為了能夠標識出實體的位置,引入了特殊識別符號[HD]和[LD],置於實體的前後。
同理,為了標識出實體的位置,引入[ENT]這一符號,置於實體的前後。最後,使用[CLS]這一分類符號用於分類。
3、實驗
在實驗部分,作者使用實體分類、關係分類任務,以及語言理解任務GLUE資料集測試模型的效能。在實體分類任務上的結果表明,ERNIE遠超其他基線模型,並且比BERT在召回率和準確率上都提高了2%。
在關係分類任務上的結果表明,BERT比傳統的基於RNN和CNN的模型在F1值上高出15%以上,而ERNIE比BERT在1值上提高了3.4%,這說明了預訓練模型能夠比傳統基於RNN和CNN的模型學習到更多的語義資訊,以及知識注入的有效性。
值得一提的是,作者使用TACRED和FewRel資料集進行測試,後者的資料量比前者小的多,而ERNIE卻在FewRel資料集上獲得了更大幅度的效能提升,這也說明了**知識的注入能夠幫助預訓練模型更好的利用小規模訓練資料**,這對於缺乏大規模標註資料的NLP應用場景而言意義重大。
除此以外,模型還在GLUE資料集上進行評測,結果表明模型和BERT在總體上取得了相差無幾的成績,這也說明了知識的注入並沒有影響模型原有的文字編碼能力。
4、所想所獲
4.1分詞方法
模型在訓練之前,需要對輸入文字進行切分,BERT採用的分詞法是WordPiece,這種方法根據子詞出現的詞頻高低來作為切分詞語的依據。
這樣會使得高頻的子詞作為一個基本的語義單元,其對應的詞向量將習得某個語義。然而我們在現實生活中往往會使用一個完整的單詞或者短語來表示某個語義,這就造成模型無法理解這些單詞。
百度團隊所提出的ERNIE[1]通過採用全詞掩碼的策略之所以能夠提升預訓練模型的效能,原因也在於此。
本文針對文字指稱項經過分詞後的第一個子詞注入實體資訊,雖然能夠通過自注意力層實現資訊的傳遞,但分詞的結果和實體的邊界仍然存在鴻溝,筆者認為更好的對齊方式也許能進一步提高知識注入的效果。
4.2知識注入
本文通過對知識圖譜中的三元組表示學習,搭建了融合符號知識和文字向量的橋樑。然而TransE僅針對三元組建模,雖然能夠學習到兩個實體間的關聯,但是無法同時建模多個實體的關聯。
此外,實體所在的上下文能為實體提供更多的語義資訊,而TransE無法利用實體文字資訊。與之對比,預訓練模型則能夠捕捉到豐富的文字資訊。
那麼是否可能將二者的結合起來呢,論文[2]就結合了兩者的優點,具體的結合思路筆者將在後續文章中進行解讀。
另一方面,圖神經網路擅長捕獲拓撲結構的實體關聯資訊,而知識圖譜正是一種不規則的異構圖,使用圖神經網路對知識圖譜進行表示學習,能夠進一步編碼知識圖譜的拓撲結構,從而學習多個實體的關聯資訊,進一步豐富實體向量的語義。
此外,知識的注入依賴於實體的對齊,儘管注入的實體知識經過表示學習後也攜帶實體的關聯資訊,但如果能使用如關係等更多的注入載體,那麼就能夠為預訓練模型注入關係向量,增加註入知識的密度。
以上就是筆者對論文的解讀,具體的程式碼將會在下篇文章中解讀。
參考文獻:
[1]ERNIE:Enhanced Representation through Knowledge Integration
https://arxiv.org/abs/1904.09223
[2]KEPLER: A Unified Model for Knowledge Embedding and Pre-trained Language Representation
https://direct.mit.edu/tacl/article/doi/10.1162/tacl_a_00360/98089/