自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

動態(tài)圖上的深度學(xué)習(xí)-時間圖網(wǎng)絡(luò)建模

人工智能 深度學(xué)習(xí)
許多涉及各種性質(zhì)的交易網(wǎng)絡(luò)以及社連接邊動,以及與現(xiàn)實(shí)世界問題相關(guān)問題都是動態(tài)的,可以建模為圖結(jié)構(gòu),其中節(jié)點(diǎn)和邊隨著時間的推移而變化。在這篇文章中,我們描述了時間圖網(wǎng)絡(luò),這是用于在動態(tài)圖上進(jìn)行深度學(xué)習(xí)建模的通用框架。

 內(nèi)容整理自網(wǎng)絡(luò)

  許多涉及各種性質(zhì)的交易網(wǎng)絡(luò)以及社連接邊動,以及與現(xiàn)實(shí)世界問題相關(guān)問題都是動態(tài)的,可以建模為圖結(jié)構(gòu),其中節(jié)點(diǎn)和邊隨著時間的推移而變化。在這篇文章中,我們描述了時間圖網(wǎng)絡(luò),這是用于在動態(tài)圖上進(jìn)行深度學(xué)習(xí)建模的通用框架。

圖神經(jīng)網(wǎng)絡(luò)(GNN)相關(guān)的研究逐年激增,已成為今年機(jī)器學(xué)習(xí)研究中最熱門的主題之一。GNN最近在生物學(xué),化學(xué),社會科學(xué),物理學(xué)等領(lǐng)域的問題上取得了一系列成功。到目前為止,GNN模型主要建模和處理不隨時間變化的靜態(tài)網(wǎng)絡(luò)。但是,許多現(xiàn)實(shí)世界中的圖網(wǎng)絡(luò)卻是動態(tài)的,并且隨時間變化,典型的例子如社交網(wǎng)絡(luò),金融交易和推薦系統(tǒng)。在許多情況下,正是這種系統(tǒng)的動態(tài)行為傳達(dá)了重要的信息,否則,如果人們僅考慮靜態(tài)圖,則會丟掉這些信息。

Twitter用戶的動態(tài)網(wǎng)絡(luò),與推文進(jìn)行連接邊并互相關(guān)注。所有邊都有時間戳。給定這樣的動態(tài)圖,我們希望預(yù)測未來的連接邊,例如,用戶將喜歡哪些推文或他們將關(guān)注誰。

  動態(tài)圖可以表示為定時事件的有序列表或異步“流”,例如節(jié)點(diǎn)和邊的添加或刪除[1]。像Twitter這樣的社交網(wǎng)絡(luò)是一個典型的例子:當(dāng)一個人加入平臺時,會創(chuàng)建一個新節(jié)點(diǎn)。當(dāng)他們關(guān)注另一個用戶時,將創(chuàng)建一條新的關(guān)注邊。當(dāng)他們更改配置文件時,將更新該節(jié)點(diǎn)。

  該事件流由編碼器神經(jīng)網(wǎng)絡(luò)編碼,該編碼器神經(jīng)網(wǎng)絡(luò)為圖的每個節(jié)點(diǎn)生成時間相關(guān)的embedding。然后可以將embedding的內(nèi)容饋送到為特定任務(wù)設(shè)計的解碼器中。比如說,可以通過嘗試回答這么一個問題,來預(yù)測未來的連接邊作用,問題是:在時間t處節(jié)點(diǎn)i和j之間具有邊的概率是多少?回答此問題的能力對于推薦系統(tǒng)至關(guān)重要,例如,給社交網(wǎng)絡(luò)用戶推薦什么內(nèi)容或預(yù)測該用戶喜歡關(guān)注什么內(nèi)容。下圖說明了這種情況:

  一個TGN編碼器的例子,擁有七條可見邊(時間戳為t?至t?)的動態(tài)圖,目的是預(yù)測在時間t?(灰色邊)時,節(jié)點(diǎn)2和4之間的未來存在連接關(guān)系的概率。為此,TGN在時間t1時,計算節(jié)點(diǎn)2和4embedding表示。然后將這些embedding連接起來并輸入解碼器(例如MLP),該解碼器輸出存在連接邊的概率。

  上述場景中的關(guān)鍵部分是編碼器,它可以與任何解碼器同時訓(xùn)練。在前述的連接邊預(yù)測任務(wù)上,可以以自監(jiān)督的方式進(jìn)行訓(xùn)練:在每個時期,編碼器均按時間順序處理事件,并根據(jù)先前的事件預(yù)測下一次連接邊[2]。

  時間圖網(wǎng)絡(luò)(TGN)是我們在Twitter上與Fabrizio Frasca,Davide Eynard,Ben Chamberlain和Federico Monti等同事共同開發(fā)的一種通用編碼器體系結(jié)構(gòu)[3]。該模型可以應(yīng)用于以事件流表示的動態(tài)圖上的各種學(xué)習(xí)問題。簡而言之,TGN編碼器通過基于節(jié)點(diǎn)的連接邊創(chuàng)建節(jié)點(diǎn)的壓縮表示并在每次事件發(fā)生時時更新它們的表示。為此,TGN具有以下主要組成部分:

  Memory單元。Memory存儲所有節(jié)點(diǎn)的狀態(tài),充當(dāng)節(jié)點(diǎn)過去連接邊的壓縮表示。它類似于RNN的隱藏狀態(tài)。然而,我們對每個節(jié)點(diǎn)i用一個獨(dú)立的狀態(tài)向量si(t)表示。當(dāng)出現(xiàn)新節(jié)點(diǎn)時,我們添加一個初始化為零的新的狀態(tài)向量。而且,由于每個節(jié)點(diǎn)的Memory只是狀態(tài)向量(而不是參數(shù)),因此當(dāng)模型吸收新的連接邊時,也可以在測試時進(jìn)行更新。

  消息功能函數(shù):更新Memory的主要機(jī)制。給定節(jié)點(diǎn)i和j在時間t的連接邊,消息函數(shù)計算兩條消息(一條用于i,一條用于j),用于更新Memory。這類似于在消息傳遞圖神經(jīng)網(wǎng)絡(luò)中計算的消息[4]。該消息是在連接邊之前的時間t?,連接邊時間t和邊緣特征[5] 的情況下節(jié)點(diǎn)i和j的Memory的函數(shù):

