reading notes -- A Report from the Trenches

Building, Maintaining, and Using Knowledge Bases: A Report from the Trenchesnode

 ABSTRACT算法

一個知識庫(KB) 是一個集合,包含有概念,實例和關係。
論文中描述了一個工業級使用的知識庫,從創建維護到使用的全過程。尤爲是創建,更新和組織一個大型的知識庫,以及其大量的應用。
 
1、INTRODUCTION
知識庫及知識圖譜的應用大概有:DBLP, Google Scholar, Internet Movie Database, YAGO, DBpedia, Wolfram Alpha, and Freebase.
 
2、PRELIMINARIES
    典型的知識庫包括一個概念的集合,C1,C2,C3,一個實例集合Ii for 每一個Ci,和一個關係集合,Ri表達概念之間的關係。
這裏構建了一個樹狀的結構的分類法來表達概念之間的關係,並且這裏尤爲要強調一種抽取出來的關係,「是一個」,這是一種屬於關係,孩子節點屬於其父節點。非父子幾點之間也許還有其餘關係。如圖1 。有些知識庫父節點包含的實例全都屬於子節點,可是這這裏沒有這個要求,並且更特別的是
 
Domain-Specific KBs vs. Global KBs:
domain-specific KB:特定領域 DBLP, Google Scholar, DBLife, echonest
global KB:涵蓋全世界 Freebase, Google’s knowledge graph, YAGO, DBpedia, and the collection of Wikipedia infoboxes.
雖然global KB 很重要,可是Domain-specific KB 一樣很重要,在某些特定領域尤爲重要。
 
Ontology-like KBs vs. Source-Specific KBs:
Ontology-like KB:舉例來講,他能夠指向特定領域,可是不是這個領域的全域,而是重要區域內的所有。問題在於如何得到某一實體的所有信息。
Source-Specific KB:包含某一區域的所有。重要是組織各類信息的問題。
由以上兩點能夠看出,結合兩種狀況的缺點能夠互補,若是基於olkb構建sskb那狀況就容易了。
 
這裏將構建global,ontology-like KB:
3、BUILDING THE KNOWLEDGE BASE
converting Wikipedia into a KB:
(1)      基於wikipedia構造分類樹。
  • 爬取wiki,創建本地鏡像頗有必要
  • 構建wiki圖
這裏有兩種主要的wiki頁面:文章頁面(表明instance)和分類頁面(表明concept)
 
 
由此,這裏構造的圖,節點表明一個分類或實例,節點之間的邊表明了一個wiki的鏈接,能夠是父類到子類,也能夠是concept到instance。
 
理想狀況下,文章和分類最好來自一個分類法 ,可是實際狀況偏偏相反。產生的圖是一個環,以下圖:
 
 
另一個問題如上圖,wiki自然的分類不是很是的如咱們所需,雜質多,相對有用的分類深度就打了,這裏將root下的高層次分類手動定義,這樣不只清晰了分類,並且壓縮了有意義的分類到跟節點的距離。
  • 構造分類樹
由上面的第一個問題,如今要解決的就是如何從wiki的有向的環圖中構造出分類樹了。利用現有算法Edmonds’ algorithm(Tarjan,利用權重裁剪邊)。具體步驟見論文。
(2)      在分類之上構造DAG。
這裏是圖 而不是樹,由於從根節點到子節點可能有不止一條路徑,因此這裏處理就會比較複雜,首先要提取出一顆主分類樹,同時保留子路徑(利用權重區分)。具體就是對原wiki圖進行dfs,一遍一遍遍歷,直到結束這樣能夠破除環,可是保留了不一樣路徑。
(3)      由wikipedia抽取關係。
示例,<name of concept instance 1, name of concept instance 2, some text indicating a relationship between them>.
(4)      加入元數據。
主要定義模糊概念節點的定義,和met元數據的定義
(5)      加入其餘數據。
添加外部數據涉及到實例和關係
首先添加關係,而後添加實例,(實例名,分類),先匹配名,再匹配分類,根據不一樣的狀況進行添加實例操做,添加元數據操做,或不作操做。
4、MAINTAINING THE KNOWLEDGE BASE
1) Updating the Knowledge Base
1.從新抓取,由於以前定義的破環操做,因此以後從新抓取,就應該繼續圍繞這個規則
2.只更新update file
2)Curating the Knowledge Base
1.Evaluating the Quality: 人工抽樣     隨機路徑,和隨機節點
2.Curating by Writing Commands: 人工干預對KB的操做     
*Adding/deleting nodes and edges:
*Changing edge weights:
*Changing the assignment of an instance-of or an is-a relationship:
*Recommending an ancestor to a node:
*Assigning preference to a subtree in the graph:
3.Managing Commands:
由於有更新問題,抓取以後,會有人力的編輯行爲,可是當更新時,新加的內容和編輯內容衝突時,要作回滾策略。若是把kb動態改變,必需要將操做集成爲命令,利於持續更新和回滾。這一點很是重要。
5、USING THE KNOWLEDGE BASE
query understanding, Deep Web search, in-context advertising, event monitoring in social media, product search, social gifting, and social mining.
 
我的總結:
對於domain-specific KB,從構建來講,數據源會有不少可是會比較固定,數據結構化明顯,抽象關係很少,多數會爲具體關係。首先從一個數據源入手,加入本身數據的獨立id,其餘信息以meta形式加入數據庫字段。而後再爬取不一樣的數據源,進行實例的擴充和字段的擴充。
從維持來講,數據源的更新分手動和自動,可是其中最須要注意到問題就是手動管理的地方要封裝成任務,定義編輯策略,這樣應對程序性的更新和人力更新發生衝突,支持回滾和批量任務。
domain-specific KB對於個性化推薦和學習型算法很是重要。
global KB是個海洋,而真正能滋養的應該是淺灘,domain-specific KB 就是淺灘。
相關文章
相關標籤/搜索