1. 程式人生 > >網路表示學習綜述:一文理解Network Embedding

網路表示學習綜述:一文理解Network Embedding

640

640?

在碎片化閱讀充斥眼球的時代,越來越少的人會去關注每篇論文背後的探索和思考。

在這個欄目裡,你會快速 get 每篇精選論文的亮點和痛點,時刻緊跟 AI 前沿成果。

點選本文底部的「閱讀原文」即刻加入社群,檢視更多最新論文推薦。

這是 PaperDaily 的第 96 篇文章

本期推薦的論文筆記來自 PaperWeekly 社群使用者 @xuehansheng本文是一篇來自 DeepWalk 團隊的綜述文章,對於近幾年網路表示學習(Network Representation Learning/Network Embedding)進行了一個階段性的總結,並對於未來的發展方向進行了研究。

如果你對本文工作感興趣,點選底部

閱讀原文即可檢視原論文。

關於作者:薛寒生,澳大利亞國立大學博士生,研究方向為人工智慧與計算生物學。

■ 論文 | A Tutorial on Network Embeddings

■ 連結 | https://www.paperweekly.site/papers/2203

■ 作者 | Haochen Chen / Bryan Perozzi / Rami Al-Rfou / Steven Skiena

論文摘要

網路嵌入方法(Network Embedding)旨在學習網路中節點的低維度潛在表示,所學習到的特徵表示可以用作基於圖的各種任務的特徵,例如分類,聚類,鏈路預測和視覺化。

在本文中,通過分類和總結本研究領域的最新進展來概述網路嵌入學習相關進展

。文章首先討論網路嵌入的屬性特徵,並簡要介紹了網路嵌入學習的歷史。然後文章還討論了在不同場景下的網路嵌入方法,如監督與無監督學習,同質網路學習嵌入與異構網路等。文章進一步論證了網路嵌入學習方法的具體應用,並總結了該領域未來的工作研究。

Network Embedding 介紹

由於資訊網路可能包含數十億個節點和邊緣,因此在整個網路上執行復雜的推理過程可能會非常棘手。因此有人提出了用於解決該問題的一種方法是網路嵌入(Network Embedding)。NE 的中心思想就是找到一種對映函式,該函式將網路中的每個節點轉換為低維度的潛在表示

總的來說,NE 具有如下幾個特徵: 

適應性(Adaptability)

- 現實的網路在不斷髮展;新的應用演算法不應該要求不斷地重複學習過程。 

可擴充套件性(Scalability)- 真實網路本質上通常很大,因此網路嵌入演算法應該能夠在短時間內處理大規模網路。 

社群感知(Community aware)- 潛在表示之間的距離應表示用於評估網路的相應成員之間的相似性的度量。這就要求同質網路能夠泛化。 

低維(Low dimensional)- 當標記資料稀缺時,低維模型更好地推廣並加速收斂和推理。 

持續(Continuous)- 需要潛在的表示來模擬連續空間中的部分社群成員資格。 

一個典型的例子就是 DeepWalk。其學習 Zachary’s Karate network 網路中的拓撲結構資訊並轉換成一個二維的潛在表示(latent representation)。

640

Network Embedding 簡史 

傳統意義上的 Graph Embedding 被看成是一個降維的過程,而主要的方法包括主成分分析(PCA)和多維縮放(MDS)。所有的方法都可以理解成運用一個 n × k 的矩陣來表示原始的 n × m 矩陣,其中 k << n。

在 2000 年代早期,又提出了其他方法,如 IsoMap 和 LLE,以保持非線性流形的整體結構。總的來說,這些方法都在小型網路上提供了良好的效能。 然而這些方法的時間複雜性至少是二次的,這使得它們無法在大規模網路上執行。

另一類流行的降維技術使用可從圖中匯出的矩陣的光譜特性(例如,特徵向量)來嵌入圖的節點。拉普拉斯特徵對映(Laplacian eigenmaps)通過與其k個最小非平凡特徵值相關聯的特徵向量表示圖中的每個節點。 

Deep Learning 

