文本分塊新突破:命題作為檢索單元,提升密集檢索性能與泛化性

在信息爆炸的時代,高效準確地從海量文本中檢索出相關信息,是自然語言處理領域的重要課題。傳統(tǒng)密集檢索中,文檔、段落或句子是常見的檢索單元,但這些固定的單元選擇往往存在局限性。2024 年 EMNLP 會議上的一篇論文提出了一種新的思路 —— 以命題(proposition)作為檢索單元,為密集檢索性能和泛化性的提升帶來了新可能。
論文地址:https://arxiv.org/pdf/2312.06648
項目地址:https://github.com/chentong0/factoid-wiki
1、傳統(tǒng)檢索單元的局限與探索
研究動機
在傳統(tǒng)的密集檢索中,常見的檢索單元包括
文檔、段落或句子。但這些單元的選擇往往較為固定,比如使用固定長度的段落塊或句子等,這可能會對檢索性能和下游任務的效果產生負面影響。
- 段落可能包含與問題無關的額外細節(jié),干擾檢索和下游任務的判斷。
- 句子可能過于復雜或缺乏必要的上下文信息,影響對相關性的判斷。
因此,探索一種更優(yōu)的檢索單元粒度,成為提升密集檢索模型性能的關鍵方向。
研究現(xiàn)狀
目前,密集檢索模型多采用雙編碼器架構,將查詢和文檔分別編碼為低維特征向量,通過計算向量相似度衡量相關性。但由于相似度函數(shù)表達能力有限,這類模型在面對新任務,尤其是訓練數(shù)據(jù)稀缺的任務時,泛化能力較差。
為解決這一問題,以往研究嘗試了數(shù)據(jù)增強、持續(xù)預訓練、任務感知訓練、混合稀疏 - 密集檢索等方法。在檢索單元粒度方面,雖有研究關注到段落和句子的局限性,但尚未系統(tǒng)比較不同粒度對密集檢索模型性能的影響,也缺乏更細粒度且有效的檢索單元來替代它們。
2、命題作為新的檢索單元
先來看一個同一檢索器在三種不同粒度下檢索到文本的例子:
段落作為一種較粗的檢索單元,具有更長的上下文,理論上能夠為問題提供更多相關信息。然而,段落通常包含無關的細節(jié)(例如表 1 示例中的修復時期和水平位移),這些細節(jié)可能會干擾檢索器和下游任務中的語言模型。
句子級索引提供了一種更細粒度的方法,但并沒有完全解決這個問題。因為句子仍然可能復雜且復合,并且它們通常不是獨立的,缺乏判斷查詢 - 文檔相關性所需的必要上下文信息(例如,在表 1 的示例中,“the tower” 是 “Pisa Tower” 的共指)。
細粒度檢索單元能夠提供更精確的信息,減少無關細節(jié)的干擾,同時保持足夠的上下文信息,從而提升檢索模型的準確性和效率。

命題的定義與原則

