圖譜在手 天下我有
本文整理自胡芳槐博士6月9日北理工知識圖譜實戰學習活動上分享的《知識圖譜應用關鍵技術及行業應用》的PPT報告。
胡芳槐博士,上海海翼知信息科技有限公司創始人,現任上海海翼知信息科技有限公司CTO,知識圖譜和本體學習6年以上的研究以及產業化經驗,多個相關方向的國家項目和上海市政府項目骨幹成員,國內最早研究中文知識圖譜構建並進行產業化探索實踐,在國際知名會議和期刊上發表多篇中文圖譜構建、機器學習方面相關論文。
以下為報告正文
▼
今天我要分享的主題是知識圖譜應用關鍵技術及我們在行業應用中的一些探索,其實剛剛漆老師已經給我們分享了一個非常有趣的知識圖譜應用,就是佛學。
那麼剛剛提到的佛學考試,可能現在確實不多,但是最近大家應該能夠看到,在我們的朋友圈中有一些高考機器人的文章被刷屏,也就是有很多的學霸被這些機器人所代替了,其實他們後面很大程度的用了知識圖譜相關的技術。
今天我的分享分為兩個部分:
第一個就是對知識圖譜及知識圖譜應用的技術做一個分享;
然後是對我們應用知識圖譜在企業大數據方面的一些探索。
首先我們按照慣例,看一下什麼是知識圖譜,我這裡引用的是語義網之父的一句話:
語義網它是一個面向數據的互聯網,從某種含義上來說,它其實就是一個全局的資料庫。
什麼是一個面向數據的互聯網?
我們都知道,現在我們看到的網站,可以說是面向文檔和網頁的一個互聯網,在這個互聯網中間,它的主要信息是通過網頁來表達的,網頁方便之處是易於被人類所理解,所以平時我們查閱信息還是比較方便的,但是它有一個缺點,就是語義信息不足,所以機器理解起來比較困難,現在我們的互聯網正在轉變,它在轉變成為一種面向數據的互聯網,在這種互聯網裡面,它的信息和數據是可以被機器理解的。
我們看一下什麼是面向數據的互聯網,現在我們的互聯網中間,它不應該只是一個個的網頁,它應該更多的是一個個的事物,或者說是一個個的實體,就像我們這個圖中間看到的,互聯網裡面包含的更多的是對這些具體事物的描述。這張圖裡面包含了建築、糖果、化學物,還有藝術作品等。
這就是面向數據的互聯網中具體的事物,這些事物本身並不是孤立的,它們相互關聯,這就構成了這些事物之間的各種各樣的關聯關係,這可以說是面向數據的互聯網的本質:首先有各種各樣的事物,然後是這些事物之間的關聯關係。
我們再來看一下,為什麼會出現面向數據的互聯網這樣一個概念,從07年左右開始,我們可以看到,開放鏈接數據越來越多,這個圖從07年到現在,正好是10年左右的時間,我們可以看到它的發展是非常快的,這個網路在不斷的增加。這些數據相對來說都是結構化附有語義的,是一個個具體的事物。
在這一背景下面,Google在12年的時候,提出了「知識圖譜」的概念,剛剛漆老師提到,Google主要用它來構建下一代的搜索引擎,Google提出知識圖譜的時候,用了這麼一個短句:
Things, not strings!
也就是說,在互聯網中它不是一個個字元串,而是一個個真實存在的事物,事物之間還有相應的關聯關係,右下角圖我們可以看到,裡面有人物,並且還有他們之間的關聯。
什麼是知識圖譜?
其實定義是非常多的,我這裡提供一個我們自己的理解:知識圖譜主要的目標是用來描述真實世界中間存在的各種實體和概念,以及它們之間的關聯關係。
我們最開始的時候也提到了,它是一個全局的資料庫,在這個全局的資料庫中間,更多的希望它所有的事物都有一個全局唯一確定的ID,就像網頁一樣,每個網頁都有一個唯一的url來標識,對每個實體和概念,我們也同樣的用這麼一個ID去描述,稱之為標識符。
同時對於這些實體,它們的屬性,我們就用「屬性--值對「來刻畫它的內在特性,比如說我們的人物,他有年齡、身高、體重屬性;同時我們還用關係來描述兩個實體之間的關聯。
下面這兩個圖,就體現了事物和它們之間的關係。
知識圖譜的概念還是比較明確的,但是有很多朋友會經常問
知識圖譜和本體到底有什麼關係?
剛剛漆老師其實也提到了,知識圖譜並不是一個全新的東西,而是在以前的技術或理論上面,進行的一個重新的定義,引入了一個新的概念。
知識圖譜本身不是本體的一個替代品,是在本體的基礎上面做了一個豐富和擴充,這種擴充主要體現在實體層面。
本體中突出的主要是概念和概念之間的關聯關係,而知識圖譜描述的主要是實體,對這些實體我們通常還會去描述它更加豐富的信息。
用一句簡單的話來說就是:本體描述了知識圖譜的數據模式,本體的動態的特性賦予了知識圖譜動態數據模式支持的能力。
這一特性很重要,會用在我們很多的地方,比如說我們在Linked Open Data裡面就用到了這種理念,同時我們提到了在後面企業大數據的應用裡面,其實也會用到這個特性,它可以支持數據動態變遷的能力。
知識圖譜有哪些用途?
我們這裡列舉了一些,主要是人工智慧相關的,因為現在人工智慧非常火爆。
第一個就是用來搜索,這也是Google提出知識圖譜的初衷;
第二個就是聊天機器人,我相信在坐的各位或多或少都有用過,比如說微軟的小冰,王昊奮老師公司的公子小白;
第三個就是用來做問答,有一個貢獻非常大的,就是IBM Watson,這在業內非常有名;
然後現在還有很多私人的助理,比如說我們蘋果手機里的Siri,還有微軟的小娜,百度的度秘;
同時我們還有很多的穿戴設備,它裡面也用到了知識圖譜相關的技術,比如iWatch裡面就用了;
最後一個就是我們出行的助手,國內做的非常好的「出門問問」,它也是用了相關的技術。
以上是對知識圖譜用途的一個簡單的介紹。
接下來我們來看知識圖譜的第一個應用,也就是知識圖譜提出的初衷 -- 用來改善搜索。
如果我們現在去Google搜北京理工大學的時候,我們可以看到右邊有一個知識卡片,它裡面包含了北理工的很多基本介紹,同時還有一些基本的屬性,這是知識圖譜用在搜索裡面給我們帶來的第一個變化;
如果我們再用百度試一下,很多人搜的時候可能會想,如果要考北京理工大學,大概要多少分,正好這兩天也是高考的時間,現在我們搜的時候可以看到,在不同的區域,它會根據你的定位,自動把北理工在當前省份去年、前年和前幾年的一個分數展示出來,同時我們也可以看到一個地圖,地圖的作用是告訴你北理工在什麼地方。
通過知識圖譜,我們在搜索引擎裡面可以看到豐富的結果,在右邊我們可以看到和北理工相關的高校,以及和北理工相關的其他一些事物,這就是知識圖譜給我們帶來的搜索的改變。
同時我們還可以看到,在搜索結果裡面,不僅僅是一些結構化的信息,它還有很多關聯的關係。
比如我們去搜SuperCell這家公司,這是一個遊戲公司,我們可以看到它的很多相關聯信息,比如CEO、母公司、創建地址,它是被騰訊收購的一家創建於荷蘭的公司。
除了在搜索引擎裡面,在社交網路中也用到了知識圖譜,如果用過Facebook,它就用了知識圖譜的技術去鏈接裡面的人物、地點和事件,正如我們舉的兩個例子:如果去搜喜歡哈佛大學的人,它可以直接給你答案;第二個例子,搜去過哈佛大學的人,它同樣可以給你答案;
這就是在社交網路裡面的應用。
再看另外一個例子,這個例子更加複雜。
如果你去搜喜歡哈佛大學,喜歡籃球並且在Facebook工作的人,這其實是一個比較複雜的搜索,或者我們可以把它看作一個問答,這也是知識圖譜能夠給我們帶來的改變,也就是你搜的時候直接能夠給你答案。
以上是在通用知識圖譜或者社交網路中有這些應用,在行業中也有類似的使用知識圖譜技術的產品。
比如金融領域的問財,如果在裡面搜「萬科A」,它就會很明確的告訴你,搜索的是一個股票,股票最關注的就是它最近的波動,問財會自動的把萬科A最近股價波動的曲線給展示出來,同時還會告訴你萬科A是房地產行業的,並且在右下方推薦房地產相關行業的公司。
這是知識圖譜在行業裡面的一些應用。
我們也做了一些探索,在創投知識圖譜,也就是對一些初創企業的投資信息。比如「嘀嘀打車」,它的公司名叫「北京小桔科技有限公司」,我們去搜的時候,就會去猜測用戶最關心什麼?
第一個關心的應該是它的融資事件和歷史,我們會用一個時序的圖把融資的歷史給體現出來;同時對一家初創企業,我們還會關心它的創始人,創始人有哪些,背景如何?我們會一併展示出來;同時還有一些相關的熱點事件新聞,這些都是知識圖譜在搜索裡面給我們帶來的一些變化。
搜索如果往後再延伸一步的話,就是問答,我們再來看知識圖譜下一個應用場景:
自動問答
自動問答目前也是一個非常熱門的方向,剛剛漆老師也提到了,可能這是面嚮應用最直接的方式,目前不管是學術界還是工業界都在做相關的研究,這裡有兩個例子,左邊是百度的度秘,右邊是蘋果的Siri,可以看到自然語言問答的結果。
現在還有一個比較火的領域就是兒童機器人,這是王昊奮老師上期PPT分享中的一個圖,我們可以看到聊天機器人從10年的時候開始流行,一直到現在已經出現了很多具有代表性的產品,其中包含Siri,小冰,IBM Watson,公子小白等。
什麼是智能問答?
智能問答是指用戶以自然語言提問的形式提出信息查詢需求,系統依據對問題的分析,從各種數據資源中自動找出準確的答案。
這就是自動問答要做的事情,它的應用可以分為以下幾類:
第一就是情感聊天,典型應用是微軟小冰,公子小白;
然後是做私人秘書和個人助理,典型代表就是度秘和Google Allo;
還有作為領域知識的問答,比如IBM Watson,在醫療以及很多其他的領域都有相應的應用;
還有很多企業用來做智能客服,因為客服可能是一個比較枯燥的工作,利用智能客服來代替他們的工作可以省掉很多的人力成本。
我們對知識圖譜問答做一個分類可以分為:
開放領域自動問答,
特定領域的自動問答,
常用問題集自動問答,我們稱為FAQ。
FAQ在很多場景下面已經達到了很好的效果,但是客觀的評價,在開放領域的自動問答還處於一個比較初級的階段,所以現在更多成功的用例是在特定領域裡面,特定領域裡面我們一般是基於行業去做,以上是智能問答的一個分類。
智能問答依賴於一些關鍵的基礎及技術,一般需要大量高質量的數據和知識庫,這就是我們今天分享的話題,知識圖譜;
同時還依賴於強大的NLP技術的支撐,需要NLP技術對問題進行解析;
同時如果擁有大規模訓練語料的話就更加好了,因為現在深度學習是一種趨勢。
如果你有大規模語料,尤其是問答對的話,就可以利用深度學習去提供這種端到端的智能問答。
接下來描繪一下自動問答的基本過程。
從用戶輸入開始,我們的輸入是自然語言,輸入進去以後,第一步會對你的問題進行解析;
解析完以後就會去理解你的真實意圖,去猜測你要查的到底是什麼東西;
然後根據對你意圖的理解,去查詢和檢索;
最後是對查詢和檢索的結果做一個候選答案的生成和排序;
最終再通過一些排序的演算法進行最終結果的輸出。
這裡面通常在做的時候,會對問題進行一個分類,或者按領域去進行分類,或者按照用戶群體去進行分類,在分類以後會大大增加自動問答的一個準確率。
智能問答現在的方法主要有這麼幾類:
第一個是基於信息檢索的方法,
第二個是基於語義分析的方法,
第三個是基於規則的專家系統方法,
然後是現在研究的比較火的一個基於深度學習的方法。
接下來對幾種方法做一個介紹
第一個是
基於信息檢索的方法
這個方法更多的還是和傳統的檢索技術非常相似,首先利用分詞、命名實體識別等相關NLP工具去對問句進行解析,得到中間的關鍵詞,進一步得到實體,得到這些關鍵詞和實體之後,再去資源庫里進行檢索。
它有個缺點,如果我們做過檢索,或者在百度或Google中檢索過就會發現一個問題,它要求你的答案必須至少包含問句中的一個字或詞,所以查全率方面相對會比較低。
如果有了知識圖譜以後我們就可以進行改進,可以基於知識圖譜對它進行語義的擴充,當對問句進行分詞、命名實體識別之後,可以從知識圖譜裡面去找其它的同義詞,或者實體其它的稱呼,就可以對其進行語義的擴充,去提高它的匹配率。
同時我們做搜索的朋友應該都會遇到一個問題就是消岐的問題,也就是同一個詞或字元串,它代表不同的含義。我們經常的舉的一個例子,就是「蘋果」,它可能代表很多東西,可以代表水果,也可以是代表蘋果公司,也可以代表蘋果公司的一些產品,如果通過關鍵字檢索的話,那麼很難對這些結果進行語義上的區分,所以有了知識圖譜之後,就可以從實體的角度去理解。
再來看第二個
基於語義分析的方法
這個方法非常直觀,它和人的理解非常相似,就是把自然語言的一個問句,按照特定的語法或語言的規則去進行解析,形成一個語義的表達式,得到這個表達式以後,用這個表達式可以明確的去描繪你的意圖,然後就可以非常方便的轉換成為一種查詢語言,這種查詢語言可以是資料庫的查詢語言,也可以是其它的查詢語言。這取決於你的數據,你的查詢目標是放在什麼地方。
常用的方法就是利用組合範疇語法(CCG)的方式,這種語法最核心的就是辭彙,首先我們還是離不開自然語言處理去做映射得到辭彙,然後再用語法的規則把這些辭彙進行語義上的組合,最終得到語義表達式。
這裡面是有一個難點的,也就是中文的自然語言分析尤其是語義分析的準確率,很難達到工業可用的級別,一般通常還是在50%以內,所以這是語義分析方法很難的一個問題,所以如果我們是面向通用的問答去做,它的準確率比較低,因此通用領域的智能問答還處於一個比較初級的階段。
怎麼去改進?同樣可以利用知識圖譜。但是通用的知識圖譜的質量並不能保證,所以它很難在通用的領域利用知識圖譜去做很大的改善,所以通常在做的時候,包括我們自己在探索的時候,會在特定的領域裡去做。我們會基於知識圖譜裡面的實體、屬性、概念去對問題裡面的詞或實體進行解析和映射,然後再基於圖結構做一個語法規則的匹配,這就相當於是圖裡面的子圖查詢匹配問題,通過這種方式,我們就可以把語義解析的範圍範疇進行限定,限定範圍以後,因為裡面知識足夠多,並且在領域裡面,我們通常還是可以構建相對可靠的知識圖譜,從而可以得到正確率比較高的解析,最後再去進行檢索,就可以大大改善自動問答的準確率。
第三種方法可以說是比較無腦的,也就是上世紀80年代用的比較多的
基於規則的專家系統方法
這種方法它的好處非常明顯,如果你命中的話準確率非常高,基本上可以達到100%,但他的缺陷也很明顯,如果你的問題或應用的領域比較多的話,那麼它肯定是不能支持的,因為專家系統的範圍一般比較窄,並且其可擴展性、可復用性也是比較差的,如果要構建一個專家系統,需要花費很大的精力,這種方式也通常不可複製。
所以缺點就是通用性比較差,不能覆蓋很多應用場景。
現在還有一種,最近幾年非常熱的
基於深度學習的方法
深度學習,尤其是Alpha Go出來以後,把它推向了一個高峰。近幾年卷積神經網路,循環神經網路這種相關的技術在NLP領域也得到了比較好的應用,並取得了比較好的成果。它主要用來做語言的表示,語言表示就可以擴展到問答裡面,就是前面的每一個關鍵任務,比如在做語言的語義解析的時候,在做問題和答案的匹配、生成的時候,都可以用到。簡單來說就是對用戶的輸入進行解析,對答案檢索查詢環節進行優化,這是目前用的較多的一種方法。
還有一種使用的方式,就是前面提到的使用深度學習去訓練端到端的自動問答,把問題和答案均使用複雜的特徵向量進行描述,然後用深度學習來計算問題和答案之間的相似度,最終給出答案。要實現端到端的自動問答,有一個前提就是需要有大規模的語料。
關於深度學習最近幾年有很多優秀的技術和論文出來,大家如果感興趣的話可以去漆老師剛剛提到的公眾號OpenKG,查看昨天發的一篇文章,主要就是說深度學習相關的自動問答。
這是自動問答的四種方法,知識圖譜在所有的方法裡面都是有用的,我們概括一下,知識圖譜可以算是自動問答裡面的大腦:
它可以輔助去做用戶輸入的解析,進行語義的擴展;
它可以輔助你去理解用戶的意圖,從「字元串」到「實體」,也就是到實體級別的去理解;
然後再去進行知識的推理,知識推理之後你不僅可以得到表面的知識,而且可以得到深度的知識;
然後它還可以輔助去做答案的生成。
知識推理可以說是問答系統提高「智力」的一個核心環節,怎麼去提高的,等會我們會介紹知識推理相關的一些技術。
這是我們在智能問答裡面的一些探索,可以說是基於語義解析的一種自動問答,我們主要還是應用在行業裡面,從用戶輸入開始,我們會基於知識圖譜對概念、實體、屬性以及一些相關的運算符,進行分詞匹配,然後把它與知識圖譜裡面的元素進行映射;接下來一步就是做語義的解析和驗證,知識圖譜的結構性特彆強,所以我們在做語義理解解析的時候,可以用知識圖譜這種圖結構去輔助進行理解。
在語義解析和驗證這個環節裡面,我們應用了知識圖譜的結構,比如說實體和屬性的鏈接、實體和實體之間的鏈接,都是代表語義上面的一些含義。
做完語義解析以後,接下來就是做查詢的轉換,知識圖譜是存在相應的圖存儲裡面,對其做相應的查詢轉換非常方便;最後再去數據的資源裡面去進行查詢,最終返回結果。
右邊是我們在海洋知識圖譜裡面做的一個應用的案例,這個例子是我們在查最大的三種魚,首先我們對問題進行實體的解析,其次再去進行語義的解析,然後再去進行查詢,最終給出答案。
以上我們自己在基於語義解析的自動問答系統裡面做的一些探索。
剛剛把知識圖譜最常用的兩個應用場景做了一個簡單的描述:一個是搜索,一個是自動問答。
接下來我們對知識圖譜應用相關的一些技術做一個描述。
知識圖譜的應用技術今天主要分享三類:
圖挖掘和圖計算,
可視化,
知識推理。
知識圖譜之上的圖挖掘和計算
有這麼一些演算法:
第一個是圖遍歷,知識圖譜構建完之後可以理解為是一張很大的圖,怎麼去查詢遍歷這個圖,要根據圖的特點和應用的場景進行遍歷;
第二個就是圖裡面經典的演算法,最短路徑;
第三個是路徑的探尋,即給定兩個實體或多個實體去發現他們之間的關係;
第四個是權威節點的分析,這在社交網路分析中用的比較多;
第五個是族群分析;
第六個是相似節點的發現。
接下來我們一個個來看,
第一個是
圖的遍歷
圖的遍歷大家都知道有兩種方法,一個是廣度優先遍歷,一個是深度優先遍歷,這個我們就不詳細去說了。
這裡舉了一個例子,對於下面這個圖,分別用廣度優先遍歷和深度優先遍歷查詢的結果。
第二個是
最短路徑
最短路徑分為幾個場景,第一個是單源最短路徑,簡單的解釋下就是從一個點出發,去求它到其他所有節點的最短路徑。
Dijkstra是圖論里經典的演算法,演算法雖然比較經典,但是在現實中間應該說應用場景是比較少的,比如在社交網路裡面,我們很少去求一個人到其他所有人的最短路徑,這個應用的含義不大;
第二個就是每對節點之間的最短路徑,這同樣也有一個非常經典的Floyd演算法,這個應用場景也比較少,社交網路中間也很少查任意兩個人之間的最短路徑;
我們舉一個最常見的應用場景,也就是給出兩個節點,找他們之間的最短路徑,這個應用場景就比較多了,在社交網路中兩個人,你可能要計算通過幾步他們之間會有關聯。
在我們的應用場景中間也非常多,比如說在我們的企業知識圖譜裡面,給定兩個公司,要去查他們之間到底有沒有關係?幾步裡面有關係?這就是一個典型的應用場景。
第三個就是
路徑探尋
剛剛我們把這個圖用來做最短路徑,還可以給定兩個節點,去看他們之間不僅僅是最短路徑,可以查兩個企業之間5步以內到底有哪些關係,這就是路徑探尋演算法,也就是給定兩個或多個節點,探尋它們特定步驟裡面到底有多少關係,有哪些路徑。
這是兩個節點,多個節點也是同樣的,比如說在我們的創投知識圖譜裡面,我們去查騰訊、百度、阿里共同投資了哪些公司,這就可以把它轉換成一個路徑探尋的演算法,也就是給定這三個公司,我們去看看特定的步驟裡面,它們有哪些路徑關係,不管是直接投資還是間接投資,到底有哪些共同的投資。
第四個演算法是
權威節點的分析
先看應用場景,做過社交網路分析的人應該都知道,裡面有個很常見的應用場景就是社交網路里的權威人物分析,也就是在社交網路裡面哪些人是比較有權威的,有權威並不代表說他粉絲多就有權威,可能有些人,他在特定的領域裡面有權威。
定義一下,在知識圖譜的網路中間,怎麼去分析節點的權威度,找到裡面的權威節點,這裡面演算法就比較多,經典的演算法就是我們搜索裡面的Page Rank,它簡單的說就是用一種相互投票的機制,最後去決定每個節點的權威度;
還有一種是基於節點的屬性以及節點之間關係的一種多特徵方法,知識圖譜對每個節點既有自己的屬性,同時還有和其他節點之間的關聯,我們可以把節點屬性和關係結合起來,形成一種多特徵的評估方法。
在創投領域知識圖譜裡面,一個應用場景就是去找到裡面的權威投資機構,同時還會去找到哪些是有潛力的創新獨角獸公司。
下面一個是
族群的發現演算法
還是先看應用場景,在社交網路中,我們不僅僅是對個人感興趣,還會想知道在網路中,有哪些小的群體。
在社交網路中存在一些主題的社區,存在對特定領域感興趣的群體,就像我們大家對知識圖譜感興趣一樣,我們要在社交網路中找到對知識圖譜感興趣的這些人物,這就是族群發現演算法的一個應用場景。
簡單描述一下,它就是從知識圖譜的網路中間發現在一個或者多個角度相似節點的族群,做法也比較多,這裡我們列出兩個演算法,第一個是圖裡面經典的最大流演算法,還有一個和剛剛在計算權威節點時使用的方法類似,就是基於節點的屬性和節點之間的關係形成多特徵去進行聚類,從而找到裡面的群體。
在企業知識圖譜裡面,我們可以去找到全國幾千萬企業裡面的阿里系、騰訊系,也就是哪些是阿里投資的,阿里感興趣的一些公司。
再看最後一個
相似節點的發現演算法
我們在做企業知識圖譜的時候,比如一家企業他已經有一些客戶了,他可能還希望找到相似的客戶,那麼我們就可以去找到和他現有客戶相似的一些客戶,這就是相似節點發現的一個應用場景。
從海量的知識圖譜中間去尋找和已知節點相似的節點,方法有三種:
第一個就是基於節點的屬性去查,比如說對於企業,就可以根據企業產品的領域去找;
我們還可以根據節點間的關係去計算,因為關係代表了一定的特徵,所以我們可以通過這種關係,比如說兩個節點之間的關係圖非常相似,那麼也代表一定程度的相似;
還可以用混合的方式,把節點的屬性和節點的關係一起去使用。
我們做的一個應用場景,就是在專利知識圖譜裡面去尋找相似的專利。
在知識圖譜圖挖掘計算裡面,我們列舉了以上六種演算法,接下來看一下
知識圖譜的可視化
可視化應該說很好理解,這裡我引用了維基百科裡的定義:
可視化是利用計算機圖形學和圖像處理的相關技術,將數據知識和信息變成圖形或圖像在屏幕上展示,同時還有一個概念就是要和用戶進行交互。
它裡面包含了兩層含義,第一個就是要轉化成圖像,第二個就是交互,這個含義到現在說已經有點過時了,現在不僅僅是計算機,很多其他移動化的設備都有可視化的需求。
可視化我們看下它的三大功能:
第一個是做信息的記錄,它不僅僅是做信息的呈現,也可以做信息的記錄;
同時它支持對信息的推理和分析,如果我們把可視化做的好,可以從數據的可視化裡面找到很多關係規律,從而進行一定的推理和分析;
最後可以做信息的傳播和協同,這是知識圖譜可視化的定義和功能。
我們知道有一個模型,叫DIKW,也就是數據、信息、知識,再到智慧。這個模型我們應該非常熟悉,從底層的數據開始進行一定的提煉,形成信息,然後再進行抽取形成知識,在知識上面可以做很多的應用,比如說推理,比如說現在的人工智慧,這就是智慧。
定義到可視化裡面,我們也可以這樣去分類,從數據的可視化,到信息的可視化,再到知識的可視化,當然最後面是智慧的可視化,這個就更加抽象,更加困難,這個我們今天就不去表述。
先看數據可視化,有哪些類型的數據,第一個就是記錄型的數據,使用過關係型資料庫就會很清楚,裡面有很多記錄型的數據;然後還有關係型的數據,就像我們的知識圖譜,它是一種關係密集型的數據;然後還有時態數據、空間數據。
什麼是數據可視化,這個定義比較理論化,對於數據可視化不用我們去進行解釋,大家應該都知道,就是把數據裡面的一些信息、含義,怎麼去用一種形式去進行抽象、提取,形成信息然後用相應的屬性、變數去進行描繪,這是數據可視化。
數據可視化裡面有很多理論的研究和技術,今天由於時間關係,我不去詳細的介紹,大家感興趣的話可以去看浙大陳為教授的這本書叫《數據可視化》,這裡面對整個可視化做了非常詳細的剖析,大家可以去了解一下。
然後是信息的可視化和知識的可視化,應該說信息和知識的可視化在一定程度上很難去進行直接的區分,因為信息和知識沒有嚴格的界限。
信息可視化是研究大規模非數值信息資源的呈現,這裡面主要的目標就是幫助人去理解和分析數據。
知識可視化主要用來傳達和表示複雜知識的圖像,用圖像圖形的手段去表達,其主要目標是用來做知識的傳輸和傳遞,幫助其他人去正確的重構、記憶和應用知識。
接下來我們看一下在做知識可視化的時候有哪些常見的形式,我這裡列出來的只是一部分,比如說在知識圖譜裡面我們有概念和概念的層次,一種直觀的方式就是用概念的層次圖去進行知識的可視化,第二種就是用思維導圖的形式,同時我們還可以去做認知的地圖,最後可以用語義網路的方式,知識圖譜就是用這種原生態的語義網路形式進行描述的。
接下來我們看幾個簡單的例子,首先在知識圖譜可視化裡面常用的縮放和鑽取,因為我們知識圖譜是非常大的,就像我們剛剛的視頻,最開始的時候我們看到裡面有非常多的節點,怎麼去定位到裡面我們需要的節點,就可以用知識的縮放和鑽取去找到我們關注的節點。
PlantData可視化示例——縮放與鑽取_騰訊視頻 https://v.qq.com/x/page/x0512tpvylm.html第二個可以通過不同的視圖去描述,比如說左邊概念樹的形式,樹形結構描述也是非常常用的方式,這種方式非常簡單直觀;右邊我們還列出了一些其他的方式,比如車輪圖等。
還有很多其他的視圖,比如說上方環狀的圖,詞雲圖,以及左下角的氣泡圖等,這些都是知識圖譜可視化的一些示例。
對於可視化還有很多的工作要做,知識圖譜的應用,是要把知識圖譜傳遞出去,可視化是一個非常直觀的手段,所以裡面有非常多值得研究的地方。
接下來我們看一下
知識圖譜中的推理
由於知識圖譜和本體關係非常密切,所以裡面最重要的就是基於本體的知識推理,即知識圖譜核心知識內容部分的推理。
然後因為知識圖譜在大數據應用裡面用的非常多,我們可以做知識圖譜大數據預測分析與關聯挖掘,也就是圍繞知識圖譜組織的大數據,怎麼去做預測分析和關聯挖掘。
這是知識圖譜推理兩個主要的方面。
我們首先來看
知識圖譜里本體的推理
本體推理主要有兩大目標,第一個就是找到知識圖譜裡面隱含的知識,因為我們不管是在構建知識圖譜還是在構建本體的時候,一般都會有一個原則,就是用比較簡單的機制去描述儘可能多的信息,有些東西可能就直接隱含在裡面了,這些隱含的信息就必須用知識推理的方式把它表達出來。
還有一個就是在知識圖譜構建的時候經常用到的,做不一致性檢測。不管是手動構建,還是自動構建知識圖譜,都會碰到一個問題,或者你的數據來源不同,或者你的構建的人員不同、方法不同,就會不可避免的導致一些衝突,這些衝突自身很難直觀的去發現,但是可以利用知識圖譜裡面的不一致性檢測去發現存在的有矛盾的、有衝突的知識。
這是基於本體的知識推理的兩大目的。
本體因為用的是OWL的一個語言的表述,裡面包含了很多推理的問題,這裡列了非常多的問題,今天就不詳細介紹,或者說我去介紹也並不非常專業,因為這塊漆老師是非常專業的,我這些東西是從他一本書裡面摘抄下來的。這塊如果有朋友感興趣的話,可以去找漆老師請教
OWL推理的方法有以下幾類.
第一個就是基於表運算的方法,
第二個是基於一階邏輯轉換的方法,
然後是本體推斷的方法,
一階查詢重寫的方法,
以及Datalog的方法。
這本是漆老師的書,裡面有詳細的介紹,推理是一個理論深度非常深的話題,建議閱讀這本書詳細全面的了解。
今天著重講的是用於知識圖譜裡面組織大數據做分析,怎麼去做規律發現,怎麼做預測。
我們都知道知識圖譜在大數據的組織方面有很多的應用場景,這也是我們下半場要重點講的一個主題。
現在大數據我們用它來做什麼?第一個是我們用來做決策或輔助決策,有時是用即時數據,有時候用統計方法,同時也可以在數據中歸納一些新的數據模型,還可以從數據裡面得到新的知識。
我們先看第一個
大數據預測
預測可以說是大數據的核心價值,可能經常會聽說要用大數據去做股市的預測,去做疾病的預測,去做消費行為的預測,這些都是大數據核心應用的價值。即從已經發生的過去慢慢轉變到面向即將發生的未來。
從過去到預測未來,本身是有個邏輯基礎的,我們認為它帶有一定的推理的含義,即事物在變化之前一定有徵兆,突變是很少的,所以所有的事情都是有跡可循的,如果找到了這種徵兆規律,你就可以去進行預測,這是大數據進行邏輯預測的一個基礎。
預測通常是用一個預測模型,預測模型主要需要基於歷史的數據,歷史的數據決定未來事情發生的一個概率,因為大數據做預測的時候,一般不會去說我直接給你一個確定的答案,因為未知的世界都是帶有一定的可變性的,所以大數據在做預測的時候,通常給你一個事情發生的概率。
大數據還可以去做
關聯規則的挖掘
就是去找事物和事物時間的關聯關係,做數據挖掘的朋友應該都聽說過啤酒和尿布的故事,這就是一個非常典型的關聯規則挖掘的場景。要做關聯規則的挖掘,通常需要經歷兩個階段。
第一個就是從大數據的集合裡面找到所有高頻的關聯項目組,然後再由這些高頻的項目組通過一些演算法去進行過濾分析,最終找到關聯規則,這是做關聯規則最重要的兩個階段。
在做關聯規則挖掘的時候,有四個關鍵的指標,第一個是可信度,第二個是支持度,第三個是期望可信度,然後是作用度。
把這兩個推理總結起來:
知識圖譜其實回答了「為什麼」,它可以告訴你明確的原因,並且給出來的一般都是比較肯定的答案,可以讓你了解世界運作方式背後的深層原因;
大數據更多的回答「是什麼」,但是它很難告訴你為什麼會是這樣?所以它主要強調的是現象之間的聯繫,從而解決現實中的問題。
有沒有辦法把它們結合起來:首先通過大數據去發現是什麼,然後利用知識圖譜知識推理方式去尋找背後真實的原因,這就是現在用的比較多的一個智能決策系統。
在這種智能決策系統裡面,其實把大數據的預測和挖掘,以及知識圖譜支持的推理結合起來,同時還把數據分析的一些模型也結合起來。
我們看圖下方的模型庫、知識庫和資料庫,把它們結合起來。
對於資料庫利用資料庫管理系統、數據倉庫、數據挖掘系統;對於知識庫,利用知識庫管理系統及相應的推理機;對於模型庫,用相應的模型庫管理系統、模型計算。
從用戶的角度,需要對三種機制的結果進行統一,最終把統一的結果返回給用戶,形成一個基於大數據挖掘和知識推理的智能決策系統。
這張圖是一個基本的架構。
下半場主要講知識圖譜用來做大數據的分析和挖掘,也就是現在企業面臨的大數據背景下面怎麼去使用知識圖譜技術,幫助他們做數據的分析、融合以及決策。
下面這張圖是上次分享過的一張圖,從資料庫時代到大數據時代,當時我們借鑒了一個非常形象的比喻,池塘捕魚到大海捕魚。
在資料庫時代,從數據規模的角度來說相對是比較小的,在GB的級別;在大數據時代,很多企業數據已經超過了TB,甚至有些達到了ZB的級別。這是從數據規模的角度來說,大數據時代與傳統的資料庫時代的一個典型的區別。
從數據類型的角度來看,以前主要以結構化的數據為主,數據通常是存在關係資料庫裡面的,這些數據通常是結構化的,但在大數據時代,我們會看到它的數據類型會非常多,不僅僅有結構化的數據,還有半結構化的,甚至非結構化的數據,並且還有個趨勢,後兩者越來越多。
再從數據模式的角度來看,以前在傳統的資料庫時代,我們通常是先構建關係資料庫的數據模式,然後再去存儲數據,查詢、使用數據,這要求你對自己的數據有非常好的把握,數據模式要先固定,之後也不要有太多的變化,做關係資料庫應用的朋友知道,如果關係資料庫要變動,對系統帶來的變化後果,有時候甚至是災難性的;在大數據時代,數據大部分都是未知的,對於數據的數量、形態、作用都在不斷探索,數據的模式通常都是在數據出現以後才能去確定,數據模式也是隨著數據增長在不斷演變的。
最後從數據處理的方式來看,以前通過一種方式或者一種工具就可以去解決大部分所有的問題,但大數據時代很難用一種通用的工具方法去解決所有的問題,不管是數據的存儲、數據分析的演算法還是從應用的角度,都是多種多樣的,在不同的應用場景下面,需要不同的技術方法。
在大數據的背景下面,企業如果要應用這些大數據,通常會有哪些挑戰?
第一個就是多源異構的數據很難融合,企業包括不僅內部的數據,還有從第三方接入的數據以及互聯網公開數據,甚至是採購的數據。
這些數據很多,可能描述同一個事物有很多的數據源,它們分散在不同的地方,怎麼去把它們融合起來?
這裡舉了一個人物的例子,他在企業內部不同的系統裡面,互聯網裡面都有他的信息,怎麼去進行融合這是我們企業在面向大數據的時候會碰到的第一個挑戰。
第二個挑戰,大數據時代,數據模式在不斷變化的場景下,需要有一種可自有擴展的數據模式,細心的朋友已經聽到,知識圖譜是基於本體來構建的,所以本體的動態特性,就賦予了知識圖譜支持大數據動態變化的能力。
第三個挑戰就是非結構化和半結構化數據如何理解使用,非結構化的數據簡單來說就是文本,對於文本數據如何處理,傳統的方式依賴於NLP的方式,但是NLP本身的效果還未達到工業可用的級別,怎麼對非結構化的數據去進行應用?
第四個,傳統數據在使用的時候需要專業的程序員去編寫程序去進行查詢使用,普通的應用分析人員很難對數據去進行探索,我們要有一種快速的方式去對數據進行探索和使用。
第五個挑戰,在傳統的資料庫時代,構建的不同系統使用方式不一樣,數據集成的時候會非常混亂,我們更多的期待這些分散的數據如何把它們融合起來,形成一個統一的消費利用的入口,工作人員可以從統一的入口進行數據的消費。
接下來看下知識圖譜如何解決以上五個問題。
下圖是我們做的探索,知識圖譜如何助力數據分析實現商業智能,從最底層開始,知識圖譜需要對非結構化的數據進行處理,抽取信息形成結構化的知識;
第二個是數據動態的融合,多源異構的數據利用知識圖譜動態擴充變遷的能力,等到數據來了以後再去定義數據的屬性,數據之間的關聯,同時從底層存儲的角度來說,需要有一種能夠適應數據模式動態變遷的存儲機制,這個我們上次活動做了一個深度的分析,提供了一種可自由擴展模式的存儲機制;
其次我們提供一種自動檢索,自動問答的方式,通過自然語言和其他非常簡單的交互形式,對數據進行使用,這也是使用知識圖譜以後可以幫助我們去降低數據使用門檻。
使用這種技術,就可以把原來分散在各個地方的數據經過抽取、融合、鏈接形成知識圖譜,接下來在這之上可以為業務層提供統一的消費入口,包括以下方式,比如說進行語義的分析、理解、查詢,然後可以做數據關聯的探索,即知識圖譜圖探索,對於業務的拓展可以動態的去定義擴充,同時可以進行智能的檢索和問答,從而為用戶提供統一的入口。
接下來我們詳細分析如何使用知識圖譜裡面相關技術做這件事情。
第一個就是用知識圖譜(本體)對各種類型的數據進行抽象建模,基於可動態變化的,「概念 -- 實體 -- 屬性 -- 關係」數據模型,來實現各種數據的統一建模。
這個模型應該是非常靈活的,可以適應絕大部分數據的特徵,即可以使用這種模型對絕大部分的數據進行統一建模;
然後我們使用知識圖譜的數據存儲,實現對大數據及數據模式動態變化的存儲要求,從底層來說,提供存儲的知識;
同時利用知識圖譜裡面,比如信息抽取、實體鏈接相關的技術,去對非結構化、半結構化的數據進行抽取和轉換,形成知識圖譜形式的知識,以及和知識圖譜裡面的結構化的知識進行鏈接;
最後通過語義檢索、圖挖掘、推理、可視化以及數據分析相關的技術,構建一個統一的數據消費的入口,形成一個統一的分析、檢索和利用的平台。
這是總的解決方案,接下來我們看
怎麼使用知識圖譜去對數據進行建模
知識圖譜裡面有兩個基本元素,一個是實體,一個是概念。
我們可以以實體為主體目標,實現對不同來源的數據進行映射與合併,因為企業碰到的數據很大的一個應用場景就是數據在不同的系統裡面,但是描述的是同一個事物,怎麼去把他們合併起來?可以用實體的機制進行建模,然後通過實體合併相關的技術,把不同數據里描述同一個實體的數據進行融合;
融合後可以利用實體的屬性來表示不同數據源中針對實體的描述,即A處過來的數據可以用一部分屬性進行描述,B處來的也可以用一些屬性進行描述,用屬性進行統一描述之後,就會形成對實體全方位的描述,這裡面用到屬性的映射和歸併,因為從不同數據源中來的,可能有些屬性是重複的,甚至是衝突的,需要考慮怎麼去合併;
其次就是利用知識圖譜裡面的關聯關係去描述各種數據源之間數據的關係,知識圖譜裡面這種關係是非常靈活的,所以數據間的關係可以很容易的轉換成為知識圖譜來進行描述,從而支持關聯分析,這裡面主要用到的就是關係抽取的一個技術;
剩餘的數據可能信息抽取也比較難解決,可以通過實體鏈接的技術,並不一定要把所有文本都轉換成為結構化的數據,可以把它們進行鏈接,比如在做企業知識圖譜的時候,可以把企業相關的新聞,不用把新聞的時間、地點、人物都抽取,這塊難度較高,但是可以把新聞和實體做關聯,即通過實體鏈接技術,實現圍繞實體的多種類型數據的關聯存儲;
然後還有一個動態的數據,因為現實中間,數據都是在不斷動態變化的,這主要通過事件的機制來進行描述,體現事件與實體間的關聯,並利用時序的概念來描述事件的發展狀況,把歷史的事件和當前事件聯繫起來,有了動態變化之後,可以做時序的預測,這裡涉及的技術主要是動態事件的提取相關技術。
怎麼支持大數據和數據模式的動態變化
剛剛提到就是用基於圖的數據存儲,知識圖譜的數據模式動態變化特性支持按需修改數據模式,底層用圖存儲的機制進行支撐,這部分詳細參見上期活動文章。
怎麼去處理非結構化和半結構化數據
我們可以用信息抽取相關的技術,實現從非結構化、半結構化數據中進行信息抽取,轉換成知識圖譜里的知識;
剛剛提到對於新聞這種數據,可能很難把它完全結構化,可以通過實體鏈接的方式,結合知識圖譜,實現對目標數據的語義關聯標註,包括消岐、聚合,增強對數據的語義理解,數據和知識圖譜關聯以後,即可把知識圖譜里語義的特性關聯到非結構化數據里去;
還有可以通過搜索的技術,去對非結構化的數據進行統一檢索和利用,這是搜索引擎普遍使用技術,對文本的數據、非結構化的數據進行統一的檢索,用了知識圖譜之後可以做一定的語義檢索。
最後是提供一個統一的分析利用的平台。
這個平台提供用戶消費數據不同的方式,比如說可視化、統一檢索、統一數據查詢、數據分析與挖掘和深度推理。
通過知識圖譜去解決大數據並不是我們單獨提出的,應該說現在有很多成熟的方案,國外知名公司Palantir即利用了知識圖譜相關技術,中間黃色的框內描述的就是動態本體論相關的技術,對數據進行建模融合,底層數據抽取集成,上面提供一個統一的數據分析、利用、查詢的方案。
這個方案和我們的PlantData平台非常的相似,底層我們進行數據的採集,採集即運用信息抽取相關的技術對數據尤其是非結構化數據進行處理,然後形成結構化的知識,再往上進行數據的融合與合併,形成知識圖譜形式的知識,存儲在右邊大規模知識圖譜數據存儲引擎中,最上面是一個統一的消費平台,通過數據可視化,動態網路分析,語義檢索,智能語義問答,以及與數據分析挖掘相關的一些方法去提供給用戶,這是我們的PlantData平台針對大數據應用的一個解決方案。
總結一下,有了平台以後可以做什麼?中間核心部分就是我們的平台,有了平台以後相當於我們具備了很多知識圖譜上面的能力,比如可視化、網路分析、模型計算、數據智能等;同時PlantData平台還提供多種對外的接入方法,SDK等,在上面可以構建很多的應用,比如智能檢索、智能推薦等,最終落地到不同的行業中,這裡僅列舉了我們探索過的一些利用知識圖譜解決行業大數據問題的行業,PlantData大數據知識圖譜智能平台,可以賦能各行業應用。
接下來我們對各行業中應用做一些簡單的描述。
金融行業
金融行業數據相對來說比較全面,在這裡面已經探索出很多的應用,比如智能投顧,即通過數據分析的方式,智能的去進行投資,這個聽起來非常漂亮,但是目前為止,還很少有成熟的產品出來。國外的kensho做了一些探索,經過我們的分析和學習,應該還遠遠未達到智能投顧的級別。
但在現在一些具體的場景裡面,有很多落地的應用,比如反欺詐,知識圖譜可以將用戶所有的行為關聯起來,實現反欺詐的功能;同時可以做異常分析、組圖欺詐的檢測、精準營銷、失聯客戶管理等。
生物醫學領域
應用也非常多。比如在歐盟的第7框架下面,做了一個開放的藥品平台Open Phacts,這是在藥物發現里的一個應用;還可以做輔助診療,即前面提到的IBM Watson,我們也做了一些探索,比如中醫開方輔助,即根據癥狀智能開方,同時也可以做相似病例的發現,目前醫生在診斷的時候很大程度也是根據歷史病例進行參考,因此我們可以利用知識圖譜實現相似病例發現。
圖書館情報行業
我們也做了一些探索,比如在特定學科知識領域知識圖譜的建設,基於知識圖譜做一些知識的管理,同時我們還做了專利分析以及情報分析。
還有一些其他的應用,比如政府行業,政府大數據;農業領域的化肥本體知識庫;還有就是客服系統,這是基於知識圖譜的智能客服系統。
做個預告,接下來我們的活動主要是針對知識圖譜不同行業應用做一些沙龍,因為行業有其獨特性,我們只是做了一些探索,不過畢竟不是最專業的,所以邀請了很多行業知名的公司來參與這個沙龍,有興趣的朋友可以先關注公眾號,後續會在裡面進行活動推送,屆時會在包括金融、聊天機器人、遊戲和知識管理四大行業做一些深入的探討。
接下來是一個實戰演示,參加過第一期活動的朋友,應該知道我們遺留了一些問題,當時以《人民的名義》為例製作了一個知識圖譜,有了這個知識圖譜之後到底可以用它來做什麼?通過視頻我們可以更加清楚的了解今天知識圖譜應用的技術。
PlantData知識圖譜平台--《人民的名義》深度大揭秘_騰訊視頻 https://v.qq.com/x/page/m0512n5527l.html以上為報告全部內容。
轉載聲明:本文轉載自「PlantData知識圖譜實戰」,搜索「KGPlantData」即可關注。
推薦閱讀:
※實踐篇(一):數據準備和本體建模
※請問知識圖譜有哪些研究點是可以進行深入研究的?
※大規模知識圖譜的構建、推理及應用
※CCKS-2017行業知識圖譜構建與應用-上篇