【NLP】如何利用BERT来做基于阅读理解的信息抽取
信息抽取 (Information Extraction: IE)是把文本里包含的信息進(jìn)行結(jié)構(gòu)化處理,變成計(jì)算機(jī)能夠處理的結(jié)構(gòu),實(shí)體抽取、關(guān)系抽取、事件抽取等都屬于信息抽取的范疇。在NLP領(lǐng)域,信息抽取的應(yīng)用場(chǎng)景十分的廣泛,是一個(gè)非常重要的基礎(chǔ)任務(wù)。
作者&編輯 | 小Dream哥
1 傳統(tǒng)的信息抽取?
信息抽取是將非結(jié)構(gòu)化的信息轉(zhuǎn)化為結(jié)構(gòu)化信息的過程,可以分為三類:
命名實(shí)體識(shí)別(NER):從文本中抽取人物、機(jī)構(gòu)、文件名等實(shí)體。
關(guān)系抽取(RE):得到實(shí)體后,抽取實(shí)體間的關(guān)系,一般抽取得到一個(gè)(實(shí)體,關(guān)系,實(shí)體)的三元組。
事件抽取:抽取多個(gè)實(shí)體和事件關(guān)系,一般得到一個(gè)trigger和多個(gè)arguments的多元組。
很多時(shí)候,信息抽取會(huì)包括上面的幾種,例如上面的三元組抽取,會(huì)包括實(shí)體抽取和關(guān)系抽取。傳統(tǒng)的做法包括pipline和joint方法:
pipline方法:先抽取實(shí)體再抽取關(guān)系,就像一個(gè)流水線一樣。這種方法容易在關(guān)系抽取時(shí)引入實(shí)體抽取時(shí)的誤差,從對(duì)整體效果造成不好的影響。
joint方法:即通過類似于端到端的方法,一次性抽取出實(shí)體和關(guān)系,避免誤差的累積。
但是上述兩種方法都無法處理一些復(fù)雜的問題,例如,“喬布斯在1977年至1983年擔(dān)任了蘋果公司的CEO,在1986年至1996年擔(dān)任皮克斯動(dòng)畫工作室的CEO”。這里存在7個(gè)實(shí)體,相互間都有關(guān)系,非常復(fù)雜。傳統(tǒng)的信息抽取方法難以處理。
今天我們介紹基于閱讀理解的信息抽取,能夠較好的處理一些復(fù)雜的問題,特別是在抽取一些比較長(zhǎng)的信息時(shí),效果比較明顯。
2? 基于閱讀理解的信息抽取
先來回顧一下NLP中“機(jī)器閱讀理解”這個(gè)任務(wù)。機(jī)器閱讀理解是給定一段文本Paragraph和問題Question,得到答案Answer。通常假定Answer就包含在原文中,因此機(jī)器閱讀理解任務(wù)的目標(biāo)就是得到一個(gè)span(start, end),start表示Answer的開始字符在Paragraph中的位置,end表示Answer的結(jié)束字符在Paragraph中的位置。
在BERT出來之前,機(jī)器閱讀理解主要用LSTM等特征抽取分別對(duì)Paragraph和Question進(jìn)行表征,抽取特征。再將二者的特征進(jìn)行一些運(yùn)算,得到相應(yīng)的輸出表征。這里不做詳細(xì)的介紹,我們介紹今天的重點(diǎn),利用BERT來做基于閱讀理解的信息抽取。
3 基于BERT的方案
如上圖所示,展示了如何用BERT來做信息抽取任務(wù)的結(jié)構(gòu)圖。注意一下幾點(diǎn)即可:
1.將Question和Paragraph分別作為BERT的text1和text2輸入。
2.start/end span在Paragraph對(duì)應(yīng)的輸出位置表示。
通常輸出會(huì)通過2個(gè)dense網(wǎng)絡(luò),接到start輸出和end輸出序列。
假設(shè)Paragraph為“周杰倫出生于臺(tái)灣”,Question為“周杰倫出生于哪里?”,則laebl為:start[0,0,0,0,0,1,0],end[0,0,0,0,0,0,1]。
將上述start輸出和end輸出序列接一個(gè)sigmod層,然后用binary_crossentropy函數(shù)即可進(jìn)行訓(xùn)練。
如果想要輸出一個(gè)Answer是否正確的概率,可用將[CLS]的輸出表征利用起來,非常的簡(jiǎn)單。
總結(jié)
怎么樣?用BERT來處理問題,通常非常的直接和簡(jiǎn)單,不需要接特別復(fù)雜的下游網(wǎng)絡(luò)就能夠取得不錯(cuò)的效果。這是BERT的優(yōu)勢(shì),大巧不工。感興趣的同學(xué)可以自己實(shí)踐一下。
讀者們可以留言,或者加入我們的NLP群進(jìn)行討論。感興趣的同學(xué)可以微信搜索jen104,備注"加入有三AI NLP群"。
下期預(yù)告:暫無
知識(shí)星球推薦
掃描上面的二維碼,就可以加入我們的星球,助你成長(zhǎng)為一名合格的自然語(yǔ)言處理算法工程師。
知識(shí)星球主要有以下內(nèi)容:
(1) 聊天機(jī)器人。考慮到聊天機(jī)器人是一個(gè)非常復(fù)雜的NLP應(yīng)用場(chǎng)景,幾乎涵蓋了所有的NLP任務(wù)及應(yīng)用。所以小Dream哥計(jì)劃以聊天機(jī)器人作為切入點(diǎn),通過介紹聊天機(jī)器人的原理和實(shí)踐,逐步系統(tǒng)的更新到大部分NLP的知識(shí),會(huì)包括語(yǔ)義匹配,文本分類,意圖識(shí)別,語(yǔ)義匹配命名實(shí)體識(shí)別、對(duì)話管理以及分詞等。
(2) 知識(shí)圖譜。知識(shí)圖譜對(duì)于NLP各項(xiàng)任務(wù)效果好壞的重要性,就好比基礎(chǔ)知識(shí)對(duì)于一個(gè)學(xué)生成績(jī)好壞的重要性。他是NLP最重要的基礎(chǔ)設(shè)施,目前各大公司都在著力打造知識(shí)圖譜,作為一個(gè)NLP工程師,必須要熟悉和了解他。
(3) NLP預(yù)訓(xùn)練模型。基于海量數(shù)據(jù),進(jìn)行超大規(guī)模網(wǎng)絡(luò)的無監(jiān)督預(yù)訓(xùn)練。具體的任務(wù)再通過少量的樣本進(jìn)行Fine-Tune。這樣模式是目前NLP領(lǐng)域最火熱的模式,很有可能引領(lǐng)NLP進(jìn)入一個(gè)全新發(fā)展高度。你怎么不深入的了解?
轉(zhuǎn)載文章請(qǐng)后臺(tái)聯(lián)系
侵權(quán)必究
往期精選
【年終總結(jié)】2019年有三AI NLP做了什么,明年要做什么?
【通知】2019年言有三最后一月一對(duì)一師徒指導(dǎo)季劃報(bào)名,送書+知識(shí)星球+“神秘禮物”
總結(jié)
以上是生活随笔為你收集整理的【NLP】如何利用BERT来做基于阅读理解的信息抽取的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【杂谈】当前知识蒸馏与迁移学习有哪些可用
- 下一篇: 【年终总结】2019年有三AI知识星球做