1
雷鋒網(wǎng)AI科技評論按:本文為上汽集團(tuán)人工智能實驗室祝凱華,戴安南,范雪麗向雷鋒網(wǎng)AI科技評論獨家投稿。本文的研究對象是“面向中文短文本的實體鏈指任務(wù)”,該任務(wù)擁有9萬條語句用于做實體識別和實體消歧。相應(yīng)論文在該評測中獲得top3。
全國知識圖譜與語義計算大會(CCKS)每年都會舉辦一些競賽評測。CCKS系列評測旨在為研究人員提供測試知識圖譜與語義計算技術(shù)、算法、及系統(tǒng)的平臺和資源,促進(jìn)國內(nèi)知識圖譜領(lǐng)域的技術(shù)發(fā)展,以及學(xué)術(shù)成果與產(chǎn)業(yè)需求的融合和對接。今年大會網(wǎng)址http://www.ccks2019.cn。
Abstract:實體識別與鏈指消歧,又稱為Entity recognition和Entity linking,是自然語言處理領(lǐng)域的基礎(chǔ)任務(wù)之一。針對百度發(fā)布的面向中文短文本的實體識別與鏈指比賽數(shù)據(jù)集,本論文首先采用了預(yù)訓(xùn)練的Bert來對短文本中的實體進(jìn)行提取,然后根據(jù)提取出的實體,采用DeepType來預(yù)測實體類型信息,DeepMatch對實體的上下文和知識庫進(jìn)行文本匹配,最后用DeepCosine來結(jié)合知識庫實體向量的預(yù)測及其他數(shù)值特征,比如流行度等弱消歧模型進(jìn)行融合進(jìn)而可以產(chǎn)生一個非常強(qiáng)的實體消歧預(yù)測結(jié)果。
為了更好的讓機(jī)器理解文本,機(jī)器常常需要識別文本中的實體,同時將文本中的實體與對應(yīng)的知識庫中的實體一一對應(yīng)。知識庫中的同名實體往往很多,因此就需要根據(jù)一些模型去做一些實體鏈指消歧工作。
在整個實體識別與鏈指消歧的過程中,常見的是把這個任務(wù)分成兩部分,即先進(jìn)行實體的識別,然后再進(jìn)行實體的消歧[1-3]。最近也有部分工作強(qiáng)調(diào)要用端到端的方式統(tǒng)一兩個任務(wù)[4]。最近基于語言模型的預(yù)訓(xùn)練模型變的越來越受歡迎,比如Bert[5],XLnet[6]等等。這種通過大數(shù)據(jù)預(yù)訓(xùn)練的方式產(chǎn)生的語言詞匯向量表征相比于傳統(tǒng)方法前進(jìn)了一大步。因此基于預(yù)訓(xùn)練模型的實體識別結(jié)果也提高了很多。得益于預(yù)訓(xùn)練模型強(qiáng)大的實體識別能力,本文因此采用兩步走的方式來進(jìn)行實體識別和鏈指消歧。因為實體識別的準(zhǔn)確率足夠高,因此對后面的消歧結(jié)果產(chǎn)生的False Positve樣本影響會小很多,同時可以降低聯(lián)合模型的計算空間。
命名實體識別任務(wù)多在識別文本中的事物的名稱,例如人名、地名和機(jī)構(gòu)名。本文主要在互聯(lián)網(wǎng)文本領(lǐng)域下處理命名識別,比如識別電影名稱、書名等等。以Bert預(yù)訓(xùn)練模型為基礎(chǔ)并引入CRF(條件隨機(jī)場)從文本中提取出標(biāo)注樣本的線性空間轉(zhuǎn)率概率。Bert模型采用了最新的參數(shù)優(yōu)化方案[7],通過這樣遷移權(quán)重和在訓(xùn)練樣本微調(diào)的方式訓(xùn)練,最后只需要兩輪訓(xùn)練模型就達(dá)到最優(yōu)效果。Bert結(jié)合CRF的實驗也遠(yuǎn)遠(yuǎn)超過了傳統(tǒng)的lstm+crf的實驗結(jié)果。盡管采用經(jīng)典字向量模型可以手動設(shè)計很多特征,比如pos特征,詞特征等等,這些特征確實幫助模型達(dá)到更好的輸入表征效果。但是Bert等超過規(guī)模預(yù)訓(xùn)練的方式得到的字向量表征在實驗中比傳統(tǒng)精細(xì)設(shè)計方法的效果更好,而且模型結(jié)構(gòu)設(shè)計更加簡便。因此未來的深度學(xué)習(xí)模型極有可能都是建立在預(yù)訓(xùn)練語言模型基礎(chǔ)上構(gòu)建。
實體鏈指消歧是指在知識庫中找到候選的正確實體描述。百度CCKS2019數(shù)據(jù)集多為互聯(lián)網(wǎng)搜索文本。在這些文本中出現(xiàn)了大量的作品名稱,這些作品有可能是小說,有可能是改編后的電影或者電視劇,如表1所示。實體鏈指的目的就是根據(jù)上下文找出最有可能的知識庫實體。最近有不少這方面的優(yōu)秀工作。比如Phong Le[8] 強(qiáng)調(diào)了上下文其他實體對該實體消歧的幫助是很重要的。Jonathan Raiman[9]則依靠建立DeepType的系統(tǒng)來達(dá)到消歧的目的。這部分工作本文也借鑒了其中的設(shè)計思路。Yorktown Heights[10]則設(shè)計了一個很好的匹配上下文和候選實體上下文的算法來幫助消歧。在候選實體的向量表征方面,Xiao Huang[11]設(shè)計一個基于實體向量尋找的知識圖譜問答系統(tǒng),里面尋找候選實體的時候利用了實體間的距離來作為輔助特征。本文也利用了這個信息來幫助實體消歧,主要提取實體向量,同時用候選實體向量和當(dāng)前向量的余弦距離作為重要的消歧因子,稱為DeepCosine。
表1. 文本“這個夏天去哪里玩比較好”中“夏天”對應(yīng)的候選實體
候選實體序號 | 候選實體描述 |
1 | 《夏天是2008年上映的德國愛情電影,麥克馬茨克執(zhí)導(dǎo)…… |
2 | 《夏天》是李榮浩創(chuàng)作的歌曲,發(fā)行于2010年7月…… |
3 | 夏天,四季中的第二個季節(jié),英語為summer…… |
4-53 | 其他49個名稱為夏天的實體描述 |
本文的主要工作和創(chuàng)新就是在于充分利用了實體的上下文信息和知識庫信息,構(gòu)建了DeepType、DeepMatch、DeepCosine三種模型來從三個不同方面進(jìn)行實體消歧,充分利用了候選實體類型、上下文相關(guān)和候選實體向量這三個方面的信息。這些模型單個的效果并不完美,但是結(jié)合在一起之后消歧的能力便大大增強(qiáng)。
本文設(shè)計和比較了兩種實體識別的模型即經(jīng)典方法word embedding+bilstm+crf和基于大規(guī)模語料預(yù)訓(xùn)練的方法Bert(finetuned)+crf。實體的編碼方式采用BIESO的方式編碼。單個字實體為S,非實體為O,連續(xù)片段則用BIE進(jìn)行標(biāo)注。圖1(A)是我們的經(jīng)典方法示意圖,其中的分詞使用的是開源的Jieba模型。圖1(B)則是使用了BERT模型進(jìn)行預(yù)訓(xùn)練的方法。
圖1. 命名實體識別模型的設(shè)計。(A) 基于經(jīng)典方法設(shè)計的實體識別模型,字、詞向量采用了基于百度百科的300維詞向量1。詞向量特征為該字對應(yīng)的分詞結(jié)果中的詞向量,同理詞性特征為隨機(jī)生成的100維向量;(B) 基于BERT Finetune[5]的識別實體模型。在原來BERT的基礎(chǔ)上,增加了一層CRF層來實現(xiàn)更好的標(biāo)注學(xué)習(xí)。
實體鏈指消歧的模型設(shè)計必然要和知識庫或者實體庫的結(jié)構(gòu)和內(nèi)容密切相關(guān)。本文所使用的知識庫中的結(jié)構(gòu)如圖2所示。每個實體會有一個‘subject_id’字段,為該實體在知識庫中唯一id?!畉ype’字段表示該實體類型?!甈redicate’中摘要則為介紹該實體的一段話,最后該知識庫還會有其他屬性信息表示該實體。圖2只展示了部分實體屬性信息。
圖2. 知識庫中實體結(jié)構(gòu)分布。
對于輸入的文本“這個夏天去哪里玩比較好”,我們將此文本和所有候選實體一一配對。從中找出正確的配對的過程是一個二分類問題。因為輸入語句上下文對實體消歧有很大的幫助[8],因此本文構(gòu)建了一個DeepMatch模型來匹配輸入語句的上下文和候選實體的說明語句。候選實體的說明語句采用了摘要中的第一句話作為該候選實體的說明。采用的模型設(shè)計結(jié)構(gòu)則是參考經(jīng)典的ESIM[12]架構(gòu)進(jìn)行改進(jìn)。如圖3。其中輸入語句和摘要文本中第一句話的encoder是基于百度百科的字向量。
圖3. DeepMatch模型結(jié)構(gòu)示意圖
DeepMatch模型中的Numerical Features為數(shù)值特征。該數(shù)值特征是人為提取的一些特征,其中重要的幾個特征是歷史點擊率、該語句中其他實體是否在候選實體的摘要中、摘要的長度(類比于流行度)等。
Jonathan Raiman[9]設(shè)計了一個Neural Type模型指導(dǎo)實體的消歧。文章中很重要的一個觀點就是當(dāng)我們知道了候選實體的類型之后,這個消歧的任務(wù)便被解決得差不多了。因此本文針對知識庫中的‘type’字段設(shè)計了一個DeepType的預(yù)測系統(tǒng)。即根據(jù)訓(xùn)練集中已有的正確標(biāo)注樣本,我們可以知道該實體的類型是哪種。最終目的就是輸入一句話并且給定潛在實體,該DeepType系統(tǒng)要能夠預(yù)測出這個實體的類型。
DeepType模型的設(shè)計思路見圖4。輸入語句經(jīng)過Bert獲取到上下文相關(guān)字向量后,提取出實體區(qū)域(Entity Span)中第一個字和最后一個字的向量連接在一起,最后進(jìn)行全連接(Dense)輸出到各個候選類型進(jìn)行多分類。分類層最后經(jīng)過softmax歸一化后取交叉熵作為損失函數(shù)。
圖4. DeepType模型對實體的類型進(jìn)行預(yù)測
知識庫實體向量的表征對知識庫中實體的識別至關(guān)重要。類似OpenKE[13]的工具對于幫助生成實體向量很有幫助。本文所使用的文本雖然具備一定的三元組結(jié)構(gòu),但是該三元組的末段即賓語結(jié)構(gòu)部分并不常常是一個實體,而是一段描述文本。因此為了獲得每個知識庫中的實體表征,本文采用gensim中的word2vector方式,將知識庫中的每個三元組,即(subject,predicate,object)都當(dāng)成單獨的一句話。Subject部分則用‘subject_id’代替形成一個完整的token。如下圖5所示。最后生成的’33119’對應(yīng)的詞向量即被認(rèn)為是該實體的實體向量。
圖5.訓(xùn)練實體向量的數(shù)據(jù)準(zhǔn)備形式
DeepCosine模型結(jié)構(gòu)和DeepType的模型結(jié)構(gòu)類似,參見圖6。他們最后一層的目標(biāo)不同,不是原先的分類模型而變成了如今的回歸模型,回歸目標(biāo)就是該實體對應(yīng)的實體向量(Entity Embedding)。損失函數(shù)也變?yōu)橛嘞揖嚯x損失。
圖6. DeepCosine模型的設(shè)計思路
本文從三個不同方面刻畫了實體和候選實體的相關(guān)性。因此最后需要通過模型融合(stacking)的方式來結(jié)合這三種特征以及其他一些數(shù)值特征來幫助模型進(jìn)行消歧。最后二分類預(yù)測模型采用是lightgbm[14]這種梯度提升樹。DeepType模型預(yù)測自身形成的特征是實體類型和候選實體類型的交叉熵?fù)p失函數(shù)(Type loss)。DeepMatch預(yù)測自身生成的特征是實體和候選實體的匹配程度(0-1)。DeepCosine預(yù)測自身生成的特征則是實體和候選實體的向量的余弦距離。結(jié)合這三個特征和其他數(shù)值特征比如歷史點擊率,摘要的長度等,同時對這些特征相對于實體進(jìn)行排序,得到他們的排序特征。這些特征工程完成后由lightgbm樹模型輸出他們的二分類預(yù)測結(jié)果。
實體識別的模型結(jié)構(gòu)見圖1。本文分別用A/B兩種方法進(jìn)行了實驗。實驗數(shù)據(jù)為百度CCKS2019的9萬數(shù)據(jù)集。隨機(jī)取其中1萬作為我們實驗的驗證集,剩下的8萬數(shù)據(jù)用來訓(xùn)練。實驗結(jié)果如下表格2。NIL表示識別到的實體不在知識庫中,受限于知識庫的規(guī)模,會有相當(dāng)一部分實體不被知識庫包含。這部分實體會在后續(xù)的實體鏈指消歧中被去掉。從表格中可以看到基于Bert預(yù)訓(xùn)練的模型B相對于傳統(tǒng)方法提升了很多。在本文的實驗中,BERT模型的參數(shù)參考自文獻(xiàn)[7]。比如學(xué)習(xí)速率取2e-5,這樣的學(xué)習(xí)速率既可以避免災(zāi)難性遺忘,又可以很好的學(xué)習(xí)新數(shù)據(jù)的特征。本文的Bert模型學(xué)習(xí)了2個epoch就收斂至最佳效果。因此最后的實體識別模型采用的是全部訓(xùn)練數(shù)據(jù)訓(xùn)練2輪后的單模型。
表2. 兩種實體識別算法在測試集上的表現(xiàn)
F1值 | 含NIL | 去除NIL |
模型A | 0.8 | 0.82 |
模型B | 0.832 | 0.851 |
基于Bert的實體識別模型取得了很大的提升,但是仍然有一部分實體數(shù)據(jù)沒有被很好的識別出來。因此本文試圖對這些錯誤數(shù)據(jù)進(jìn)行錯例分析。表3中的錯例很好的代表了模型所有識別錯誤的情況。比如“藝術(shù)”這個詞在訓(xùn)練集中有一定概率被標(biāo)注,因此模型只能最大似然的估計這個詞是否需要標(biāo)注為實體,受限于標(biāo)注人員的標(biāo)注習(xí)慣,必然會有部分實體被認(rèn)為錯誤標(biāo)記。實體識別模型在訓(xùn)練的過程之中也是在學(xué)習(xí)標(biāo)注人員的標(biāo)注習(xí)慣。
表3. 實體識別結(jié)果錯例分析
句子 | Bert模型預(yù)測結(jié)果 | 標(biāo)注結(jié)果 |
歌曲《鄉(xiāng)音鄉(xiāng)情》藝術(shù)分析 | [歌曲,鄉(xiāng)音鄉(xiāng)情,藝術(shù)] | [歌曲,鄉(xiāng)音鄉(xiāng)情] |
鄭保國:助推企業(yè)創(chuàng)新發(fā)展的動力之源 | [鄭保國,企業(yè)] | [鄭保國,企業(yè),動力] |
在實體鏈指消歧任務(wù)中,本文令每個候選實體和輸入語句中的實體一一配對,形成一個二分類問題。將9萬訓(xùn)練集一一配對后得到的總的二分類任務(wù)數(shù)據(jù)條目是150萬以上。這么大數(shù)據(jù)量的分類任務(wù)采用lightgbm這種高效的梯度提升樹來建模是非常有效的。對于這些分類任務(wù)中的特征,主要采用了DeepMatch、DeepCosine、DeepType三種模型做預(yù)測自身而生成。如圖7所示,先把數(shù)據(jù)分成5份。取其中四份數(shù)據(jù)和對應(yīng)的label訓(xùn)練一個模型model1。該模型對part5進(jìn)行預(yù)測,得到自身的預(yù)測部分pred5。同理,循環(huán)這個過程,分別得到5個模型對Part1-5進(jìn)行預(yù)測生成Pred1-5。這些預(yù)測結(jié)果連接在一起就可以構(gòu)成該模型形成的一個特征。同時用這五個模型對測試集進(jìn)行預(yù)測求平均,則得到測試集的特征。
圖7. Stack模型框架設(shè)計
這些特征在lightgbm的二分類模型下對應(yīng)的特征重要性如下圖8??梢钥吹紻eepMatch的模型重要性最高,重要性的評價指標(biāo)為樹模型中劃分過程中的該特征的平均增益。這些特征對應(yīng)的中文含義對應(yīng)表4。隨機(jī)選一折數(shù)據(jù)用作測試集,得到的實體消歧的f1=0.92,去掉DeepMatch特征后的f1值迅速下降到0.905。可見DeepMatch為模型的提高貢獻(xiàn)了很多指導(dǎo)價值。整個數(shù)據(jù)集的實體消歧的基線f1值是0.5(采用隨機(jī)選取的方式)。當(dāng)然我們可以看到,候選實體的摘要字?jǐn)?shù)也很有價值,我們認(rèn)為它相當(dāng)于流行度這個特征。因為摘要越完善,說明知識庫對它的維護(hù)越好,越說明該實體比較受重視。其他的特征比如一些排序特征也發(fā)揮了重大價值。因為大多數(shù)情況下正確的實體是從候選實體中選取一個作為標(biāo)準(zhǔn)答案,所以如果能把這個問題變成一個理想的排序問題的話相信結(jié)果也會進(jìn)一步提高。
圖8. lightgbm輸出的前9個特征重要性排行
表4. 前9個重要特征的中文解釋
m_rank_entity_common | 輸入語句中其他實體是候選實體摘要中的次數(shù)排序 |
m_rank_deep_match | 所有候選實體的DeepMatch預(yù)測值的排序 |
m_type_loss_mean | 所有候選實體的類型損失 |
DeepCosine | DeepCosine模型預(yù)測的余弦距離 |
m_deep_macth_mean | 所有候選實體的DeepMatch均值 |
mention_tfidf | 輸入實體的tfidf值 |
num_abstract_words | 候選實體的摘要字?jǐn)?shù),類比于流行度 |
DeepType Loss | DeepType模型的Type交叉熵?fù)p失 |
DeepMatch | DeepMatch模型預(yù)測的匹配程度 |
(雷鋒網(wǎng)小結(jié))本文對實體識別與實體鏈指消歧方面做了一些有益的探索。在輸入語句的詞匯表征上,再一次證明了Bert的預(yù)訓(xùn)練模型已經(jīng)超過經(jīng)典固定的word2vector方法。同時對于實體鏈指消歧這個任務(wù),本文綜合了當(dāng)前一些優(yōu)秀的解決方案,通過模型融合的方式極大地提高了實體消歧的準(zhǔn)確率。
與此同時,本文還有一些值得探索的地方有待完善。比如沒有充分利用好Bert預(yù)訓(xùn)練過程中的NSP(Next Sentence Prediction)任務(wù)。該任務(wù)中用大量語料訓(xùn)練了上下句相關(guān)性,此方法可以移植用于實體消歧。另外,實體消歧很多時候是排序問題。因此把某個實體的所有候選實體一一配對形成一個batch,然后最后輸出的時候在batch維度進(jìn)行softmax歸一化,這樣排序后的loss可能會有更好的解釋性。
參考文獻(xiàn)
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).
雷峰網(wǎng)特約稿件,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。