BERT+知识图谱:北大-腾讯联合推出知识赋能的K-BERT模型
作者丨周鵬
單位丨騰訊
研究方向丨自然語言處理、知識圖譜
背景
近兩年,谷歌 BERT 等無監督預訓練語言表示模型在多個 NLP 任務中均取得了可喜的成果。?這些模型在大規模開放域語料庫上進行了預訓練,以獲得通用的語言表示形式,然后在特定的下游任務中進行了微調,以吸收特定領域的知識。但是,由于預訓練和微調之間的領域差異,這些模型在知識驅動的任務上表現不佳。?例如,在醫療領域處理電子病歷(EMR)分析任務時,經過 Wikipedia 預訓練的 Google BERT 無法充分發揮其價值。
當閱讀特定領域文本時,普通人只能根據其上下文理解單詞,而專家則可以利用相關領域知識進行推斷。目前公開的 BERT、GPT、XLNet 等預訓練模型均是在開放領域語料預訓練得到的,其就像一個普通人,雖然能夠讀懂通用文本,但是對于專業領域文本時卻缺乏一定的背景知識。
解決這一問題的一個方法是使用專業語料預訓練模型,但是預訓練的過程是十分耗時和耗計算資源的,普通研究者通常難以實現。例如,如果我們希望模型獲得“撲熱息痛可以治療感冒”的知識,則在訓練語料庫中需要大量同時出現“撲熱息痛”和“感冒”的句子。不僅如此,通過領域語料預訓練的方式引入專家知識,其可解釋性和可控性較差。
除了以上策略,我們還能做些什么來使模型成為領域專家?知識圖譜(Knowledge Graph,KG)是一個很好的解決方案。
隨著知識細化為結構化形式,許多領域的 KG 都被構建起來,例如,醫學領域的 SNOMED-CT,中國概念的 HowNet。如果 KG 可以集成到預訓練語言模型中,它將為模型配備領域知識,從而提高模型在特定領域任務上的性能,同時降低大規模的預訓練成本。此外,知識圖譜具有很高的可解釋性,因為可以手動編輯注入的知識。
目前,將知識圖譜與語言模型結合的研究有哪些呢?最具代表性的就是清華的 ERNIE,其使用一個獨立的 TransE 算法獲得實體向量,然后再將實體向量嵌入到 BERT 中。清華 ERNIE 的工作很有借鑒意義,但是仍然存在一些可改進的地方,例如:
1. 知識圖譜中的關系信息沒有被用到;
2. 實體向量和詞向量是使用不同的方法得到的,可能存在空間的不一致;
3. 對于實體數量巨大的大規模知識圖譜,實體向量表將占據很大的內存。
另外,將過多的知識引入到語言表示模型中,可能會改變原來句子的含義,本文稱為知識噪聲問題。為了解決以上問題,本文的研究人員嘗試不區分實體向量和詞向量,使用統一的向量空間將知識注入語言表示模型中。
方法
基于以上想法,研究人員對 Google BERT 進行了一定的改進,提出了 K-BERT 模型。下面介紹 K-BERT 的具體思想,圖 1 是 K-BERT 的總體架構圖。
▲?圖1.?K-BERT總體架構圖
當一個句子“Tim Cook is currently visiting Beijing now”輸入時,首先會經過一個知識層(Knowledge Layer),知識層將知識圖譜中關聯到的三元組信息(Apple-CEO-Tim Cook、Beijing-capital-China 等)注入到句子中,形成一個富有背景知識的句子樹(Sentence tree)。
可以看出,通過知識層,一個句子序列被轉換成了一個樹結構或圖結構,其中包含了句子中原本沒有的背景知識,即我們知道“蘋果的 CEO 現在在中國”。
得到了句子樹以后,問題出現了。傳統的 BERT 類模型,只能處理序列結構的句子輸入,而圖結構的句子樹是無法直接輸入到 BERT 模型中的。如果強行把句子樹平鋪成序列輸入模型,必然造成結構信息的丟失。在這里,K-BERT 中提出了一個很巧妙的解決辦法,那就是軟位置(Soft-position)和可見矩陣(Visible Matrix)。下面我們詳細看看具體的實現方法。
眾所周知,在 BERT 中將句子序列輸入到模型之前,會給句子序列中的每個 token 加上一個位置編碼,即 token 在句子中的位次,例如“Tim(0) Cook(1) is(2) currently(3) visiting(4) Beijing(5) now(6)”。如果沒有位置編碼,那 BERT 模型是沒有順序信息的,相當于一個詞袋模型。
在 K-BERT 中,首先會將句子樹平鋪,例如圖 2 中的句子樹平鋪以后是“[CLS] Tim Cook CEO Apple is currently visiting Beijing capital China is_a City now”。
▲?圖2.?軟位置(Soft-position)和硬位置(Hard-position)
顯然,平鋪以后的句子是雜亂不易讀的,K-BERT 通過軟位置編碼恢復句子樹的順序信息,即“[CLS](0) Tim(1) Cook(2) CEO(3) Apple(4) is(3) visiting(4) Beijing(5) capital(6) China(7) is_a(6) City(7) now(6)”,可以看到“CEO(3)”和“is(3)”的位置編碼都 3,因為它們都是跟在“Cook(2)”之后。
只用軟位置還是不夠的,因為會讓模型誤認為 Apple (4) 是跟在 is (3) 之后,這是錯誤的。K-BERT 中最大的亮點在于?Mask-Transformer,其中使用了可見矩陣(Visible matrix)將圖或樹結構中的結構信息引入到模型中。
回顧一下 BERT 中 Self-attention,一個詞的詞嵌入是來源于其上下文。Mask-Transformer 核心思想就是讓一個詞的詞嵌入只來源于其同一個枝干的上下文,而不同枝干的詞之間相互不影響。這就是通過可見矩陣來實現的,圖 2 中的句子樹對應的可見矩陣如圖 3 所示,其中一共有 13 個 token,所以是一個 13*13 的矩陣,紅色表示對應位置的兩個 token 相互可見,白色表示相互不可見。
▲?圖3.?可見矩陣(Visible matrix)
有了可見矩陣以后,可見矩陣該如何使用呢?其實很簡單,就是?Mask-Transformer。對于一個可見矩陣 M,相互可見的紅色點取值為 0,相互不可見的白色取值為負無窮,然后把 M 加到計算 self-attention 的 softmax 函數里就好,即如下公式。
以上公式只是對 BERT 里的 self-attention 做簡單的修改,多加了一個 M,其余并無差別。如果兩個字之間相互不可見,它們之間的影響系數 S[i,j] 就會是 0,也就使這兩個詞的隱藏狀態 h 之間沒有任何影響。這樣,就把句子樹中的結構信息輸入給 BERT 了。
▲?圖4.?[Apple]只能通過[Cook]間接作用于[CLS],降低了知識噪聲的影響
總結一下,Mask-Transformer?接收句子樹作為輸入的過程如圖 5。
▲?圖5.?句子樹的輸入過程
其實就是對應了原論文中的結構圖,如圖 6,對于一個句子樹,分別使用 Token 序列保存內容,用可見矩陣保存結構信息。
▲?圖6.?句子樹轉化為Embedding representation和可見矩陣
從圖 6 中可以看出,除了軟位置和可見矩陣,其余結構均與 Google?BERT 保持一致,這就給 K-BERT 帶來了一個很好的特性——兼容 BERT 類的模型參數。K-BERT 可以直接加載 Google BERT、Baidu ERNIE、Facebook RoBERTa 等市面上公開的已預訓練好的 BERT 類模型,無需自行再次預訓練,給使用者節約了很大一筆計算資源。
實驗結果
下面我們來看看 K-BERT 的實驗效果。首先,本文采用了三個知識圖譜,分別是 CN-DBpedia、知網(HowNet)和自建的醫學知識圖(MedicalKG)。用于測評的任務分為兩類,分別是開放領域任務和專業領域任務。開放領域任務一共有 8 個,分別是 Book review、Chnsenticorp、Shopping、Weibo、XNLI、LCQMC、NLPCC-DBQA、MSRA-NER,實驗結果如下表。
可以看出,K-BERT 相比于 Google BERT,在開放領域的任務上有一點微小的提升,但是提升不是很明顯。可能的原因在于開放領域的任務并不需要背景知識。
為了測試在需要“背景知識”的任務上的效果,研究者使用了四個特定領域的任務,分別是金融問答、法律問答、金融實體識別和醫學實體識別。實驗效果見下圖。
可以看出,在特定領域任務上的表現還是不錯的,這些特定領域任務對背景知識的要求較高。總體而言,知識圖譜適合用于提升需要背景知識的任務,而對于不需要背景知識的開放領域任務往往效果不是很顯著。
目前,本工作已被?AAAI-2020?收錄。研究者還指出,目前 K-BERT 還存在很多問題需要被解決,例如:當知識圖譜質量過差時如何提升模型的魯棒性;在實體關聯時如何剔除因一詞多義造成的錯誤關聯。研究者希望將結構化的知識圖譜引入到 NLP 社區中,目前還需要做很多努力。K-BERT 還不夠完善,將來還會不斷更新,歡迎大家關注。
后記
K-BERT的代碼已開源,論文原文和項目地址如下:?
論文地址:https://arxiv.org/abs/1909.07606v1?
項目地址:https://github.com/autoliuweijie/K-BERT?
如果你對自然語言處理、知識圖譜感興趣,希望從事這方面的研究,歡迎與我們聯系。?
聯系郵箱:rickzhou@tencent.com
聯系郵箱:nlpzhezhao@tencent.com
參考文獻
[1] Devlin, J.; Chang, M.-W.; Lee, K.; and Toutanova, K. 2018. BERT: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805.?
[2] Zhang, Z.; Han, X.; Liu, Z.; Jiang, X.; Sun, M.; and Liu, Q. 2019. ERNIE: Enhanced language representation with informative entities. arXiv preprint arXiv:1905.07129.?
[3] Xu, B.; Xu, Y.; Liang, J.; Xie, C.; Liang, B.; Cui, W.; and Xiao, Y. 2017. Cn-dbpedia: A never-ending chinese knowl- edge extraction system. International conference industrial, engineering and other applications applied intelligent sys- tems 428–438.?
[4] Dong, Z.; Dong, Q.; and Hao, C. 2006. Hownet and the computation of meaning.
點擊以下標題查看更多期內容:?
AAAI 2020?| 語義感知BERT(SemBERT)
從Word2Vec到BERT
近期值得讀的知識圖譜論文,這里幫你總結好了
后BERT時代的那些NLP預訓練模型
BERT的成功是否依賴于虛假相關的統計線索?
從三大頂會論文看百變Self-Attention
#投 稿 通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
???? 投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點擊 |?閱讀原文?| 下載論文 & 源碼
總結
以上是生活随笔為你收集整理的BERT+知识图谱:北大-腾讯联合推出知识赋能的K-BERT模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 偶像剪辑,一键获取:多模态联合建模的视频
- 下一篇: 视频预测领域有哪些最新研究进展?不妨看看