首頁  >  文章  >  科技週邊  >  不要think step by step!谷歌最新自然語言推理演算法LAMBADA:「反向鏈推理」才是答案

不要think step by step!谷歌最新自然語言推理演算法LAMBADA:「反向鏈推理」才是答案

王林
王林轉載
2023-04-12 21:16:201630瀏覽

自動推理絕對算是自然語言處理領域的一大難題,模型需要根據給定的前提和知識推導出有效且正確的結論。

儘管近年來NLP領域藉著大規模預訓練語言模型在各種「自然語言理解」如閱讀理解和問答等任務中取得了極高的性能,但這些模型在邏輯推理方面的表現仍然十分滯後。

去年5月「思維鏈」(Chain of Thought, CoT)橫空出世,有研究人員發現,只需要在prompt中加入「Let's think step by step」就能讓GPT-3的推理表現大幅提升,例如在MultiArith中就將推理準確率從之前的17.7%一下提升到了78.7%

但諸如CoT和Selection Inference等方法都是先前向(forward direction)的方式從公理(axioms)中搜尋證明過程(proof)以推導出最終結論(conclusion),存在搜尋空間組合爆炸的問題,因此對於較長的推理鏈,失敗率較高。

最近,Google Research開發了一種反向鏈(Backward Chaining)演算法LAMBADA(LAnguage Model augmented BAckwarD chAining),將經典推理文獻中得出的「反向推理效率明顯高於前向推理」這個結論應用於語言模型(LM)。

不要think step by step!谷歌最新自然語言推理演算法LAMBADA:「反向鏈推理」才是答案

論文連結:https://arxiv.org/abs/2212.13894

LAMBADA將推理過程分解為四個子模組,每個模組都由few-shot prompted語言模型推理實作。

最終LAMBADA相比當下sota的前向推理方法在兩個邏輯推理資料集上實現了顯著的效能提升,特別是在問題要求深度和準確的證明鏈情況下,LAMBADA的效能提升更加明顯。

「反向推理」成版本答案?

邏輯推理,特別是對非結構化自然文本的邏輯推理,是建構自動知識發現的基礎構件,也是未來各種科學領域進步的關鍵。

雖然許多NLP任務的發展都受益於預訓練語言模型不斷擴大的規模,但根據觀察,提升模型的尺寸對解決複雜推理問題的提升十分有限。

在經典文獻中,有兩種​​主要的邏輯推理方法:

1、前向鍊式推理(Forward Chaining, FC ),即從事實和規則出發,在做出新的推理並將其加入理論之間進行迭代,直到目標陳述可以被證明或推翻;

2、後向鍊式推理(Backward Chaining, BC),即從目標出發,將其遞歸分解為子目標,直到子目標可以根據事實被證明或推翻。

以前用語言模型進行推理的方法大多採用前向鍊式推理的思路,要求從整個集合中選擇一個事實和規則的子集,這對LM來說可能是困難的,因為它需要在一個大的空間中進行組合搜尋。

此外,決定何時停止搜尋並宣布證明失敗在FC中也是非常困難的,有時甚至需要一個專門對中間標籤進行訓練的模組。

事實上,經典的自動推理文獻在很大程度上偏重於後向鍊式推理或目標導向的求證策略。

LAMBADA

#LAMBADA意為「反向鍊式技術增強的語言模型」,研究人員透過實驗證明了BC更適合於以文本為基礎的演繹邏輯推理(deductive logical reasoning)。

BC不需要大量的組合搜尋來選擇子集,而且有更自然的停止搜尋標準(halting criteria)。

LAMBADA主要專注於對事實進行自動推理,即自然語言斷言,如“好人是紅色的”,這些斷言是連貫的(coherent),但不一定基於真實情況。

一個規則由自然語言聲明編寫,形式上可以改寫為「如果P那麼Q」,例如「粗暴的好人是紅色的」(Rough, nice people are red)可以改寫為「如果一個人是粗暴的好人,那麼他們是紅色的」(If a person is rough and nice, then they are red)。

其中P被稱為規則的前項(antecedent),Q稱為規則的後項(consequent)。

一個理論theory C由事實F={f1, f2, . . , fn}和規則R={r1, r2, . . , rm}組成,G代表一個想根據事實和規則來證明或反駁的目標。

例1、一個有虛構角色和規則的理論實例C

#F={"菲歐娜是好人","菲歐娜是粗人"}

R={"如果某人很聰明,那麼他就是好人","粗暴的好人是紅色的","作為好人和紅色意味著他是圓的" }。

基於上述理論,人們可能想證明或反駁一個目標,如「菲奧娜是紅色的?」。

後向鏈法推理

#

一條規則是否適用於一個目標,是透過邏輯學中的一個叫做unification的操作來決定的。

例如,對於例1中的目標「Fiona是紅色的?」,第二條規則的後果與目標相同,所以可以適用;但另外兩條規則的後果不同,所以不適用。

考慮例1中的理論和目標,BC從目標「Fiona是紅色的?」開始推理。

首先,BC驗證該目標是否可以從任何事實中被證明或反駁。由於沒有任何事實可以證明或反駁這個目標,所以接下來會驗證這個目標是否與任何規則的結果相統一,結果發現它與第二條規則“粗糙的好人是紅色的”相統一。

