天天看點

ICLR 2021 | Autoregressive Entity Retrieval基本資訊摘要介紹模型實驗結果總結

基本資訊

标題:

Autoregressive Entity Retrieval

機構:

阿姆斯特丹大學、Facebook AI Research、巴黎高師、巴黎文理研究大學、法國國家資訊與自動化研究所、英國倫敦大學學院

作者:

Nicola De Cao, Gautier Izacard, Sebastian Riedel, Fabio Petroni

論文代碼:

https://github.com/facebookresearch/GENRE

論文位址:

https://arxiv.org/abs/2010.00904

https://openreview.net/forum?id=5k8F6UU39V

摘要

實體是表示和聚合知識的中心。比如,維基百科、百度百科等百科全書皆由實體構成。對于給定的query檢索出對應實體的能力是知識密集型任務(如實體連結和開放域問答)的基礎。實體檢索的一種方法常見方法是将其轉為multi-class分類任務,設計分類器對每個實體進行原子級打标簽。通過 encode 實體元資訊(如描述資訊)産生對應的稠密實體表征。這類方法有如下缺點:

  • 上下文和實體的關系主要通過向量點積擷取,可能會丢失兩者之間的細粒度互動
  • 涉及大型實體集時需要大量記憶體存儲實體的稠密表征
  • 訓練時必須對負樣本中的hard樣本進行适當的二次抽樣

文章提出一種名為 GENRE (for Generative ENtity REtrieval)的系統,該系統通過生成實體名的方式實作實體檢索。GENRE以從左到右,token-by-token 的自回歸方式生成實體名稱且生成的結果受上下文影響。GENRE能夠緩解上述所提到的技術問題:

  • (1) 自回歸方式使得可以直接捕獲上下文和實體名稱之間的關系,并能對兩者進行有效地交叉編碼
  • (2) 采用encoder-decoder架構使得參數規模随詞彙表大小而非實體量多少而縮放,是以記憶體占用大大減少
  • (3) 可以準确高效計算softmax損失,而無需對負樣本進行子采樣

在實體消歧、端到端實體連結和文檔檢索任務的20多個資料集上對 GENRE 進行了實驗,結果表明GENRE的有效性。GENRE以很少的記憶體占用取得SOTA或非常有競争力的結果。

簡而言之,GENRE的核心是通過seq2seq方法生成有意義的實體名稱進而實作實體連結,而且效果還很好!

介紹

所謂實體檢索是對于一個給定的源文本(也可以是query)從實體集合(其中每個實體都是知識庫中的一個條目)中傳回與其最相關的實體。目前多數的實體檢索系統一般是将實體與唯一的原子标簽相關聯,并将實體檢索任務轉為multi-class分類。通過bi-encoder對輸入和标簽進行編碼,再計算兩者稠密向量(一般是輸入和實體的元資訊,比如标題和描述)的點積得到比對得分,最後從大型實體資料庫中檢索出目标結果。這類方法存在以下缺點:

  • 除非使用昂貴的交叉編碼器(cross-encoder)進行重排序,否則點積可能會丢失輸入和實體元資訊之間的細粒度互動資訊
  • 存儲整個知識庫的稠密向量需要很大的記憶體,特别是在真實的場景中(例如,将約6M的全部Wikipedia頁面存儲為1024維向量,需要占用約24GB的記憶體),并且随着新實體的增加,其記憶體消耗呈線性增長
  • 在所有實體上精确計算softmax代價很高,是以目前系統的解決方案是在訓練階段對負樣本進行子采樣。然而适當地調優出一組hard級别負樣本很有挑戰性且非常耗時
  • 現有系統可能會遇到冷啟動問題,因為無法表征尚未收集到足夠資訊(比如以文本描述或一組與現有實體的關系的形式)的實體

把實體辨別符當作分類器中的原子标簽來處理,忽略了這樣一個事實,即我們經常有明确的、高度結構化的和複合的實體名稱。例如,維基百科用獨特的标題與文章聯系起來(文章這裡使用實體名稱來指代相應的維基百科文章标題),是以文章标題也可作為實體的唯一辨別符。文章标題可能有主題名稱或其主題的描述,以及潛在的獨特資訊可以用來消除歧義。具體示例如Figure 1所示。

ICLR 2021 | Autoregressive Entity Retrieval基本資訊摘要介紹模型實驗結果總結

這些實體名稱通常以可預測和規則的方式與實體提及(mention)的上下文進行互動。文章總結了6種實體名稱與mention的比對情形:

  • 實體名稱與mention相同,如Figure 1f
  • 實體名稱由上下文中的token組成,如Figure 1b
  • 實體名稱指定mention的類型資訊,如Figure 1a
  • 實體名稱是mention的變換,如Figure 1c
  • 實體名稱是規範化後的mention,比如mention的别名,如Figure 1d
  • 實體名稱可能需要存儲在模型參數中的事實知識,如Figure 1e

