1. 程式人生 > 其它 >Generated Knowledge Prompting for Commonsense Reasoning

Generated Knowledge Prompting for Commonsense Reasoning

地址:https://arxiv.org/abs/2110.08387

儘管大型語言模型能夠在預訓練期間捕獲大量知識,但它們通常受益於整合外部知識庫,尤其是在常識推理任務上。

這促使我們探索如何更好地利用從語言模型中獲得的知識。作者建議使用通用提示格式直接從語言模型生成知識語句,然後選擇使得預測概率最大的知識。

儘管它很簡單,但這種方法提高了預訓練模型在數字常識、通用常識和科學常識上的效能。值得注意的是,使用模型自己生成的知識,它的預測可以提高,這表明了符號知識表示在神經推理過程中的重要性。

Introduction

進行常識推理需要常識知識,而預訓練語言模型隱含了大量的知識,可以直接作為常識推理的推理模型,一方面,整合外部知識庫可以提高其中一些任務的效能。

另一方面,語言模型本身可以充當知識庫的角色,因為它們允許查詢符號知識。為了利用語言模型中包含的知識來回答常識問題,最近的一些工作通過設計cloze-style模板來生成某種型別的知識陳述,例如闡明、對比說明等。

然而,任務通常需要不同型別的知識,這超出了預定義模板的範圍(表1)。如何從語言模型中靈活地引出一般型別的有用知識,並將這些知識整合到預測中?

表1:生成知識提示修正預測的例子

每部分綠色表示正確的回答

紅色表示錯誤的回答

每一行的第一句表示問題

第二句表示知識生成模型生成的知識語句

作者開發了一個簡單而有效的方法來生成知識並使用它來提高預測效能。作者提出的方法使用兩種語言模型:一種是知識模型,它使用帶有通用提示符的演示生成與問題相關的知識陳述;

一個推理模型,它接收每個知識陳述所增加的問題,然後使用這些知識,從而使其預測的概率最高(圖1)。生成性知識提示(generated knowledge prompting )在數值常識、一般常識以及科學常識可以提高現成模型和經過微調的模型的推理效能。

值得注意的是,當使用相同的語言模型進行知識生成和推理時,該方法是有效的。

圖1:上面:沒有符號知識的推理預測模型

下面:生成知識的提示:

1、生成問題相關的符號知識

2、在推理模型中使用知識陳述

作者發現有三個因素對基於生成性知識提示的推理任務有幫助:1、知識質量,2、知識數量,3、整合知識的推理策略。通過定性分析,生成的知識可以將常識性問題簡化為明確的推理流程。

Method

作者聚焦在多項選擇任務上,即給定一個問題,預測一個答案,答案是有限的可以根據問題而變化,問題和答案都是可變長度的文字序列。

本文將分兩步來介紹生成性知識提示。第一步使用知識模型根據問題生成知識陳述:

其中每個知識陳述是一個變長文字序列,每個陳述都包含了與問題相關的資訊。第二步根據問題和知識陳述,使用推理模型來預測答案:

這是對不需要知識的推理模型的自然擴充套件

2.1知識生成

利用問題相關的知識示例,通過提示語言模型生成知識陳述。在所有任務中使用同樣的提示形式:由一個命令句子,一些問題-知識對示例,然後以問題佔位符結束,如表2所示。

表2:NumerSense和QASC知識生成提示的例子

提示由一個指令句子、五個問題-知識對示例和問題佔位組成

對於一個給定的問答任務,給出同問題類似的五個問題,然後為每個問題寫一個相應的知識陳述。理想情況下,提供的知識陳述應該把常識問題變成明確的推理過程。

當然,不應該簡單地將答案插入到問題後面,而是鼓勵多樣的知識生成。比如對於問題Penguinshavewings,可以將知識陳述寫成Birds have two wings. Penguin is a kind of bird。

知識陳述中的兩句話可以看作是演繹推理的完備集。而Penguins havetwo wings是一個不好的知識陳述示例,因為直接將問題和答案顯示出來了。

2.2通過提示進行知識整合

假設我們為每個問題q生成M個知識陳述:。通過知識來提示推理模型。首先將知識陳述分別後置到問題中,形成M個知識擴充問題:

實驗

本文在四個常識推理資料集上評估生成性知識提示:NumerSense (NS), CommonsenseQA (CSQA), CommonsenseQA 2.0 (CSQA2), and QASC。這些資料集包含了推理和問題多樣性。

使用GPT-3進行知識生成,一般對每個問題生成20個知識陳述,將重複的和空字串丟棄。當超過64個token或者遇到‘\n’時,生成終止。

NumerSense由多個關於常見的物體和概念的陳述組成的,對於每個句子需要恢復一個被掩蓋的數字。選項是從0到10的整數,加上單詞no,所以這個任務可以被定為一個多項選擇題。

在推理階段使用T5進行推斷,同時使用零樣本的GPT-3進行推斷,將每個選項插入到句子中,並將答案的概率作為整個句子的生成概率:

CSQA 是一個關於現實世界的多個選項的問答資料集。通過T5進行推斷,將問題形式化為文字填充,並以最高的序列到序列語言建模概率預測選擇。

CSQA2是一個二元分類資料集,需要判斷常識性陳述是對還是錯。

QASC是一個關於小學科學的多項選擇的資料集。這個資料集還包括每個問題的兩個背景知識,背景知識完全回答了問題。

表3:不同先進方法的比較

將本文提出的方法與之前的最好的方法進行比較,如表3所示。在每種情況下,在之前SOTA中使用的相同推理模型上應用本文提出的方法,可以看出NumerSense實現了6%的提升,CSQA2實現了2%的提升,QASC實現了3%的提升。

表4:在零樣本模型上的提升

表4顯示了在零樣本推理模型中,應用本文提到的方法,在NumerSense, CSQA和QASC上提高7%到10%不等,在CSQA2上表現不好,作者也沒分析原因。

表5表明,本文方法在微調推理模型上也能給模型的效能帶來提升。

表5:在微調模型上的提升

通過定量分析,作者發現本文提到的方法要優於基於檢索的知識提示方法,以及優於基於模板的知識生成方法,同時推理階段利用的知識越好,對效能提升也越好。生成的知識越多,對推理越有幫助,如表8所示。

表7:每個問題生成不同數量的知識陳述的效能

表7:每個問題生成不同數量的知識陳述的效能

表9顯示了在不同大小的推理模型下NumerSense的效能增益。

第三行顯示,gpt-3既是知識生成模型,也是推理模型,模型越小,提升越大,但個人覺得第三行要有意義些,因為其他模型太小了,可能gpt-3直接把答案告訴推理模型了,可以再做兩個推理模型比gpt-3強的實驗。

表9:不同知識整合演算法的效能

本文提出生成性知識提示模型,從預訓練語言模型中抽取知識,然後整合知識提升常識推理任務的效能。這種方法在多個推理資料集上被證明是有效的。

△新增AI小助手

微信ID:tanxin6934

備註:姓名-學校/公司-研究方向-城市(如:小欣-斯坦福-目標檢測-深圳)

即可領取目標檢測與R-CNN/資料分析的應用/電商資料分析/資料分析在醫療領域的應用/NLP學員專案展示/中文NLP的介紹與實際應用/NLP系列直播課/NLP前沿模型訓練營等乾貨學習資源。

每月大咖直播分享、真實專案需求對接、求職內推、演算法競賽、乾貨資訊彙總等等。