DeepWalk [1] 是第一個被提出來使用表示學習(或深度學習)社群的技術的網路嵌入方法。DeepWalk 通過將節點視為單詞並生成短隨機遊走作為句子來彌補網路嵌入和單詞嵌入之間的差距。然後,可以將諸如 Skip-gram 之類的神經語言模型應用於這些隨機遊走以獲得網路嵌入。

DeepWalk 的優點可以概括為:首先其可以按需生成隨機遊走。由於 Skip-gram 模型也針對每個樣本進行了優化,因此隨機遊走和 Skip-gram 的組合使 DeepWalk 成為線上演算法。其次,DeepWalk 是可擴充套件的,生成隨機遊走和優化 Skip-gram 模型的過程都是高效且平凡的並行化。最重要的是,DeepWalk 引入了深度學習圖形的範例

640

Unsupervised Network Embeddings

640

LINE [2] 採用廣度優先搜尋策略來生成上下文節點:只有距離給定節點最多兩跳的節點才被視為其相鄰節點。 此外,與 DeepWalk 中使用的分層 softmax 相比,它使用負取樣來優化 Skip-gram 模型。 

Node2vec [3] 是 DeepWalk 的擴充套件,它引入了一個偏向的隨機步行程式,結合了 BFS 風格和 DFS 風格的鄰域探索。 

Walklets [4] 顯示 DeepWalk 從 A~1~,A~2~,···,A~k~ 的加權組合中學習網路嵌入。 特別是如果 i<j,DeepWalk 總是偏向於 A~i~ 而不是 A~j~。為了避免上述缺點,Walklets 建議從 A~1~,A~2~,···,A~k~ 中學習多尺度網路嵌入。由於計算 A~i~ 的時間複雜度至少是網路中節點數量的二次方,因此 Walklet 通過在短隨機遊走中跳過節點來近似 A~i~。它進一步學習來自 A 的不同權力的網路嵌入,以不同的粒度捕獲網路的結構資訊。 

GraRep [5] 類似地通過將圖形鄰接矩陣提升到不同的冪來利用不同尺度的節點共現資訊。將奇異值分解(SVD)應用於鄰接矩陣的冪以獲得節點的低維表示。

Walklet 和 GraRep之間存在兩個主要差異。首先,GraRep 計算 A~i~ 的確切內容,而 Walklets 接近它。其次,GraRep 採用 SVD 來獲得具有精確分解的節點嵌入,而 Walklet 使用 Skip-gram 模型。

有趣的是,Levy 和 Goldberg 證明帶負抽樣的跳過法(SGNS)隱含地將節點和各個上下文節點之間的 PMI 矩陣分解。總而言之,GraRep 使用噪聲較小的過程生成網路嵌入,但 Walklet 證明更具可擴充套件性。 

GraphAttention [6] 提出了一種 attention 模型,它可以學習多尺度表示,最好地預測原始圖中的連結。GraphAttention 不是預先確定超引數來控制上下文節點分佈,而是自動學習對圖轉換矩陣的冪集的 attention。 

SDNE [7] 學習節點表示,通過深度自動編碼器保持 2 跳鄰居之間的接近度。它通過最小化它們的表示之間的歐幾里德距離來進一步保持相鄰節點之間的接近度。 

DNGR [8] 是另一種基於深度神經網路的學習網路嵌入的方法。他們採用隨機衝浪策略來捕獲圖形結構資訊。他們進一步將這些結構資訊轉換為 PPMI 矩陣,並訓練堆疊去噪自動編碼器(SDAE)以嵌入節點。

Attributed Network Embeddings

上述無監督網路嵌入方法僅利用網路結構資訊來獲得低維度的網路特徵。但是現實世界網路中的節點和邊緣通常與附加特徵相關聯,這些特徵稱為屬性(attribute)。例如在諸如 Twitter 的社交網路站點中,使用者(節點)釋出的文字內容是可用的。因此期望網路嵌入方法還從節點屬性和邊緣屬性中的豐富內容中學習。 