以Figure 1b的例子(屬于第2種類型)進行展開說明。該例子中實體名稱由context中的tokens組成,此處實體名稱是

Ōwhango railway station

,由context中的token

Ōwhango

與 mention的字元串:

railway station

組成。綜合以上6種情形可以看出,輸入可以逐字翻譯(或者說轉換)成唯一的實體名稱,而不是在一大堆候選項中進行分類。這6種類型說明實體名稱和帶mention的input之間存在着某種形式的映射,是以對于一個mention+context或者輸入,是有可能采用生成的方式将其中的mention轉換為一個唯一的實體名稱的。

文章提出一種名為 GENRE (for Generative ENtity REtrieval)的模型,該模型首創一種利用seq2seq的體系結構和基于上下文的自回歸方式生成實體名稱的entity retriever(實體檢索器)。具體來說,GENRE使用了transformer-based的BART預訓練模型并在微調階段生成實體名。這種體系結構在一定程度上保留了事實知識和語言翻譯技能。而這兩個屬性都是 entity retriever 的理想屬性。當然,生成的輸出可能并不總是有效的實體名。為此,GENRE 采用了一種受限(或者說是帶限制)的解碼政策,強制生成的每個名稱都在預定義的候選集中。GENRE 有以下優點:

  • 自回歸的範式使得GENRE能夠直接捕獲上下文和實體名稱之間的關系,并且能有效地交叉編碼
  • 所需的記憶體占用比目前系統小幾個數量級,因為序列到序列模型的參數與詞彙表大小成線性關系,而非實體數量
  • 準确高效地計算每個輸出token的softmax(即,所有非标準token被認為是負樣本),進而避免了對負樣本進行下采樣
  • GENRE無需通路除标題之外的任何關于實體的顯式元資訊,是以,隻需将它們明确的名稱添加到候選集合,就可以實作新實體的添加

模型

文章将實體檢索任務定義成一個sequence-to-sequence任務,進而生成文本實體辨別符(即實體名稱)。對于輸入,要生成其對應的實體,并且屬于知識庫中的候選實體集合。利用BART預訓練語言模型計算輸入與每個候選實體的log-likelihood得分,然後按照分數取top-N個候選實體。以自回歸方式計算得分:

score ⁡ ( e ∣ x ) = p θ ( y ∣ x ) = ∏ i = 1 N p θ ( y i ∣ y < i , x ) \operatorname{score}(e \mid x)=p_{\theta}(y \mid x)=\prod_{i=1}^{N} p_{\theta}\left(y_{i} \mid y_{<i}, x\right) score(e∣x)=pθ​(y∣x)=i=1∏N​pθ​(yi​∣y<i​,x)

其中 e e e是實體集合中的實體, y y y是組成實體 e e e的N個token, θ \theta θ是模型的參數, x x x是輸入的源文本(比如query)。使用标準的seq2seq目标函數(即最大化輸出序列的likelihood)訓練 GENRE。 具體來說,文章使用了神經機器翻譯的典型目标函數,即最大 log ⁡ p θ ( y ∣ x ) \log p_{\theta}(y \mid x) logpθ​(y∣x)的模型參數θ。由于損失函數通過因式分解可以精确計算,是以不需要負采樣來進行近似。簡而言之,GENRE通過fine-tune BART模型來生成實體名稱。

受限 Beam Search

GENRE 在decode階段并沒有在Wikipedia的所有實體(約6M)進行搜尋,而是采用了beam search政策。具體來說,beam search 中的top-k設定為10,是以隻從top10個實體中進行選擇。傳統的beam search解碼允許每個位置可以是任意的token,如此無法保證生成的實體一定屬于知識庫。為確定生成的實體在知識庫中,文章提出一種受限的Beam Search,進而強制隻解碼出有效的實體名稱。在解碼過程中,Beam Search 隻考慮提前一步,是以解碼時隻能以前一步為條件控制下一個token的生成。是以,文章通過字首樹定義受限條件,樹上的每一個節點表示詞表中的一個token,節點的孩子表示所有可能的後續tokens。下圖是字首樹的一個例子:

ICLR 2021 | Autoregressive Entity Retrieval基本資訊摘要介紹模型實驗結果總結

從上圖可以看出

Enligh

這個token的後續tokens是

language

literature

,則解碼時

Enligh

的下一個token隻能從

language

literature

中選擇。

自回歸的端到端實體連結

在實體消歧和頁面級的文檔檢索任務上,直接将資料集輸入到語言模型即可,但是生成式的端到端實體連結任務相對複雜。所謂的端到端實體連結是給定一個文檔,系統需要檢測其中的entity mentions,并将mentions連結到知識庫中相應的實體。比如輸入是

In 1503, Leonardo began painting the Mona Lisa

, 則需要模型檢測出其中的mention是

Leonardo

Mona Lisa

,然後将其連結到知識庫中的實體

Leonardo da Vinci

Mona Lisa

。為此,GENRE 進一步擴充了其自回歸架構使其能夠進行實體連結,這就要求能夠同時檢測和連結實體。

