可擴(kuò)展的圖神經(jīng)結(jié)構(gòu)搜索系統(tǒng)

一、問(wèn)題
1、圖數(shù)據(jù)

在現(xiàn)實(shí)生活中,很多的數(shù)據(jù)都是以圖的形式存在,像社交網(wǎng)絡(luò),知識(shí)譜藥物和新材料等,圖神經(jīng)網(wǎng)絡(luò)也被廣泛的應(yīng)用于多個(gè)場(chǎng)景,如推薦系統(tǒng),異常檢測(cè),藥物以及蛋白質(zhì)結(jié)構(gòu)預(yù)測(cè)等。
首先我們來(lái)對(duì)最常見(jiàn)圖卷積神經(jīng)網(wǎng)絡(luò)做一個(gè)簡(jiǎn)單的回顧,從公式上來(lái)看,GCN 的表達(dá)形式與傳統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)區(qū)別在于多了含自環(huán)的度矩陣和鄰接矩陣,也就是增加了聚合鄰居節(jié)點(diǎn)特征的一個(gè)過(guò)程。因此在 GCN 的每一層包含兩個(gè)操作,propagation 操作用來(lái)聚合鄰居的信息,transformation 操作用來(lái)做變換。如果公式中的 A 矩陣是單位矩陣或者刪去圖里所有的邊,那么GCN 此時(shí)就退化成了 MLP。
2、圖神經(jīng)網(wǎng)絡(luò)

GCN 的性能優(yōu)于 MLP 主要是由于使用了消息傳播機(jī)制,聚合來(lái)自于高階領(lǐng)域的信息,從而增強(qiáng)了自身的表達(dá)能力。目前除了常見(jiàn)的圖卷積神經(jīng)網(wǎng)絡(luò)之外,還有圖注意網(wǎng)絡(luò)(GAT, Graph Attention Network),引入了注意力機(jī)制,給每個(gè)鄰居節(jié)點(diǎn)分配不同權(quán)重,從而優(yōu)化聚合鄰居節(jié)點(diǎn)的表達(dá)形式;GraphSAGE 使用歸納式學(xué)習(xí),以 mini batch 進(jìn)行訓(xùn)練,能進(jìn)一步擴(kuò)展應(yīng)用到較大的圖數(shù)據(jù)集。
3、Neural Message Passing(消息傳遞機(jī)制)

傳統(tǒng)的 GNN 都遵循消息傳遞機(jī)制的范式,而這種機(jī)制主要分為兩部分:通信+計(jì)算。當(dāng)神經(jīng)網(wǎng)絡(luò)去聚合鄰居節(jié)點(diǎn)的信息的時(shí)候,就涉及到了通信的問(wèn)題。計(jì)算就是利用聚合到的信息去更新節(jié)點(diǎn),這一部分在各種神經(jīng)網(wǎng)絡(luò)中都是必不可少的,圖神經(jīng)網(wǎng)絡(luò)也不例外。這里重點(diǎn)在于通信的過(guò)程。
在工業(yè)界的場(chǎng)景下,數(shù)據(jù)的規(guī)模都是比較龐大的,我們會(huì)采用分布式的方法去部署和訓(xùn)練節(jié)點(diǎn)。當(dāng)一個(gè)節(jié)點(diǎn)和它的鄰居節(jié)點(diǎn)沒(méi)有部署在同一臺(tái)機(jī)器上,做聚合信息的操作時(shí)就需要去拉取另一臺(tái)機(jī)器上的鄰居節(jié)點(diǎn)的信息,就這涉及到了通信開(kāi)銷,特別是在帶寬不好的情況下,通信開(kāi)銷將會(huì)很大。圖神經(jīng)網(wǎng)絡(luò)每一層都需要做這種拉取,同時(shí)在大規(guī)模的圖數(shù)據(jù)上,每一個(gè) epoch,即每一次訓(xùn)練,也會(huì)存在很高的通信開(kāi)銷。
4、GNN 系統(tǒng)

