0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

圖數(shù)據(jù)切分與模型數(shù)據(jù)載入的問題解析

TigerGraph ? 來源:TigerGraph ? 2023-01-13 14:35 ? 次閱讀

什么是 GNN/圖神經(jīng)網(wǎng)絡(luò)?

圖神經(jīng)網(wǎng)絡(luò)是一類 ”用于處理可以表示為圖的數(shù)據(jù)“ 的人工神經(jīng)網(wǎng)絡(luò)。我們通常能看到的例子有: 社交網(wǎng)絡(luò)的商品推薦,蛋白質(zhì)三維結(jié)構(gòu)的預(yù)測和芯片設(shè)計優(yōu)化等等。到目前為止,之所以圖神經(jīng)網(wǎng)絡(luò)能夠攻克了這些涉及領(lǐng)域比較核心的問題,包括其涉及的理論知識, 模型設(shè)計,benchmark 數(shù)據(jù)集效果驗證等等一系列工作, 都能反映出了它結(jié)合圖數(shù)據(jù)表達(dá)的能力和神經(jīng)網(wǎng)絡(luò)模型泛化的能力。

那我們又要基于什么樣的前提,在 GNN 的范疇開始我們自己的探索和應(yīng)用呢? 我希望通過對兩個“假設(shè)”的描述 ,讓大家更了解這個前沿技術(shù)背后的動機(jī)。

第一個假設(shè):關(guān)于數(shù)據(jù)樣本的分布、頻率和空間位置表示

6 年前,谷歌 AI 趣味實驗的一個展示平臺上 有一個機(jī)器學(xué)習(xí)任務(wù)非常吸引我。他們當(dāng)時的目標(biāo)是通過?叫聲分辨出?的種類。最左邊所有的小圖片,每一個代表北美一種?類叫聲的聲紋信息, 右邊則是我們找到的對應(yīng)的“鴛鴦”的照片。這個機(jī)器學(xué)習(xí)可視化項目,通過不使用標(biāo)記訓(xùn)練的 t-SNE,將高維聲紋信息轉(zhuǎn)換為二維的空間位置來展示數(shù)據(jù) 并且驗證了相似的種群有相似的叫聲這個假設(shè)。

放在現(xiàn)在來看,我們有理由相信。當(dāng)時研究人員的夢想 是可以用深度學(xué)習(xí)的模型去解決的, ?類有成千上萬種,一種?的不同叫聲也有很大的差別, 只要我們有大量的數(shù)據(jù)樣本和標(biāo)簽可以去做訓(xùn)練,這個事情就是可行的。

我們知道深度學(xué)習(xí),能解決這樣直觀但又復(fù)雜的事情, 恰恰是因為我們認(rèn)定了這樣的假設(shè); 并且著眼于如何處理大量的數(shù)據(jù),使用更深層、更精妙的神經(jīng)網(wǎng)絡(luò)模型設(shè)計,來自動挖掘出數(shù)據(jù)的規(guī)律,并最終給出判斷。

假設(shè)二:一個種群有一個大致的活動范圍

假如我們把問題換做:我想知道在哪一個城市可以聽到這樣的?叫聲呢? 解答這個問題的方法是使用圖算法。我們可以看到數(shù)據(jù)中記錄的位置信息,屬于地理位置的不同區(qū)塊; 根據(jù)數(shù)據(jù)采集的密度決定區(qū)塊的大小,把小的區(qū)塊與種群關(guān)聯(lián), 再用社群發(fā)現(xiàn)的算法,得出不同物種的空間分布。

這個生物地理的問題,其實給定另一個假設(shè),即一個種群有一個大致的活動范圍。只不過這樣的假設(shè)比之前樣本特征分布的假設(shè),更加容易以一種顯式的方式體現(xiàn)。趨向于普遍事實的“假設(shè)”是可以被作為數(shù)據(jù)存儲下來的, 比如我們常說的知識圖譜中的三元組關(guān)系是對某一個事實關(guān)系的描述一樣。

圖神經(jīng)網(wǎng)絡(luò)

而圖神經(jīng)網(wǎng)絡(luò)模型,恰恰是在這兩個前提假設(shè)的融合之上建立的。如果我們也能夠確信,我們手上的數(shù)據(jù)蘊(yùn)含了這樣的假設(shè), 即樣本特征分布的假設(shè)與邏輯關(guān)系的假設(shè), 我們一定可以去嘗試,并且有信心能構(gòu)建出有效的 GNN 模型。

