####好好好###多因子融合的實體識別與鏈指消歧

雷鋒網AI科技評論按:本文爲上汽集團人工智能實驗室祝凱華,戴安南,範雪麗向雷鋒網AI科技評論獨家投稿。本文的研究對象是“面向中文短文本的實體鏈指任務”,該任務擁有9萬條語句用於做實體識別和實體消歧。相應論文在該評測中獲得top3。

全國知識圖譜與語義計算大會(CCKS)每年都會舉辦一些競賽評測。CCKS系列評測旨在爲研究人員提供測試知識圖譜與語義計算技術、算法、及系統的平臺和資源,促進國內知識圖譜領域的技術發展,以及學術成果與產業需求的融合和對接。今年大會網址http://www.ccks2019.cn

 

Abstract:實體識別與鏈指消歧,又稱爲Entity recognition和Entity linking,是自然語言處理領域的基礎任務之一。針對百度發佈的面向中文短文本的實體識別與鏈指比賽數據集,本論文首先採用了預訓練的Bert來對短文本中的實體進行提取,然後根據提取出的實體,採用DeepType來預測實體類型信息,DeepMatch對實體的上下文和知識庫進行文本匹配,最後用DeepCosine來結合知識庫實體向量的預測及其他數值特徵,比如流行度等弱消歧模型進行融合進而可以產生一個非常強的實體消歧預測結果。

1   引言

爲了更好的讓機器理解文本,機器常常需要識別文本中的實體,同時將文本中的實體與對應的知識庫中的實體一一對應。知識庫中的同名實體往往很多,因此就需要根據一些模型去做一些實體鏈指消歧工作。

在整個實體識別與鏈指消歧的過程中,常見的是把這個任務分成兩部分,即先進行實體的識別,然後再進行實體的消歧[1-3]。最近也有部分工作強調要用端到端的方式統一兩個任務[4]。最近基於語言模型的預訓練模型變的越來越受歡迎,比如Bert[5],XLnet[6]等等。這種通過大數據預訓練的方式產生的語言詞彙向量表徵相比於傳統方法前進了一大步。因此基於預訓練模型的實體識別結果也提高了很多。得益於預訓練模型強大的實體識別能力,本文因此採用兩步走的方式來進行實體識別和鏈指消歧。因爲實體識別的準確率足夠高,因此對後面的消歧結果產生的False Positve樣本影響會小很多,同時可以降低聯合模型的計算空間。

命名實體識別任務多在識別文本中的事物的名稱,例如人名、地名和機構名。本文主要在互聯網文本領域下處理命名識別,比如識別電影名稱、書名等等。以Bert預訓練模型爲基礎並引入CRF(條件隨機場)從文本中提取出標註樣本的線性空間轉率概率。Bert模型採用了最新的參數優化方案[7],通過這樣遷移權重和在訓練樣本微調的方式訓練,最後只需要兩輪訓練模型就達到最優效果。Bert結合CRF的實驗也遠遠超過了傳統的lstm+crf的實驗結果。儘管採用經典字向量模型可以手動設計很多特徵,比如pos特徵,詞特徵等等,這些特徵確實幫助模型達到更好的輸入表徵效果。但是Bert等超過規模預訓練的方式得到的字向量表徵在實驗中比傳統精細設計方法的效果更好,而且模型結構設計更加簡便。因此未來的深度學習模型極有可能都是建立在預訓練語言模型基礎上構建。

