论文浅尝 | NumNet: 一种带有数学推理的机器阅读理解模型
論文筆記整理:吳林娟。
來源:EMNLP2019
論文鏈接:https://arxiv.org/pdf/1910.06701.pdf
開放源碼:https://github.com/ranqiu92/NumNet
概述
本文提出了一個將數(shù)學(xué)推理融入機(jī)器閱讀理解的模型——NumNet,其中利用數(shù)字感知的圖神經(jīng)模型(NumGNN)實現(xiàn)了數(shù)字比較和數(shù)學(xué)推理,旨在解決目前機(jī)器閱讀理解模型在數(shù)值推理上的不足。模型以NumGNN為核心,結(jié)合NAQANet的基礎(chǔ)模塊以及改進(jìn)的預(yù)處理方法實現(xiàn)了問題和問題提出的段落的編碼,編碼中融入了問題和段落的數(shù)字感知表示用于實現(xiàn)數(shù)值推理。在公開的考察數(shù)學(xué)運算能力的機(jī)器閱讀理解數(shù)據(jù)集DROP上獲得了64.56%的EM分?jǐn)?shù),超過了所有現(xiàn)有的考慮了數(shù)字之間關(guān)系的機(jī)器閱讀理解模型。
文章的創(chuàng)新點主要在于提出了機(jī)器閱讀理解中數(shù)學(xué)推理的關(guān)鍵是進(jìn)行數(shù)值比較,且對于兩類問題最重要:
(1)數(shù)值比較問題:通過數(shù)值比較后可以直接得到答案;
(2)數(shù)值條件問題:通過數(shù)值比較之后可以更好地理解文本。
模型和方法
模型NumNet是在數(shù)字感知QANet(NAQANet)的基礎(chǔ)上進(jìn)行的增強(qiáng)。模型架構(gòu)如下圖所示,主要包括了編碼模塊、推理模塊、和預(yù)測模塊。數(shù)字之間的數(shù)字關(guān)系通過圖的拓?fù)溥M(jìn)行編碼。例如,從“6”指向“ 5”的邊緣表示“ 6”大于“ 5”。推理模塊利用數(shù)字感知圖神經(jīng)網(wǎng)絡(luò)對圖進(jìn)行數(shù)字推理。由于在我們的模型中對數(shù)值比較進(jìn)行了明確的建模,因此它對于回答需要數(shù)值推理(例如加法,計數(shù)或按數(shù)字排序)的問題更為有效。
1. 編碼模型
首先使用QANet和NAQANet的編碼組件對問題Q和段落P進(jìn)行編碼,包括卷積層、自注意力層和前饋層:
并傳遞到向量空間表示中,然后分別加入了問題-段落的注意力表示增強(qiáng)閱讀理解能力:
其中QANet-Emb-Enc(·)和QANet-Att(·)分別表示QANet的“堆疊式嵌入編碼器層”和“上下文查詢關(guān)注層”。和傳遞到下一個模塊。
2. 推理模型
2.1 數(shù)字感知表示
將問題和段落中的數(shù)字建立了一個有向圖 G = (V ; E),結(jié)點由問題和段落中的數(shù)字組成 V = V^Q∪V^P,其中數(shù)字用 n(v),v∈V,邊 (G) 用于編碼數(shù)字之間的數(shù)值關(guān)系。
在這項工作中考慮了兩組邊:
大于的關(guān)系邊:例如兩個點 v_i,v_j∈V,它們的邊為 e ?_ij=(v_i,v_j),表示 n(v_i )<n(v_j)。
小于或等于的關(guān)系邊 :例如兩個點 v_i,v_j∈V,它們的邊為 e ?_ij=(v_i,v_j),表示 n(v_i )>n(v_j。
由于數(shù)字可能多次出現(xiàn)并代表文檔中的不同事實,因此作者為圖形中的每次出現(xiàn)添加一個不同的節(jié)點以防止?jié)撛诘钠缌x。因此,為了在節(jié)點之間編碼“相等”的信息,同時使用了 和 。
????? 然后,基于圖神經(jīng)網(wǎng)絡(luò)對圖進(jìn)行推理,可以將編碼正式表示為:
其中是共享的權(quán)重矩陣,U 是對應(yīng)于數(shù)字的節(jié)點的表示形式,QANet-Mod-Enc(·)是QANet中定義的“模型編碼器層”,類似于QANet-Emb-Enc(·)。
????? 由于 U 中只包含數(shù)字的表示,但是數(shù)字之間在段落中是有跨度的,所以采取了以下的表示方式來記錄出數(shù)字所在的位置:
就是最終的數(shù)字感知段落表示。
2.2 數(shù)字推理
??????????? (1)初始化表示數(shù)字:,其中段落和問題中的數(shù)字節(jié)點 ,, , 和 表示對應(yīng)于 和 的單詞索引。
??????????? (2)One-Step推理:根據(jù)給定圖 G 和節(jié)點 v 表示,使用GNN分三步執(zhí)行推理:
節(jié)點關(guān)聯(lián)性度量:由于通常只有少數(shù)的數(shù)字與回答問題相關(guān),因此計算權(quán)重時每個節(jié)點在推理過程中都要繞過無關(guān)的數(shù)字。權(quán)重計算:
信息傳遞:由于數(shù)字在推理中的作用不僅由其本身決定,而且與上下文有關(guān),因此數(shù)字信息要從每個節(jié)點傳播到相鄰節(jié)點來幫助推理。傳播函數(shù)用于計算節(jié)點的前向更新:
其中, p和q分別表示節(jié)點的類型。
節(jié)點表示更新:由于在上一步中獲得的消息表示僅包含來自相鄰節(jié)點的信息,因此需要將其與節(jié)點表示融合,以與節(jié)點本身攜帶的信息進(jìn)行組合:
??????????? 整個單步推理過程可以表示為:
(3)多步推理:通過單步推理,只能推斷相鄰節(jié)點之間的關(guān)系。但是,對于某些任務(wù),例如排序,可能需要多個節(jié)點之間的關(guān)系。因此,執(zhí)行多步驟推理至關(guān)重要。多步推理表示為:
3. 預(yù)測模型
根據(jù)NAQANet,作者將答案分為四種類型,并使用特殊的輸出層來計算每種類型的條件答案概率 Pr(answer | type),四種類型分別是:答案在段落中,答案在問題中,計數(shù)問題和算術(shù)表達(dá)式類問題。
同時,額外的輸出層也用于預(yù)測每種答案類型的概率 Pr(type)。在訓(xùn)練時,最終答案的概率定義為所有可行答案類型(即∑_type[Pr?(type)Pr?(answer | type)的聯(lián)合概率。此處,不需要答案類型注釋,并且模型可以學(xué)習(xí)概率 Pr(type)。在測試時,模型首先貪婪地選擇最可能的答案類型,然后相應(yīng)地預(yù)測最佳答案。作者利用NAQANet中的五個輸出層的定義,以和作為輸入。
實驗
作者在DROP數(shù)據(jù)集上評估了他們的模型,該數(shù)據(jù)集是公共數(shù)值MRC數(shù)據(jù)集,采用了精確匹配(EM)和以數(shù)字為重點的F1分?jǐn)?shù)這兩個指標(biāo)來評估模型。與基于語義解析的模型,傳統(tǒng)MRC模型甚至數(shù)字MRC模型NAQANet和NAQANet+相比,NumNet模型在DROP數(shù)據(jù)集的開發(fā)集和測試集上均獲得了更好的結(jié)果。
實驗結(jié)果如下:
實驗過程中發(fā)現(xiàn),由于數(shù)字感知圖是預(yù)先定義的,因此NumNet不適用于在推理過程中必須導(dǎo)出中間數(shù)字(例如從算術(shù)運算中得出)的情況,這是模型的主要限制。
總結(jié)
作者通過將數(shù)值感知圖和NumGNN結(jié)合在一起提出了NumNet模型,將問題中的數(shù)字之間的數(shù)字關(guān)系編碼并作為圖形傳遞給圖形,并利用數(shù)字感知圖形神經(jīng)網(wǎng)絡(luò)對圖形進(jìn)行數(shù)字推理。一方面,數(shù)字感知圖將數(shù)字編碼為節(jié)點,并將它們之間的關(guān)系編碼為邊進(jìn)行數(shù)字比較。另一方面,通過單步推理,NumGNN可以執(zhí)行比較操作并確定數(shù)值條件。最后經(jīng)過多步推理NumGNN可以進(jìn)一步執(zhí)行排序操作。模型很好地彌補(bǔ)了目前機(jī)器閱讀模型中在數(shù)值推理上的不足,是一個很有趣且實用的研究,在例如財經(jīng)類新聞或科學(xué)類文章的閱讀理解中都是非常需要的。
?
OpenKG
開放知識圖譜(簡稱 OpenKG)旨在促進(jìn)中文知識圖譜數(shù)據(jù)的開放與互聯(lián),促進(jìn)知識圖譜和語義技術(shù)的普及和廣泛應(yīng)用。
點擊閱讀原文,進(jìn)入 OpenKG 博客。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的论文浅尝 | NumNet: 一种带有数学推理的机器阅读理解模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文浅尝 | SPARQL 语言的 AS
- 下一篇: 论文浅尝 - ICLR2020 | Yo