回到今天的主題,當(dāng)我們有數(shù)據(jù)集需要做模型訓(xùn)練時,我們是如何對其進(jìn)行訓(xùn)練集、驗證集測試集的切分? 我們又是怎樣對大到無法放入內(nèi)存的數(shù)據(jù)進(jìn)行分批次的訓(xùn)練?

如果放在 GNN 的場景下,我們需要考慮的是,如何切分圖數(shù)據(jù)集,又如何為 GNN 模型分批加載子圖。要知道在研究和應(yīng)用上,GNN 是機(jī)器學(xué)習(xí)領(lǐng)域最火熱的方向,各式各樣的理論和方法層出不窮。有一點(diǎn)可以確信的是,無論從理論還是工程方面,這兩個步驟并沒有太高深,卻也是 GNN 項目中比較重要的部分。

我也會在最后通過 TigerGraph 云實例,演示我們的圖機(jī)器學(xué)習(xí)工作臺,并在一個運(yùn)用 GAT 模型進(jìn)行反欺詐檢測的 Demo 中,展示這兩個步驟的作用。

圖數(shù)據(jù)切分

首先,我們來討論如何對圖數(shù)據(jù)進(jìn)行切分:

對于有監(jiān)督機(jī)器學(xué)習(xí)模型,我們對樣本的變量都會有一個獨(dú)立同分布的假設(shè)。通過這個假設(shè)我們可以隨機(jī)的按比例去切分訓(xùn)練集和驗證集,用于調(diào)整模型的擬合,并在測試集上觀察泛化的效果?;蛘呖梢园凑諘r間發(fā)生的先后順序去切分, 因為我們希望新的數(shù)據(jù)的特征同樣能被模型識別到。然而通常來說,一定會遇到樣本的分布發(fā)生變化; 樣本存在分組; 有標(biāo)記樣本數(shù)量的平衡性等現(xiàn)象。

按照統(tǒng)計經(jīng)驗的方式切分,模型會在真實的數(shù)據(jù)上發(fā)生變化,影響了實際業(yè)務(wù)的判斷。而這樣的現(xiàn)象,當(dāng)我們用圖的思維去構(gòu)建數(shù)據(jù)時,會更加顯而易?的發(fā)現(xiàn)??梢约僭O(shè)一個生活中的例子來構(gòu)建一個圖機(jī)器學(xué)習(xí)任務(wù):

我們希望通過人群訪問地理位置的記錄去預(yù)測場所的標(biāo)簽。這似乎與之前的種群分類的問題很像, 但顯然我們不能直接通過之前的圖算法給出結(jié)論: 因為標(biāo)簽本身是有含義的,并且每個地點(diǎn)可能有多個標(biāo)簽。

7e702b7a-7b92-11ed-8abf-dac502259ad0.png

那如果我們?yōu)閭鹘y(tǒng)機(jī)器學(xué)習(xí)的模型提供圖特征呢? 比如我們把【人群】的特征,歸并到【地理位置】中去, 我們會在切分?jǐn)?shù)據(jù)的時候發(fā)現(xiàn)一系列的問題。可能我們會發(fā)現(xiàn)訓(xùn)練集中【人群】的多少,訪問時間段等信息與【場所】沒有太強(qiáng)的相關(guān)性 ;或者在驗證集上【地理位置】的特征的分布發(fā)生了偏移; 更重要的,我們?nèi)绾伪WC測試集上新的數(shù)據(jù),【地理位置】更新的生命周期,涉及到的【訪問】關(guān)系 不會顯著減少? 我們嘗試各種方法:延?樣本的時間跨度、在數(shù)據(jù)集上做交叉驗證,縮短模型上線后的運(yùn)行周期,甚至嘗試剔除【人群】相關(guān)的變量。

這顯然不是我們希望看到的,在【人群】這類特征上來看,按時間切分顯然是不合適的。

我們是否應(yīng)該重新考慮修改圖模型本身呢? 答案是肯定的,我們可以嘗試把人群的特征作為【地理位置】間【轉(zhuǎn)移】的關(guān)系進(jìn)行建模。這樣,我們的選擇就變多了:我們可以首先得到一個同構(gòu)圖,人群移動的信息就被包含在了地點(diǎn)之間【轉(zhuǎn)移】的關(guān)系里面,就像種群遷移一樣。我們還可以將轉(zhuǎn)移所需的時間,作為距離和關(guān)聯(lián)性的特征,也放在邊關(guān)系里。試想騎手們在趕單子和上了一天班的你坐地鐵回家,一定會產(chǎn)生不同的分布。甚至,我們還可以建立多條關(guān)系比如所有早高峰,午餐高峰等不同時間段的統(tǒng)計等等。這樣構(gòu)成的網(wǎng)絡(luò),就包含了【人群】帶來的真正有用的信息。

