【文本信息抽取与结构化】深入了解关系抽取你需要知道的东西
常常在想,自然語言處理到底在做的是一件什么樣的事情?到目前為止,我所接觸到的NLP其實都是在做一件事情,即將自然語言轉化為一種計算機能夠理解的形式。這一點在知識圖譜、信息抽取、文本摘要這些任務中格外明顯。不同的任務的差異在于目標的轉化形式不一樣,因而不同的任務難度、處理方式存在差異。
這個系列文章【文本信息抽取與結構化】,在自然語言處理中是非常有用和有難度的技術,是文本處理與知識提取不可或缺的技術。
本篇介紹如何從文本中抽取出兩個或者多個實體之間的關系,即關系抽取。
作者&編輯 | 小Dream哥
關系抽取概述
在前面的文章中,我們介紹了將文本結構化的大致過程以及信息抽取的、涉及到的技術,卻沒有介紹具體的技術細節。接下來我們來全面而細致的介紹相應的技術,今天我們關注關系抽取。
所謂關系抽取,就是抽取文本中兩個或者多個實體之間的關系。例如:
中國的首都是北京
關系抽取即是從上述文本中,抽取出如下的實體關系的任務:
<中國,首都,北京>
關系抽取的方法大概有以下幾類:
1.基于模板的方法
???????基于規則
????? ?基于依存句法
2.監督學習
????????機器學習
????????深度學習(pipline vs joint model)
3.半監督/無監督學習
????????Bootstrapping
????????Distant supervision
????????Unsupervised learning from web
下面我們一一來介紹這些方法。
基于模板的方法
1)基于自定義規則
通常來說,在語義上,表達兩種實體的關系都有一些特定的說法,例如剛才的例子,描述國家和首都通常都會有這樣的模式:
<國家>的首都/首付是<首都>
因此,基于自定義規則的方法,可以總結某類關系常用的說法,然后基于這些說法提煉出規則/正則表達式來進行關系抽取。
2)基于NER標簽
很多時候,特定的關系是在某些特定的實體之間,例如:
1.首都(國家,城市)
2.創作(歌手,歌曲)
3.寫作(作家,小說)
結合NER標簽與具體的規則,常常能夠取得不錯的關系抽取效果。
此外,基于句法關系等模板的方法,這里不再詳述。基于規則的方法有如下的優缺點:
優點:
????????1.準確率高
????? ? 2.可以為特定領域定制
????????3.啟動快,可以在小規模數據集上實現
缺點:
????????1.召回率低
????????2.特定領域的規則通常需要專家構建
????????3.難以維護
????????4.可移植性差
2? 監督學習方法
1)傳統機器學習
傳統機器學習進行關系提取通常基于一些分類模型,包括樸素貝葉斯,SVM等。為了提高效率,通常會訓練兩個分類器,第一個分類器是1/0分類,判斷命名實體間是否有關系;第二個分類器是多分類器,第一個分類器判斷有關系再輸入到這個分類器,預測關系的類別。這樣做能夠先排除大多數的實體對,進而加快分類器的訓練過程。
基于傳統機器學習方法的標準流程是:
1.預先定義好想提取的關系集合
2.定義或選擇相關的命名實體集合
3.尋找并標注數據
4.選擇有代表性的語料庫
5.命名實體標記
6.實體間的關系標注
7.分詞訓練、測試、驗證集
8.涉及特征
9.選擇并訓練分類器
10.評估結果
目前,用于關系抽取最多也是最有效的監督學習是深度學習的方法,所以這里就不多介紹機器學習相關的算法,我們來著重介紹深度學習的算法。
2)深度學習的方法
基于深度學習的關系抽取目前主要有兩種方法:Pipline Method和Joint Method。
Pipline Method,流水線方法:輸入一個句子,首先進行命名實體識別,然后對識別出來的實體進行兩兩組合,再進行關系分類。
流水線的方法存在蠻大的缺點,例如:
1.錯誤傳播,實體識別模塊的錯誤會傳播到后面的分類模塊;
2.忽略了兩個子任務之間存在的關系。例如前面“中國的首都是北京”的例子,如果存在“首都”關系,那么前一個實體必然是國家類別,后一個實體比如是城市類別。流水線的方法,忽略了這些信息;
3.產生了沒必要的冗余信息,由于需要對識別出來的實體進行兩兩配對,然后再進行關系分類;那些沒有關系的實體對就會產生多余的信息,提高錯誤率。
Joint Method,即聯合抽取方法,則跟流水線的方法不同,基于流水線方法的諸多缺陷,Joint Method能夠通過一個實體識別和關系分類的聯合模型,直接得到有關系的實體三元組。
Joint Method主要分為兩個流派,基于參數共享(Parameter Sharing)和基于標注策略(Tagging Policy)兩類。
基于基于參數共享(Parameter Sharing)的聯合抽取方法,可參考這一篇論文:
Suncong, Zheng, Yuexing, et al. Joint entity and relation extraction based on a hybrid neural network[J]. Neurocomputing, 2017.
如上圖所示,是這種方法的網絡結構框圖。每個詞都會被映射到一個實體標記(BILOS:Begin Inside Last Outside Single),它包含了改字在實體中的位置信息。NER模塊沒有用CRF,而是額外用了一層LSTM來解碼雙向LSTM編碼出來的Hidden state,并建模它和實體標記之間的關系。該模塊的損失函數如下:
關系分類模塊采用CNN模型,處理BiLSTM的Hidden state并輸出關系類別。該模塊的損失函數如下:
基于標注策略(Tagging Policy)的聯合抽取方法,可參考這一篇論文:
S. Zheng, F. Wang, H. Bao, Y. Hao, P. Zhou, B. Xu,?Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme,?Acl. (2017).
在這篇論文中,將實體識別和關系分類兩個問題,轉化為一個序列標注的問題,然后通過一個端對端的神經網絡模型直接得到關系實體三元組。
他們提出的這種新的標注策略主要由下圖中三部分組成:
1)實體中詞的位置信息{B(實體開始),I(實體內部),E(實體結尾),S(單個實體)};
2)關系類型信息{根據預先定義的關系類型進行編碼};
3)實體角色信息{1(實體1),2(實體2)}。注意,這里只要不是實體關系三元組內的詞全部標簽都為"O"。
如上圖所示,“B-CP-1"表示這個詞是一個實體的begin,同時這個實體屬于關系CP的第一個實體。
與典型的用LSTM進行實體抽取的模型差異在于,這個模型對損失做了一定的修改,如下圖所示:
當標簽為"O"時,就是正常的目標函數,當標簽不是"O"時,即涉及到了關系實體標簽,則通過α來增大標簽的影響。實驗結果表明,這個帶偏置的目標函數能夠更準確的預測實體關系對。
關于關系抽取的基本方法,到這里就介紹的差不多,希望讀者能有所收獲,下篇我們繼續介紹最新的關系抽取模型。
總結
文本信息抽取與結構化是目前NLP中最為實際且效益最大的任務,熟悉這個任務是一個NLP算法工程師必需要做的事情。
讀者們可以留言,或者加入我們的NLP群進行討論。感興趣的同學可以微信搜索jen104,備注"加入有三AI NLP群"。
下期預告:最新的關系抽取模型介紹
知識星球推薦
掃描上面的二維碼,就可以加入我們的星球,助你成長為一名合格的自然語言處理算法工程師。
知識星球主要有以下內容:
(1) 聊天機器人;
(2) 知識圖譜;
(3) NLP預訓練模型。
轉載文章請后臺聯系
侵權必究
往期精選
【完結】 12篇文章帶你完全進入NLP領域,掌握核心技術
【年終總結】2019年有三AI NLP做了什么,明年要做什么?
【NLP-詞向量】詞向量的由來及本質
【NLP-詞向量】從模型結構到損失函數詳解word2vec
【NLP-NER】什么是命名實體識別?
【NLP-NER】命名實體識別中最常用的兩種深度學習模型
【NLP-NER】如何使用BERT來做命名實體識別
【NLP-ChatBot】我們熟悉的聊天機器人都有哪幾類?
【NLP-ChatBot】搜索引擎的最終形態之問答系統(FAQ)詳述
【NLP-ChatBot】能干活的聊天機器人-對話系統概述
【知識圖譜】人工智能技術最重要基礎設施之一,知識圖譜你該學習的東西
【知識圖譜】知識表示:知識圖譜如何表示結構化的知識?
【知識圖譜】如何構建知識體系:知識圖譜搭建的第一步
【知識圖譜】獲取到知識后,如何進行存儲和便捷的檢索?
【知識圖譜】知識推理,知識圖譜里最“人工智能”的一段
【文本信息抽取與結構化】目前NLP領域最有應用價值的子任務之一
【文本信息抽取與結構化】詳聊文本的結構化【上】
【文本信息抽取與結構化】詳聊文本的結構化【下】
【NLP實戰】tensorflow詞向量訓練實戰
【NLP實戰系列】樸素貝葉斯文本分類實戰
【NLP實戰系列】Tensorflow命名實體識別實戰
【NLP實戰】如何基于Tensorflow搭建一個聊天機器人
【NLP實戰】基于ALBERT的文本相似度計算
【每周NLP論文推薦】從預訓練模型掌握NLP的基本發展脈絡
【每周NLP論文推薦】 NLP中命名實體識別從機器學習到深度學習的代表性研究
【每周NLP論文推薦】 介紹語義匹配中的經典文章
【每周NLP論文推薦】 對話管理中的標志性論文介紹
【每周NLP論文推薦】 開發聊天機器人必讀的重要論文
【每周NLP論文推薦】 掌握實體關系抽取必讀的文章
【每周NLP論文推薦】 生成式聊天機器人論文介紹
【每周NLP論文推薦】 知識圖譜重要論文介紹
總結
以上是生活随笔為你收集整理的【文本信息抽取与结构化】深入了解关系抽取你需要知道的东西的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【GAN优化】长文综述解读如何定量评价生
- 下一篇: 【杂谈】为什么Pytorch这么好用我还