雖然消息傳播機(jī)制具有如上的弊端,但是目前大部分的 GNN 系統(tǒng)還是默認(rèn)去使用這一機(jī)制,比如最常用的 DGL 和 PyG,以兼容更多的模型。
在工業(yè)界,大規(guī)模的圖數(shù)據(jù)處理會(huì)帶來(lái)一系列挑戰(zhàn):
首先就是較高的建模門檻。當(dāng)接到一個(gè)任務(wù)后,我們需要進(jìn)行建模,即編寫對(duì)應(yīng)的代碼,設(shè)計(jì)一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)。在這個(gè)過(guò)程中會(huì)涉及到手動(dòng)調(diào)參,更新訓(xùn)練過(guò)程及參數(shù)進(jìn)行驗(yàn)證。這個(gè)過(guò)程事實(shí)上有很高的門檻,同時(shí)也非常耗時(shí),使用大規(guī)模的圖數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)甚至?xí)枰粌商斓臅r(shí)間,在沒(méi)有先驗(yàn)知識(shí)的情況下,調(diào)參的過(guò)程會(huì)非常緩慢,因此針對(duì)任務(wù)設(shè)計(jì) GNN 就需要知識(shí)豐富的專家。
另一個(gè)挑戰(zhàn)就是低可擴(kuò)展性,正如前面提到,在分布式上部署會(huì)有很大的通信開(kāi)銷,事實(shí)上在單機(jī)上的計(jì)算開(kāi)銷也很大,這就導(dǎo)致了很高的模型訓(xùn)練時(shí)間和預(yù)測(cè)時(shí)間。后續(xù)會(huì)有實(shí)驗(yàn)結(jié)果進(jìn)行進(jìn)一步的說(shuō)明。
5、瓶頸

為了更加直觀理解通信瓶頸,這里做了一個(gè)簡(jiǎn)單的實(shí)驗(yàn)。
受制于單機(jī)的存儲(chǔ)和分布式通訊開(kāi)銷,現(xiàn)有的消息傳遞機(jī)制不能很好的傳播到大圖上。圖 a 是我們使用 2 層的 GraphSAGE 訓(xùn)練 Reddit 上的一個(gè)數(shù)據(jù)集,橫坐標(biāo)為機(jī)器數(shù)量,縱坐標(biāo)是加速比,可以看到在增加更多機(jī)器時(shí)候,加速比增長(zhǎng)并不明顯,甚至在機(jī)器從 2 個(gè)增加到 8 個(gè)時(shí),加速比甚至沒(méi)有增加到 2 倍。圖 b 分析了這種情況的原因,即使增加機(jī)器后計(jì)算成本減小,更多的拉取數(shù)據(jù)操作使得通信開(kāi)銷增大,因此加速比的增加并不明顯。
因此,我們的目標(biāo)就是去如何兼容 GNN 的可擴(kuò)展性,設(shè)計(jì)使用門檻低的圖神經(jīng)網(wǎng)絡(luò)系統(tǒng)。
二、方法
1、系統(tǒng)目標(biāo)

我們的 PaSca 自動(dòng)搜索系統(tǒng)是一個(gè)端對(duì)端的設(shè)計(jì),不需要取人為定義網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練流程,只需要輸入圖數(shù)據(jù)和優(yōu)化目標(biāo),就可以輸出能兼顧多個(gè)優(yōu)化目標(biāo)的可擴(kuò)展性 GNN,同。輸入的圖數(shù)據(jù)可以是特征標(biāo)簽、圖結(jié)構(gòu)矩陣,優(yōu)化目標(biāo)包括學(xué)術(shù)界常應(yīng)用的分類性能指標(biāo),如準(zhǔn)確率,AUC 等,同時(shí)還可以包括一些其他的約束,比如期望的訓(xùn)練時(shí)長(zhǎng),期望使用的機(jī)器內(nèi)存,從而達(dá)到控制預(yù)算的效果。也就是說(shuō),我們的系統(tǒng)可以考慮到與硬件相關(guān)的多個(gè)優(yōu)化指標(biāo),在多個(gè)目標(biāo)的約束下去完成多目標(biāo)的搜索。
2、消息傳遞(Message Passing)范式