回到剛剛的切分?jǐn)?shù)據(jù)的問題本身,我們可以思考一下為什么需要【地理位置】的標(biāo)簽?zāi)? 其中一個最直接的原因是,大部分的地理位置標(biāo)簽我們是沒法直接拿到的,并且也正是我們希望模型給出預(yù)測的。

比如開辟一個新地塊的【地理位置】標(biāo)簽,或者說 【人群】活動較少的地方這些【地理位置】的標(biāo)簽,就不會像大家常去的有 POI 的地方容易拿到標(biāo)簽。在這種情況下,按照地理位置的”活躍度“切分?jǐn)?shù)據(jù),恰恰是最合理的。

那么對于可以表示為圖的數(shù)據(jù),還有哪些切分方式呢?

我們可以看到 OGB這個專?為GNN模型準(zhǔn)備的公開數(shù)據(jù)集,規(guī)范了一些切分方式。之前提到的人群遷移的這個例子,就是借鑒了這個數(shù)據(jù)集中【產(chǎn)品分類任務(wù)】的構(gòu)建關(guān)系和切分的方法。當(dāng)然從實際出發(fā),我們也可以用不同的方式切分?jǐn)?shù)據(jù)集,讓他們同時落在一張圖或者完全不相關(guān)的圖上。這些切分方法,其實并沒有在意樣本的數(shù)據(jù)分布是否均勻和時間發(fā)生的順序,而是根據(jù)實際情況出發(fā),在建立關(guān)聯(lián)關(guān)系的過程中,顯示的把邏輯表述出來,數(shù)據(jù)本身的變化和無法及時獲取的問題得以規(guī)避。最終,我們把發(fā)現(xiàn)分布的事交給各式各樣的圖神經(jīng)網(wǎng)絡(luò)模型,發(fā)揮他們不同的泛化能力。

總結(jié)一下,在圖上做機(jī)器學(xué)習(xí)的任務(wù),“切分?jǐn)?shù)據(jù)” 這一步驟的目的,并非為了讓模型更容易訓(xùn)練, 而是讓模型訓(xùn)練的邏輯假設(shè)更加清晰,樣本主體的特征保持穩(wěn)定,模型結(jié)果更容易驗證,并且最終投入生產(chǎn)應(yīng)用。

模型數(shù)據(jù)載入

接下來,我們來看一下在訓(xùn)練階段 GNN模型對我們的數(shù)據(jù)載入有哪些要求。

從基本的模塊來看,圖神經(jīng)網(wǎng)絡(luò)模型和其他神經(jīng)網(wǎng)絡(luò)模型一樣可以堆疊層數(shù),但通常會有一個置換等變層。這一層的目標(biāo),就是收集模型訓(xùn)練樣本的鄰居,把他們的信息傳遞過來。根據(jù)模型的不同,可能是單跳的鄰居,也可能是多跳的鄰居。聚合時,可以用固定權(quán)重去聚合這些信息,也可以是一個參數(shù)的形式來學(xué)習(xí)鄰居之間的重要程度。

從這個過程來看,圖神經(jīng)網(wǎng)絡(luò),和其它一般的神經(jīng)網(wǎng)絡(luò)不一樣的是: 如果我們的輸入是圖片、聲音和文字這樣的高維數(shù)據(jù),我們可以想方設(shè)法做一些預(yù)處理來減少輸入維度。而對于組成網(wǎng)絡(luò)的數(shù)據(jù)而言,因為我們的初衷是希望盡可能地學(xué)習(xí)到圖拓?fù)浣Y(jié)構(gòu)。我們很難在模型以外預(yù)處理他們(雖然也是有辦法的)。

這就導(dǎo)致像 Pytorch / Tensorflow 這樣的框架需要去做除了計算以外的事情,比如特征索引和鄰居索引的工作。