因此,該目標可以被分解成兩個子目標:1)菲奧娜是粗暴的嗎?和2)菲奧娜是好人嗎? 。

由於這兩個子目標都可以從事實中證明,BC的結論是原始目標可以被證明。

對於一個目標,BC的結果要麼是證明,要麼是否定,要麼是不知道(例如目標「菲奧娜很聰明?」)。

LAMBADA中的語言模型

為了將BC用於基於文本的推理,研究人員引入了四個基於LM的模組:事實檢查(Fact Check) 、規則選擇(Rule Selection)、目標分解(Goal Decomposition)和符號一致性(Sign Agreement)。

不要think step by step!谷歌最新自然語言推理演算法LAMBADA:「反向鏈推理」才是答案

給出理論中的一組事實F和一個目標G,事實檢查模組驗證是否存在一個事實f∈F,使得f包含G(在這種情況下,目標被證明)或者f包含G的否定(在這種情況下,目標被否定)。

如果找不到這樣的事實,那麼G的真相仍然是未知的。

事實檢查的實作包括兩個子模組:第一個子模組從與目標最相關的事實集中選擇一個事實,第二個子模組根據這個事實來驗證目標是否可以被證明或否定。

由於事實選擇子模組在第一次嘗試時可能無法確定最佳的事實,如果在呼叫子模組一輪後,目標的真相仍然未知,可以刪除所選的事實,然後再次呼叫子模組;這個過程可以重複多次。

規則選擇

#給出理論中的一組規則R和一個目標G,規則選擇模組確定規則r∈R,使r的結果與G統一,然後用這些規則將目標分解為子目標。

如果不能確定這樣的規則,那麼G的真相仍然是未知的。

規則選擇同樣包含兩個子模組:第一個子模組決定每個規則的結果(與目標無關),第二個子模組將規則的結果和目標作為輸入,並確定哪一個與目標統一。

要注意的是,由於BC的遞歸性質,規則選擇模組在證明一個目標的過程中可能會被多次呼叫。由於辨識每條規則的結果與目標無關,這個子模組只需要被呼叫一次。

目標分解

#給定一個規則r和一個目標G,使r的結果與G統一,目標分解模組確定需要證明的子目標,以使G被證明或被否定。

在成功證明r的前項的情況下,目標是被證明還是被否定取決於目標的符號(sign)是否與r的結果符號一致。

例如對於目標“Fiona是紅色的?”,由於目標的符號與第二條規則的結果符號一致,並且規則的前項被證明,可以得出結論,目標被證明。

符號一致性

#給定一個規則r和一個目標G,符號一致模組驗證r的結果符號是否與目標的符號一致或不一致。

實驗部分

研究人員選擇Chain of Thought(CoT)、基於明確推理的sota神經推理方法、sota模組推理方法Selection Inference(SI)作為對比基線模型。 不要think step by step!谷歌最新自然語言推理演算法LAMBADA:「反向鏈推理」才是答案

實驗的資料集採用ProofWriter和PrOntoQA,這些資料集對LM推理具有挑戰性,包含需要證明鍊長度達5跳的例子,以及目標既不能從提供的理論中證明也不能反駁的例子。 #########################

實驗結果顯示,LAMBADA明顯優於其他兩個基線,特別是在包含UNKNOWN標籤的ProofWriter-PUD資料集上(與CoT相比有44%的相對改善,與SI在深度-5上相比有56%的改善),以及在PrOntoQA的較高深度上(與CoT相比有37%的相對改善,與SI在深度-5上相比有113%的改善)。

不要think step by step!谷歌最新自然語言推理演算法LAMBADA:「反向鏈推理」才是答案

這些結果顯示了LAMBADA在邏輯推理方面的優點,也顯示了後向鏈(在LAMBADA中是推理的backbone)與前向鏈(在SI中是backbone)相比可能是更好的選擇。

這些結果也揭示了CoT方法在處理UNKNOWN標籤時的一個缺陷:與標籤為證明(PROVED)或否定(DISPROVED)的例子不同,對於標籤為UNKNOWN的例子,沒有自然的思維鏈。

對於更深(3 )的證明鏈問題上,在三個資料集上,SI產生的預測接近多數類別預測。

可以發現,在二元情況下,它傾向於過度預測DISPROVED;在三元分類情況下,傾向於過度預測UNKNOWN,這使得它在PrOntoQA的深度-5中的表現甚至比多數類別更差,因為該深度的PROVED標籤比DISPROVED多。

不過研究人員也驚訝地發現,CoT對於ProofWriterPD資料集的效能仍然相對較高,而且準確率沒有降低。

總之,在這些資料集上,LAMBADA具有更高的推理準確性,與其他用虛假的證明痕跡找到正確結論的技術相比,LAMBADA更有可能產生有效的推理鏈,同時也比其他基於LM的模組化推理方法更有查詢效率。

研究人員表示,該實驗結果強烈地表明,未來關於用LM進行推理的工作應該包括後向鍊或目標導向的策略。

參考資料:

https://arxiv.org/abs/2212.13894

以上是不要think step by step!谷歌最新自然語言推理演算法LAMBADA:「反向鏈推理」才是答案的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除