命題指的是文本中具有原子意義的表達形式,每個命題封裝一個獨立的事實,并以簡潔、自包含的自然語言格式呈現(xiàn)。其定義遵循以下三個原則:
- 語義唯一性:每個命題應對應文本中的一個獨特意義片段,所有命題的組合應能代表整個文本的語義。例如,一個段落可以被拆分為多個命題,每個命題描述一個獨立的事實。這些命題組合起來能夠完整地表達段落的語義。
- 不可分割性:命題應是最小的語義單元,即它不能再進一步拆分為獨立的命題。例如,如果一個句子可以被拆分為兩個獨立的事實,那么它應該被拆分為兩個命題,而不是保留為一個復合命題。
- 自包含性:命題應具備上下文且自包含,包含文本中的所有必要上下文(如共指)以解釋其含義。例如,如果一個句子中包含代詞(如“它”),命題需要將代詞解析為完整的實體名稱,以確保命題可以獨立于原文進行解釋。
命題的示例與優(yōu)勢
以關于比薩斜塔的段落為例,可拆分為以下三個命題:
- 修復前的角度:比薩斜塔在修復前的角度是 5.5 度。
- 當前角度:比薩斜塔當前的角度是 3.99 度。
- 水平位移:比薩斜塔頂部水平位移 3.9 米。
這些命題封裝了段落核心信息,且通過解析代詞確保自包含性。將命題作為檢索單元具有以下優(yōu)勢:
- 更高的檢索精度:封裝獨立事實,減少無關信息干擾,使檢索模型更精確匹配查詢需求。
- 更好的上下文保持:解析代詞并添加必要上下文,確保每個命題能獨立解釋,提供足夠上下文信息。
- 更高的信息密度:在相同計算預算下,命題級別檢索能提供更密集的與問題相關的信息,提高下游任務(如問答)性能。
3、FACTOIDWIKI 數(shù)據(jù)集
為驗證命題作為檢索單元的有效性,研究構建了處理過的英文維基百科轉儲數(shù)據(jù)集FACTOIDWIKI,將每篇文檔分割成 100 詞的段落、句子和命題三種粒度,為實證比較不同粒度檢索單元對密集檢索性能的影響提供了平臺。
數(shù)據(jù)集構建
FACTOIDWIKI 使用 2021 年 10 月 13 日的英文維基百科轉儲,通過以下步驟分割成命題:
- 段落分割:用貪婪方法將段落分割成 100 詞的塊,確保每個段落塊包含完整句子。
- 句子分割:使用 Python SpaCy 的
en_core_web_lg模型將每個段落分割成句子。 - 命題生成:通過微調文本生成模型(Propositionizer)將段落分解成命題。該模型經兩步蒸餾過程訓練:首先用 GPT-4 生成包含命題定義和示例的提示,生成段落到命題的種子數(shù)據(jù)集;然后用這些種子數(shù)據(jù)對 Flan-T5-large 模型進行微調。

最終,F(xiàn)ACTOIDWIKI 包含來自 600 萬維基百科頁面的文本,分割成 2.57 億個命題。

質量分析
對 GPT-4 和 Propositionizer 生成的命題質量進行人工錯誤分析,在隨機抽取的 50 個段落中,發(fā)現(xiàn)兩種模型生成的幾乎所有命題都是忠實的,只有一小部分命題不是獨立的,證明了數(shù)據(jù)集的高質量。

