本文為轉(zhuǎn)載虐译,原文鏈接: https://zhuanlan.zhihu.com/p/44772023
這一篇是關(guān)于知識(shí)抽取,整理并補(bǔ)充了上學(xué)時(shí)的兩篇筆記 NLP筆記 - Information Extraction 和 NLP筆記 - Relation Extraction,梳理了知識(shí)抽取的基本方法,包括傳統(tǒng)機(jī)器學(xué)習(xí)及經(jīng)典的深度學(xué)習(xí)方法典鸡。
知識(shí)抽取涉及的“知識(shí)”通常是清楚的罚攀、事實(shí)性的信息,這些信息來自不同的來源和結(jié)構(gòu)术荤,而對(duì)不同數(shù)據(jù)源進(jìn)行的知識(shí)抽取的方法各有不同倚喂,從結(jié)構(gòu)化數(shù)據(jù)中獲取知識(shí)用 D2R,其難點(diǎn)在于復(fù)雜表數(shù)據(jù)的處理瓣戚,包括嵌套表端圈、多列、外鍵關(guān)聯(lián)等子库,從鏈接數(shù)據(jù)中獲取知識(shí)用圖映射舱权,難點(diǎn)在于數(shù)據(jù)對(duì)齊,從半結(jié)構(gòu)化數(shù)據(jù)中獲取知識(shí)用包裝器刚照,難點(diǎn)在于 wrapper 的自動(dòng)生成刑巧、更新和維護(hù),這一篇主要講從文本中獲取知識(shí)无畔,也就是我們廣義上說的信息抽取啊楚。
信息抽取三個(gè)最重要/最受關(guān)注的子任務(wù):
- 實(shí)體抽取
也就是命名實(shí)體識(shí)別,包括實(shí)體的檢測(cè)(find)和分類(classify) - 關(guān)系抽取
通常我們說的三元組(triple) 抽取浑彰,一個(gè)謂詞(predicate)帶 2 個(gè)形參(argument)恭理,如 Founding-location(IBM,New York) - 事件抽取
相當(dāng)于一種多元關(guān)系的抽取
篇幅限制,這一篇主要整理實(shí)體抽取和關(guān)系抽取郭变,下一篇再上事件抽取颜价。
相關(guān)競(jìng)賽與數(shù)據(jù)集
信息抽取相關(guān)的會(huì)議/數(shù)據(jù)集有 MUC、ACE诉濒、KBP周伦、SemEval 等。其中未荒,ACE(Automated Content Extraction) 對(duì) MUC 定義的任務(wù)進(jìn)行了融合专挪、分類和細(xì)化,KBP(Knowledge Base Population) 對(duì) ACE 定義的任務(wù)進(jìn)一步修訂片排,分了四個(gè)獨(dú)立任務(wù)和一個(gè)整合任務(wù)寨腔,包括
-
Cold Start KB (CSKB)
端到端的冷啟動(dòng)知識(shí)構(gòu)建 -
Entity Discovery and Linking (EDL)
實(shí)體發(fā)現(xiàn)與鏈接 -
Slot Filling (SF)
槽填充 -
Event
事件抽取 -
Belief/Sentiment (BeSt)
信念和情感
至于 SemEval 主要是詞義消歧評(píng)測(cè),目的是增加人們對(duì)詞義率寡、多義現(xiàn)象的理解迫卢。
ACE 的 17 類關(guān)系
具體的應(yīng)用實(shí)例
常用的 Freebase relations
people/person/nationality,
people/person/profession,
biology/organism_higher_classification,
location/location/contains
people/person/place-of-birth
film/film/genre
還有的一些世界范圍內(nèi)知名的高質(zhì)量大規(guī)模開放知識(shí)圖譜,如包括 DBpedia冶共、Yago乾蛤、Wikidata每界、BabelNet、ConceptNet 以及 Microsoft Concept Graph等幻捏,中文的有開放知識(shí)圖譜平臺(tái) OpenKG……
實(shí)體抽取
實(shí)體抽取或者說命名實(shí)體識(shí)別(NER)在信息抽取中扮演著重要角色盆犁,主要抽取的是文本中的原子信息元素,如人名篡九、組織/機(jī)構(gòu)名谐岁、地理位置悼嫉、事件/日期裤唠、字符值鹃操、金額值等覆积。實(shí)體抽取任務(wù)有兩個(gè)關(guān)鍵詞:find & classify折砸,找到命名實(shí)體铣墨,并進(jìn)行分類浦夷。
主要應(yīng)用:
- 命名實(shí)體作為索引和超鏈接
- 情感分析的準(zhǔn)備步驟邑飒,在情感分析的文本中需要識(shí)別公司和產(chǎn)品金刁,才能進(jìn)一步為情感詞歸類
- 關(guān)系抽人俊(Relation Extraction)的準(zhǔn)備步驟
- QA 系統(tǒng),大多數(shù)答案都是命名實(shí)體
傳統(tǒng)機(jī)器學(xué)習(xí)方法
標(biāo)準(zhǔn)流程:
Training:
- 收集代表性的訓(xùn)練文檔
- 為每個(gè) token 標(biāo)記命名實(shí)體(不屬于任何實(shí)體就標(biāo) Others O)
- 設(shè)計(jì)適合該文本和類別的特征提取方法
- 訓(xùn)練一個(gè) sequence classifier 來預(yù)測(cè)數(shù)據(jù)的 label
Testing:
- 收集測(cè)試文檔
- 運(yùn)行 sequence classifier 給每個(gè) token 做標(biāo)記
- 輸出命名實(shí)體
編碼方式
看一下最常用的兩種 sequence labeling 的編碼方式尤蛮,IO encoding 簡單的為每個(gè) token 標(biāo)注媳友,如果不是 NE 就標(biāo)為 O(other),所以一共需要 C+1 個(gè)類別(label)产捞。而 IOB encoding 需要 2C+1 個(gè)類別(label)醇锚,因?yàn)樗鼧?biāo)了 NE boundary,B 代表 begining坯临,NE 開始的位置焊唬,I 代表 continue,承接上一個(gè) NE看靠,如果連續(xù)出現(xiàn)兩個(gè) B赶促,自然就表示上一個(gè) B 已經(jīng)結(jié)束了。
在 Stanford NER 里挟炬,用的其實(shí)是 IO encoding鸥滨,有兩個(gè)原因,一是 IO encoding 運(yùn)行速度更快辟宗,二是在實(shí)踐中,兩種編碼方式的效果差不多吝秕。IO encoding 確定 boundary 的依據(jù)是泊脐,如果有連續(xù)的 token 類別不為 O,那么類別相同烁峭,同屬一個(gè) NE容客;類別不相同秕铛,就分割,相同的 sequence 屬同一個(gè) NE缩挑。而實(shí)際上但两,兩個(gè) NE 是相同類別這樣的現(xiàn)象出現(xiàn)的很少,如上面的例子供置,Sue谨湘,Mengqiu Huang 兩個(gè)同是 PER 類別,并不多見芥丧,更重要的是紧阔,在實(shí)踐中,雖然 IOB encoding 能規(guī)定 boundary续担,而實(shí)際上它也很少能做對(duì)擅耽,它也會(huì)把 Sue Mengqiu Huang 分為同一個(gè) PER,這主要是因?yàn)?strong>更多的類別會(huì)帶來數(shù)據(jù)的稀疏物遇。
特征選擇:
Features for sequence labeling:
? Words
Current word (essentially like a learned dictionary)
Previous/next word (context)
? Other kinds of inferred linguistic classification
Part of speech tags
Dependency relations
? Label context
Previous (and perhaps next) label
再來看兩個(gè)比較重要的 feature
Word substrings
Word substrings (包括前后綴)的作用是很大的乖仇,以下面的例子為例,NE 中間有 ‘oxa’ 的十有八九是 drug询兴,NE 中間有 ‘:’ 的則大多都是 movie乃沙,而以 field 結(jié)尾的 NE 往往是 place。
Word shapes
可以做一個(gè) mapping蕉朵,把 單詞長度(length)崔涂、大寫(capitalization)、數(shù)字(numerals)始衅、希臘字母(Greek eltters)冷蚂、單詞內(nèi)部標(biāo)點(diǎn)(internal punctuation) 這些字本身的特征都考慮進(jìn)去。
如下表汛闸,把所有大寫字母映射為 X蝙茶,小寫字母映射為 x,數(shù)字映射為 d…
序列模型
NLP 的很多數(shù)據(jù)都是序列類型诸老,像 sequence of characters, words, phrases, lines, sentences隆夯,我們可以把這些任務(wù)當(dāng)做是給每一個(gè) item 打標(biāo)簽,如下圖:
常見的序列模型有 有向圖模型 如 HMM别伏,假設(shè)特征之間相互獨(dú)立蹄衷,找到使得 P(X,Y) 最大的參數(shù),生成式模型厘肮;無向圖模型 如 CRF愧口,沒有特征獨(dú)立的假設(shè),找到使得 P(Y|X) 最大的參數(shù)类茂,判別式模型耍属。相對(duì)而言托嚣,CRF 優(yōu)化的是聯(lián)合概率(整個(gè)序列,實(shí)際就是最終目標(biāo))厚骗,而不是每個(gè)時(shí)刻最優(yōu)點(diǎn)的拼接示启,一般而言性能比 HMM 要好,在小數(shù)據(jù)上擬合也會(huì)更好领舰。
整個(gè)流程如圖所示:
討論下最后的 inference
最基礎(chǔ)的是 “decide one sequence at a time and move on”夫嗓,也就是一個(gè) greedy inference,比如在詞性標(biāo)注中提揍,可能模型在位置 2 的時(shí)候挑了當(dāng)前最好的 PoS tag啤月,但是到了位置 4 的時(shí)候,其實(shí)發(fā)現(xiàn)位置 2 應(yīng)該有更好的選擇劳跃,然而谎仲,greedy inference 并不會(huì) care 這些。因?yàn)樗秦澙返呐俾兀灰?dāng)前最好就行了郑诺。除了 greedy inference,比較常見的還有 beam inference 和 viterbi inference杉武。
Greedy Inference
- 優(yōu)點(diǎn):
- 速度快辙诞,沒有額外的內(nèi)存要求
- 非常易于實(shí)現(xiàn)
- 有很豐富的特征,表現(xiàn)不錯(cuò)
- 缺點(diǎn):
- 貪婪
Beam Inference
在每一個(gè)位置轻抱,都保留 top k 種可能(當(dāng)前的完整序列)
在每個(gè)狀態(tài)下飞涂,考慮上一步保存的序列來進(jìn)行推進(jìn)
- 優(yōu)點(diǎn):
- 速度快,沒有額外的內(nèi)存要求
- 易于實(shí)現(xiàn)(不用動(dòng)態(tài)規(guī)劃)
- 缺點(diǎn):
- 不精確祈搜,不能保證找到全局最優(yōu)
Viterbi Inference
動(dòng)態(tài)規(guī)劃
需要維護(hù)一個(gè) fix small window
優(yōu)點(diǎn):
- 非常精確较店,能保證找到全局最優(yōu)序列
缺點(diǎn): - 難以實(shí)現(xiàn)遠(yuǎn)距離的 state-state interaction
深度學(xué)習(xí)方法
LSTM+CRF
最經(jīng)典的 LSTM+CRF,端到端的判別式模型容燕,LSTM 利用過去的輸入特征梁呈,CRF 利用句子級(jí)的標(biāo)注信息,可以有效地使用過去和未來的標(biāo)注來預(yù)測(cè)當(dāng)前的標(biāo)注蘸秘。
評(píng)價(jià)指標(biāo)
評(píng)估 IR 系統(tǒng)或者文本分類的任務(wù)官卡,我們通常會(huì)用到 precision,recall醋虏,F(xiàn)1 這種 set-based metrics寻咒,見信息檢索評(píng)價(jià)的 Unranked Boolean Retrieval Model 部分,但是在這里對(duì) NER 這種 sequence 類型任務(wù)的評(píng)估颈嚼,如果用這些 metrics毛秘,可能出現(xiàn) boundary error 之類的問題。因?yàn)?NER 的評(píng)估是按每個(gè) entity 而不是每個(gè) token 來計(jì)算的粘舟,我們需要看 entity 的 boundary熔脂。
以下面一句話為例
First Bank of Chicago announced earnings...
正確的 NE 應(yīng)該是 First Bank of Chicago,類別是 ORG柑肴,然而系統(tǒng)識(shí)別了 Bank of Chicago霞揉,類別 ORG,也就是說晰骑,右邊界(right boundary)是對(duì)的适秩,但是左邊界(left boundary)是錯(cuò)誤的,
這其實(shí)是一個(gè)常見的錯(cuò)誤硕舆。
正確的標(biāo)注:
ORG - (1,4)
系統(tǒng):
ORG - (2,4)
而計(jì)算 precision秽荞,recall 的時(shí)候,我們會(huì)發(fā)現(xiàn)抚官,對(duì) ORG - (1,4) 而言扬跋,系統(tǒng)產(chǎn)生了一個(gè) false negative,對(duì) ORG - (2,4) 而言凌节,系統(tǒng)產(chǎn)生了一個(gè) false positive钦听!所以系統(tǒng)有了 2 個(gè)錯(cuò)誤。F1 measure 對(duì) precision倍奢,recall 進(jìn)行加權(quán)平均朴上,結(jié)果會(huì)更好一些,所以經(jīng)常用來作為 NER 任務(wù)的評(píng)估手段卒煞。另外痪宰,專家提出了別的建議,比如說給出 partial credit畔裕,如 MUC scorer metric衣撬,然而,對(duì)哪種 case 給多少的 credit柴钻,也需要精心設(shè)計(jì)淮韭。
其它-實(shí)體鏈接
實(shí)體識(shí)別完成之后還需要進(jìn)行歸一化,比如萬達(dá)集團(tuán)贴届、大連萬達(dá)集團(tuán)靠粪、萬達(dá)集團(tuán)有限公司這些實(shí)體其實(shí)是可以融合的。
主要步驟如下:
-
實(shí)體識(shí)別
命名實(shí)體識(shí)別毫蚓,詞典匹配 -
候選實(shí)體生成
表層名字?jǐn)U展占键,搜索引擎,查詢實(shí)體引用表 -
候選實(shí)體消歧
圖方法元潘,概率生成模型畔乙,主題模型,深度學(xué)習(xí)
補(bǔ)充一些開源系統(tǒng):
- http://acube.di.unipi.it/tagme
- https://github.com/parthatalukdar/junto
- http://orion.tw.rpi.edu/~zhengj3/wod/wikify.php
- https://github.com/yahoo/FEL
- https://github.com/yago-naga/aida
- http://www.nzdl.org/wikification/about.html
- http://aksw.org/Projects/AGDISTIS.html
- https://github.com/dalab/pboh-entity-linking
關(guān)系抽取
關(guān)系抽取需要從文本中抽取兩個(gè)或多個(gè)實(shí)體之間的語義關(guān)系翩概,主要方法有下面幾類:
- 基于模板的方法(hand-written patterns)
- 基于觸發(fā)詞/字符串
- 基于依存句法
-
監(jiān)督學(xué)習(xí)(supervised machine learning)
- 機(jī)器學(xué)習(xí)
- 深度學(xué)習(xí)(Pipeline vs Joint Model)
-
半監(jiān)督/無監(jiān)督學(xué)習(xí)(semi-supervised and unsupervised)
- Bootstrapping
- Distant supervision
- Unsupervised learning from the web
基于模板的方法
基于觸發(fā)詞/字符串
首先是基于字符串的 pattern牲距,舉一個(gè) IS-A 的關(guān)系
Agar is a substance prepared from a mixture of red algae, **such as** Gelidium, for laboratory or industrial use
通過 such as 可以判斷這是一種 IS-A 的關(guān)系返咱,由此可以寫的規(guī)則是:
“Y such as X ((, X)* (, and|or) X)”
“such Y as X”
“X or other Y”
“X and other Y”
“Y including X”
“Y, especially X”
另一個(gè)直覺是,更多的關(guān)系是在特定實(shí)體之間的牍鞠,所以可以用 NER 標(biāo)簽來幫助關(guān)系抽取咖摹,如
? located-in (ORGANIZATION, LOCATION)
? founded (PERSON, ORGANIZATION)
? cures (DRUG, DISEASE)
也就是說我們可以把基于字符串的 pattern 和基于 NER 的 pattern 結(jié)合起來,就有了下面的例子难述。
對(duì)應(yīng)的工具有 Stanford CoreNLP 的 tokensRegex萤晴。
基于依存句法
通常可以以動(dòng)詞為起點(diǎn)構(gòu)建規(guī)則胁后,對(duì)節(jié)點(diǎn)上的詞性和邊上的依存關(guān)系進(jìn)行限定店读。流程為:
小結(jié)
手寫規(guī)則的 優(yōu)點(diǎn) 是:
- 人工規(guī)則有高準(zhǔn)確率(high-precision)
- 可以為特定領(lǐng)域定制(tailor)
- 在小規(guī)模數(shù)據(jù)集上容易實(shí)現(xiàn),構(gòu)建簡單
缺點(diǎn): - 低召回率(low-recall)
- 特定領(lǐng)域的模板需要專家構(gòu)建攀芯,要考慮周全所有可能的 pattern 很難屯断,也很費(fèi)時(shí)間精力
- 需要為每條關(guān)系來定義 pattern
- 難以維護(hù)
- 可移植性差
監(jiān)督學(xué)習(xí)-機(jī)器學(xué)習(xí)
研究綜述
漆桂林,高桓,吳天星.知識(shí)圖譜研究進(jìn)展[J].情報(bào)工程,2017,3(1):004-025
Zhou[13] 在 Kambhatla 的基礎(chǔ)上加入了基本詞組塊信息和 WordNet,使用 SVM 作為分類器侣诺,在實(shí)體關(guān)系識(shí)別的準(zhǔn)確率達(dá)到了 55.5%裹纳,實(shí)驗(yàn)表明實(shí)體類別信息的特征有助于提高關(guān)系抽取性能; Zelenko[14] 等人使用淺層句法分析樹上最小公共子樹來表達(dá)關(guān)系實(shí)例紧武,計(jì)算兩顆子樹之間的核函數(shù)剃氧,通過訓(xùn)練例如 SVM 模型的分類器來對(duì)實(shí)例進(jìn)行分。但基于核函數(shù)的方法的問題是召回率普遍較低阻星,這是由于相似度計(jì)算過程匹配約束比較嚴(yán)格朋鞍,因此在后續(xù)研究對(duì)基于核函數(shù)改進(jìn)中,大部分是圍繞改進(jìn)召回率妥箕。但隨著時(shí)間的推移滥酥,語料的增多、深度學(xué)習(xí)在圖像和語音領(lǐng)域獲得成功畦幢,信息抽取逐漸轉(zhuǎn)向了基于神經(jīng)模型的研究坎吻,相關(guān)的語料被提出作為測(cè)試標(biāo)準(zhǔn),如 SemEval-2010 task 8[15]宇葱∈菡妫基于神經(jīng)網(wǎng)絡(luò)方法的研究有,Hashimoto[16] 等人利用 Word Embedding 方法從標(biāo)注語料中學(xué)習(xí)特定的名詞對(duì)的上下文特征黍瞧,然后將該特征加入到神經(jīng)網(wǎng)絡(luò)分類器中诸尽,在 SemEval-2010 task 8 上取得了 F1 值 82.8% 的效果∮〔基于神經(jīng)網(wǎng)絡(luò)模型顯著的特點(diǎn)是不需要加入太多的特征您机,一般可用的特征有詞向量、位置等,因此有人提出利用基于聯(lián)合抽取模型际看,這種模型可以同時(shí)抽取實(shí)體和其之間的關(guān)系咸产。聯(lián)合抽取模型的優(yōu)點(diǎn)是可以避免流水線模型存在的錯(cuò)誤累積[17-22]。其中比較有代表性的工作是[20]仲闽,該方法通過提出全新的全局特征作為算法的軟約束锐朴,進(jìn)而同時(shí)提高關(guān)系抽取和實(shí)體抽取的準(zhǔn)確率,該方法在 ACE 語料上比傳統(tǒng)的流水線方法 F1 提高了 1.5%蔼囊,;另一項(xiàng)工作是 [22]衣迷,利用雙層的 LSTM-RNN 模型訓(xùn)練分類模型畏鼓,第一層 LSTM 輸入的是詞向量、位置特征和詞性來識(shí)別實(shí)體的類型壶谒。訓(xùn)練得到的 LSTM 中隱藏層的分布式表達(dá)和實(shí)體的分類標(biāo)簽信息作為第二層 RNN 模型的輸入云矫,第二層的輸入實(shí)體之間的依存路徑,第二層訓(xùn)練對(duì)關(guān)系的分類汗菜,通過神經(jīng)網(wǎng)絡(luò)同時(shí)優(yōu)化 LSTM 和 RNN 的模型參數(shù)让禀,實(shí)驗(yàn)與另一個(gè)采用神經(jīng)網(wǎng)絡(luò)的聯(lián)合抽取模型[21]相比在關(guān)系分類上有一定的提升。但無論是流水線方法還是聯(lián)合抽取方法陨界,都屬于有監(jiān)督學(xué)習(xí)巡揍,因此需要大量的訓(xùn)練語料,尤其是對(duì)基于神經(jīng)網(wǎng)絡(luò)的方法菌瘪,需要大量的語料進(jìn)行模型訓(xùn)練腮敌,因此這些方法都不適用于構(gòu)建大規(guī)模的 Knowledge Base。
分類器
標(biāo)準(zhǔn)流程:
- 預(yù)先定義好想提取的關(guān)系集合
- 選擇相關(guān)的命名實(shí)體集合
- 尋找并標(biāo)注數(shù)據(jù)
選擇有代表性的語料庫
標(biāo)記命名實(shí)體
人工標(biāo)注實(shí)體間的關(guān)系
分成訓(xùn)練俏扩、開發(fā)糜工、測(cè)試集
- 設(shè)計(jì)特征
- 選擇并訓(xùn)練分類器
- 評(píng)估結(jié)果
為了提高 efficiency,通常我們會(huì)訓(xùn)練兩個(gè)分類器录淡,第一個(gè)分類器是 yes/no 的二分類捌木,判斷命名實(shí)體間是否有關(guān)系,如果有關(guān)系嫉戚,再送到第二個(gè)分類器刨裆,給實(shí)體分配關(guān)系類別。這樣做的好處是通過排除大多數(shù)的實(shí)體對(duì)來加快分類器的訓(xùn)練過程彬檀,另一方面崔拥,對(duì)每個(gè)任務(wù)可以使用 task-specific feature-set。
可以采用的分類器可以是 MaxEnt凤覆、Naive Bayes链瓦、SVM 等。
特征
直接上例子:
E.g., American Airlines, a unit of AMR, immediately matched the move, spokesman Tim Wagner said
Mention 1: American Airlines
Mention 2: Tim Wagner
用到的特征可以有:
Word features
- Headwords of M1 and M2, and combination
- M1: Airlines, M2: Wagner, Combination: Airlines-Wagner
- Bag of words and bigrams in M1 and M2
- {American, Airlines, Tim, Wagner, American Airlines, Tim Wagner}
- Words or bigrams in particular positions left and right of M1/M2
- M2: -1 spokesman
- M2: +1 said
- Bag of words or bigrams between the two entities
- {a, AMR, of, immediately, matched, move, spokesman, the, unit}
Named Entities Type and Mention Level Features
- Named-entities types
M1: ORG
M2: PERSON - Concatenation of the two named-entities types
ORG-PERSON - Entity Level of M1 and M2 (NAME, NOMINAL, PRONOUN)
M1: NAME [it or he would be PRONOUN]
M2: NAME [the company would be NOMINAL]
Parse Features
- Base syntactic chunk sequence from one to the other
NP NP PP VP NP NP - Constituent path through the tree from one to the other
NP ↑ NP ↑ S ↑ S ↓ NP - Dependency path
Airlines matched Wagner said
Gazetteer and trigger word features
- Trigger list for family: kinship terms
parent, wife, husband, grandparent, etc. [from WordNet] -
Gazetteer:
List of useful geo or geopolitical words
Country name list
Other sub-entities
或者從另一個(gè)角度考慮,可以分為
- 輕量級(jí)
實(shí)體的特征慈俯,包括實(shí)體前后的詞渤刃,實(shí)體類型,實(shí)體之間的距離等 - 中等量級(jí)
考慮 chunk贴膘,如 NP卖子,VP,PP 這類短語 - 重量級(jí)
考慮實(shí)體間的依存關(guān)系刑峡,實(shí)體間樹結(jié)構(gòu)的距離洋闽,及其他特定的結(jié)構(gòu)信息
監(jiān)督學(xué)習(xí)-深度學(xué)習(xí)
深度學(xué)習(xí)方法又分為兩大類,pipeline 和 joint model
- Pipeline
把實(shí)體識(shí)別和關(guān)系分類作為兩個(gè)完全獨(dú)立的過程突梦,不會(huì)相互影響诫舅,關(guān)系的識(shí)別依賴于實(shí)體識(shí)別的效果 - Joint Model
實(shí)體識(shí)別和關(guān)系分類的過程共同優(yōu)化
深度學(xué)習(xí)用到的特征通常有:
- Position embeddings
- Word embeddings
- Knowledge embeddings
模型通常有 CNN/RNN + attention,損失函數(shù) ranking loss 要優(yōu)于交叉熵宫患。
Pipeline
CR-CNN
Santos et. al Computer Science 2015
輸入層 word embedding + position embedding刊懈,用 6 個(gè)卷積核 + max pooling 生成句子向量表示,與關(guān)系(類別)向量做點(diǎn)積求相似度娃闲,作為關(guān)系分類的結(jié)果虚汛。
損失函數(shù)用的是 pairwise ranking loss function
訓(xùn)練時(shí)每個(gè)樣本有兩個(gè)標(biāo)簽,正確標(biāo)簽 y+ 和錯(cuò)誤標(biāo)簽 c-皇帮,m+ 和 m- 對(duì)應(yīng)了兩個(gè) margin卷哩,
另外還有一些 tips:
- 負(fù)樣本選擇
最大的標(biāo)簽,便于更好地將比較類似的兩種 label 分開
- 加了一個(gè) Artifical Class捌年,表示兩個(gè)實(shí)體沒有任何關(guān)系瓢娜,可以理解為 Other/拒識(shí),訓(xùn)練時(shí)不考慮這一類礼预,損失函數(shù)的第一項(xiàng)直接置 0眠砾,預(yù)測(cè)時(shí)如果其他 actual classes 的分?jǐn)?shù)都為負(fù),那么就分為 Other托酸,對(duì)于整體的 performance 有提升
- position feature 是每個(gè) word 與兩個(gè) entity 的相對(duì)距離褒颈,強(qiáng)調(diào)了兩個(gè)實(shí)體的作用,認(rèn)為距離實(shí)體近的單詞更重要励堡,PE 對(duì)效果的提升明顯谷丸,但實(shí)際上只用兩個(gè)實(shí)體間的 word embedding 作為輸入代替整個(gè)句子的 word embedding+position embedding,也有相近效果应结,且輸入更少實(shí)現(xiàn)更簡單刨疼。
Att-CNN
Relation Classification via Multi-Level Attention CNNs
用了兩個(gè)層面的 Attention泉唁,一個(gè)是輸入層對(duì)兩個(gè) entity 的注意力,另一個(gè)是在卷積后的 pooling 階段揩慕,用 **attention pooling 代替 max pooling **來加強(qiáng)相關(guān)性強(qiáng)的詞的權(quán)重亭畜。
輸入特征還是 word embedding 和 position embedding,另外做了 n-gram 的操作迎卤,取每個(gè)詞前后 k/2 個(gè)詞作為上下文信息拴鸵,每個(gè)詞的 embedding size 就是。這個(gè)華東窗口的效果其實(shí)和卷積一樣蜗搔,但因?yàn)檩斎雽雍笾苯咏恿薬ttention劲藐,所以這里先做了n-gram。
第一層 input attention 用兩個(gè)對(duì)角矩陣分別對(duì)應(yīng)兩個(gè) entity樟凄,對(duì)角線各元素是輸入位置對(duì)應(yīng)詞與實(shí)體間的相關(guān)性分?jǐn)?shù) 聘芜,通過詞向量內(nèi)積衡量相關(guān)性,然后softmax歸一化不同,每個(gè)詞對(duì)兩個(gè)實(shí)體各有一個(gè)權(quán)重
,然后進(jìn)行加權(quán)把權(quán)重與輸入
融合溶耘,有三種融合方法二拐,求平均、拼接凳兵、相減(類似transE操作百新,把relation看做兩個(gè)權(quán)重的差)。這一層的attention捕捉的是句中單詞與實(shí)體的詞向量距離庐扫,但其實(shí)有些線索詞如caused與實(shí)體的相似度不高但很重要饭望。
接著做正常卷積,然后第二層用 attention pooling 代替 max-pooling形庭,bilinear 方法計(jì)算相關(guān)度铅辞,然后歸一化,再做 max pooling 得到模型最后的輸出萨醒。
另外斟珊,這篇 paper 還改進(jìn)了 Santos 提出的 Ranking loss,Ranking loss 里的 distance function 直接用了網(wǎng)絡(luò)的輸出富纸,而這里定義了新的 distance function 來衡量模型輸出 和正確標(biāo)簽對(duì)應(yīng)的向量relation embedding
的距離囤踩。
用了 L2 正則,然后基于這一距離定義了目標(biāo)函數(shù):
兩個(gè)距離分別為網(wǎng)絡(luò)輸出與正例和與負(fù)例的距離晓褪,負(fù)例照例用了所有錯(cuò)誤類別中與輸出最接近的堵漱,margin 設(shè)置的 1。
這應(yīng)該是目前最好的方法涣仿,SemEval-2010 Task 8 上的 F1 值到了 88勤庐。
Att-BiLSTM 模型
Peng Zhou et. al ACL 2016
CNN 可以處理文本較短的輸入,但是長距離的依賴還是需要 LSTM,這一篇就是中規(guī)中矩的 BiLSTM+Attn 來做關(guān)系分類任務(wù)埃元。
評(píng)測(cè)
各方法在 SemEval-2010 Task 8 上的評(píng)測(cè):
Joint Model
Pipeline的方法會(huì)導(dǎo)致誤差的傳遞涝涤,端到端的方法直覺上會(huì)更優(yōu)
LSTM-RNNs
Miwa et. al ACL 2016
用端到端的方式進(jìn)行抽取,實(shí)體識(shí)別和關(guān)系分類的參數(shù)共享岛杀,不過判斷過程并沒有進(jìn)行交互阔拳。
三個(gè)表示層
- Embedding layer (word embeddings layer)
用到了詞向量、詞性POS tags
类嗤、依存句法標(biāo)簽Dependency types
糊肠、實(shí)體標(biāo)簽entity labels
- Sequence layer (word sequence based LSTM-RNN layer)
BiLSTM 對(duì)句子進(jìn)行編碼,輸入是 word embedding 和 POS embedding 的拼接遗锣,輸出是兩個(gè)方向的隱層單元輸出的拼接
然后進(jìn)行實(shí)體識(shí)別货裹,還是序列標(biāo)注任務(wù),兩層 NN 加一個(gè) softmax 輸出標(biāo)簽精偿。打標(biāo)簽的方法用 BILOU(Begin, Inside, Last, Outside, Unit)弧圆,解碼時(shí)考慮到當(dāng)前標(biāo)簽依賴于上一個(gè)標(biāo)簽的問題,輸入在 sequence layer 層的輸出上還加了上一時(shí)刻的 label embedding笔咽,用 schedule sampling 的方式來決定用 gold label 還是 predict label
- Dependency layer(dependency subtree based LSTM-RNN layer)
用 tree-structured BiLSTM-RNNs 來表示 relation candidate搔预,捕捉了 top-down 和 bottom-up 雙向的關(guān)系,輸入是 sequence layer 的輸出叶组,dependency type embedding
拯田,以及l(fā)abel embedding
,輸出是
關(guān)系分類主要還是利用了依存樹中兩個(gè)實(shí)體之間的最短路徑(shortest path)甩十。主要過程是找到 sequence layer 識(shí)別出的所有實(shí)體船庇,對(duì)每個(gè)實(shí)體的最后一個(gè)單詞進(jìn)行排列組合,再經(jīng)過 dependency layer 得到每個(gè)組合的侣监,然后同樣用兩層NN+softmax對(duì)該組合進(jìn)行分類鸭轮,輸出這對(duì)實(shí)體的關(guān)系類別。
第一項(xiàng)是 bottom-up LSTM-RNN 的 top LSTM unit橄霉,代表實(shí)體對(duì)的最低公共父節(jié)點(diǎn)(the lowest common ancestor of the target word pair p)张弛,第二、三項(xiàng)分別是兩個(gè)實(shí)體對(duì)應(yīng)的 top-down LSTM-RNN 的 hidden state酪劫。
不同模型在 SemEval-2010 Task 8 數(shù)據(jù)集上的效果比較:
與我們的直覺相反吞鸭,joint model 不一定能起正作用。不過上面的比較能得到的另一個(gè)結(jié)論是:外部資源可以來優(yōu)化模型覆糟。
監(jiān)督學(xué)習(xí)-評(píng)價(jià)指標(biāo)
最常用的 Precision, Recall, F1
監(jiān)督學(xué)習(xí)-小結(jié)
如果測(cè)試集和訓(xùn)練集很相似刻剥,那么監(jiān)督學(xué)習(xí)的準(zhǔn)確率會(huì)很高,然而滩字,它對(duì)不同 genre 的泛化能力有限造虏,模型比較脆弱御吞,也很難擴(kuò)展新的關(guān)系;另一方面漓藕,獲取這么大的訓(xùn)練集代價(jià)也是昂貴的陶珠。
半監(jiān)督學(xué)習(xí)
研究綜述
漆桂林,高桓,吳天星.知識(shí)圖譜研究進(jìn)展[J].情報(bào)工程,2017,3(1):004-025
Brin[23]等人通過少量的實(shí)例學(xué)習(xí)種子模板,從網(wǎng)絡(luò)上大量非結(jié)構(gòu)化文本中抽取新的實(shí)例享钞,同時(shí)學(xué)習(xí)新的抽取模板揍诽,其主要貢獻(xiàn)是構(gòu)建了 DIPRE 系統(tǒng);Agichtein[24]在 Brin 的基礎(chǔ)上對(duì)新抽取的實(shí)例進(jìn)行可信度的評(píng)分和完善關(guān)系描述的模式栗竖,設(shè)計(jì)實(shí)現(xiàn)了 Snowball 抽取系統(tǒng)暑脆;此后的一些系統(tǒng)都沿著 Bootstrap 的方法,但會(huì)加入更合理的對(duì) pattern 描述狐肢、更加合理的限制條件和評(píng)分策略添吗,或者基于先前系統(tǒng)抽取結(jié)果上構(gòu)建大規(guī)模 pattern;如 NELL(Never-EndingLanguage Learner)系統(tǒng)[25-26]份名,NELL 初始化一個(gè)本體和種子 pattern碟联,從大規(guī)模的 Web 文本中學(xué)習(xí),通過對(duì)學(xué)習(xí)到的內(nèi)容進(jìn)行打分來提高準(zhǔn)確率僵腺,目前已經(jīng)獲得了 280 萬個(gè)事實(shí)鲤孵。
Seed-based or bootstrapping approaches
半監(jiān)督學(xué)習(xí)主要是利用少量的標(biāo)注信息進(jìn)行學(xué)習(xí),這方面的工作主要是基于 Bootstrap 的方法以及遠(yuǎn)程監(jiān)督方法(distance supervision)想邦】阄疲基于 Bootstrap 的方法 主要是利用少量實(shí)例作為初始種子(seed tuples)的集合委刘,然后利用 pattern 學(xué)習(xí)方法進(jìn)行學(xué)習(xí)丧没,通過不斷迭代從非結(jié)構(gòu)化數(shù)據(jù)中抽取實(shí)例,然后從新學(xué)到的實(shí)例中學(xué)習(xí)新的 pattern 并擴(kuò)充 pattern 集合锡移,尋找和發(fā)現(xiàn)新的潛在關(guān)系三元組呕童。遠(yuǎn)程監(jiān)督 方法主要是對(duì)知識(shí)庫與非結(jié)構(gòu)化文本對(duì)齊來自動(dòng)構(gòu)建大量訓(xùn)練數(shù)據(jù),減少模型對(duì)人工標(biāo)注數(shù)據(jù)的依賴淆珊,增強(qiáng)模型跨領(lǐng)域適應(yīng)能力夺饲。
Relation Bootstrapping
? Gather a set of seed pairs that have relation R
? Iterate:
- Find sentences with these pairs
- Look at the context between or around the pair and generalize the context to create patterns
- Use the patterns for grep for more pairs
看一個(gè)完整的例子
從 5 對(duì)種子開始,找到包含種子的實(shí)例施符,替換關(guān)鍵詞往声,形成 pattern,迭代匹配戳吝,就為(authoer,book) 抽取到了relation pattern, x, by y, 和x, one of y's
優(yōu)點(diǎn):
- 構(gòu)建成本低浩销,適合大規(guī)模構(gòu)建
- 可以發(fā)現(xiàn)新的關(guān)系(隱含的)
缺點(diǎn): - 對(duì)初始給定的種子集敏感
- 存在語義漂移問題
- 結(jié)果準(zhǔn)確率較低
- 缺乏對(duì)每一個(gè)結(jié)果的置信度的計(jì)算
Snowball
對(duì) Dipre 算法的改進(jìn)。Snowball 也是一種相似的迭代算法听哭,Dipre 的 X,Y 可以是任何字符串慢洋,而 Snowball 要求 X,Y 必須是命名實(shí)體,并且 Snowball 對(duì)每個(gè) pattern 計(jì)算了 confidence value
Group instances w/similar prefix, middle, suffix, extract patterns
? But require that X and Y be named entites
? And compute a confidence for each pattern
ORGANIZATION {'s, in, headquaters} LOCATION
LOCATION {in, based} ORGANIZATION
Distant Supervision
基本假設(shè):兩個(gè)實(shí)體如果在知識(shí)庫中存在某種關(guān)系,則包含該兩個(gè)實(shí)體的非結(jié)構(gòu)化句子均能表示出這種關(guān)系株汉。
具體步驟:
- 從知識(shí)庫中抽取存在關(guān)系的實(shí)體對(duì)
- 從非結(jié)構(gòu)化文本中抽取含有實(shí)體對(duì)的句子作為訓(xùn)練樣例面哼,然后提取特征分類器
Distant Supervision 結(jié)合了 bootstrapping 和監(jiān)督學(xué)習(xí)的長處,使用一個(gè)大的 corpus 來得到海量的 seed example太防,然后從這些 example 中創(chuàng)建特征妻顶,最后與有監(jiān)督的分類器相結(jié)合。
與監(jiān)督學(xué)習(xí)相似的是這種方法用大量特征訓(xùn)練了分類器杏头,通過已有的知識(shí)進(jìn)行監(jiān)督盈包,不需要用迭代的方法來擴(kuò)充 pattern。
與無監(jiān)督學(xué)習(xí)相似的是這種方法采用了大量沒有標(biāo)注的數(shù)據(jù)醇王,對(duì)訓(xùn)練語料庫中的 genre 并不敏感呢燥,適合泛化。
PCNN+Attention
Kang Liu et.al AI 2017
PCNN
單一池化難以刻畫不同上下文對(duì)句向量的貢獻(xiàn)寓娩,而進(jìn)行分段池化叛氨,根據(jù)兩個(gè)實(shí)體把句子分成三段然后對(duì)不同部分分別進(jìn)行池化,刻畫更為精準(zhǔn)棘伴。
另見 Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks-
Sentence-level attention
遠(yuǎn)程監(jiān)督常用的 multi-instance learning寞埠,只選取最有可能的一個(gè)句子進(jìn)行訓(xùn)練預(yù)測(cè),丟失了大部分信息焊夸,句子層面的 attention 對(duì) bag 里所有句子進(jìn)行加權(quán)作為 bag 的特征向量仁连,保留盡可能多的信息,能動(dòng)態(tài)減少噪聲句的權(quán)重阱穗,有利于解決錯(cuò)誤標(biāo)記的問題饭冬。
另見 Neural Relation Extraction with Selective Attention over Instances
這里對(duì)兩個(gè)實(shí)體向量作差來表示 relation 向量,如果一個(gè)實(shí)例能表達(dá)這種關(guān)系揪阶,那么這個(gè)實(shí)例的向量表達(dá)應(yīng)該和
高度相似昌抠,根據(jù)這個(gè)假設(shè)來計(jì)算句向量和關(guān)系向量的相關(guān)性,其中
表示垂直級(jí)聯(lián)鲁僚,
是PCNN得到的特征輸出炊苫,softmax歸一化再進(jìn)行加權(quán),最后再過softmax進(jìn)行分類冰沙。
-
Entity representation
引入了實(shí)體的背景知識(shí)(Freebase 和 Wikipedia 提供的實(shí)體描述信息)侨艾,增強(qiáng)了實(shí)體表達(dá)(entity representation),D 是 (entity, description) 的集合表示拓挥,是實(shí)體表示唠梨,
通過另一個(gè)傳統(tǒng) CNN 對(duì)收集到的實(shí)體的描述句抽特征得到
希望和
盡可能相似,定義兩者間的誤差:
最后的損失函數(shù)是交叉熵和實(shí)體描述誤差的加權(quán)和:
小結(jié)
- 優(yōu)點(diǎn):
可以利用豐富的知識(shí)庫信息撞叽,減少一定的人工標(biāo)注 - 缺點(diǎn):
假設(shè)過于肯定姻成,引入大量噪聲插龄,存在語義漂移現(xiàn)象
很難發(fā)現(xiàn)新的關(guān)系
無監(jiān)督學(xué)習(xí)
研究綜述
Bollegala[27]從搜索引擎摘要中獲取和聚合抽取模板,將模板聚類后發(fā)現(xiàn)由實(shí)體對(duì)代表的隱含語義關(guān)系; Bollegala[28]使用聯(lián)合聚類(Co-clustering)算法科展,利用關(guān)系實(shí)例和關(guān)系模板的對(duì)偶性均牢,提高了關(guān)系模板聚類效果,同時(shí)使用 L1 正則化 Logistics 回歸模型才睹,在關(guān)系模板聚類結(jié)果中篩選出代表性的抽取模板徘跪,使得關(guān)系抽取在準(zhǔn)確率和召回率上都有所提高。
無監(jiān)督學(xué)習(xí)一般利用語料中存在的大量冗余信息做聚類琅攘,在聚類結(jié)果的基礎(chǔ)上給定關(guān)系垮庐,但由于聚類方法本身就存在難以描述關(guān)系和低頻實(shí)例召回率低的問題,因此無監(jiān)督學(xué)習(xí)一般難以得很好的抽取效果坞琴。
Open IE:
Open Information Extraction 從網(wǎng)絡(luò)中抽取關(guān)系哨查,沒有訓(xùn)練數(shù)據(jù),沒有關(guān)系列表剧辐。過程如下:
1. Use parsed data to train a “trustworthy tuple” classifier
2. Single-pass extract all relations between NPs, keep if trustworthy
3. Assessor ranks relations based on text redundancy
E.g.,
(FCI, specializes in, sobware development)
(Tesla, invented, coil transformer)
半監(jiān)督/無監(jiān)督學(xué)習(xí)-評(píng)價(jià)指標(biāo)
因?yàn)槌槿〉氖切碌年P(guān)系寒亥,并不能準(zhǔn)確的計(jì)算 precision 和 recall,所以我們只能估計(jì)荧关,從結(jié)果集中隨機(jī)抽取一個(gè)關(guān)系的 sample溉奕,然后人工來檢驗(yàn)準(zhǔn)確率
也可以計(jì)算不同 recall level 上的 precision,比如說分別計(jì)算在前 1000忍啤,10,000加勤,100,000 個(gè)新的關(guān)系中的 precision,在各個(gè)情況下隨機(jī)取樣同波。
然而鳄梅,并沒有方法來計(jì)算 recall。