網絡中的機器學習
節點分類
鏈接預測
機器學習的生命圈需要特征工程
網絡的特征學習——特征向量 embedding
network embedding的意義
節點的表征
節點的相似度衡量→網絡相似度衡量
網絡信息編碼,生成節點表征
用途:異常檢測,屬性預測,聚類,關系預測
例子:deepwalk
難度:當前的深度學習視為序列或網格數據而設計的,但網絡結構比這些更復雜,沒有固定的空間結構,沒有固定的順序,是動態的,並且有多類特征
Embedding Nodes
假設我們有圖G,V是節點集合,A是鄰接矩陣,
將節點編碼,編碼后的向量計算得到的相似度與原網絡的一致
因此需要定義一個編碼器,以及計算節點相似度的函數,並優化encoder
淺層encoding,有一個大矩陣,存儲各類節點的向量,encoder只是look-up,類似於word embedding
常見的方法:deepwalk,node2vec,transE
如何定義節點相似性
例子:若兩個節點的embedding相似,那么在物理結構上,他們:相連?有相同鄰居?相似的結構角色?等
隨機游走→node embedding
隨機游走:從一個節點出發,隨機選擇一個鄰居節點,游走到該節點,再重復上述步驟。經過的節點組成的序列即為圖的random walk
公式表示節點u,v在random walk中共同出現的概率
步驟:
1. 隨機游走,得到若干序列
2. 優化encoder,使共同出現的節點的序列相似度更近
random walk的意義:
能充分表達網絡的結構(鄰居信息)
高效性,不需要考慮網絡中的所有節點
非監督的學習,整體的過程類似於詞向量,此處不加贅述
負樣本抽樣 窗口 + 負樣本
演變為固定短長度的random walk
如何隨機游走?
node2vec的概述
:
具有相似鄰居的節點得到的向量相似
游走:廣度,深度
node2vec的步驟
embedding的使用:
聚類,社區發現
節點分類
關系預測
多關系數據模型的translating Embeddings
多關系模型,例如,知識圖譜,邊具有多類關系
知識圖譜填充→關系預測
transE
三元組關系 (實體1,關系,實體2)(h,l,t)
首先,實體已被表示未向量
那么關系如何表示呢?若l也是一個向量,那么應滿足 h+l≈t
transE算法
整圖的Embedding
將整個圖通過向量表示
用途:鑒別分子是否有毒;鑒別網絡是否異常
方法1:
基於node2vec得到每個節點的向量,求和或平均得到整個網絡的向量
方法2:
引入虛擬節點來表征網絡向量??
方法3:
匿名游走??需要看論文才能了解
當游走長度為3時,共有5個匿名。游走長度增長時,匿名的類別數如圖所示
枚舉步長為l的ai游走,並記錄出現的次數
將圖表示為這些游走的概率分布
計算圖中所有的匿名游走可能是不可行的
抽樣得到近似的分布
需要的random walk的次數如公式所示
學習每個匿名walk的Embedding,求和/平均/拼接后的結果即為圖的表征





