知識圖譜構建-關係抽取和屬性抽取

轉載自:丁香園大數據

前言

醫療知識圖譜構建離不開大量的三元組,而三元組的獲取除了先前文章介紹的IS-A上下位抽取,另一項就是關係抽取。關係抽取是資訊抽取領域中的重要任務之一,目的在於抽取文本中的實體對,以及識別實體對之間的語義關係。例如"瀰漫性肺泡出血易合併肺部感染"中,"瀰漫性肺泡出血"與"肺部感染"都是疾病,他們之間的關係是"疾病-合併症"。存在於海量醫療文本中的知識體系網路,可以為其他NLP技術(實體鏈接,query 解析,問答系統,資訊檢索等)提供可解釋性的先驗知識(知識表示)和推理。

與我們認識世界一樣,實體關係相當於事物與事物之間的聯繫,而屬性,則豐富了我們對事物本身的認識。同理,醫療文本中也存在描述實體屬性的資訊,如:"通過用手搔抓患癬的部位如足趾間,或與患者共用鞋襪、手套、浴巾、腳盆等是手癬的主要傳播途徑。"中,"手癬"的"傳播途徑"是"用手搔抓患……"。又如"發生丙肝的主要原因是丙型肝炎病毒"中,"丙肝"的"主要原因"是"丙型肝炎病毒"。通過例子可以發現,屬性名通常是一個名詞短語,但是屬性值可以是詞,也可以是句子,屬性的概念本身就具備較寬泛的靈活性,學界目前也沒有一個統一的標準,所以需要在具體落地場景中根據實際情況做相應的設計。

在醫療文本數據中進行資訊抽取,必須對醫療文本數據有一定的認識和分析,關係複雜,密度大,但基本無歧義,指代情況明顯,由於表達相對簡短,上下文資訊沒有固定模式,overlapping現象普遍存在,因此需要一定的醫療領域先驗知識和模型結構上的巧思。

醫療知識圖譜的構建不僅在於使用知識,完成數據的結構化,同時也需要賦予結構化數據在丁香園團隊的搜索,問答,推薦場景的可計算能力。我們希望能構建高品質的醫療知識圖譜,為各個業務場景賦能。

關係抽取方法綜述

目前主流的關係抽取主要分為兩種,兩類方法各有利弊:

  1. 遠監督標註數據下的關係分類
  • 優:利用遠監督思想得到訓練數據,可大大減輕標註工作;關係抽取準確率基本在85%以上。
  • 缺:實體識別的錯誤會傳遞到關係抽取過程中;同時,分開抽取,也沒有充分的利用實體資訊;負樣本的選取也是決定著模型好壞。
  1. 實體關係聯合抽取
  • 優:實體和關係抽取工作同時進行,關係抽取過程會充分利用實體資訊。
  • 缺:模型複雜;基於英文公共數據集,最好模型的準確率只有64%,即只要實體識別準確率在80以上,那麼遠監督的準確率就會高於聯合抽取模型。

當然上述結果都基於英文公共數據集,並且是非領域數據,因此接下來的將在模型總數的同時,展示各模型在中文醫療數據上的效果。

遠監督模型

由於遠監督模型假設實體識別是完全正確的,但實際中並非如此,因此在此給出基於2萬條數據的醫療命名實體識別模型效果:F1=81%。

  1. 《Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks》

這一篇工作是在Zeng[1]基礎上的擴展,將Fully Supervised 轉化為Distant Supervised。Distant supervised 會產生有大量噪音或者被錯誤標註的數據,直接使用supervised的方法進行關係分類,效果很差。原始方法大都是基於詞法、句法特徵來處理, 無法自動提取特徵。而且句法樹等特徵在句子長度邊長的話,正確率很顯著下降。因此文中使用Multi Instance Learning的at least one假設來解決第一個問題;在Zeng 2014 的CNN基礎上修改了Pooling的方式,解決第二個問題。

Input Layer為word embedding + position embedding,以往不同的是,Pooling層並沒有直接使用全局Max Pooling, 而是局部max pooling,把一個句子按實體位置切分成三部分,卷積之後對每一段取max pooling, 這樣可以得到三個值,相比傳統的max-pooling 每個卷積核只能得到一個值,這樣可以更加充分有效的得到句子特徵資訊。為了降低遠監督帶來的噪音問題,採用了Multi-Instance Learning。

我們使用遠監督標註的醫療實體關係數據進行實驗,同時,也嘗試了基於PCNN的其他改進模型,如將CNN換成更適合序列文本的BiLSTM,加入注意力機制的PCNN,效果將在文末展示。

  1. 《Deep Residual Learning for Weakly-Supervised Relation Extraction》

