随着知識圖譜相關技術的逐漸成熟,近年來,學術界也開始了對知識圖譜的在搜尋引擎中的應用的探索。目前常用的方法是:先通過實體标注等技術将搜尋引擎和知識圖譜聯系起來;然後利用知識圖譜中的資訊來更好地了解查詢詞條和改進排序模型。
知識圖譜和搜尋引擎的結合
知識圖譜和之前搜尋引擎中常見的資料有很大不同。首先,知識圖譜是圖結構的,而搜尋引擎中更常見的是文本和網頁;同時,知識圖譜中的資訊更語義化。要想能夠在搜尋引擎中使用知識圖譜,首要要做的是把知識圖譜,或者更具體地說,其中的實體,和搜尋引擎給對接起來。目前常見的方法有如下四種。
● 人工标注:人工挑選相關和查詢詞條相關的實體。這種方法直覺、可靠。但是隻能一定程度上代表知識圖譜效果的某種上限,很難大規模使用。
● 搜尋詞條中的實體标注[3] :使用實體标注系統找出在搜尋詞條中出現的實體,并連接配接到知識圖譜中對應的節點上。因為實際使用者在搜尋詞條中提到的實體很大機率上反映使用者的意圖,是以通過搜尋詞條上的實體标注可以提供相對高品質的相關實體。
● 實體搜尋:建立一個實體搜尋引擎,将查詢詞條的前幾條實體搜尋結果當作相關實體[5] 。
● 文檔實體标注:對候選文檔進行實體标注,然後所有候選文檔的實體标注中選擇最頻繁出現的那部分當作相關實體。這種方法使用了經典的僞相關回報假設。即被搜尋引擎排在前面的文檔結果應當是相關的,這些文檔中常出現的實體也應該是相關的[4] 。
總的來說,這四種方法各有特點。人工标注能夠保證相關實體的準确性,但是隻具有指導意義;搜尋詞條中的實體标注能夠提供更直接、更精确的相關實體,但是數量有限;實體搜尋和文檔實體标注結果從不同角度提供了更豐富的相關實體,但是也引入了更多噪聲。表 1 給出了幾種不同的方法找出的相關實體結果,作為示例。