從數(shù)據(jù)流動(dòng)的角度來(lái)看,GCN 遵從消息傳遞范式,它主要是從粒度較細(xì)的節(jié)點(diǎn)層次來(lái)刻畫數(shù)據(jù)的流動(dòng),主要由 3 個(gè)操作組成:message function 定義如何去生成信息,對(duì)應(yīng)表達(dá)式中的度矩陣和鄰接矩陣;aggregation function 定義如何去聚合鄰居節(jié)點(diǎn)信息;update function定 義更新中心節(jié)點(diǎn)特征的方式,它遵從不斷地去迭代“聚合-更新”這一流程。
3、SGAP 建模范式(Scalable Graph Neural Architecture Paradigm)
(1)方法概覽

針對(duì)消息傳播機(jī)制的范式的弊端,我們提出了一種新的可擴(kuò)展性的訓(xùn)練流程的抽象,SGAP 建模范式(Scalable Graph Neural Architecture Paradigm)。不可擴(kuò)展性的消息傳播機(jī)制范式需要在每個(gè) epoch 訓(xùn)練的時(shí)候拉取信息, 不斷地聚合-迭代鄰居的信息,它的通信次數(shù)是和訓(xùn)練的 epoch 成正比的關(guān)系。而我們提出的 SGAP 建模范式主要分為三部分:預(yù)處理、模型訓(xùn)練和后處理。預(yù)處理階段聚合鄰居的信息,聚合后我們完全拋棄了圖結(jié)構(gòu),將聚合后的信息傳入第二部分模型訓(xùn)練中。這一步的模型可以是任意的機(jī)器學(xué)習(xí)模型,如 MLP,DNN,樹(shù)模型或更加傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型。得到模型預(yù)測(cè)之后再次調(diào)用一個(gè)聚合操作,從而得到最終的輸出。與之前不斷循環(huán)往復(fù)的過(guò)程相比,無(wú)論訓(xùn)練的 epoch 是多少,SGAP 只做了兩次聚合鄰居的操作:預(yù)處理和后處理。
因此在分布式訓(xùn)練的情況下,采用 SGAP 建模范式的 GNN 通信開(kāi)銷會(huì)更低。對(duì)于分布式場(chǎng)景我們更加看重可擴(kuò)展性,對(duì)于單機(jī)場(chǎng)景更看重效率。SGAP 在單機(jī)的情況下訓(xùn)練也能顯著降低計(jì)算成本。具體來(lái)說(shuō),它在預(yù)處理階段減少了圖數(shù)據(jù)重復(fù)計(jì)算鄰接矩陣與特征矩陣相乘的步驟,避免了多次循環(huán)往復(fù)的聚合更新信息。矩陣的乘法運(yùn)算在預(yù)處理階段計(jì)算好之后,再傳入模型訓(xùn)練部分,按照普通的神經(jīng)網(wǎng)絡(luò)模型計(jì)算即可,因此在單機(jī)模式下計(jì)算次數(shù)會(huì)變少,計(jì)算速度會(huì)提升。
(2)SGAP 范式

在 SGAP 范式中,后處理與預(yù)處理是比較類似的過(guò)程,下面將對(duì) SGAP 的前兩個(gè)過(guò)程做更加數(shù)學(xué)化的闡述。它首先會(huì)在圖的層次做信息傳播,得到不同傳播層數(shù)的消息。接下來(lái)會(huì)聚合不同傳播層數(shù)的消息來(lái)的到新的特征,最后把得到的特征送入任意一個(gè)待訓(xùn)練的機(jī)器學(xué)習(xí)模型。因此 SGAP 范式可以理解為從圖的層次去刻畫數(shù)據(jù)的流動(dòng),而不是更細(xì)粒度的像消息傳遞機(jī)制一樣從節(jié)點(diǎn)的層次。
(3)SGAP 抽象

