基于知識的神經(jīng)符號結(jié)合的離散推理研究
一、以輕量級算子為核心的文本離散推理
該工作發(fā)表于 NAACL 2022(OPERA: Operation-Pivoted Discrete Reasoning over Text)。
1、基于文本知識的離散推理型閱讀理解
閱讀理解是在給定一段文本以及相應(yīng)問題的基礎(chǔ)上,從中抽取或者計算出問題的答案。除了文本抽取之外,還包括數(shù)值計算、比較、排序等一些復雜邏輯推理問題。
2、相關(guān)工作分類及特點
(1)Semantic Parsing-based model
在給定一段文本和問題之后,通過 Semantic Parser 解析成一段可執(zhí)行的程序從而獲得答案。該方法的可解釋性比較強,但存在的問題也比較明顯,非常依賴大量的邏輯表達式或者程序作為標注數(shù)據(jù)來訓練監(jiān)督模型。
(2)MOE-based model
在給定一段文本和問題之后,會通過 Encoder 進行編碼后輸入到 Reasoning Module 推理模塊,再輸入到不同的專家系統(tǒng)后給出相應(yīng)的答案。該方法的性能表現(xiàn)會更優(yōu),但可解釋性會弱一些,同時也缺乏直接做離散推理的模塊。
3、解法思路:算子設(shè)計
我們的問題可以抽象為:在給定文本 P 和問題 Q 的條件下,求解一個概率模型來得到答案。首先將問題概括為一組相關(guān)的算子,并且通過神經(jīng)網(wǎng)絡(luò)模塊去模擬這種算子的執(zhí)行。將這樣一個端到端的模型拆分成兩個部分,第一部分基于文本 P 和問題 Q 來預測所涉及到的算子,第二部分根據(jù)算子再進一步推理出答案。
4、OPERA 模型架構(gòu)
OPERA 模型架構(gòu)如圖,它主要包含一個上下文的 Encoder、一個輕量級的算子推理模塊以及 MOE 的預測模塊,同時包含很多專家分類器。
算子模塊主要包含以下三個部分:
(1)算子選擇 Operation Selector:
(2)算子執(zhí)行 Operation Executor:
(3)預測 Predictor:
在 DROP 數(shù)據(jù)集上的實驗結(jié)果表明,該方法比之前方法有顯著提升。
二、基于知識的統(tǒng)一離散推理:程序生成
在面對結(jié)構(gòu)化或者是混合結(jié)構(gòu)化的混合異構(gòu)數(shù)據(jù)中做推理和理解,我們提出了基于知識的統(tǒng)一的離散推理來進行程序生成的方法,即 UniRPG-2: Unified Knowledge-Grounded Numerical Reasoning as Program Generation,該工作為發(fā)表于 EMNLP2022 上的 UniRPG 的進一步擴展。
1、基于異構(gòu)知識的離散推理型閱讀理解
該框架是面向異構(gòu)知識的語義解析推理方法,不僅能夠處理例如 TAT-QA 數(shù)據(jù)這樣 single-turn 的對話,也能夠處理 PACIFIC 這樣 multi-turn 這樣的多輪問答。該體系架構(gòu)的優(yōu)勢是可解釋性更強,它能夠生成一個邏輯表達式或者程序,通過對程序的執(zhí)行來得到答案,從而實現(xiàn)邏輯推理。另一方面,對于異構(gòu)知識的通用性更強。體系架構(gòu)圖如下:
2、UniRPG-V2 模型架構(gòu)
模型架構(gòu)如圖,它可以處理純文本、純結(jié)構(gòu)化的表格或者兩者異構(gòu)的數(shù)據(jù)。在 encoder 階段,對于異構(gòu)數(shù)據(jù)會先進行 structure-aware knowledge reader 做一個表征,拆分為 lower layers 和 higher layers,并做 mask 掩碼操作,能夠獲取異構(gòu)信息中同行或者同列的前后文信息。在 decoder 階段,pointer 可以通過 attention 機制定位輸入位置,同時通過 prediction vocab 模塊去生成算子,從而生成一個可執(zhí)行的 program。
3、實驗結(jié)果及可解釋性分析
通過在 DROP、TAT-QA、PACIFIC 數(shù)據(jù)集上的測試,模型有良好的表現(xiàn),同時具備很好的可解釋性。如下圖的熱力圖所示,縱坐標中的不同 token,實際對應(yīng)了橫坐標中輸入文本的不同部分。
三、基于大模型的零樣本&少樣本推理現(xiàn)狀
1、大模型時代的語義解析
這里列舉兩個程序的生成和邏輯推理的具體案例。比如提問 chatGPT:將“現(xiàn)任美國總統(tǒng)的妻子是誰”這句話解析成 logic form,再比如提問:Python 版本的快排的實現(xiàn)。通過 ChatGPT 的反饋來看,現(xiàn)有的大模型可以很好的處理程序的生成和邏輯的推理。
2、知識推理
在知識推理方面,小模型和大模型之間有明顯的差異?;?supervised learning 小模型通常需要外部語料庫或者知識圖譜進行檢索,或者大量的人工標注才能進行訓練。而大模型可以直接去掉檢索器,僅依賴內(nèi)部的知識,且無需精調(diào)。
3、思維鏈推理:CoT
在原始的問答模型基礎(chǔ)上,引入人工輸入的推理步驟,可以使大模型先輸出推理邏輯,再得出相應(yīng)的答案。
4、思維程序推理:PoT
在 CoT 的基礎(chǔ)上,將思維鏈的自然描述語言轉(zhuǎn)換為思維程序,能夠在推理上表現(xiàn)得更好。
5、提升推理能力的影響因素猜測
① 通過指令微調(diào)能夠幫助大模型更好的理解自然語言,提升推理效果;
② 代碼預訓練能夠幫助大模型學習人類處理問題的方法以及解決問題的過程,從而提升推理能力;
③ 大模型參數(shù)達到一定量級的時候,模型的推理能力會實現(xiàn)躍遷。
四、總結(jié)和展望
未來大模型可能發(fā)展的方向:
(1)目前大模型仍然存在不少的事實錯誤,怎樣結(jié)合外部的知識圖譜做可信大模型的研究,從而彌補事實性錯誤。
(2)大模型推理的安全問題:怎樣在法律法規(guī)、道德規(guī)范的條件下去做基于人類規(guī)則知識的可控解碼。
(3)大模型推理能力是如何獲得的,可能需要結(jié)合生物學、神經(jīng)科學等交叉學科進行探究推理能力的起源。