【關(guān)于 GENER 】 那些你不知道的事
作者:楊夕
論文名稱:AUTOREGRESSIVE ENTITY RETRIEVAL
論文地址:https://openreview.net/pdf?id=5k8F6UU39V
論文代碼:https://github.com/facebookresearch/GENRE
來源:ICLR 2021
項目地址:https://github.com/km1994/nlp_paper_study
NLP 面筋:https://github.com/km1994/NLP-Interview-Notes
個人介紹:大佬們好,我叫楊夕,該項目主要是本人在研讀頂會論文和復(fù)現(xiàn)經(jīng)典論文過程中,所見、所思、所想、所聞,可能存在一些理解錯誤,希望大佬們多多指正。
摘要
介紹:實體是我們表示和聚合知識的中心。例如,維基百科等百科全書是由實體構(gòu)成的(例如,一篇維基百科文章)。檢索給定查詢的實體的能力是知識密集型任務(wù)(如實體鏈接和開放域問答)的基礎(chǔ)。理解當(dāng)前方法的一種方法是將分類器作為一個原子標(biāo)簽,每個實體一個。它們的權(quán)重向量是通過編碼實體元信息(如它們的描述)產(chǎn)生的密集實體表示。
缺點(diǎn):
(i)上下文和實體的親和力主要是通過向量點(diǎn)積來獲取的,可能會丟失兩者之間的細(xì)粒度交互;
(ii)在考慮大型實體集時,需要大量內(nèi)存來存儲密集表示;
(iii)必須在訓(xùn)練時對一組適當(dāng)硬的負(fù)面數(shù)據(jù)進(jìn)行二次抽樣[。
工作內(nèi)容介紹:在這項工作中,我們提出了第一個 GENRE,通過生成其唯一的名稱,從左到右,token-by-token 的自回歸方式和條件的上下文。
這使得我們能夠緩解上述技術(shù)問題,
(i)自回歸公式允許我們直接捕獲文本和實體名稱之間的關(guān)系,有效地交叉編碼兩者 ;
(ii)由于我們的編碼器-解碼器結(jié)構(gòu)的參數(shù)隨詞匯表大小而不是詞匯量大小而縮放,因此內(nèi)存足跡大大減少實體計數(shù);
(iii)準(zhǔn)確的softmax損失可以有效地計算,而無需對負(fù)數(shù)據(jù)進(jìn)行子采樣。
實驗結(jié)果:我們展示了該方法的有效性,在實體消歧、端到端實體鏈接和文檔檢索任務(wù)上對20多個數(shù)據(jù)集進(jìn)行了實驗,在使用競爭系統(tǒng)內(nèi)存占用的一小部分的情況下,獲得了最新的或非常有競爭力的結(jié)果。他們的實體,我們只需簡單地指定新的名稱,就可以添加
一、實體檢索任務(wù)
1.1 定義介紹
實體檢索任務(wù):給定一段輸入文本和知識庫,需要模型 根據(jù)知識庫,從文本找出最關(guān)聯(lián)的候選實體。
舉例
給定文本:湖人隊獲得 2020 年 NBA 總決賽冠軍;
給定知識庫:[洛杉磯湖人隊,...]
抽取出結(jié)果:
湖人隊 -> 洛杉磯湖人隊
1.2 常用方法
| 任務(wù)類型 | 分類式實體檢索 | 生成式實體檢索 |
| 類型 | 實體 ID 分類 | 實體名稱生成 |
| 內(nèi)存 | 高【需要加載 知識庫】 | 低【不需要加載 知識庫】 |
| 負(fù)采樣 | 需要【由于直接加載整個知識庫內(nèi)存占用大】 | 不需要 |
1.3 生成式實體消歧、實體鏈接、文檔檢索
實體消歧:給定一個包含mention的輸入,需要生成mention所指代的是KB中的哪一個實體。
端到端實體鏈接:給定一個文檔,系統(tǒng)需要檢測其中的entity mentions,并將mentions鏈接到KB中相應(yīng)的實體。
比如輸入是 “In 1503, Leonardo began painting the Mona Lisa “, 則需要模型檢測出其中的mention是 Leonardo 和 Mona Lisa “,然后將其鏈接到KB中的實體 Leonardo da Vinci 和 Mona Lisa 。
頁面級別的文本檢索:給定一個包含輸入query,找到其所對應(yīng)的Wikipedia的文章題目。
比如輸入是“Which Florentine painter 1535-1607 used the name Bronzino after the death of his ‘uncle’?”,輸出是文章題目名’Bronzino’。
二、為什么 生成式 能夠 應(yīng)用于 實體鏈指?
分類式實體檢索特點(diǎn):每一個實體帶有一個唯一的原子標(biāo)簽,因此所以被視為 多分類任務(wù)
生成式實體檢索特點(diǎn):
原子標(biāo)簽
文章標(biāo)題(實體名稱)【存在唯一性,所以也可以作為 表示符,同時還具有高結(jié)構(gòu)性和組合性,而且在內(nèi)容上可提供更詳細(xì)的信息,并且這些實體名稱與mention context存在可預(yù)測的匹配模式?!?/p>
注:mention 表示自然語言表示實體的文本片段,如 1.1 章,湖人隊 為 mention,mention 的 context 指 mention 上下文,例如:2020 年 NBA 總決賽冠軍
三、實體名稱和mention+context的匹配類型?
將實體標(biāo)識符視為分類器中的原子標(biāo)簽忽略了這樣一個事實,即我們通常擁有明確、高度結(jié)構(gòu)化和組合的實體名稱。例如,Wikipedia將獨(dú)特的標(biāo)題與文章聯(lián)系起來,這些標(biāo)題可能是主題的名稱或主題的描述,以及消除歧義的潛在獨(dú)特信息(參見圖1中的一些示例)。這些實體名稱通常以一種可預(yù)測的、有規(guī)律的方式與 mention 上下文進(jìn)行交互。
實體名稱和 mention 完全相同
由上下文中的標(biāo)記組成
實體名稱和 mention 規(guī)范化后相同
需要“規(guī)范化”,例如 mention 的正確別名
要求可能存儲在模型參數(shù)中的事實知識
實體名稱和 mention 完全相同

從上面這六種類型說明實體名稱和帶mention的input之間存在著固定形式的映射,因此對于一個mention+context或者輸入,是有可能采用 生成的方式 將其中的mention轉(zhuǎn)換為一個唯一的實體名稱的。
四、GENER 方法 如何生成實體呢?
生成式實體檢索方式:生成 一個 給定輸入到實體名稱,也就是 模型 需要 根據(jù) 輸入信息,生成 其所對應(yīng)的實體,并且該實體 必須 存在于 知識庫或知識圖譜中 的 候選實體集合;
GENER 所用 框架:seq2seq 方式
GENER 思路:
采用 預(yù)訓(xùn)練語言模型(BART[1]) 計算輸入與每個候選實體的log-likelihood分?jǐn)?shù);
然后按照分?jǐn)?shù)取top-N個候選實體。從技術(shù)上講,GENRE通過fine-tune預(yù)訓(xùn)練語言模型來生成實體名稱。