實體鏈指消歧是指在知識庫中找到候選的正確實體描述。百度CCKS2019數據集多爲互聯網搜索文本。在這些文本中出現了大量的作品名稱,這些作品有可能是小說,有可能是改編後的電影或者電視劇,如表1所示。實體鏈指的目的就是根據上下文找出最有可能的知識庫實體。最近有不少這方面的優秀工作。比如Phong Le[8] 強調了上下文其他實體對該實體消歧的幫助是很重要的。Jonathan Raiman[9]則依靠建立DeepType的系統來達到消歧的目的。這部分工作本文也借鑑了其中的設計思路。Yorktown Heights[10]則設計了一個很好的匹配上下文和候選實體上下文的算法來幫助消歧。在候選實體的向量表徵方面,Xiao Huang[11]設計一個基於實體向量尋找的知識圖譜問答系統,裏面尋找候選實體的時候利用了實體間的距離來作爲輔助特徵。本文也利用了這個信息來幫助實體消歧,主要提取實體向量,同時用候選實體向量和當前向量的餘弦距離作爲重要的消歧因子,稱爲DeepCosine。

 

               表1. 文本“這個夏天去哪裏玩比較好”中“夏天”對應的候選實體

 

候選實體序號 候選實體描述
1

 

《夏天是2008年上映的德國愛情電影,麥克馬茨克執導……

2 《夏天》是李榮浩創作的歌曲,發行於2010年7月……
3

 

夏天,四季中的第二個季節,英語爲summer……

4-53 其他49個名稱爲夏天的實體描述

 

本文的主要工作和創新就是在於充分利用了實體的上下文信息和知識庫信息,構建了DeepType、DeepMatch、DeepCosine三種模型來從三個不同方面進行實體消歧,充分利用了候選實體類型、上下文相關和候選實體向量這三個方面的信息。這些模型單個的效果並不完美,但是結合在一起之後消歧的能力便大大增強。

2   命名實體識別

本文設計和比較了兩種實體識別的模型即經典方法word embedding+bilstm+crf和基於大規模語料預訓練的方法Bert(finetuned)+crf。實體的編碼方式採用BIESO的方式編碼。單個字實體爲S,非實體爲O,連續片段則用BIE進行標註。圖1(A)是我們的經典方法示意圖,其中的分詞使用的是開源的Jieba模型。圖1(B)則是使用了BERT模型進行預訓練的方法。

多因子融合的實體識別與鏈指消歧            

圖1. 命名實體識別模型的設計。(A) 基於經典方法設計的實體識別模型,字、詞向量採用了基於百度百科的300維詞向量1。詞向量特徵爲該字對應的分詞結果中的詞向量,同理詞性特徵爲隨機生成的100維向量;(B) 基於BERT Finetune[5]的識別實體模型。在原來BERT的基礎上,增加了一層CRF層來實現更好的標註學習。

3   多因子融合的實體鏈指消歧

實體鏈指消歧的模型設計必然要和知識庫或者實體庫的結構和內容密切相關。本文所使用的知識庫中的結構如圖2所示。每個實體會有一個‘subject_id’字段,爲該實體在知識庫中唯一id。‘type’字段表示該實體類型。‘Predicate’中摘要則爲介紹該實體的一段話,最後該知識庫還會有其他屬性信息表示該實體。圖2只展示了部分實體屬性信息。

 多因子融合的實體識別與鏈指消歧

                                                  圖2. 知識庫中實體結構分佈。

3.1   DeepMatch模型

       對於輸入的文本“這個夏天去哪裏玩比較好”,我們將此文本和所有候選實體一一配對。從中找出正確的配對的過程是一個二分類問題。因爲輸入語句上下文對實體消歧有很大的幫助[8],因此本文構建了一個DeepMatch模型來匹配輸入語句的上下文和候選實體的說明語句。候選實體的說明語句採用了摘要中的第一句話作爲該候選實體的說明。採用的模型設計結構則是參考經典的ESIM[12]架構進行改進。如圖3。其中輸入語句和摘要文本中第一句話的encoder是基於百度百科的字向量。

 

多因子融合的實體識別與鏈指消歧

                                                     圖3. DeepMatch模型結構示意圖

 

DeepMatch模型中的Numerical Features爲數值特徵。該數值特徵是人爲提取的一些特徵,其中重要的幾個特徵是歷史點擊率、該語句中其他實體是否在候選實體的摘要中、摘要的長度(類比於流行度)等。

