天天看點

淺析阿裡資料技術架構(下)大規模分布式知識圖譜

阿裡資料要做的是:把資料真正打通,深度挖掘資料的價值,為業務創新應用提供資料決策基礎和依據。

下面具體介紹我們在大規模分布式知識圖譜上的技術實踐。

為什麼需要知識圖譜?

大規模知識圖譜抽象也是一種圖計算。基于大規模分布式知識圖譜做了哪些工作?我們為什麼要做這樣一件事情?

阿裡巴巴的生态非常豐富,而豐富的業态背後給我們資料工作者帶來的困難就是,我們常常需要接入各種資料,并将他們有效地管理和整合起來,傳統的方法,我們可能需要花幾個月,投入幾十個人做這樣一件事情,對資料進行打标。

但是,假設我們已經知道資料和資料之間的一些關系,而且也知道資料表中哪些表被調用的次數最多。

那麼,如果我隻是對調用次數最多的表進行非常精确地打标,然後用基于知識圖譜的方法,對剩下的90%表進行推理式的label打标,就能極大節約了人力成本。

是以這就是我們為什麼要用知識圖譜去做資料接入這樣的事情。那麼,對于資料管理也是同樣的道理。

假如隻有1g的資料,你可以很快地回答出資料分布的情況和品質。而我們的現狀時,我們的資料達到zb級别的規模。是以對資料管理來說,挑戰不容小觑。

淺析阿裡資料技術架構(下)大規模分布式知識圖譜

同樣地來看看資料應用方面的情況。我們基于資料應用,實際上也有一款産品叫做“資料地圖”。

資料地圖是幹什麼呢?其實就是當你進行一個查詢,在這個産品裡會自動幫你回報出一個最相關的表。

延伸開來的是我們想要做得下一步工作:當你下一次進行查詢後,能直接傳回出相應的sql,再産生出相應的表和相應的結果——這是我們想做的智能取數。

下面介紹一下知識圖譜在資料管理和資料應用方面的落地進展。

我們開發了一些基于幾十萬張、上百萬張odps表的知識圖譜。

說一下我們的結果。在資料資産管理中,有一項重要的工作就是判斷資料的歸屬。我們有上百萬張的線上表,其中可能有幾萬張到幾十萬張的表能夠比較清楚判斷是屬于哪個團隊,可以在資料版圖上打标。但是,還有上百萬張沒有打标的表,因為這個表屬于異構的。如果在之前,通過一些人工的規則,它的歸屬判斷準确率大概是55%,而通過我介紹的整個知識圖譜的架構,準确率可以提升到88%。是以,對資料資産管理其實是有一個非常顯著性的準确性上的提高。

接下來講一下知識圖譜在資料應用當中的一個技術架構,其實也是比較類似的。

淺析阿裡資料技術架構(下)大規模分布式知識圖譜

資料管理技術架構

首先,資料層。因為是一個知識圖譜的建構,是以上面要加個辭典層和語義層。

再上面就是基于推理層。在推理上,用的方法有大家比較熟悉的像随機遊走和延伸等。那基于标注的,我們其實嘗試了很多種方法,比方說張量分解等。

目前為止比較成功的是pra(pathranking algo),這個在知識圖譜上面還是比較成功的一件事情。什麼是pra,其實是把這些路徑抽象出來,然後就是學習一下再推薦這個路徑,但是它對于我剛才說的很多文本資訊并沒有有效的利用起來,比如對于這些表的描述,在最原始的pra當中路徑本身的位置是有考慮進去的,當然我對于這些描述,可能會知道也許這個路徑更有效。是以,後來我們看了一下這個trans系列,其實類似word2vecvs tfidf。确實在我們整個的剛才說的案例當中也是有比較大的提高。

剛才說的這些可能都是比較抽象的,我們可以看一個具體的例子,在資料地圖當中,知識圖譜到底是怎麼工作的。

淺析阿裡資料技術架構(下)大規模分布式知識圖譜

你打出一個查詢,首先就是基本的分詞與分析,其實大家可以看到,我們這個場景也是相當于搜尋回報一個結果,但是其實它和傳統的搜尋是不一樣的:傳統的搜尋像google、百度,其實它關心的名額是你準确的那個值是不是在top5,或者top10。

但是,我們這個場合下一定要回報唯一的、準确的表。是以,接下來我們會有一些模闆比對,是以這裡非常重要的一部分是人機互動這一塊,把人機互動的結果,就是人要告訴你說,這個結果是否是他想到的,然後知識圖譜整個剛才的架構有效的結合在一起,然後産生出你真正想找到那張表,然後整個的這個過程,其實這些是一些抽象出來的模闆,這些模闆可能是不夠的。因為随着人的查詢越來越多,模闆也需要慢慢的擴充。

現在我們還是基于一些規則判斷一些模闆,未來我們也會嘗試,讓這個機器自動産生一些模闆。

<a href="http://mp.weixin.qq.com/s/wwgdz0cjvfdf6zd2_wkhqq">原文連結</a>

繼續閱讀