對(duì)于預(yù)處理來(lái)說(shuō),從鄰居節(jié)點(diǎn)聚合的是特征,而后處理從鄰居節(jié)點(diǎn)聚合的是模型的輸出,也就是軟標(biāo)簽。如圖中 A 點(diǎn)在第一次聚合時(shí)的到 BCD 三個(gè)鄰居節(jié)點(diǎn)的信息,然后再次調(diào)用通過(guò) C 節(jié)點(diǎn)聚合到 E 和 F 節(jié)點(diǎn)的信息。同時(shí)已經(jīng)被聚合的節(jié)點(diǎn)信息將被再次聚合。
(4)圖聚合器

在后處理這一步,我們參考了三種主流的圖聚合器,如 GCN 中使用的增強(qiáng)歸一化鄰接矩陣(Augmented normalized adjacency),APPNP 中使用的個(gè)性化 PageRank,和 MotifNet 中的 Triangle-induced adjacency。
(5)訓(xùn)練

接下來(lái)訓(xùn)練模型主要分為兩步,聚合來(lái)自預(yù)處理階段的消息,以及更新聚合后的信息。
(6)消息聚合器

消息聚合器分為兩類,第一種非自適應(yīng)聚合器,比如在聚合的消息中取最大值、平均值等;第二種自適應(yīng)的聚合器給不同節(jié)點(diǎn)的不同層表示消息不同的權(quán)重,如同注意力機(jī)制。熱力圖中顯示的是模型運(yùn)行 50 次后的準(zhǔn)確率,顏色越深代表準(zhǔn)確性更高。
在圖中不同的節(jié)點(diǎn)所處的位置不同,權(quán)重也不盡相同,類似于社交網(wǎng)絡(luò)中活躍度和好友比較多的用戶,比如 18 號(hào),只傳播 1 個(gè) step 就達(dá)到了很高的準(zhǔn)確率,代表著傳播一次就幾乎覆蓋到全圖;而 4 號(hào)代表著影響力較為一般的用戶,它的分布比較稀疏,就需要更多的傳播次數(shù)才能提升準(zhǔn)確率。同時(shí)在自適應(yīng)聚合器中引入的其他參數(shù)也是有代價(jià)的,會(huì)對(duì)計(jì)算效率產(chǎn)生一定的影響,這里就是在用計(jì)算效率去換更高的準(zhǔn)確率。
(7)基于 SGAP 范式來(lái)設(shè)計(jì) GNN

基于 SGAP 范式來(lái)設(shè)計(jì)的 GNN,完全拋棄了消息傳播機(jī)制的循環(huán)迭代過(guò)程,主要分為三步:前處理、訓(xùn)練、后處理。前處理利用圖聚合器聚合鄰居節(jié)點(diǎn)的信息存入矩陣;訓(xùn)練階段利用消息聚合器聚合預(yù)處理階段的特征矩陣,設(shè)定信息更新模型(如 MLP)來(lái)學(xué)習(xí)節(jié)點(diǎn)的軟標(biāo)簽類別分布;后處理就是基于模型更新后的預(yù)測(cè)結(jié)果當(dāng)作新的特征,再一次使用圖聚合器來(lái)聚合鄰居標(biāo)簽信息,最后輸出最終預(yù)測(cè)。
4、自動(dòng)化搜索系統(tǒng)(PaSca)

基于可擴(kuò)展的 SGAP 范式,我們提出了自動(dòng)化搜索系統(tǒng) PaSca,其中包含兩個(gè)模塊,自動(dòng)化的搜索引擎和分布式的評(píng)估引擎。搜索引擎的主要的目就是推薦一個(gè) configuration instance,即一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)配置,可以配置出一個(gè)可擴(kuò)展的圖神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。評(píng)估引擎將會(huì)評(píng)估所推薦的 configuration instance,真正在數(shù)據(jù)集上訓(xùn)練并產(chǎn)生預(yù)測(cè),然后根據(jù)驗(yàn)證集的結(jié)果去評(píng)估準(zhǔn)確率。
(1)搜索引擎