從數(shù)據(jù)集的?度來看,我們必須正視拓?fù)浣Y(jié)構(gòu)對 GNN 模型架構(gòu)的影響。大批量數(shù)據(jù)集本身,是沒有辦法放入一臺機(jī)器的內(nèi)存中的。對于深度學(xué)習(xí),分批次的載入數(shù)據(jù)到更快的計算單元的內(nèi)存(GPU), 是讓深度學(xué)習(xí)模型的訓(xùn)練擴(kuò)展到大量數(shù)據(jù)至關(guān)重要的步驟。而大型的圖數(shù)據(jù)集,尤其是密度很高的圖數(shù)據(jù)集, 我們還需要額外的處理方式:比如通過鄰居采樣的方式去規(guī)避鄰域爆炸的問題。

當(dāng)然,不是將數(shù)據(jù)進(jìn)行分批就一勞永逸了。我們?nèi)孕枰紤]數(shù)據(jù)傳輸效率問題。舉一個 PyTorch 的數(shù)據(jù)載入模塊 DataLoader 為例,這個圖表模擬了模型在進(jìn)行分批訓(xùn)練時,當(dāng)載入速度(比如2秒)和批次消耗速度(比如每個批次的正向和反向傳播只需要 100 毫秒) 相差過大時,整體的訓(xùn)練速度會比平衡時慢兩倍多。

7ec27baa-7b92-11ed-8abf-dac502259ad0.png

如果說,我的載入速度能降到700 毫秒, 但是我開了 7 個 worker,這樣的話就可以把消耗和載入速度平衡了。我們還要考慮每個批次的載入速度差異,差異過大,即使有很多worker 和管道,也會降低訓(xùn)練的速度。這樣看來,在關(guān)聯(lián)信息的圖上做這樣的控制,保證批次數(shù)據(jù)的載入速度和穩(wěn)定性也是十分重要的。

從架構(gòu)層面看,我們會發(fā)現(xiàn)特征索引和圖的索引是 GNN 模型中不可避免的工作。

我們看到 PyG(基于PyTorch的圖神經(jīng)網(wǎng)絡(luò)架構(gòu) ) 在對 GNN 的實例描述中,提及了這樣幾點(diǎn)發(fā)現(xiàn):

● 獲取具有足夠 CPU DRAM 來同時存儲圖形和特征,是非常具有挑戰(zhàn)性的;

● 使用數(shù)據(jù)并行性進(jìn)行訓(xùn)練,需要在每個計算節(jié)點(diǎn)中復(fù)制圖特征和圖拓?fù)洌?/p>

● 圖和特征很容易就超過了單臺機(jī)器的內(nèi)存。

因此他們額外抽象出了 FeatureStore, GraphStore 這樣遠(yuǎn)程的抽象層,由開發(fā)者決定如何連接提供有效的圖特征采樣的外部存儲。作為同時具有擴(kuò)展性和計算性能的圖數(shù)據(jù)庫,我們也明白這是TigerGraph需要出力的地方, 并同時達(dá)到一個實時的、安全的、穩(wěn)定的、更方便獲取特征的平臺,加速整個 GNN 項目的演化和上線。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標(biāo)題:GNN課程詳解:圖數(shù)據(jù)切分與模型數(shù)據(jù)載入