五、GENER 方法 所生成的實體 會不會不落在 知識庫中?
動機(jī):實體檢索 的目標(biāo)就是 從 知識庫 或者 知識圖譜 中 檢索出 已存在的實體,如果采用 生成式方法 生成實體,是否會存在 生成的實體不在 知識庫 中的情況呢?
傳統(tǒng)方法方法及存在問題:在解碼的過程中,是在WIkipedia的所有實體(~6M)進(jìn)行搜索,也就是允許每個位置可以是任何的token,所以無法保證生成的實體一定屬于 知識庫 中實體;
論文解決方法:采用 一種 受約束的beam search 來解決該問題。所謂的約束是通過前綴樹(trie) 定義的,樹上的每一個節(jié)點(diǎn)是詞表中的一個token,節(jié)點(diǎn)的孩子表示所有可能的后續(xù)tokens 。

例如:Enligh的后續(xù)tokens是language和literature,那幺在解碼時如果當(dāng)前詞是English, 那幺就下一個token只能從language和literature中選擇。
六、生成式的端到端實體鏈接 問題解決方法?
前言:對于 1.3 所介紹的 實體消歧、端到端實體鏈接、頁面級別的文本檢索 三種任務(wù),實體消歧和頁面級別的文本檢索 任務(wù) 可以直接將數(shù)據(jù)集中的輸入喂給 預(yù)訓(xùn)練語言模型(BART[1]) 即可,但是對于 生成式的端到端實體鏈接任務(wù) 并不能 采用 這種方式解決,那么 該問題 需要如何處理呢?
思路:訓(xùn)練時encoder的輸入是文本序列,decoder的輸入是在基礎(chǔ)上標(biāo)注了mention和實體鏈接信息,從而監(jiān)督模型的生成這兩部分信息。
encoder輸入: In 1503, Leonardo began painting the Mona Lisa .
decoder輸入: In 1503, [Leonardo](Leonardo da Vinci) began painting the [Mona Lisa](Mona Lisa) 。
注:從上面可以看出,在 decoder 階段并沒有太大不同,但是在 decoder 階段,論文 會將 輸入中 的 mention 用 [] 進(jìn)行標(biāo)注,并且 利用 () 標(biāo)注出 mention 在 KB 中所對應(yīng)的實體
問題:但是因為mention是free-form的文本,如果定義所有mentions的前綴樹trie的話,則搜索空間會非常的大。那要怎幺辦呢?
解決方法:采用了動態(tài)解碼的方式
metion的生成: 由 “[” 激活—->從輸入中復(fù)制mention span —-> 生成 “]” 結(jié)束。ps: 因為mention span的生成是直接從復(fù)制的,所以就不需要去進(jìn)行大量的空間搜索~
entity的生成:由 “]” 激活 —-> 利用entities trie生成有效entity —-> 生成 “)” 結(jié)束。
其余tokens的生成: 直接從中復(fù)制就好。
舉例說明:

七、實驗結(jié)果分析
7.1 整體效果
注:在8個實體鏈接數(shù)據(jù)集上的整體Micro F1比之前SOTA高出了1.8
7.2 頁面級別的文本檢索任務(wù)上的實驗結(jié)果
八、總結(jié)
方法:一種新的范式體裁來解決實體檢索:自動回歸生成實體名。實體名稱有幾個屬性可能有助于(甚至人類)重新檢索它們,包括組成結(jié)構(gòu)和與實體的可預(yù)測交互上下文自回歸公式允許我們直接捕捉其中的一些性質(zhì)
優(yōu)點(diǎn):相對于當(dāng)前的解決方案
一種有效的方法交叉編碼上下文和實體候選;
內(nèi)存占用小得多;
無需對負(fù)數(shù)據(jù)進(jìn)行子采樣即可計算精確的softmax。
實驗結(jié)果:這些特征與受限的解碼策略相結(jié)合,在大量的實體檢索數(shù)據(jù)集上產(chǎn)生了最先進(jìn)的性能,包括實體消歧、端到端實體鏈接和頁面級文檔檢索,同時導(dǎo)致系統(tǒng)具有顯著的內(nèi)存bootprint、空間平均減少20倍。此外,我們還證明了在我們的系統(tǒng)中,通過簡單地將新實體的明確名稱附加到候選集,可以有效地考慮新實體。
參考
Facebook提出生成式實體

