EMNLP 2021 | 大道至简:微软提出可生成高质量文本表示的预训练语言模型
?
?作者 |?常馨
學校 |?北京郵電大學碩士生
研究方向 |?NLP、信息檢索
Abstract
基于自動編碼器的語言模型在 Dense Retrieval(DR)中受到越來越多的關注,因為其訓練編碼器輸出高質量的 embedding,從而可以用于對輸入文本進行重構。然而,在本文作者發現,低重構損失的自動編碼器語言模型可能會利用語言模式走捷徑,強大的解碼器自身可能學習到一定的語言范式,因此解碼效果越好,并不一定意味著生成的表示越好。
為解決該問題,本文提出了一種生成高質量文本表示的預訓練語言模型 SEED-Encoder(Strong tExt Encoder by training with weak Decoder),用于大規模密集向量檢索的場景。使用一個弱解碼器對自動編碼器進行預訓練,通過限制解碼器的容量和注意力靈活性,來促進編碼器產生更好的文本表示。最終作者在 web 搜索、新聞推薦、開放域問答場景中進行實驗,表明本文的預訓練模型顯著提高了密集檢索模型的有效性和少樣本學習能力。
論文標題:
Less is More: Pre-train a Strong Text Encoder for Dense Retrieval Using a Weak Decoder
論文鏈接:
https://arxiv.org/abs/2102.09206
代碼鏈接:
https://github.com/microsoft/SEED-Encoder/
Introduction
在搜索、推薦、問答等場景的第一階段,Dense Retrieval 模型常采用雙塔結構,編碼器首先將用戶端(查詢、瀏覽歷史、問題)和語料庫端(文檔或文章)分別編碼為 embedding,然后采用簡單的相似度計算(如點積或余弦相似度)進行檢索。但以往的研究表明,常用的預訓練模型(如 BERT)在 DR 場景中,對文本編碼并不是很有效,尤其是當文本序列多于 128 個詞時。
在一些模式中,使用自動編碼器能夠得到高質量的數據表示。通過將編碼器與解碼器進行配對,訓練解碼器只從編碼器的編碼結果中進行數據重構,從而在數據編碼上添加信息瓶頸,來獲得更好的表示。最近,有研究將自動編碼器引入預訓練中。Optimus:在 BERT 編碼器上疊加一個 GPT-2 解碼器,通過一個條件語言建模任務訓練自動編碼器,學習到的編碼器 Optimus 為 GLUE 和語言生成任務提供了更好的文本編碼,但卻不能為 DR 提供更好的編碼。
這一現象啟發我們去研究,為什么語言建模中自動編碼器的設置在 DR 上存在不足。作者發現,在自回歸解碼器中,模型不僅將 CLS 編碼結果作為輸入,還將之前的 token 作為輸入。通過數學分析發現,解碼器可以其對以前 token 的訪問,繞過對編碼器的依賴,特別是當輸入序列很長而解碼器又很強時(如 GPT-2)。因此,自動編碼器雖有著低重構損失值但卻不一定能夠提供更好的文本序列編碼。
因此,作者提出一種簡單的解決方案:提出一種新的自動編碼器預訓練策略,通過限制參數容量和注意力可見范圍,將 BERT-style 的編碼器與弱解碼器配對。本文提出了一種預訓練語言模型 SEED-Encoder,利用編碼器生成文本表示,解碼器基于該文本表示重構原始文本,其在自動編碼器中產生一個信息瓶頸,從而迫使編碼器提供更好的文本表示。
Related work
預訓練語言模型:
掩碼語言建模 MLM 任務是有效的能夠有效學習到文本表示的方法。后來的研究中又設計了諸多 sequence 級別的任務用于預訓練。本文的研究接近于 Optimus,其訓練了一個編碼器和一個解碼器用于語言理解和生成。
文本編碼器的稠密檢索:
DR 系統通常使用 Siamese/Dual 編碼器結構。最早在研究如何在 Siamese 結構中使用 BERT 時,發現使用 CLS 向量并沒有預期效果好。最近的研究發現,在稠密文本檢索中應用預訓練模型并不簡單。DPR 中使用 BM25 尋找負樣本來對 DR 任務進行預訓練模型的微調。ANCE 中對 DR 模型進行了全局噪聲構造估計,利用 DR 模型尋找全局負樣本。
Method
4.1 前言
標準的預訓練語言模型如 BERT,預訓練的神經網絡是一個多層雙向 Transformer 編碼器,從詞匯表 V 中取一系列的 tokens ,然后得到其上下文表示向量 。
CLS 作為一種特殊的 token 被添加在開始的位置,其上下文表示 通常被用來表示整個序列。
Transformer 參數 通常通過掩碼語言建模 MLM 進行預訓練得到,我們將損失記為 。
Optimus 在模型預訓練中引入了自動編碼器設置,在 CLS token 的表示向量 上添加了重構損失得到新的表示:
解碼器使用另一個深度 Transformer 模型 GPT-2,其收到 后對輸入進行自動重構,其中的解碼器損失為:
4.2 使用一個強解碼器的影響
Optimus 模型是在 MS MARCO 上的 BERT 加了一個 GPT-2,作者將其與 BERT 對比,使用 MRR 和 Recall 作為評價指標。結果見圖1(a)。可以看出? Optimus 在密集檢索任務上的性能比 BERT 差,該結果與 Optimus 在其他語言任務上的性能形成鮮明對比,如 GLUE 基準測試。
GLUE 與 MS MARCO 的差別在于數據的序列長度,大多數 GLUE 任務中序列長度較短,例如在 SST-2 中平均為 14 個 token,而 MS MARCO 平均段落長度超過了 450 個 token。
近來有研究表明,長句子很難通過來自預訓練模型的單一嵌入向量來表示,為此,作者隨機選擇了不同長度的序列對,計算 Optimus 的 CLS 向量的余弦相似度。結果見圖1(b)。可以看出,Optimus 的長序列表示是非常相似的,該模型對長文本序列產生了雜亂的表示。因此在 MS MARCO 上就 DR 進行微調時,其不能將查詢的相似文檔與不相似文檔分開。需要進一步的微調來重新調整編碼。
4.3 理論分析
接下來用數學方法分析使用強解碼器時,編碼器可能并不會學習到好的序列表示。
方程 2 中可以發現, 的結果不僅取決于 CLS 編碼向量 ,還與之前的 tokens 相關。因此,重構損失函數的降低可能不是更大信息量的 帶來的,比如在長文本序列中,當 t 很大時,如果解碼器很強大,模型可能直接從 x<t 中預測得到當前時刻的信息。CLS 向量的質量就不能得到保證了。
然后調查了重構損失、 和語言序列間在數學形式上的關系。首先,根據以下理論 Fact,將損失函數 的期望分解成兩部分:KL 散度和條件熵
Fact:給定隨機變量(Y,Z)上的兩個分布 P(Y,Z) 和 Q(Y,Z)
X 是序列空間 中的一個隨機變量,序列空間中的每個序列 x 是從數據分布 中采樣的, 是 t 時刻 X 的截尾, 是解碼器生成的序列分布。簡單起見,假設所有的序列長度都是 n。重建損失函數可以改寫為:
描述了兩個分布間的差異,條件熵 反映了語言模式的強度。接下來作者證明了即便使用隨機的 ,這兩部分也可以實現較低的損失值。
第一項KL散度描述了解碼器生成的序列分布 與真實分布 的一致性。當解碼器有足夠容量時(eg.一個深層的 Transformer),即使 是無意義的,模型依然可以很好地逼近于真實分布,從而減小 KL 項。理論上,具有任意寬度和深度的 Transformers 可以近似任何序列級函數,并且能夠使用 中很少的信息,達到低 K-L 損失。
第二項 描述了語言模式的強度: 與 間的聯系越大,第二項的值就會越小。在自然語言中,t 越大,語言相關性越大,前面的 tokens 提供的信息就越多。這也就造成解碼器足夠強大可以捕獲語言模式,使得對于編碼器的要求降低了。
4.4 SEED-Encoder
為了得到更強的編碼器,我們需要弱化解碼器:限制解碼器的容量和可用的上下文信息,這樣解碼器就不得不依靠編碼器 CLS 向量中的信息來重構信息序列。于是作者引入了模型 SEED-Encoder:
通過修改方程 2 來弱化解碼器:
使用更少層數的淺層 Transformer
限制其對之前上下文的訪問,即限制模型只能注意到前 k 個 tokens
弱解碼器的重構損失函數:
這樣,加強了編碼器和解碼器間的信息瓶頸,迫使解碼器依賴于編碼器的 CLS 表示,推動編碼器學習到更有信息的表示。
SEED-Encoder 的損失函數結合了編碼器的 MLM 損失和解碼器的重構損失
其中,編碼器和解碼器一起訓練,預訓練后,解碼器被丟棄,編碼器用于下游任務。
實驗
預訓練中,所有模型都是在 BERT-base 的設置下,從頭開始預訓練,在 English Wikipedia 和 BookCORPUS 上進行。編碼器架構與 BERT-base 相同,使用一個三層 Transformer 作為解碼器,注意力限制在前兩個 token 上(k=2),其他與編碼器保持一致。
微調 Siamese/Dual 編碼器:在 Siamese 架構中對 DR 任務進行 SEED-Encoder 的微調與其他預訓練模型相同。使用三元組損失完成帶標簽的句子對匹配任務的微調:
5.1 Experiments on Web Search
數據集:MS MARCO。在該基準上的兩個任務:段落排序&文檔排序。本文作者關注第一階段的檢索步驟,并且還展示了在重排設置下的結果。
訓練策略:預訓練編碼器使用 ANCE 負采樣策略進行微調,使用 ANCE 進行文檔檢索,其中只使用長文檔的前 512 個 token。還使用了 BM25 Neg 策略進行負采樣,該策略使用 BM25 檢索到的前 100 個結果作為負樣本,其在 MS MARCO 上的表現類似于 DPR。
Baselines:
BERT-Base
ELECTRA:GLUE 基準上最有效的預訓練編碼器之一
ERNIE2.0:使用各種 token 級和句子級的任務,包括 IR 相關性任務。
對于 passage ranking:經典的稀疏檢索 baseline 包括標準 BM25,優化查詢擴展的 Best TREC Sparse Retrieva?????????????l??????????????和 Best DeepCT,都是來自于 TREC DL2019 的官方評估。這三種方法代表了標準稀疏檢索、最經典的稀疏檢索方法,以及最新的利用 BERT 改進稀疏檢索的方法。
對于 document ranking:
BM25
Enriched Traditional IR Baseline:使用預定義的 IR 特征(包括 BM25)來對文檔進行排序
BM25+doc2query-T5 expansion:使用 Doc2query 模型,使用與文檔內容相關的預測查詢進行文檔擴展。使用 sequence-to-sequence 模型以文檔 terms 為輸入來預測查詢。
DE-hybrid 和 ME-hybrid 都結合使用 BERT 中的稠密特征和手工制作的稀疏特征。
DE-hybrid:將文檔和查詢的 CLS 表示作為稠密特征,計算點積相似度。該相似度得分與稀疏檢索得分相結合,作為最終的排名得分。
ME-hybrid:在多個上下文 embedding 中使用最大池作為稠密特征。
Results:
SEED-Encoder 在所有的基準中優于現有的所有 baseline。通過簡單地將微調開始的 checkpoint 從 BERT 切換到 SEED-Encoder,不改變任何架構或微調策略,性能就得到了顯著提升。
在 MARCO passage retrieval 中,從 BERT 切換到 ELECTRA 或 ERNIE2.0 并不能夠提高檢索精度,這說明為其他場景優化的預訓練模型不一定更適合稠密檢索。
在 MARCO document retrieval 中,ANCE(FirstP)每篇文檔只使用第一個段落中的一個向量,而 ANCE(MaxP)從其前四個段落中為每個文檔使用四個向量,這些向量通常就覆蓋了整個文檔的主體。但是以 SEED-Encoder 為起點,ANCE(FirstP)比最先進的 ANCE(MaxP)with RoBERTa 的性能還要高出 6%,同時每個文檔使用了更少的 embedding。這也證實了在語料庫規模超過數十億的真實搜索系統中,減少每個文檔所需的 embedding 是很重要的。
5.2 Experiments on News Recommendation
使用最新發布的 MIcrosoft News Dataset(MIND)基準。其任務是根據用戶之前在 MSN 新聞上的點擊對一組候選新聞進行排名。用戶的點擊作為正樣本。使用公開 MIND 驗證集和其官方評估指標:AUC, MRR, NDCG@5 和 NDCG@10。
遵循 MIND 的官方設置,使用標準的密集檢索模型對預先給出的候選新聞文章重新排序。使用 SEED-Encoder 對用戶歷史和候選文章進行編碼,并將它們與點產品進行匹配。
Baselines:
Transformer
Transformer-XL:使用相對位置編碼,集成了依賴內容的位置得分和自注意層的全局位置得分
TENER:與 Transformer-XL 相似,使用方向已知的正弦相對位置 embedding
DA-Transformer:沒有使用正弦位置 embedding,而是直接根據影射的相對距離來縮放注意力權值
Results:
SEED-Encoder 優于最先進的 DA-Transformer。表明了一種更好的利用無監督數據的自學習策略可以和特定任務的架構更改一樣有效,而且還避免了所有的工程工作。
5.3 Experiments on Open QA
該任務通常采用兩階段框架:首先使用上下文檢索器選擇一組可能包含問題答案的段落;然后使用 machine reader 徹底檢查檢索到的段落并識別正確答案。本文重點關注第一階段,即稠密檢索。使用 Natural Question query set 和在 DPR 中使用的 Wikipedia passages。
模型使用了與 DPR 一致的微調策略,其使用了一個雙編碼器結構,以 mini-batch 進行負樣本采樣。同時作者還使用 ANCE 的微調策略,動態采集負樣本。
結果:
SEED-Encoder 優于其他所有 baseline。作者沒有改變任何結構,也沒有微調策略,只是簡單地將 BERT 的 checkpoint 切換到 SEED-Encoder,但是在大規模基準測試上帶來了顯著的提高。
5.4 Discussion and Analysis
為簡單起見,所有實驗都在 MS MARCO 文檔檢索任務上進行
(1)作者嘗試使用不同層數和注意力大小的各種解碼器設置。
具有強解碼器的 SEED-Encoder 表現比使用弱解碼器的 SEED-Encoder 更差。檢索精度與 SEED-Encoder 的解碼器的容量有著強相關性。因此,與多任務學習不同,在 SEED-Encoder 中,解碼器迫使編碼器在其序列 embedding 中捕獲更多的信息,即:弱解碼器能夠生成強編碼器。
為進一步探索編碼器的 CLS 與解碼器間的關系,作者繪制了解碼器最后一層的 token 表示與編碼器的 CLS 向量間的余弦相似度。可以看出:限制注意力大小的影響是顯著的,在 full attention 下,解碼器在一開始嚴重依賴編碼器的 CLS 向量,但當有足夠上下文信息后,很快就降低依賴;在 restricted attention 下,對上下文訪問受限,解碼器被迫在所有的 token 位置處都要更多地關注編碼器的 CLS 向量。
這證實:當解碼器較弱時,其會更多地依賴于編碼器的 CLS 向量,從而推動編碼器學習到更多信息。圖4(a)的結果還表明:當使用強編碼器時,CLS embedding 對句子中前面幾個單詞進行編碼,可能會忽略其他單詞,這也可能是在密集檢索中 Optimus 比 BERT 表現要差的原因(圖1(a)所示)。
(2)文檔表示質量:
為研究 SEED-Encoder 是否可以提高表示多樣性,作者收集了隨機采樣的句子對,計算由 SEED-Encoder 生成的 CLS 向量的余弦相似度。
可以看出,SEED-Encoder 生成的 CLS 向量更加多樣化。當句子長度達到 512 時,CLS 的平均余弦相似度也僅為 0.48。這表明,SEED-Encoder 在預訓練時能夠更好地區分句子。
(3)少樣本學習性能:
注意到,多樣化的表示并不代表其具有高質量。因此,作者對 SEED-Encoder 進行了少樣本學習實驗。作者在微調階段記錄了驗證集的表現,并且檢查了模型需要多少次訓練迭代和多少樣本才能達到合理的良好性能。
從 SEED-Encoder 開始進行微調,Siamese 和 ANCE 在一開始就實現了更高的檢索精度,并在整個微調過程中保持其優勢。
與 BERT 相比,SEED-Encoder 在訓練標簽較少的情況下總能達到更高的精度。當只使用 10% 的訓練標簽時,SEEDEncoder 仍然比使用所有訓練標簽的 BERT 有競爭力。表明 SEED-Encoder 學習到的表示比 BERT 還要更好,微調成本的減少有助于使預訓練模型的優點更佳普遍,尤其是在計算資源或特定任務監督受到限制的應用中。
(4)Case Study:
BERT 犯的錯誤與圖4(a)中的觀察結果一致,編碼器的表示與文本序列開頭的 tokens 更相關,而這也與查詢高度相關。但是只有當模型捕獲到全文的信息時,才能找到正確的文檔。
Conclusion
本文作者提出一個用于稠密檢索預訓練模型的自訓練框架 SEED-Encoder。作者在數學推導后,預訓練了一個使用弱解碼器的自動編碼器,該解碼器容量和注意力范圍受限。
弱解碼器幫助 SEED-Encoder 捕獲更多的上下文信息并生成更好的文本表示。在網絡搜索、新聞推薦和問答實驗中,使用 SEED-Encoder 初始化的稠密檢索模型與幾個強 baseline 相比達到了最先進的準確性。未來可進一步探索更多的自主學習任務和稠密檢索場景中序列匹配的網絡架構。
創新點
解決了預訓練語言模型中自動編碼器在長文本 DR 任務上存在的缺陷問題,并且相比其他預訓練模型,本文的預訓練模型 SEED-Encoder 的性能還有著顯著的提升。
構造弱編碼器不僅可以促進編碼器生成更強的文本表示,而且由于弱解碼器參數量更少,不會在預訓練過程中增加過多開銷。同時在下游任務中只需要保留編碼器,因此在下游任務上微調的開銷與其他預訓練語言模型一致,在下游任務微調時訓練輪次也更少。
特別鳴謝
感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
總結
以上是生活随笔為你收集整理的EMNLP 2021 | 大道至简:微软提出可生成高质量文本表示的预训练语言模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人工智能助力生命科学新发展 | 飞桨博士
- 下一篇: 成都内推 | 腾讯游戏王者荣耀算法团队招