本文使用9層ResNet作為sentence encoder, 在不使用piecewise pooling 或者attention機制的情況下,性能和PCNN+ATT 接近。

  1. 《Classifying Relations by Ranking with Convolutional Neural Networks》

在Zeng[1]的CNN基礎上做的改進,最大的變化是損失函數,不再使用softmax+cross-entropy的方式,而是margin based的ranking-loss。

負樣本的選擇上, 並不是隨機選擇一個負標籤,而是選擇score最大的那個負標籤,這樣可以更好地將比較類似的兩種label分開。關於NA label的特殊處理,NA表示兩個entity沒有任何關係,屬於噪音數據,因此如果將這個噪音類別與其他有意義的類別同等看待的話,會影響模型的性能. 因此文中對NA類做了特殊處理。在train的時候,不再考慮NA這一類別, 對於NA的訓練數據,直接讓(1)式的第一部分為0即可。在predict的部分, 如果其他類別的score都是負數,那麼就分類為NA。實驗證明這個效果對整體的performance有提升。

使用Ranking loss,效果提升2%多,而且在沒有使用lexical-feature以及單窗口尺寸的情況下。有提升的原因可能是使用ranking loss可以更容易區分開一些易於分錯的類別,而softmax卻沒有這樣的功能,只可以增強正確類別的概率。使用僅僅兩個entity之間的words 可以在一定程度來替代position的作用,而且實現更簡單。

  1. 《RESIDE: Improving Distantly-Supervised Neural Relation Extraction using Side Information》

為了獲取更多的圖譜結構特徵和圖譜中的先驗知識,近幾年,大多研究集中於利用圖神經網路解決遠監督關係抽取任務。與傳統神經網路結構不同,RESIDE主要應用了Graph Convolution Networks,來彌補句法結構特徵,並利用已有知識圖譜中邊資訊額外監督,來提高遠程監督的可靠性,增加模型的可解釋性。

實驗結果

以下為遠模型在醫療文本中的關係抽取結果:

遠監督模型總結

word embedding + position embedding 成為輸入層的標配。Attention和多實例學習的作用明顯。圖神經網路兼顧了語義和句法結構。

聯合抽取模型

聯合抽取模型的設計目的是希望在進行命名實體識別的同時,讓實體資訊輔助關係抽取,從而實現兩個任務一體化。對於實體間關係的端到端(聯合)提取,現有的模型都是基於特徵的系統。這些模型包括結構化預測[2,3]、整數線性規劃[4,5]、卡片金字塔解析[6]和全球概率圖形模型[7,8]。其中,結構化預測方法在幾個語料的表現較好。

但每個模型的輸出效果是有所區別的,有些模型對預測結果比較嚴格,要求實體邊界,類型,以及關係類型都正確,才算預測成功;而有些模型則無需預測實體類型,只需識別實體的範圍即可,因此具體到應用中,可視情況而定。

  1. 《End-to-End Relation Extraction using LSTMs on Sequences and Tree Structures》

提出了一個新的端到端模型來提取實體之間的關係。模型使用雙向序列RNNs(從左到右和從右到左)和雙向樹結構(自下而上和自上而下)LSTM-RNNs,對實體和關係進行聯合建模。首先檢測實體,然後使用一個遞增解碼的nn結構提取被檢測實體之間的關係,並且使用實體和關係標籤共同更新nn參數。與傳統的端到端提取模型不同,模型在訓練過程中還包含兩個增強功能:實體預訓練(預培訓實體模型)和計劃抽樣,在一定概率內用gold標籤替換(不可靠)預測標籤。這些增強功能緩解了早期實體檢測低性能問題。

該模型主要由三個表示層組成:字嵌入層(嵌入層)、基於字序列的LSTM-RNN層(序列層)和基於依賴子樹的LSTM-RNN層(依賴層)。解碼期間,在序列層上建立基於貪心思想的從左到右的實體檢測,在依賴層上,利用dependency embedding和TreeLSTM中的實體對最小路徑,來輔助關係分類,依賴層堆疊在序列層上,這樣共享參數由實體標籤和關係標籤的決定。

SPTree模型的痛點之一是需要完美的分詞,所以模型的識別效果缺陷主要來自於實體識別這一部分。不同於SPTree,下面介紹的模型,都應用了序列標註,解決這一問題。

  1. 《Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme》

此文將實體關係聯合抽取轉換成一種新的標註模式,無需像以往研究一樣,將實體和關係分步處理,直接對三元組建模。新的標籤模式還可兼顧關係的方向性。針對新的標籤模式,設計了一種新的loss bias函數。這為我們提供了一種新的思路,即複雜的模型往往不一定會有更好的效果,尤其對於工業及應用,代價更是無法預測。但是任務轉換上的巧思,能讓模型輕量的同時,得到好的效果。

