本發(fā)明屬于自然語言處理,具體涉及一種基于事實(shí)檢索和驗(yàn)證增強(qiáng)的可解釋問答方法及系統(tǒng)。
背景技術(shù):
1、智能問答(questionanswering,qa)是使計(jì)算機(jī)理解文章語義并且回答相關(guān)問題的技術(shù),是自然語言處理(natural?language?processing,nlp)領(lǐng)域的一項(xiàng)重要研究任務(wù),也是驗(yàn)證機(jī)器智能水平的有效評(píng)測(cè)手段,在信息檢索、智能客服、智慧司法等領(lǐng)域具有廣泛的應(yīng)用價(jià)值。
2、近年來,隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,尤其是以chatgpt為代表的大語言模型異軍突起,智能問答任務(wù)的性能取得了顯著提升,甚至在一些指標(biāo)上超越了人類表現(xiàn)。然而,基于深度神經(jīng)網(wǎng)絡(luò)的語言模型本質(zhì)是“黑盒”的,且隨著模型參數(shù)量的不斷增大以及復(fù)雜性的不斷提高,問答系統(tǒng)的不可解釋性愈加凸顯,用戶對(duì)于模型給出的答案通常是“知其然,而不知其所以然”,這嚴(yán)重阻礙了問答系統(tǒng)在關(guān)鍵領(lǐng)域的應(yīng)用。因此,研究問答系統(tǒng)的可解釋性至關(guān)重要,提供從問題到答案的推理過程有助于提高模型的可調(diào)式性和可信性。
3、可解釋問答(explainable?questionanswering,xqa)的目的是在回答一個(gè)問題的同時(shí)給出相應(yīng)的解釋。目前的相關(guān)研究主要集中在三方面:抽取包含答案的關(guān)鍵詞、生成多跳的結(jié)構(gòu)化解釋鏈以及生成自由形式的文本解釋。其中,結(jié)構(gòu)化蘊(yùn)涵樹通過展示從給定事實(shí)到答案的推理過程,能夠以更加清晰且豐富的形式為用戶提供解釋。目前結(jié)構(gòu)化蘊(yùn)涵樹的生成得到了廣泛研究,現(xiàn)有的大多數(shù)相關(guān)工作采用逐步的方式生成結(jié)構(gòu)化推理鏈,rlet設(shè)計(jì)了一種基于強(qiáng)化學(xué)習(xí)的蘊(yùn)涵樹生成框架,通過句子選擇模塊和演繹生成模塊迭代執(zhí)行單步推理;nlproofs引入獨(dú)立的驗(yàn)證機(jī)制來檢驗(yàn)證明步驟的有效性,防止生成幻覺的無效步驟;metgen提出基于模塊化的蘊(yùn)涵樹生成方法,且引入后向推理的方式增強(qiáng)證明步驟的有效性。
4、已有的結(jié)構(gòu)樹生成方法仍然面臨兩個(gè)挑戰(zhàn):(1)由于事實(shí)搜索空間較大而導(dǎo)致組合失??;(2)存在錯(cuò)誤累積而生成無效步驟。目前的工作主要采用前向演繹推理的方式執(zhí)行單步推理。演繹推理是一種自底向上的前向推理方式,需要通過迭代搜索已知事實(shí)生成中間結(jié)論,直到證明目標(biāo)假設(shè)。隨著新的推理結(jié)論加入知識(shí)事實(shí),搜索空間在每次迭代中不斷擴(kuò)大,容易導(dǎo)致組合失敗。此外,逐步生成方法固有地存在錯(cuò)誤累積問題,隨著證明步驟的增加,模型可能快速生成無效的證明,導(dǎo)致樹結(jié)構(gòu)的不正確性。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)目前結(jié)構(gòu)樹生成面臨的搜索空間較大和錯(cuò)誤累積的問題,本發(fā)明提供了一種基于事實(shí)檢索和驗(yàn)證增強(qiáng)的可解釋問答方法及系統(tǒng)。
2、為了達(dá)到上述目的,本發(fā)明采用了下列技術(shù)方案:
3、一種基于事實(shí)檢索和驗(yàn)證增強(qiáng)的可解釋問答系統(tǒng),包括事實(shí)檢索模塊、雙向推理模塊、多視圖對(duì)比學(xué)習(xí)模塊、交叉驗(yàn)證模塊和證明搜索模塊;
4、所述事實(shí)檢索模塊,用于對(duì)基于上下文構(gòu)建的候選事實(shí)集合進(jìn)行過濾,動(dòng)態(tài)剔除與目標(biāo)假設(shè)(由問題和答案構(gòu)建)不相關(guān)的事實(shí)以減小搜索空間;
5、所述雙向推理模塊,采用編碼器-解碼器架構(gòu)的預(yù)訓(xùn)練語言模型t5-large分別作為演繹和溯因推理器,以演繹(自下而上)和溯因(自上而下)的方式生成單步證明步驟,并通過迭代計(jì)算分別獲得演繹和溯因候選結(jié)構(gòu)樹;
6、所述多視圖對(duì)比學(xué)習(xí)模塊,在演繹和溯因推理器的編碼器端利用目標(biāo)假設(shè)與訓(xùn)練數(shù)據(jù)中給定的黃金事實(shí)句構(gòu)建局部對(duì)比損失,在解碼器端利用束搜索算法生成的候選步驟以及原始數(shù)據(jù)中的黃金步驟和訓(xùn)練批次內(nèi)的其余目標(biāo)步驟構(gòu)建全局對(duì)比損失;
7、所述交叉驗(yàn)證模塊,利用訓(xùn)練數(shù)據(jù)中的黃金步驟構(gòu)建演繹和溯因數(shù)據(jù)并訓(xùn)練演繹和溯因評(píng)分器,以增強(qiáng)雙向推理時(shí)單個(gè)證明步驟的可靠性;
8、所述證明搜索模塊,對(duì)演繹和溯因推理獲得的候選結(jié)構(gòu)樹進(jìn)行對(duì)齊,并在聯(lián)合構(gòu)建的圖中進(jìn)行搜獲以獲得最佳的結(jié)構(gòu)樹,獲得從上下文事實(shí)句到目標(biāo)假設(shè)的推理步驟。
9、基于事實(shí)檢索和驗(yàn)證增強(qiáng)的可解釋問答系統(tǒng)的可解釋問答方法,包括以下步驟:
10、步驟1:通過事實(shí)檢索模塊對(duì)基于上下文構(gòu)建的候選事實(shí)集合作初步過濾,動(dòng)態(tài)剔除與假設(shè)不相關(guān)的知識(shí)事實(shí);
11、步驟2:利用雙向推理模塊生成單個(gè)證明步驟,其中演繹和溯因生成器分別以自下而上和自上而下的方式生成候選步驟;
12、步驟3:利用多視圖對(duì)比學(xué)習(xí)模塊拉近假設(shè)與黃金事實(shí)的語義距離,從相似性的角度增強(qiáng)證明步驟的可靠性;
13、步驟4:利用交叉驗(yàn)證模塊對(duì)演繹和溯因步驟進(jìn)行相互驗(yàn)證,從支持性的角度增強(qiáng)證明步驟的可靠性;
14、步驟5:通過證明搜索模塊將雙向推理獲得的候選結(jié)構(gòu)樹進(jìn)行對(duì)齊,并設(shè)計(jì)融合算法獲得最佳結(jié)構(gòu)樹。
15、進(jìn)一步,所述步驟1通過事實(shí)檢索模塊對(duì)候選事實(shí)集合作初步過濾,動(dòng)態(tài)剔除與假設(shè)不相關(guān)的知識(shí)事實(shí)具體包括以下步驟:
16、步驟1.1,采用預(yù)訓(xùn)練語言模型albert作為編碼器,對(duì)假設(shè)h和事實(shí)senti進(jìn)行編碼,采用平均池化獲得假設(shè)h的句子嵌入表示h,以及每個(gè)事實(shí)的句子嵌入表示fi;
17、步驟1.2,采用由全連接神經(jīng)網(wǎng)絡(luò)構(gòu)建的多層感知機(jī)獲取每個(gè)事實(shí)的相關(guān)性分?jǐn)?shù),計(jì)算公式如下所示:
18、
19、其中,σ是sigmoid激活函數(shù),[·]表示拼接操作,mlpfact是由兩層前饋網(wǎng)絡(luò)組成的多層感知機(jī),表示每個(gè)句子的相關(guān)性分?jǐn)?shù);
20、在樹結(jié)構(gòu)中,如果一個(gè)事實(shí)的深度較小,即更加接近根節(jié)點(diǎn),那么它應(yīng)該比深度較大的事實(shí)更加接近目標(biāo)假設(shè)。因此,在訓(xùn)練時(shí)采用一種邊際排序作為檢索器的損失,計(jì)算公式如下所示:
21、
22、其中,是黃金樹中深度小于的事實(shí),s-是候選事實(shí)集合s中其余的無關(guān)事實(shí),n1是對(duì)的數(shù)量,n2是干擾事實(shí)的數(shù)量,是事實(shí)的邊際,ψ是邊際損失,是最終得到的損失;基于上述事實(shí)評(píng)分設(shè)計(jì)閾值對(duì)每一組候選事實(shí)集合動(dòng)態(tài)篩選。
23、進(jìn)一步,所述步驟2利用雙向推理模塊生成單個(gè)證明步驟(包括兩個(gè)葉節(jié)點(diǎn)和一個(gè)生成的中間結(jié)論),其中演繹和溯因生成器分別以自下而上和自上而下的方式生成候選步驟具體包括以下步驟:
24、步驟2.1,采用編碼器-解碼器架構(gòu)的預(yù)訓(xùn)練語言模型t5-large作為演繹和溯因推理器,分別執(zhí)行自下而上和自上而下的單步證明步驟生成;
25、步驟2.1.1,從黃金樹的證明步驟中分別構(gòu)建演繹和溯因的訓(xùn)練數(shù)據(jù),
26、步驟2.1.2,以自下而上的方式構(gòu)建演繹訓(xùn)練數(shù)據(jù):對(duì)于演繹,以自下而上的方式構(gòu)建,每一步的輸入除了假設(shè)h和事實(shí)集合外,還包括先前步驟的輸出;然后,將當(dāng)前時(shí)刻生成的步驟作為下一步模型輸入的一部分,以此不斷迭代生成證明步驟,直到輸出假設(shè)的標(biāo)記“hypothesis”終止;
27、步驟2.1.3,以自上而下的方式構(gòu)建溯因訓(xùn)練數(shù)據(jù):對(duì)于溯因,以自上而下的方式從黃金樹中構(gòu)建訓(xùn)練數(shù)據(jù),將演繹步驟的根節(jié)點(diǎn)與某一個(gè)葉節(jié)點(diǎn)互換來構(gòu)建溯因步驟,溯因模型輸出步驟中的某個(gè)葉節(jié)點(diǎn)為上一步溯因模型生成的中間結(jié)論,然后將該步驟作為下一步溯因模型的輸入并迭代生成步驟,當(dāng)不再生成中間結(jié)論時(shí)終止;
28、步驟2.2,構(gòu)建演繹和溯因訓(xùn)練數(shù)據(jù),并分別訓(xùn)練演繹和溯因生成器,計(jì)算公式如下所示:
29、
30、其中,gt表示t時(shí)刻生成的證明步驟,s′表示過濾后的知識(shí)事實(shí)集合,encoder-decoder表示序列到序列模型的編碼器和解碼器,表示1到t-1時(shí)刻生成的所有溯因步驟;表示1到t-1時(shí)刻生成的所有溯因步驟;表示t時(shí)刻生成的演繹步驟;表示t時(shí)刻生成的溯因步驟;訓(xùn)練時(shí)最大化條件概率似然損失,其中演繹生成器的損失計(jì)算公式如下所示:
31、
32、其中,表示生成器的訓(xùn)練損失,z表示訓(xùn)練數(shù)據(jù)總數(shù),步驟中的每個(gè)token表示為l表示步驟長(zhǎng)度。
33、進(jìn)一步,所述步驟3利用多視圖對(duì)比學(xué)習(xí)模塊拉近假設(shè)與黃金事實(shí)的語義距離,從相似性的角度增強(qiáng)證明步驟的可靠性具體包括以下步驟:在演繹和溯因的編碼器、解碼器端設(shè)計(jì)融合局部和全局信息的多視圖對(duì)比學(xué)習(xí)損失,從語義表示層面拉近黃金事實(shí)與目標(biāo)假設(shè)的距離,使得生成的證明步驟更加接近假設(shè);
34、步驟3.1,在編碼器端設(shè)計(jì)局部對(duì)比信息,對(duì)假設(shè)h和事實(shí)句編碼后得到假設(shè)的句子表示h'以及每個(gè)事實(shí)的句子表示fi';
35、步驟3.1.1,構(gòu)建正負(fù)樣本:以訓(xùn)練數(shù)據(jù)給定的黃金樹的葉節(jié)點(diǎn)作為正例,然后計(jì)算候選事實(shí)集合中的非黃金事實(shí)與假設(shè)的余弦相似性,分?jǐn)?shù)大于某個(gè)閾值的事實(shí)也作為正例,事實(shí)集合中的其余事實(shí)為負(fù)例;
36、基于上述正負(fù)樣例構(gòu)建局部級(jí)別的對(duì)比損失,計(jì)算過程如下公式所示:
37、
38、其中fi′+表示黃金事實(shí)句的嵌入,s′gold是黃金事實(shí)集合,τ是可配置的溫度系數(shù)超參數(shù),fi′是所有事實(shí)句的嵌入,sim(·)是相似性度量函數(shù),計(jì)算公式如下所示:
39、
40、其中,x,y分別表示兩個(gè)句子的嵌入,xt表示對(duì)句子x的嵌入向量進(jìn)行轉(zhuǎn)置;
41、步驟3.2,在解碼器端設(shè)計(jì)全局信息的對(duì)比損失;
42、對(duì)于生成式模型的輸出,句子之間語義信息的差異并不能完全通過正負(fù)樣本標(biāo)簽進(jìn)行分離,換句話說,即使是負(fù)樣本也不一定與目標(biāo)輸出不相關(guān);
43、在解碼器端通過束搜索算法得到u個(gè)多樣化的輸出嵌入,然后結(jié)合目標(biāo)輸出嵌入以及當(dāng)前批次內(nèi)其余樣本的輸出一起構(gòu)建對(duì)比樣本集合w={k1,k2,...,kt},并創(chuàng)建樣本對(duì)(k+,k-)∈w,其中,k表示每一個(gè)樣本的嵌入表示,+和-由樣本的排名決定,該排名是通過與目標(biāo)輸出計(jì)算序列級(jí)分?jǐn)?shù)得到,用于反映對(duì)比樣本之間的相對(duì)差異;全局信息的對(duì)比學(xué)習(xí)損失計(jì)算過程如下所示:
44、
45、其中,ex表示目標(biāo)輸出的嵌入表示,為樣本的嵌入表示,表示邊際,cos(·)表示相似性計(jì)算。
46、進(jìn)一步,所述步驟4利用交叉驗(yàn)證模塊對(duì)演繹和溯因步驟進(jìn)行相互驗(yàn)證,從支持性的角度增強(qiáng)證明步驟的可靠性具體包括以下步驟:對(duì)演繹和溯因推理器每一步生成的候選步驟作交叉驗(yàn)證,從支持性的角度增強(qiáng)單個(gè)證明步驟的可靠性;
47、步驟4.1,將訓(xùn)練數(shù)據(jù)中黃金樹的步驟轉(zhuǎn)換為溯因步驟,分別構(gòu)建演繹對(duì)和溯因?qū)Α?/p>
48、步驟4.2,通過微調(diào)預(yù)訓(xùn)練的albert預(yù)訓(xùn)練語言模型聯(lián)合學(xué)習(xí)演繹與溯因驗(yàn)證器,對(duì)于每一組步驟對(duì),將其表示為(x1,x2,y),然后將前兩個(gè)句子拼接,與最后一個(gè)句子計(jì)算的相關(guān)性分?jǐn)?shù)作為該步驟的分?jǐn)?shù),計(jì)算過程如下公式所示:
49、
50、其中,σ是sigmoid激活函數(shù),mlpded和mlpabd分別是演繹和溯因的多層感知機(jī),stepded和stepabd分別是演繹和溯因步驟;將黃金證明步驟視作正例,反例則通過隨機(jī)替換事實(shí)集合中的一個(gè)前提為非黃金事實(shí)來構(gòu)建,正負(fù)比例設(shè)定為1:1,驗(yàn)證器的損失函數(shù)采用二元交叉熵?fù)p失。
51、進(jìn)一步,所述步驟5通過證明搜索模塊將雙向推理獲得的候選結(jié)構(gòu)樹進(jìn)行對(duì)齊,并設(shè)計(jì)融合算法獲得最佳結(jié)構(gòu)樹具體包括以下步驟:將演繹和溯因生成器分別得到的樹對(duì)齊到一個(gè)證明圖中,并根據(jù)每個(gè)節(jié)點(diǎn)的得分搜索最佳的結(jié)構(gòu)樹,其中,圖的節(jié)點(diǎn)來自兩棵候選樹的節(jié)點(diǎn),邊是每個(gè)證明步驟的前提節(jié)點(diǎn)指向結(jié)論節(jié)點(diǎn)。
52、步驟5.1,基于步驟2.2中演繹生成器獲得的演繹樹構(gòu)建初始圖,該演繹樹的葉節(jié)點(diǎn)和中間結(jié)論節(jié)點(diǎn)均作為初始圖的節(jié)點(diǎn);
53、步驟5.2,然后將步驟2.2中溯因生成器獲得的溯因樹置信度大于閾值的部分融入初始圖,擴(kuò)充證明圖的節(jié)點(diǎn)和邊,同時(shí)為每個(gè)節(jié)點(diǎn)分配分?jǐn)?shù);葉節(jié)點(diǎn)分?jǐn)?shù)設(shè)置為1.0,中間結(jié)論節(jié)點(diǎn)的分?jǐn)?shù)為自回歸語言模型的置信分?jǐn)?shù)和交叉驗(yàn)證器分?jǐn)?shù)之和;
54、步驟5.3,最后根據(jù)證明圖及各個(gè)節(jié)點(diǎn)的分?jǐn)?shù),通過在圖上探索不同的路徑抽取出最佳的結(jié)構(gòu)樹。
55、一種電子設(shè)備,包括至少一個(gè)處理器,以及至少一個(gè)與處理器通信連接的存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)處理器執(zhí)行的指令,所述指令被所述至少一個(gè)處理器執(zhí)行,以使所述至少一個(gè)處理器能夠執(zhí)行權(quán)利要求1~6任意一項(xiàng)所述基于事實(shí)檢索和驗(yàn)證增強(qiáng)的可解釋問答方法。
56、一種存儲(chǔ)有計(jì)算機(jī)指令的非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行所述事實(shí)檢索和驗(yàn)證增強(qiáng)的可解釋問答方法。
57、與現(xiàn)有技術(shù)相比本發(fā)明具有以下優(yōu)點(diǎn):
58、(1)本發(fā)明提出一種基于事實(shí)檢索和驗(yàn)證增強(qiáng)的可解釋問答方法及系統(tǒng),通過事實(shí)檢索動(dòng)態(tài)過濾與目標(biāo)假設(shè)不相關(guān)的知識(shí)事實(shí),有效減小了搜索空間。
59、(2)本發(fā)明設(shè)計(jì)了基于演繹-溯因推理的雙向證明生成方法,并提出交叉驗(yàn)證和多視圖對(duì)比學(xué)習(xí)機(jī)制,從支持性和相似性兩個(gè)角度增強(qiáng)了單個(gè)證明步驟的可靠性。
60、(3)本發(fā)明通過優(yōu)化學(xué)習(xí)各子任務(wù),能夠準(zhǔn)確生成問題回答的結(jié)構(gòu)化推理鏈,增強(qiáng)了問答系統(tǒng)的可解釋性。