TADW [9] 研究節點與文字特徵相關聯的情況。TADW 的作者首先證明了 DeepWalk 實質上是將轉移概率矩陣 M 分解為兩個低維矩陣。受此結果的啟發,TADW 包含文字特徵矩陣 T 通過將 M 分解為 W,H 和 T 的乘積,進入矩陣分解過程。最後,將 W 和 H×T 連線起來作為節點的潛在表示。 

CENE [10] 是一種網路嵌入方法,它共同模擬節點中的網路結構和文字內容。CENE 將文字內容視為特殊型別的節點,並利用節點-節點連結和節點內容連結進行節點嵌入。 優化目標是共同最小化兩種型別鏈路的損失。 

HSCA [11] 是一種歸因圖的網路嵌入方法,它同時模擬同音,網路拓撲結構和節點特徵。 

Maxmargin DeepWalk(MMDW)[12] 是一種半監督方法,它學習部分標記網路中的節點表示。MMDW 由兩部分組成:第一部分是基於矩陣分解的節點嵌入模型,第二部分是將學習的表示作為特徵來訓練標記節點上的最大邊緣 SVM 分類器。通過引入偏置梯度,可以聯合更新兩個部分中的引數。

Heterogeneous Network Embeddings

異構網路具有多類節點或邊緣。為了模擬不同型別的節點和邊緣,大多數異構網路嵌入方法通過聯合最小化每種模態的損失來學習節點嵌入。這些方法要麼直接在相同的潛在空間中學習所有節點嵌入,要麼事先為每個模態構建嵌入,然後將它們對映到相同的潛在空間。 

Chang [13] 提出了異構網路的深度嵌入框架。他們的模型首先為每種模態(如影象,文字)構建一個特徵表示,然後將不同模態的嵌入對映到同一個嵌入空間。優化目標是最大化連結節點的嵌入之間的相似性,同時最小化未連結節點的嵌入。注意,邊可以在相同模態內的兩個節點之間以及來自不同模態的節點之間。 

Zhao [14] 是另一種用於在異構網路中構造節點表示的框架。具體來說,他們認為維基百科網路有三種類型的節點:實體,單詞和類別。建立相同和不同型別節點之間的共現矩陣,並且使用座標矩陣分解從所有矩陣聯合學習實體,詞和類別的表示。 

Li [15] 提出了一種神經網路模型,用於學習異構社交網路中的使用者表示。他們的方法聯合模擬使用者生成的文字,使用者網路和使用者與使用者屬性之間的多方面關係。 

HEBE [16] 是一種嵌入大規模異構事件網路的演算法,其中事件被定義為網路中一組節點(可能是不同型別)之間的互動。雖然先前的工作將事件分解為事件中涉及的每對節點之間的成對互動,但 HEBE 將整個事件視為超邊界並同時保留所有參與節點之間的接近度。

具體而言,對於超邊緣中的每個節點,HEBE 將其視為目標節點,並將超邊界中的其餘節點視為上下文節點。因此,基礎優化目標是在給定所有上下文節點的情況下預測目標節點。 

EOE [17] 是用於耦合異構網路的網路嵌入方法,其中兩個同構網路與網路間邊緣連線。EOE 學習兩個網路的潛在節點表示,並利用和諧嵌入矩陣將不同網路的表示轉換為相同的空間。 

Metapath2vec [18] 是 DeepWalk 的擴充套件,適用於異構網路。為了構建隨機漫遊,Metapath2vec 使用基於元路徑的漫遊來捕獲不同型別節點之間的關係。對於來自隨機遊走序列的學習表示,他們提出異構 Skip-gram,其在模型優化期間考慮節點型別資訊。

總結

該 Network Embedding 綜述文章較為系統地闡述了目前 NE 的發展現狀,並從 Unsupervised Network Embeddings, Attributed Network Embeddings 和 Heterogeneous Network Embeddings 等幾個部分進行了介紹。本筆記主要著重於介紹現有的一系列方法,對於其在不同場景的應用不做詳細闡述。

參考文獻