搜索引擎需要接收輸入的優(yōu)化目標(biāo),處理不同優(yōu)化目標(biāo)之間的 tradeoff。優(yōu)化目標(biāo)包括對(duì)于模型結(jié)構(gòu)的要求(模型本身結(jié)構(gòu))、模型性能的要求(準(zhǔn)確率等性能指標(biāo))和硬件設(shè)置(資源、內(nèi)存空間、時(shí)間)相關(guān)的約束。搜索引擎可以在多個(gè)目標(biāo)的約束下,去搜索并推薦最佳的滿足多個(gè)優(yōu)化目標(biāo)的網(wǎng)絡(luò)結(jié)構(gòu)配置。
(2)設(shè)計(jì)空間

PaSca 的設(shè)計(jì)空間包含在預(yù)處理,模型訓(xùn)練,以及后處理等 3 個(gè)階段的局部設(shè)計(jì)。拿模型訓(xùn)練階段的設(shè)計(jì)空間為例,需要考慮的包括使用什么樣的聚合器(自適應(yīng)/非自適應(yīng)),使用多少層的 dens layer 等。在每個(gè)階段都有 2 個(gè)參數(shù)可供選擇,三個(gè)階段共有超過(guò) 150k 種可能的 configuration instances,同時(shí)現(xiàn)有的 Scalable GNN 都可以在我們的設(shè)計(jì)空間里找到。
(3)推薦服務(wù)器

對(duì)于推薦服務(wù)器來(lái)說(shuō),PaSca 使用經(jīng)典的基于貝葉斯優(yōu)化的 SMBO 方法。整個(gè)過(guò)程分為三步:建模,推薦和更新。首先進(jìn)行建模,學(xué)習(xí)配置(網(wǎng)絡(luò)結(jié)構(gòu))與優(yōu)化目標(biāo)之間的關(guān)系;建模完成后,推薦引擎去推薦能兼顧多個(gè)優(yōu)化目標(biāo)的配置;之后評(píng)估引擎評(píng)估該配置的效果,把觀測(cè)到的歷史記錄返回推薦服務(wù)器中,進(jìn)一步更新推薦模型,使得推薦越來(lái)越準(zhǔn)確。
(4)評(píng)估引擎

對(duì)于分布式評(píng)估引擎來(lái)說(shuō),首先會(huì)使用圖數(shù)據(jù)聚合器對(duì)大圖做切分,切分好圖數(shù)據(jù)后再基于重復(fù)計(jì)算的方法來(lái)做數(shù)據(jù)聚合。具體來(lái)說(shuō)就是根據(jù)已經(jīng)計(jì)算好的第(i)步消息來(lái)計(jì)算第(i+1)步消息。網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練器相對(duì)簡(jiǎn)單,它使用 MLP 基于 Mini-batch 來(lái)訓(xùn)練網(wǎng)絡(luò),并且基于 parameter server,去異步更新網(wǎng)絡(luò)參數(shù)。
三、實(shí)驗(yàn)
1、實(shí)驗(yàn)設(shè)置

我們?cè)谀壳皬V泛使用的經(jīng)典數(shù)據(jù)集及數(shù)據(jù)量稍大的數(shù)據(jù)集和自己的 Industry 數(shù)據(jù)集上都做了驗(yàn)證,主要是為了驗(yàn)證以下就是 3 個(gè)目標(biāo)。首先,我們希望提出的 SGAP 比基于 NMP 的消息傳遞機(jī)制更具有擴(kuò)展性;第二個(gè)目標(biāo)是期望 PaSca 搜索出來(lái)的結(jié)果能夠很好地處理不同搜索目標(biāo)之間的 tradeoff;第三個(gè)目標(biāo)是希望 PaSca 搜索出來(lái)網(wǎng)絡(luò)結(jié)構(gòu)能夠有更好的預(yù)測(cè)性能。
2、可擴(kuò)展性分析