3.2   DeepType模型

Jonathan Raiman[9]設計了一個Neural Type模型指導實體的消歧。文章中很重要的一個觀點就是當我們知道了候選實體的類型之後,這個消歧的任務便被解決得差不多了。因此本文針對知識庫中的‘type’字段設計了一個DeepType的預測系統。即根據訓練集中已有的正確標註樣本,我們可以知道該實體的類型是哪種。最終目的就是輸入一句話並且給定潛在實體,該DeepType系統要能夠預測出這個實體的類型。

DeepType模型的設計思路見圖4。輸入語句經過Bert獲取到上下文相關字向量後,提取出實體區域(Entity Span)中第一個字和最後一個字的向量連接在一起,最後進行全連接(Dense)輸出到各個候選類型進行多分類。分類層最後經過softmax歸一化後取交叉熵作爲損失函數。

 多因子融合的實體識別與鏈指消歧

                                              圖4. DeepType模型對實體的類型進行預測

3.3   DeepCosine模型

知識庫實體向量的表徵對知識庫中實體的識別至關重要。類似OpenKE[13]的工具對於幫助生成實體向量很有幫助。本文所使用的文本雖然具備一定的三元組結構,但是該三元組的末段即賓語結構部分並不常常是一個實體,而是一段描述文本。因此爲了獲得每個知識庫中的實體表徵,本文采用gensim中的word2vector方式,將知識庫中的每個三元組,即(subject,predicate,object)都當成單獨的一句話。Subject部分則用‘subject_id’代替形成一個完整的token。如下圖5所示。最後生成的’33119’對應的詞向量即被認爲是該實體的實體向量。

多因子融合的實體識別與鏈指消歧

                                                 圖5.訓練實體向量的數據準備形式

DeepCosine模型結構和DeepType的模型結構類似,參見圖6。他們最後一層的目標不同,不是原先的分類模型而變成了如今的迴歸模型,迴歸目標就是該實體對應的實體向量(Entity Embedding)。損失函數也變爲餘弦距離損失。

多因子融合的實體識別與鏈指消歧

                                                   圖6. DeepCosine模型的設計思路

3.4   模型融合

本文從三個不同方面刻畫了實體和候選實體的相關性。因此最後需要通過模型融合(stacking)的方式來結合這三種特徵以及其他一些數值特徵來幫助模型進行消歧。最後二分類預測模型採用是lightgbm[14]這種梯度提升樹。DeepType模型預測自身形成的特徵是實體類型和候選實體類型的交叉熵損失函數(Type loss)。DeepMatch預測自身生成的特徵是實體和候選實體的匹配程度(0-1)。DeepCosine預測自身生成的特徵則是實體和候選實體的向量的餘弦距離。結合這三個特徵和其他數值特徵比如歷史點擊率,摘要的長度等,同時對這些特徵相對於實體進行排序,得到他們的排序特徵。這些特徵工程完成後由lightgbm樹模型輸出他們的二分類預測結果。

4   實驗結果

4.1   命名實體識別

實體識別的模型結構見圖1。本文分別用A/B兩種方法進行了實驗。實驗數據爲百度CCKS2019的9萬數據集。隨機取其中1萬作爲我們實驗的驗證集,剩下的8萬數據用來訓練。實驗結果如下表格2。NIL表示識別到的實體不在知識庫中,受限於知識庫的規模,會有相當一部分實體不被知識庫包含。這部分實體會在後續的實體鏈指消歧中被去掉。從表格中可以看到基於Bert預訓練的模型B相對於傳統方法提升了很多。在本文的實驗中,BERT模型的參數參考自文獻[7]。比如學習速率取2e-5,這樣的學習速率既可以避免災難性遺忘,又可以很好的學習新數據的特徵。本文的Bert模型學習了2個epoch就收斂至最佳效果。因此最後的實體識別模型採用的是全部訓練數據訓練2輪後的單模型。

 

                                                    表2. 兩種實體識別算法在測試集上的表現

 F1值 含NIL 去除NIL  
  模型A 0.8 0.82
  模型B 0.832 0.851

 