基于知識圖譜的使用者查詢詞條了解
得到了查詢詞條的相關實體之後,最直覺的方法是用這些實體來幫助了解查詢詞條。目前主要的方法有查詢詞條擴充和排序模型的特征擴充兩種。
基于 Freebase 的查詢詞條擴充[6]
本 方 法 利 用 Freebase 這 個 目 前 最 大、 覆寫面最廣的知識圖譜,來提升查詢擴充(queryexpansion)的效果。查詢擴充是搜尋中很常用的技術。一般使用者給的查詢詞條很短,平均約 2~3 詞。這導緻了使用者意圖很難被搜尋引擎準确了解。為了解決這個問題,查詢擴充技術找到一系列能夠反映使用者意圖的詞語(擴充詞),作為查詢詞條的補充。
在知識圖譜裡,實體的文本描述是由領域專家提供的對實體的解釋。這些文本解釋不但品質比網頁更高,也提供了更豐富的語義資訊。例如,“微軟中國”這個實體的文本描述中會提到大量的微軟公司以及中國分公司的知識。這些知識能夠幫助搜尋引擎更好地了解和“微軟中國”相關的搜尋詞條。
具體做法可以分成兩步。第一步,先找到查詢詞條的相關實體。由于查詢擴充一般需要一個較大的候選集合來投票得出擴充詞。這裡主要使用的方法是實體搜尋和文檔實體标注來找到相關實體。第二步,從相關實體的文本描述中選擇擴充詞。這一步也有兩種方法:第一種方法用經典的 TF-IDF,在文本描述中選擇出現更頻繁(TF),在整個資料集中又相對少見(IDF)的詞。第二種方法用Freebase 中的分類資訊訓練一個分類器,将查詢詞和候選詞語分類。之後再選擇和查詢詞在類别上相似的詞語作為擴充詞。
本方法在 TREC 評測中網頁搜尋的資料集上,将查詢擴充的效果提升了 10%~30%。和之前的方法相比,這個方法主要的差別就是使用了知識圖譜中的資訊。這樣能帶來最高可達 30% 搜尋效果的提升,也反映了知識圖譜在搜尋中的有效性。
排序模型中特征擴充[7]
搜尋引擎中目前常見的排序方法都是基于機器學習的(learning to rank)。一個好的排序算法可以分為特征和模型兩個部分。知識圖譜中的資訊,除了可以拿來擴充查詢詞條之外,也可以給排序算法提供更豐富的特征。
本方法首先利用實體搜尋和查詢詞條,以及文檔上實體标注,從 Freebase 中找到到相關實體。然後,将相關實體的各種文本屬性,包括類别名、名稱,以及實體在文檔中的上下文等,作為虛拟的子查詢詞條。這些子查詢詞條和文檔的各種文本相似度被當作新的特征加入到現有的排序模型中。這些排序特征引入了來自于知識圖譜不同次元的語義資訊,提供了一個更大的模型空間供機器學習模型來學習排序函數。在 TREC 的網頁搜尋任務上和新聞搜尋資料集上,這個方法能夠達到或者超過之前的排序模型效果。
基于知識圖譜的排序模型
之前的方法是首先通過知識圖譜來擴充查詢詞條,或者抽取更多特征,然後在此基礎上應用傳統的模型進行排序。相比之下,一個更直覺做法是從最終的查詢結果優化的角度出發,直接利用知識圖譜建構新的搜尋模型。目前有效的做法是将找到的相關實體作為聯系查詢詞條和文檔之間的橋梁,并在排序模型中統一考慮查詢詞條、相關實體和候選文檔之間的聯系。根據是否使用了訓練資料,現今做法可以分為無監督和有監督這兩類。
無監督的實體隐變量模型(LES) [8]
本方法使用人工标注的實體來作為查詢詞條和候選文檔之間的中間層,然後利用标注的實體的文本描述和查詢詞條,以及文檔的文本相似度對文檔進行排序。
具體來說,假定查詢詞條是 q,一篇候選文檔是 d,則傳統語言模型假設下的相關性可以認為是p(q|d),即文檔 d 的語言模型生成 q 的機率。而給定相關實體之後,可以假設 q 和 d 之間的互動是通過相關實體作為中間層實作的。這樣的話,相關性可以被表示為e /p(q|e)p(e|d)。其中 e 表示一個相關實體,p(e|d) 和 p(q|e)則通過文檔、實體和查詢詞條的文本描述的文本相似度來計算。
作為一個簡單的無監督方法,此模型在 2015年的 TREC 網頁搜尋比賽中獲得了最好的搜尋效果,超過了諸多基于機器學習和傳統排序特征的有監督模型。當然,這種方法很依賴相關實體的精确度,目前主要依靠人工标注來保證效果,很難自動地在實際系統中上使用。但是,作為一個簡單的方法,它的效果也進一步反映了知識圖譜在排序模型中的潛力。
有監督的實體隐變量模型 (EsdRank) [9]
EsdRank 和 LES 同樣将相關實體作為排序模型中的查詢詞和文檔之間的隐含層進行模組化。不同的是 EsdRank 利用各種特征表示查詢詞、相關實體和文檔之間的相關性,并使用 Learning to Rank學習這些特征的權重。通過使用有監督的模型和相關性标注資料,EsdRank擺脫了對人工标注的依賴,可以在自動得到相關實體上也獲得好的效果。
EsdRank 中的相關實體也來自查詢詞條中的實體标注、實體搜尋和候選文檔的實體标注。實體和查詢詞條之間的關系,以及實體和候選文檔之間的關系,均用特征來表示。查詢詞條和實體之間的特征可以是查詢詞條和實體各個屬性(文本描述、名稱等)的文本相似度,以及查詢詞和實體在知識圖譜中所在類别的相似度、實體和查詢詞在實體标注中的關系、實體本身的重要性等。實體和文檔之間的特征包括類似的文本、分類、實體标注,以及知識圖譜中的距離等。這些特征既包含了傳統的排序模型中的文本特征,也引入了知識圖譜特中的語義資訊。
整個排序過程被一個兩層的生成式模型刻畫。模型首先從查詢詞條生成相關實體(p(e|q)),進而根據相關實體對相關文檔進行排序(p(d|e))。其中相關實體則是隐含變量。模型的訓練使用了 EM 方法,直接從查詢詞 - 文檔的相關性中學習實體的打分和文檔的排序。
EsdRank 在醫療搜尋和網頁搜尋這兩個不同的搜尋領域上,都顯著提高了搜尋精确度。在醫療搜尋上,EsdRank 選擇了傳統的 MeSH 控制詞表作為知識圖譜;在網頁搜尋上,EsdRank 選擇的是Freebase。面對這兩個不同的搜尋領域和不同的知識圖譜,EsdRank 使用了相同的架構、相同的模型和幾乎一樣的特征,并均取得了好的效果。這個結果也反映了知識圖譜目前在搜尋上已經接近,或者達到了實際可用的效果,并對不同的搜尋領域有一定的普世性。