對(duì)于第一個(gè)目標(biāo),由于是針對(duì)大規(guī)模的數(shù)據(jù)去做設(shè)計(jì),最關(guān)心的其實(shí)不是模型的性能,是而是 scalability,也即模型的可擴(kuò)展性。如圖所示,我們使用了基于 SGAP的APPNP和基于 NMP的 GraphSAGE 在兩個(gè)不同的數(shù)據(jù)集上進(jìn)行了對(duì)比,實(shí)驗(yàn)發(fā)現(xiàn)基于 SGAP 的 GNN 可以取得接近線性的加速比,并且比基于 NMP 的消息傳遞機(jī)制更加接近理想的加速比。
3、搜索出來(lái)的代表性方法

基于 SGAP 范式搜索出來(lái)的代表性方法可以兼顧多個(gè)搜索目標(biāo)之間的 tradeoff。如圖中帕累托平面所示,橫軸代表模型的準(zhǔn)確率,縱軸代表預(yù)測(cè)時(shí)間。可以看到 PaSca-V3 取得了最低的預(yù)測(cè)誤差,代價(jià)就是帶來(lái)了與 PaSca-V2 相比更長(zhǎng)的預(yù)測(cè)時(shí)間。目前表現(xiàn) SOTA 的可擴(kuò)展網(wǎng)絡(luò)結(jié)構(gòu) GBP,也可以在帕累托平面上被搜索出來(lái)。表 3 代表著搜索出來(lái)的 3 個(gè)不同版本的代表性網(wǎng)絡(luò)結(jié)構(gòu)。給予網(wǎng)絡(luò)結(jié)構(gòu)三大部分具體的參數(shù),就可以確定唯一定義的網(wǎng)絡(luò)結(jié)構(gòu)。

同時(shí)結(jié)果顯示,目前搜索出的代表性模型都能很好兼顧訓(xùn)練時(shí)間與測(cè)試準(zhǔn)確率。圖中藍(lán)框內(nèi)代表的 PaSca 搜索出的模型,其中 PaSca-V2 和 PaSca-V3 都取得了較高的預(yù)測(cè)準(zhǔn)確率,但是明顯需要更少的時(shí)間。即使拿性能最差的 SGC 與非 SGAP 模型相比,在準(zhǔn)確率降低幅度不大的情況下,效率高出其他模型一個(gè)數(shù)量級(jí)以上。因此 SGAP 在工業(yè)范式界的大規(guī)模圖數(shù)據(jù)上表現(xiàn)是相當(dāng)不俗的,尤其是對(duì)訓(xùn)練時(shí)間要求比較高的情況下。
4、預(yù)測(cè)性能

