今天學習的是微軟的一篇論文《metapath2vec: Scalable Representation Learning for Heterogeneous Networks》,發表於 KDD 2017,目前引用次數超 500 次。

很多網絡表徵學習主要是針對同構網絡的,而本文提出的一種專門用於異構網絡表徵學習的方法——Metapath2Vec,其能夠同時捕捉不同類型節點之間的 「結構關係」「語義關係」

Metapath2Vec 使用基於元路徑的隨機遊走方法來捕捉節點的異構鄰居,然後使用異構 Skip-Gram 模型進行訓練,同時建模結構上和語義上相近的節點。

此外,作者還提出了 Metapath2Vec++ 方法,針對每種類型的節點進行單獨歸一化,即把異構網絡分解成不同的同構網絡。

最終實驗表明,這兩種 Metapath2Vec 方法不僅在異構網絡挖掘任務中取得了 SOTA 的成績,而且還能夠識別不同網絡對象之間的結構和語義關係。

1.Introduction

目前大部分的工作都集中在同構網絡中,但真實場景下異構網絡纔是最常見的。針對同構網絡設計的模型很多都沒法應用於異構網絡,比如說,對於一個學術網絡而言:如何高效根據上下文信息表徵不同類型的節點?能否用 Deepwalk 或者 Node2Vec 來學習網絡中的節點?能否直接將應用於同構網絡的 Embedding 模型直接應用於異構網絡?

解決諸如此類的挑戰,有利於更好的在異構網絡中應用多種網絡挖掘任務:

傳統的方法都是基於結構特徵(如元路徑 meta-path)來求相似性,類似的方法有 PathSim、PathSelClus、RankClass 等:

但這種方式挖掘出來的元路徑(如 “APCPA”)經常會出現相似度爲 0 的情況。如果我們能夠將 Embedding 的思想應用於異構網絡,則不會再出現這種情況。

基於這種觀察,作者提出了兩個可以應用於異構網絡的 Graph Embedding 的算法模型——metapath2vec 以及 metapath2vec++。

2.Metapath2Vec

爲了對異構網絡節點中的鄰居進行建模,metapath2vec 引入了異構 skip-gram 模型。此外,爲了捕獲異構網絡的結構,作者還提出了基於元路徑的隨機遊走策略。

先給出流程圖:

2.1 Meta-Path-Based Random Walks

Metapath2vec 同構 metapath 來指導隨機遊走的節點跳轉。給出元路徑模式:

其中,節點類型間的關係表示:

“APA” 關係表示兩位作者(A)在一篇論文(P)上的合著關係;“APVPA” 表示兩位作者(A)在同一會議(V)發表過論文(P)。這種元路徑有利於異構網絡的數據挖掘。

基於元路徑模式,我們給出轉移概率:

其中,表示節點的鄰居中屬於類型的節點集合。

也就是說,遊走是在預先設定的 meta-path的條件上。通常 meta-path 一般用在對稱的路徑上,第一個節點類型與最後一個節點類型相同,例如 OAPVPAO。

2.2 Heterogeneous skip-gram

對於每個節點 v,根據其不同類型的上下文最大化其上下文:

其中,V 表示網絡的節點集合;表示節點類型的集合;表示節點 v 的類型爲 t 的鄰居集合。表示節點 v 的 Embedding 向量。

考慮負採樣的目標函數:

其中,是負採樣中樣本的預定義分佈;metapath2vec 通過均勻地觀察不同類型的節點並繪製(負)節點來維護一個節點頻率分佈。

相比於考慮負採樣的 Skip-gram 的目標函數而言並無本質區別,唯一的區別在於採樣的策略上發生了變換。

##2.3 Metapath2Vec++

Metapath2Vec 在計算 Softmax 時不考慮節點的類型。Metapath2Vec++ 在採集負樣本時,考慮樣本與正樣本屬於同一個節點類型。也就是 「異構負採樣 (Heterogeneous negative sampling)」

考慮條件概率 p 在特定的節點類型 t 上做標準化:

此時,目標函數爲:

與 Skip-gram 沒有本質區別,但異構網絡的 「異構」 信息不僅僅在採樣中體現出來,也在目標函數中被體現出來。

來看下僞代碼:

3.Experiment

簡單看一下實驗。

以 Aminer 數據集爲例,“會議”節點節點分類的結果:(百分號爲訓練的數據集的佔比)

“作者”節點分類的結果:

參數敏感性實驗:

節點分類結果:

metapath2vec++ 聚類結果的可視化:

4.Conclusion

總結:本文定義了異構網絡中表徵學習問題,其存在不同類型的節點和邊。爲了應對異構網絡所帶來的挑戰,作者提出了 Metapath2Vec 和 Metapath2Vec++ 兩種算法。Metapath2Vec 首先 「基於元路徑的引導進行隨機遊走」 並採集到相關序列,該能夠捕捉到不同類型節點的關係結構和語義相關性。雖然,作者利用異構 Skip-gram 和異構負採樣技術來學習節點的表徵。Metapath2Vec++ 算法則是在計算 Softmax 時不考慮節點的類型。最終實驗表明,這兩種算法在異構網絡中取得了不錯的成績。

5.Reference

  1. Dong Y, Chawla N V, Swami A. metapath2vec: Scalable representation learning for heterogeneous networks[C]//Proceedings of the 23rd ACM SIGKDD international conference on knowledge discovery and data mining. 2017: 135-144.

  2. 《metapath2vec: Scalable Representation Learning for Heterogeneous Networks》

推薦閱讀

這個NLP工具,玩得根本停不下來

文本自動摘要任務的“不完全”心得總結番外篇——submodular函數優化

Node2Vec 論文+代碼筆記

模型壓縮實踐收尾篇——模型蒸餾以及其他一些技巧實踐小結

中文命名實體識別工具(NER)哪家強?

學自然語言處理,其實更應該學好英語

斯坦福大學NLP組Python深度學習自然語言處理工具Stanza試用

關於AINLP

AINLP 是一個有趣有AI的自然語言處理社區,專注於 AI、NLP、機器學習、深度學習、推薦算法等相關技術的分享,主題包括文本摘要、智能問答、聊天機器人、機器翻譯、自動生成、知識圖譜、預訓練模型、推薦系統、計算廣告、招聘信息、求職經驗分享等,歡迎關注!加技術交流羣請添加AINLPer(id:ainlper),備註工作/研究方向+加羣目的。

閱讀至此了,分享、點贊、在看三選一吧:pray:

相關文章