天天看點

AliGraph:一個工業級的圖神經網絡平台為什麼專注于GNNAliGraph定位技術棧一體化實作高效圖引擎算子可擴充取得成果業務結語

作者 | 阿裡巴巴達摩院

AliGraph:一個工業級的圖神經網絡平台為什麼專注于GNNAliGraph定位技術棧一體化實作高效圖引擎算子可擴充取得成果業務結語
2019年12月8日,神經網絡和深度學習領域的頂會NeurIPS 在加拿大溫哥華召開,阿裡巴巴計算平台PAI團隊和達摩院智能計算實驗室開發的Aligraph在Expo Day 現場進行展示。

為什麼專注于GNN

在大資料的背景下,利用高速計算機去發現資料中的規律似乎是最有效的手段。為了讓機器計算的有目的性,需要将人的知識作為輸入。我們先後經曆了專家系統、經典機器學習、深度學習三個階段,輸入的知識由具體到抽象,由規則到特征再到模式,越來越宏觀。相對來說,抽象的層次變高了,覆寫面變廣了,但我們對底層的感覺變弱了,模型的可解釋程度變差了。深度學習的應用已經讓我們看到了非常可觀的價值,但其背後的可解釋性工作進展緩慢,也因為如此,當我們用深度學習去解決涉及人身财産安全、法律等敏感問題時,隻有數字效果不足以支撐這項技術的應用,我們更需要知道結果後面的原因。

Graph是知識的載體,其間的實體聯系蘊含了很強的因果關系。重要的是,這是一種直覺的、人們能夠讀懂的結構。把Graph作為知識支撐,利用深度學習的泛化技術,看上去是一個可行的方向,在某些問題上,離我們的可解釋性目标更近了一步。各種深度學習相關的頂會在近年來的paper分布上,圖神經網絡(GNN)一直處于蓬勃态勢。GNN提供了一種解決問題的思路,覆寫範圍很廣,很多搜尋推薦類算法,都可以納入到GNN範式,是以無論從未來技術儲備,還是當下應用擴充的角度,GNN都是一個非常值得投入的方向。

AliGraph定位

相比CNN、RNN等成熟技術而言,GNN還處于探索階段,Graph之于GNN,不如圖像之于CNN、自然語言之于RNN那樣理所當然。即便有Graph資料,如何使用GNN沒有可遵循的固定模式,更沒有沉澱下來的類似卷積一樣的算子可直接調用。GNN的有效性需要更多的場景去驗證,而每一個場景都需要開發者的深入了解,開發者有能力處理Graph資料和編寫之上的深度學習模型。有了百花齊放的應用場景做鋪墊,才有可能抽象出共性的GNN算子和算法,再将這些相對成熟的能力賦給使用者,GNN才會真正的推廣開來。出于這些考慮,比起開發一個成熟算法供使用者使用,平台目前階段會更側重提供API給開發者,讓開發者有能力貼近自己的場景去實作GNN。

另一方面,工業場景中的Graph資料十分複雜,而且資料量巨大。平台不能脫離場景而獨立存在,必須以業務為驅動,才最可能孵化出有實際價值的産品。以阿裡巴巴的電商推薦場景為例,每天的産生的圖資料多達幾百TB,而且高度異構(多種類型的頂點、多種類型的邊),頂點和邊具有豐富的屬性,諸如商品的名稱、類目、價格區間,甚至是其關聯的圖像、視訊等,這些屬性以明文存在而非已經向量化好的結構化資訊。以這樣的資料為輸入,如何高效的進行GNN訓練是一個非常有挑戰的問題。如果使用資料預處理、預訓練等手段把Graph資料結構化、向量化,會耗費大量的計算資源、存儲資源和人力成本。真正對GNN開發者友好的平台,應該是端到端的,在一套IDE裡,使用者既可以操作複雜的Graph資料,又可以将資料與深度神經網絡對接,自由編寫上層模型。平台提供簡單靈活的接口,滿足GNN高速發展所需的可擴充性與生态的相容性,和針對複雜的分布式環境的大規模與穩定性。

技術棧

階層化架構

AliGraph涵蓋了從原始圖資料到GNN應用的整體鍊路,把GNN算法的探索成本降低到和傳統深度學習算法同等水準。平台可以分層來看:資料層,引擎層,應用層。

AliGraph:一個工業級的圖神經網絡平台為什麼專注于GNNAliGraph定位技術棧一體化實作高效圖引擎算子可擴充取得成果業務結語

資料層,支援大規模同構圖、異構圖、屬性圖。資料無需提前build好,平台提供API來簡化資料解析和建圖的過程。資料層接口易擴充,友善對接不同格式、不同媒體的Graph資料。