由于mention的文本形式千變萬化(free-form),很難預定義所有mentions的字首樹,即使做到搜尋空間也會非常大。是以文章采用動态解碼的方案。具體示例如Figure 2所示。

ICLR 2021 | Autoregressive Entity Retrieval基本資訊摘要介紹模型實驗結果總結

每個生成步驟的 decoder 可能生成3種結果:mention span 、mention 連結的實體和輸入源。在生成 mention/實體 階段之外,decoder 有兩個可能:(1)從輸入源直接複制下一個token (2)生成mention 的起始token(即’[’),這使得decoder進入mention生成階段。在生成 mention 時,decoder 也有2種可能:(1)從輸入源中拷貝生成mention的下一個token (2)生成 mention的終止token(即’]’),這使得 decoder 進入實體連結階段。生成實體時,decoder使用之前所說的字首樹以確定輸出一個符合要求的實體。最後生成")"結束實體生成。

實驗結果

文章在實體消歧、端到端實體連結和文檔檢索任務的20多個資料集上對 GENRE 進行了實驗,實驗結果表明 GENRE 确實高效可行。GENRE 非常能打,以很少的記憶體即可取得SOTA或非常有競争力的結果。

實體消歧

GENRE 在在6個實體消歧資料集上的性能提升整體較小,Micro F1隻比之前的SOTA高出了0.8。具體如 Table 1所示。由于對這些實體消歧基準資料的研究已有十多年,整體刷榜差不多到頭了,即使是3年前的模型也有較高的得分,是以,想要進一步大幅提升比較困難~

ICLR 2021 | Autoregressive Entity Retrieval基本資訊摘要介紹模型實驗結果總結

實體連結

GENRE 在8個實體連結資料集上的Micro F1比之前的SOTA高出1.8。具體如 Table 2所示。

ICLR 2021 | Autoregressive Entity Retrieval基本資訊摘要介紹模型實驗結果總結

從中可以看出 GENRE 在Der和K50這兩個資料集的提升最大,在 Micro F1 上分别提升13和4.7。

頁面級文檔檢索

在頁面級文檔檢索任務上,GENRE所展示出來的優越性非常顯著。GENRE 在所有資料集上幾乎都取得了SOTA,整體的R-Precision比之前的SOTA模型高出13.7。具體如 Table 3所示。

ICLR 2021 | Autoregressive Entity Retrieval基本資訊摘要介紹模型實驗結果總結

節省記憶體

文章對比了DPR 、RAG 、BLINK 和 GENRE在文檔檢索任務上的記憶體占用,具體如 Table 4所示。GENRE使用一個數量級較小的參數(數百萬而不是數十億)來存儲實體索引,因為它隻需要使用實體名稱的字首樹,而不是為每個實體建構一個稠密向量。

ICLR 2021 | Autoregressive Entity Retrieval基本資訊摘要介紹模型實驗結果總結

從以上表格可以看出 GENRE 的記憶體占用比 BLINK 少14倍,比 DPR 省了34倍。

實體名稱比實體ID更好

文章在實體消歧任務上對比了生成實體名稱和生成實體ID的差別。具體如Table 5所示。

ICLR 2021 | Autoregressive Entity Retrieval基本資訊摘要介紹模型實驗結果總結

上圖對比了3種mention和實體名稱的比對類型在不同模型上的效果,可以看出:

  • 當mention和實體名稱完全比對時,GENRE取得了非常高的Micro F1,而使用IDs則降低了20.6。
  • 當部分比對時,GENRE依舊碾壓IDs,說明實體名稱确實是提供了有意義的資訊。這種情況下實體名稱的優勢是,實體名稱可以與mention的cotnext進行更多的細粒度互動,以幫助選擇正确的候選實體。
  • 當完全不比對時,使用實體名稱和IDs的差別相對較小,這說明:1)GENRE依賴于文本,2)即使是生成數值資訊,模型也是有一定的實體消歧能力。

此外,文中還進一步讨論了 GENRE 對尾部實體的處理,實驗結果表明GENRE确實可以有效處理連結罕見的實體。

總結

文章提出一種名為GENRE的方法進行實體檢索,該方法以自回歸的方式生成實體名稱。GENRE有以下優點:

  • 輸入和實體名稱之間的細粒度互動。實體名稱(文章title)提供更詳細的實體描述,使實體與mention及其context之間的編碼可以有更細粒度的互動。換句話說,引入文章title來替代實體的ID,因為這裡實體名稱可以提供更多更多細粒度資訊。
  • 減少記憶體占用。在解碼階段使用字首樹來做beam search,使得記憶體占用僅與詞表大小有關,而和實體數量無關,進而減少了存儲空間。
  • 避免負采樣。因為準确的softmax loss可以直接計算得到,所有的非标準的token都被當做負樣本,是以無需負采樣。

簡而言之,GENRE開創以seq2seq的生成方式進行實體檢索之先河,且結果取得SOTA或近似SOTA。