全國知識圖譜與語義計算大會競賽冠軍DeepBlueAI團隊技術分享!

  • 2020 年 11 月 19 日
  • AI

作者 | 羅志鵬
編輯 | 陳大鑫

全國知識圖譜與語義計算大會(CCKS 2020) 11月12日至15日在江西南昌舉行,CCKS是(China Conference on Knowledge Graph and Semantic Computing)由中國中文資訊學會語言與知識計算專委會定期舉辦的全國年度學術會議。

CCKS已經成為中國知識圖譜、語義技術、語言理解和知識計算等領域的核心會議。CCKS 2020舉辦的各項挑戰賽公布了最終結果,來自深蘭科技北京AI研發中心的DeepBlueAI團隊斬獲了3項冠軍和1項亞軍,並獲得了一項技術創新獎。

我們可以通過這篇文章了解下DeepBlueAI 團隊在『新冠知識圖譜構建與問答評測(一)新冠百科知識圖譜類型推斷』賽題中的解決方案。

1

賽題介紹

「CCKS 2020:新冠知識圖譜構建與問答評測(一)新冠百科知識圖譜類型推斷」是由中國中文資訊學會語言與知識計算專業委員會主辦,比賽任務為「實體類型推斷」,即對給定的實體,預測實體所屬的類別。

比賽任務

本評測任務圍繞新冠百科知識圖譜構建中的實體類型推斷(Entity Type Inference)展開。
評測從實體百科(包括百度百科、互動百科、維基百科、醫 學百科)頁面出發,從給定的數據中推斷相關實體的類型。評測本身不限制各參賽隊伍使用的模型、演算法和技術。允許使用外部數據,但該數據必須是公開的。
輸入
  1. entity.txt:需要進行類型預測的所有實體,其中包含相關實體和噪音實體。
  2. entity_pages_1.xml,entity_pages_2.xml,entity_pages_3.xml,entity_pages_4.xml:分別來自百度百科,互動百科,中文維基百科,醫學百科的實體頁面內容。保證 entity.txt 中的任意實體至少被一個頁面文件所涵蓋。實體頁面文件中包含類型推斷可能會用到的名稱、標籤、簡介等資訊。此處還可以使用其他公開數據集。
  3. type.txt:包含 7 個目標類型,分別是病毒、細菌、疾病、藥物、醫學專科、檢查科目、癥狀(非目標類型輸出為 NoneType)。
輸出
entity_type.txt:實體及預測的實體類型,每行一個「實體\t類型」對。注意不要包含類型不在給定的7種類型當中的實體。
評測指標
本任務採用精確率(Precision, P)、召回率(Recall, R)、F1值(F1-measure, F1)來評估效果。設 A 為參賽隊伍輸出文件中的所有實體-類型對的集合,G 為評測方標註文件中的所有實體-類型對的集合,相關計算公式如下:

團隊成績

最終榜單

比賽難點

實體類型判斷總體任務明確,難點主要來自於數據集本身的幾個特點:
  1. 實體文本較短。給定實體平均長度為7;實體文本較短導致缺乏足夠的資訊,很多實體類型難以確定,其中真菌細菌名稱近似,十分難以區分。
  2. 同一實體可能屬於多個類型。同一實體在不同的百科數據中屬於不同的類別,但最終只需要一個類別,訓練集中如何確定其類別會影響測試集中的偏向。
  3. 類別不平衡。7個類別中,癥狀、疾病、藥物佔了大多數,其餘類別對應的實體極少。
2

競賽方案

類型資訊在知識庫中具有非常高的價值,實體類型推斷的研究一直是領域的熱點。實體類型推斷根據給定實體推斷其類別,本質是一個單標籤多分類問題,每個實體被分配一個給定的類別,如果不屬於任何一個類別,則指定為NoneType;
針對本數據集的特點,我們設計了一個多分類模型和多個二分類模型及有規則的後處理來完成。
首先採用BERT或Roberta做編碼獲得文本對應的編碼,然後接多分類器得到其類別,針對NoneType設計一個二分類器,針對細菌真菌設計了一個二分類器。
在數據方面,額外引入:中文癥狀庫 、通用知識圖譜(ownthink)、新冠開放知識圖譜.百科、微生物物種編目資料庫新冠知識圖譜構建與問答評測(四)新冠知識圖譜問答評測數據等共5個公開數據集作為官方數據的補充。
最終將以上三個模型的判斷結果結合關鍵詞特徵進行融合得到最終的分類結果,最終取得了第一名。

數據處理

訓練集共包含5000個實體,驗證集19999個實體,測試集14320個實體;給定的百科和映入的外部數據處理後作為實體的描述輸入。
輸入:實體+實體描述(無描述則只使用實體即可)
輸出:實體類別

模型

實體分類模型是主要基於 BERT 模型,將實體+描述文本(不存在則不加描述)作為輸入文本,經過 BERT 模型編碼,取 CLS 位置的特徵向量,經過全連接層,最後 Softmax 激活得到實體的類別概率分布。
模型結構如下圖:
圖1
其中的主要優化有:
  1. 描述文本融入。測試集中很多實體沒有對應的文本,為了解決這個問題,在訓練時,同時使用了僅實體和實體+描述兩種輸入,這樣一來,對每一個實體,我們構造了兩個樣本。只使用實體作為輸入時,可以訓練模型有效的提取關鍵字資訊;使用描述文本時,可以引入額外資訊;通過這樣的樣本構建方式,也相當於做了數據增強,增加了訓練集數據量。
  2. 對抗學習。它在訓練中構造了一些對抗樣本加入到原數據集中,希望增強模型對對抗樣本的魯棒性。我們在模型訓練的時候加入了對抗學習,所使用的對抗學習方法是 Fast Gradient Method(FGM)。
  3. 多模型融合。針對數據集的特點,我們設計了3個模型,一個多分類模型,一個NoneType分類模型,一個細菌真菌分類模型。每個模型使用5折交叉驗證,最終結果取平均。再對三個模型做人工規則融合。

