淺析阿裏數據技術架構(下)大規模分布式知識圖譜
阿裏數據要做的是:把數據真正打通,深度挖掘數據的價值,為業務創新應用提供數據決策基礎和依據。
下麵具體介紹我們在大規模分布式知識圖譜上的技術實踐。
大規模知識圖譜抽象也是一種圖計算。基於大規模分布式知識圖譜做了哪些工作?我們為什麼要做這樣一件事情?
阿裏巴巴的生態非常豐富,而豐富的業態背後給我們數據工作者帶來的困難就是,我們常常需要接入各種數據,並將他們有效地管理和整合起來,傳統的方法,我們可能需要花幾個月,投入幾十個人做這樣一件事情,對數據進行打標。
但是,假設我們已經知道數據和數據之間的一些關係,而且也知道數據表中哪些表被調用的次數最多。
那麼,如果我隻是對調用次數最多的表進行非常精確地打標,然後用基於知識圖譜的方法,對剩下的90%表進行推理式的Label打標,就能極大節約了人力成本。
所以這就是我們為什麼要用知識圖譜去做數據接入這樣的事情。那麼,對於數據管理也是同樣的道理。
假如隻有1G的數據,你可以很快地回答出數據分布的情況和質量。而我們的現狀時,我們的數據達到ZB級別的規模。因此對數據管理來說,挑戰不容小覷。
同樣地來看看數據應用方麵的情況。我們基於數據應用,實際上也有一款產品叫做“數據地圖”。
數據地圖是幹什麼呢?其實就是當你進行一個查詢,在這個產品裏會自動幫你反饋出一個最相關的表。
延伸開來的是我們想要做得下一步工作:當你下一次進行查詢後,能直接返回出相應的SQL,再產生出相應的表和相應的結果——這是我們想做的智能取數。
下麵介紹一下知識圖譜在數據管理和數據應用方麵的落地進展。
我們開發了一些基於幾十萬張、上百萬張ODPS表的知識圖譜。
說一下我們的結果。在數據資產管理中,有一項重要的工作就是判斷數據的歸屬。我們有上百萬張的線上表,其中可能有幾萬張到幾十萬張的表能夠比較清楚判斷是屬於哪個團隊,可以在數據版圖上打標。但是,還有上百萬張沒有打標的表,因為這個表屬於異構的。如果在之前,通過一些人工的規則,它的歸屬判斷準確率大概是55%,而通過我介紹的整個知識圖譜的框架,準確率可以提升到88%。所以,對數據資產管理其實是有一個非常顯著性的準確性上的提高。
接下來講一下知識圖譜在數據應用當中的一個技術框架,其實也是比較類似的。
首先,數據層。因為是一個知識圖譜的構建,所以上麵要加個辭典層和語義層。
再上麵就是基於推理層。在推理上,用的方法有大家比較熟悉的像隨機遊走和延伸等。那基於標注的,我們其實嚐試了很多種方法,比方說張量分解等。
目前為止比較成功的是PRA(pathranking algo),這個在知識圖譜上麵還是比較成功的一件事情。什麼是PRA,其實是把這些路徑抽象出來,然後就是學習一下再推薦這個路徑,但是它對於我剛才說的很多文本信息並沒有有效的利用起來,比如對於這些表的描述,在最原始的PRA當中路徑本身的位置是有考慮進去的,當然我對於這些描述,可能會知道也許這個路徑更有效。所以,後來我們看了一下這個Trans係列,其實類似word2vecvs tfidf。確實在我們整個的剛才說的案例當中也是有比較大的提高。
剛才說的這些可能都是比較抽象的,我們可以看一個具體的例子,在數據地圖當中,知識圖譜到底是怎麼工作的。
你打出一個查詢,首先就是基本的分詞與分析,其實大家可以看到,我們這個場景也是相當於搜索反饋一個結果,但是其實它和傳統的搜索是不一樣的:傳統的搜索像Google、百度,其實它關心的指標是你準確的那個值是不是在TOP5,或者TOP10。
但是,我們這個場合下一定要反饋唯一的、準確的表。所以,接下來我們會有一些模板匹配,所以這裏非常重要的一部分是人機交互這一塊,把人機交互的結果,就是人要告訴你說,這個結果是否是他想到的,然後知識圖譜整個剛才的框架有效的結合在一起,然後產生出你真正想找到那張表,然後整個的這個過程,其實這些是一些抽象出來的模板,這些模板可能是不夠的。因為隨著人的查詢越來越多,模板也需要慢慢的擴展。
現在我們還是基於一些規則判斷一些模板,未來我們也會嚐試,讓這個機器自動產生一些模板。
最後更新:2017-07-07 10:02:35