知识图谱(六)——关系抽取
如何從結構化或非結構化文本中識別出實體之間的關系是知識圖譜構建的核心任務之一。
文章目錄
- 一、任務概述
- 1、任務定義
- 2、任務分類
- 3、任務難點
- 4、相關測評
- 二、限定域關系抽取
- 1、基于模板的關系抽取方法
- 1)人工模板
- 2)學習方法
- 2、基于機器學習的關系抽取方法
- 1)有監督的關系抽取方法
- (1)基于特征工程的方法
- (2)基于核函數的方法
- (3)基于神經網絡的方法
- a、示例
- 2)弱監督的關系抽取方法
- 三、開放域關系抽取
- 1、TextRunner
- (1)語料的自動生成和分類器訓練
- (2)大規模關系三元組的抽取
- (3)關系三元組可信度計算
一、任務概述
1、任務定義
關系抽取:自動識別實體之間具有的某種語義關系。
- 根據參與實體的數量可分為二元關系抽取和多元關系抽取。
- 二元關系抽取是其他關系抽取研究的基礎,所以本文關注二元關系抽取(兩個實體之間的語義關系),得到 (arg1,relation,arg2)三元組。eg:(中國,首都,北京)
2、任務分類
根據數據源的不同,可分為:
- 面向結構化文本的關系抽取
- 結構化文本包括:表格數據、XML文檔和數據庫數據等
- 易于抽取,可通過編寫特定模板進行抽取,準確率比較高
- 面向非結構化文本的關系抽取
- 非結構化文本:純文本。準確率相對較低
- 面向半結構化文本的關系抽取
- 半結構化文本:介于上述兩者之間,數據的分布或布局具有一定的規律。
- 通常利用對模板進行自動學習來抽取關系,也達到較高的準確率
根據抽取文本的范圍不同,關系抽取可分為
- 句子級關系抽取(句子級關系分類):從一個句子中判斷兩個實體間是何種語義關系。
- 語料(篇)級關系抽取:判斷兩個實體之間是否具有某種語義關系,而不必限定在兩個目標實體所出現的上下文.
根據抽取領域的劃分,可分為:
- 限定域關系抽取:在一個或多個限定的領域內對實體間的語義關系進行抽取。
- 通常情況下,由于限定域,語義關系也是預先設好的有限個類別。 常采用監督學習或弱監督學習方法
- 開放域關系抽取:依據模型對自然語言句子理解的結果從開放式抽取實體關系三元組。
3、任務難點
- 同一個關系可以具有多種不同的詞匯表示方法。
- eg:“姚明出生于上海” 和 “姚明的出生地是上海” 都表達姚明和上海具有出生地關系。
- 同一個短語或詞可能表示不同的關系。
- eg:“李梅是我的姑娘。”中的姑娘可以指女兒,也可以指女朋友。
- 同一對實體之間可能存在不止一種關系。
- eg:姚明的出生地是上海,姚明的居住地也是上海。
- 關系抽取不僅涉及兩個或兩個以上的實體單元,還涉及實體周圍的上下文,需要利用文本王那種的一些結構化的信息,使得問題復雜度成指數級增長。
- “三國時期,蜀國多維能征善戰的將軍,他們分別是:關羽、張飛、趙云、黃忠和馬忠。”
- 關系有時在文本中找不到任何明確的標識,關系隱含在文本中。
- “蒂姆·庫克與中國移動董事長奚國華會面商談“合作事宜”,透露出了他將帶領蘋果公司進一步開拓中國市場的訊號。”==》推斷:蒂姆·庫克是蘋果公司的首席執行官(CEO)
- 關系抽取一般依賴于詞法、語句分析等基本NLP工具,但實際中,工具性能并不高并會影響關系抽取的性能。
4、相關測評
MUC(消息理解會議)、ACE(自動內容抽取)和TAC(文本分析會議)三大國際測評會議 和 語義測評會議(SemEval)
二、限定域關系抽取
限定域關系抽取:在一個或多個限定的領域內判別文本中所出現的實體指稱之間是何種語義關系,且待判別的語義關系是預定義的。
可看作 ==》文本分類任務
1、基于模板的關系抽取方法
基本思想:通過人工編輯或學習得到的模板對文本中的實體關系進行抽取和判別。
1)人工模板
例如:假設X和Y表示公司類型,可使用如下模板表示收購(ACQUISITION)關系。當滿足下述模板,則表示兩個實體指稱在這個句子中具有收購(ACQUISITION)關系。
XisacquiredbyYXispurchasedbyYXisboughtbyYX\ is\ acquired\ by\ Y \\ X\ is\ purchased\ by\ Y \\ X\ is\ bought\ by\ Y X?is?acquired?by?YX?is?purchased?by?YX?is?bought?by?Y
2)學習方法
由于人工定義模板的方法不能針對多類關系窮舉所有的模板,則需采用自動的方法學習抽取模板。
==》① 如何學習用于抽取關系的模板?② 如何將學習到的模板進行聚類?
==》多采用 提升(BootStrapping)策略,對于實體和模板進行聯合迭代式地交替抽取和學習。
基本出發點:一種語義關系可采用對偶的方式進行表示,可以利用實體對在文本中獲取的模板信息,再利用獲得的模板抽取更多的實體對。
- 外延性(Extensionally)表示:使用所有包含該種關系的實體對表示該關系。
- 用符號 RRR 表示關系,E(R)E(R)E(R) 表示所有包含關系 RRR 的實體對。
- eg:表示收購(ACQUISITION)關系,則可給出實體對(You Tube, Google)、(Powerset, Microsoft)、(Inktomi, YAHOO)等
- 內涵性(Intensionally)表示:使用所有能抽取出這種關系的模板表示該關系。
- 用符號 RRR 表示關系,使用所有能抽取這種關系的模板P(R)P(R)P(R) 。
- eg:X和Y表示兩個公司,用 XisacquiredbyY,XispurchasedbyY或XisboughtbyYX\ is\ acquired\ by\ Y,X\ is\ purchased\ by\ Y 或 X\ is\ bought\ by\ YX?is?acquired?by?Y,X?is?purchased?by?Y或X?is?bought?by?Y 等表示ACQUISITION關系。
關鍵步驟:抽取句子中的實體對之間的表達關系的模板。 模板是基于詞匯的,也可以是基于句法或語義的。
步驟:
- 該過程中需要NLP技術,包括:句子邊界探測(將給定的文本語料分割為句子)、詞性標注(獲得單詞的詞性)、名詞詞組塊識別(探測句子中實體)、命名實體識別(提取合適的名詞詞組塊和實體)等
- 然后在此基礎上,分別抽取詞匯級關系模板 和 句法級關系模板。
- 對習得的模板進行聚類,將表示同一語義關系的模板聚類到一起。
示例:
- 句子:The crime took place in View Royal on Vancouver Island.
- 詞性標注:DT NN VBD NN IN NNP NNP IN NNP NNP .
- 實體或詞組塊:The crime took place in [View Royal] on [Vancouver Island].
- 變量替換: View Royal=X Vancouver Island=Y
- 字面形式:The crime took place in X on Y.
- 詞性序列:DT NN VBD NN IN X IN Y .
- 詞匯模式:X on Y,X,Y
- 語法模式:X in Y,X,Y
缺點:受限于模板的質量和覆蓋度,可擴展性不強。
2、基于機器學習的關系抽取方法
將關系抽取看成一個分類問題,應用機器學習的方法解決該問題,可以分為:有監督的關系抽取方法 和 弱監督的關系抽取方法
1)有監督的關系抽取方法
主要工作:何如抽取出表征實體指稱項間語義關系的有效特征。
常分為:基于特征工程的方法、基于核函數的方法、基于神經網絡的方法
(1)基于特征工程的方法
研究重點:如何提取具有區分性的特征。
步驟:
- 特征提取:提取詞匯、句法和語義等特征,然后有效地集成起來,來描述關系實例的各種局部特征和全局特征。
- 模型訓練:訓練分類器
- 關系抽取:對新非結構化文本進行分類,完成關系抽取。
常見的關系抽取特征如下:
- 詞匯特征。包括:實體本身的詞語或名詞性詞組塊、兩個實體(詞組塊)之間的詞語和兩個實體(詞組塊)兩端的詞語。
- 實體屬性特征。包括:實體或名詞性詞組塊的類型特征,eg:人物(Person)、組織(Organization)、位置(Location)、設施(Facility)和地緣政治實體(Geo-Political Entity)等。
- 重疊特征。包括:兩個實體或詞組塊之間詞語的個數、它們之間部分包含其他實體或詞組塊的個數、兩個實體或詞組塊是否在同一個名詞短語、動詞短語或介詞短語之中。
- 依存句法特征。包括:兩個實體(名詞性詞組塊)的依存句法分析樹中的依存標簽和依存路徑。
- 句法樹特征。包括:連接兩個實體(名詞性詞組塊)的句法路徑,不包含重復的節點,并且將路徑使用頭詞(head words)標注。
示例:"Jobs was the co-founder of Apple."
- 詞匯特征:“Jobs”、“Apple”、“was the co-founder of” 等
- 實體類型:PERSON(“Jobs”)、ORGANIZATION(“Apple”)
- 重疊特征:兩個實體之間詞語的個數是4、它們之間部分包含其他實體的個數是0、兩個實體不屬于同一個名詞短語、動詞短語或介詞短語。
- 依存特征:實體“Jobs”依存的單詞“co-founder”的詞性是NN;實體“Apple”依存單詞“of”,其依存單詞“of”的詞性是IN。
- 句法樹特征:NNP-NP-S-VP-NP-PP-NP-NNP
==》句法樹特征,受句子以及詞在不同上下文環境的影響大,會導致特征空間特別巨大,從而產生 特征稀疏 的問題。
(2)基于核函數的方法
基于核函數的方法直接以結構樹為處理對象,在計算關系之間距離時使用核函數。
典型核函數:樹核函數、依存樹核函數、最短依存樹核函數、最短路徑包含樹核…
(3)基于神經網絡的方法
上述兩類模板的可擴展性存在很大問題,限制這些方法的應用和推廣:
- 人工設計的特征的累計誤差;
- 對于小語種,缺乏可用的NLP工具,不能使用上述基于特征工程的關系抽取方法。
步驟:
- 特征表示:純文本的特征 =》分布式特征(eg:詞向量)
- 神經網絡構建與高層特征學習:設計搭建神經網絡模型并利用上步得到的基本特征自動表示為高層特征
- 模型訓練:調參
- 模型分類:對新樣本分類,完成關系抽取。
a、示例
2014年,Zeng等提出基于卷積神經網絡的關系抽取模型。
- 該模型包括:詞表示(Word Representation)、特征抽取(Feature Extraction)和輸出(Output)。
- 整個模型的輸入是一個句子及給定的兩個詞(通常為名詞、名詞短語或實體),輸出是兩個詞在該句子中所屬的預定義的語義關系類別.
過程:首先,輸入的句子通過詞向量表示,轉化為向量的形式輸入網絡。然后,特征抽取部分進一步抽取詞匯級別特征和句子級別特征,并拼接起來作為最終的特征進行關系分類。
詞向量輸入
- 通過word embedding將句子中的每一個詞都使用詞向量表示。此處使用Word2Veec模型。
- 詞向量基于分布式表示,根據詞頻、詞的共現和搭配等語言知識,將文本中的詞表示為低維空間中的稠密向量。便于計算詞與詞之間的關系。
- 主要詞向量模型:語言模型、SENNA模型、RNNLM模型和Word2Veec模型等。
詞匯級別特征
- 傳統方法抽取的詞匯特征主要包括:詞本身、詞性以及待分類的兩個詞之間的詞等,該方法直接使用詞向量作為詞匯級別特征。
句子級別特征
- 一般根據整個句子的意義來判斷兩個詞之間的關系,該方法使用卷積神經網絡通過語義組合的方式自動學習句子級別的特征,框架如下所示:
- 過程:在輸入的詞被表示為向量后,首先通過開窗處理獲得局部特征,然后再通過卷積濾波捕獲不同的特征,最后對卷積的結果進行非線性變換得到句子級別特征。
- 特別地,為了讓網絡知道句子中哪兩個詞需要給定語義關系,該方法使用位置特征對句子中需要給定語義關系的兩個詞進行建模。位置特征表示當前詞到待分類的兩個詞之間的相對距離。
網絡輸出
最終的特征向量為詞匯級別和句子級別特征的拼接,然后輸入到Softmax分類器,進行調參。
2)弱監督的關系抽取方法
距離監督(Distant Supervision)利用結構化三元組的形式的數據,讓知識圖譜自動標注訓練樣本。
假設:如果兩個實體之間存在某種關系,則所有包含這兩個實體的句子都表達了這種關系,這些句子的集合被稱為一個“包”
Zeng等使用分段卷積神經網絡抽取文本的特征。
- 訓練數據的產生:通過命名實體識別工具找出給定的非結構化文本中的所有實體,根據弱監督假設,將實體組成對,在知識庫中查,有抽出為正樣本,無為負樣本。
- 任務建模:不知道哪些有用,但只要有1個有用,就給定標簽,并不關心是每個示例的標簽。
- 分段卷積神經網絡:設計了分段最大池化層代替原先的池化層
- 多示例訓練:克服噪聲的影響。對包的示例預測,選概率最大的為包的標簽。但是會忽略包中其他方法的信息,有其他的改進。
典型的弱監督關系抽取系統
- NELL(Never-Ending Language Learner)
- NELL系統的輸入包括:一個預定義的實體類別體系以及關系體系;每個實體類別和關系類別的10到15個樣例。
- 任務:為各個實體類別和關系類別抽取新的實例;提升系統本身的抽取性能
- Probase
- 可以從海量的Web網頁中自動抽取isA關系和概念標簽,并用概率值表示抽取的置信度。
- 通過現有知識來理解文本從而獲取更多的知識。
三、開放域關系抽取
開放域關系抽取不需要預先定義關系,而是使用實體對上下文中的一些詞語來描述實體之間的關系。
典型原型系統:TextRunner、Kylin、WOE、ReVerb等
1、TextRunner
過程:通過一些簡單的啟發式規則自動從賓州樹庫里面獲取實體關系三元組的正負樣本,根據它們的一些淺層句法特征訓練一個分類器來判斷兩個實體間是否存在語義關系;然后將網絡文本進行一定的處理后作為候選句子,提取其淺層句法特征,利用分類器來判斷所抽取的關系三元組是否可信,最后利用網絡數據的冗余信息,對初步認定可信的關系進行評估。對于關系名稱的抽取,則是將動詞作為關系名稱。
主要包含三個模塊:語料的自動生成和分類器訓練、大規模關系三元組的抽取、關系三元組可信度計算。
(1)語料的自動生成和分類器訓練
語料的自動生成:根據依存句法分析結合啟發式規則自動生成語料。利用的啟發式規則舉例如下:
- 兩個實體的依存路徑長度不能大于指定值。
- 實體不能是代詞。
- …
分類器訓練:利用樸素貝葉斯分類器進行訓練,其使用的特征舉例如下:
- 關系指示詞的詞性、長度
- 實體的類型,是否是專有名詞
- 左實體左邊詞語的詞性。。。
(2)大規模關系三元組的抽取
利用上述訓練好的關系抽取器,在web文本上抽取并存儲
(3)關系三元組可信度計算
- 將存儲起來的相似的三元組進行合并,eg:(arg1,married,arg2)和(arg1,marries,arg2)
- 根據網絡數據的冗余性,計算合并后關系三元組在網絡中出現的次數,進而計算相應關系三元組的可信度。
總結
以上是生活随笔為你收集整理的知识图谱(六)——关系抽取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 知识图谱(五)——实体消歧
- 下一篇: 知识图谱(八)——知识存储和检索