天天看點

一文讀懂大規模圖神經網絡平台AliGraph

2019阿裡雲峰會·上海開發者大會于7月24日盛大開幕,本次峰會與未來世界的開發者們分享開源大資料、IT基礎設施雲化、資料庫、雲原生、物聯網等領域的技術幹貨, 共同探讨前沿科技趨勢。本文整理自開源大資料專場中阿裡巴巴資深技術專家李永先生的精彩演講,将為大家分享AliGraph:大規模圖神經網絡平台。

開源大資料專場PPT下載下傳

以下内容根據演講視訊以及PPT整理而成。

一、PAI機器學習平台介紹

1.PAI機器學習平台介紹

2014年,阿裡巴巴開始在集團内部打造一個統一的機器學習平台,PAI。到目前,PAI已經開始在公有雲上對外進行服務。PAI的宗旨是打造一個簡單易用且功能強大的機器學習服務,讓使用者享受到機器學習在業務上帶來的收益。下圖是PAI的界面,從模型訓練到模型部署,使用者都可以在右邊界面通過DAG方式完成。

一文讀懂大規模圖神經網絡平台AliGraph

2.PAI機器學習平台特性

一站式機器學習平台:PAI覆寫了從資料處理、特征加工、模型訓練到線上預測的一站式的叢集平台,支援從資料加工一直到模型預測的整個學習流程。

STOA機器學習算法:PAI提供了非常多的state of art的機器學習算法。PAI提供的機器學習算法有兩大特點,第一點是PAI提供了很多先進經典的機器學習算法和阿裡内部自研的,打磨過的算法,性能和效果都非常的出色。第二點,同時支援流&批處理:阿裡内部流式的處理深度學習引擎叫Blink,開源的是Flink,PAI在Flink上基于流批一體的理念設計實作了Alink,一個流批統一的機器學習算法庫。

PAI-Tensorflow:阿裡的達摩院和搜尋推薦廣告等關鍵業務一直在持續的使用PAI-Tensorflow引擎。總體上,PAI-Tensorflow無論是單機的性能還是分布式的Scalability,相比較開源版本都是非常的優越的。

彈性的模型預測服務:模型訓練最終都需要提供線上的實時預測服務,通過PAI提供的彈性模型預測服務,大大友善使用者部署模型,簡化模型部署的負擔。同時,服務還支援自動擴縮容和AB test等功能。

二、圖庫神經網絡

近幾年,随着大規模算力的提供,深度學習發展的非常迅速,并且在很多領域得到了大量應用。比如,淘寶拍立淘服務,基本的流程是使用者用手機拍一張圖檔,底層會基于CNN的網絡建構出主題檢測模型,模型可以迅速的從拍攝圖檔中檢測到圖檔的主題。再根據主題從商品庫中進行檢索,最後傳回跟主題較為相似的産品。

社會可以看作是一張大的社交網絡圖,比如電商使用者,購買的商品以及購買行為都屬于圖中的元素。如下圖,其中兩個元素非常關鍵,既Vertex和Edga。除此之外還有屬性,點與點的屬性,如一個人的角色。邊也有屬性,比如人與人的關系。 整個社交網絡圖主要有兩個特點,第一個特點它是一種非結構化的資料。第二點,圖本身攜帶的資訊非常的豐富。

一文讀懂大規模圖神經網絡平台AliGraph

1.常見的圖計算資料庫

在圖資料庫網絡被設計之前已經有非常多的工作能夠基于圖檔擷取到更高階的資訊,總體上可以分三類。

圖資料庫:圖資料庫和關系資料庫比較類似,關系資料庫通過二階的資料對資料進行模組化。但很難通過結構化的方式對圖檔進行模組化。是以,市面上出現了Neo4J和Titan,它們可以支援OLTP的處理。

實時圖分析查詢:目前阿裡雲即将要釋出一個産品,GraphCompute,可以支援實時的圖分析查詢服務。 GraphCompute和圖資料庫相比,首先GraphCompute是OLAP的服務,不支援OLTP。其次,GraphCompute能夠支援非常大的規模圖,基于pattern對圖進行查詢。比如知識圖譜就可以基于實時圖分析查詢進行搭建。

離線圖處理:Spark GraphX,最早是從Google的一篇論文中提煉出來的。衆所周知,Map Reduce不适合對圖進行處理。圖處理有幾個特點,圖本身互相節點之間互相依賴,而且圖有很強的局部性。目前,離線圖處理産品有Pregel,PowerGraph以及其它開源的産品。

一文讀懂大規模圖神經網絡平台AliGraph

2. 深度學習在圖上應用的挑戰

如何能夠基于圖提煉出更高階的特征?從2010年開始,陸續有學者研究如何讓深度學習和複雜的圖進行關聯,進而提出了圖神經網絡的概念。 目前深度學習在圖上應用的挑戰主要有四點:

非規整的資料:圖是非規整的資料。圖像是二維的資料,而自然語言一維的資訊,其結構是非正常整的。

點和邊異構:當點的屬性一樣時,可以構成同構圖,如一個教室裡的人就可以構成一個社交圖。社交圖表示所有的點性質都是相同的。異構則相反,比如使用者購買商品,商品和人不屬于同一類性質,這時就構成了異構圖。如何處理好同構圖和異構圖,尤其對于異構圖的處理挑戰非常大。

規模巨大:目前業務中需要處理的圖規模非常大,包含百億級别的點和千億級别的邊。這樣規模的計算已經遠遠超過原來的圖像和自然語言的處理。

動态變化:圖本身是動态變化的。比如小紅書每天會上架非常多商品,同時也會下架商品。是以每一天的圖的結構都是不同的。

3.圖卷積網絡:GCN

圖上卷積目前兩種做法,一種做法是定義Laplacian矩陣,另外一個做法是對空間進行卷積。圖卷積網絡與深度學習有比較相似的三點。第一,GCN網絡是分層的。此外,GCN網絡能夠支援非線性變換。第三點,深度學習強調更多的是端到端的學習(N2N),早期做圖處理時需要進行預處理,而GCN不再需要做預處理,圖中潛在的資訊都可以通過網絡裡面的系統學習。但圖卷積網絡依然無法在工業界中得到大規模的應用。因為圖卷積網絡會對整個圖做計算,圖中大部分點的分布是PowerLaw分布,比如微網誌大V粉絲遠超普通人的粉絲。圖卷積網絡的計算量非常的龐大,而且非常的不均衡。

4.圖神經網絡:GraphSAGE

GraphSAGE和圖卷積網絡有兩個不同點。首先,GraphSAGE隻對鄰居做采樣,并不會把所有鄰居的特征加起來做計算,GraphSAGE通過做采樣以大幅度減少計算。同時GraphSAGE能夠适配Power law分布。第二點,完成采樣之後,對鄰居的特征資訊進行aggregation,再通過這些資訊做預測。GraphSAGE能夠相對比較容易的處理更大規模的資料。

5.GCN應用

點分類

如下圖,有黃色、灰色和紫色的點,但不知道灰色的點屬于哪一類。業務過程中經常會遇到很多類似點分類的問題,通過GCN很能夠容易對灰色的點進行分類。

一文讀懂大規模圖神經網絡平台AliGraph

關系預測

GCN第二個應用是關系預測。打開微網誌,背景經常會推薦一些原來的好友。通過GCN的算法可以更好的預測人與人之前的潛在的關系。

一文讀懂大規模圖神經網絡平台AliGraph

目前,圖神經網絡已經得到了廣泛應用,比如社交領域、推薦領域、知識圖譜和生命科學等,同時,阿裡的電商和支付寶業務已經将圖神經網絡應用于檢查作弊的流量以及線上支付的安全性場景。

一文讀懂大規模圖神經網絡平台AliGraph

三、AliGraph:大規模GNN平台

1.AliGraph平台介紹

阿裡從2018年開始打造AliGraph平台。AliGraph被稱之為新一代的大資料圖神經網絡平台,它的認知計算模型相比現有的機器學習有了突破性的進展,被譽為人工智能2.0的平台。AliGraph主要分四層,分别是資料層、采樣層、算子層和GNN算法層,平台的設計理念是希望打造一個采樣模組化訓練一體化的GNN的平台。

一文讀懂大規模圖神經網絡平台AliGraph

AliGraph程式設計範式有三個,Sample,Aggregation和Combine。首先,基于鄰居做采樣。采樣完成之後做Aggregation。然後基于深度學習的技術做Combine,完成效果的拟合。

一文讀懂大規模圖神經網絡平台AliGraph

2.AliGraph平台特點

AliGraph系統包含五大特點。AliGraph支援大規模的圖存儲、支援高性能的圖采樣的引擎、在AliGraph核心層面,針對稀疏核心實作了大量的優化、提供自創SGCN算法、而且AliGraph的線性擴充性非常出色。

一文讀懂大規模圖神經網絡平台AliGraph

3.基于記憶體的圖的存儲

在圖的存儲方面,AliGraph提供了基于記憶體的圖存儲。為了支援百億級的點和千億級的邊規模的圖處理,AliGraph提供了分布式的圖引擎,能夠支援大規模資料的存儲,還支援存儲的Scalability。基于Vertex Cut,對圖進行分片。為了更好的支援采樣的性能,阿裡自研了一個出入度的緩存優化政策。

一文讀懂大規模圖神經網絡平台AliGraph

下圖是AliGraph的采樣和緩存的效果。基于出入度分析的政策比随機的方法快40%-50%,比LRU的方法快了50%以上。

一文讀懂大規模圖神經網絡平台AliGraph

4.分布式采樣

采樣政策對于圖神經網絡的模拟效果是非常關鍵的。AliGraph支援豐富的采樣政策,如shuffle,支援節點的出度和入度。AliGraph也支援多跳的采樣功能。目前,AliGraph的采樣性能可以做到毫秒級别,200個節點接近20億的QBS的采樣能力。為了能夠支援使用者自定義采樣邏輯,AliGraph引用了子產品化設計理念。AliGraph可以支援本地或者全局的負采樣。

一文讀懂大規模圖神經網絡平台AliGraph

5.稀疏核心優化

機器學習中的計算基本都是矩陣的相乘。但由于圖是非常稀疏的,是以不應該直接将一個稠密矩陣的計算應用到稀疏的矩陣計算上,這會導緻處理性能非常差。AliGraph對稀疏的核心進行了優化。通過計算的轉化,将乘法轉換成加法,既能夠加速整個計算的效率,同時也能夠減少資料拷貝帶來的Overhead。目前,優化之後性能達到了原先三倍以上的性能。

一文讀懂大規模圖神經網絡平台AliGraph

6.SGCN的算法

下圖展示了阿裡自創的SGCN算法。左邊是原始的GCN算法,SGCN算法引入隐式的Embedding,大幅度提升算法性能。同時SGCN還引入了額外的泛化能力,相比開源算法的能力,SGCN算法能力更好。

一文讀懂大規模圖神經網絡平台AliGraph

7. 分布式擴充

AliGraph訓練模型是去中心化的。AliGraph基于分布式負采樣(Distribute Negative Sampling),能夠大幅度減少通訊占比。還有,因為已經做了去中心化,AliGraph能夠支援多點的異步。通過以上三點,AliGraph的算法能夠超過數十億以上的點,而且可以随着節點的增加而增加。

一文讀懂大規模圖神經網絡平台AliGraph

8.業務效果

在手淘的業務場景中,基于AliGraph的圖神經網絡模型,端到端的訓練速度提升了一倍以上,發現性曝光率提升了4%以上,目前這個效果是非常難以達到的。