图(关系网络)数据分析及阿里应用
2019年1月18日,由阿里巴巴MaxCompute開發者社區和阿里云棲社區聯合主辦的“阿里云棲開發者沙龍大數據技術專場”走近北京聯合大學,本次技術沙龍上,阿里巴巴資深技術專家錢正平為大家分享了大數據技術背景下圖數據的應用前景,以及阿里巴巴在圖數據的建模、查詢和系統優化等方面做出的初步探索。
以下內容根據演講視頻以及PPT整理而成。
一、什么是圖數據?
下面的關系網絡展示了一個點和邊構成的數據模型,點表示實體,邊表示兩個實體間的關系。關系網絡極具靈活性,能夠在統一視圖里展示異構信息,其中的邊可能來自不同表。比如,下圖中的邊表示了兩個明星間的關系,可能由若干張表通過join操作形成。
如今,機器學習的數據分析pipeline可應用于各行各業各個門類的數據,來幫助企業更好地決策。圖數據的價值在于它能夠顯式地表達出數據間的復雜關聯結構,以輔助機器學習的數據分析過程,幫助機器學習算法更好地挖掘出數據背后的結構特征,提供更精準更可靠的決策支持。圖數據的這種能力對一些領域格外重要。
Google早期使用的搜索算法pageRank就利用了圖數據的這種能力,它利用網頁間的相互鏈接信息來決定網頁的重要程度。具體來說,被越多網頁鏈接的網頁越重要,被越重要的網頁鏈接的網頁也越重要。Google利用圖數據重新定義了搜索,取得了非常卓越的成功。
圖數據對阿里巴巴同樣意義重大。以阿里巴巴的應用生態為例,天貓包含了用戶的在線交易信息,高德地圖包含了用戶的出行信息,優酷土豆等包含了用戶的觀影信息,以人為維度將這些信息關聯起來可以得到關于某用戶的完整信息,以理解用戶偏好。圖數據模型能夠將許多分散的圖場景整合起來,形成一個龐大的圖結構。阿里巴巴的圖結構包含幾十億個點,成百上千億條邊,同時阿里應用巨大的日交易量也使得圖結構千變萬化,這些都為圖數據的計算帶來了嚴峻的挑戰。
圖應用與具體場景相關,阿里巴巴針對不同的應用場景設計了不同的圖數據處理算法。以一個很長的數字序列為例,對其進行數據分析的第一步是“看”,即觀察該序列可能存在的特征,此外,可能使用特征統計分析該序列包含某數字的個數。更進一步,模式匹配可以探尋該序列中可能存在的模式子串。最后,機器學習算法比如神經網絡能幫助挖掘數字序列背后的規律。對該序列進行數據分析能夠幫助在線預測相關信息,比如數字序列的下一位數字等。圖數據分析方法能幫助洞察圖數據,阿里巴巴在圖數據方面的應用包括五類。
第一類是“看”,下圖展示了經敏感信息處理后的阿里巴巴內部使用的可視化平臺。真實環境中,商業問題可能存在多方面因素,研判業務問題非常困難。將圖結構應用于可視化平臺能夠整合多維度數據,動態地將多維度數據關聯起來,以幫助用戶更好地決策。
第二類圖數據應用是圖算法。比如,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家都利用圖技術呈現交易信息。
總的來說,圖計算是大數據計算的有效工具,圖數據能夠提供更精準、更可靠的信息,以增強大數據分析能力,圖計算將變得越來越重要。成功的圖應用離不開建模、查詢和系統優化等多個方面,大規模的動態圖計算還存在許多問題尚未解決,未來阿里巴巴將致力于在這些方面做出貢獻,為圖應用開發者們帶來福音。阿里巴巴發展圖計算依賴于“橫向”和“縱向”兩個方面的合作,一方面,“橫向”需要和阿里巴巴內部的硬件、網絡等團隊合作,以利用現有技術優化圖計算的性能,從而給業務帶來質的突破。另一方面,“縱向”需要和行業內領域專家緊密合作,利用圖結構解決企業真實問題,使技術為業務賦能、創造更多價值。
原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的图(关系网络)数据分析及阿里应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Node.js 应用故障排查手册 ——
- 下一篇: 阿里云明确生态边界:不做SaaS、被集成