Euler 今日問世!國內首個工業級的圖深度學習開源框架,阿里媽媽造

阿里技術_發表於2019-01-18

640?wx_fmt=jpeg

阿里妹導讀:千呼萬喚始出來!阿里媽媽正式公佈重磅開源專案——圖深度學習框架Euler。這是國內首個在核心業務大規模應用後開源的圖深度學習框架。此次開源,Euler內建了大量的演算法供使用者直接使用,相關程式碼已經可在GitHub上進行下載。


圖學習和深度學習都是人工智慧的一個分支,作為阿里巴巴旗下的大資料營銷平臺,阿里媽媽創新性地將圖學習與深度學習進行結合,推出了Euler,可幫助大幅度提升營銷效率。Euler已在阿里媽媽核心業務場景進行了錘鍊和驗證,同時,在金融、電信、醫療等涉及到複雜網路分析的場景中也具有很高的應用價值。例如,使用者可以利用Euler對基於使用者交易等金融資料構建的複雜異構圖進行學習與推理,進而應用於金融反欺詐等場景。


下面讓我們一起走進Euler的世界。

 

Euler 開源地址


https://github.com/alibaba/euler



1.   概述


過去幾年隨著資料規模和硬體計算力的迅速增長,深度學習技術在工業界被廣泛應用併產生了巨大的技術紅利。當前應用已經相對成熟,下一步的技術紅利在哪裡還在積極探索之中。圖神經網路將端到端學習與歸納推理相結合,有望解決深度學習無法處理的關係推理、可解釋性等一系列問題。對結構知識的表達、計算和組合泛化是實現具備human-like AI的關鍵,圖神經網路有希望在這些方面形成突破,使得機器能力進一步提升,因此對圖神經網路的深入應用有希望形成下一波技術紅利。


圖作為表達能力很強的通用的資料結構,可以用來刻畫現實世界中的很多問題,例如社交場景的使用者網路、電商場景的使用者和商品網路、電信場景的通訊網路、金融場景的交易網路和醫療場景的藥物分子網路等等。相比文字、語音和影像領域的資料比較容易處理成歐式空間的Grid-like型別,適合現有的深度學習模型處理,圖是一種非歐空間下的資料,並不能直接應用現有方法,需要專門設計的圖神經網路系統。

 

1.1Euler的核心能力


1)大規模圖的分散式學習


工業界的圖往往具有數十億節點和數百億邊,有些場景甚至可以到數百億節點和數千億邊,在這樣規模的圖上單機訓練是不可行的。Euler支援圖分割和高效穩定的分散式訓練,可以輕鬆支撐數十億點、數百億邊的計算規模。


2)支援複雜異構圖的表徵


工業界的圖關係大都錯綜複雜,體現在節點異構、邊關係異構,另外節點和邊上可能有非常豐富的屬性,這使得一些常見的圖神經網路很難學到有效的表達。Euler在圖結構儲存和圖計算的抽象上均良好的支援異構點、異構邊型別的操作,並支援豐富的異構屬性,可以很容易的在圖學習演算法中進行異構圖的表徵學習。


3)圖學習與深度學習的結合


工業界有很多經典場景,例如搜尋/推薦/廣告場景,傳統的深度學習方法有不錯效果,如何把圖學習和傳統方法結合起來,進一步提升模型能力是很值得探索的。Euler支援基於深度學習樣本的mini-batch訓練,把圖表徵直接輸入到深度學習網路中聯合訓練。


4)分層抽象與靈活擴充套件


Euler系統抽象為圖引擎層、圖操作運算元層、演算法實現層三個層次,可以快速地在高層擴充套件一個圖學習演算法。實際上,Euler也內建了大量的演算法實現供大家直接使用。

 

1.2 Euler內建的演算法實現


考慮到框架的易用性,我們內建了多種知名演算法以及幾種我們內部的創新演算法。所有實現,我們仔細進行了測試,保證了演算法執行效率,且演算法效果與原論文對齊。使用者無需進行開發,注入資料到平臺後,可以直接使用。我們內建的演算法列表見下表。有關我們內部演算法的詳細資訊請見2.3節。



演算法型別

是否自研

特點

DeepWalk

隨機遊走

經典無偏的隨機遊走無監督演算法。

Node2Vec

隨機遊走

利用可配置引數在遊走時可傾向BFS或DFS

LINE

其它

靈活利用1階,2階鄰居資訊的無監督演算法

GCN

鄰居匯聚

CNN操作類似推廣到非歐空間的演算法

GraphSAGE

鄰居匯聚

GCN改進,提出鄰居取樣,多種匯聚函式等

GAT

鄰居匯聚

將Attention技術用於鄰居匯聚

Scalable-GCN

鄰居匯聚

加速GCN訓練的一種方法

LsHNE

隨機遊走

異構圖中隨機遊走,利用深度網路編碼

LasGNN

鄰居匯聚

半監督大規模異構圖卷積網路學習方法

 

2.  系統設計


Euler系統整體可以分為三層:最底層的分散式圖引擎,中間層圖語義的運算元,高層的圖表示學習演算法。


下邊我們分開描述各個層次的核心功能。

 

