在圖數據挖掘任務中,對于特定任務,有標簽的數據通常十分稀少,然而現實中存在著大量無標簽的數據。
因此,如何通過預訓練從這些標簽數據中獲取有用的先驗知識,從而提升下游任務的表現成為了一個有價值的問題。我們本篇工作提出了一種在大規模異質圖上進行高效預訓練的框架。
近年來,圖神經網絡作為圖結構數據學習的重要方法,可以通過遞歸的從鄰居聚合消息(特征和節點表示)來學習到有效的圖表示。但是圖神經網絡通常需要大量的有標簽數據來取得令人滿意的表現。為了解決標簽稀疏的問題,一些工作提出了基于自監督的方法來從無標簽的數據中提取先驗知識。然而,現有的預訓練框架都是基于同質圖的,但現實生活中的交互系統通常都是有多種類型節點和邊的大規模的異質圖。因此,在我們設計預訓練模型的時候遇到了如下兩個挑戰。
如何捕捉異質圖的語義和結構性質 相比同質圖,異質圖具有更豐富的語義和結構信息。不同類型的節點通常有不同的圖結構性質(例如會議節點的度要普遍高于其他類型的節點)。不同類型的連邊通常有不同的語義關系。因此為了有效的預訓練,我們需要捕捉這些信息。
如何在大規模異質圖上高效預訓練一個 GNN
現實生活中的異質圖可以擁有數十億的節點和邊。為了可以在這樣這樣大規模的圖上進行預訓練,我們需要設計一種加速策略來保證我們在大規模異質圖上的預訓練效率。
為了解決上述的兩個問題,我們提出了 PTHGNN 來進行大規模異質圖上的預訓練。對于第一個挑戰,基于對比學習,我們提出了節點級別和網絡模式級別的預訓練任務來捕捉異質圖的語義和結構信息。對于第二個挑戰,我們提出了基于 personalized pagerank 的邊稀疏化方法,從而來提高我們進行大規模預訓練的效率。
表格是一種非常重要和常見的半結構化數據,廣泛使用在文檔和網頁中。在收集的六千萬個文檔和網頁表格(包括超過二十億單元格)中,微軟亞洲研究院的研究員們首次對通用結構的表格進行了大規模的預訓練。并且在表格結構理解的六個下游數據集上,也都取得 SOTA 的效果。
理解表格面臨著各種挑戰,需要綜合理解語義、空間和結構,如:需要在簡短的單元格文本里來捕捉表格里的語義;需要在二維的表格空間中進行理解;需要對表格的層級信息理解。
Transformer 在自然語言的預訓練上已經取得了較好的效果。但是,針對通用表格位置、結構建模困難等一系列問題,本文相應地提出了 Tree-based Transformer。同時,研究員們還設計了二維樹來建模單元格的空間和層級,并對單元格的二維樹坐標和單元格間的二維樹距離進行了量化,進一步設計了基于二維樹結構的注意力機制。
在表格預訓練任務上,為了可以學習到不同層級的表征,且更好的應用到不同級別的下游任務上,本文除了使用經典的 token MLM 任務,還進一步設計了 cell-level cloze 的任務和 table-level 的 context retrieval 任務。
實驗表明,模型在表格結構理解(表格類型識別和單元格類型識別)的六個下游數據集上均取得了最好的效果。消融實驗也證明了利用樹結構對理解通用結構表格的有效性。同時,結合三個預訓練任務,也有助于提高下游任務的表現。
最近,異質圖神經網絡(HGNNs)在處理異質信息網絡(HIN)方面展現了優越的能力。大部分的HGNNs都遵循半監督學習的設定,然而實際應用中標簽信息往往很難獲得。而自監督學習由于能夠自發地從數據本身挖掘監督信號,已經成為無監督設定下很好的選擇。作為一種典型的自監督機制,對比學習(contrastive learning)通過從數據中抽取出正負樣本,同時最大化正例間的相似度以及最小化負例間相似度,能夠學到判別性的表示。盡管對比學習在CV和NLP領域得到了廣泛應用,如何將它和HIN結合卻尚未解決。
通過認真考慮HIN以及對比學習的特性,我們總結了三個需要解決的本質問題:
1)如何設計異質對比機制 HIN中包含復雜結構,例如元路徑(meta-path),需要利用跨視圖的對比學習機制來綜合刻畫。
2)如何在HIN中選擇合適的視圖 對于視圖的基本要求是,能夠刻畫網絡的局部結構和高階結構。網絡模式(network schema)反應了節點間的直接連接情況,捕捉局部結構;元路徑通常被用來抽取多跳關系。
3)如何設置困難的對比任務 簡單的正負關系很容易被捕獲,模型學到的信息有限。增加對比任務的難度,可通過增加兩個視圖間的差異,或者生成更高質量的負樣本來實現。
在本篇文章中,我們提出了一個新的基于協同對比學習的異質圖神經網絡框架,簡稱HeCo。HeCo采用跨視圖的對比機制,選擇網絡模式和元路徑作為兩個視圖,結合視圖掩蓋機制,分別學得兩個視圖下的節點表示。之后,利用跨視圖對比學習,使得兩個視圖協同監督。此外,我們還提出兩個HeCo擴展,通過生成更高質量的負例,提升最終效果。
異構網絡的表示學習方法為每個節點產生一個低維向量嵌入,通常在所有涉及節點的任務中都是固定的。許多現有的方法關注于以一種與下游應用程序無關的方式獲取節點的靜態向量表示。然而,在實踐中,下游任務(如鏈接預測)需要特定的上下文信息,這些信息可以從與節點相關的子圖中提取出來,作為任務的輸入。為了解決這一挑戰,我們提出了SLiCE,這是一個使用整個圖的全局信息和局部注意驅動機制來學習上下文節點表示的靜態表示學習方法的框架。我們首先通過引入高階語義關聯和屏蔽節點以自監督的方式預訓練我們的模型,然后針對特定的鏈接預測任務微調我們的模型。我們不再通過聚合所有通過元路徑連接的語義鄰居的信息來訓練節點表示,而是自動學習不同元路徑的組合,這些元路徑表征了特定任務的上下文,而不需要任何預先定義的元路徑。SLiCE在幾個公開可用的基準網絡數據集上顯著優于靜態和上下文嵌入學習方法。通過廣泛的評價,我們也證明了上下文學習的可解釋性、有效性和SLiCE的可擴展性。
圖神經網絡(GNN)已經成為圖表示學習的事實標準,它通過遞歸地聚集圖鄰域的信息來獲得有效的節點表示。盡管 GNN 可以從頭開始訓練,但近來一些研究表明:對 GNN 進行預訓練以學習可用于下游任務的可遷移知識能夠提升 SOTA 性能。但是,傳統的 GNN 預訓練方法遵循以下兩個步驟:
在大量未標注數據上進行預訓練; 在下游標注數據上進行模型微調。 由于這兩個步驟的優化目標不同,因此二者存在很大的差距。
在本文中,我們分析了預訓練和微調之間的差異,并為了緩解這種分歧,我們提出了一種用于GNNs的自監督預訓練策略L2P-GNN。方法的關鍵是L2P-GNN試圖以可轉移的先驗知識的形式學習如何在預訓練過程中進行微調。為了將局部信息和全局信息都編碼到先驗信息中,我們在節點級和圖級設計了一種雙重自適應機制。最后,我們對不同GNN模型的預訓練進行了系統的實證研究,使用了一個蛋白質數據集和一個文獻引用數據集進行了預訓練。實驗結果表明,L2P-GNN能夠學習有效且可轉移的先驗知識,為后續任務提供好的表示信息。我們在//github.com/rootlu/L2P-GNN公開了模型代碼,同時開源了一個大規模圖數據集,可用于GNN預訓練或圖分類等。
總體來說,本文的貢獻如下:
圖表示學習
近年來,圖神經網絡(GNNs)在結構化數據建模方面取得了巨大的成功。然而,大多數GNN是為同構網絡設計的,即所有節點或邊具有相同的特征空間和表示分布。這使得它們無法代表真實世界中不斷演化的異構圖,如知識圖譜、物聯網圖、領英經濟圖、開放學術圖和Facebook實體圖。在這次演講中,我將介紹圖神經網絡架構,它可以建模十億年規模的異構圖形與動態。重點將是我們如何設計圖注意力和相對時間編碼機制,以捕獲真實圖異構和動態性質。接下來,我將進一步討論為一般的圖挖掘任務預先訓練這類GNN的策略。最后,為了處理web規模的數據,我將介紹一種異構的小型批處理圖采樣算法,該算法帶有一個歸納的時間戳分配方法,用于高效和可擴展的訓練。大量的實驗顯示了在實踐中對網絡規模圖進行預訓練的GNNs的前景。
//ericdongyx.github.io/papers/slides-Graph-Rep-Learning-GNN-PreTraining-at-CCF-BAAI-2020.pdf
近年來,許多在線平臺(如亞馬遜和淘寶網)都取得了巨大成功。在線平臺上的用戶行為是動態變化的,且會隨著時間而發展。序列推薦的主要目標就是從用戶歷史行為中捕捉關鍵的信息,并基于此準確表征用戶興趣進而提供高質量的推薦[1,2,3]。已有研究人員基于深度學習提出很多序列推薦的模型,此外還有研究人員結合豐富的上下文信息(如商品屬性)一起進行用戶興趣建模,實驗表明,上下文信息對于提高推薦效果很重要。
盡管現有方法在一定程度上已被證明有效,但它們有兩個可能會影響推薦效果的缺陷。首先,他們主要依靠“下一個物品推薦”(Next Item Prediction)損失函數來學習整個模型。在使用上下文信息時,也仍然只使用這一個優化目標。已有研究表明,這種優化方法很容易受到數據稀疏性等問題的影響。此外,它們過分強調最終的推薦性能,而上下文數據和序列數據之間的關聯或融合卻沒有在數據表示中被很好地捕獲。多個領域的實驗結果表明[4,5,6],更有效的數據表示方法(例如,預先訓練的上下文信息嵌入)已成為改善現有模型或體系結構性能的關鍵因素。因此,有必要重新考慮學習范式并開發更有效的序列推薦系統。
為了解決上述問題,我們借鑒了自監督學習的思想來改進序列推薦的方法。自監督學習是一個新興的學習范式,旨在讓模型從原始數據的內在結構中學習。自監督學習的一般框架是首先從原始數據中構建新的監督信號,然后通過這些額外設計的優化目標來對模型進行預訓練。如之前討論的,有限的監督信號和低效的數據表示是現有的神經序列推薦方法的兩個主要問題。幸運的是,自監督學習似乎為解決這兩個問題提供了解決方案:它通過內在數據相關性來設計輔助訓練目標以提供豐富的自監督信號,并通過預訓練的方法增強數據表示。對于序列推薦,上下文信息以不同的形式存在,包括物品,屬性,子序列和序列。開發統一表征這種數據相關性的方法并不容易。對于這個問題,我們借鑒最近提出的互信息最大化(Mutual Information Maximization, MIM)方法,其已被證明可以有效捕獲原始輸入的不同視圖(或部分)之間的相關性。
基于以上,我們提出了一種基于自監督學習方法的序列推薦模型(Self-Supervised Learning Sequential Recommendation, S3-Rec)。基于自注意力機制的體系結構[3],我們首先使用設計的自監督訓練目標對模型進行預訓練,然后根據推薦任務對模型進行微調。此工作的主要新穎之處在預訓練階段,我們基于MIM的統一形式精心設計了四個自監督的優化目標,分別用于捕獲物品-屬性間,序列-物品間,序列-屬性間和序列-子序列間的相關性。因此,S3-Rec能夠以統一的方式來表征不同粒度級別或不同形式數據之間的相關性,并且也可以靈活地適應新的數據類型或關聯模式。通過這樣的預訓練方法,我們可以有效地融合各種上下文數據,并學習屬性感知的上下文化的數據表示。最后,將學習到的表示輸入推薦模型,并根據推薦任務對其進行優化。
為了驗證S3-Rec的有效性,我們在6個不同領域的真實數據集上進行了充分的實驗。實驗結果表明,S3-Rec超過了目前的SOTA,并且在訓練數據非常有限的情況表現得尤為明顯。另外S3-Rec還可以有效得適應其他類別的神經體系結構,例如GRU[1]和CNN[2]。我們的主要貢獻概括如下:(1)據我們所知,這是首次采用MIM進行自監督學習來改善序列推薦任務的工作;(2)我們提出了4個自監督優化目標來最大化不同形式或粒度的上下文信息的互信息;(3)在6個數據集上的充分實驗證明了我們方法的有效性。
簡介
本文研究如何利用圖生成作為自監督任務來預訓練GNN。我們將圖的生成概率分解成兩個模塊:1)節點特征生成;2)圖結構生成。通過對這兩個模塊建模,GPT-GNN可以捕捉圖任務里特征與結構之間的關聯,從而不需要很多的標注數據就可達到很高的泛化性能。
背景:預訓練
機器學習的成功很大程度上取決于數據。但是,高質量的標記數據通常很昂貴且難以獲得,尤其是對于希望訓練參數較多的模型。而相對應的,我們卻可以很容易地獲取大量的無標記數據,其數量可以是標記數據的數千倍。 例如,在社交網絡上進行異常檢測時,惡意帳戶的標注需要依賴于專家知識,數量較小,而整個網絡的規模卻可以達到十億規模。
為了解決標注數據較少,盡可能利用其無標注數據,一個常規的做法是自監督的預訓練(self-supervisedpre-training)。其目標是設計合理的自監督任務,從而使模型能從無標注數據里學得數據的信息,作為初始化遷移到下游任務中。由于目標任務中很多的知識已經在預訓練中學到,因此通過預訓練,我們只需要非常少量的標注數據,就能得到較好的泛化性能。
在NLP領域,BERT及其變種的取得了巨大的成功,證明了語言模型作為一個自監督任務,可以幫助訓練非常深的Transformer模型,以捕捉語言的底層知識,如語法、句法、詞義等。同樣,在CV領域,最近的工作如SimCLR也顯示出通過對比學習(Contrastive Learning) 對ResNet進行預訓練也可以顯著提升泛化性能。這些成功表明,無標注數據本身包含豐富的語義知識,因此如果通過預訓練可以使模型能捕捉無標注數據的分布,就能作為初始化幫助一系列下游任務。
受到這些工作的啟發,我們思考能否將預訓練的想法運用到圖數據分析中。本工作就致力于預訓練圖神經網絡,以期GNN能夠學習到圖數據的結構和特征信息,從而能幫助標注數據較少的下游任務。
GPT-GNN模型
要在圖數據上做預訓練,第一個問題是:如何設計合適的無監督學習任務?
本工作提出用生成模型來對圖分布進行建模,即逐步預測出一個圖中一個新節點會有哪些特征、會和圖中哪些節點相連。
由于我們想同時捕獲屬性和結構信息,因此需要將每個節點的條件生成概率分解為兩項,特征生成與圖結構生成。對每一個節點,我們會先掩蓋其特征及部分邊,僅提供剩下的部分作為已經觀測到的邊。
在第一步中,我們將通過已經觀測到的邊,預測該節點的特征,
在第二步中,我們將通過已經觀測到的邊,以及預測出的特征,來預測剩下的邊。
我們可以寫出對應的分解表達式。從理論上,這個目標的期望等同于整個圖的生成概率。
為了并行高效地計算每個節點的loss,避免信息泄露(如節點特征預測的時候如何避免看到該節點自己的輸入特征),以及處理大圖和增加負樣本采樣的準確性,我們做了很多的模型設計。詳見文章。
實驗
我們在兩個大規模異構網絡和一個同構網絡上進行了實驗。
第一個異構圖是MicrosoftAcademic Graph(OAG),其中包含超過2億個節點和23億條邊。另一個是AmazonRecommendation數據集。
總體而言,我們提出的GPT-GNN在不同的實驗設定下顯著提高下游任務的性能,平均能達到9.1%的性能提升。
我們還評估了在不同百分比的標記數據下,GPT-GNN是否依然能取得提升。我們可以看到,使用GPT預訓練時,僅使用20%標簽數據的模型性能就會比使用100%數據進行直接監督學習的模型性能更高。這顯示了預訓練的有效性,尤其是在標簽稀缺時。
摘要
圖神經網絡(GNNs)已被證明在建模圖結構的數據方面是強大的。然而,訓練GNN通常需要大量指定任務的標記數據,獲取這些數據的成本往往非常高。減少標記工作的一種有效方法是在未標記數據上預訓練一個具有表達能力的GNN模型,并進行自我監督,然后將學習到的模型遷移到只有少量標記的下游任務中。在本文中,我們提出了GPT-GNN框架,通過生成式預訓練來初始化GNN。GPT-GNN引入了一個自監督屬性圖生成任務來預訓練一個GNN,使其能夠捕獲圖的結構和語義屬性信息。我們將圖生成的概率分解為兩部分:1)屬性生成和2)邊生成。通過對兩個組件進行建模,GPT-GNN捕捉到生成過程中節點屬性與圖結構之間的內在依賴關系。在10億規模的開放學術圖和亞馬遜推薦數據上進行的綜合實驗表明,GPT-GNN在不經過預訓練的情況下,在各種下游任務中的表現顯著優于最先進的GNN模型,最高可達9.1%。
**關鍵詞:**生成式預訓練,圖神經網絡,圖表示學習,神經嵌入,GNN預訓練