阿里開源 Euler:國內首個工業級圖表徵學習框架
先奉上開源地址: https://github.com/alibaba/euler
Euler 開源:用圖表徵學習解決深度學習瓶頸
Euler 是阿里巴巴旗下數字營銷平臺阿里媽媽自研的大規模分散式圖表徵學習框架,目前已經應用於阿里媽媽的各項業務中,包括檢索匹配場景、CTR 預估場景、營銷工具場景和反作弊場景等。
近年來,圖神經網路和圖表徵學習成為一大熱門研究領域,尤其在今年的 NeurIPS 上,圖與表徵學習論文數量眾多,表現出很強勢的上升勢頭和關注度,獲得了來自學界的更多關注和探索。
為什麼阿里媽媽會選擇在圖表徵學習大熱的背景下開源 Euler 呢?
阿里媽媽告訴 AI 前線記者,事實上早在 2016 年,也就是圖表徵學習還未受到熱切關注之前,阿里媽媽就已經開始進行了圖表徵學習相關的探索,2017 年開始大規模應用,最終沉澱出首個工業級圖表徵學習框架 Euler。
阿里巴巴擁有大量的資料,而資料之間的連線,抽象到本質就是圖的表現形式。圖作為表達能力很強的通用的資料結構,可以用來刻畫現實世界中的很多問題,例如社交場景的使用者網路、電商場景的使用者和商品網路、電信場景的通訊網路、金融場景的交易網路和醫療場景的藥物分子網路等等。相比文字、語音和影象領域的資料比較容易處理成歐式空間的 Grid-like 型別,適合現有的深度學習模型處理,圖是一種非歐空間下的資料,並不能直接應用現有方法,需要專門設計的圖神經網路系統。
但是,阿里媽媽在做技術探索的過程中發現,目前業界的一些圖深度學習演算法並不能在大規模異構資料上直接應用,業界並沒有一個可以處理大規模複雜關係連結的圖學習表示框架。出於業務需求,阿里媽媽在探索過程中逐漸沉澱出了 Euler。
阿里媽媽研發 Euler 的另一個原因,基於阿里媽媽的技術判斷——圖神經網路將端到端學習與歸納推理相結合,有望解決深度學習無法處理的關係推理、可解釋性等一系列問題,對結構知識的表達、計算和組合泛化是實現具備 human-like AI 的關鍵,圖神經網路有希望在這些方面形成突破,使得機器能力進一步提升,因此對圖神經網路的深入應用有希望形成下一波技術紅利。雖然圖和表徵學習雖然還處於早期發展階段,但阿里媽媽判斷未來它將是技術發展的一個非常大的賽道,在這個時間點開源,一是為了將其創新成果開放給業界,二是希望將這個主賽道的成果聚集起來,一起促進該領域的發展。
Euler 有哪些核心能力?
1)大規模圖的分散式學習
工業界的圖往往具有數十億節點和數百億邊,有些場景甚至可以到數百億節點和數千億邊,在這樣規模的圖上單機訓練是不可行的。Euler 支援圖分割和高效穩定的分散式訓練,可以輕鬆支撐數十億點、數百億邊的計算規模。
2)支援複雜異構圖的表徵
工業界的圖關係大都錯綜複雜,體現在節點異構、邊關係異構,另外節點和邊上可能有非常豐富的屬性,這使得一些常見的圖神經網路很難學到有效的表達。Euler 在圖結構儲存和圖計算的抽象上均良好的支援異構點、異構邊型別的操作,並支援豐富的異構屬性,可以很容易的在圖學習演算法中進行異構圖的表徵學習。
3)圖學習與深度學習的結合
工業界有很多經典場景,例如搜尋/推薦/廣告場景,傳統的深度學習方法有不錯效果,如何把圖學習和傳統方法結合起來,進一步提升模型能力是很值得探索的。Euler 支援基於深度學習樣本的 mini-batch 訓練,把圖表徵直接輸入到深度學習網路中聯合訓練。
4)分層抽象與靈活擴充套件
Euler 系統抽象為圖引擎層、圖操作運算元層、演算法實現層三個層次,可以快速的在高層擴充套件一個圖學習演算法。實際上,Euler 也內建了大量的演算法實現供大家直接使用。
### 詳解 Euler 內建演算法實現
考慮到框架的易用性,我們內建了多種知名演算法以及幾種我們內部的創新演算法。所有實現,我們仔細進行了測試,保證了演算法執行效率,且演算法效果與原論文對齊。使用者無需進行開發,注入資料到平臺後,可以直接使用。我們內建的演算法列表見下表。鑑於公開演算法知名度很高,我們不做出詳細描述,請參見原始論文。有關我們內部演算法的詳細資訊請見 2.3 節。
Euler 系統設計
Euler 系統整體可以分為三層:最底層的分散式圖引擎,中間層圖語義的運算元,高層的圖表示學習演算法。
下邊我們分開描述各個層次的核心功能。
分散式圖引擎
為了支援我們的業務,我們不僅面臨超大規模圖儲存與計算的挑戰,還需要處理由多種不同型別的點,邊及其屬性構成異構圖的複雜性。我們的分散式圖引擎針對海量圖儲存,分散式並行圖計算及異構圖進行了優化設計,確保了工業場景下的有效應用。
l 首先為了儲存超大規模圖(數十億點,數百億邊),Euler 必須突破單機的限制,從而採用了分散式的儲存架構。在圖載入時,整張圖在引擎內部被切分為多個子圖,每個計算節點被分配 1 個或幾個子圖進行載入。
l 為了充分利用各個計算節點的能力,在進行圖的操作時,頂層操作被分解為多個對子圖的操作由各個節點並行執行。這樣隨著更多節點的加入,我們可以得到更好的服務能力。其次,我們引入了多 replica 的支援。從而使用者可以靈活平衡 shard 與 replica 的數量,取得更佳的服務能力。最後,我們針對圖表示學習優化了底層的圖儲存資料結構與操作演算法,單機的圖操作效能獲得了數倍的提升。
l 多種不同型別的邊,點與屬性所組成的異構圖,對很多複雜的業務場景必不可少。為了支援異構圖計算能力,底層儲存按照不同的節點與邊的型別分別組織。這樣我們可以高效支援異構的圖操作。
中間圖操作運算元
由於圖學習演算法的多樣性以及業務的複雜性,固定的某幾種甚至幾十種演算法實現無法滿足客戶的所有需求。所以在 Euler 設計中,我們圍繞底層系統的核心能力著重設計了靈活強大的圖操作運算元,且所有運算元均支援異構圖操作語義。使用者可以利用它來快速搭建自己的演算法變體,滿足獨特的業務需求。
首先,Euler 分散式圖引擎提供了 C++ 的 API 來提供所有圖操作。基於這個 API,我們可以方便的基於某個深度學習框架新增圖操作的運算元,從而利用 Euler C++ 介面訪問底層圖引擎的能力。我們支援廣泛使用的深度學習框架,比如阿里巴巴的 X-DeepLearning 與流行的 TensorFlow。後繼我們也會考慮支援其它的深度學習框架,比如 PyTorch。
利用靈活的圖操作運算元,機器學習框架可以在每個 mini-batch 與 Euler 互動,動態擴充與組織訓練樣本。這樣,Euler 不僅支援傳統的以圖為中心的學習模式,且可以把圖學習的能力注入傳統的學習任務,實現端到端訓練。
按照功能分類,我們的核心繫統提供的 API 可以分類如下:
-
全域性帶權取樣點和邊的能力。主要用於 mini-batch 樣本的隨機生成以及 Negative Sampling。
-
基於給定節點的鄰居操作。這個是圖計算的核心能力包括鄰居帶權取樣,取 Top 權重的鄰居等。
-
點 / 邊的屬性查詢。這個能力使得演算法可以使用更豐富的特徵,而不僅限於點 / 邊的 ID 特徵。
高層演算法實現
如 1.2 節所述,除了 LINE 演算法以外,我們實現的演算法可以分為隨機遊走與鄰居匯聚兩大類演算法。有關外部演算法的詳細資訊,請參見 1.2 節提供的論文連結。下面我們詳細介紹內部的三個創新演算法,相關論文的連結我們會在 github 上給出。
- Scalable-GCN
它是一種高效的 GCN 訓練演算法。GCN 以及更一般的 Graph Neural Network (GNN) 類的方法由於能有效的提取圖結構資訊,在許多工上均取得了超過以往方法的效果。但是 GCN 的模型會引入巨大的計算量,導致模型的訓練時間不可接受。Scalable-GCN 在保證優秀效果的前提下,把 mini-batch GCN 的計算複雜度從層數的指數函式壓到線性。這使得在阿里媽媽的海量資料下應用三層 GCN 成為可能,廣告匹配的效果獲得了顯著提升。
- LsHNE
LsHNE 是我們結合阿里媽媽搜尋廣告場景創新地提出一種無監督的大規模異構網路 embedding 學習方法。區別於 DeepWalk 類演算法,LsHNE 的特點包括:a) 採用深度神經網路學習表達,可以有效融合 Attribute 資訊;b) 考慮 embedding 表示的距離敏感需求,提出兩個負取樣原則:分佈一致性原則和弱相關性原則;c) 支援異構網路。
- LasGNN
LasGNN 是一種半監督的大規模異構圖卷積神經網路學習方法, 它有效融合了圖結構知識資訊和海量使用者行為資訊,大幅提升了模型精度,是工業界廣告場景下首次應用半監督圖方法。該方法有多處創新,例如將 metapath 的思想應用於圖卷積網路中,並提出了 metapathGCN 模型,有效解決了異構網路的卷積問題;提出了 metapathSAGE 模型,在模型中我們設計高效的鄰居取樣的方法,使得大規模的多層鄰居卷積成為可能。
Euler 應用例項
Euler 平臺已經在阿里媽媽搜尋廣告的多個場景下廣泛實用,並取得了出色的業務效果,例如檢索匹配場景、CTR 預估場景、營銷工具場景和反作弊場景等。我們以匹配場景的為例來看下 Euler 的應用。
廣告匹配的任務是給定使用者搜尋請求,匹配模組通過理解使用者意圖,快速準確地從海量廣告中找到高質量的小規模候選廣告集,輸送給下游的排序模組進行排序。
我們首先使用一些傳統的挖掘演算法,從使用者行為日誌、內容屬性等維度挖掘出 Query(查詢詞), Item(商品) 和 Ad(廣告) 的多種關係,然後利用 Euler 平臺的 LsHNE 方法學習圖中節點的 embedding,這裡節點 embedding 後的空間距離刻畫了原來圖中的關係,對於線上過來的請求通過計算使用者查詢詞向量、前置行為中節點向量和廣告節點向量之間的距離進行高效的向量化最近鄰檢索,可以快速匹配到符合使用者意圖的廣告。圖 2 展示了 LsHNE 方法的離線和線上流程。具體圖 3 展示了樣本構造和網路結構示意。
阿里媽媽專家表示,目前,圖與表徵的研究熱點主要集中在四個方面:1)圖的異構關係處理;2)動態圖學習;3)面對大規模資料場景如何提高訓練速度;4)新的圖網路結構探索和組合,實現組合泛化。
阿里媽媽表示,因為該技術還處於發展的早期階段,因此不可避免還具有一些侷限性,比如訓練速度還有很大提升空間。目前,Euler 在實際生產中能夠支援百億節點,千億邊,在一天之內完成訓練部署和線上服務,處理規模在業界屬於前列;另外,對於更加複雜的網路,如何有效學習表徵以及和已有學習任務的結合,也有很大的探索空間。
據阿里媽媽透露,其還有可能開源一個相關資料集,不排除未來以組織相關比賽的方式讓大家熟悉 Euler 的可能,而且阿里媽媽也將投入精力維護開源社群,包括將內部版本的迭代同步到開源社群,製作教程等。