在預(yù)測(cè)性能上,SGAP 和其他非擴(kuò)展性的建模范式相比,具有相當(dāng)競(jìng)爭(zhēng)力的性能?;?SGAP 范式實(shí)現(xiàn)的模型具有預(yù)處理、訓(xùn)練、后處理這樣一種三段式的結(jié)構(gòu),與常見(jiàn)的 NMP 和 DNMP 范式下的模型相比,它們都取得了較好的預(yù)測(cè)性能。比如,使用 SGAP 范式下的 PaSca-V3 模型在不同的數(shù)據(jù)上進(jìn)行測(cè)試都取得了最好的性能。因此,SGAP 范式在保證模型可擴(kuò)展性的同時(shí),不會(huì)降低模型的準(zhǔn)確率。
四、總結(jié)
目前我們實(shí)現(xiàn)了能自動(dòng)化建模 10 億節(jié)點(diǎn)的超大規(guī)模圖神經(jīng)網(wǎng)絡(luò)系統(tǒng),部署于騰訊太極機(jī)器學(xué)習(xí)平臺(tái),并廣泛應(yīng)用于視頻推薦和內(nèi)容風(fēng)控等場(chǎng)景,系統(tǒng)部分功能已在 Github 開(kāi)源:?https://github.com/PKU-DAIR/SGL?,系統(tǒng)論文獲得 CCF A 類數(shù)據(jù)挖掘旗艦會(huì)議 WWW 2022 唯一“最佳學(xué)生論文獎(jiǎng)”(中國(guó)第2個(gè)),相關(guān)工作刷新了國(guó)際圖學(xué)習(xí)榜單 OGB 的 3 項(xiàng)第一。
這里對(duì)我們的工作做一個(gè)總結(jié)。PaSca 作為一個(gè)新穎的構(gòu)建和探索可擴(kuò)展 GNNs 的網(wǎng)絡(luò)結(jié)構(gòu)搜索系統(tǒng),不僅僅研究單個(gè)的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)。PaSca 搜索出來(lái)的代表性模型能夠在預(yù)測(cè)性能、效率以及可擴(kuò)展性等多個(gè)方面超越現(xiàn)有的 SOTA GNN 模型。同時(shí) PaSca 能夠幫助研究者來(lái)探索不同的 Scalable GNN 結(jié)構(gòu)設(shè)計(jì),并且理解不同設(shè)計(jì)的特點(diǎn)和功能。

