<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          NLP系列之NER/RE:序列標(biāo)注/層疊指針網(wǎng)絡(luò)/Multi-head Selection/Deep Biaffine Attn

          共 6295字,需瀏覽 13分鐘

           ·

          2021-08-22 19:19


           作者簡(jiǎn)介





          作者:ZHOU-JC (廣州云迪科技有限公司 NLP算法工程師)

          原文:https://zhuanlan.zhihu.com/p/381894616


          前言

          上一篇博客提到用BERT+CRF幸運(yùn)地拿到天池比賽的亞軍,但還想進(jìn)一步探究其它模型架構(gòu)。一方面,比賽不存在實(shí)體嵌套問題,故用BERT+CRF也能取得不俗的成績(jī),另一方面,這幾年陸續(xù)誕生了很多實(shí)體識(shí)別/關(guān)系抽取的SOTA模型,掌握它們,再根據(jù)自己遇到的業(yè)務(wù)場(chǎng)景設(shè)計(jì)方案是十分重要的。

          本博文主要探究關(guān)系抽取,但很多方法對(duì)于NER任務(wù)來說也是通用的。目前常見的做關(guān)系抽取的框架可以參考這篇博文,

          JayJay:刷爆3路榜單,信息抽取冠軍方案分享:嵌套NER+關(guān)系抽取+實(shí)體標(biāo)準(zhǔn)化640 贊同 · 66 評(píng)論文章

          博文里提到的序列標(biāo)注、指針標(biāo)注、多頭標(biāo)注片段排列都是目前比較常見的框架。

          關(guān)系抽取:Pipeline vs Joint

          關(guān)系抽取就是實(shí)體識(shí)別以及判斷實(shí)體之間的關(guān)系,有兩種方式:

          • pipeline:第一步使用序列標(biāo)注模型抽取實(shí)體,第二步使用關(guān)系分類模型得到實(shí)體pair的關(guān)系;

          • joint聯(lián)合抽取:使用同一個(gè)模型來完成實(shí)體抽取和關(guān)系分類,也即意味著這一個(gè)模型的部分參數(shù)對(duì)于實(shí)體識(shí)別、關(guān)系分類來說是共享的。

          pipeline

          優(yōu)點(diǎn)

          1. 靈活,解耦,在一個(gè)公司里可以一組人做實(shí)體識(shí)別、一組人做關(guān)系抽取,各自優(yōu)化各自的部分。

          缺點(diǎn)

          1. error propagation,誤差傳播:實(shí)體抽取錯(cuò)誤的,會(huì)影響后續(xù)的關(guān)系分類;

          2. 忽略了實(shí)體識(shí)別和關(guān)系分類之間的關(guān)系,看下圖,《》圍住的可能是書名或歌名,對(duì)應(yīng)的關(guān)系是作者和歌手。假如關(guān)系識(shí)別出是作者,那《》圍住的大概率就是書名,也即關(guān)系識(shí)別對(duì)實(shí)體識(shí)別是有啟示作用的,同理,實(shí)體識(shí)別對(duì)關(guān)系分類也有啟示作用,把它們解耦無法讓它們產(chǎn)生交互;

              3. 計(jì)算資源占用大。如第一步抽取出n個(gè)實(shí)體,那第二步我們要把  個(gè)實(shí)體pairs傳到關(guān)系分類模型,而實(shí)際上,大部分pair是沒關(guān)系的,造成大量的計(jì)算資源浪費(fèi)。

          joint聯(lián)合抽取

          優(yōu)點(diǎn):

          1. pipeline的缺點(diǎn)反過來就是joint的優(yōu)點(diǎn)。

          缺點(diǎn)

          1. 雖然在訓(xùn)練時(shí)是用joint的方式,共享部分模型參數(shù),這部分參數(shù)通過實(shí)體抽取和關(guān)系分類共同更新,但在predict解碼時(shí),大部分joint架構(gòu)用的還是先抽取實(shí)體,再把這部分信息作為關(guān)系分類輸入的一部分。這種解碼方法本質(zhì)上和pipeline無區(qū)別,一樣會(huì)造成誤差傳播,暴露偏差的問題,當(dāng)然目前也有類似TPLinker這種聯(lián)合解碼的方法解決暴露偏差的問題。

          2. 如何平衡實(shí)體識(shí)別以及關(guān)系抽取的關(guān)系。就像多任務(wù)學(xué)習(xí)一樣,怎么平衡它們之間的損失是要考慮的問題。

          方法實(shí)驗(yàn)細(xì)節(jié)及代碼復(fù)現(xiàn)

          任務(wù)描述

          這里用百度2021語言與智能技術(shù)競(jìng)賽的多形態(tài)信息抽取任務(wù)中的關(guān)系抽取賽道作為實(shí)驗(yàn)

          比賽鏈接:

          飛槳AI Studio - 人工智能學(xué)習(xí)與實(shí)訓(xùn)社區(qū)aistudio.baidu.com/aistudio/competition/detail/65?isFromLuge=true

          任務(wù)就是常見的SPO三元組抽取,根據(jù)預(yù)先定義的schema集合,抽取出所有滿足schema約束的SPO三元組。有些特殊的是,比賽里有43個(gè)簡(jiǎn)單知識(shí),即O是一個(gè)單一的文本片段,如「海拔」關(guān)系的schema定義為:

          也有5個(gè)復(fù)雜知識(shí),即O是一個(gè)結(jié)構(gòu)體,由多個(gè)語義明確的文本片段共同組成,多個(gè)文本片段對(duì)應(yīng)了結(jié)構(gòu)體中的多個(gè)槽位 (slot)。例如,「飾演」關(guān)系中O值有兩個(gè)槽位@value和inWork,分別表示「飾演的角色是什么」以及「在哪部影視作品中發(fā)生的飾演關(guān)系」,其schema定義為:

          比賽提供約17+萬訓(xùn)練數(shù)據(jù),2萬+條驗(yàn)證數(shù)據(jù)。由于比賽已經(jīng)結(jié)果,無法得到測(cè)試集結(jié)果,以下實(shí)驗(yàn)的分?jǐn)?shù)均為模型在驗(yàn)證集上最佳表現(xiàn)。

          一:序列標(biāo)注(官方baseline)

          詳細(xì)的可以看百度官方對(duì)提供的baseline的解讀

          【2021 LIC】命題人賽題解讀-多形態(tài)信息抽取任務(wù)_嗶哩嗶哩_bilibiliwww.bilibili.com/video/BV1o64y1m7YH/

          官方提供的baseline核心就是利用序列標(biāo)注BIO的方式來一起做實(shí)體抽取和關(guān)系分類。

          • 簡(jiǎn)單地描述一下就是,schema有43個(gè)簡(jiǎn)單知識(shí),這部分實(shí)體類別一共有43*2=86個(gè)(因?yàn)槊恳粋€(gè)知識(shí),有subject和object兩個(gè)實(shí)體),如對(duì)上面提到的「海拔」關(guān)系,我們可以定義以下兩個(gè)實(shí)體:



            對(duì)5個(gè)復(fù)雜知識(shí),這部分實(shí)體一共有4*2*2+4*2= 24個(gè)實(shí)體(有4個(gè)復(fù)雜知識(shí)的object_type有2個(gè),有一個(gè)復(fù)雜知識(shí)的object_type有4個(gè)),如上面提到的「飾演」關(guān)系,我們需要定義以下四個(gè)實(shí)體:




          加上O、I兩個(gè)標(biāo)簽,標(biāo)簽類別一共有112個(gè)。


          • 序列標(biāo)注框架有很多,如BertTokenClassification、Bert+Crf等等。由于本案例存在實(shí)體嵌套問題,所以每個(gè)token的輸出不作softmax,而是轉(zhuǎn)化為sigmoid二分類問題,即最后得到的矩陣維度應(yīng)該是【B,L,112】,每個(gè)元素做的是sigmoid二分類。這樣,每個(gè)token可以有多個(gè)標(biāo)簽,從而解決實(shí)體嵌套問題。

          • 解碼時(shí),首先得到每個(gè)token的標(biāo)簽,再根據(jù)schema表組織成相應(yīng)的關(guān)系,不過看官方的代碼,感覺解碼時(shí)會(huì)有問題。例如看下圖,假如抽取出 主演(subject) 有【逃學(xué)威龍、精武英雄】、主演(object)  有【周星馳、李連杰】,組合關(guān)系的時(shí)候,怎么知道逃學(xué)威龍對(duì)應(yīng)的是周星馳,而不是李連杰?

          官網(wǎng)提供的baseline的好處就是快,以及解決暴露偏差問題。壞處就是效果有效,在實(shí)體分類時(shí),有112個(gè)二分類,另外就是解碼時(shí)的問題。

          二:層疊式指針網(wǎng)絡(luò)(基于主語感知)

          源自蘇神的這兩篇文章:

          基于DGCNN和概率圖的輕量級(jí)信息抽取模型 - 科學(xué)空間|Scientific Spaceskexue.fm/archives/6671

          用bert4keras做三元組抽取 - 科學(xué)空間|Scientific Spaceskexue.fm/archives/7161

          ,也可以看20年關(guān)系抽取賽道獲獎(jiǎng)冠軍隊(duì)伍分享視頻,蘇神他們就是利用這個(gè)架構(gòu)取得20年該賽道的冠軍。

          百度直播live.baidu.com/m/media/pclive/pchome/live.html?room_id=4008201814&source=h5pre

          核心思路就是先抽取subject,再抽取謂語predict和賓語object。

          • 具體的,用指針網(wǎng)絡(luò)的方式抽取subject,指針網(wǎng)絡(luò)為【B, L, 2】的矩陣,由于一個(gè)樣本中有多個(gè)subject,所以矩陣的每個(gè)元素做的是sigmoid,而不是softmax(這種方式稱為“半指針-半標(biāo)注”),注意這里沒有引入實(shí)體標(biāo)簽信息。

          • 抽取完subjects后,分別把每個(gè)subject,引入Conditiaonal LayerNorm,這一步相當(dāng)于預(yù)測(cè)PO時(shí),告訴模型,S是什么,使得模型學(xué)習(xí)到PO的預(yù)測(cè)是依賴于S的。注意的是,這一步要預(yù)測(cè)一個(gè)【B, L, R_num, 2】,這里R_num是關(guān)系類別數(shù),同樣是一個(gè)半指針-半序列的問題,把O和P同時(shí)預(yù)測(cè)出來。

          三:Multi-head Selection

          源自兩篇論文:

          Joint entity recognition and relation extraction as a multi-head selection problemarxiv.org/abs/1804.07847


          BERT-Based Multi-Head Selection for Joint Entity-Relation Extractionarxiv.org/abs/1908.05908

          多頭標(biāo)注核心在于最后要構(gòu)造一個(gè) 【B, L, L, R_num】矩陣。

          • 首先采用半指針-半標(biāo)注抽取subject和object,這里得到的矩陣為【B, L, 2, E_num】,這里E_num是實(shí)體標(biāo)簽的類別數(shù),這里同上面提到的層疊式指針網(wǎng)絡(luò)不同在于,一方面,層疊式指針網(wǎng)絡(luò)抽subject的時(shí)候,只需要把subject抽取出來,而無需知道它的標(biāo)簽信息,而這里,不僅要把實(shí)體抽取出來,通過擴(kuò)展一個(gè)長(zhǎng)度為E_num的維度,把實(shí)體標(biāo)簽也抽取出來,另一方面,這里不僅要抽取subject,還要同時(shí)把object抽取出來。

          • 上一步得到實(shí)體標(biāo)簽的目的在于接下來把實(shí)體標(biāo)簽embedding和Bert的輸出拼接在一起,然后再接后面的全連接層,最后得到一個(gè)【B, L,L, R_num】的矩陣。這個(gè)矩陣就是關(guān)鍵的核心,怎么理解這個(gè)矩陣呢?舉個(gè)例子,假如這個(gè)矩陣的【0, m, n, r】元素大于0.5,即第一個(gè)樣本,結(jié)尾index為m的實(shí)體作為subject,和結(jié)尾index為n的實(shí)體作為object,它們之間的關(guān)系是id為r的關(guān)系。

          四:Deep Biaffine Attention

          源自兩篇論文:

          Deep Biaffine Attention for Neural Dependency Parsingarxiv.org/abs/1611.01734

          Named Entity Recognition as Dependency Parsingarxiv.org/abs/2005.07150

          • Deep Biaffine Attention最后也是為了得到一個(gè)【B, L, L, R_num】矩陣,不同于Multi-head Selection中是通過多個(gè)線性分類器加激活函數(shù)得到的多頭矩陣,Deep Biaffine Attention思想是通過一個(gè)Biaffine Attention矩陣得到多頭矩陣。

          • 這里 h(s) 理解成subject矩陣,它是通過把實(shí)體標(biāo)簽embedding和Bert輸出拼接后接全連接層得到的,h(o) 理解成object矩陣,它也是通過把實(shí)體標(biāo)簽embedding和Bert輸出拼接后接全連接層得到的,這兩個(gè)矩陣是不同的,一個(gè)代表subject,一個(gè)代表object。

          • 最后得到的  r(m) 其實(shí)就是多頭矩陣的【某一個(gè)樣本, s, e, :】,判斷兩個(gè)位置的實(shí)體是否存在關(guān)系。其中 Um 、Wm 、b(m) 的shape及其意義如下:

          1. Um:shape為【H, R_num, H】,對(duì)h(s) 為subject和 h(o) 為object的實(shí)體類別后驗(yàn)概率建模;

          2. Wm :shape為【2*H, R_num】,對(duì) h(s) 為subject或h(o) 為object的實(shí)體類別的后驗(yàn)概率分別建模;

          3. b(m) :shape為【R_num】,對(duì)實(shí)體類別的先驗(yàn)概率建模。

          把它們加在一起,就是以h(s) 為subject,  h(o) 為object,分別在R_num個(gè)關(guān)系類別的概率。

          為何叫做biaffine?個(gè)人理解就是因?yàn)橐肓艘粋€(gè)先驗(yàn)概率,把 b(m)  也放到 Wm 中,這樣 

           要拓展多一列,全是【1, 1, 1, 1, ...】,這一行和 Wm 中的 b(m) 就得到 b(m) 。

          把 Deep Biaffine Attention 和 Multi-head Selection 做比較,雖然它們最后得到的都是【B, L, L, R_num】矩陣,只不過Deep Biaffine Attention是通過一個(gè) Um 矩陣讓subject信息和object發(fā)生交互,而Multi-head Selection中subject和object其實(shí)是沒有發(fā)生這種耦合交互的。

          實(shí)驗(yàn)結(jié)果對(duì)比

          由于資源有效,BERT用的是哈工大訊飛聯(lián)合實(shí)驗(yàn)室發(fā)布的三層BERT。


          F1值
          官方baseline64.69
          層疊式指針網(wǎng)絡(luò)(基于主語感知)61.22
          Multi-head Selection67.90
          Deep Biaffine Attention68.45

          感覺層疊式指針網(wǎng)絡(luò)的復(fù)現(xiàn)感覺有點(diǎn)問題,按理說,不至于比baseline效果要差,具體的原因可能是采樣問題,也有可能是解碼問題,具體原來要再檢查一下代碼。

          效果比較:

          Deep Biaffine Attention > Multi-head Selection > 官方baseline > 層疊式指針網(wǎng)絡(luò)(基于主語感知)。

          計(jì)算效率比較:

          官方baseline > 層疊式指針網(wǎng)絡(luò)(基于主語感知)> Multi-head Selection > Deep Biaffine Attention。

          個(gè)人思考及總結(jié)

          本文介紹了關(guān)系抽取的四種方法,在實(shí)際應(yīng)用場(chǎng)景中,我們要根據(jù)具體任務(wù)靈活運(yùn)用。對(duì)于關(guān)系抽取來說,更重要的是掌握一些常用框架,如開頭提到的序列標(biāo)注、指針網(wǎng)絡(luò)、多頭標(biāo)準(zhǔn)、片段排列,上面的四種方法其實(shí)都是這四個(gè)框架的組合,再經(jīng)過一些設(shè)計(jì)的微調(diào)罷了。

          另外要注意計(jì)算效率和空間利用率的問題。baseline雖然簡(jiǎn)單,但它是計(jì)算最快,參數(shù)最小的,很多場(chǎng)景下baseline不失為一種好的解決方案,其次,Deep biaffine Attention效果最好,但是計(jì)算最慢,參數(shù)最多。

          本博文主要討論框架,但在實(shí)際業(yè)務(wù)中,關(guān)系抽取還有很多現(xiàn)實(shí)問題,如

          • 假陰性,這是由于大部分關(guān)系抽取的標(biāo)注都是通過遠(yuǎn)程監(jiān)督的方法,導(dǎo)致很多漏標(biāo),這樣訓(xùn)練出來的模型召回率會(huì)比準(zhǔn)確率低;

          • 標(biāo)簽不平衡,上面提到的很多方法,如指針網(wǎng)絡(luò)、多頭矩陣最后得到的大部分標(biāo)簽都是0,只有小部分是1,怎么平衡0和1之間的關(guān)系。

          有機(jī)會(huì)再跟大家分享關(guān)系抽取落地的難點(diǎn)。


          主要參考:

          1. 科學(xué)空間:《基于DGCNN和概率圖的輕量級(jí)信息抽取模型

          2. 科學(xué)空間:《用bert4keras做三元組抽取》

          3. JayJay:《刷爆3路榜單,信息抽取冠軍方案分享:嵌套NER+關(guān)系抽取+實(shí)體標(biāo)準(zhǔn)化》

          4. 《信息抽取(二)花了一個(gè)星期走了無數(shù)條彎路終于用TF復(fù)現(xiàn)了蘇神的《Bert三元關(guān)系抽取模型》,我到底悟到了什么?》

          5. 《信息抽?。ㄋ模綨LP論文復(fù)現(xiàn)】Multi-head Selection和Deep Biaffine Attention在關(guān)系抽取中的實(shí)現(xiàn)和效果》

          6. Joint entity recognition and relation extraction as a multi-head selection problem

          7. BERT-Based Multi-Head Selection for Joint Entity-Relation Extraction

          8. Deep Biaffine Attention for Neural Dependency Parsing

          9. Named Entity Recognition as Dependency Parsing


          瀏覽 242
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  特级aV毛片在线 | 黑人大屌轮奸视频播放免费成人 | www.天天好逼 | 大香蕉人妻 | 懂色av无码任你操久久久久蜜桃av |