关系重叠?实体嵌套?曝光偏差?这个模型统统都搞得定!
?PaperWeekly ·?作者|王雨城
學(xué)校|中國科學(xué)院信息工程研究所碩士
研究方向|自然語言處理
本文提出了一種新的實體關(guān)系聯(lián)合抽取標(biāo)注方案,可在一個模型中實現(xiàn)真正意義上的單階段聯(lián)合抽取,不存在曝光偏差,并且同時可解決多關(guān)系重疊和多關(guān)系實體嵌套的問題。
閱讀本文大約需要 12 分鐘,主要分為以下幾個部分:問題背景介紹、idea的由來、標(biāo)注方案、模型、實驗結(jié)果、未來工作。對關(guān)系抽取任務(wù)比較熟悉的同學(xué)可以略讀或者直接跳過第一部分。
背景
關(guān)系抽取是從非結(jié)構(gòu)化文本中抽取實體和關(guān)系的文本處理技術(shù),屬于自然語言處理中的常見任務(wù)。它是自然語言理解的基礎(chǔ),在智能問答、信息檢索等領(lǐng)域有重要應(yīng)用。簡單來說就是給定一段文本,要抽出其中的(subject, predicate, object)三元組。例如:
?{'text':?'《邪少兵王》是冰火未央寫的網(wǎng)絡(luò)小說連載于旗峰天下','relation_list':?[{'subject':?'邪少兵王',?'object':?'冰火未央',?'predicate':?'作者'},]}pipeline 的方法一般先做實體識別,再對實體對進(jìn)行關(guān)系分類。這類方法忽略了實體與關(guān)系之間的聯(lián)系,而且存在誤差累積的問題。
為了充分利用實體與關(guān)系的交互信息和依賴關(guān)系,聯(lián)合抽取的思路應(yīng)運而生,即在一個模型中同時對實體和關(guān)系進(jìn)行統(tǒng)一抽取。較早的聯(lián)合抽取方法,如 NovelTagging,沒法解決關(guān)系重疊的問題。當(dāng)一個或一對實體同時出現(xiàn)在多個關(guān)系時,單純的序列標(biāo)注就不再管用了,例如:
_ | 文本 | 關(guān)系 |
單實體重疊 | 周星馳主演了《喜劇之王》和《大話西游》。 | (周星馳,演員,喜劇之王)(周星馳,演員,大話西游) |
實體對重疊 | 由周星馳導(dǎo)演并主演的《功夫》于近期上映。 | (周星馳,演員,功夫)(周星馳,導(dǎo)演,功夫) |
后來提出的一些方法已經(jīng)可以解決重疊問題,如 CopyRE [1]、CopyMTL [2]、CasRel(HBT)[3]等,但它們在訓(xùn)練和推理階段存在曝光偏差。即在訓(xùn)練階段,使用了 golden truth 作為已知信息對訓(xùn)練過程進(jìn)行引導(dǎo),而在推理階段只能依賴于預(yù)測結(jié)果。這導(dǎo)致中間步驟的輸入信息來源于兩個不同的分布,對性能有一定的影響。
雖然這些方法都是在一個模型中對實體和關(guān)系進(jìn)行了聯(lián)合抽取,但從某種意義上它們“退化”成了“pipeline”的方法,即在解碼階段需要分多步進(jìn)行。這也是它們存在曝光偏差的本質(zhì)原因。
本文提出了一種新的實體關(guān)系聯(lián)合抽取標(biāo)注方案,可在一個模型中實現(xiàn)真正意義上的單階段聯(lián)合抽取,不存在曝光偏差,保證訓(xùn)練和測試的一致性。并且同時可解決多關(guān)系重疊和多關(guān)系實體嵌套的問題。
論文標(biāo)題:
TPLinker: Single-stage Joint Extraction of Entities and Relations Through Token Pair Linking
論文鏈接:
https://arxiv.org/abs/2010.13415
源碼鏈接:
https://github.com/131250208/TPlinker-joint-extraction
Idea的由來
說了那么多,終于要進(jìn)入正題了。我最初的 idea 是為了解決一個比較極端的情況,曝光偏差的問題其實是“順便”解決的。在許多關(guān)系抽取的比賽數(shù)據(jù)集中,我發(fā)現(xiàn)部分關(guān)系的實體存在嵌套,請看以下兩個例子:
_ | 文本 | 關(guān)系 |
關(guān)系內(nèi)嵌套 | 周星馳主演了《喜劇之王》和《大話西游》。 | (哈爾濱工業(yè)大學(xué),位于,哈爾濱) |
關(guān)系間嵌套 | 由周星馳導(dǎo)演并主演的《功夫》于近期上映。 | (北京市,包含,通州)(北京市政府,位于,通州) |
雖然當(dāng)前已經(jīng)有很多方法可以專門用于識別嵌套實體,但是把它們直接融合到關(guān)系抽取中也并不是那么容易。即使可以,多少顯得有點笨重。于是,我開始思考如何能夠用一個簡單直接的方法識別嵌套實體,并與關(guān)系抽取任務(wù)優(yōu)雅融合。
疫情期間,我每天苦思冥想,瞠目抖腿,抓耳撓腮,搖頭晃腦,鬼哭狼嚎,差點以頭搶地。最后,一拍大腿,嗨,不就是頭和尾的區(qū)別。只要一個實體的頭部 token 和尾部 token 被唯一確定,那它就可以與外部或者內(nèi)部的其他實體區(qū)別開。那么如何確定頭尾呢?我們要的不是多個標(biāo)簽,而是一個標(biāo)簽,因為多個標(biāo)簽難免要遇到配對的問題。那么,答案呼之欲出了,就是矩陣。矩陣中的一個點可以確定一對 token。一句話的所有嵌套實體都可以在一個矩陣中被一個點唯一標(biāo)注,如下圖所示:
▲ 嵌套實體標(biāo)注示例
縱軸為頭,橫軸為尾,圖中的兩個紅色 1 標(biāo)簽分別標(biāo)注了(北,市)和(北,府),代表“北京市”和“北京市政府”為兩個實體。
實體解決了,那么關(guān)系怎么辦呢?那是一個下午,落日的余光灑在地板上顯得格外刺眼,我看了一眼客廳的沙發(fā),忽然想起了那天夕陽下的思考。一拍腦袋,鄰接矩陣不就是用來表示節(jié)點關(guān)系的嗎?實體關(guān)系可不可以也用兩個 token 的關(guān)系來表示呢?答案又呼之欲出了。對,那就是 subject 和 object 的頭部 token 以及尾部 token。例如:(周星馳,演員,喜劇之王)-> (周,演員,喜),(馳,演員,王)。
有些同學(xué)可能會疑惑為什么還要標(biāo)尾部 token,頭部 token 對的關(guān)系不就已經(jīng)足夠表達(dá)關(guān)系了嗎?那是因為如果不確定尾部邊界,仍然無縫解決嵌套問題。如前文例子中的“北京市”和“北京市政府”就是共享頭部 token 的嵌套實體。
有些小伙伴可能已經(jīng)看出來了,我們不知不覺就把 subject 和 object 在同一解碼階段確定了下來。于是,曝光偏差就不存在了。
標(biāo)注方案
具體的標(biāo)注方案如下圖所示:
▲ 初始標(biāo)注方案示例
其中紫色標(biāo)簽代表實體的頭尾關(guān)系,紅色標(biāo)簽代表 subject 和 object 的頭部關(guān)系,藍(lán)色標(biāo)簽代表 subject 和 object 的尾部關(guān)系。至于為什么用顏色區(qū)分,是因為這三種關(guān)系可能重疊,所以三種標(biāo)簽是存在于不同矩陣的,這里為了便于闡述,才放在一起。
因為實體尾部不可能出現(xiàn)在頭部之前,所以紫色標(biāo)簽是不可能出現(xiàn)在下三角區(qū)的,那么這樣標(biāo)就有點浪費資源。能不能不要下三角區(qū)?但要注意到,紅標(biāo)和藍(lán)標(biāo)是會出現(xiàn)在下面的。所以我們把紅藍(lán)標(biāo)映射到上三角區(qū)對應(yīng)位置,并標(biāo)記為 2,然后棄了下三角區(qū),如下圖:
▲?最終標(biāo)注方案示例
模型
▲ 模型框架
模型結(jié)構(gòu)比較簡單,整個句子過一遍 encoder,然后將 token 兩兩拼接輸入到一個全連接層,再激活一下輸出作為 token 對的向量表示。最后對 token 對進(jìn)行分類即可。換句話說,這其實就是一個較長序列的標(biāo)注過程。
在上圖的例子中,可以解碼出 5 種關(guān)系:
(New?York,?mayor,?De?Blasio),? (De?Blasio,?born?in,?New?York),? (De?Blasio,?born?in,?New?York?City),? (De?Blasio,?live?in,?New?York),? (De?Blasio,?live?in,?New?York?City)實驗結(jié)果
截止到論文被接收,該模型在 NYT 和 WebNLG 兩個關(guān)系抽取任務(wù)上都達(dá)到了當(dāng)時的 SOTA 性能。
▲ exp_res1
未來的工作
這里主要提一下值得改進(jìn)的地方:
論文中 token 對的向量表示采用的是直接拼接,這種簡單的方式可能并不能展現(xiàn)出最佳的性能。
實體和關(guān)系的識別使用的都是相同的向量表達(dá),這可能會相互干擾。[4]?最新的兩篇相關(guān)論文也指出了使用不同的特征去分別解決兩個任務(wù)可能對性能有提升: A Frustratingly Easy Approach [4], Two are Better than One [5]。
模型將原本長度為 N 的序列擴(kuò)展成了O(N2)的序列,這無疑增加了開銷,使得處理長文本變得比較昂貴。另外,矩陣的稀疏性和標(biāo)簽的極度不平衡對性能有一定的影響。
參考文獻(xiàn)
[1]?Extracting relational facts by an end-to-end neural model with copy mechanism: https://www.aclweb.org/anthology/P18-1047
[2]?CopyMTL: Copy Mechanism for Joint Extraction of Entities and Relations with Multi-Task Learning: https://arxiv.org/abs/1911.10438
[3]?A novel cascade binary tagging framework for relational triple extraction: https://arxiv.org/abs/1909.03227
[4]?A Frustratingly Easy Approach for Joint Entity and Relation Extraction: https://arxiv.org/abs/2010.12812
[5]?Two are Better than One: Joint Entity and Relation Extraction with Table-Sequence Encoders: https://arxiv.org/abs/2010.03851
更多閱讀
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識的人。
總有一些你不認(rèn)識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)習(xí)心得或技術(shù)干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標(biāo)準(zhǔn):
? 稿件確系個人原創(chuàng)作品,來稿需注明作者個人信息(姓名+學(xué)校/工作單位+學(xué)歷/職位+研究方向)?
? 如果文章并非首發(fā),請在投稿時提醒并附上所有已發(fā)布鏈接?
? PaperWeekly 默認(rèn)每篇文章都是首發(fā),均會添加“原創(chuàng)”標(biāo)志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發(fā)送?
? 請留下即時聯(lián)系方式(微信或手機),以便我們在編輯發(fā)布時和作者溝通
????
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁搜索「PaperWeekly」
點擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學(xué)術(shù)平臺。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的关系重叠?实体嵌套?曝光偏差?这个模型统统都搞得定!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么食物吃后能让人难以忘记???
- 下一篇: 超越谷歌BERT!依图推出预训练语言理解