?同時(shí)也對(duì) PaSca 系統(tǒng)開(kāi)源工作做一個(gè)介紹。前面主要討論的 SGAP 建模和網(wǎng)絡(luò)結(jié)構(gòu)搜索這兩個(gè)部分的功能,已經(jīng)集成到 SGL 系統(tǒng)工具包中,是 SGL 系統(tǒng)設(shè)計(jì)不可或缺的一部分。這也正是 SGL 系統(tǒng)的設(shè)計(jì)目標(biāo)之一,即具有高可擴(kuò)展性,能夠高效處理分布式還是單機(jī)場(chǎng)景下的超大規(guī)模工業(yè)圖數(shù)據(jù)。
第二個(gè)目標(biāo)就是實(shí)現(xiàn)自動(dòng)化,PaSca 系統(tǒng)可以對(duì)指定的多個(gè)優(yōu)化目標(biāo)去自動(dòng)化的搜索推薦網(wǎng)絡(luò)結(jié)構(gòu)。
第三個(gè)目標(biāo)是在應(yīng)用性上,可以針對(duì)常見(jiàn)的節(jié)點(diǎn)分類、聚類預(yù)測(cè),后面也會(huì)支持倒藥物發(fā)現(xiàn)和推薦等場(chǎng)景實(shí)現(xiàn)一鍵調(diào)用,具有針對(duì)多個(gè)任務(wù)定制的用戶友好的接口。
另一個(gè)目標(biāo)就是針對(duì)數(shù)據(jù)側(cè)的優(yōu)化,關(guān)注包括噪聲處理、長(zhǎng)尾分布不均衡處理、圖結(jié)構(gòu)數(shù)據(jù)稀疏等一系列問(wèn)題。同時(shí),系統(tǒng)還會(huì)內(nèi)置集成多種有效的提點(diǎn)方法。
以上就是本次講座的全部?jī)?nèi)容。
五、問(wèn)答環(huán)節(jié)
Q1:如何保證 SGAP 這種方式的調(diào)整不會(huì)影響模型的效果,是否有理論上的支持?
A1:首先我們回答,前半部分。從實(shí)驗(yàn)結(jié)果上可以看到,基本上不會(huì)影響效果,效果反而會(huì)更好;然后另外,從 Open Graph Benchmark 榜單也可以看到,現(xiàn)在大部分的數(shù)據(jù)集其實(shí)都可以歸納成 SGAP 里的一個(gè)分支,或者說(shuō)歸納 SGAP 范式的前半部分,因?yàn)楹芏喾椒赡軙?huì)缺少后處理的操作。所以說(shuō),SGAP 是不會(huì)去影響模型的效果。至于在理論上的支持,比如 SGC 及其他很多的工作,以及去年有一篇論文,是專門去研究比如說(shuō) Graph Augmented MLP 的一種方法,因此在理論上也是有一些支持的。如果對(duì)這個(gè)感興趣的話,我們后面也可以發(fā)一下相關(guān)的論文。
Q2:SGAP 范式是否能夠支持復(fù)雜的 GNN 模型?比如說(shuō)在邊上有 n 計(jì)算的階梯模型。
A2:目前的話就是研究的工作還不多,是不能去直接去支持或者說(shuō)接替,怎么去聚合鄰居的信息的算法。但是目前的處理辦法是做了一個(gè)折中,把不同跳的信息聚合時(shí),相當(dāng)于在做一個(gè)節(jié)點(diǎn)層次上的聚合。這樣一種方法在保證了可擴(kuò)展性的同時(shí),也利用了 Attention 的思想去學(xué)習(xí)節(jié)點(diǎn)不同層數(shù)的表示。但是目前沒(méi)有辦法做到像 GAT 那么細(xì)的粒度,去聚合節(jié)點(diǎn)跟節(jié)點(diǎn)之間的信息,這是很好的一個(gè)研究的 topic,可以在聚合階段利用一些啟發(fā)式的方法,或者說(shuō)利用一些有理論保證的方法,去做一些帶注意力機(jī)制這樣一種思想的聚合算法。
Q3:PaSca 框架可以支持多個(gè)優(yōu)化目標(biāo),并在一定約束下進(jìn)行學(xué)習(xí),這里是如何添加這種約束的呢?
A3:這個(gè)問(wèn)題涉及貝葉斯優(yōu)化,建模時(shí)會(huì)設(shè)計(jì)一個(gè) x 和一個(gè) y, x 就是各種網(wǎng)絡(luò)結(jié)構(gòu)y的話可以是 accuracy。當(dāng)我們?nèi)ビ?xùn)練一個(gè)模型,比如說(shuō)像高斯過(guò)程、GBM、樹(shù)模型,或者隨機(jī)森林等,多目標(biāo)就意味著一個(gè)x對(duì)應(yīng)多個(gè) y。實(shí)現(xiàn)方式是用我們實(shí)驗(yàn)室自研的 OpenBox 工具包去做的,可以很方便的支持,多個(gè)約束目標(biāo)的貝葉斯優(yōu)化。
Q4:SGAP 這種方式的話,為什么說(shuō)有更好的拓展性呢?
A4:更好的擴(kuò)展性是最重要的一點(diǎn),也是大家最關(guān)心的一點(diǎn)。我們?cè)诖嗽僦匦旅枋鲆幌拢懊嫣岬降木褪?NMP 消息傳遞機(jī)制這種范式,在每個(gè) epoch 都需要去不斷迭代地去做聚合和更新的操作,這樣帶來(lái)兩個(gè)問(wèn)題,第一個(gè)問(wèn)題就是需要不斷的重復(fù)做這種稀疏矩陣乘 dense 矩陣的矩陣乘法,這就造成很高的計(jì)算成本,而另外由于不斷的聚合操作,會(huì)產(chǎn)生很高的通信成本,尤其是對(duì)于大規(guī)模圖數(shù)據(jù)。
但是在 SGAP 范式下,分成預(yù)處理、訓(xùn)練以及后處理三個(gè)階段,所以這個(gè)時(shí)候通信成本就不受到 training epoch 大小影響。只需要在預(yù)處理和后處理階段做兩次通信;計(jì)算的話也是同理,矩陣乘法只需要在預(yù)處理和后處理階段去做。在模擬訓(xùn)練的時(shí)候,會(huì)完全拋棄掉圖結(jié)構(gòu)。這樣就兼顧了可擴(kuò)展性和效率的問(wèn)題,比 NMP 的消息傳遞機(jī)制會(huì)更好。