引擎層,包含Graph Engine和Tensor Engine。Graph Engine又可分為邏輯對象層與算子層。邏輯對象層,描述的是把原始資料加載到系統後展現給使用者的形态是什麼。每一個對象實體都會提供相關的語義接口,比如對于一個Graph對象而言,可以擷取圖的拓撲資訊、異構程度、點邊數量等。對于使用者而言,實際使用中隻需要聲明一個邏輯對象并指定其資料源即可。

AliGraph:一個工業級的圖神經網絡平台為什麼專注于GNNAliGraph定位技術棧一體化實作高效圖引擎算子可擴充取得成果業務結語

算子層,在邏輯對象之上可以進行的計算操作。比如對于Graph對象而言,支援各種Sampler算子,用于對上層GNN算法提供輸入。算子層具有很強的擴充性,以滿足場景多樣化對算子種類的需求。目前,内置支援的算子圍繞GNN算法及生态展開,包括圖查詢、圖采樣、負采樣、KNN等。

AliGraph:一個工業級的圖神經網絡平台為什麼專注于GNNAliGraph定位技術棧一體化實作高效圖引擎算子可擴充取得成果業務結語

Tensor Engine指深度學習引擎,如TensorFlow、PyTorch,或者其他支援Python接口的Library。GraphEngine的輸出為格式對齊的NumPy對象,可無縫與深度學習引擎對接。GNN開發者可自由編寫Graph之上的NN邏輯,并可與業務需求相結合,組成一個深度網絡模型進行端到端訓練。

應用層,強調與業務端到端結合,而非把Graph Embedding的結果割裂開使用。經場景打磨的成熟算法,也會沉澱到應用層,以算法元件的形式提供給使用者。

一體化實作

由GCN架構引申,典型的GNN程式設計範式可概括如下,系統是為了高效支援該範式而設計。

AliGraph:一個工業級的圖神經網絡平台為什麼專注于GNNAliGraph定位技術棧一體化實作高效圖引擎算子可擴充取得成果業務結語

其中,向量化和聚合操作可以利用深度學習引擎的表達能力,是以,為實作上述計算模式,主要在于圖相關的操作以及這些操作如何與深度學習引擎對接。我們将技術棧細化成如下圖所示,其中Storage、Sampler、Operator是系統要解決的主要問題。資訊自底向上在層與層之間前向傳播,梯度則自頂向下更新每一層的參數,整個GNN應用在一張深度網絡裡描述。Storage層的Graph對象是邏輯存儲,在其之下有一層抽象的檔案接口,可适配多種資料源,這是系統具備可遷移性的前提。Sampler提供豐富的算子,且可獨立擴充,不依賴系統架構,滿足多樣化的需求。Operator進行圖語義操作的封裝,把性能優化、資料對接隐藏在簡潔的接口之下。

AliGraph:一個工業級的圖神經網絡平台為什麼專注于GNNAliGraph定位技術棧一體化實作高效圖引擎算子可擴充取得成果業務結語

高效圖引擎

再具體的,圖引擎是連接配接圖資料與深度學習架構的橋梁,保證資料傳遞的高效與穩定。這裡的圖操作是面向GNN的,和一般意義的圖計算有很大差別。Graph Engine是一個分布式服務,具有高性能和高可用的特點,支援百億級邊的異構圖在2分鐘以内完成建構、十毫秒級按batch多跳跨機采樣,支援從失敗中狀态無損的failover。Graph Engine内部深度優化了RPC過程,實作了資料零拷貝,并且Server間的連接配接是線程級的,在最大化帶寬使用率的同時,每個線程可獨立無鎖的處理請求。這也是系統性能優異的主要原因。此外,我們通過有效的Cache、去中心化等手段來加速采樣和負采樣,性能具有明顯提升。

AliGraph:一個工業級的圖神經網絡平台為什麼專注于GNNAliGraph定位技術棧一體化實作高效圖引擎算子可擴充取得成果業務結語

算子可擴充

為支援GNN的快速發展需求,系統允許算子自由擴充。系統架構包括使用者接口、分布式運作時、分布式存儲,3大部分。通過使用者接口調用某個算子,算子讀取資料并完成分布式計算。我們把分布式運作時和存儲的接口進行提煉,将程式設計接口控制在安全範圍内,使用者可以基于這些接口開發一個自定義的算子。自定義算子可以統一注冊到使用者接口上,無需新增使用者API。具體的,每種Operator都是一個分布式算子,計算所需的資料會分布在Service的各個Server上,我們抽象了Map()和Reduce()語義,Map()用于把計算請求拆分并轉發到對應的Server上,保證資料和計算colocate進而避免資料搬遷的代價,Reduce()則把每個Server的結果進行整合。Operator還需實作Process(),用于本地計算,資料序列化、分布式通信等則無需關心。

