Alexandra Meliou曾說過“輸入查詢,得到結果,是網際網路時代使用者獲取資訊系統中有關資料的重要方式。理解查詢的異常結果,是人類獲取知識的自然過程之一。”因此,當用戶對於查詢結果都有一定期望,但查詢結果為空的時候,使用者自然想知道為什麼,怎麼辦。這類問題被稱為查詢空集問題。目前,可以透過總計557個SPARQL終端查詢2969個知識圖譜,然而其中393個終端(72.22%),涵蓋2084 資料集(70.09%)在查詢過程中遇到空集問題,嚴重影響了資料查詢的可用性。因此,我們解決使用者的空集查詢問題有以下優點:提高SPARQL查詢系統的可用性和可信性;幫助使用者明確資訊需求,修改原始查詢及快速獲取期望結果。
深度學習和知識圖譜的結合,目前是整個AI最新、最熱的一個方向,如谷歌也是將知識圖譜作為AI的核心競爭力。它的主要內容包括五個方面,分別是知識圖譜及SPARQL查詢、查詢空集問題、知識圖譜表示學習、基於向量空間的近似查詢和實際應用。
知識圖譜及SPARQL查詢
知識圖譜是機器生成併為機器服務的,服務物件不是人類,需要追求機器可理解的東西。一個大規模的知識圖譜本質上是透過實體相關聯,以及實體的各種屬性構成的網路。知識圖譜的目的是將以前處於非結構化的資料,中間發現的非結構化的實體和他們之間的關聯,強調的是net、實體、關係,以及描述這些實體和關係的類別,最終會把非結構化的文字變成網路。
圖一:醫療領域知識圖譜
以醫療知識圖譜為例,知識圖譜可以把藥物、疾病、症狀、基因、病毒各種資訊關聯起來,形成一個龐大的資料網路。病人有兩種方式和知識圖譜產生關聯,服藥或者治療。可以想象雖然只吃了這個藥,但其實背後和一個龐大的知識庫相關聯。因此在分析病人的一些藥物推薦或者是病人症狀的時候,就可以在上面進行搜尋。
SPARQL查詢是類似於關係資料庫的SQL, W3C推薦,面向關聯資料的標準結構化查詢語言,主要基於圖模式匹配來查詢資訊。
知識圖譜的優勢目前已經應用在醫療領域、線上搜尋、電影娛樂等領域。
查詢空集問題
Alexandra Meliou曾說過“輸入查詢,得到結果,是網際網路時代使用者獲取資訊系統中有關資料的重要方式。理解查詢的異常結果,是人類獲取知識的自然過程之一。”因此,當用戶對於查詢結果都有一定期望,但查詢結果為空的時候,使用者自然想知道為什麼,怎麼辦。這類問題被稱為查詢空集問題。目前,可以透過總計557個SPARQL終端查詢2969個知識圖譜,然而其中393個終端(72.22%),涵蓋2084 資料集(70.09%)在查詢過程中遇到空集問題,嚴重影響了資料查詢的可用性。因此,我們解決使用者的空集查詢問題有以下優點:提高SPARQL查詢系統的可用性和可信性;幫助使用者明確資訊需求,修改原始查詢及快速獲取期望結果。
知識圖譜表示學習
知識圖譜表示學習是在2014年左右的時候出現的一項新的技術,核心思想是詞項的問題。做自然語言的深度學習,如何選擇詞項模型和訓練方式是第一項基本任務。知識圖譜的向量模型之前是透過關係資料庫或者圖資料庫,採用傳統的方式儲存。但在2015年,谷歌的工程師就思考用向量表示網路和知識圖譜。由此產生的概念是表示學習,如果看經典機器學習的書,第一就是介紹表示學習,即透過機器學習得到資料的表示形式,以及分散式表示和連續的向量的概念。
基於向量空間的近似查詢
回到最初的問題,查詢空集問題結果為空,傳統的方法是不斷修改查詢,向量空間給了我們另一個角度。基於向量空間的近似查詢旨在不修改使用者初始查詢的前提下,基於知識圖譜連續向量空間,採用資料驅動的方式,計算近似答案和推薦查詢,解決查詢空集問題。
圖二:基於連續向量空間的空集why-not解釋模型
右側是在向量空間中的視角,這個V1代表我們想發現的點,雖然在資料庫中不存在,但是我們可以在透過其他的向量結點,在空間中的加減法算出他的座標,這個方法其實是把一個解決空集問題轉化成一個最近零搜尋的問題,給另一個結點在空間中找到最近的結點。但這個空間必須要滿足語義相似的實體在連續向量空間中分佈緊密,且實體和實體之間的關係(謂詞)可以使用翻譯機制表達,所以這種傳統的KG embedding學習方法有侷限性,難以同時滿足這兩個條件。根據這兩個條件,我們對現有的方法進行改良。第一個問題是透過機率的形式求解最大,使其最佳化最大。第二個問題,先把圖進行切分,把複雜的圖切割成每一個查詢圖只包含一個變數的圖,對於只包含一個變數的查詢圖我們可以計算透過周圍的結點計算大概的位置。這時候得到的數量是不同的,所以算權重的時候要考慮不同的影響。對於多個數據,可以進行迭代處理,直到穩定。這種情況是需要具體問題具體對待,如果透過一次迭代或者很少次數的迭代已經滿足基本需求的時候,就不需要迭代到非常完美的資料。接著是可解釋性,基於結點的座標可以找到相似的答案,最後基於這個答案去傳播,返回的不再是一個具體的值,而是把周圍的資訊都反饋給使用者,這是一個很簡單的基於最近名搜尋以及查詢圖的功能。
實際應用
我們在實際應用中有兩個案例,第一個是基於知識圖譜查詢的治療和藥物推薦,這是把所有病人和藥物的知識圖譜以及疾病的知識譜形成一個關聯網路,關聯網路中發現所有圖的基本關係,然後形成查詢圖,之後放到更大規模,幾乎涉及到所有病人裡面去找相近的查詢,所以可以提供兩種,一種是精準的檢索,完全匹配和使用者一模一樣的,可以直接對症下藥。第二種是可以反饋近似的結果,最後告訴患者詳細的治療方案。整個過程並沒有用到特別複雜的模型,也沒有追求很花哨的神經網路,只是簡單的基於圖譜的功能。
第二個案例是華西第二醫院線上分診系統,這個系統中看似很高大上,其實是一個對話系統。給兒科和婦科的線上醫生提問任何一個自然語言形成的問題,系統會進行一個關係的建立並形成查詢圖,然後構成知識圖譜去匹配,得到相近的症狀和疾病。同時也會生成一些侯選的症狀,使用者自己選擇,再形成一個新的查詢圖,然後到知識圖譜裡進一步的匹配,更加區分開,最終基於結果推薦最合適的醫生,直接掛號、問診等。