4、實驗驗證
評測數(shù)據(jù)集與 baseline
選擇五個具有代表性的開放域問答(QA)數(shù)據(jù)集,均以維基百科作為檢索源,包括自然問題(NQ)、瑣事問答(TQA)、網絡問題(WebQ)、SQuAD、實體問題(EQ),涵蓋不同類型問題和答案,全面評估檢索模型在不同場景下的性能。
選擇四種流行的密集檢索模型作為 baseline,分為有監(jiān)督和無監(jiān)督兩類:
- 無監(jiān)督:SimCSE(基于 BERT-base,在未標注句子上通過對比學習訓練)、Contriever(基于 BERT-base,通過段對對比訓練)。
- 有監(jiān)督:DPR(雙編碼器 BERT-base,用問題 - 段落對標簽微調)、GTR(基于 T5-base,在問答數(shù)據(jù)上預訓練并微調)。
段落檢索評估
為了評估不同粒度索引對段落檢索性能的影響,設計了以下評估方法:
檢索設置:對于句子和命題級別的檢索,將段落的分數(shù)定義為查詢與段落中所有句子或命題之間的最大相似度分數(shù)。在實際檢索中,首先檢索出稍多數(shù)量的文本單元,然后將每個單元映射回源段落,最終返回前 k 個唯一段落。
- 段落級別檢索:直接計算查詢與段落向量之間的相似度。
- 句子級別檢索:計算查詢與段落中每個句子向量之間的相似度,然后取這些句子相似度的最大值作為段落的分數(shù)。
- 命題級別檢索:計算查詢與段落中每個命題向量之間的相似度,然后取這些命題相似度的最大值作為段落的分數(shù)。
評估指標:使用段落召回率@k(Passage Recall@k)作為主要評估指標,定義為在前 k 個檢索段落中找到正確答案的問題百分比。
下游問答評估:使用Fusion-in-Decoder(FiD)模型從檢索到的段落中提取答案。FiD 模型基于 T5-large 架構,并在 NQ 數(shù)據(jù)集上進行了訓練。使用精確匹配(Exact Match, EM)分數(shù)評估預測答案與 ground truth 的匹配程度,即預測答案與真實答案完全匹配的問題百分比。
段落檢索性能
表3顯示了在五個開放域問答數(shù)據(jù)集上,四種密集檢索模型(SimCSE、Contriever、DPR、GTR)在段落、句子和命題級別索引下的段落檢索性能(Recall@k)。
結果顯示,對于無監(jiān)督檢索器SimCSE 和 Contriever,命題級別的檢索在所有數(shù)據(jù)集上均優(yōu)于句子和段落級別檢索。平均 Recall@5 提高了 +12.0 和 +9.3,相對提升分別為 35.0% 和 22.5%。對有監(jiān)督檢索器DPR 和 GTR,命題級別的檢索在某些數(shù)據(jù)集上略遜于段落級別檢索,但在模型未見過的數(shù)據(jù)集上表現(xiàn)出顯著優(yōu)勢。例如,在 SQuAD 和實體問題(EntityQuestions)數(shù)據(jù)集上,命題級別的檢索顯著優(yōu)于其他兩種粒度,Recall@5 提升了 25%(DPR)和 16%(GTR)。
總的來說,無監(jiān)督檢索器(如 SimCSE 和 Contriever)在命題級別索引下表現(xiàn)更好,可能是因為命題級別的索引能夠更精確地捕捉到與查詢相關的信息,減少了無關信息的干擾。有監(jiān)督檢索器(如 DPR 和 GTR)在訓練數(shù)據(jù)集上表現(xiàn)較好,但在未見過的數(shù)據(jù)集上,命題級別的索引能夠更好地泛化。這表明命題級別的索引在跨任務泛化方面具有優(yōu)勢。

更細粒度索引的檢索 ? 更好的跨任務泛化
為分析命題級別的索引是否能夠提高檢索模型在未見過的數(shù)據(jù)集上的泛化能力,特別是在處理長尾信息時的表現(xiàn)。在實體問題(EntityQuestions)數(shù)據(jù)集上,分析了不同粒度索引下的檢索性能與目標實體出現(xiàn)頻率的關系。
結果顯示,對于不太常見的實體(頻率值小于或等于 3),命題級別的檢索表現(xiàn)出更大的優(yōu)勢。隨著實體頻率的增加,性能差距逐漸減小。


總的來說,命題級別的索引能夠更好地處理長尾信息,因為每個命題封裝了一個獨立的事實,減少了無關信息的干擾。這種細粒度的索引方式在處理稀有或長尾實體時表現(xiàn)出顯著優(yōu)勢,從而提高了檢索模型的跨任務泛化能力。
更高的段落召回率 ? 更高的下游問答準確率
為了進一步了解更細粒度索引的段落檢索是否能實現(xiàn)更高的下游問答性能,通過 QA 閱讀器 Fusion-in-Decoder 從檢索到的段落中提取答案。
結果顯示,命題級別的索引在所有四個檢索器模型上均實現(xiàn)了最高的平均精確匹配(EM)。除少數(shù)例外情況外,命題級別的索引在大多數(shù)檢索任務和數(shù)據(jù)集上均實現(xiàn)了最高的 EM。下游問答性能的趨勢與段落檢索召回率高度一致,表明更高的段落召回率意味著更好的下游問答性能。
另外,從實驗結果中可以看到,更高的段落召回率意味著檢索到的段落更有可能包含正確答案,從而提高了下游問答模型的準確率。命題級別的索引通過減少無關信息的干擾,同時保持足夠的上下文信息,使得下游問答模型能夠更準確地提取答案,從而顯著提升了整體性能。