AliGraph:一個工業級的圖神經網絡平台為什麼專注于GNNAliGraph定位技術棧一體化實作高效圖引擎算子可擴充取得成果業務結語

取得成果

系統

資料種類:支援同構圖、異構圖、屬性圖,有向圖、無向圖,可友善與任意分布式檔案系統對接。

資料規模:支援千億級邊、十億級頂點的超大規模圖(原始存儲TB級)。

算子種類:支援幾十種可與深度學習相結合的圖查詢、采樣算子,支援向量檢索,支援算子按需自定義。

性能名額:支援分鐘級超大規模圖建構,毫秒級多跳異構圖采樣,毫秒級大規模向量檢索。

使用者接口:純Python接口,與TensorFlow構成一體化IDE,開發成本相比一般TF模型無異。

算法

已支援業界主流的GraphEmbedding算法,包括:DeepWalk、Node2Vec、GraphSAGE、GATNE等。多種自研算法正在計劃公開,已發表的相關paper參考如下。

  • Representation Learning for Attributed Multiplex Heterogeneous Network.KDD, 2019.
  • Is a Single Vector Enough? Exploring Node Polysemy for Network Embedding.KDD, 2019.
  • Towards Knowledge-Based Personalized Product Description Generation inE-commerce. KDD, 2019.
  • Sequential Scenario-Specific Meta Learner for Online Recommendation. KDD,2019.
  • AliGraph: A Comprehensive Graph Neural Network Platform. VLDB, 2019.
  • Large Scale Evolving Graphs with Burst Detection. IJCAI, 2019.
  • Hierarchical Representation Learning for Bipartite Graphs. IJCAI, 2019.
  • Cognitive Graph for Multi-Hop Reading Comprehension at Scale. ACL, 2019.
  • Bayes EMbedding (BEM): Refining Representation by Integrating KnowledgeGraphs and Behavior-specific Networks. CIKM 2019.
  • Towards Knowledge-Based Recommender Dialog System. EMNLP, 2019.
  • Learning Disentangled Representations for Recommendation. NeurIPS, 2019.

業務

在阿裡巴巴集團内,已覆寫淘寶推薦、淘寶搜尋、新零售、網絡安全(反恐、垃圾或異常檢測、反作弊)、線上支付、優酷、阿裡健康等相關業務。典型場景效果如下:

手機淘寶首頁猜你喜歡,雲主題推薦(每天5500w PV)

相比其他系統實作的GE模型,在百億級邊、十億級頂點規模的使用者-商品二部構圖上,AliGraph的實作能使單任務節省300TB存儲、萬CPU時算力,訓練時間縮短2/3,CTR提升12%。

安全相關,反恐、垃圾檢測、異常識别等5個場景

單天三十億級邊、億級頂點的異構圖,訓練時間縮短1/2,模型覆寫準确率提升6%-41%不等。

此外,AliGraph已在阿裡雲公共雲平台釋出,我們會保持持續更新,希望看到GNN為更多的場景帶去更優的解決方案,也希望更多的研究者願意投入到這個方向。

結語

本文對AliGraph平台做了概況介紹,在傳遞我們背後思考的同時,希望給更多GNN方向的研究者帶去便利,也希望感興趣的同學加入我們,共同打造GNN的影響力并落地到實際應用。

阿裡雲未來将與更多的企業聯合,書寫智能制造新篇章。

《Elasticsearch 中國開發者調查報告》

探索開發者的現狀和未來

為了解Elasticsearch 中國開發者群體,結合1186位開發者的調研資料和18位社群專家的深度訪談,Elastic 技術社群、阿裡巴巴 Elasticsearch 技術團隊和阿裡雲開發者社群聯合釋出了《Elasticsearch 中國開發者調查報告》。免費下載下傳,搶先一步讀懂這個“族群”吧。

2012年,Elasticsearch 首個版本釋出,經過7年多的發展,Elastic系列開源項目的熱度持續升溫,Elastic 技術社群的使用者量和開發者群體逐漸壯大,也在不斷進化。那麼,這個群體是誰?他們在怎樣使用 Elastic Stack ?他們又将如何進階成長?

為了洞察這個獨特開發者群體的發展、技術應用現狀,以及整個行業的發展趨勢,Elastic 技術社群、阿裡巴巴 Elasticsearch 技術團隊和阿裡雲開發者社群聯合首發《Elasticsearch 中國開發者調查報告》。

本次報告從開發者的職業路徑、Elasticsearch 的技術演進、技術社群的發展等三個次元,描繪了開發者群體的輪廓和成長路徑。