1. 論文相關(guān)
Published as a conference paper at ICLR 2016
2. 摘要
圖結(jié)構(gòu)數(shù)據(jù)經(jīng)常出現(xiàn)在化學(xué)、自然語(yǔ)言語(yǔ)義盯串、社會(huì)網(wǎng)絡(luò)和知識(shí)庫(kù)等領(lǐng)域氯檐。在這項(xiàng)工作中,我們研究了圖形結(jié)構(gòu)輸入的特征學(xué)習(xí)技術(shù)嘴脾。我們的出發(fā)點(diǎn)是之前在圖神經(jīng)網(wǎng)絡(luò)方面的工作(Scarselli等人男摧,2009),我們將其修改為使用門(mén)控循環(huán)單元(gated recurrent units)和現(xiàn)代優(yōu)化技術(shù)(modern optimization techniques)译打,然后擴(kuò)展到輸出序列(output sequences)耗拓。其結(jié)果是一類(lèi)靈活且廣泛有用的神經(jīng)網(wǎng)絡(luò)模型,當(dāng)問(wèn)題是圖結(jié)構(gòu)時(shí)奏司,相對(duì)于純基于序列的模型(例如LSTM)乔询,具有良好歸納偏差(favorable inductive biases)的工作模型。我們展示了一些簡(jiǎn)單的人工智能(bAbI)和圖算法學(xué)習(xí)任務(wù)的能力韵洋。然后竿刁,我們證明它在程序驗(yàn)證的問(wèn)題上達(dá)到了最先進(jìn)的性能,其中子圖需要描述為抽象的數(shù)據(jù)結(jié)構(gòu)搪缨。
2.2 主要貢獻(xiàn)
我們的主要貢獻(xiàn)是對(duì)輸出序列的圖神經(jīng)網(wǎng)絡(luò)的擴(kuò)展食拜。以前對(duì)圖形結(jié)構(gòu)輸入的特征學(xué)習(xí)的研究主要集中在產(chǎn)生單一輸出的模型上,例如圖形級(jí)分類(lèi)副编,但是許多圖形輸入的問(wèn)題都需要輸出序列负甸。示例包括圖上的路徑、具有所需屬性的圖節(jié)點(diǎn)的枚舉痹届,或與開(kāi)始和結(jié)束節(jié)點(diǎn)混合的全局分類(lèi)序列呻待。我們不知道現(xiàn)有的圖特征學(xué)習(xí)工作是否適合這個(gè)問(wèn)題。我們的激勵(lì)應(yīng)用程序來(lái)自程序驗(yàn)證队腐,需要輸出邏輯公式蚕捉,我們將其作為一個(gè)順序輸出問(wèn)題來(lái)制定。第二個(gè)貢獻(xiàn)是強(qiáng)調(diào)了圖神經(jīng)網(wǎng)絡(luò)(以及我們?cè)谶@里開(kāi)發(fā)的進(jìn)一步擴(kuò)展)是一類(lèi)廣泛有用的神經(jīng)網(wǎng)絡(luò)模型柴淘,適用于當(dāng)前該領(lǐng)域面臨的許多問(wèn)題迫淹。
2.3 設(shè)置
圖上的特征學(xué)習(xí)有兩種設(shè)置:(1)學(xué)習(xí)輸入圖的表示秘通;(2)在生成輸出序列的過(guò)程中學(xué)習(xí)內(nèi)部狀態(tài)的表示。這里千绪,(1)主要是通過(guò)之前對(duì)圖神經(jīng)網(wǎng)絡(luò)的研究來(lái)實(shí)現(xiàn)的(Scarselli等人充易,2009年);我們對(duì)這個(gè)框架做了一些小的調(diào)整荸型,包括改變它以使用循環(huán)神經(jīng)網(wǎng)絡(luò)相關(guān)的現(xiàn)代實(shí)踐(modern practices)盹靴。(2)這一點(diǎn)很重要,因?yàn)槲覀兿M麍D結(jié)構(gòu)問(wèn)題的輸出不僅僅是單個(gè)分類(lèi)瑞妇。在這些情況下稿静,挑戰(zhàn)在于如何學(xué)習(xí)圖上編碼已經(jīng)生成的部分輸出序列(例如,如果輸出路徑辕狰,則為目前為止的路徑)以及仍然需要生成的部分輸出序列(例如改备,剩余路徑)的特征。我們將展示GNN框架如何適應(yīng)這些設(shè)置蔓倍,從而產(chǎn)生一種新的基于圖的神經(jīng)網(wǎng)絡(luò)模型悬钳,我們稱(chēng)之為門(mén)控圖序列神經(jīng)網(wǎng)絡(luò)(Gated Graph Sequence Neural Networks ,GGS-NNs)偶翅。
我們?cè)赽AbI任務(wù)的實(shí)驗(yàn)(Weston等人默勾,2015)和圖算法學(xué)習(xí)任務(wù)中說(shuō)明了這個(gè)通用模型的各個(gè)方面,這些任務(wù)說(shuō)明了模型的能力聚谁。然后我們提出一個(gè)應(yīng)用程序來(lái)驗(yàn)證計(jì)算機(jī)程序母剥。當(dāng)試圖證明諸如內(nèi)存安全(即程序中沒(méi)有空指針引用)之類(lèi)的屬性時(shí),核心問(wèn)題是找到程序中使用的數(shù)據(jù)結(jié)構(gòu)的數(shù)學(xué)描述形导。遵循Brockschmidt等人(2015年)环疼,我們將其描述為一個(gè)機(jī)器學(xué)習(xí)問(wèn)題,我們將學(xué)習(xí)從一組表示內(nèi)存狀態(tài)的輸入圖映射到已實(shí)例化的數(shù)據(jù)結(jié)構(gòu)的邏輯描述朵耕。而B(niǎo)rockschmidt等人(2015)依靠大量的手工特征工程炫隶,我們證明該系統(tǒng)可以用GGS-NN代替,而無(wú)需任何精確度成本阎曹。
3. 圖神經(jīng)網(wǎng)絡(luò)
在本節(jié)中伪阶,我們回顧了圖形神經(jīng)網(wǎng)絡(luò)(Graph Neural Networks ,GNNs)(Gori等人芬膝,2005年;Scarselli等人形娇,2009年)锰霜,并介紹了將貫穿始終的符號(hào)和概念。
GNNs是根據(jù)圖結(jié)構(gòu)G=(V桐早,E)定義的通用神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)癣缅。節(jié)點(diǎn)從
取唯一值友存,邊是對(duì)
。我們將在這項(xiàng)工作中集中在有向圖上屡立,因此(v直晨,v')表示有向邊v→v',但我們注意到框架可以很容易地適應(yīng)無(wú)向圖膨俐;參見(jiàn)scarselli等人(2009)勇皇。節(jié)點(diǎn)v的節(jié)點(diǎn)向量(或節(jié)點(diǎn)表示或節(jié)點(diǎn)嵌入)用
表示。圖也可以包含每個(gè)節(jié)點(diǎn)v的節(jié)點(diǎn)標(biāo)簽
和每個(gè)邊的邊標(biāo)簽或邊類(lèi)型
兄淫。當(dāng)
是一組節(jié)點(diǎn)時(shí),我們將重載符號(hào)并讓
;當(dāng)
是一組邊時(shí)蔓姚,我們將重載符號(hào)并讓
捕虽。
函數(shù)返回前一個(gè)節(jié)點(diǎn)(predecessor nodes)
,
。
類(lèi)似地赂乐,是一個(gè)后繼節(jié)點(diǎn)(successor nodes)
的集合,邊
薯鳍。節(jié)點(diǎn)v相鄰的所有節(jié)點(diǎn)的集合為
,節(jié)點(diǎn)v進(jìn)出的所有邊的集合為
挨措。
GNNs通過(guò)兩個(gè)步驟將圖映射到輸出挖滤。首先,有一個(gè)傳播步驟來(lái)計(jì)算每個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)表示浅役;第二斩松,輸出模型從節(jié)點(diǎn)表示和相應(yīng)的標(biāo)簽映射到每個(gè)節(jié)點(diǎn)v∈V的輸出
觉既。在符號(hào)
中惧盹,我們保留對(duì)參數(shù)的依賴(lài)性,并且我們將一直這樣做瞪讼。該系統(tǒng)具有端到端可微性钧椰,所有參數(shù)均采用基于梯度的優(yōu)化方法聯(lián)合學(xué)習(xí)。
3.1 傳播模型(PROPAGATION MODEL)
在這里符欠,迭代過(guò)程傳播節(jié)點(diǎn)表示(iterative procedure propagates node representations)嫡霞。初始節(jié)點(diǎn)表示被設(shè)置為任意值,然后每個(gè)節(jié)點(diǎn)表示都會(huì)根據(jù)下面的循環(huán)進(jìn)行更新希柿,直到收斂诊沪,其中
表示時(shí)間步驟:
Scarselli等人(2009)討論了幾種變體养筒,包括位置圖形式(positional graph forms)、特定于節(jié)點(diǎn)的更新(node-specific updates)和相鄰節(jié)點(diǎn)的替代表示(alternative representations of neighborhoods)端姚。具體來(lái)說(shuō)晕粪,斯卡塞利等人(2009)建議分解為每個(gè)邊緣項(xiàng)的總和:
其中是
的線性函數(shù)或神經(jīng)網(wǎng)絡(luò)。
的參數(shù)取決于標(biāo)簽的配置渐裸,例如在以下線性情況下巫湘,A和b是可學(xué)習(xí)的參數(shù):
2.2 輸出模型與學(xué)習(xí)(OUTPUT MODEL AND LEARNING)
輸出模型是按節(jié)點(diǎn)定義的,是映射到輸出的可微分函數(shù)橄仆。這通常是線性或神經(jīng)網(wǎng)絡(luò)映射剩膘。斯卡塞利等人(2009)關(guān)注每個(gè)節(jié)點(diǎn)獨(dú)立的輸出,這些輸出通過(guò)映射最終節(jié)點(diǎn)表示
來(lái)實(shí)現(xiàn)盆顾,到每個(gè)節(jié)點(diǎn)v∈V的輸出
。為了處理圖級(jí)分類(lèi)您宪,他們建議創(chuàng)建一個(gè)虛擬的“超級(jí)節(jié)點(diǎn)”(dummy “super node”)奈懒,通過(guò)一種特殊的邊連接到所有其他節(jié)點(diǎn)。因此宪巨,圖級(jí)回歸或分類(lèi)可以以與節(jié)點(diǎn)級(jí)回歸或分類(lèi)相同的方式處理磷杏。
學(xué)習(xí)是通過(guò)Almeida-Pineda算法(Almeida,1990捏卓;Pineda极祸,1987)完成的,該算法通過(guò)運(yùn)行傳播到收斂怠晴,然后根據(jù)收斂解計(jì)算梯度遥金。這樣做的好處是不需要存儲(chǔ)中間狀態(tài)來(lái)計(jì)算梯度。缺點(diǎn)是必須對(duì)參數(shù)進(jìn)行約束蒜田,以便傳播步驟是收縮圖稿械。這是為了確保收斂性,但可能會(huì)限制模型的表現(xiàn)力冲粤。當(dāng)是一個(gè)神經(jīng)網(wǎng)絡(luò)時(shí)美莫,鼓勵(lì)在網(wǎng)絡(luò)雅可比矩陣(network’s Jacobian)的1-范數(shù)上使用懲罰項(xiàng)。請(qǐng)參閱附錄A中的一個(gè)示例梯捕,該示例給出了收縮圖(contraction maps)在圖中長(zhǎng)范圍傳播信息時(shí)遇到困難的直覺(jué)厢呵。
4. 門(mén)控圖神經(jīng)網(wǎng)絡(luò)(GATED GRAPH NEURAL NETWORKS)
我們現(xiàn)在描述門(mén)控圖神經(jīng)網(wǎng)絡(luò)(Gated Graph Neural Networks ,GG-NNs),我們對(duì)GNN的改變傀顾,適用于非順序輸出襟铭。我們將在下一節(jié)中描述順序輸出。GNN的最大修改是,我們使用門(mén)控循環(huán)單位(Gated Recurrent Units)(Cho等人蝌矛,2014年),將循環(huán)展開(kāi)固定數(shù)量的步驟错英,并通過(guò)時(shí)間進(jìn)行反向傳播入撒,以計(jì)算梯度。這比Almeida-Pineda算法需要更多的內(nèi)存椭岩,但它消除了約束參數(shù)以確保收斂的需要茅逮。我們還擴(kuò)展了底層表示和輸出模型。
4.1節(jié)點(diǎn)注釋(NODE ANNOTATIONS)
在GNNs中判哥,由于收縮映射(contraction map)約束確保固定點(diǎn)獨(dú)立于初始化献雅,因此在初始化節(jié)點(diǎn)表示中沒(méi)有點(diǎn)。GG-NNS不再是這樣塌计,它允許我們將節(jié)點(diǎn)標(biāo)簽作為額外的輸入挺身。為了區(qū)分這些作為輸入的節(jié)點(diǎn)標(biāo)簽和前面介紹的節(jié)點(diǎn)標(biāo)簽,我們將它們稱(chēng)為節(jié)點(diǎn)注釋?zhuān)⑹褂孟蛄?img class="math-inline" src="https://math.jianshu.com/math?formula=x" alt="x" mathimg="1">來(lái)表示這些注釋锌仅。
為了說(shuō)明如何使用節(jié)點(diǎn)注釋?zhuān)紤]一個(gè)訓(xùn)練圖神經(jīng)網(wǎng)絡(luò)的示例任務(wù)章钾,以預(yù)測(cè)是否可以從給定圖上的節(jié)點(diǎn)到達(dá)節(jié)點(diǎn)
。對(duì)于此任務(wù)热芹,有兩個(gè)與問(wèn)題相關(guān)的特殊節(jié)點(diǎn)贱傀,
和
。為了將這些節(jié)點(diǎn)標(biāo)記為特殊節(jié)點(diǎn)伊脓,我們給它們一個(gè)初始注釋府寒。第一個(gè)節(jié)點(diǎn)
獲取注釋
,第二個(gè)節(jié)點(diǎn)
獲取注釋
报腔。所有其他節(jié)點(diǎn)v的初始注釋都設(shè)置為
株搔。直觀地說(shuō),這將標(biāo)記
為第一個(gè)輸入?yún)?shù)和
為第二個(gè)輸入?yún)?shù)榄笙。然后邪狞,我們使用這些標(biāo)簽向量初始化節(jié)點(diǎn)狀態(tài)向量
,方法是將
復(fù)制到第一個(gè)維度并填充使用額外的0,允許大于注釋?zhuān)╝nnotation)大小的隱藏狀態(tài)茅撞。
在可達(dá)性示例中帆卓,傳播模型很容易學(xué)習(xí)將節(jié)點(diǎn)注釋傳播到所有可從
中訪問(wèn)的節(jié)點(diǎn),例如米丘,通過(guò)將與前向邊(forward edges)關(guān)聯(lián)的傳播矩陣(propagation matrix)在位置(0,0)設(shè)置為1剑令。這將導(dǎo)致沿前向邊復(fù)制節(jié)點(diǎn)表示的第一個(gè)維度。使用此參數(shù)設(shè)置拄查,傳播步驟將使所有可從
訪問(wèn)的節(jié)點(diǎn)的第一位節(jié)點(diǎn)表示設(shè)置為1吁津。然后,輸出步驟分類(lèi)器可以通過(guò)查看某個(gè)節(jié)點(diǎn)在其表示向量的前兩個(gè)維度中是否有非零條目,很容易地判斷該節(jié)點(diǎn)
是否可從
中訪問(wèn)碍脏。
4.2 傳播模型
傳播模型的基本循環(huán)是:(recurrence)
矩陣決定了圖中的節(jié)點(diǎn)如何相互通信梭依。A中的稀疏結(jié)構(gòu)和參數(shù)連接(parameter tying)如圖1所示。稀疏結(jié)構(gòu)對(duì)應(yīng)于圖的邊典尾,每個(gè)子矩陣中的參數(shù)由邊的類(lèi)型和方向決定役拴。
是節(jié)點(diǎn)v對(duì)應(yīng)的
和
的兩列塊。 公式1是初始化步驟钾埂,它將節(jié)點(diǎn)注釋復(fù)制到隱藏狀態(tài)的第一個(gè)組件中河闰,并用零填充其余部分。公式2是通過(guò)傳入和傳出邊在圖的不同節(jié)點(diǎn)之間傳遞信息的步驟褥紫,這些邊的參數(shù)取決于邊的類(lèi)型和方向姜性。
包含從兩個(gè)方向的邊激活。其余的是類(lèi)似GRU的更新髓考,其中包含來(lái)自其他節(jié)點(diǎn)的信息部念,以及來(lái)自上一個(gè)時(shí)間步驟的信息,以更新每個(gè)節(jié)點(diǎn)的隱藏狀態(tài)氨菇。
和
是更新和重置門(mén)印机,
是邏輯sigmoid函數(shù),并且
是元素乘法(element-wise multiplication)门驾。我們最初嘗試了一個(gè)普通的重復(fù)神經(jīng)網(wǎng)絡(luò)風(fēng)格的更新(vanilla recurrent neural network-style update)射赛,但在初步實(shí)驗(yàn)中,我們發(fā)現(xiàn)這種類(lèi)似GRU的傳播步驟更有效奶是。
4.3 輸出模型(OUTPUT MODELS)
我們希望在不同的情況下產(chǎn)生幾種類(lèi)型的一步輸出楣责。第一,GG-NNs通過(guò)為每個(gè)節(jié)點(diǎn)生成支持節(jié)點(diǎn)選擇任務(wù)
輸出節(jié)點(diǎn)得分秆麸,并在節(jié)點(diǎn)得分上應(yīng)用Softmax。其次及汉,對(duì)于圖級(jí)輸出沮趣,我們將圖級(jí)表示向量定義為:
其中充當(dāng)軟注意機(jī)制(soft attention mechanism)坷随,決定哪些節(jié)點(diǎn)與當(dāng)前圖級(jí)任務(wù)相關(guān)房铭。
和
是采用
和
連接的神經(jīng)網(wǎng)絡(luò)作為輸入和輸出實(shí)值向量。tanh函數(shù)也可以用標(biāo)識(shí)替換温眉。
5. 門(mén)控圖序列神經(jīng)網(wǎng)絡(luò)(GATED GRAPH SEQUENCE NEURAL NETWORKS)
在這里缸匪,我們描述門(mén)控圖序列神經(jīng)網(wǎng)絡(luò)(Gated Graph Sequence Neural Networks,GGS-NNs),其中幾個(gè)GG-NNs按順序操作以產(chǎn)生輸出序列类溢。
對(duì)于輸出步驟凌蔬,我們將節(jié)點(diǎn)注釋的矩陣表示為
。我們用兩個(gè)GG-NNs
和
:
來(lái)從
預(yù)測(cè)
,
從
預(yù)測(cè)
砂心。
被視為從步驟k到k+1的狀態(tài)懈词。
和
這兩個(gè)都包含一個(gè)傳播模型和一個(gè)輸出模型。在傳播模型中辩诞,我們表示節(jié)點(diǎn)向量的矩陣
輸出步驟的
傳播步驟為
和前面一樣钦睡,在步驟k中,我們?cè)O(shè)置了通過(guò) 0-extending
的每一個(gè)節(jié)點(diǎn)躁倒。模型概述如圖2所示∪髯粒或者秧秉,
和
可以共享一個(gè)傳播模型,并且只具有單獨(dú)的輸出模型衰抑。這種簡(jiǎn)單的變種更容易訓(xùn)練和評(píng)估象迎,以及在許多情況下,可以達(dá)到與完整模型相同的性能水平呛踊。但在某些情況下砾淌,
和
理想的傳播行為不一樣,這個(gè)變種可能不太管用谭网。
我們引入了一個(gè)節(jié)點(diǎn)注釋輸出模型汪厨,用于從預(yù)測(cè)
。 每個(gè)節(jié)點(diǎn)的預(yù)測(cè)都是獨(dú)立地使用一個(gè)神經(jīng)網(wǎng)絡(luò)
來(lái)完成的愉择,它將
和
的連接(concatenation)作為輸入劫乱,輸出一個(gè)實(shí)值分?jǐn)?shù)的向量:
訓(xùn)練GGS-NNs有兩種設(shè)置:指定所有中間注釋,或訓(xùn)練僅給定
锥涕、圖和目標(biāo)序列的完整模型端到端衷戈。前者可以提高我們對(duì)特定中間信息(表示在節(jié)點(diǎn)的中間狀態(tài))的領(lǐng)域知識(shí)的性能,而后者更一般层坠。我們都描述過(guò)殖妇。
帶有觀察到的注釋的序列輸出(Sequence outputs with observed annotations)
考慮到為一個(gè)圖進(jìn)行序列預(yù)測(cè)的任務(wù),其中每個(gè)預(yù)測(cè)都只是圖的一部分破花。為了確保我們準(zhǔn)確地預(yù)測(cè)圖中每個(gè)部分的輸出一次谦趣,每個(gè)節(jié)點(diǎn)都有一個(gè)位就足夠了,表明到目前為止是否已經(jīng)“解釋”了該節(jié)點(diǎn)座每。在某些設(shè)置中蔚润,少量注釋足以捕獲輸出過(guò)程的狀態(tài)。在這種情況下尺栖,我們可能希望通過(guò)指示目標(biāo)中間注釋的標(biāo)簽將此信息直接輸入到模型中嫡纠。在某些情況下,這些注釋可能是足夠的,因?yàn)槲覀兛梢远x一個(gè)模型除盏,在給定注釋的情況下叉橱,在該模型中,GG-NNs是條件獨(dú)立的者蠕。
在這種情況下窃祝,在訓(xùn)練時(shí),給出了注釋序列預(yù)測(cè)任務(wù)分解為單步預(yù)測(cè)任務(wù)踱侣,可以訓(xùn)練為單獨(dú)的GG-NNs。在測(cè)試時(shí)抡句,一個(gè)步驟中的預(yù)測(cè)注釋將用作下一個(gè)步驟的輸入探膊。這類(lèi)似于在完全觀察數(shù)據(jù)時(shí)訓(xùn)練定向圖形模型(training directed graphical models)。
序列輸出通常帶有潛在注釋?zhuān)⊿equence outputs with latent annotations)
更加一般化待榔,當(dāng)中間節(jié)點(diǎn)注釋在訓(xùn)練過(guò)程中不可用時(shí)逞壁,我們將其視為網(wǎng)絡(luò)中的隱藏單元,通過(guò)對(duì)整個(gè)序列進(jìn)行反向傳播锐锣,共同訓(xùn)練整個(gè)模型腌闯。
6. 解釋性應(yīng)用(EXPLANATORY APPLICATIONS)
在本節(jié)中,我們將給出具體說(shuō)明GGS-NNs用法的示例應(yīng)用程序雕憔。我們專(zhuān)注于選擇bAbI人工智能(AI)任務(wù)(Weston等人钠署,2015年)和兩個(gè)圖算法學(xué)習(xí)任務(wù)枢冤。
6.1 巴比任務(wù)(BABI TASKS)
BABI任務(wù)旨在測(cè)試人工智能系統(tǒng)應(yīng)該具備的推理能力(reasoning capabilities)。在BABI套件中,有20個(gè)任務(wù)測(cè)試推理的基本形式稍计,如演繹迹卢、歸納尉咕、計(jì)數(shù)和路徑查找莹弊。
我們定義了一個(gè)基本的轉(zhuǎn)換過(guò)程,將BABI任務(wù)映射到GG-NNs 或 GGS-NNs翁潘。我們使用發(fā)布的babi代碼中的--symbolic選項(xiàng)來(lái)獲取只涉及實(shí)體之間關(guān)系序列的故事趁冈,然后將其轉(zhuǎn)換為一個(gè)圖。每個(gè)實(shí)體都映射到一個(gè)節(jié)點(diǎn)拜马,并且每個(gè)關(guān)系都映射到一個(gè)邊渗勘,邊標(biāo)簽由該關(guān)系給出。整個(gè)故事(story)被消耗(consumed)并映射到一個(gè)圖俩莽。問(wèn)題在數(shù)據(jù)中以eval標(biāo)記旺坠,由問(wèn)題類(lèi)型(例如has_fear)和一些參數(shù)(例如一個(gè)或多個(gè)節(jié)點(diǎn))組成。參數(shù)轉(zhuǎn)換為初始節(jié)點(diǎn)注釋?zhuān)渲械牡趇位是第i參數(shù)節(jié)點(diǎn)的注釋向量設(shè)置為1扮超。例如取刃,如果行是
蹋肮,那么E將得到初始注釋
,A將得到
璧疗,以及所有其他節(jié)點(diǎn)v坯辩,
。問(wèn)題類(lèi)型為1(對(duì)于“>”)崩侠,輸出為類(lèi)1(對(duì)于“true”)漆魔。有些任務(wù)有多個(gè)問(wèn)題類(lèi)型,例如任務(wù)4却音,它有4個(gè)問(wèn)題類(lèi)型:E改抡、S、W系瓢、N阿纤。對(duì)于這些任務(wù),我們只需為每個(gè)任務(wù)訓(xùn)練一個(gè)單獨(dú)的GGNN八拱。在任何實(shí)驗(yàn)中,我們都不會(huì)使用強(qiáng)監(jiān)督標(biāo)簽或給GGS-NNs任何中間注釋涯塔。
雖然很簡(jiǎn)單肌稻,但這種轉(zhuǎn)換并不能保存有關(guān)故事的所有信息(例如,它丟棄輸入的時(shí)間順序)匕荸,也不容易處理三元和更高階關(guān)系(例如爹谭,昨天約翰去花園(Yesterday John went to the garden)時(shí)不容易映射到簡(jiǎn)單的邊)。我們還強(qiáng)調(diào)榛搔,將一般自然語(yǔ)言映射為符號(hào)形式是一項(xiàng)非常重要的任務(wù)诺凡,[2]因此我們不能將這種方法直接應(yīng)用于任意自然語(yǔ)言。放寬這些限制是為了將來(lái)的工作践惑。
然而腹泌,即使有了這個(gè)簡(jiǎn)單的轉(zhuǎn)換,也有各種各樣的bAbI任務(wù)可以被定義尔觉,包括任務(wù)19(路徑查找)凉袱,這無(wú)疑是最困難的任務(wù)。我們提供基線來(lái)證明符號(hào)表示對(duì)RNN或LSTM沒(méi)有顯著的幫助侦铜,并且表明GGS-NNs通過(guò)少量的訓(xùn)練實(shí)例解決了這個(gè)問(wèn)題专甩。我們還開(kāi)發(fā)了兩個(gè)新的類(lèi)似bAbI的任務(wù),包括在圖上輸出序列:最短路徑和一個(gè)簡(jiǎn)單形式的歐拉電路(在隨機(jī)連接的2-正則圖上)钉稍。這些實(shí)驗(yàn)的目的是為了說(shuō)明GGS-NNs在各種問(wèn)題上的能力涤躲。
在這里,前8行描述了事實(shí)贡未,GG-NN將使用這些事實(shí)構(gòu)建一個(gè)圖种樱。大寫(xiě)字母是節(jié)點(diǎn)蒙袍、is 和 has_fear被解釋為邊緣標(biāo)簽或邊緣類(lèi)型。最后4行是針對(duì)該輸入數(shù)據(jù)提出的4個(gè)問(wèn)題缸托。這些行中的has_fear被解釋為問(wèn)題類(lèi)型左敌。對(duì)于這個(gè)任務(wù),在每個(gè)問(wèn)題中俐镐,只有一個(gè)節(jié)點(diǎn)是特殊的矫限,例如eval b has_fear中的b,我們將單個(gè)值1分配給這個(gè)特殊節(jié)點(diǎn)的注釋向量佩抹,將0分配給所有其他節(jié)點(diǎn)叼风。
對(duì)于RNN和LSTM,數(shù)據(jù)轉(zhuǎn)換為如下令牌序列:
其中n<id>是節(jié)點(diǎn)棍苹,e<id>是邊緣无宿,q<id>是問(wèn)題類(lèi)型,添加額外的標(biāo)記eol(行尾枢里,end-of-line)和ans(應(yīng)答)孽鸡,以便RNN&LSTM訪問(wèn)數(shù)據(jù)集中的完整信息。最后一個(gè)數(shù)字是類(lèi)標(biāo)簽栏豺。
在這里彬碱,前4行描述了邊,s奥洼、n巷疼、w、e(本例中沒(méi)出現(xiàn)e)都是不同的邊類(lèi)型灵奖。最后一行是路徑問(wèn)題嚼沿,答案是方向w,s的序列瓷患,因?yàn)閺腂到A的路徑是先向西到E骡尽,然后向南到A。問(wèn)題行中的s擅编,n爆阶,w,e被視為輸出類(lèi)沙咏。
更多訓(xùn)練細(xì)節(jié): 對(duì)于本節(jié)中的所有任務(wù)辨图,我們生成1000個(gè)訓(xùn)練示例和1000個(gè)測(cè)試示例,50個(gè)訓(xùn)練示例用于驗(yàn)證肢藐。在評(píng)估模型性能時(shí)故河,對(duì)于一個(gè)示例中包含多個(gè)問(wèn)題的所有BABI任務(wù),對(duì)不同問(wèn)題的預(yù)測(cè)進(jìn)行獨(dú)立評(píng)估吆豹。由于數(shù)據(jù)集生成過(guò)程中存在隨機(jī)性鱼的,我們?yōu)槊總€(gè)任務(wù)生成了10個(gè)這樣的數(shù)據(jù)集理盆,并報(bào)告了10個(gè)數(shù)據(jù)集的評(píng)估性能的平均值和標(biāo)準(zhǔn)偏差(standard deviation)。
對(duì)于所有解釋性任務(wù)凑阶,我們從僅在50個(gè)訓(xùn)練示例訓(xùn)練不同的模型開(kāi)始猿规,逐漸將訓(xùn)練示例的數(shù)量增加到100、250宙橱、500和950(保留50個(gè)訓(xùn)練示例以供驗(yàn)證)姨俩,直到模型的測(cè)試精度達(dá)到95%或以上,Babi Standard Weston等人取得了成功(2015)师郑。對(duì)于每種方法环葵,我們報(bào)告了它需要達(dá)到95%精度的最小訓(xùn)練示例數(shù),以及它達(dá)到的訓(xùn)練示例數(shù)的精度宝冕。在所有這些情況下张遭,我們將傳播過(guò)程展開(kāi)5個(gè)步驟。對(duì)于bAbI任務(wù)4地梨,15菊卷,16,18宝剖,19洁闰,我們使用了GG-NN和節(jié)點(diǎn)向量的大小分別設(shè)為D=4,D=5诈闺,D=6渴庆,D=3铃芦,D=6雅镊。對(duì)于本節(jié)中的所有GGS-NNs,我們使用了
和
共享單個(gè)傳播模型的簡(jiǎn)單變體刃滓。對(duì)于最短路徑和歐拉電路任務(wù)(shortest path and Eulerian circuit tasks)仁烹,我們使用D = 20。所有模型都用Adam進(jìn)行了足夠長(zhǎng)的訓(xùn)練(Kingma&BA咧虎,2014年)卓缰,驗(yàn)證集用于選擇最佳模型來(lái)評(píng)估和避免過(guò)度擬合的模型。
6.1.1單步輸出(SINGLE STEP OUTPUTS)
我們選擇四個(gè)適合上述限制的BABI任務(wù)砰诵,需要單步輸出:4(兩個(gè)參數(shù)關(guān)系征唬,Two Argument Relations)、15(基本演繹茁彭,Basic Deduction)总寒、16(基本歸納,Basic Induction)和18(大小推理理肺,Size Reasoning)摄闸。對(duì)于任務(wù)4善镰、15和16,使用節(jié)點(diǎn)選擇GG-NN年枕。對(duì)于任務(wù)18炫欺,我們使用了graph level分類(lèi)版本。所有的GGNN網(wǎng)絡(luò)都包含不到600個(gè)參數(shù)[3]熏兄。
作為基線品洛,我們?cè)谠夹蛄行问降姆?hào)數(shù)據(jù)上訓(xùn)練RNN和LSTM模型。RNN和LSTM使用50維嵌入和50維隱藏層霍弹;它們預(yù)測(cè)序列末尾的單個(gè)輸出毫别,并將輸出視為分類(lèi)問(wèn)題,損失為交叉熵典格。RNN和LSTM分別包含約5K和30K參數(shù)岛宦。
測(cè)試結(jié)果見(jiàn)表1。對(duì)于所有任務(wù)耍缴,GG-NN僅使用50個(gè)訓(xùn)練示例即可達(dá)到完美的測(cè)試精度砾肺,而RNN/LSTM基線要么使用更多的訓(xùn)練示例(任務(wù)4),要么無(wú)法解決任務(wù)(任務(wù)15防嗡、16和18)变汪。
在表2中,我們進(jìn)一步分解了任務(wù)4基線的性能蚁趁,因?yàn)橛?xùn)練數(shù)據(jù)的數(shù)量不同裙盾。雖然RNN和LSTM幾乎都能完美地解決這一任務(wù),但GGNN的數(shù)據(jù)量卻少得多他嫡,精度達(dá)到100%番官。
5.1.2 順序輸出(SEQUENTIAL OUTPUTS)
bAbI任務(wù)19(尋徑,Path Finding)可以說(shuō)是所有bAbI任務(wù)中最困難的任務(wù)(參見(jiàn)例如(Sukhbaatar等人钢属,2015年)徘熔,該任務(wù)報(bào)告了所有不使用強(qiáng)監(jiān)督的方法的精確度低于20%。我們將一個(gè)GGS-NN應(yīng)用于這個(gè)問(wèn)題淆党,再次應(yīng)用于數(shù)據(jù)的符號(hào)形式(因此結(jié)果與(Sukhbaatar等人酷师,2015)中的結(jié)果不可比較)。在每個(gè)輸出序列的末尾添加一個(gè)額外的“end”類(lèi)染乌;在測(cè)試時(shí)山孔,網(wǎng)絡(luò)將繼續(xù)進(jìn)行預(yù)測(cè),直到預(yù)測(cè)“end”類(lèi)為止荷憋。
表3給出了此任務(wù)的結(jié)果台颠。RNN和LSTM都無(wú)法完成此任務(wù)。然而台谊,只有50個(gè)訓(xùn)練實(shí)例蓉媳,我們的GGS-NNs比RNN和LSTM獲得更好的測(cè)試精度譬挚。
5.2 學(xué)習(xí)圖算法(LEARNING GRAPH ALGORITHMS)
我們進(jìn)一步開(kāi)發(fā)了兩個(gè)新的基于圖上算法問(wèn)題的類(lèi)bAbI任務(wù):最短路徑和歐拉電路。首先酪呻,我們生成隨機(jī)圖减宣,并生成一個(gè)列出圖中所有邊的故事。問(wèn)題來(lái)自于選擇兩個(gè)隨機(jī)節(jié)點(diǎn)A和B玩荠,請(qǐng)求連接兩個(gè)選定節(jié)點(diǎn)的最短路徑(表示為節(jié)點(diǎn)序列)漆腌。我們將數(shù)據(jù)生成限制為只生成長(zhǎng)度至少為2的從A到B的唯一最短路徑的問(wèn)題。對(duì)于歐拉電路阶冈,我們生成一個(gè)隨機(jī)的兩個(gè)正則(two-regular)連通圖和一個(gè)單獨(dú)的隨機(jī)分心圖(separate random distractor graph)闷尿。問(wèn)題給出兩個(gè)節(jié)點(diǎn)A和B并啟動(dòng)電路,然后問(wèn)題是返回給定子圖上的歐拉電路(再次表示為一系列節(jié)點(diǎn))女坑,該子圖從A到B開(kāi)始填具。結(jié)果如表3所示。RNN和LSTM在這兩項(xiàng)任務(wù)上都失敗了匆骗,但GGS-NNs只學(xué)習(xí)使用50個(gè)訓(xùn)練示例做出完美的預(yù)測(cè)劳景。
6 用GGS-NNS進(jìn)行程序驗(yàn)證(PROGRAM VERIFICATION WITH GGS-NNS)
我們?cè)贕GS NNS上的工作是由程序驗(yàn)證中的實(shí)際應(yīng)用所推動(dòng)的。程序自動(dòng)驗(yàn)證的一個(gè)關(guān)鍵步驟是程序不變量的推導(dǎo)碉就,它近似于執(zhí)行過(guò)程中可達(dá)到的程序狀態(tài)集盟广。尋找數(shù)據(jù)結(jié)構(gòu)的不變量是一個(gè)開(kāi)放的問(wèn)題。例如瓮钥,考慮右邊的簡(jiǎn)單C函數(shù)筋量。
為了證明這個(gè)程序確實(shí)連接了兩個(gè)列表A和B,并且所有指針引用都是有效的碉熄,我們需要(在數(shù)學(xué)上)在循環(huán)的每次迭代中描述程序的堆桨武。為此,我們使用分離邏輯(O'hearn等人具被,2001玻募;Reynolds只损,2002)一姿,它使用歸納謂詞來(lái)描述抽象數(shù)據(jù)結(jié)構(gòu)。例如跃惫,列表
Segment被定義為ls(x叮叹,y)x=y v,n.ls(n爆存,y)x→7 val:v蛉顽,next:n,其中7→val:v先较,next:n表示指向一個(gè)內(nèi)存區(qū)域携冤,該區(qū)域包含一個(gè)具有val的結(jié)構(gòu)以及值依次為和的下一個(gè)字段悼粮。在布爾邏輯中,connective是一個(gè)與連詞曾棕,但它還要求其運(yùn)算符引用堆的“單獨(dú)”部分扣猫。因此,ls(cur null)意味著cur要么為空翘地,要么指向堆上的兩個(gè)值申尤,在這里由ls再次描述。公式t.ls(acur)ls(curnull)ls(b)是循環(huán)的不變量(即衙耕,在進(jìn)入循環(huán)時(shí)和每次迭代后保持不變)昧穿。使用它,我們可以證明沒(méi)有程序運(yùn)行會(huì)因?yàn)槿∠靡粋€(gè)未分配的內(nèi)存地址(這個(gè)屬性稱(chēng)為內(nèi)存安全)而失敗橙喘,并且該函數(shù)確實(shí)使用一個(gè)霍爾風(fēng)格的驗(yàn)證方案連接了兩個(gè)列表(霍爾时鸵,1969)。XXVn,V厅瞎,Nn,,t
這個(gè)過(guò)程中最困難的部分是提出描述數(shù)據(jù)結(jié)構(gòu)的公式寥枝,這就是我們建議使用機(jī)器學(xué)習(xí)的地方。給定一個(gè)程序磁奖,我們運(yùn)行它幾次囊拜,然后在相關(guān)的程序位置提取內(nèi)存狀態(tài)(以圖形表示;見(jiàn)下文)比搭,然后預(yù)測(cè)分離邏輯公式冠跷。靜態(tài)程序分析工具(例如(Piskac等人,2014))可以檢查候選公式是否足以證明所需的屬性(例如身诺,內(nèi)存安全)蜜托。
6.1形式化
將堆狀態(tài)表示為一個(gè)圖作為輸入,我們考慮了表示程序堆的有向霉赡、可能是循環(huán)圖橄务。這些圖可以從程序的內(nèi)存狀態(tài)自動(dòng)構(gòu)建。每個(gè)圖節(jié)點(diǎn)對(duì)應(yīng)于內(nèi)存中存儲(chǔ)一系列指針的地址(我們?cè)谶@項(xiàng)工作中忽略非指針值)穴亏。圖邊緣反映這些指針值蜂挪,即,有標(biāo)記為0嗓化,…棠涮,k的邊緣分別指向節(jié)點(diǎn)。節(jié)點(diǎn)的一個(gè)子集被標(biāo)記為對(duì)應(yīng)于程序變量刺覆。VV0严肪,…,vkVV0,…驳糯,vk
示例輸入圖在圖3中顯示為“輸入”篇梭。其中,節(jié)點(diǎn)ID(即內(nèi)存地址)顯示在節(jié)點(diǎn)中酝枢。邊緣標(biāo)簽對(duì)應(yīng)于程序中的特定字段很洋,例如,本例中的0對(duì)應(yīng)于上一節(jié)中示例函數(shù)中的下一個(gè)指針隧枫。對(duì)于二叉樹(shù)喉磁,還有兩種指向樹(shù)節(jié)點(diǎn)的左、右子級(jí)的指針類(lèi)型官脓。
輸出表示我們的目標(biāo)是用數(shù)學(xué)方法描述堆的形狀协怒。在我們的模型中,我們將自己局限于分離邏輯的語(yǔ)法限制版本卑笨,其中公式的形式為x1孕暇,…,xn.a1……am赤兴,其中每個(gè)原子式為ls(x妖滔,y)(從到的列表)、tree(x)(從中開(kāi)始的二進(jìn)制樹(shù))或none(x)(在處沒(méi)有數(shù)據(jù)結(jié)構(gòu))桶良。存在量詞用于為堆節(jié)點(diǎn)命名座舍,這些節(jié)點(diǎn)需要描述形狀,但不由程序變量標(biāo)記陨帆。例如曲秉,要描述“panhandle list”(以循環(huán)結(jié)尾的列表),需要命名循環(huán)中的第一個(gè)列表元素疲牵。在分離邏輯中承二,這可以表示為t.ls(x,t)ls(t纲爸,t)亥鸠。人工智能XYXX
我們可以為這個(gè)問(wèn)題生成合成(標(biāo)記)數(shù)據(jù)集。為此识啦,我們修復(fù)了一組謂詞负蚊,如ls和tree(擴(kuò)展可以考慮雙鏈接列表段、多樹(shù))袁滥,以及它們的歸納定義盖桥。然后灾螃,我們使用一組給定的程序變量枚舉實(shí)例化謂詞的分離邏輯公式题翻。最后,對(duì)于每個(gè)公式,我們枚舉滿足該公式的堆圖嵌赠。結(jié)果是一個(gè)由堆圖對(duì)和我們的學(xué)習(xí)過(guò)程使用的關(guān)聯(lián)公式組成的數(shù)據(jù)集塑荒。...
6.2作為GGS-NNS的配方
從數(shù)據(jù)生成過(guò)程中很容易得到中間預(yù)測(cè)步驟的節(jié)點(diǎn)注釋。因此姜挺,我們用觀察到的注釋?zhuān)ㄔ谟?xùn)練時(shí)觀察到的齿税,而不是測(cè)試時(shí)觀察到的)來(lái)訓(xùn)練ggs-nn的變體,以從堆圖推斷公式炊豪。注意凌箕,也可以使用未觀察到的集氣站。-
神經(jīng)網(wǎng)絡(luò)變種和做端到端學(xué)習(xí)词渤。該過(guò)程將分離邏輯公式的生成分解為一系列步驟牵舱。我們首先決定是否聲明存在變量,如果是缺虐,選擇與變量對(duì)應(yīng)的節(jié)點(diǎn)芜壁。一旦聲明了存在主義,我們將遍歷所有變量名高氮,并生成一個(gè)分離邏輯公式慧妄,描述與當(dāng)前變量對(duì)應(yīng)的節(jié)點(diǎn)上的根數(shù)據(jù)結(jié)構(gòu)。
下面是預(yù)測(cè)分離邏輯公式的完整算法alg剪芍。1塞淹。我們使用三個(gè)顯式節(jié)點(diǎn)注釋?zhuān)疵ㄓ沙绦蜃兞繕?biāo)記的堆節(jié)點(diǎn)或聲明的存在量化變量)、活動(dòng)(參見(jiàn)算法)和解釋?zhuān)ǘ压?jié)點(diǎn)是已經(jīng)預(yù)測(cè)的數(shù)據(jù)結(jié)構(gòu)的一部分)罪裹。初始節(jié)點(diǎn)標(biāo)簽可以直接從輸入圖中計(jì)算出來(lái):“isnamed”是打開(kāi)的窖铡,對(duì)于由程序變量標(biāo)記的節(jié)點(diǎn),“active”和“is explained”總是關(guān)閉的(在第2行中完成)坊谁。算法中的注釋行使用gg-nn實(shí)現(xiàn)费彼,即alg。1是我們的ggs-nn模型的一個(gè)實(shí)例口芍。圖3顯示了算法運(yùn)行的開(kāi)始箍铲,其中每個(gè)步驟與算法的一行相關(guān)。
6.3模型設(shè)置詳細(xì)信息
我們使用完整的GGS-NN模型鬓椭,其中和f有單獨(dú)的傳播模型颠猴。對(duì)于ggs-nn管道中的所有g(shù)g-nn組件,我們將傳播過(guò)程展開(kāi)10個(gè)時(shí)間步驟小染。與步驟(?)相關(guān)的ggs nns(決定是否需要聲明更為存在量化的變量)和()(確定需要聲明為存在量化的節(jié)點(diǎn))使用=16維節(jié)點(diǎn)表示翘瓮。對(duì)于所有其他GGS-NN組件,使用=8裤翩。Adam(Kingma&BA资盅,2014)用于優(yōu)化,模型在20個(gè)圖形的小批量上進(jìn)行訓(xùn)練,并進(jìn)行優(yōu)化呵扛,直到訓(xùn)練誤差非常低每庆。對(duì)于圖級(jí)分類(lèi)任務(wù),我們還人為地平衡了類(lèi)今穿,使每個(gè)小批量中每個(gè)類(lèi)的示例數(shù)相等缤灵。所有的GGS-NN組件包含的參數(shù)都小于5K,并且在訓(xùn)練過(guò)程中沒(méi)有觀察到過(guò)擬合蓝晒。X(k)DD
6.4批次預(yù)測(cè)詳情
在實(shí)踐中腮出,將給出一組堆圖作為輸入,并期望單個(gè)輸出公式描述所有輸入圖并與之一致芝薇。不同的堆圖可以是程序執(zhí)行過(guò)程中不同點(diǎn)的堆狀態(tài)快照利诺,也可以是具有不同輸入的同一程序的不同運(yùn)行。我們稱(chēng)之為“批量預(yù)測(cè)”設(shè)置剩燥,與本文描述的單圖預(yù)測(cè)相比慢逾。
為了進(jìn)行批處理預(yù)測(cè),我們同時(shí)為每個(gè)圖運(yùn)行一個(gè)ggs-nn灭红。對(duì)于每一個(gè)預(yù)測(cè)步驟侣滩,該步驟中的所有g(shù)gs nns的輸出在一批圖中進(jìn)行聚合。
對(duì)于節(jié)點(diǎn)選擇輸出变擒,公共命名變量將不同圖形上的節(jié)點(diǎn)鏈接到一起君珠,這是在一批中聚合預(yù)測(cè)的關(guān)鍵。我們計(jì)算特定命名變量的得分娇斑,其中vg(t)映射變量名T對(duì)于圖中的節(jié)點(diǎn)策添,是已命名變量的輸出分?jǐn)?shù)T在圖表中。當(dāng)對(duì)所有使用as分?jǐn)?shù)的名稱(chēng)應(yīng)用SoftMax時(shí)毫缆,這相當(dāng)于計(jì)算(Toselect=t)=q(Toselect=vg(t))的模型唯竹。GOT磷G前列腺素
對(duì)于圖級(jí)分類(lèi)輸出,我們將一批圖中特定類(lèi)的分?jǐn)?shù)相加苦丁,或者等價(jià)地計(jì)算(class=k)=q(class=k)浸颓。節(jié)點(diǎn)注釋輸出會(huì)獨(dú)立地為每個(gè)圖更新,因?yàn)椴煌膱D具有完全不同的節(jié)點(diǎn)集旺拉。但是产上,當(dāng)算法嘗試更新一個(gè)命名變量的注釋時(shí),所有圖中與該變量關(guān)聯(lián)的節(jié)點(diǎn)都會(huì)更新蛾狗。在培訓(xùn)過(guò)程中晋涣,中間步驟的所有標(biāo)簽都可以從數(shù)據(jù)生成過(guò)程中獲得,因此培訓(xùn)過(guò)程可以再次分解為單輸出單圖培訓(xùn)沉桌。磷G前列腺素
Brockschmidt等人討論了允許嵌套數(shù)據(jù)結(jié)構(gòu)(例如列表列表)的更復(fù)雜的方案谢鹊。(2015)算吩。我們還成功地將ggs-nn模型擴(kuò)展到了這個(gè)案例中。更多有關(guān)這方面的詳細(xì)信息撇贺,請(qǐng)參見(jiàn)附錄C赌莺。
6.5實(shí)驗(yàn)冰抢。
在本文中松嘶,我們生成了一個(gè)包含三個(gè)程序變量的327個(gè)公式的數(shù)據(jù)集,每個(gè)公式有498個(gè)圖挎扰,產(chǎn)生了大約160000個(gè)公式/堆圖組合翠订。為了進(jìn)行評(píng)估,我們使用對(duì)公式(即遵倦,測(cè)試集中的公式不在培訓(xùn)集中)的6:2:2分割尽超,將數(shù)據(jù)分割為培訓(xùn)、驗(yàn)證和測(cè)試集梧躺。我們通過(guò)測(cè)試時(shí)預(yù)測(cè)的公式是否在邏輯上等同于基本真理來(lái)衡量正確性似谁;通過(guò)規(guī)范化公式的名稱(chēng)和順序來(lái)近似等效,然后進(jìn)行精確的相等比較掠哥。
我們將我們基于GGS神經(jīng)網(wǎng)絡(luò)的模型與之前開(kāi)發(fā)的方法進(jìn)行了比較(Brockschmidt等人巩踏,2015)。早期的方法將每個(gè)預(yù)測(cè)步驟視為標(biāo)準(zhǔn)分類(lèi)续搀,并且需要復(fù)雜的塞琼、手動(dòng)的、特定于問(wèn)題的特征工程禁舷,以達(dá)到89.11%的精度彪杉。相比之下,我們的新模型在沒(méi)有特征工程和很少的領(lǐng)域知識(shí)的情況下進(jìn)行了培訓(xùn)牵咙,獲得了89.96%的準(zhǔn)確率派近。
我們的ggs-nn模型發(fā)現(xiàn)的一個(gè)示例堆圖和相應(yīng)的分離邏輯公式如圖4所示。此示例還涉及嵌套數(shù)據(jù)結(jié)構(gòu)和上一節(jié)中開(kāi)發(fā)的批處理擴(kuò)展洁桌。
我們還成功地在程序驗(yàn)證框架中使用了我們的新模型构哺,為定理證明器提供了所需的程序不變量,以證明插入排序等列表操作算法集合的正確性战坤。下表4列出了一組基準(zhǔn)列表操作程序和由GGS-NN模型發(fā)現(xiàn)的分離邏輯公式不變量曙强,并成功地在驗(yàn)證框架中使用,以證明相應(yīng)程序的正確性途茫。
當(dāng)前管道的進(jìn)一步擴(kuò)展已經(jīng)證明能夠成功地證明更復(fù)雜的程序碟嘴,如排序程序和各種其他列表操作程序。
8 相關(guān)工作
最密切相關(guān)的工作是GNN囊卜,我們已經(jīng)在上面詳細(xì)討論過(guò)娜扇。Micheli(2009)提出了另一個(gè)密切相關(guān)的模型错沃,主要在輸出模型上與GNN不同。GNN已應(yīng)用于多個(gè)領(lǐng)域(Gori等人雀瓢,2005年枢析;Di-Massa等人,2006年刃麸;Scarselli等人醒叁,2009年;Uwents等人泊业,2011年)把沼,但它們似乎并未在ICLR社區(qū)中廣泛使用。我們?cè)谶@里的部分目的是宣傳GNN作為一個(gè)有用和有趣的神經(jīng)網(wǎng)絡(luò)變體吁伺。
我們從GNN到GG NNS的適應(yīng)饮睬,到Domke(2011)和Stoyanov等人的工作,可以得出一個(gè)類(lèi)比篮奄。(2011)在結(jié)構(gòu)化預(yù)測(cè)設(shè)置中捆愁。其中信念傳播(必須運(yùn)行到接近收斂以獲得良好的梯度)被截?cái)嘈拍顐鞑ジ滤〈缓髮?duì)模型進(jìn)行訓(xùn)練窟却,使截?cái)嗟诠潭ǖ牡螖?shù)后產(chǎn)生良好的結(jié)果昼丑。同樣,遞歸神經(jīng)網(wǎng)絡(luò)(Goller&Kuchler间校,1996矾克;Socher等人,2011)被擴(kuò)展到樹(shù)LSTMS(Tai等人憔足,2015)類(lèi)似于我們?cè)贕G NNS中使用GRU更新胁附,而不是標(biāo)準(zhǔn)的GNN重復(fù),目的是改善圖結(jié)構(gòu)中信息的長(zhǎng)期傳播滓彰。
本文所表達(dá)的將特定問(wèn)題的神經(jīng)網(wǎng)絡(luò)組裝成學(xué)習(xí)組件的一般思想有著悠久的歷史控妻,至少可以追溯到Hinton(1988)為預(yù)測(cè)人與人之間的關(guān)系而根據(jù)家族樹(shù)結(jié)構(gòu)組裝神經(jīng)網(wǎng)絡(luò)的工作。類(lèi)似的想法出現(xiàn)在Hammer&Jain(2004)和Bottou(2014)中揭绑。
圖形內(nèi)核(Shervashidze et al.弓候,2011;Kashima et al.他匪,2003)可用于具有圖形結(jié)構(gòu)輸入的各種基于內(nèi)核的學(xué)習(xí)任務(wù)菇存,但我們不知道學(xué)習(xí)內(nèi)核和輸出序列的工作。PeloZi等人邦蜜。(2014)通過(guò)在圖上隨機(jī)遍歷將圖轉(zhuǎn)換為序列依鸥,然后使用基于序列的方法學(xué)習(xí)節(jié)點(diǎn)嵌入。Sperduti&Starita(1997)將圖形映射到圖形向量悼沈,然后使用輸出神經(jīng)網(wǎng)絡(luò)進(jìn)行分類(lèi)贱迟。有幾個(gè)模型利用了圖結(jié)構(gòu)上節(jié)點(diǎn)表示的類(lèi)似傳播姐扮。布魯納等。(2013)將卷積推廣到圖結(jié)構(gòu)衣吠。他們的工作和GNN之間的區(qū)別類(lèi)似于卷積網(wǎng)絡(luò)和循環(huán)網(wǎng)絡(luò)之間的區(qū)別茶敏。Duvenaud等人(2015)還考慮對(duì)圖進(jìn)行卷積樣運(yùn)算,構(gòu)建一個(gè)成功的圖特征的可學(xué)習(xí)缚俏、可微變量惊搏。盧西等人。(2013)將任意無(wú)向圖轉(zhuǎn)換為具有不同方向的多個(gè)不同DAG袍榆,然后向每個(gè)根向內(nèi)傳播節(jié)點(diǎn)表示胀屿,訓(xùn)練一組模型塘揣。在上述所有問(wèn)題中包雀,重點(diǎn)都是一步到位的問(wèn)題。
GNN和我們的擴(kuò)展具有許多與指針網(wǎng)絡(luò)相同的理想屬性(Vinyals等人亲铡,2015年);當(dāng)使用節(jié)點(diǎn)選擇輸出層時(shí),可以選擇輸入節(jié)點(diǎn)作為輸出缨历。有兩個(gè)主要的區(qū)別:第一揪罕,在GNN中,圖結(jié)構(gòu)是顯式的吆鹤,這使得模型不那么一般厨疙,但可以提供更強(qiáng)的泛化能力;第二疑务,指針網(wǎng)絡(luò)要求每個(gè)節(jié)點(diǎn)都有屬性(例如沾凄,空間中的位置),而GNN可以表示僅由它們?cè)趫D中的位置定義的節(jié)點(diǎn)知允,這是M使它們?cè)诓煌木S度上更加通用撒蟀。
GGS nns與軟對(duì)準(zhǔn)和注意力模型有關(guān)(例如,Bahdanau等人(2014年)温鸽;Kumar等人(2015年)保屯;Sukhbaatar等人(2015))在兩個(gè)方面:第一,等式7中的圖表示使用上下文來(lái)關(guān)注哪些節(jié)點(diǎn)對(duì)當(dāng)前決策很重要涤垫;第二姑尺,程序驗(yàn)證示例中的節(jié)點(diǎn)注釋跟蹤到目前為止解釋過(guò)哪些節(jié)點(diǎn),這為確保輸入中的每個(gè)節(jié)點(diǎn)用于產(chǎn)生輸出的序列蝠猬。
9 討論
9.1 正在學(xué)習(xí)什么切蟋?(What is being learned?)
考慮到GG-NNs正在學(xué)習(xí)的,這是有指導(dǎo)意義的吱雏。要做到這一點(diǎn)敦姻,我們可以在babi任務(wù)15如何通過(guò)邏輯公式來(lái)解決之間進(jìn)行類(lèi)比瘾境。舉個(gè)例子,假設(shè)有一個(gè)子集需要回答右邊的一個(gè)例子镰惦。
要進(jìn)行邏輯推理(logical reasoning)迷守,我們不僅需要對(duì)故事中的事實(shí)進(jìn)行邏輯編碼,還需要將背景世界知識(shí)編碼為推理規(guī)則旺入,例如 :
我們對(duì)任務(wù)的編碼簡(jiǎn)化了將故事解析為圖形式兑凿,但它不提供任何背景知識(shí)。GG-NN模型可以看作是學(xué)習(xí)這一點(diǎn)茵瘾,結(jié)果存儲(chǔ)在神經(jīng)網(wǎng)絡(luò)權(quán)重中礼华。
9.2 討論:
本文的結(jié)果表明,在一系列問(wèn)題上拗秘,GGS NNS具有理想的誘導(dǎo)偏差圣絮,這些問(wèn)題具有一些內(nèi)在的圖結(jié)構(gòu),我們相信在更多的情況下雕旨,GGS NNS將是有用的扮匠。然而,為了使其更廣泛地應(yīng)用凡涩,還需要克服一些限制棒搜。我們前面提到的兩個(gè)限制是babi任務(wù)轉(zhuǎn)換不包含輸入的時(shí)間順序或三元和更高階關(guān)系。我們可以想象解除這些限制的幾種可能性活箕,例如連接一系列的gg nns力麸,其中每個(gè)邊有一個(gè)gg nns,并將高階關(guān)系表示為因子圖育韩。更重要的挑戰(zhàn)是如何處理不太結(jié)構(gòu)化的輸入表示克蚂。例如,在babi任務(wù)中座慰,最好不要使用輸入的符號(hào)形式陨舱。一種可能的方法是在我們的GGS NNS中加入較少的結(jié)構(gòu)化輸入和潛在向量。然而版仔,需要實(shí)驗(yàn)來(lái)找到解決這些問(wèn)題的最佳方法游盲。
當(dāng)前的GGS NNS公式僅在所有事實(shí)都被消耗掉之后才指定一個(gè)問(wèn)題。這意味著網(wǎng)絡(luò)必須嘗試派生所見(jiàn)事實(shí)的所有后果蛮粮,并將所有相關(guān)信息存儲(chǔ)到節(jié)點(diǎn)表示中的節(jié)點(diǎn)益缎。這可能不理想;最好開(kāi)發(fā)將問(wèn)題作為初始輸入的方法然想,然后動(dòng)態(tài)地派生出回答問(wèn)題所需的事實(shí)莺奔。
我們對(duì)ggs-nns的進(jìn)一步應(yīng)用持樂(lè)觀態(tài)度。我們特別感興趣的是繼續(xù)開(kāi)發(fā)端到端的可學(xué)習(xí)系統(tǒng)变泄,該系統(tǒng)可以學(xué)習(xí)程序的語(yǔ)義特性令哟,可以學(xué)習(xí)更復(fù)雜的圖形算法恼琼,并將這些思想應(yīng)用于需要對(duì)知識(shí)庫(kù)和數(shù)據(jù)庫(kù)進(jìn)行推理的問(wèn)題。更一般地說(shuō)屏富,我們認(rèn)為這些圖神經(jīng)網(wǎng)絡(luò)代表著朝著一個(gè)模型邁進(jìn)的一步晴竞,該模型可以將結(jié)構(gòu)化表示與強(qiáng)大的深度學(xué)習(xí)算法相結(jié)合,目的是在學(xué)習(xí)和推斷如何推理和擴(kuò)展這些表示的同時(shí)狠半,利用已知的結(jié)構(gòu)噩死。
參考資料
[1] Graph-to-Sequence Learning using Gated Graph Neural Networks
[2] 論文筆記:GGNN (門(mén)控圖神經(jīng)網(wǎng)絡(luò)) 非常好,原理講的很詳細(xì)
[3] 《GATED GRAPH SEQUENCE NEURAL NETWORKS》結(jié)合代碼的論文閱讀筆記
[4] 【筆記】GATED GRAPH SEQUENCE NEURAL NETWORKS
[5] 深度學(xué)習(xí)基礎(chǔ):RNN神年、LSTM和GRU
[6] GRU神經(jīng)網(wǎng)絡(luò)
代碼
[1] microsoft/gated-graph-neural-network-samples
[2] yujiali/ggnn
[3] calebmah/ggnn.pytorch