基於Bert的實體識別模型取得了很大的提升,但是仍然有一部分實體數據沒有被很好的識別出來。因此本文試圖對這些錯誤數據進行錯例分析。表3中的錯例很好的代表了模型所有識別錯誤的情況。比如“藝術”這個詞在訓練集中有一定概率被標註,因此模型只能最大似然的估計這個詞是否需要標註爲實體,受限於標註人員的標註習慣,必然會有部分實體被認爲錯誤標記。實體識別模型在訓練的過程之中也是在學習標註人員的標註習慣。

表3. 實體識別結果錯例分析

句子 Bert模型預測結果 標註結果
歌曲《鄉音鄉情》藝術分析 [歌曲,鄉音鄉情,藝術] [歌曲,鄉音鄉情]
鄭保國:助推企業創新發展的動力之源 [鄭保國,企業] [鄭保國,企業,動力]

 

4.2   實體鏈指消歧

在實體鏈指消歧任務中,本文令每個候選實體和輸入語句中的實體一一配對,形成一個二分類問題。將9萬訓練集一一配對後得到的總的二分類任務數據條目是150萬以上。這麼大數據量的分類任務採用lightgbm這種高效的梯度提升樹來建模是非常有效的。對於這些分類任務中的特徵,主要採用了DeepMatch、DeepCosine、DeepType三種模型做預測自身而生成。如圖7所示,先把數據分成5份。取其中四份數據和對應的label訓練一個模型model1。該模型對part5進行預測,得到自身的預測部分pred5。同理,循環這個過程,分別得到5個模型對Part1-5進行預測生成Pred1-5。這些預測結果連接在一起就可以構成該模型形成的一個特徵。同時用這五個模型對測試集進行預測求平均,則得到測試集的特徵。

 

多因子融合的實體識別與鏈指消歧

 

圖7. Stack模型框架設計

這些特徵在lightgbm的二分類模型下對應的特徵重要性如下圖8。可以看到DeepMatch的模型重要性最高,重要性的評價指標爲樹模型中劃分過程中的該特徵的平均增益。這些特徵對應的中文含義對應表4。隨機選一折數據用作測試集,得到的實體消歧的f1=0.92,去掉DeepMatch特徵後的f1值迅速下降到0.905。可見DeepMatch爲模型的提高貢獻了很多指導價值。整個數據集的實體消歧的基線f1值是0.5(採用隨機選取的方式)。當然我們可以看到,候選實體的摘要字數也很有價值,我們認爲它相當於流行度這個特徵。因爲摘要越完善,說明知識庫對它的維護越好,越說明該實體比較受重視。其他的特徵比如一些排序特徵也發揮了重大價值。因爲大多數情況下正確的實體是從候選實體中選取一個作爲標準答案,所以如果能把這個問題變成一個理想的排序問題的話相信結果也會進一步提高。

多因子融合的實體識別與鏈指消歧

                                            圖8. lightgbm輸出的前9個特徵重要性排行

                                                    表4. 前9個重要特徵的中文解釋

m_rank_entity_common 輸入語句中其他實體是候選實體摘要中的次數排序
m_rank_deep_match 所有候選實體的DeepMatch預測值的排序
m_type_loss_mean 所有候選實體的類型損失
DeepCosine DeepCosine模型預測的餘弦距離
m_deep_macth_mean 所有候選實體的DeepMatch均值
mention_tfidf 輸入實體的tfidf值
num_abstract_words 候選實體的摘要字數,類比於流行度
DeepType Loss DeepType模型的Type交叉熵損失
DeepMatch DeepMatch模型預測的匹配程度

 

5   總結與討論

(雷鋒網(公衆號:雷鋒網)小結)本文對實體識別與實體鏈指消歧方面做了一些有益的探索。在輸入語句的詞彙表徵上,再一次證明了Bert的預訓練模型已經超過經典固定的word2vector方法。同時對於實體鏈指消歧這個任務,本文綜合了當前一些優秀的解決方案,通過模型融合的方式極大地提高了實體消歧的準確率。

與此同時,本文還有一些值得探索的地方有待完善。比如沒有充分利用好Bert預訓練過程中的NSP(Next Sentence Prediction)任務。該任務中用大量語料訓練了上下句相關性,此方法可以移植用於實體消歧。另外,實體消歧很多時候是排序問題。因此把某個實體的所有候選實體一一配對形成一個batch,然後最後輸出的時候在batch維度進行softmax歸一化,這樣排序後的loss可能會有更好的解釋性。

參考文獻

   1.    Piccinno F, Ferragina P. From TagME to WAT: a new entity annotator. InProceedings of the first international workshop on Entity recognition & disambiguation 2014 Jul 11 (pp. 55-62). ACM.

   2.    Daiber J, Jakob M, Hokamp C, Mendes PN. Improving efficiency and accuracy in multilingual entity extraction. InProceedings of the 9th International Conference on Semantic Systems 2013 Sep 4 (pp. 121-124). ACM.

   3.    Steinmetz N, Sack H. Semantic multimedia information retrieval based on contextual descriptions. InExtended Semantic Web Conference 2013 May 26 (pp. 382-396). Springer, Berlin, Heidelberg.

   4.    Kolitsas N, Ganea OE, Hofmann T. End-to-end neural entity linking. arXiv preprint arXiv:1808.07699. 2018 Aug 23.

   5.    Devlin J, Chang MW, Lee K, Toutanova K. Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805. 2018 Oct 11.

   6.    Yang Z, Dai Z, Yang Y, Carbonell J, Salakhutdinov R, Le QV. XLNet: Generalized Autoregressive Pretraining for Language Understanding. arXiv preprint arXiv:1906.08237. 2019 Jun 19.

   7.    Sun C, Qiu X, Xu Y, Huang X. How to Fine-Tune BERT for Text Classification?. arXiv preprint arXiv:1905.05583. 2019 May 14.

   8.    Le P, Titov I. Improving entity linking by modeling latent relations between mentions. arXiv preprint arXiv:1804.10637. 2018 Apr 27.

   9.    Raiman JR, Raiman OM. DeepType: multilingual entity linking by neural type system evolution. InThirty-Second AAAI Conference on Artificial Intelligence 2018 Apr 27.

10.    Sil A, Kundu G, Florian R, Hamza W. Neural cross-lingual entity linking. InThirty-Second AAAI Conference on Artificial Intelligence 2018 Apr 27.

11.    Huang X, Zhang J, Li D, Li P. Knowledge graph embedding based question answering. InProceedings of the Twelfth ACM International Conference on Web Search and Data Mining 2019 Jan 30 (pp. 105-113). ACM.

12.    Chen Q, Zhu X, Ling Z, Wei S, Jiang H, Inkpen D. Enhanced lstm for natural language inference. arXiv preprint arXiv:1609.06038. 2016 Sep 20.

13.    Han X, Cao S, Lv X, Lin Y, Liu Z, Sun M, Li J. Openke: An open toolkit for knowledge embedding. InProceedings of the 2018 Conference on Empirical Methods in Natural Language Processing: System Demonstrations 2018 Nov (pp. 139-144).

14.    Ke G, Meng Q, Finley T, Wang T, Chen W, Ma W, Ye Q, Liu TY. Lightgbm: A highly efficient gradient boosting decision tree. InAdvances in Neural Information Processing Systems 2017 (pp. 3146-3154).

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章