圖神經網絡
node embedding
回顧了之前node2vec的例子以及深度學習卷積的一些基礎
淺層encoder的局限性:
參數數量O(v):節點間沒有共享參數,每個節點有自己的embedding
不能表征未見過的節點
沒有綜合考慮節點特征
本節學習圖神經網絡,多層的非線性的
那么,在圖中,如何做卷積?
如果輸入是鄰接矩陣,那么模型不能適配各種規模的網絡;對節點的順序也沒有敏感性
圖的深度學習基礎
起初,對於一個圖G
V:節點集合
A:鄰接矩陣
X:節點的特征向量
圖卷機網絡
思路:圖的鄰居定義計算圖
信息傳播→計算節點特征
鄰居聚合:局部網絡鄰居
intuition:節點通過神經網絡,從鄰居聚合信息
深度模型:多層結構
模型可以是任意深度的:
節點在每一層都有embedding
第0層的embedding是輸入特征x
第k層的embedding得到的信息是通過經過k跳的節點而得
關鍵的區分在於信息通過不同的層是如何聚合的?
基礎的方法:平均+神經網絡
第0層初始化為節點的特征
公式如下
相似的節點有相似的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函數
仔細檢查可視化










