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