文章出處:【微信號:TigerGraph,微信公眾號:TigerGraph】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    數(shù)據(jù)解析

    通過VISA讀取數(shù)據(jù)后,我想通過在公示節(jié)點(diǎn)里編寫c程序來解析數(shù)據(jù),應(yīng)該如何解析呢?數(shù)據(jù)格式可以是1=2.123取出=后面的
    發(fā)表于 03-23 21:33

    用2630與2530通信時,CC2630最大一個數(shù)據(jù)包最大數(shù)據(jù)載荷是多少???

    本帖最后由 電子人steve 于 2018-5-23 14:15 編輯 在用2630與2530通信,不知道2630每發(fā)一個數(shù)據(jù)包,最大的數(shù)據(jù)載荷是多少???類似于低功耗藍(lán)牙一樣,一次最多是20。 ?哪本技術(shù)手冊里會說明這個最大數(shù)據(jù)載
    發(fā)表于 05-22 00:05

    純干貨分享:切分測徑儀的2個安裝位置詳解

    越來越多的生產(chǎn)企業(yè)選擇切分軋制的方式生產(chǎn)螺紋鋼,在這種趨勢下,切分測徑儀也加大了研發(fā)力度,實現(xiàn)了切分螺紋鋼的在線測量?! ?b class='flag-5'>切分測徑儀配備專業(yè)的軟件系統(tǒng),具有多種
    發(fā)表于 04-09 16:06

    為什么采用切分測徑儀應(yīng)用于切分螺紋鋼生產(chǎn)?

    。為了能更好的用于切分軋制現(xiàn)場,保定市藍(lán)鵬測控科技有限公司經(jīng)過多方考慮,已經(jīng)研制出可以應(yīng)用于切分軋制中的切分測徑儀?! ?b class='flag-5'>切分測徑儀:  切分
    發(fā)表于 04-11 16:30

    切分軋制線迎來新設(shè)備 切分測徑儀保駕護(hù)航

    線的特點(diǎn),已制造出適合切分軋制線使用的在線測徑儀,并通過一定的排布可以完成多切分線所有產(chǎn)品的外形特征參數(shù)在線測量。   切分測徑儀:  現(xiàn)場應(yīng)用數(shù)據(jù)表明,對于圓鋼測量誤差小于0.02m
    發(fā)表于 04-15 15:42

    中文分詞研究難點(diǎn)-詞語切分和語言規(guī)范

    學(xué)習(xí)模型學(xué)習(xí)詞語切分的規(guī)律(稱為訓(xùn)練),從而實現(xiàn)對未知文本的切分。隨著大規(guī)模語料庫的建立,統(tǒng)計機(jī)器學(xué)習(xí)方法的研究和發(fā)展,基于統(tǒng)計的中文分詞方法漸漸成為了主流方法。中文分詞的研究難點(diǎn)中文分詞難點(diǎn)主要體現(xiàn)在
    發(fā)表于 09-04 17:39

    UART串口與LWIP以太網(wǎng)問題解析

    技術(shù)三千問:【技術(shù)三千問】之《玩轉(zhuǎn)ART-Pi》,看這篇就夠了!干貨匯總【技術(shù)三千問】之《AT組件問題匯總與解析》,干貨匯總!【技術(shù)三千問】之《UART串口問題解析》,干貨匯總!【技術(shù)三千問】之
    發(fā)表于 08-05 06:54

    模型數(shù)據(jù)

    在真實世界中,存在著許多十分相似的網(wǎng)絡(luò)結(jié)構(gòu),可以使用極為簡單的來建立它們的模型。模型數(shù)據(jù)
    發(fā)表于 09-02 07:18

    電子設(shè)計競賽賽題解析

    電子設(shè)計競賽賽題解析 東西是非常不錯的,可供參考.
    發(fā)表于 12-17 12:43 ?0次下載

    數(shù)據(jù)庫及其應(yīng)用習(xí)題與真題解析

    數(shù)據(jù)庫及其應(yīng)用習(xí)題與真題解析  本書是針對全國高等教育自學(xué)考試計算機(jī)及應(yīng)用專業(yè)(???《數(shù)據(jù)庫及其應(yīng)用》教材編寫的輔導(dǎo)材料。全書共分成三篇。第一篇是配套
    發(fā)表于 06-10 17:12 ?45次下載

    自動控制原理習(xí)題解析

    自動控制原理習(xí)題解析,有需要的下來看看。
    發(fā)表于 05-05 14:06 ?0次下載

    風(fēng)力擺控制系統(tǒng)賽題解析

    風(fēng)力擺控制系統(tǒng)賽題解析
    發(fā)表于 12-09 23:00 ?31次下載

    基于特征切分和隨機(jī)森林的異常點(diǎn)檢測模型

    數(shù)據(jù)時代,攻擊篡改、設(shè)備故障、人為造假等原因?qū)е潞A?b class='flag-5'>數(shù)據(jù)中潛藏著許多異常值。準(zhǔn)確地檢測出數(shù)據(jù)中的異常點(diǎn),實現(xiàn)數(shù)據(jù)清洗,至關(guān)重要。文中提出一種結(jié)合特征
    發(fā)表于 05-13 14:22 ?0次下載

    樊昌信《通信原理》真題解析及講義電子版

    樊昌信《通信原理》真題解析及講義電子版
    發(fā)表于 09-06 14:40 ?0次下載

    GTC 2023:多模態(tài)短視頻模型推理優(yōu)化方案解析

      多卡推理--流水線并行:將模型數(shù)據(jù)切分,以流水線形式計算,提高GPU利用率。模型切分策略:依照各部分的計算時間和參數(shù)量設(shè)計。
    的頭像 發(fā)表于 03-23 18:17 ?2204次閱讀
    GTC 2023:多模態(tài)短視頻<b class='flag-5'>模型</b>推理優(yōu)化方案<b class='flag-5'>解析</b>