[1] Bryan Perozzi, Rami Al-Rfou, and Steven Skiena. Deepwalk: Online learning of social representations.In Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining, pages 701–710. ACM, 2014. 

[2] Jian Tang, Meng Qu, Mingzhe Wang, Ming Zhang, Jun Yan, and Qiaozhu Mei. Line: Largescale information network embedding. In Proceedings of the 24th International Conference on World Wide Web, pages 1067–1077. ACM, 2015. 

[3] Aditya Grover and Jure Leskovec. node2vec: Scalable feature learning for networks. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pages 855–864. ACM, 2016. 

[4] Bryan Perozzi, Vivek Kulkarni, Haochen Chen, and Steven Skiena. Don’t walk, skip! online learning of multi-scale network embeddings. In 2017 IEEE/ACM International Conference on Advances in Social Networks Analysis and Mining (ASONAM). IEEE/ACM, 2017. 

[5] Shaosheng Cao, Wei Lu, and Qiongkai Xu. Grarep: Learning graph representations with global structural information. In Proceedings of the 24th ACM International on Conference on Information and Knowledge Management, pages 891–900. ACM, 2015. 

[6] Sami Abu-El-Haija, Bryan Perozzi, Rami Al-Rfou, and Alex Alemi. Watch your step: Learning graph embeddings through attention. arXiv preprint arXiv:1710.09599, 2017. 

[7] Daixin Wang, Peng Cui, and Wenwu Zhu. Structural deep network embedding. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pages 1225–1234. ACM, 2016. 

[8] Shaosheng Cao, Wei Lu, and Qiongkai Xu. Deep neural networks for learning graph representations. In Proceedings of the Thirtieth AAAI Conference on Artificial Intelligence, pages 1145–1152. AAAI Press, 2016. 

[9] Cheng Yang, Zhiyuan Liu, Deli Zhao, Maosong Sun, and Edward Y Chang. Network representation learning with rich text information. In IJCAI, pages 2111–2117, 2015. 

[10] Xiaofei Sun, Jiang Guo, Xiao Ding, and Ting Liu. A general framework for content-enhanced network representation learning. arXiv preprint arXiv:1610.02906, 2016. 

[11] Daokun Zhang, Jie Yin, Xingquan Zhu, and Chengqi Zhang. Homophily, structure, and content augmented network representation learning. In Data Mining (ICDM), 2016 IEEE 16th International Conference on, pages 609–618. IEEE, 2016. 

[12] Cunchao Tu, Weicheng Zhang, Zhiyuan Liu, and Maosong Sun. Max-margin deepwalk: discriminative learning of network representation. In Proceedings of the Twenty-Fifth International Joint Conference on Artificial Intelligence (IJCAI 2016), pages 3889–3895, 2016. 

[13] Shiyu Chang, Wei Han, Jiliang Tang, Guo-Jun Qi, Charu C Aggarwal, and Thomas S Huang. Heterogeneous network embedding via deep architectures. In Proceedings of the 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pages 119–128. ACM, 2015. 

[14] Yu Zhao, Zhiyuan Liu, and Maosong Sun. Representation learning for measuring entity relatedness with rich information. In IJCAI, pages 1412–1418, 2015. 

[15] Jiwei Li, Alan Ritter, and Dan Jurafsky. Learning multi-faceted representations of individuals from heterogeneous evidence using neural networks. arXiv preprint arXiv:1510.05198, 2015. 

[16] Huan Gui, Jialu Liu, Fangbo Tao, Meng Jiang, Brandon Norick, and Jiawei Han. Large-scale embedding learning in heterogeneous event data. 2016. 

[17] Linchuan Xu, Xiaokai Wei, Jiannong Cao, and Philip S Yu. Embedding of embedding (eoe): Joint embedding for coupled heterogeneous networks. In Proceedings of the Tenth ACM International Conference on Web Search and Data Mining, pages 741–749. ACM, 2017. 

[18] Yuxiao Dong, Nitesh V Chawla, and Ananthram Swami. metapath2vec: Scalable representation learning for heterogeneous networks. In Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pages 135–144. ACM, 2017.

