日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BERT-MRC论文笔记

發布時間:2024/3/12 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BERT-MRC论文笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、NER任務概述

ner(named entity recognization),命名實體識別旨在提取句子中預先定義的不同類型的實體,如person,location,organization等等。從概念上來講,ner任務有點類似于目標檢測任務,ner首先需要detect實體空間(entity span),然后分類實體類型(classification)。

ner方法分類:

ner方法上從解決的ner問題出發,大致分為2種類型[ps:看的文章不多,總結或許有誤]:

  • Flat ner

  • Nested ner

Flat ner: 解決常見的標準的ner任務,實體之間不存在嵌套關系,每個句子token只會屬于一種實體類型。對于這種類型的ner任務,通常采用序列標注模型,典型的如: BiLSTM+CRF、bert+biLSTM+CRF,在輸出層,每個token進行softmax分類,因此每個token只會輸出一個標簽,無法解決實體嵌套的問題。

Nested ner: 解決實體嵌套的ner任務。實體嵌套大體上可以分成2類:1)不同實體類型間嵌套; 2) 同種實體類型間嵌套。不同實體類型間嵌套,如例子"chinese"屬于contury類型,"chinese embassy in France"屬于facility類型,chinese這個token即存在不同類型實體間的嵌套;類似的,同類型間實體的嵌套,"chinese"屬于person類型, "chinese girls"屬于person類型,chinese這個token即存在同種類型之間的嵌套

2、BERT-MRC綜述

2.1 motivation

BERT-MRC為了解決嵌套的ner任務,提出了一個基于MRC(機器閱讀理解)的QA框架來統一的解決flat ner以及nested ner任務,并取得了SOTA的性能。

個人感覺這個文章很有開創性,后續一些信息抽取的文章"CASREL"等jointly方法都有這篇文章的影子,遂記錄一下。

2.2 method

??2.2.1 解決不同類型間的實體嵌套

????????前面提到,序列標注模型不能解決嵌套問題。而這篇文章提出了基于問答的框架來解決嵌套實體識別的問題,對于每種類型的實體,都會構造一個相關的query,也可以把它當作一個"prompt"。例如,假如要抽取person類型的實體,我們可以構造一個query: "which people did mention in this sentence?",于是ner任務就變成了基于給定的句子來回答query這個問題,答案就是對應的實體文本,是連續的文本空間(注意是連續的)。

  • 訓練:

????????首先訓練集會事先構造成(Query, Context, Answer)三元組的形式,query是和實體類型相關的,編碼了實體類型信息,query到實體類型是一一對應的。context是原始句子,answer即該類型下的實體。entity通過text span表示,即在一個句子通過實體的開始位置索引(start)和結束位置索引(end)來表示一個實體。

????????模型上使用Bert模型, query和context concat后輸入bert中獲取每個token的向量表示,輸入形式: CLS "query" SEP context ,每個token后面接2個二分類任務,一個用來分類是否是start索引,一個是用來分類是否是end索引。這里本質上是N個2分類任務, N是序列長度,而不是2個N分類任務。前者使用sigmoid loss,后者使用softmax loss,前者可以在一個句子中輸出多個start索引,而后者只能輸出一個start索引[即一個實體]。一個句子中,同種類型的實體可能不止一個,因此本文采用n個2分類任務。

  • 解碼:

????????這里還存在一個特殊的解碼問題,基于MRC的QA框架只能解決不同類型間的實體嵌套問題,對于不同類型的實體,構造一個特殊的query,獨立地去獲取該類型下的實體。而對于同種類型的嵌套問題,一個句子中有多個start index和對應的多個end index,如何解碼?如果不存在同類型實體嵌套問題,我們可以直接使用基于啟發式的就近匹配原則,start index尋找最近的end index進行匹配即可。對于同類型嵌套,如句子"chinese girls", 有2個實體, "chinese" ,和"chinese girls",start index 只有1個1,而end index有2個1,基于上述啟發式匹配就會漏識別。因此為了cover這個問題,本文提出了match網絡,將start向量和end向量concat后,進行一個二分類任務,判斷start和end是否是match的

  • 推理:

? ????????每種類型構造的query拼接原始句子,輸入到網絡中,獲取每種類型下得到的entity span。

??2.2.2 一些問題點討論

?????????首先簡單說一下效果,在flat ner以及nested ner上任務上都取得了SOTA

????2.2.2.1 如何構造query

????????這一點在論文中有反復的提到,構造的query很重要,且對最終的性能影響很大。其實也不難理解,套用QA的框架也能知道,Question是核心要素之一,沒有好的問題怎么能得到你想要的答案呢?原文做了一些詳細的實驗對比,感興趣的可以仔細閱讀原文對應的章節。

????????其實在沒有看到這篇文章的時候,心中有一個想法,那就是不去構造query,而是使用實體的類型,比如說"OGR","PER"等作為一個special token放在句子的開頭,這個特殊的token編碼了具體的實體類型信息,引導模型輸出對應類型的entity。這樣也能完成統一建模,但是這種想法其實也剛好在構造query這一節被作者實驗過了。但是按照我的理解還是有一點點不同,其中keyword方式就是使用類型的關鍵詞,比如"person","organization"等,本質上其實還是想query具有一定的語義信息[去套用qa的框架],但是想person, organization這種類型在句子中可能很常見,導致embedding不能唯一去編碼任務信息,可能會影響性能。

  • TODO: 后續有ner相關的任務,可以嘗試一下這個想法,感興趣的讀者也可以試試吧~

????2.2.2.2 MRC框架的好處

????????MRC框架的好處在論文中也被反復提及,主要有以下好處: 1) 能夠解決嵌套的實體識別問題;2)通過構造query的方式,其實編碼了需要提取的實體的類型信息,這是以往序列標注模型做不到的;3)具有很好的zero-shot能力(很nice~),由于query通過自然語言的方式編碼實體類型信息,即使訓練集中沒有出現的實體類型,通過理解query的語義,能夠得到正確的答案(entity)。個人覺得prompt方式是解決zero-shot的一種很好的方式,prompt(也即query的構造)就很重要。

????????回到前面那個點,如果使用實體的類型作為special token這種范式,那模型就完全不具有zero-shot能力了

總結

以上是生活随笔為你收集整理的BERT-MRC论文笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。