檢索增強語言模型的開放域問答評估
為了進一步研究不同粒度檢索單元對檢索增強語言模型的影響,設計了以下實驗:
- 計算預算限制:為了在相同的計算預算下公平比較不同粒度的檢索單元,研究者們設置了檢索到的標記(token)的最大數(shù)量上限為 l=100 或 500。只將段落、句子或命題級檢索的前 l 個標記作為輸入,饋送到語言模型中。
- 評估指標:使用EM@l 標記作為評估指標,即在輸入長度限制為 l 個標記的情況下,預測答案與 ground truth 完全匹配的問題百分比。
- 語言模型選擇:使用LLaMA-2-7B模型進行評估,該模型在處理長文本時具有較好的性能。為了確保模型輸出與每個數(shù)據(jù)集的格式一致,研究者們采用了上下文學習方法,納入了四個示例演示。
開放域問答性能
結果顯示,在使用LLaMA-2-7B作為語言模型的實驗中,當使用命題作為檢索單元時,基于EM@l指標的問答性能顯著高于使用段落或句子。具體來說,使用命題而非段落時,四個密集檢索器(SimCSE、Contriever、DPR和GTR)的EM@500分數(shù)分別提高了+4.1、+3.2、+2.7和+2.8,而使用句子時的提升則較小,分別為+2.4、+2.1、+2和+1.6。
命題級別的檢索通過提供更細粒度的信息單元,使得檢索到的內容更緊密地圍繞查詢問題展開,從而在有限的輸入長度內提供了更豐富的相關信息,進而提升了問答性能。表明在檢索增強語言模型中,使用更細粒度的檢索單元能夠更有效地利用有限的計算資源,提高模型的問答能力。

更細粒度?更高的問題相關信息密度
為分析不同粒度的檢索單元在檢索到的前l(fā)個單詞中包含問題相關信息的密度,以驗證更細粒度的檢索是否能夠提供更高密度的相關信息,從而解釋其在問答性能上的優(yōu)勢。實驗通過計算 GTR 在使用三種不同粒度索引的維基百科時,黃金答案在初始 l 個檢索單詞內的召回率。
結果顯示,命題檢索的成功率高于句子和段落檢索方法。在100-200個單詞的范圍內,命題檢索相對于段落檢索的召回率提升最為顯著,這大致對應于約10個命題、5個句子或2個段落。隨著單詞數(shù)量的增加,三種粒度的召回率趨于收斂。
可以得到結論,命題級別的檢索由于其細粒度的特性,能夠更精確地匹配查詢問題,使得檢索到的前l(fā)個單詞中包含更高密度的相關信息。這解釋了為什么在相同的計算預算下,命題級別的檢索能夠帶來更好的問答性能。細粒度的檢索單元使得檢索結果更聚焦于問題的核心內容,減少了無關信息的干擾,從而提高了檢索增強語言模型的效率和準確性。

案例分析

5、總結
命題級別的檢索在開放域問答、檢索增強語言模型和跨任務泛化方面表現(xiàn)出顯著優(yōu)勢,尤其在處理長尾信息和稀有實體時表現(xiàn)出色。通過引入命題這一新的檢索單元,為密集檢索模型性能的提升提供了新的思路和方法。
不過,在命題生成的準確性方面還有待系統(tǒng)驗證,其生成效率也是未來需要重點考慮的問題。相信隨著研究的深入,命題檢索將在更多領域發(fā)揮重要作用,推動密集檢索技術的進一步發(fā)展。
