補充資訊引入

官方給定數據集中描述缺失過多,難以判斷其類型,其中驗證集缺失19999個實體,官方給定百科缺失12302個實體的描述;為了解決這個問題,我們在官方數據集①之外,另外使用了②③④⑤⑥等5個公開數據集,引入額外數據集後,測試集上實體描述文本缺失從12302降低到805,驗證集缺失從12302降低到330,極大提升了分類準確率。
引入的外部數據集如下表:
編號
數據集
對應模型
官方數據集 CCKS 2020:新冠知識圖譜構建與問答評測(一)新冠百科知識圖譜類型推斷
CCKS 2020:新冠知識圖譜構建與問答評測(四)新冠知識圖譜問答評測
NoneType二分類模型
中文癥狀庫 – dsc.nlp-bigdatalab.org.ttl
多分類模型
通用知識圖譜(ownthink)
多分類模型
新冠開放知識圖譜.百科 – wiki-covid-19-v0.3.json
多分類模型
微生物物種編目資料庫
細菌真菌二分類模型
表1

類別不均衡解決

訓練集中,各類別實體數目分布如下:
藥物
癥狀
疾病
檢查科目
病毒
醫學專科
細菌
NoneType
2550
867
1267
147
10
7
52
100
表2
可以看出,藥物、癥狀、疾病三個類別實體佔了絕大部分;剩下幾個類別中,通過對預測錯誤實體的分析,檢查科目、病毒、醫學專科幾個類別可以通過關鍵詞做修正;細菌和NoneType則無法通過關鍵詞修正。主要由於細菌和真菌名字較為接近,而NoneType可能來自各個類別。
針對細菌真菌難以區分,使用表1的數據⑥訓練一個判斷細菌真菌的二分類器。針對NoneType無法正確識別,使用表1數據集②的實體作為NoneType與原始數據集做3:1取樣,訓練一個判斷實體是否為NoneType的二分類器。

後處理

對以上三個模型,每個模型分別使用BERT、Roberta和Ernie三個預訓練模型作為encoder,對預測結果取平均得到各個模型的預測結果。得到三個模型的最終結果後,我們手動嘗試了幾個組合規則,取效果最好的作為最終的組合結果。
具體為:當主分類器中NoneType類別的概率值排在前兩位時,使用NoneType分類器的結果作為最終結果。當主分類器類別為細菌時,最終分類採用細菌真菌分類器的結果。真菌對應類別為NoneType。對病毒、檢查科目自定義了部分關鍵字規則。經過組合,得到最終的預測結果。

比賽結果

最終測試集共14321個實體,輸出其對應的類別。每個實體輸入只有實體名,然後根據實體名到數據集中匹配描述文本,將實體名與描述文本作為輸入,不存在描述的直接用實體名作為輸入。
各個模型的效果如下:
模型
數據(對應表1)
Test F1
BERT多分類
官方數據①
0.9781
BERT多分類
①③
0.9831
BERT多分類+規則後處理
①③⑤
0.9930
BERT多分類+NoneType二分類+規則後處理
①②③⑤
0.9957
BERT多分類+NoneType二分類+細菌真菌二分類+規則後處理
①②③⑤⑥
0.9975
BER+對抗訓練+多分類+NoneType二分類+細菌真菌二分類+規則後處理
①②③④⑤⑥
0.9992

可以看到數據集的引入和幾個二分類模型均取得了較大提升。
3

總結與討論

實體類型判斷作為一個常規任務,我們針對數據集的特點做了較多的探索;使用BERT、對抗學習、模型融合等方法極大提高了類別判斷的準確率,最終獲得比賽的第一名。
針對這種較為常規的任務,除了選擇一個好的預訓練模型之外,對任務數據的理解分析也至關重要。
針對效果較差的類別或樣本做一些探索、數據特點分析,構造一些特徵通常會取得不錯的效果。

參考文獻:

   1、Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[J]. arXiv preprint arXiv:1810.04805, 2018.
    2、Liu Y, Ott M, Goyal N, et al. Roberta: A robustly optimized bert pretraining approach[J]. arXiv preprint arXiv:1907.11692, 2019.
    3、Miyato, T., Dai, A.M., & Goodfellow, I.J. (2016). Virtual Adversarial Training for Semi-Supervised Text Classification. ArXiv, abs/1605.07725.
    4、王夢婕.華東理工大學. 中文癥狀庫. //www.openkg.cn/dataset/symptom-in-chinese (2018-03-26)
     5、Yener. 通用知識圖譜(ownthink) //openkg.cn/dataset/ownthink (2019-09-08)
     6、王昊奮、漆桂林.新冠開放知識圖譜.百科. //www.openkg.cn/dataset/covid-19-baike (2020-06-07)
    7、劉彭濤, 勞一美, 孫清嵐, 馬俊才. 微生物物種編目資料庫. V1. Science Data Bank. //www.dx.doi.org/10.11922/sciencedb.6.  (2015-07-16).
    8、CCKS 2020:新冠知識圖譜構建與問答評測(四)新冠知識圖譜問答評測//www.biendata.xyz/competition/ccks_2020_7_4/data/
    9、Zhang, Z., Han, X., Liu, Z., Jiang, X., Sun, M., & Liu, Q. (2019).       ERNIE: Enhanced Language Representation with Informative Entities. ACL.

點擊閱讀原文,直達ICLR小組!