本文由 AI 學術社群 PaperWeekly 精選推薦,社群目前已覆蓋自然語言處理、計算機視覺、人工智慧、機器學習、資料探勘和資訊檢索等研究方向,點選「閱讀原文」即刻加入社群!

640?

點選標題檢視更多論文解讀: 

關於PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報道人工智慧前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號後臺點選「交流群」,小助手將把你帶入 PaperWeekly 的交流群裡。

640?

▽ 點選 | 閱讀原文 | 下載論文

相關推薦

網路表示學習綜述理解Network Embedding

在碎片化閱讀充斥眼球的時代,越來越少的人會去關注每篇論文背後的探索和思考。在這個欄目裡,你會快速

推薦收藏系列理解JVM虛擬機器(記憶體、垃圾回收、效能優化)解決面試中遇到問題

JVM棧(Java Virtual Machine Stacks): Java中一個執行緒就會相應有一個執行緒棧與之對應,因為不同的執行緒執行邏輯有所不同,因此需要一個獨立的執行緒棧,因此棧儲存的資訊都是跟當前執行緒(或程式)相關資訊的,包括區域性變數、程式執行狀態、方法返回值、方法出口等等。每一個方法

【機器學習筆記】讓你徹底理解準確率,精準率,召回率,真正率,假正率,ROC/AUC

作者:xiaoyu 微信公眾號:Python資料科學 非經作者允許,禁止任何商業轉載。 ROC/AUC作為機器學習的評估指標非常重要,也是面試中經常出現的問題(80%都會問到)。其實,理解它並不是非常難,但是好多朋友都遇到了一個相同的問題,那就是:每次看書的時候

理解Java NIO 核心元件

背景知識 同步、非同步、阻塞、非阻塞 首先,這幾個概念非常容易搞混淆,但NIO中又有涉及,所以總結一下。 同步:API呼叫返回時呼叫者就知道操作的結果如何了(實際讀取/寫入了多少位元組)。 非同步:相對於同步,API呼叫返回時呼叫者不知道操作的結果,後面才

深度學習目標檢測系列弄懂YOLO演算法|附Python原始碼

在之前的文章中,介紹了計算機視覺領域中目標檢測的相關方法——RCNN系列演算法原理,以及Faster RCNN的實現。這些演算法面臨的一個問題,不是端到端的模型,幾個構件拼湊在一起組成整個檢測系統,操作起來比較複雜,本文將介紹另外一個端到端的方法——YOLO演算法,該方法操作簡便且模擬速度快,效

[轉]機器學習科普文章讀懂機器學習,大資料/自然語言處理/演算法全有了”

       在本篇文章中,我將對機器學習做個概要的介紹。本文的目的是能讓即便完全不瞭解機器學習的人也能瞭解機器學習,並且上手相關的實 踐。這篇文件也算是EasyPR開發的番外篇,從這裡開始,必須對機器學習瞭解才能進一步介紹EasyPR的核心。當然,本文也面對一般讀者,不會對

機器學習概念篇詳解凸函式和凸優化,乾貨滿滿

在機器學習各種優化問題中,凸集、凸函式和凸優化等概念經常出現,其是各種證明的前提條件,因此認識其性質對於優化問題的理解尤為重要,本文便就凸集、凸函式和凸優化等各種性質進行闡述,文末分享一波凸優化的學習資料和視訊! 一、幾何體的向量表示 在介紹凸集等概念之前

深度 | 生成對抗網路初學入門讀懂GAN的基本原理(附資源)

選自 Sigmoidal 作者:Roman Trusov 機器之心編譯 參與:Panda 生成對抗網路是現在人工智慧領域的當紅技術之一。近日,Sigmoidal.io 的部落格發表了一篇入門級介紹文章,對 GAN 的原理進行了解釋說明。另外,在該文章的最後還附帶了一些能幫助初學者自己

【深度學習理論】看懂卷積神經網路