640?wx_fmt=png

Figure1 Euler架構Overview

 

2.1分散式圖引擎


為了支援我們的業務,我們不僅面臨超大規模圖儲存與計算的挑戰,還需要處理由多種不同型別的點,邊及其屬性構成異構圖的複雜性。我們的分散式圖引擎針對海量圖儲存,分散式並行圖計算及異構圖進行了優化設計,確保了工業場景下的有效應用。


  • 首先為了儲存超大規模圖(數十億點,數百億邊),Euler必須突破單機的限制,從而採用了分散式的儲存架構。在圖載入時,整張圖在引擎內部被切分為多個子圖,每個計算節點被分配1個或幾個子圖進行載入。

  • 為了充分利用各個計算節點的能力,在進行圖的操作時,頂層操作被分解為多個對子圖的操作由各個節點並行執行。這樣隨著更多節點的加入,我們可以得到更好的服務能力。其次,我們引入了多replica的支援。從而使用者可以靈活平衡shard與replica的數量,取得更佳的服務能力。最後,我們針對圖表示學習優化了底層的圖儲存資料結構與操作演算法,單機的圖操作效能獲得了數倍的提升。

  • 多種不同型別的邊,點與屬性所組成的異構圖,對很多複雜的業務場景必不可少。為了支援異構圖計算能力,底層儲存按照不同的節點與邊的型別分別組織。這樣我們可以高效支援異構的圖操作。

 

2.2中間圖操作運算元


由於圖學習演算法的多樣性以及業務的複雜性,固定的某幾種甚至幾十種演算法實現無法滿足客戶的所有需求。所以在Euler設計中,我們圍繞底層系統的核心能力著重設計了靈活強大的圖操作運算元,且所有運算元均支援異構圖操作語義。使用者可以利用它來快速搭建自己的演算法變體,滿足獨特的業務需求。


首先,Euler分散式圖引擎提供了C++的API來提供所有圖操作。基於這個API,我們可以方便的基於某個深度學習框架新增圖操作的運算元,從而利用Euler C++介面訪問底層圖引擎的能力。我們支援廣泛使用的深度學習框架,比如阿里巴巴的X-DeepLearning與流行的TensorFlow。後繼我們也會考慮支援其它的深度學習框架,比如PyTorch。


利用靈活的圖操作運算元,機器學習框架可以在每個mini-batch與Euler互動,動態擴充與組織訓練樣本。這樣,Euler不僅支援傳統的以圖為中心的學習模式,且可以把圖學習的能力注入傳統的學習任務,實現端到端訓練。


按照功能分類,我們的核心繫統提供的API可以分類如下:


  • 全域性帶權取樣點和邊的能力。主要用於mini-batch樣本的隨機生成以及Negative Sampling。

  • 基於給定節點的鄰居操作。這個是圖計算的核心能力包括鄰居帶權取樣,取Top權重的鄰居等。

  • 點/邊的屬性查詢。這個能力使得演算法可以使用更豐富的特徵,而不僅限於點/邊的ID特徵。

 

2.3高層演算法實現


如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模型,在模型中我們設計高效的鄰居取樣的方法,使得大規模的多層鄰居卷積成為可能。

 

3.  應用例項


Euler平臺已經在阿里媽媽搜尋廣告的多個場景下廣泛實用,並取得了出色的業務效果,例如檢索匹配場景、CTR預估場景、營銷工具場景和反作弊場景等。我們以匹配場景的為例來看下Euler的應用。


廣告匹配的任務是給定使用者搜尋請求,匹配模組通過理解使用者意圖,快速準確地從海量廣告中找到高質量的小規模候選廣告集,輸送給下游的排序模組進行排序。


我們首先使用一些傳統的挖掘演算法,從使用者行為日誌、內容屬性等維度挖掘出Query(查詢詞), Item(商品)和Ad(廣告)的多種關係,然後利用Euler平臺的LsHNE方法學習圖中節點的embedding,這裡節點embedding後的空間距離刻畫了原來圖中的關係,對於線上過來的請求通過計算使用者查詢詞向量、前置行為中節點向量和廣告節點向量之間的距離進行高效的向量化最近鄰檢索,可以快速匹配到符合使用者意圖的廣告。圖2展示了LsHNE方法的離線和線上流程。具體圖3展示了樣本構造和網路結構示意。



640?wx_fmt=png

Figure2 DeepMatch召回框架


640?wx_fmt=png

Figure 3 離線訓練流程

 

目前,Euler 已經在GitHub開源,點選文末“閱讀原文”,即可獲取。


640?wx_fmt=gif

你可能還喜歡

點選下方圖片即可閱讀


640?wx_fmt=jpeg

阿里去年新增12億行程式碼;即將開源自研科學計算引擎、圖學習框架;行人重識別演算法斬獲世界第一|周博通


640?wx_fmt=jpeg

如何“神還原”資料中心?阿里聯合NTU打造了工業級精度的模擬沙盤


640?wx_fmt=jpeg報告!這群阿里工程師在偷偷養豬


640?wx_fmt=jpeg

關注「阿里技術」

把握前沿技術脈搏

相關文章