08-GNN 圖機器學習之圖神經網絡


圖神經網絡

node embedding
回顧了之前node2vec的例子以及深度學習卷積的一些基礎
淺層encoder的局限性:
參數數量O(v):節點間沒有共享參數,每個節點有自己的embedding
不能表征未見過的節點
沒有綜合考慮節點特征
本節學習圖神經網絡,多層的非線性的


那么,在圖中,如何做卷積?
如果輸入是鄰接矩陣,那么模型不能適配各種規模的網絡;對節點的順序也沒有敏感性


圖的深度學習基礎

起初,對於一個圖G
V:節點集合
A:鄰接矩陣
X:節點的特征向量
圖卷機網絡
思路:圖的鄰居定義計算圖
信息傳播→計算節點特征


鄰居聚合:局部網絡鄰居
intuition:節點通過神經網絡,從鄰居聚合信息
intuition:網絡的鄰居定義計算圖→每個節點基於自身的鄰居定義計算圖

深度模型:多層結構
模型可以是任意深度的:
節點在每一層都有embedding
第0層的embedding是輸入特征x
第k層的embedding得到的信息是通過經過k跳的節點而得

關鍵的區分在於信息通過不同的層是如何聚合的?
基礎的方法:平均+神經網絡

第0層初始化為節點的特征
公式如下

那么如何訓練模型?定義損失函數?
模型參數
W B 
隨機梯度下降,訓練得到參數

非監督的學習
相似的節點有相似的embedding
監督學習:訓練模型用於節點分類
例如,葯品是否有毒




模型設計:
定義鄰居聚合函數;定義loss函數;訓練:生成節點的embedding





聚合參數是所有節點共享的
因此可為未見過的節點生成embedding;甚至是為相近的全新網絡生成embedding






圖卷積網絡和GraphSAGE

有比平均更好的聚合方法嗎?

對每一層的embedding進行L2正則化
不相加而是拼接

3中聚合方法:平均;池化;LSTM
小結:


高效的實現
通過對稀疏矩陣的操作

更多的圖卷積網絡


Graph Attention Network (GAT)

所有節點一視同仁

每個節點的貢獻力是否可以使用權重來區分
例子:
引用網絡


應用例子
拼趣:Pinterest采用的是瀑布流的形式展現圖片內容,無需用戶翻頁,新的圖片不斷自動加載在頁面底端,讓用戶不斷的發現新的圖片。
Pinterest堪稱圖片版的Twitter,網民可以將感興趣的圖片在Pinterest保存,其他網友可以關注,也可以轉發圖片。索尼等許多公司也在Pinterest建立了主頁,用圖片營銷旗下的產品和服務。
為每個節點生成一個embedding
從相鄰的節點借用信息


給用戶推薦相關的pins


使用小貼士
數據預處理是非常重要的:正則化;變量規模的初始化;網絡數據的清洗
訓練優化器
relu可以獲得較好的成效
輸出層不需要激活函數
每一層需要偏置
GCN的層在64或128已經很好了,不需要過深
模型:
在訓練集上需要過擬合!!
仔細檢查loss函數
仔細檢查可視化



























































免責聲明!

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



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