但此模型也有待改進,第一,對於同一句話中的多個相同關係,只能通過就近原則解決;第二,沒有考慮關係覆蓋的情況。

  1. 《Extracting Relational Facts by an End-to-End Neural Model with Copy Mechanism》

以上模型都存在一個通病,即沒有考慮到關係的overlapping問題,即一對實體之間存在多種關係,或一個實體參與多個關係,這在現實數據中是普遍存在的。如:"多發性肌炎臨床表現包括對稱性肌無力,可伴肌肉壓痛,後期出現肌萎縮,以近端肢帶肌為主。"中,"多發性肌炎"與"對稱性肌無力"的關係是"疾病與癥狀","多發性肌炎"與"肌萎縮"的關係是"疾病與併發症"。

CopyR是一個Seq2seq學習框架,採用copy機制,根據三元組重疊度將句子分為三種類型,包括Normal EntityPairOverlap和SingleEntiyOverlap,其中應用多個解碼器生成三個來處理重疊關係。將可變長度的句子編碼成固定長度的矢量表示,然後將該矢量解碼成相應的關係事實(三元組)。解碼時,可以使用一個統一解碼器解碼所有三元組,或者使用分離的解碼器解碼每個三元組。實驗將它們分別表示為OneDecoder模型和MultiDecoder模型。

  1. 《Adversarial training for multi-context joint entity and relation extraction》

利用AT(對抗學習)的概念作為正則化方法,使模型對輸入擾動具有魯棒性。具體來說,通過在級聯單詞表示的級別添加一些雜訊來生成原始變體的示例。這類似於Goodfellow等人提出的概念,提高影像識別分類器的魯棒性。通過將最壞情況擾動adv添加到最大化損失函數的原始嵌入w來生成對抗性示例:

  1. 《A Hierarchical Framework for Relation Extraction with Reinforcement Learning》

以往的模型存在兩個問題:

首先,只有在所有實體都被識別之後才確定關係類型,而這兩個任務之間的交互沒有完全捕獲。在某種意義上,這些方法是將關係與實體對對齊,因此,它們可能會引入額外的雜訊,因為包含實體對的句子可能不會真正提到關係。

其次,對於一對多的問題(重疊關係),仍然缺乏聯合抽取的優雅:一個實體可以參與同一句話中的多個關係,甚至一句話中的同一個實體對也與不同的關係相關聯。據我們所知,CopyR是唯一一個討論這個問題的方法,它將關係提取視為三次生成過程。然而,這種方法嚴重依賴於訓練數據,無法提取多字實體。

於是論文提出了一種以相關實體為關係論據,處理關係提取的新範式。在這個範式中應用層次強化學習(hrl)框架來加強實體提及和關係類型之間的交互。整個提取過程被分解為兩個層次的RL策略,分別用於關係檢測(high-level)和實體提取(low-level),這樣處理重疊關係更為可行和自然。

與其他模型不同,HRL的標註數據比較複雜,除了需要具有特定關係的實體對,還需要與當前關係無關的實體用於強化學習的reward過程。

聯合抽取模型總結

  1. 模型複雜度高,時間空間代價較大。
  2. 所有模型都致力於解決一對多的問題(重疊關係),並充分利用實體資訊。
  3. 就目前的數據量來說(1.8萬+),效果較遠監督模型有一定差距。
  4. 由於醫療文本中關係複雜多樣,因此訓練數據的標籤分布是數據處理中的關鍵部分。

目前無論是哪一種關係抽取模型,我們除了在細節結構上整合各種策略,也會將BERT,和已有醫療知識圖譜的表示學習模組加入到模型中,目的就是更好的抽取醫療實體關係,構建更高品質的醫療知識圖譜。

屬性抽取

實際上,屬性抽取較之關係抽取的難點在於,除了要識別實體的屬性名還要識別實體的屬性值,而屬性值結構也是不確定的,因此大多研究都是基於規則進行抽取,面向的也是網頁,query,表格數據[9,10,11]。但是這種方法在醫療領域數據上有一定的弊端,因為醫療知識圖譜不同於常識性知識圖譜,它對於資訊的品質有著很高的要求,對資訊噪音的容錯性也較低。

當然也有研究使用了一些機器學習模型對文本中的屬性名進行序列標註,但這種方法的局限在於,實體屬性實際上是非常豐富的,但模型除了需要標註數據,也無法cover多種多樣的屬性。

  1. 《ReNoun-Fact Extraction for Nominal Attributes》

通常假定事實是用動詞短語表示的,因此很難為基於名詞的關係提取事實[4]。ReNoun主要用於提取長尾型名詞屬性,首先從文本和查詢流中提取一個大型但不完善的本體。然後使用一組小的高精度抽取器,利用屬性的文本表達特性來獲得一個訓練集,然後通過遠程監督從訓練集中歸納出一組更大的抽取模式。最後,用基於三元組模式頻率和屬性之間的語義相似度來計算事實的分數。

  1. 《MetaPAD-Meta Pattern Discovery from Massive Text Corpora》

以往研究採用了一種基於依賴分析的模式發現方法,如ReNoun。但是,解析結果會丟失模式中實體周圍豐富的上下文,而且對於大規模的語料庫來說,這個過程代價很高[12,13,14]。本文提出一種新穎的類型化文本模式結構,稱為元模式,在一定的語境下擴展到一個頻繁、資訊豐富、精確的子序列模式:MetaPAD,它使用三種技術從海量語料庫中發現元模式:(1)開發了一種上下文感知的分割方法,通過學習模式品質評估函數來仔細確定模式的邊界,避免了代價高昂的依賴性分析,並生成了高品質的模式。(2)從多個方面識別和分組同義元模式,包括它們的類型、上下文和提取;(3)檢查每個模式組提取的實例中實體的類型分布,並尋找適當的類型級別,以使發現的模式精確。實驗證明,該框架能夠有效地從海量語料庫的不同類型中發現高品質的類型文本模式,並有助於資訊提取。

MetaPAD不是處理每個單獨的句子,而是利用大量句子,其中冗餘模式用於表示大規模實例的屬性或關係。首先,MetaPAD使用有效的序列模式挖掘生成元模式候選,學習候選模式的品質評估函數,特徵選擇具有豐富的域獨立上下文特徵:頻率,資訊性。然後挖掘品質元模式通過評估引導的上下文感知分割。其次,MetaPAD將同義元模式的分組過程制定為學習任務,並整合多個方面的特徵(包括實體類型,數據類型,模式上下文和提取的實例)。第三,MetaPAD檢查每個元模式組中的實體類型分布,並尋找模式最合適的類型級別。包括自上而下和自下而上兩種方案,這些方案遍歷類型本體,以確保模式的準確性。

因此我們利用MetaPAD,採用了一種集成方法:

首先利用NER,名詞短語抽取,詞典,jiba對文本進行精準的分詞,統計動詞列表和停用詞列表,並標註每個詞的類型,如"Disease","NP"等,利用MetaPAD對海量數據進行pattern抽取,並統計pattern頻次,通過TrueIE[15],篩選出描述實體屬性的高品質語句pattern,並將其中的"NP"抽出,作為候選屬性詞。

然後,將所有候選屬性詞生成詞典,重新對剛才的語料進行分詞,並將所有屬性詞標記類型為"Attribute",進行第二次pattern抽取,只取與"Attribute"類型詞有關的pattern,篩除其中的文本,作為屬性值。對於屬性值為句子的屬性,直接截取相關語句作為答案。

實際上,MetaPAD不只可以用在屬性抽取任務上,也可發現更多的術語表達,模版,統計資訊等,工業價值比較高。

結語

本文主要介紹了關係抽取和屬性抽取的以往研究,以及中文醫療數據在這些模型的效果和我們的一些改進做法。醫療資訊抽取是圖譜構建的重要環節,如何獲取高品質的數據,是我們的目標。在當前工作的基礎上,我們還有很多後續工作,如:在考慮到overlapping的同時,如何簡化聯合抽取模型的結構,降低模型的訓練時間;如何利用"雜亂無章"的實體,關係,屬性資訊構建concept層級架構,用於搜索推薦;以及資訊抽取技術在搜索實時應用上的運用。


參考文獻

[1] Relation Classification via Convolutional Deep Neural Network.

[2] Incremental joint extraction of entity mentions and relations.

[3] Modeling joint entity and relation extraction with table representation.

[4] Global Inference for Entity and Relation Identification via a Linear Programming..

[5] Joint inference for fine-grained opinion extraction.

[6] Joint entity and relation extraction using card-pyramid parsing.

[7] Jointly identifying entities and extracting relations in encyclopedia text via a graphical model approach.

[8] Joint inference of entities, relations, and coreference.

[9] Weakly-Supervised Acquisition of Open-Domain Classes and Class Attributes from Web Documents and Query Logs.

[10] Attribute extraction and scoring-a probabilistic approach.

[11] Automatic Discovery of Attribute Synonyms Using Query Logs and Table Corpora.

[12] ReVerb:Identifying Relations for Open Information Extraction.

[13] Open information extraction from the web.

[14] Toward an architecture for never-ending language learning.

[15] TruePIE: Discovering Reliable Patterns in Pattern-Based Information Extraction.