實(shí)體關(guān)系抽取介紹
實(shí)體關(guān)系抽(RE拆撼, Relation Extraction)取任務(wù)是信息抽取中重要的一個(gè)子任務(wù),同時(shí)也是知識(shí)圖譜構(gòu)建過程中必不可少的一個(gè)環(huán)節(jié)需纳。所謂關(guān)系抽取是指從含有實(shí)體對的句子中,抽取出該實(shí)體對對應(yīng)的關(guān)系,比如句子“馬化騰在1998年11月創(chuàng)立了騰訊”舷礼,抽取結(jié)果是<馬化騰/人名,創(chuàng)立/關(guān)系郊闯,騰訊/公司>妻献。這個(gè)過程分為兩個(gè)任務(wù),一個(gè)是檢測出句子中是否含有實(shí)體對团赁,第二個(gè)任務(wù)是句子中是否含有實(shí)體對間的關(guān)系育拨。筆者結(jié)合近幾天對實(shí)體抽取相關(guān)研究的調(diào)研進(jìn)行匯總,介紹下RE的相關(guān)研發(fā)方法及工業(yè)屆常用的一些思路欢摄。
研究方法思維導(dǎo)圖
將RE的研究思路匯總成如下框圖熬丧。
任務(wù)方案簡述
關(guān)系抽取也可以看做是一個(gè)機(jī)器學(xué)習(xí)任務(wù),因此可以從三個(gè)反向進(jìn)行解決怀挠,如上圖所示析蝴。
基于監(jiān)督學(xué)習(xí)方法
根據(jù)RE的特點(diǎn),目的是從句子中抽取或判斷出實(shí)體對的某種關(guān)系绿淋,因此一種思路是將該任務(wù)等于分類任務(wù)去對待闷畸,另一種思路是基于kenel的方法進(jìn)行求解。
Classification Model
基于分類模型吞滞,那么傳統(tǒng)的分類模型都可以用來完成改任務(wù)佑菩,典型的流程是設(shè)定好關(guān)系類別,選擇合適的特征(該任務(wù)中裁赠,通常特征會(huì)包括POS殿漠,NER,Position佩捞,句法解析結(jié)果)绞幌, 之后選擇合適的分類器,然后訓(xùn)練一忱、預(yù)測莲蜘。該方式比較傳統(tǒng),因此問題也比較突出掀潮,需要較多的人工干預(yù)特征才能獲得較好的效果菇夸。
Deep Learning Model
由于近兩年以來深度學(xué)習(xí)在語音和圖像領(lǐng)域的效果,因此越來越多的學(xué)著將深度學(xué)習(xí)技術(shù)運(yùn)用于NLP任務(wù)仪吧,同時(shí)也獲得了較好的效果庄新。針對于RE問題,同樣是將其看做一個(gè)分類任務(wù),采用CNN抽取特征择诈,然后利用softmax獲得最終的分類結(jié)果械蹋。常見的架構(gòu)是,
利用word embedding 技術(shù)獲得句子中每個(gè)詞/字的embedding羞芍,或者利用pre-trianed embedding作為初始化
同時(shí)獲得句子中每個(gè)詞的Position embedding哗戈,這里的位置是指當(dāng)前的每個(gè)詞相對于實(shí)體對中兩個(gè)實(shí)體的位置,比如“馬化騰 在 1998年11月 創(chuàng)立 了 騰訊”荷科,馬化騰和騰訊是兩個(gè)實(shí)體唯咬,比如“在”這個(gè)字,到“馬化騰”的距離是-1畏浆, 到“騰訊”這個(gè)詞的距離是4胆胰,然后對這兩個(gè)值進(jìn)行embedding得到 Position embedding。
將之前步驟中的向量進(jìn)行拼接當(dāng)做sentence的表示刻获,然后利用CNN抽取特征
利用softmax或其他函數(shù)獲得最終的輸出
基于深度學(xué)習(xí)的方式采用了end to end 的思想蜀涨,不要太多人工設(shè)計(jì)的特征,從整個(gè)系統(tǒng)來說最多只需要pre-trained embedding 其他均不需要人為單獨(dú)設(shè)計(jì)特征蝎毡。但針對于傳統(tǒng)CNN模型還是存在較多局限性厚柳,眾多學(xué)者都進(jìn)行了較多的改進(jìn),主要有:
CNN + max pooling沐兵, 通過pooling獲得相同規(guī)格的特征别垮,避免不同句子長度造成的影響
不同 卷積filter協(xié)同工作,利用不同大小的卷積核提取更多的特征
Multi-instance Learning痒筒, 不具體標(biāo)注單個(gè)句子宰闰,而是標(biāo)注某個(gè)文檔集或者句子集茬贵,主要是依據(jù)假設(shè):如果一個(gè)實(shí)體對出現(xiàn)在一個(gè)bag集中簿透,那么至少有一個(gè)doc或者sentence含有該實(shí)體對的關(guān)系。
Piece-wise CNN解藻,在進(jìn)行CNN之前老充,根據(jù)兩個(gè)實(shí)體的位置對sentence vector 分為三塊,分別進(jìn)行CNN螟左,以獲得更多的結(jié)構(gòu)性信息
CNN + Attention啡浊, 在卷積中加入注意力機(jī)制,使得含有關(guān)系的句子獲得更多的關(guān)注
以上就是采用DL的方法來進(jìn)行RE任務(wù)常用的方法胶背。
Distant Supervision
遠(yuǎn)程監(jiān)督巷嚣,屬于一種弱監(jiān)督方式,它是利用外界的一個(gè)龐大的知識(shí)庫來指導(dǎo)標(biāo)注/擴(kuò)充訓(xùn)練樣本集钳吟⊥⒘#基本思想是,假設(shè)一個(gè)含有實(shí)體對的句子,如果該實(shí)體對能夠和Freebase知識(shí)庫中的實(shí)體對齊的話坝茎,那么該句子同時(shí)也包含了該實(shí)體對在Freebase中的關(guān)系涤姊,因此可以將該句子看成一個(gè)正樣本。
這種假設(shè)過于強(qiáng)烈嗤放,因?yàn)楹袑?shí)體對的句子不一定含有實(shí)體對間的關(guān)系思喊,現(xiàn)有以下四種方式來解決這個(gè)問題,
在構(gòu)造數(shù)據(jù)集引入先驗(yàn)知識(shí)加以限制
利用指稱與指稱間的關(guān)系圖模型對數(shù)據(jù)樣例打分次酌,過濾掉置信度低的句子
利用Multi-Instance 對測試數(shù)據(jù)包打標(biāo)簽
采用 attention 機(jī)制對不同置信度的句子賦予不同的權(quán)重
遠(yuǎn)程監(jiān)督是一個(gè)用來增加數(shù)據(jù)的有效方法恨课,但在中文領(lǐng)域中缺少類似于Freebase這種即包含實(shí)體又包含關(guān)系的大型知識(shí)庫,因此具體工程效果如何岳服,還需要進(jìn)一步探索和驗(yàn)證庄呈。
Kernel Based Model
基于核函數(shù)的方法進(jìn)行關(guān)系抽取是指利用核函數(shù)來計(jì)算兩個(gè)關(guān)系之間的距離,它不同于其他的學(xué)習(xí)算法派阱,不需要進(jìn)行特征工程然后形成特征向量诬留,而是直接利用字符串通過核函數(shù)計(jì)算相似度。與基于特征向量的方法相比贫母,基于核函數(shù)的方法更加靈活文兑,可以綜合多方面的信息,且核函數(shù)具有很好的復(fù)合性腺劣,最終的關(guān)系距離可以綜合多個(gè)不同信息來源的核函數(shù)符合而成绿贞。在NLP任務(wù)中常見的子序列核和解析樹核¢僭基于核函數(shù)的關(guān)系抽取詳細(xì)內(nèi)容參考后面給出的引用論文籍铁。
Sequential/String Kernel
序列核的思想是根據(jù)兩個(gè)序列/字符串的公共子串來衡量兩個(gè)字符串間的相似度,每個(gè)子串會(huì)根據(jù)子串間隔來設(shè)計(jì)不同的權(quán)重趾断。
Tree Kernel
基于樹思想將輸入的實(shí)例構(gòu)造成一個(gè)句法解析樹拒名,通過子樹的匹配來計(jì)算實(shí)例間的額相似度,缺點(diǎn)是生成樹的淺層解析工具的準(zhǔn)確率無法保證芋酌。
Semi-Supervised Learning
半監(jiān)督方法增显,是利用bootstraping思想,通過某種方式構(gòu)造出一批樣本種子脐帝,然后利用這些種子集發(fā)現(xiàn)新的樣本同云,總結(jié)出應(yīng)有的規(guī)則或模式,用于發(fā)現(xiàn)新的樣本堵腹。下面對幾種常見方法做個(gè)簡要介紹炸站。
DIPRE
整體思想是,首先建立一批種子實(shí)體對疚顷,比如(作者旱易,書名);之后利用這些實(shí)體對獲取同時(shí)含有這兩個(gè)實(shí)體的doc或sentence當(dāng)做標(biāo)注樣本;根據(jù)標(biāo)注樣本建立和調(diào)整pattern咒唆;利用pattern發(fā)現(xiàn)新的標(biāo)注數(shù)據(jù)届垫,并將數(shù)據(jù)加入到種子集;重復(fù)以上步驟直到滿足某種設(shè)定的條件全释。
這個(gè)過程中装处,最繁瑣的屬于pattern的設(shè)計(jì),建立pattern時(shí)可以考慮如下規(guī)則浸船,以第一個(gè)實(shí)體開頭妄迁、兩個(gè)實(shí)體間間隔多少個(gè)詞等。
Snowball
Snowball大致思想課DIPRE類似李命,但根據(jù)種子發(fā)現(xiàn)標(biāo)注數(shù)據(jù)時(shí)計(jì)算方式不同登淘,這里是將實(shí)體和關(guān)系的Tuple表示成向量,通過計(jì)算發(fā)現(xiàn)樣本Tuple向量和種子Tuple向量間的相似度決定是否將樣本加入到樣本集封字,根據(jù)新的種子集的向量調(diào)整種子集中心向量黔州。
KnowItAll
KnowItAll主要是根據(jù)Noun Phrase(NP)手工設(shè)計(jì)一些規(guī)則,根據(jù)規(guī)則進(jìn)行提取阔籽。規(guī)則的形式可以如下:
- NP1 "such as" NP2
- NP1 "and other" NP2
- NP1 "include" NP2
- NP1 "is a" NP2
- NP1 "is the " NP2 "of " NP3
- "the" NP1 "of" NP2 "is" NP3
TextRunner
TextRunner 算法主要分為三個(gè)過程流妻,
1)self-Supervised Learner 自監(jiān)督學(xué)習(xí)過程,目標(biāo)是構(gòu)建樣集合分類器笆制。構(gòu)建樣本集的大致為:先通過一個(gè)自然語言分析器提取出樣本中存在的三元組绅这,指定一些規(guī)則對這些三元組標(biāo)記為正或者負(fù)。標(biāo)記完成后利用這些數(shù)據(jù)訓(xùn)練出一個(gè)分類器在辆,對三元組打分证薇,該階段稱為訓(xùn)練階段。
2) Single-Pass Extractor: 抽取階段匆篓,對待抽取句子進(jìn)行淺層語義分析浑度,標(biāo)注其中的詞性和名詞短語。對名詞短語奕删,如果滿足某種條件俺泣,則作為候選三元組,之后利用第一步的分類器進(jìn)行分類完残,打分。過濾出可信的三元組横漏,同時(shí)記錄其出現(xiàn)的頻次谨设。
3)Redundancy-based Assesor , 基于冗余的評價(jià)器,對抽取的三元組進(jìn)行評價(jià)缎浇,進(jìn)一步提高效果
Unsupervised Learning
無監(jiān)督方式主要是基于假設(shè)扎拣,擁有相同語義關(guān)系的實(shí)體對擁有相似的上下文信息,因此可以利用每個(gè)實(shí)體對上下文信息來代表該實(shí)體對的語義關(guān)系,然后對實(shí)體對的語義關(guān)系進(jìn)行聚類二蓝。
綜上所述誉券,在工業(yè)屆更多考慮的是準(zhǔn)確性,因此采用的基于規(guī)則方式較多刊愚,隨著樣本標(biāo)注數(shù)據(jù)的不斷積累踊跟,逐漸引入DL方法,以提高抽取效率鸥诽。
DataSet
關(guān)系抽取的數(shù)據(jù)集并不多商玫,在各種paper中常見的數(shù)據(jù)集為ACE 2005(Automatic Content Extraction)和SemEval 2010 Task8,而中文領(lǐng)域相關(guān)數(shù)據(jù)集暫時(shí)還未發(fā)現(xiàn)牡借。
參考文獻(xiàn)
- A survey on Relation Extraction Silde
- A Survey of Deep Learning Methods for Relation Extraction
- Relation Extraction Perspective from Convolutional Neural Network
- A Survey On Relation Extraction
- 基于核函數(shù)的命名實(shí)體關(guān)系抽取技術(shù)的研究
- 基于深度學(xué)習(xí)的關(guān)系抽取技術(shù)進(jìn)展