01
研究動(dòng)機(jī)
數(shù)學(xué)問(wèn)題(英文叫Math Word Problem,簡(jiǎn)稱MWP)的求解要求給定一段描述文本,其中包含對(duì)于若干已知變量和一個(gè)未知變量的描述,要求利用變量間的數(shù)值關(guān)系來(lái)推理計(jì)算出未知變量的準(zhǔn)確數(shù)值。
一個(gè)具體的例子如下圖1所示,可以發(fā)現(xiàn)一個(gè)數(shù)學(xué)問(wèn)題可能對(duì)應(yīng)著多個(gè)正確的表達(dá)式或二叉樹(shù),有著非確定性的輸出空間,而目前主流方法輸入問(wèn)題文本序列來(lái)學(xué)習(xí)特定單個(gè)表達(dá)式序列或二叉樹(shù)的生成,使得模型所學(xué)到的知識(shí)不完整,并需要大量數(shù)據(jù)來(lái)提升性能,限制了模型在低資源場(chǎng)景下的表現(xiàn)。
圖1: MWP問(wèn)題示例
對(duì)于MWP的輸出多樣性,分析原因如下:
1、計(jì)算順序的不確定性:a)運(yùn)算之間常擁有相同的計(jì)算優(yōu)先級(jí)。如n1 + n2 + n3 ? n4 中的三個(gè)運(yùn)算符優(yōu)先級(jí)一樣,可以等價(jià)轉(zhuǎn)換為不同的序列或二叉樹(shù);b)數(shù)學(xué)表達(dá)式中括號(hào)的使用給計(jì)算順序也帶來(lái)了不確定性。如n1 + n2 ? n3, n1 ? (n3 ? n2) 和 (n1+n2)?n3都是等價(jià)的表達(dá);
2、運(yùn)算的可交換性帶來(lái)的不確定性:加法和乘法操作兩邊的算子可以進(jìn)行交換且不影響計(jì)算邏輯與最終結(jié)果,使得輸出的結(jié)構(gòu)具有多樣性的表達(dá),如n1 + n2 × n3可以轉(zhuǎn)換為n1+n3×n2,n2×n3+n1等;
為了解決由多樣性給問(wèn)題求解帶來(lái)的挑戰(zhàn),我們提出了基于結(jié)構(gòu)統(tǒng)一M叉編碼樹(shù)的數(shù)學(xué)問(wèn)題求解器。針對(duì)第一點(diǎn)原因,在二叉樹(shù)的結(jié)構(gòu)基礎(chǔ)上,我們?cè)O(shè)計(jì)了擁有任意分支數(shù)量的M-tree,在豎直方向上對(duì)樹(shù)的結(jié)構(gòu)進(jìn)行統(tǒng)一;針對(duì)第二點(diǎn),我們?cè)贛-tree中重新定義了新的M元運(yùn)算,使得所有的運(yùn)算都滿足可交換性,將只在子節(jié)點(diǎn)左右順序不一樣的兩棵M-tree視為相同的結(jié)構(gòu),從而在水平方向?qū)?shù)的結(jié)構(gòu)進(jìn)行統(tǒng)一。
而為了學(xué)習(xí)輸出M-tree,我們放棄了進(jìn)行自上而下且從左到右的自回歸式生成方法,因?yàn)樵摲椒ú荒鼙苊庥捎谧庸?jié)點(diǎn)左右順序的變化而帶來(lái)的輸出(one by one)多樣性。我們首先對(duì)M-tree進(jìn)行編碼,將其轉(zhuǎn)換為M-tree codes形式的等價(jià)表達(dá),用于保存M-tree的結(jié)構(gòu)信息,其中每個(gè)code對(duì)應(yīng)M-tree中的一個(gè)葉子節(jié)點(diǎn),保存從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的路徑以及葉子節(jié)點(diǎn)本身的信息。
通過(guò)一個(gè)sequence to code(seq2code)模型學(xué)習(xí)從輸入問(wèn)題文本序列到每個(gè)code的映射,以非自回歸的方式生成輸出。
02
貢獻(xiàn)
1、我們分析了MWP中輸出多樣性的原因,創(chuàng)新地設(shè)計(jì)了一個(gè)基于M樹(shù)的方案來(lái)統(tǒng)一輸出結(jié)構(gòu);
2、我們?cè)O(shè)計(jì)了M-tree codes來(lái)等價(jià)表示M-tree,并提出了一個(gè)seq2code模型來(lái)以非自回歸的方式生成codes,據(jù)我們所知這是第一個(gè)利用M-tree codes和seq2code來(lái)分析求解MWP的工作;
3、在廣泛使用的Math23K和MAWPS數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,SUMC-Solver在同等實(shí)驗(yàn)設(shè)置下優(yōu)于以前的方法。尤其是在低資源的情況下,我們的求解器取得了更好的性能表現(xiàn)。
03
解決方案
方法的整體示例及模型框架如下圖2所示,下面介紹M-tree,M-tree codes和seq2code模型的設(shè)計(jì)。
M-tree的設(shè)計(jì):M-tree具有兩種節(jié)點(diǎn)——內(nèi)部節(jié)點(diǎn)和葉子節(jié)點(diǎn),其中內(nèi)部節(jié)點(diǎn)擁有任意M個(gè)子分支(M>=1)且對(duì)應(yīng)四種M元運(yùn)算:{ +,x,x-,+/ },這四種M元運(yùn)算都具有可交換性,葉子節(jié)點(diǎn)有四種:{原始數(shù)值v,v的負(fù)數(shù),v的倒數(shù),v的倒數(shù)的相反數(shù)};定義M-tree的根節(jié)點(diǎn)為+類型節(jié)點(diǎn),任何兩棵僅在子節(jié)點(diǎn)左右順序不一樣的M-tree會(huì)被視為同一顆。
M-tree codes的設(shè)計(jì):由于M-tree中的內(nèi)部節(jié)點(diǎn)可以擁有任意數(shù)量的子分支,且兄弟節(jié)點(diǎn)在結(jié)構(gòu)上的位置是等價(jià)的,所以基于自回歸式的生成不能避免由于兄弟節(jié)點(diǎn)的順序在輸出端造成的多樣性。為了解決這一難題,我們將M-tree的結(jié)構(gòu)信息編碼到每個(gè)葉子節(jié)點(diǎn)中,在M-tree和葉子節(jié)點(diǎn)的codes集合之間形成一個(gè)映射,這樣模型就能以非自回歸的方式生成codes。
具體而言,每個(gè)葉子節(jié)點(diǎn)的M-tree code由兩部分組成:一部分保存數(shù)值信息,會(huì)使用兩個(gè)二進(jìn)制位來(lái)區(qū)分?jǐn)?shù)值的四種形式,另一部分由根節(jié)點(diǎn)到當(dāng)前葉子節(jié)點(diǎn)的路徑信息構(gòu)成。
seq2code模型框架:為了驗(yàn)證M-tree和M-tree codes的先進(jìn)性,我們?cè)O(shè)計(jì)了一個(gè)簡(jiǎn)單的seq2code模型來(lái)求解MWP,它將問(wèn)題文本序列作為其輸入,然后輸出問(wèn)題中數(shù)值的相應(yīng)code(以向量表示)。在結(jié)合所有的codes以恢復(fù)M-tree之后,我們可以計(jì)算出問(wèn)題的最終答案。整個(gè)模型由兩部分組成:?jiǎn)栴}編碼器和code生成器。a)問(wèn)題編碼器將MWP的單詞轉(zhuǎn)化為向量表示,我們的實(shí)驗(yàn)中編碼器有兩種選擇:循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)編碼器或預(yù)訓(xùn)練語(yǔ)言模型(PLM)編碼器;b)我們使用了一個(gè)簡(jiǎn)單的三層前饋神經(jīng)網(wǎng)絡(luò)(FFNN)來(lái)作為生成器。
圖2:?SUMC-Solver問(wèn)題求解示例與模型框架
04
實(shí)驗(yàn)
實(shí)驗(yàn)結(jié)果展示在表1中。SUMC-Solver在兩個(gè)MWP數(shù)據(jù)集上的表現(xiàn)優(yōu)于所有的基準(zhǔn)模型。當(dāng)使用RNN編碼器時(shí),SUMC-Solver的準(zhǔn)確率比學(xué)習(xí)表達(dá)式序列輸出的StackDecoder和T-RNN 高約9-10%。相比學(xué)習(xí)二叉樹(shù)輸出的方法,SUMC-Solver也取得了比GTS、SAU-Solver和Graph2Tree更好的結(jié)果,盡管這些方法使用了精心設(shè)計(jì)的樹(shù)解碼器或豐富輸入表示的圖編碼器。
當(dāng)使用預(yù)訓(xùn)練語(yǔ)言模型(PLM)作為編碼器時(shí),SUMC-Solver達(dá)到了82.5%的準(zhǔn)確率,比GTS-PLM和UniLM-Solver有了明顯的提高(分別為3%和5%)。總之,上述兩種不同編碼器設(shè)置下的結(jié)果都表明,M-tree和M-tree codes的設(shè)計(jì)是合理和先進(jìn)的,這使得我們只用一個(gè)簡(jiǎn)單的seq2code模型就可以達(dá)到更好的性能。
表1:各模型在基準(zhǔn)數(shù)據(jù)集上的性能對(duì)比
表1中在Math23K數(shù)據(jù)集上展示的是在公共測(cè)試集上的結(jié)果,在MAWPS*上展示的是5折交叉驗(yàn)證的結(jié)果,帶 ? 的結(jié)果是由我們復(fù)現(xiàn)得到的。
MWP的人工標(biāo)注成本很高,因此提升該模型在低資源場(chǎng)景下的表現(xiàn)是有必要的。我們用不同數(shù)據(jù)規(guī)模的訓(xùn)練集來(lái)評(píng)估GTS、SAU-Solver和Graph2Tree的性能。測(cè)試集統(tǒng)一包含2,312個(gè)隨機(jī)抽樣的實(shí)例。詳細(xì)的結(jié)果可以在圖3中找到。可以看出,無(wú)論訓(xùn)練集的大小如何,SUMC-Solver的性能始終優(yōu)于其他模型。
首先,當(dāng)訓(xùn)練集的規(guī)模小于6000時(shí),SAU-Slover的性能優(yōu)于GTS;當(dāng)數(shù)量超過(guò)6000時(shí),這兩個(gè)模型的性能相似。就整體性能而言,在資源受限的情況下,SAU-Solver和Graph2Tree的結(jié)果比GTS的好。其次,在6000個(gè)樣本的訓(xùn)練集下,SUMC-Solver和其他模型之間出現(xiàn)了最明顯的性能差距,我們的模型在準(zhǔn)確率上大約提升了5%。這表明SUMC-Solver在低資源情況下具有突出的優(yōu)勢(shì)。
圖3:低資源場(chǎng)景下的模型性能對(duì)比
此外,我們根據(jù)問(wèn)題計(jì)算答案所需的操作數(shù)(問(wèn)題中的某些數(shù)值)將測(cè)試集(2,312個(gè)隨機(jī)抽樣的實(shí)例)分為不同的等級(jí),并在不同等級(jí)的數(shù)據(jù)上對(duì)比模型性能。詳細(xì)情況可見(jiàn)圖4。從結(jié)果中,我們可以看到,大多數(shù)的MWP需要2到4個(gè)操作數(shù),而SUMC-Slover在需要更多操作數(shù)的數(shù)據(jù)上表現(xiàn)得比基準(zhǔn)模型更好,這表明我們的求解器有潛力解決更復(fù)雜的問(wèn)題。
圖4:不同模型在需要不同操作數(shù)的測(cè)試數(shù)據(jù)上正確回答問(wèn)題數(shù)量的對(duì)比
最后,seq2code框架也可以應(yīng)用于二叉樹(shù)結(jié)構(gòu),例如可為每個(gè)MWP選擇一個(gè)二叉樹(shù)結(jié)構(gòu)的輸出,并以同樣的方法將其轉(zhuǎn)換為codes。我們對(duì)Math23K的訓(xùn)練集數(shù)據(jù)進(jìn)行了轉(zhuǎn)換,并對(duì)二叉樹(shù)codes和M-tree codes進(jìn)行了比較,結(jié)果如下表2所示。可以看出,應(yīng)用M-tree可以大大減少codes集合的大小,并保證得到的codes能夠覆蓋測(cè)試集,這說(shuō)明M-tree對(duì)統(tǒng)一輸出結(jié)構(gòu)的效果非常明顯。
表2:二叉樹(shù)與M-tree編碼對(duì)比
05
總結(jié)
針對(duì)數(shù)學(xué)問(wèn)題求解的輸出多樣性,我們提出了SUMC-Slover求解器,其應(yīng)用M-tree來(lái)統(tǒng)一多樣化的輸出,以及seq2code模型來(lái)學(xué)習(xí)M-tree。在廣泛使用的MAWPS和Math23K數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,SUMC-Solver在類似的設(shè)置下優(yōu)于目前一些最先進(jìn)的方法,并且在低資源場(chǎng)景下有著更好的表現(xiàn)。
審核編輯:劉清
-
編碼器
+關(guān)注
關(guān)注
45文章
3776瀏覽量
137199 -
PLM
+關(guān)注
關(guān)注
2文章
135瀏覽量
21315 -
求解器
+關(guān)注
關(guān)注
0文章
79瀏覽量
4710
原文標(biāo)題:EMNLP'22 | 基于結(jié)構(gòu)統(tǒng)一M叉編碼樹(shù)的數(shù)學(xué)問(wèn)題求解器
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
求一種NXP最新的NFC電子錢(qián)包解決方案
一種求解關(guān)鍵路徑的新算法
基于四叉樹(shù)的分形圖像編碼中的剖分決策函數(shù)
基于HBase的四叉樹(shù)Hilbert索引設(shè)計(jì)

4中二叉樹(shù)的遍歷方式介紹

二叉樹(shù),一種基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)類型

詳解電源二叉樹(shù)到底是什么

基于三叉樹(shù)鏈表的編譯器中間結(jié)構(gòu)的設(shè)計(jì)方案研究

紅黑樹(shù)(Red Black Tree)是一種自平衡的二叉搜索樹(shù)

二叉樹(shù)操作的相關(guān)知識(shí)和代碼詳解

評(píng)論