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