【信息抽取】如何使用BERT进行关系抽取
事物、概念之間的關(guān)系是人類知識(shí)中非常重要的一個(gè)部分,但是他們通常隱藏在海量的非結(jié)構(gòu)文本中。為了從文本中抽取這些關(guān)系事實(shí),從早期的模式匹配到近年的神經(jīng)網(wǎng)絡(luò),大量的研究在多年前就已經(jīng)展開。
然而,隨著互聯(lián)網(wǎng)的爆炸發(fā)展,人類的知識(shí)也隨之飛速的增長(zhǎng),因而對(duì)關(guān)系抽取(Relation Extraction, RE)提出了更高的要求,需要一個(gè)有效的RE系統(tǒng),能夠利用更多的數(shù)據(jù);有效的獲取更多的關(guān)系;高效的處理更多復(fù)雜的文本;具有較好的擴(kuò)展性,能夠遷移到更多的領(lǐng)域。
本文首先介紹一種基于預(yù)訓(xùn)練模型的關(guān)系抽取方法,即能夠引入現(xiàn)今最有效的預(yù)訓(xùn)練模型BERT,來進(jìn)行關(guān)系分類的方法。
作者&編輯 | 小Dream哥
1 預(yù)訓(xùn)練模型?
預(yù)訓(xùn)練模型是近一兩年來NLP領(lǐng)域取得的非常重要的進(jìn)展。基于大型的預(yù)訓(xùn)練模型finetune下游任務(wù),是如今NLP領(lǐng)域非常流行的做法,在很多的NLP任務(wù)中都取得了SOTA的效果,我們?cè)诖饲耙矊懥撕芏嗟奈恼逻M(jìn)行介紹,感興趣的讀者可以看看:
【NLP】 深入淺出解析BERT原理及其表征的內(nèi)容
【NLP】GPT:第一個(gè)引入Transformer的預(yù)訓(xùn)練模型
【NLP】XLnet:GPT和BERT的合體,博采眾長(zhǎng),所以更強(qiáng)
【技術(shù)綜述】深度學(xué)習(xí)在自然語(yǔ)言處理中的應(yīng)用
【每周NLP論文推薦】從預(yù)訓(xùn)練模型掌握NLP的基本發(fā)展脈絡(luò)
既然預(yù)訓(xùn)練模型這么有效,自然會(huì)有用它來做關(guān)系抽取和分類的了,我們今天就介紹基于BERT的關(guān)系抽取模型。
本文涉及的模型參考論文如下:
[1] Wu S , He Y . Enriching Pre-trained Language Model with Entity Information for Relation Classification[J]. 2019.
[2] Giorgi J , Wang X , Sahar N , et al. End-to-end Named Entity Recognition and Relation Extraction using Pre-trained Language Models[J]. 2019.
2 關(guān)系分類
引入BERT進(jìn)行關(guān)系分類,主要目的是為了利用BERT預(yù)訓(xùn)練時(shí)學(xué)到的大量語(yǔ)言本身的知識(shí)。基于此,結(jié)合關(guān)系分類任務(wù)的特點(diǎn),下面介紹一種典型的基于BERT的關(guān)系分類模型,并做一些有益的討論。
1) 模型結(jié)構(gòu)
如上圖所示,是該模型的結(jié)構(gòu),下面做一個(gè)簡(jiǎn)單的介紹:
1.輸入層,跟典型的BERT輸入層無異。需要注意的是,在這個(gè)模型中,分別用特殊符號(hào)$和#號(hào)標(biāo)識(shí)兩個(gè)實(shí)體的位置。
2.利用了BERT特征抽取后2個(gè)部分的特征:
BERT【CLS】位置的embeding和兩個(gè)實(shí)體相對(duì)應(yīng)的embeding
3.將上述3個(gè)特征拼接起來,再接一個(gè)全連接層和softmax層輸出關(guān)系的分類。
論文中用到的模型參數(shù)如下,感興趣同學(xué)可以復(fù)現(xiàn)一下:
2) 模型結(jié)果
模型結(jié)構(gòu)并不復(fù)雜,但是取得了不錯(cuò)的效果:
我們可以認(rèn)為模型對(duì)分類任務(wù)起到關(guān)鍵效果的部分有3個(gè):
1.BERT【CLS】embedding,學(xué)習(xí)到了句子級(jí)的特征
2.BERT實(shí)體embedding,學(xué)習(xí)到了實(shí)體的語(yǔ)義特征
3.特殊符號(hào),帶給了模型實(shí)體的邊界及位置信息
論文做了實(shí)驗(yàn)來論證這3部分特征的作用,如下圖所示:
1.R-BERT-NO-SEP-NO-ENT 代表既沒有分隔符也沒有實(shí)體embedding特征的模型
2.R-BERT-NO-SEP代表既沒有分隔符的模型
3.R-BERT-NO-ENT代表既沒有實(shí)體embedding特征的模型
4.R-BERT代表完整的模型結(jié)構(gòu)
結(jié)果可以看出,實(shí)體embedding和分隔符對(duì)模型效果貢獻(xiàn)了很大。這主要是因?yàn)?#xff0c;在關(guān)系分類的任務(wù)中,句子的語(yǔ)義信息和兩個(gè)實(shí)體的詞級(jí)信息均很重要。通過兩個(gè)分隔符,能夠幫助BERT學(xué)習(xí)兩個(gè)實(shí)體的位置,從而提高模型對(duì)實(shí)體的表征能力。
3 BERT Joint抽取模型
上述模型是一個(gè)單純的關(guān)系分類模型,在前面的關(guān)系抽取文章中我們提到過,聯(lián)合抽取通常具有更好的效果,下面介紹一種基于BERT的聯(lián)合抽取模型,即通過一個(gè)模型能夠得到輸入文本中的實(shí)體以及實(shí)體之間的關(guān)系,供讀者參考。
1) 模型結(jié)構(gòu)
如上圖所示,是本文要介紹的聯(lián)合抽取模型的結(jié)構(gòu)圖,可以把這個(gè)模型分成3個(gè)部分:
1.NER Module,實(shí)體抽取模塊。
2.RE Module,關(guān)系分類模塊。
3. BERT,共享特征抽取模塊。
對(duì)于實(shí)體抽取模塊,跟此前我們介紹的基于BERT的實(shí)體抽取模型沒有差別,不了解的同學(xué)可以出門左轉(zhuǎn)先看一下:
【NLP-NER】如何使用BERT來做命名實(shí)體識(shí)別
RE模塊相對(duì)復(fù)雜一點(diǎn),我們?cè)敿?xì)介紹一下,
RE模塊的輸入將兩個(gè)部分的輸入近拼接得到:
1.BERT對(duì)輸入序列編碼得到的特征序列;
2.NER模塊的輸出,經(jīng)過argmax函數(shù)得到一個(gè)跟輸入序列長(zhǎng)度相同的,轉(zhuǎn)化為固定維度的序列。
拼接得到的向量分別通過一個(gè)Feed Forward層,通過一個(gè)biaffine分類器,預(yù)測(cè)出實(shí)體之間的關(guān)系。
biaffine分類器的實(shí)際作用如下:
2) 模型結(jié)果
如上圖所示,該模型在幾個(gè)數(shù)據(jù)集中均取得了不錯(cuò)的效果,感興趣的同學(xué)可以實(shí)現(xiàn)一下試試。
總結(jié)
目前,基于預(yù)訓(xùn)練模型的關(guān)系抽取即分類模型均取得了SOTA的效果,在實(shí)際的生產(chǎn)中也都得到了一定的應(yīng)用。從事NLP相關(guān)工作的讀者,務(wù)必要熟悉相關(guān)的模型。
下期預(yù)告:暫無
知識(shí)星球推薦
掃描上面的二維碼,就可以加入我們的星球,助你成長(zhǎng)為一名合格的自然語(yǔ)言處理算法工程師。
知識(shí)星球主要有以下內(nèi)容:
(1) 聊天機(jī)器人。
(2) 知識(shí)圖譜。
(3) NLP預(yù)訓(xùn)練模型。
轉(zhuǎn)載文章請(qǐng)后臺(tái)聯(lián)系
侵權(quán)必究
其他內(nèi)容
【完結(jié)】 12篇文章帶你完全進(jìn)入NLP領(lǐng)域,掌握核心技術(shù)
【年終總結(jié)】2019年有三AI NLP做了什么,明年要做什么?
【NLP-詞向量】詞向量的由來及本質(zhì)
【NLP-詞向量】從模型結(jié)構(gòu)到損失函數(shù)詳解word2vec
【NLP-NER】什么是命名實(shí)體識(shí)別?
【NLP-NER】命名實(shí)體識(shí)別中最常用的兩種深度學(xué)習(xí)模型
【NLP-NER】如何使用BERT來做命名實(shí)體識(shí)別
【NLP-ChatBot】我們熟悉的聊天機(jī)器人都有哪幾類?
【NLP-ChatBot】搜索引擎的最終形態(tài)之問答系統(tǒng)(FAQ)詳述
【NLP-ChatBot】能干活的聊天機(jī)器人-對(duì)話系統(tǒng)概述
【知識(shí)圖譜】人工智能技術(shù)最重要基礎(chǔ)設(shè)施之一,知識(shí)圖譜你該學(xué)習(xí)的東西
【知識(shí)圖譜】知識(shí)表示:知識(shí)圖譜如何表示結(jié)構(gòu)化的知識(shí)?
【知識(shí)圖譜】如何構(gòu)建知識(shí)體系:知識(shí)圖譜搭建的第一步
【知識(shí)圖譜】獲取到知識(shí)后,如何進(jìn)行存儲(chǔ)和便捷的檢索?
【知識(shí)圖譜】知識(shí)推理,知識(shí)圖譜里最“人工智能”的一段
【文本信息抽取與結(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í)別實(shí)戰(zhàn)
【NLP實(shí)戰(zhàn)】如何基于Tensorflow搭建一個(gè)聊天機(jī)器人
【NLP實(shí)戰(zhàn)】基于ALBERT的文本相似度計(jì)算
總結(jié)
以上是生活随笔為你收集整理的【信息抽取】如何使用BERT进行关系抽取的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【杂谈】如何使用有三AI生态学习计算机视
- 下一篇: 【杂谈】深度学习之模型设计书看完了完全不