ACL 2020 开源论文 | 基于Span Prediction的共指消解模型
論文標(biāo)題:
Coreference Resolution as Query-based Span Prediction
論文作者:
Wei Wu, Fei Wang, Arianna Yuan, Fei Wu and Jiwei Li
論文鏈接:
https://arxiv.org/pdf/1911.01746.pdf
代碼鏈接:
https://github.com/ShannonAI/CorefQA
在本文中,我們提出一種基于問(wèn)答(QA)的共指消解(coreference resolution)模型,將每個(gè)候選指稱(mention)所在句子作為問(wèn)題,然后模型去抽取文本中所有和該指稱共指的文段(span)。這種方法避免了傳統(tǒng)共指消解模型的若干問(wèn)題。
我們提出的模型在數(shù)據(jù)集CoNLL2012、GAP上取得當(dāng)前最優(yōu)結(jié)果,分別為83.1和87.5的F1值,大幅度超過(guò)之前的最優(yōu)結(jié)果,分別提高了3.5與2.5的F1值。在這篇文章公布之初,就被國(guó)際諸多同行在Twitter上熱議:
將Coref視為一種QA格式可以大幅提高效果
QA的任務(wù)與格式之論:
本文(Coreference Resolution)很有趣而且的確有用!
共指消解(Coreference Resolution)
共指消解是NLP中的一項(xiàng)重要任務(wù),它要求找出文本中指向同一實(shí)體的所有文段,這是因?yàn)?#xff0c;人們對(duì)同一個(gè)實(shí)體往往有多種不同的說(shuō)法,如代詞、省略詞、別名等等。
比如下面一段文本,依次出現(xiàn)了“北京大學(xué)”、“北大”、“北京大學(xué)?!?、“國(guó)立北京大學(xué)”、“她”,但我們都知道,它們都指向了“北京大學(xué)”這個(gè)實(shí)體,因此說(shuō)它們說(shuō)是共指于“北京大學(xué)”的,共指消解的目標(biāo)就是把它們都找出來(lái)。
北京大學(xué),簡(jiǎn)稱北大,成立之初為中國(guó)最高學(xué)府。中華民國(guó)建立后,校名改為北京大學(xué)校,后又改名為國(guó)立北京大學(xué)。她現(xiàn)有六個(gè)校區(qū)。
共指消解在自然語(yǔ)言處理中是一項(xiàng)非常困難的任務(wù),因?yàn)樗粌H要求理解整段文本的語(yǔ)義,而且還要規(guī)避諸多的歧義。比如在上述文本中,模型就很有可能把“學(xué)府”此類語(yǔ)義相近的詞匯識(shí)別為共指詞。
過(guò)去的共指消解模型大都分為兩個(gè)步驟處理:
首先考慮文本中所有限定長(zhǎng)度的文段,挑出其中可能成為共指詞的那部分(稱為候選指稱);
再按照尋找前驅(qū)的方法找到下一個(gè)共指詞(比如當(dāng)然已經(jīng)找到的共指詞有{北京大學(xué)校、國(guó)立北京大學(xué)、她},那么下一個(gè)前驅(qū)共指詞就是“北大”,再下一個(gè)就是“北京大學(xué)”)。
然而,這種做法有兩個(gè)問(wèn)題:
在任務(wù)層面,第一步被遺漏的共指詞就會(huì)被永遠(yuǎn)遺漏,造成錯(cuò)誤傳遞,比如漏選了“北大”之后,它就永遠(yuǎn)沒(méi)有機(jī)會(huì)被選為共指詞了;
在算法層面,這些模型通常給一對(duì)指稱打分,然后根據(jù)得分大小判斷是否這一對(duì)指稱共指,這就忽略了顯式的上下文信息。
如下圖所示,在第一階段漏選了“北大”,導(dǎo)致最后選擇的共指詞沒(méi)有“北大”這個(gè)正確答案;在第二階段錯(cuò)誤地將“學(xué)府”識(shí)別為了“北京大學(xué)校”的前驅(qū),從而在最后包含了“學(xué)府”這個(gè)錯(cuò)誤答案。
基于這兩個(gè)缺點(diǎn),我們提出用問(wèn)答(QA)的方式進(jìn)行共指消解。
首先,我們還是提取出一些候選指稱,但是之后,我們對(duì)每個(gè)指稱,將它所在的句子作為問(wèn)題,將整個(gè)文本作為上下文,把二者拼接起來(lái),通過(guò)一個(gè)問(wèn)答模型抽取整個(gè)文本中該指稱的所有的共指詞。
還是舉上述文本的例子。如下圖所示,我們抽取出的候選指稱一共有8個(gè),對(duì)每個(gè)候選,我們都把它所在的那句話作為問(wèn)題(比如對(duì)指稱八,我們就選取了“她現(xiàn)有六個(gè)校區(qū)”作為問(wèn)題),并且把該指稱用一對(duì)特殊符號(hào)<m></m>包圍起來(lái),以區(qū)別同一句話內(nèi)的不同指稱;然后再把整個(gè)源文本作為上下文。
二者相加,作為輸入。模型輸出的,就是在源文本中,與當(dāng)前指稱(如指稱一的“北京大學(xué)”)同指的那些詞。在這個(gè)例子中,我們抽取出了“北大”、“北京大學(xué)?!焙汀皣?guó)立北京大學(xué)”。之后,我們繼續(xù)對(duì)其他指稱進(jìn)行這個(gè)操作,就可以抽取出所有的共指詞。
如此一來(lái),由于每個(gè)指稱既能作為問(wèn)題,又能作為上下文的一部分,從而就極大降低了它被二次遺漏的可能性。
同時(shí),通過(guò)顯式提供上下文信息,我們能夠更加準(zhǔn)確地抽取共指詞,實(shí)現(xiàn)顯著的效果提升。
通過(guò)這種方法,我們能夠在共指消解標(biāo)準(zhǔn)數(shù)據(jù)集CoNLL2012和GAP上取得當(dāng)前最優(yōu)結(jié)果,分別達(dá)到了83.1和87.5的F1值,比之前的最優(yōu)結(jié)果分別提高了3.5與2.5。
基于QA的文段抽取式共指消解模型
下圖是所提出模型的示意圖。該模型由一個(gè)指稱提取模塊和一個(gè)指稱鏈接模塊組成,前者從原始文本中提取出所有可能的指稱,后者將指稱聚類為共指詞。下面我們來(lái)分別介紹這兩個(gè)模塊。
?指稱提取模塊
設(shè)輸入文本是,此時(shí)如果考慮所有可能的文段(span),那么一共就有個(gè)不同的文段。設(shè)是第個(gè)文段,它的開(kāi)始位置是FIRST(i),結(jié)束位置是LAST(i)。
對(duì),我們首先用“[SPEAKER]+說(shuō)話人姓名+[SPEAKER]”表示輸入文本中的說(shuō)話者,然后再把整個(gè)文本轉(zhuǎn)化作為SpanBERT的輸入得到每個(gè)輸入單元的特征表示,下圖是一個(gè)例子:
在得到每個(gè)單元的特征表示之后,我們考慮長(zhǎng)度最大為的文段。如此一來(lái),每個(gè)文段可能是指稱的得分可以簡(jiǎn)單地用一個(gè)FFN得到:?。在得到所有文段的得分之后,我們只取前λN個(gè)作為候選指稱。
指稱鏈接模塊
對(duì)候選指稱中的任意一個(gè)指稱,和指稱鏈接模塊任意一個(gè)其他候選指稱,計(jì)算它們是共指的得分。
具體來(lái)說(shuō),我們把所在的句子作為問(wèn)題,把源文本作為上下文,然后通過(guò)一個(gè)SpanBERT給中的每個(gè)語(yǔ)言單元打上BIO的標(biāo)簽,其中B代表開(kāi)始位置,I代表中間位置,O代表詞外位置。從而這個(gè)概率也可以用一個(gè)簡(jiǎn)單的FFNN實(shí)現(xiàn):
此處tag是B/I/O中的一個(gè)。然后我們把這個(gè)概率拓展到文段級(jí)別,得到對(duì)共指的得分:
顯然,要使得上述得分最大,就是要讓中括號(hào)里面的式子最大,從而就是要對(duì)指稱,讓它的起始位置為標(biāo)簽B的概率最大,讓它的其他位置為標(biāo)簽I的概率最大,這也就對(duì)應(yīng)了標(biāo)簽B和I的意義。
再根據(jù)對(duì)稱性(把所在的句子作為問(wèn)題),我們就知道和是共指的得分為:
最后再加上兩者是指稱的得分:
這就是它們最終為共指詞的得分。
用MRC數(shù)據(jù)集數(shù)據(jù)增強(qiáng)
由于該模型是基于問(wèn)答框架,用問(wèn)答數(shù)據(jù)集去預(yù)訓(xùn)練它可能會(huì)有更好的結(jié)果。為此,我們用Quoref和SQuAD兩個(gè)數(shù)據(jù)集去預(yù)訓(xùn)練指稱鏈接模塊。
訓(xùn)練與推理
由于所有可能的文段有個(gè),全部考慮太耗時(shí),所以對(duì)每個(gè),我們只根據(jù)選取前個(gè)以盡量節(jié)省時(shí)間。
此時(shí),每個(gè)都有一個(gè)它是否和共指的概率:
我們使用交叉熵去優(yōu)化它即可。在推理的時(shí)候,我們可以得到一個(gè)無(wú)向圖,每個(gè)結(jié)點(diǎn)是一個(gè)候選指稱。我們只需要對(duì)每個(gè)結(jié)點(diǎn)保留它的最大得分的邊,其構(gòu)成的連通子圖就是某個(gè)實(shí)體的所有共指詞。
實(shí)驗(yàn)
我們?cè)诠仓赶鈽?biāo)準(zhǔn)數(shù)據(jù)集GAP和CoNLL2012上進(jìn)行試驗(yàn),基線模型有e2e-coref, c2f-coref+ELMo, c2f-coref+BERT-large, EE+BERT-large, c2f-coref+SpanBERT-large。其他設(shè)置詳見(jiàn)原文。
下表是各模型在GAP上的試驗(yàn)結(jié)果。其中M是Masculine Examples,F是Feminine Examples,B是Bias factor(F/M),O是Overall F1。
下表是各模型在CoNLL2012上的結(jié)果。
可以看到,在兩個(gè)數(shù)據(jù)集上,我們的方法都取得了顯著更好的結(jié)果,達(dá)到了當(dāng)前這兩個(gè)數(shù)據(jù)集上最佳表現(xiàn)。
因子分析
各組件影響
下表呈現(xiàn)了所提出模型中各組件的影響,可以看到,SpanBERT影響很大,而QA影響最大,去掉它會(huì)降低8.4個(gè)F1值,而在問(wèn)答數(shù)據(jù)集上的預(yù)訓(xùn)練也有較大影響。這說(shuō)明問(wèn)答本身對(duì)所提出模型是至關(guān)重要的。
說(shuō)話者表示的影響
在我們的模型里,我們把每個(gè)說(shuō)話者的姓名當(dāng)做一個(gè)單獨(dú)的符號(hào)處理,而過(guò)去的方法則是把說(shuō)話人轉(zhuǎn)化為二元特征來(lái)表示兩個(gè)指稱是否來(lái)自同一個(gè)說(shuō)話人。
下圖是兩種方法的比較,可見(jiàn),隨著說(shuō)話者數(shù)量的增加,我們的方法具有更顯著的優(yōu)勢(shì),這是因?yàn)閱渭兊奶卣鞅硎緹o(wú)法處理說(shuō)話人多的情況,只有顯式地表示每個(gè)說(shuō)話人,才能區(qū)別其中的指稱。
召回率分析
前面提到,問(wèn)答的方法可以減少指稱提取的錯(cuò)誤傳遞,從而會(huì)有更高的召回率。下圖證明了這一點(diǎn)。即使平均每個(gè)詞只保留20個(gè)文段作為候選指稱,其召回率也有90+。
小結(jié)
在本文,我們提出了一個(gè)基于問(wèn)答框架的共指消解模型,通過(guò)指稱抽取——指稱鏈接兩個(gè)步驟,完成對(duì)共指詞的聚類。這種方法能夠在兩個(gè)標(biāo)準(zhǔn)數(shù)據(jù)集上實(shí)現(xiàn)當(dāng)前最優(yōu)效果,并通過(guò)一系列分析實(shí)驗(yàn)證明“問(wèn)答”本身具體至關(guān)重要的作用。
進(jìn)一步討論:問(wèn)答模式是否有益
包含本文在內(nèi),我們已經(jīng)介紹了三篇基于“問(wèn)答”框架的文章了(前兩篇是關(guān)系抽取和實(shí)體抽取),它們都能獲得非常顯著的效果提升,甚至實(shí)現(xiàn)最優(yōu)結(jié)果。
那么一個(gè)自然的問(wèn)題是,這種問(wèn)答框架是否對(duì)所有NLP任務(wù)都適用呢?
其實(shí)從直覺(jué)上講,廣義上的問(wèn)答無(wú)非是為模型提供了額外的上下文信息,使得模型能夠更簡(jiǎn)單地得到答案。
于是,兩個(gè)問(wèn)題隨之而來(lái):提供什么信息,怎么提供信息。提供什么信息是要選擇怎樣的文本作為“問(wèn)題”,選取怎樣的文本作為“上下文”。怎么提供信息是信息組織的方法,也即針對(duì)這種形式所設(shè)計(jì)的模型結(jié)構(gòu)。
當(dāng)前,對(duì)“提供什么信息”這個(gè)問(wèn)題,我們還僅僅是從原始文本中抽取,或者用預(yù)先定義的模板;對(duì)“怎么提供信息”這個(gè)問(wèn)題,我們僅僅是使用了BERT等預(yù)訓(xùn)練模型。我們相信,如何更好地解決這兩個(gè)要點(diǎn),是此方法發(fā)展的方向。
????
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁(yè)搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個(gè)推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺(tái)。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號(hào)后臺(tái)點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結(jié)
以上是生活随笔為你收集整理的ACL 2020 开源论文 | 基于Span Prediction的共指消解模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 游戏《地球防卫军 6》PC 版取消强制
- 下一篇: GELU的两个初等函数近似是怎么来的?