【信息抽取】介绍一种端到端的关系抽取方法
事物、概念之間的關(guān)系是人類知識中非常重要的一個部分,但是他們通常隱藏在海量的非結(jié)構(gòu)文本中。為了從文本中抽取這些關(guān)系事實(shí),從早期的模式匹配到近年的神經(jīng)網(wǎng)絡(luò),大量的研究在多年前就已經(jīng)展開。
然而,隨著互聯(lián)網(wǎng)的爆炸發(fā)展,人類的知識也隨之飛速的增長,因而對關(guān)系抽取(Relation Extraction, RE)提出了更高的要求,需要一個有效的RE系統(tǒng),能夠利用更多的數(shù)據(jù);有效的獲取更多的關(guān)系;高效的處理更多復(fù)雜的文本;具有較好的擴(kuò)展性,能夠遷移到更多的領(lǐng)域。
本文首先介紹一種端到端的關(guān)系抽取方法,即能夠通過一個模型,共享參數(shù),進(jìn)行實(shí)體識別和關(guān)系分類。
作者&編輯 | 小Dream哥
1 導(dǎo)論?
我們前面介紹的深度學(xué)習(xí)方法進(jìn)行關(guān)系的分類,包括卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò),這類模型主要關(guān)注的是關(guān)系分類的問題,且在此類問題中取得了一定的進(jìn)展。
但是,在現(xiàn)實(shí)的場景中,我們遇到最多的問題是,需要直接從非結(jié)構(gòu)的文檔中抽取出<e1, r, e2>的三元組。
如果采用上述的模型,就需要先用NER任務(wù),講文本的中的實(shí)體抽取出來;隨后,基于NER的結(jié)構(gòu),用關(guān)系分類模型對抽取到的實(shí)體的關(guān)系進(jìn)行識別。
目前得到的一種共識是,NER任務(wù)會有誤差,這種誤差會積累,然后傳遞到關(guān)系分類的任務(wù)中去,從整體的效果會變差。
進(jìn)而出現(xiàn)了一些聯(lián)合的抽取模型,在一個模型里就能端到端的抽取出實(shí)體及他們之間的關(guān)系。
Suncong, Zheng, Yuexing, etc. Joint entity and relation extraction based on a hybrid neural network[J]. Neurocomputing, 2017.
2 網(wǎng)絡(luò)結(jié)構(gòu)
如上圖所示是該基于循環(huán)神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的實(shí)體及其關(guān)系分類的聯(lián)合抽取模型的框架圖,從圖中可知,模型的輸入是一段話;輸出包括一個序列標(biāo)注序列和一個預(yù)測的類別,實(shí)現(xiàn)了實(shí)體抽取和關(guān)系分類的聯(lián)合抽取。
聯(lián)合抽取的一個主要思想是參數(shù)共享,這個模型可以分開去看,包括實(shí)體抽取和關(guān)系分類兩個部分。兩個部分進(jìn)行了部分的參數(shù)共享,可以任務(wù)關(guān)系分類模型共享了實(shí)體抽取模型特征抽取過程的參數(shù),獲得很多實(shí)體以及文本語義及文法特征,從而能夠較好的進(jìn)行關(guān)系分類。
下面我們來詳細(xì)介紹這個模型的結(jié)構(gòu):
1)公共特征抽取
模型的底座,公共部分,是一個雙向LSTM網(wǎng)絡(luò),通過這個網(wǎng)絡(luò),進(jìn)行輸入文本的特征抽取及表征。
2) 實(shí)體抽取部分
實(shí)體識別部分的輸入是上述雙向LSTM網(wǎng)絡(luò)T(T為輸入序列的長度)個時刻的編碼<h1,h2,h3,...hT>。
實(shí)體抽取部分,針對輸入<h1,h2,h3,...hT>先做一個解碼操作,解碼部分引入了一個decoding LSTM層,該層LSTM的解碼過程,可參考下面的計(jì)算公式:
其中,ht是該時刻encoding的編碼向量;st-1為上一個時刻decoding LSTM的cell state;Tt-1為上一個時刻解碼器的序列標(biāo)記預(yù)測向量;(ps,it=st)
再通過一個線性變化,得到當(dāng)前時刻的序列標(biāo)記預(yù)測向量:
最后接一個softmax層,預(yù)測是每一個標(biāo)記的概率。
這里解碼層跟現(xiàn)今大部分的模型不一樣,如今的NER模型通常采用CRF,感興趣的同學(xué),可以試試效果會不會變好。
3) 關(guān)系分類層
如上圖所示,是關(guān)系分類部分的結(jié)構(gòu)圖。從圖中可知,關(guān)系分類部分采用的是卷積神經(jīng)網(wǎng)絡(luò)。
該部分的輸入包括2個部分:
1.實(shí)體的編碼向量,因?yàn)橛械膶?shí)體會包含幾個字,會將該實(shí)體內(nèi)所有字的編碼向量相加,得到實(shí)體的編碼向量he1和he2。
2.實(shí)體間的詞向量。
講實(shí)體的編碼向量及實(shí)體間的詞向量拼接在一起,輸入到卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行進(jìn)一步的解碼。
解碼后經(jīng)過一個最大池化層,改池化層的用法跟前面講的池化是一樣的邏輯,忘記的讀者可以出門左轉(zhuǎn)看看。
最后,經(jīng)過一個softmax層就可以輸出這兩個實(shí)體是某種關(guān)系的概率了。
3 訓(xùn)練過程
訓(xùn)練過程采用RMSprop優(yōu)化器,NER喝RC的損失函數(shù)分別為:
需要注意的一點(diǎn)是,模型在訓(xùn)練時,先把NER模型訓(xùn)練一段時間,獲得一定的準(zhǔn)確度后,再進(jìn)一步加入關(guān)系分類模型一起訓(xùn)練。
有意思的一點(diǎn)是,作者認(rèn)為大部分有關(guān)系的實(shí)體,他們之間相差的詞不會超過20個,所以再模型里加了一個Lmax的超參數(shù),假如兩個實(shí)體間的距離超過了20,則認(rèn)為他們沒有任何關(guān)系。
其實(shí)這個結(jié)論,應(yīng)該只在作者訓(xùn)練的數(shù)據(jù)集(ACE05)有效,在目前很多的數(shù)據(jù)集都存在大量的“遠(yuǎn)距離實(shí)體間的關(guān)系”。
總結(jié)
聯(lián)合模型的想法其實(shí)挺樸素的,主要基于如下兩個點(diǎn):
1.減少模型間的誤差傳遞。
2.讓NER和RC模型共享參數(shù),讓RC模型能夠充分利用NER模型獲取到的實(shí)體間的語義信息。
基于此,出現(xiàn)了很多的聯(lián)合抽取模型,我們下次再介紹一種,看看二者的差別,進(jìn)一步理解聯(lián)合抽取的思想。
下期預(yù)告:聯(lián)合關(guān)系抽取模型
知識星球推薦
掃描上面的二維碼,就可以加入我們的星球,助你成長為一名合格的自然語言處理算法工程師。
知識星球主要有以下內(nèi)容:
(1) 聊天機(jī)器人。
(2) 知識圖譜。
(3) NLP預(yù)訓(xùn)練模型。
轉(zhuǎn)載文章請后臺聯(lián)系
侵權(quán)必究
往期精選
【完結(jié)】 12篇文章帶你完全進(jìn)入NLP領(lǐng)域,掌握核心技術(shù)
【年終總結(jié)】2019年有三AI NLP做了什么,明年要做什么?
【NLP-詞向量】詞向量的由來及本質(zhì)
【NLP-詞向量】從模型結(jié)構(gòu)到損失函數(shù)詳解word2vec
【NLP-NER】什么是命名實(shí)體識別?
【NLP-NER】命名實(shí)體識別中最常用的兩種深度學(xué)習(xí)模型
【NLP-NER】如何使用BERT來做命名實(shí)體識別
【NLP-ChatBot】我們熟悉的聊天機(jī)器人都有哪幾類?
【NLP-ChatBot】搜索引擎的最終形態(tài)之問答系統(tǒng)(FAQ)詳述
【NLP-ChatBot】能干活的聊天機(jī)器人-對話系統(tǒng)概述
【知識圖譜】人工智能技術(shù)最重要基礎(chǔ)設(shè)施之一,知識圖譜你該學(xué)習(xí)的東西
【知識圖譜】知識表示:知識圖譜如何表示結(jié)構(gòu)化的知識?
【知識圖譜】如何構(gòu)建知識體系:知識圖譜搭建的第一步
【知識圖譜】獲取到知識后,如何進(jìn)行存儲和便捷的檢索?
【知識圖譜】知識推理,知識圖譜里最“人工智能”的一段
【文本信息抽取與結(jié)構(gòu)化】目前NLP領(lǐng)域最有應(yīng)用價(jià)值的子任務(wù)之一
【文本信息抽取與結(jié)構(gòu)化】詳聊文本的結(jié)構(gòu)化【上】
【文本信息抽取與結(jié)構(gòu)化】詳聊文本的結(jié)構(gòu)化【下】
【信息抽取】NLP中關(guān)系抽取的概念,發(fā)展及其展望
【信息抽取】如何使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行關(guān)系抽取
【NLP實(shí)戰(zhàn)】tensorflow詞向量訓(xùn)練實(shí)戰(zhàn)
【NLP實(shí)戰(zhàn)系列】樸素貝葉斯文本分類實(shí)戰(zhàn)
【NLP實(shí)戰(zhàn)系列】Tensorflow命名實(shí)體識別實(shí)戰(zhàn)
【NLP實(shí)戰(zhàn)】如何基于Tensorflow搭建一個聊天機(jī)器人
【NLP實(shí)戰(zhàn)】基于ALBERT的文本相似度計(jì)算
總結(jié)
以上是生活随笔為你收集整理的【信息抽取】介绍一种端到端的关系抽取方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【总结】有三AI大量原创视频和图文资料,
- 下一篇: 【杂谈】有三AI专业版学习扑克牌上线,一