Memory更新組件:用于使用新消息更新Memory。該模塊通常實(shí)現(xiàn)為RNN。

鑒于節(jié)點(diǎn)的Memory是隨時間更新的向量,最直接的方法是直接將其用作節(jié)點(diǎn)embedding。但是,在實(shí)踐中,由于陳舊性(同步更新時間不一致導(dǎo)致的狀態(tài)漂移)問題,這并不合適:鑒于僅當(dāng)節(jié)點(diǎn)參與連接邊時才更新Memory,因此節(jié)點(diǎn)長時間不活動會導(dǎo)致其Memory過時。舉個例子,想想一個用戶離開Twitter幾個月。當(dāng)用戶返回時,他們可能已經(jīng)在此期間產(chǎn)生了新的興趣,因此對他們過去活動的Memory不再重要。因此,我們需要一種更好的方法來計算embedding。

  embedding。一種解決方案是查看其節(jié)點(diǎn)鄰居。為了解決陳舊性問題,embedding模塊通過在該節(jié)點(diǎn)的時空鄰居上執(zhí)行圖聚合來計算該節(jié)點(diǎn)的時間embedding。即使節(jié)點(diǎn)已處于非活動狀態(tài)一段時間,它的某些鄰居也可能處于活動狀態(tài),并且通過聚合其Memory,TGN可以為該節(jié)點(diǎn)計算最新的embedding。在我們的例子中,即使用戶不使用Twitter,他們的朋友仍會保持活動狀態(tài),因此當(dāng)他們返回時,朋友的最近活動可能比用戶自己的歷史記錄更具相關(guān)性。

圖embedding模塊通過在其時間鄰域上執(zhí)行聚合來計算目標(biāo)節(jié)點(diǎn)的embedding。另外,在上述圖中,在某一時間t大于計算節(jié)點(diǎn)1的embedding時間節(jié)點(diǎn)t?,t?和t? ,但小于t?,時間鄰域?qū)H包括時間t之前發(fā)生的邊。因此,節(jié)點(diǎn)5的邊不參與計算,因為將來會發(fā)生這種情況。相反,embedding模塊會根據(jù)鄰居2、3和4的特征(v)和Memory(s)以及邊上的特征進(jìn)行聚合,以計算節(jié)點(diǎn)1的表示形式。實(shí)驗是圖注意力,它能夠根據(jù)鄰居的Memory,特征和互動時間來了解哪個鄰居最重要。

  下圖總結(jié)了TGN對一批訓(xùn)練數(shù)據(jù)執(zhí)行的總體計算過程:

TGN對一批訓(xùn)練數(shù)據(jù)執(zhí)行的計算。一方面,embedding由embedding模塊使用時間圖和節(jié)點(diǎn)的Memory(1)生成。然后將embedding用于預(yù)測批處理相互作用并計算損失(2、3)。另一方面,這些相同的連接邊也用于更新Memory(4、5)。

  通過查看上圖,你可能想知道如何訓(xùn)練與Memory相關(guān)的模塊(消息功能函數(shù),消息聚合器和Memory更新組件),因為它們似乎并不直接影響損失函數(shù),因此不會進(jìn)行梯度更新。為了使這些模塊能夠影響損失函數(shù),我們需要在預(yù)測批處理連接邊之前更新Memory。但是,這將導(dǎo)致泄漏,因為Memory已經(jīng)包含有關(guān)我們要預(yù)測的信息。我們提出的解決此問題的策略是使用來自先前的消息來更新Memory批處理,然后預(yù)測連接邊。下圖展示了TGN的操作流程,這是訓(xùn)練與Memory相關(guān)的模塊所必需的:

訓(xùn)練與Memory相關(guān)的模塊所需的TGN操作流程。引入了一個新的組件,即原始消息存儲庫,該存儲庫存儲了必要的信息以計算消息(我們稱為原始消息),以處理模型過去處理過的連接邊。這允許模型將連接邊帶來的Memory更新延遲到以后的batch數(shù)據(jù)。首先,使用從先前batch數(shù)據(jù)(1和2)中存儲的原始消息計算出的消息來更新Memory。然后可以使用剛更新的Memory(灰色連接邊)來計算embedding(3)。這樣,與Memory相關(guān)的模塊的計算將直接影響損失函數(shù)(4、5),并且它們會收到一個梯度。最后,此批處理連接邊的原始消息存儲在原始消息存儲庫(6)中,以供將來的batch數(shù)據(jù)使用。

  在各種動態(tài)圖上進(jìn)行了廣泛的實(shí)驗驗證后,在精度和速度方面,TGN在鏈接預(yù)測和動態(tài)節(jié)點(diǎn)分類的任務(wù)上明顯優(yōu)于競爭方法[6]。一種這樣的動態(tài)圖是Wikipedia,其中用戶和頁面是節(jié)點(diǎn),并且連接邊表示用戶正在編輯頁面。編輯文本的編碼用作連接邊功能。在這種情況下,任務(wù)是預(yù)測用戶將在給定時間編輯哪個頁面。我們將TGN的不同變體與基準(zhǔn)方法進(jìn)行了比較:

在預(yù)測準(zhǔn)確性和時間方面,比較Wikipedia數(shù)據(jù)集上TGN的各種配置和已有的方法(TGAT和Jodie)對將來在Wikipedia數(shù)據(jù)集上的連接邊進(jìn)行預(yù)測。我們希望有更多的論文嚴(yán)格地報告這兩個重要標(biāo)準(zhǔn)。

  該拆分研究證明不同TGN模塊的重要性,并使我們可以得出一些一般性結(jié)論。首先,Memory很重要:Memory的缺乏會導(dǎo)致性能大幅下降[7]。其次,embedding模塊的使用(與直接輸出Memory狀態(tài)相反)很重要?;趫D注意力的embedding似乎表現(xiàn)最佳。第三,擁有Memory使得僅使用一個圖關(guān)注層就足夠了(這大大減少了計算時間),因為1跳鄰居的Memory使模型可以間接訪問2跳鄰居信息。

  最后,我們認(rèn)為在動態(tài)圖上學(xué)習(xí)是一個幾乎原始的研究領(lǐng)域,具有許多重要應(yīng)用場景,并且具有巨大的潛在影響。我們認(rèn)為,我們的TGN模型是提高動態(tài)圖學(xué)習(xí)能力的重要一步,以鞏固和擴(kuò)展先前的結(jié)果。隨著這一研究領(lǐng)域的發(fā)展,更好,更大的基準(zhǔn)將變得至關(guān)重要?,F(xiàn)在,我們正在努力創(chuàng)建新的動態(tài)圖數(shù)據(jù)集和任務(wù),作為“ 開放圖基準(zhǔn)”的一部分。

責(zé)任編輯:梁菲 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2017-06-13 22:56:27

動態(tài)圖PyTorchKeras

2017-05-27 14:00:06

深度學(xué)習(xí)人臉建模

2025-01-06 07:15:00

深度學(xué)習(xí)動態(tài)圖異常檢測人工智能

2023-02-22 15:01:23

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

2020-06-02 10:09:59

JavaScript開發(fā) 可視化

2010-06-30 10:30:29

UML動態(tài)建模

2017-02-08 17:08:32

谷歌深度學(xué)習(xí)計算圖

2021-05-11 14:45:11

芯片半導(dǎo)體技術(shù)

2018-08-10 09:23:19

TCP考點(diǎn)數(shù)據(jù)

2010-07-08 11:20:13

UML動態(tài)建模

2010-07-09 11:01:30

UML動態(tài)建模

2020-04-19 21:41:13

Python數(shù)據(jù)可視化

2020-09-17 17:46:20

Python地鐵線路圖

2018-06-14 16:59:42

TensorFlowEager深度學(xué)習(xí)

2021-03-31 17:39:07

MindSpore

2009-12-08 11:16:07

PHP動態(tài)圖像創(chuàng)建

2020-10-16 14:59:32

機(jī)器學(xué)習(xí)人工智能神經(jīng)網(wǎng)絡(luò)

2017-05-08 14:42:36

2016-12-06 10:39:54

剖析建模開源工具

2009-02-05 17:09:02

動態(tài)圖片JSPTomcat
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號