About Me

我的相片
台北市, Taiwan
我是方選,
方白科技(finebind tech.)共同創辦人,
臺大資管所畢,
希望能幫助更多的人!

FB: http://fb.com/function1122
LINE: http://bit.ly/1foeZft (手機開啟點擊網址自動加入)

最新15則讀者回應

最新文章

FUNction's 上課筆記

Label Cloud

Blog Archive

FeedBurner

追蹤者

文件搜尋的方法 - 資訊檢索(Information Retrieval)

FUNction 於 2010年8月3日 下午4:55 發表

資訊檢索系統(Information Retrieval System)可以定義為儲存、展示、組織與存取資訊的系統。文件分析與索引可以協助資訊檢索工作的進行,一般來說可以透過以下模型進行。

基礎方法

布林模型 (Boolean Model)
簡單說就是字串比對,找出「完全符合」搜尋條件字串的文件集合。查詢的條件是單字或片語,並可使用布林運算式:AND/OR/NOT加以連接字串。布林模型的優點是效能高,缺點是不提供查詢結果的相關性排名,使用者無法知道文件符合查詢條件的程度。此外布林模型缺乏彈性,必須要完全符合字串才能被找出。

向量空間模型 (Vector Space Model)
由Gerard Salton提出,他認為資訊檢索過程必須對文件本身進行分析,以建立索引(Indexing)。建立索引的目的是透過索引代表文件集合中的某篇文件,一篇文件可以對應一組索引,這組索引稱為該篇文件的索引向量。一般來說這些索引是利用統計方法對文件產生的關鍵詞所建立的,計算出的文件向量可以代表文件的基本意義,在這個向量之中,每一個關鍵詞上的值代表該文件在這個詞彙所強調的程度,可由如TF-IDF等演算法計算而成。

向量空間模型將查詢字串視為極小篇的文件,將此查詢也以向量方式表示,接著在計算與文件庫中文不同文件向量的內積,計算文件與查詢條件的相關程度。

機率模型 (Probabilistic Model)
其基礎為機率排名原則(Probability Ranking Principle),該原則認為資訊檢索的任務是將文件依查詢條件的機率,與相關的機率加以排序。首先,必須對文件集計算出「檢索出相關文件所花的成本(C1)」與「檢索出不相關文件所花的成本(C2)」;接著使用詞彙統計等方法,計算出使用者認為「某文件與查詢是否相關的機率(R)」,考慮以下算式:

C1 x R + C2 x (1 - R)

算式值越小總成本越低,故排名在越前面。該方法優點在於能找出總成本較低的結果,缺點是詞彙統計只知道詞彙的統計數字,忽略的詞彙所代表的意義,使得無法達到「最佳模型(Perfect Model,只列出所有查詢相關的文件)」。

進階探討

關聯回饋(Relevance Feedback)
由於查詢結果未必符合使用者真正心理需求,調整查詢結果確有其必要。透過使用者對查詢條件的反應,系統重新調整查詢向量中各個不同維度上的權重。一般來說就是將原本查詢條件的向量加上使用者認為相關文件的向量,再減去使用者認為不相關文件的向量,將此結果作為新的查詢向量。每個向量前有一個常數值,透過常數值的反覆調整,產生符合使用者查詢需求的權重向量,相關方法可以參考Standard Rocchio Technique、Ide Regular 與Ide Dec-Hi等方法。

關聯回饋的優點是可以大幅增進查詢效能,缺點是對使用者操作系統造成額外的負擔,這點通常被視為關聯回饋無法普及的原因。

隱性語意索引 (Latent Semantics Indexing, LSI)
詞彙統計的最大問題無法掌握文件中的「概念」,例如許多不同辭彙都可以表示一個相同的概念、而相同詞彙在不同上下文中又可能有不同的概念的問題,LSI是為了解決概念所產生問題的「概念搜尋系統」。LSI也產生文件向量,但採用奇異值分解(Singular Value Decomposition, SVD)縮小文件向量;LSI假設人在使用相關詞彙時有其限制,概念相同的文章通常會有概念相似的詞彙,透過SVD可以去除某些因為詞彙有限產生的詞彙間相關性。