本文主要介紹了神經網路中的卷積神經網路,適合初學者閱讀。概述深度學習和人工智慧是 2016 年的熱詞;2017 年,這兩個詞愈發火熱,但也更加容易混淆。我們將深入深度學習的核心,也就是神經網路。大多數神經網路的變體是難以理解的,並且它們的底層結構元件使得它們在理論上和圖形上是

從夏農熵到手推KL散度帶你縱覽機器學習中的資訊理論

資訊理論與資訊熵是 AI 或機器學習中非常重要的概念,我們經常需要使用它的關鍵思想來描述概率分佈

前置機器學習(四)掌握Pandas用法

> Pandas提供快速,靈活和富於表現力的**資料結構**,是強大的**資料分析**Python庫。 本文收錄於[機器學習前置教程系列](https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MzUxMjU4NjI4MQ=

JAVA學習路線圖(詳解)

-h 基礎 tex 蝸牛 學習路線 jdbc sql https ase 此乃是java攻城獅的學習路線圖,由簡到繁,由易到難,一步步的學習,最後成為JAVA攻城獅。 階段1 1:學習HTML 2:學習CSS 3:JavaScript

技能|三次簡化張圖理解LSTM/GRU門控機制

並不是 identity vol scan eof ref 參考 學習 小結 作者 | 張皓 引言 RNN是深度學習中用於處理時序數據的關鍵技術, 目前已在自然語言處理, 語音識別, 視頻識別等領域取得重要突破, 然而梯度消失現象制約著RNN的實際應用。LSTM和GRU是兩

python django學習 static件處理與線上部署測試

image 運行 color 文件處理 收集 scrip 線上部署 ges sta static文件相關操作涉及:a. 文件位置與訪問路徑映射b. setting.py與static相關配置 STATIC_URLSTATIC_ROOTSTATICFILES_DIRS

從HTTP/0.9到HTTP/2讀懂HTTP協議的歷史演變和設計思路

eight 結果 key 視頻 this sso單點登陸 會有 研究 patch 本文原作者阮一峰,作者博客:ruanyifeng.com。 1、引言 HTTP 協議是最重要的互聯網基礎協議之一,它從最初的僅為瀏覽網頁的目的進化到現在,已經是短連接通信的事實工業標準,最新版

git學習筆記臺電腦上配置兩個git賬戶

idt ica 項目 auth 開源中國 重復 gmail name 微軟 如何在一臺電腦上配置兩個git賬戶,現在雲端倉庫很多,有開源中國的 gitee.com 微軟的 github.com 還有 gitlab.com 和 bitbucket.org 等等,下面是具體步驟

理解Netty模型架構

本文基於Netty4.1展開介紹相關理論模型,使用場景,基本元件、整體架構,知其然且知其所以然,希望給讀者提供學習實踐參考。 1 Netty簡介 Netty是 一個非同步事件驅動的網路應用程式框架,用於快速開發可維護的高效能協議伺服器和客戶端。 JDK原生NIO程式的問題 JDK原生

理解Tensorflow中reduce_mean() reduce_sum() reduce_max()...系列

原文medium部落格連結 在Tensorflow(TF)中,常常會看到“reduce_"系列的東西,比如reduce_sum,reduce_mean…,剛剛開始我覺得,求和就sum就行,為什麼加一個reduce_字首? 後來我意識到,每一次求和或者求平均值,其實都是自動的對Tens

JAVA併發程式設計全面搞懂併發程式設計

序言 哈哈哈哈哈哈,原諒我這個標題黨哈,我現在也只是剛入門併發程式設計,學習的過程過程中發現好多專業詞語不會讀或者是讀不準。。所以就彙總了下,把一些比較難讀的給標上英標啦。。 正文 callable:['kɔ:ləbl]  一個類似runnable的介面,方法可以有返回值

理解class.getClassLoader().getResourceAsStream(file)和class.getResourceAsStream(file)區別

基礎理解 都是實現獲取在classpath路徑下的資原始檔的輸入流。 為什麼是classpath而不是src,因為當web專案執行時,IDE編譯器會把src下的一些資原始檔移至WEB-INF/classes,classPath目錄其實就是這個classes目錄。這個目錄下放的一般