[論文筆記] :Temporal Graph Networks for Deep Learning on Dynamic Graphs


 

 本篇文章發表在ICLR2020上,對動態圖的進行連接預測和結點分類。TGN中,作者除利用傳統的圖神經網絡捕捉非歐式結構生成embedding外,還利用動態圖所中時序信息。

 

 TGN主要是由編碼器和解碼器構成,其中編碼器負責將動態網絡的每個結點編碼成一個向量,解碼器會根據具體的訓練問題對編碼后的向量計算預測屬性值,最后根據decoder得到的值設計損失函數,通過優化損失函數來對整個網絡進行優化。

先說一下TGN方法的細節:

 

 

 

 

 

 

 

 

 上面兩頁是概述,下面是細節:

 

按照論文的順序,先介紹一下背景,在靜態圖中的深度學習常通過鄰居節點的信息傳遞函數來做到

 

 

 懶得重新敲公式了,直接摘了一段自己寫在word里的總結。。。。忽略建圖的背景

 

 有了以上兩個背景,提出了本文的動態神經網絡的整體流程圖

 

 

我們分塊來講,

Messages: 

 Messages Function: 對於涉及節點i的每個事件,都會計算一條消息以更新i的內存。對於在時間t的節點i和j之間的交互事件eij(t),可以為分別開始和接收交互的源節點和目標節點計算兩條消息:

 

 

 同樣,在節點事件vi(t)的情況下,可以為該事件所涉及的節點計算一條消息:

 

 

 在這里,si(t-)是節點i在時間t之前的內存,而msgs,msgd和msgnare是可學習的消息函數,例如MLP。在我們所有的實驗中,為簡單起見,我們選擇消息函數作為標識(id),它只是輸入的串聯.

 Messages Aggregator

由於效率原因而訴諸批處理(batch),但可能會導致涉及同一批中同一節點i的多個事件。當每個事件在我們的公式中生成一條消息時,我們使用一種機制來聚合消息

 

 

 

 

 

 在這里,agg是一個聚合函數。盡管可以考慮多種選擇來實現此模塊(例如,RNN或對節點內存的關注),但為簡單起見,我們在實驗中考慮了兩種有效的不可學習的解決方案:最新消息(對於給定的消息僅保留最新消息)節點)和平均消息(平均給定節點的所有消息)。我們將可學習的聚合作為未來的研究方向。

Memory : 模型的內存(狀態)由模型迄今所見的每個節點的向量si(t)組成。當節點涉及事件時(例如與另一個節點的交互或逐節點變化),節點的存儲器被更新,並且其目的是以壓縮格式表示節點的歷史。多虧了這個特定的模塊,TGN才能夠記住圖中每個節點的長期依賴關系。另外,可以將全局存儲器添加到模型中以跟蹤整個時間網絡的演變。雖然我們設想了這種內存可能帶來的好處(例如,信息可以輕松地在圖形中傳播很長一段距離,但是可以通過全局狀態的變化來更新節點的內存,可以輕松地基於全局內存進行基於圖形的預測),這樣的方向沒有在這項工作中進行探索,因此留待將來的研究。

Memory Updater :節點的內存在涉及節點本身的每個事件時都會更新:對於涉及兩個節點i和j的交互事件,事件發生后將更新兩個節點的內存。對於節點事件,僅更新相關節點的內存。在此,mem是可學習的內存更新功能,例如遞歸神經網絡,例如LSTM [29]或GRU

 

 

 

 Embedding : 

嵌入模塊用於在任何時間t生成節點i的時間嵌入zi(t)。嵌入模塊的主要目的是避免所謂的staleness問題。由於節點i的內存僅在節點參與事件時才更新,因此可能會發生以下情況:長時間不存在事件(例如,社交網絡用戶在活躍之前停止使用平台一段時間)再次),我的記憶變得陳舊。盡管可以實現嵌入模塊的多種實現,但我們使用以下形式:

 

 

 

其中h是一個可學習的函數。在特定情況下,這包括許多不同的公式:

  Identity(id):,它直接使用內存作為節點嵌入。

  Time projection (time):,其中w是可學習的參數,∆t是自上一次交互以來的時間,而◦表示逐元素矢量積。此版本的嵌入方法已在JODIE中使用。

  Temporal Graph Attention (attn):一系列L圖注意層通過匯總來自其L跳時間鄰域的信息來計算i的嵌入。第l層的輸入是i表示,當前時間戳t,i鄰域表示以及時間戳下對於在i的時間鄰域中形成邊的每個考慮的相互作用,

    

 在此,φ(·)表示通用時間編碼,k是級聯運算符,zi(t)= emb(i,t)= h(L)i(t)。每層相當於執行多頭注意[60],其中查詢(q(l)(t))是參考節點(即目標節點或其L-1跳近鄰之一),而密鑰K (l)(t)和值V(l)(t)是其鄰居。最后,使用MLP將參考節點表示形式與聚合信息組合在一起。與該層的原始公式(首先在TGAT中提出)不同,在此情況下,不使用節點級時態特征,在本例中,每個節點的輸入表示為h(0)j(t)= sj(t)+ vj(t),因此它允許模型利用當前內存sj(t)和時間節點特征vj(t)。

  Temporal Graph Sum (sum): 圖上更簡單,更快速的聚合:

 

 兩種訓練機制:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM