摘要:2019年1月18日,由阿里巴巴MaxCompute開發者社區和阿里雲棲社區聯合主辦的「阿里雲棲開發者沙龍大數據技術專場」走近北京聯合大學,本次技術沙龍上,阿里巴巴資深技術專家錢正平爲你們分享了大數據技術背景下圖數據的應用前景,以及阿里巴巴在圖數據的建模、查詢和系統優化等方面作出的初步探索。
如下內容根據演講視頻以及PPT整理而成。算法
下面的關係網絡展現了一個點和邊構成的數據模型,點表示實體,邊表示兩個實體間的關係。關係網絡極具靈活性,可以在統一視圖裏展現異構信息,其中的邊可能來自不一樣表。好比,下圖中的邊表示了兩個明星間的關係,可能由若干張表經過join操做造成。瀏覽器
現在,機器學習的數據分析pipeline可應用於各行各業各個門類的數據,來幫助企業更好地決策。圖數據的價值在於它可以顯式地表達出數據間的複雜關聯結構,以輔助機器學習的數據分析過程,幫助機器學習算法更好地挖掘出數據背後的結構特徵,提供更精準更可靠的決策支持。圖數據的這種能力對一些領域格外重要。安全
Google早期使用的搜索算法pageRank就利用了圖數據的這種能力,它利用網頁間的相互連接信息來決定網頁的重要程度。具體來講,被越多網頁連接的網頁越重要,被越重要的網頁連接的網頁也越重要。Google利用圖數據從新定義了搜索,取得了很是卓越的成功。服務器
圖數據對阿里巴巴一樣意義重大。以阿里巴巴的應用生態爲例,天貓包含了用戶的在線交易信息,高德地圖包含了用戶的出行信息,優酷土豆等包含了用戶的觀影信息,以人爲維度將這些信息關聯起來能夠獲得關於某用戶的完整信息,以理解用戶偏好。圖數據模型可以將許多分散的圖場景整合起來,造成一個龐大的圖結構。阿里巴巴的圖結構包含幾十億個點,成百上千億條邊,同時阿里應用巨大的日交易量也使得圖結構變幻無窮,這些都爲圖數據的計算帶來了嚴峻的挑戰。cookie
圖應用與具體場景相關,阿里巴巴針對不一樣的應用場景設計了不一樣的圖數據處理算法。以一個很長的數字序列爲例,對其進行數據分析的第一步是「看」,即觀察該序列可能存在的特徵,此外,可能使用特徵統計分析該序列包含某數字的個數。更進一步,模式匹配能夠探尋該序列中可能存在的模式子串。最後,機器學習算法好比神經網絡能幫助挖掘數字序列背後的規律。對該序列進行數據分析可以幫助在線預測相關信息,好比數字序列的下一位數字等。圖數據分析方法能幫助洞察圖數據,阿里巴巴在圖數據方面的應用包括五類。網絡
第一類是「看」,下圖展現了經敏感信息處理後的阿里巴巴內部使用的可視化平臺。真實環境中,商業問題可能存在多方面因素,研判業務問題很是困難。將圖結構應用於可視化平臺可以整合多維度數據,動態地將多維度數據關聯起來,以幫助用戶更好地決策。數據結構
第二類圖數據應用是圖算法。好比,pageRank算法利用圖結構計算每一個節點的權重值、連通分支等。連通分支可用於計算具備不一樣ID的實體,好比手機號、e-mail以及瀏覽器cookie等是否同屬於一個天然人,從而提升企業的廣告投放準確率。舉例來講,淘寶用戶使用瀏覽器購買商品後,瀏覽器將記錄用戶的cookie,下一次用戶瀏覽新浪時,新浪能夠根據該cookie獲取用戶的淘寶ID,從而獲取用戶的偏好以投放相關廣告。連通分支將用戶在不一樣應用的相關信息關聯起來,從而更好地瞭解用戶偏好,實現個性化應用。架構
第三類圖數據應用是模式,好比基於子圖模式的異常檢測。圖結構將不一樣表數據關聯起來,從而暴露出日誌信息沒法表露出來的問題。好比,左圖揭示了各個用戶轉帳行爲間的關聯,第二幅圖揭示了三個用戶與四個商品間頻繁的交易模式,這些信息僅依賴系統文本文件中的日誌都沒法得到。據報道,僅有百分之一的安全漏洞問題能經過日誌分析檢測出來,日誌的單規則信息是不全面的,利用圖結構信息關聯不一樣數據很是必要。左圖展現了簡單的淘寶刷單模式,刷單人爲商家刷單後,商家經過支付寶即時支付刷單費用,造成了圖結構中的「環」,阿里巴巴經過檢測「環」以檢測簡單的刷單行爲。提供刷單服務的公司,大多運營大量的虛假帳號來知足刷單請求,每一個虛假帳號可能同時爲多個商品提供刷單服務。阿里巴巴使用圖結構來表示用戶與商品間的購買行爲,k1個用戶在必定較短期內與v2個商品發生徹底購買的行爲,意味着k1個用戶中可能存在大量虛假帳號。圖結構加強了系統對用戶行爲的捕捉能力。運維
第四類圖數據應用是機器學習,好比利用基於圖的機器學習應用實現淘寶推薦。爲了計算某個用戶對某個商品的興趣度,阿里巴巴利用商品的重要屬性好比標籤等計算商品間的類似度,同時對用戶的重要屬性建模。也就是說,經過用戶對類似商品的感興趣程度預測用戶對當前商品的興趣度,從而實現商品推薦。這些信息沒法單純依賴某張表獲得。好比,某用戶喜歡夏季羽絨服,同時喜歡某品牌,單純依賴表信息的商品推薦不會給該用戶推薦相關品牌的冬季羽絨服,而鏈接了兩方面信息的圖結構則可能推薦該商品,提升了商品推薦的準確度。圖結構信息還有利於解決冷啓動及結果可解釋性等難題。機器學習
第五類圖數據應用是知識圖譜,好比基於知識圖譜實如今線推理,提供在線智能服務。左邊的例子展現了雙11期間淘寶的湊單應用,即爲用戶推薦湊單商品以幫助用戶得到滿減折扣。阿里巴巴利用商品類似性圖,可以方便地計算商品A的全部類似商品,從而實現類似商品推薦。固然,類似商品每每具備相同功能,而已經購買了某商品的用戶極可能不肯意重複購買相似商品。所以,阿里巴巴又引入了隨機遊走機制,經過在商品類似圖中以必定機率隨機遊走來選擇推薦商品,平衡商品的類似性和多樣性。應用圖結構構建知識圖譜的另外一個例子是天貓精靈。天貓精靈經過構建多種類型的知識圖譜來回答用戶提出的各類問題,好比娛樂圖譜可以展現電影的導演、演員,以及他們的其餘電影做品等信息。「李未央」是某電視劇的角色名,假設用戶提問「李未央還演了什麼電影」,天貓精靈將經過分詞獲得「李未央」,知識圖譜算法容許從「李未央」出發探究相關演員,從而進一步探究相關電影,這是普通的問答系統沒法作到的。相比谷歌、微軟等公司基於互聯網數據構建知識圖譜,阿里巴巴利用自身結構化數據來源的高數據質量優勢,可以構建出更優質的圖譜以實如今線推理。
早期,大數據技術採用IOE模式,依賴單點運行的Oracle機器等高成本硬件。2009年,MaxCompute使用更低成本的機器集羣來解決相同規模的計算問題,提升軟件的容災能力。2012年,實時風控、大屏、視頻分析等應用向大數據技術提出了更高的計算時延要求。現在,更豐富的數據使用場景需求使得機器學習與異構信息網絡圖技術好比關聯分析、MaxGraph等獲得了發展。不斷演化的需求加速了大數據技術的發展。
關聯分析背後的邏輯架構依賴於一個從一系列數據源構建獲得的圖模型(Graph model),數據科學家基於該圖模型完成離線的數據挖掘任務,業務操做員基於該圖模型實如今線推理、提供在線服務,此外,該圖模型還根據系統事件實時更新。總的來講,關聯分析須要知足多維度的需求。
下圖展現了基於圖結構的開源解決方案。第一幅圖展現了圖的遍歷,用於查詢圖中各項內容。第二幅圖展現了圖算法,包括pageRank等。第三幅圖展現了模式匹配,第四幅圖展現了機器學習。圖結構解決方案的開源化追求可擴展性,以處理大規模數據計算任務。
構建圖應用要求組合多個系統的能力,好比圖數據的存儲、離線計算引擎以及在線計算服務器等,構建複雜度和運維難度都極高。
MaxGraph產品經過實時或離線方式構建關係數據並存儲爲圖結構,從而利用統一的分佈式「瞬時計算」引擎來支持辨別、計算、匹配與機器學習等功能。基於MaxGraph提供的功能,一些上層圖應用以及智能應用包括關係網絡分析等才得以實現。
下圖展現了一個圖模型,由點和邊構成,而且容許點和邊都攜帶屬性。
圖建模時須要關注數據間的關聯。以「電子郵件通訊中的異常檢測系統」爲例,該系統要求在若干個相互發送e-mail的用戶行爲中檢測風險。最直觀的圖建模方式是將用戶建模成圖的點,用戶間相互發送的e-mail建模成圖的邊,但這樣建模的問題在於圖模型中沒有體現e-mail這個實體,沒法表達「用戶本身給本身發送e-mail」等行爲。
正確的圖建模方式應是將e-mail建模成圖的點,同時實現e-mail與該e-mail發送者、收件人間的關聯。在表達「用戶本身給本身發送e-mail」時,將e-mail建模成一點,該點關聯的發送者和收件人都指向相同用戶。好的建模方式可以在系統規模、問題複雜性提高的狀況下依然很好地捕獲全部關鍵信息,知足用戶需求。
使用這樣的建模方式來表達「對回覆郵件的回覆」行爲時,「回覆郵件」與「回覆郵件的回覆」都是e-mail,都應該被建模爲圖的點,「回覆郵件」與相關的「回覆郵件的回覆」存在回覆與被回覆關係,應建模爲邊。判斷圖建模合理與否的關鍵在於判斷圖模型可否表達相關需求,好比,本示例中的圖模型可否表達「熱烈的郵件討論」行爲等。
阿里巴巴採用分佈式圖存儲來存儲圖模型的相關數據。
尋找具備某特色的「點集合」或者「邊集合」是圖數據查詢的常見應用。圖查詢語言「Gremlin」可用於遍歷圖,尋找相關「點集合」或「邊集合」,並基於得到的集合進行「groupby」等操做來構造最終查詢結果。
阿里巴巴優化了圖查詢語言,使得系統能夠快速地實現複雜數據結構的查詢。最新的競品分析顯示,「Gremlin」圖查詢語言具備數據加載快、可擴展與低延遲德等優勢。
除了圖查詢,全圖計算與分析也是圖應用的難點,阿里巴巴提供了相似SQL的抽象語言FLASH來下降全圖計算的難度。
阿里巴巴的抽象語言FLASH引入了循環語句,具備比SQL更強大的表達能力,將FLASH應用於連通分支算法,僅需幾行代碼就能夠實現該算法功能。
相比之下,使用C++語言實現連通分支算法所須要的代碼量更大。
下圖展現了目前已驗證的FLASH抽象語言可表達的全部算法。
另外,阿里還使用Flink評估了FLASH語言的表達能力。左表第二列是使用Gelly語言實現相關算法使用的代碼行數,第三列是使用FLASH語言實現相同算法所用的代碼行數。總的來講,FLASH語言實現相同算法所須要的代碼行數僅爲Gelly語言的1/10甚至1/20,但兩種實現語言帶來的系統開銷是幾乎一致的。
阿里雲網絡安全引入圖結構以構建知識圖譜,包括域名、主機IP、域名服務器等信息。引入圖結構有利於在海量信息中及時發現網絡中的隱藏模式,從而發現漏洞和威脅。相關實驗顯示,將海量數據預先構建成圖再實時查詢僅需500毫秒,相反,不預先將海量數據構建成圖而採用SQL查詢所需的時間高達80分鐘,圖結構能爲查詢帶來數量級的性能提高,從而給業務帶來質的變化。
圖技術在美國一樣引發了普遍關注。最新數據顯示,76%的FORTUNE 100語言都採用了圖技術,排名前25的金融企業中有20家都利用圖技術呈現交易信息。
總的來講,圖計算是大數據計算的有效工具,圖數據可以提供更精準、更可靠的信息,以加強大數據分析能力,圖計算將變得愈來愈重要。成功的圖應用離不開建模、查詢和系統優化等多個方面,大規模的動態圖計算還存在許多問題還沒有解決,將來阿里巴巴將致力於在這些方面作出貢獻,爲圖應用開發者們帶來福音。阿里巴巴發展圖計算依賴於「橫向」和「縱向」兩個方面的合做,一方面,「橫向」須要和阿里巴巴內部的硬件、網絡等團隊合做,以利用現有技術優化圖計算的性能,從而給業務帶來質的突破。另外一方面,「縱向」須要和行業內領域專家緊密合做,利用圖結構解決企業真實問題,使技術爲業務賦能、創造更多價值。
本文爲雲棲社區原創內容,未經容許不得轉載。