特徵值分析(Eigenvalue Analysis)可以將詞彙加以分類,在最佳情況可以使不同類之下的詞彙完全不相關(G. Salton, Automatic Information Organization and Retrieval, McGraw Hill, 1968, P.135 按:老實說我有點懷疑,鑒於六度分隔理論每個詞彙應該都是有關的)。LSI概念與特徵值分析相同,詳細的步驟可以參考SVD 於資訊檢索與文本搜尋的應用,該文章應用了一個五篇文章的小語料庫對LSI做了詳細的說明,在此對作者周志成(大俠)獻上誠摯的敬意。想了解奇異值分解的推倒,也可以參考他的文章─線性代數基本定理 (四)

LSI最大的問題在與料庫更新後的策略,因為SVD的計算相當耗時,一般來說有兩種方法(加上台大資管所黃卓倫所提出的SVD-Updating成為三種策略),簡述如下:

  • 完全重新計算!
  • Folding-in:假設加入文件不影響詞彙-文件矩陣的特徵值,只計算新增的部分,如此會降低查詢的正確性。
  • SVD-Updating:產生比Folding-in更好的結果,將新文件向輛自成矩陣,附加在原本詞彙-文件矩陣所形成的rank-k approximation matrix 矩陣後,重新計算SVD,但計算複雜度比Folding-in高。

心得
上述方法除了布林模型外,都是建構在詞頻統計上的,因此說詞頻統計是一切資訊檢索的基礎並不為過;另一個重要的工具是「向量」,又牽涉到向量的運算─矩陣。目前的方法都是建立在相似度上的運算再加一些修改,而使用向量相似度似乎也能提供人們一個堪用的結果。在近期的文件探勘文獻中討論到過去使用統計方法居多,但語意理解的方法因為涵蓋較多背景知識,使得發展較緩(《利用機器學習摘要概念為基礎之文件摘要自動建立法》,2007成大資管劉佳宗),而本體論(Ontology)直到近幾年才比較受到重視。

本體論的對應(Mapping)應是LSI的更進一步,使用預先定義好的領域知識,對文件中概念的根源進行探索。例如將「汽車」與「火車」都追朔到「交通工具」,化簡用語不同所造成的「概念」混淆。但不禁讓我思考,我們腦中只有一份本體論,為什麼卻無法在電腦中發展出一本萬用的本體論呢?

我認為問題在於目前的本體論研究缺乏了「構面」的觀念,雖然「概念」間具有「關聯」與「方向性」,但是在不同構面應該產生不同關聯,而構面的決定又依傳入資訊的不同而刺激到不同的區域,引發不同觀念串聯的反應。例如「柳丁」這個概念(原諒我這例子很難舉),在「食物」的本體論中可能會追朔到「水果」,但是在「顏色」的本體論中,可能會追朔到「黃色」,這就是一般研究中說的本體論概念衝突,需要本體論工程師對本體論進行「修剪」。但我認為每個概念都有許多構面,因此不應有衝突的問題。

簡報1 
▲上圖中展現本體論可能有多個構面,每個構面可以再往上歸類,形成一個非常複雜的架構(也應是腦中的資料結構)

雖然我目前仍無法想出一個像專案管理TQC(時間、成本、品質)這麼完善處理概念不同構面的模型,但我想總有一天研究者會發現腦中的資料結構(應該是一種類似物件導向的東西),進行完整本體論的工程。我認為腦中只有兩種資料結構─「事」與「物」,「事」的資料結構較複雜,但「物」較為簡單,也具備繼承、多重繼承的特性。若能突破「物」的本體論,相信在未來電腦解析文件時能產生不亞於人類的理解力。

以上,顯現我知識不足的粗淺想法,希望能拋磚引玉,共同塑造人類美好生活。

主要參考資料利用隱藏語意索引進行文件分段檢索之硏究 黃卓倫撰 P.3-12

Tags: , , ,

讀者回應 ( 0 意見 )

張貼留言

如果沒有帳戶,建議使用「名稱/網址」留言喔^^