2007年4月21日 星期六

搜尋:樣式比對( Pattern matching)

大部分搜尋引擎的檢索原理(retrieval algorithms)是應用「樣式比對」(pattern matching),亦即將使用者的查詢與索引(index)做比對,通常是到網頁全文中去找看看有沒有相同的字串。當找到一個相同的字串時,該網頁就會被新增到retrieval set。所以,如果使用者輸入"information architecture",那麼有出現"information architecture"字串的網頁就會被檢索出來。聽起來好像很簡單,事實上比對的過程可以有很多種不同的做法,做法不同檢索出來的結果也不同。


查全(recall)與查準(precision)
有些檢索原理是將各種不同相關程度的結果全部都檢索出來,有些則只檢索出少部分高度相關的結果。這個概念就是查全(recall)與查準(precision) 。

查全(recall)=檢得的相關文件筆數/資料庫中或網站中所有相關文件筆數
查準(precision) =檢得的相關文件筆數/資料庫中或網站中所有文件筆數

比如說網站中有1000篇文件,搜尋結果是100篇;事實上網站中相關的文件共有200篇。查全率是:100/200=0.5,而查準率是:100/1000=0.1。

搜尋系統設計應該強調查全還是查準呢?取決於網站的使用者!
如果網站的使用者是做法律研究、追蹤某個領域科學研究的最新發展、或者為企業併購進行研究,那麼使用者要的應該是查全(high recall)。再比如我們在搜尋引擎中輸入自己的名字做 ego-surfing時,也是希望找到所有有出現自己名字的網頁都找到,再一一瀏覽過濾。查全要面對的問題是,搜尋結果中會出現很多不相關的資訊。

另一種情況是只要找到幾篇真的很好的文件就好了。比如說上網找有關「簡報技巧」的資訊時,我只想要找到幾篇好文章學會簡報技巧,而不想要找網路上所有有關簡報技巧的文件全部都找全。這時我要的是高精確率的結果,是查準;不想知道到底有多少相關資訊,只要找到最優質的資訊即可。

那麼既查準又查全不是兩全其美嗎?可惜魚與熊掌難兼得!資訊結構師必須權衡兩者,決定那種方式對使用者最有用,再選擇一個最符合需求的搜尋引擎。

有些搜尋引擎提供自動切截(automatic stemming),將搜尋結果放大到搜尋相同字根的所有單字。如果是強切截(strong stemming)的話,搜尋computer時,可能搜尋到所有comput字根的單字,包括:computers, computation, computational, computing。這種搜尋方式可以搜尋到較多的文件,恴謂較高的查全率(higher recall)。

相反地,無切截(no stemming)時,輸入computers只會檢索到包含computers的文件,勿略所有其他的同字根的單字。弱切截(weak stemming)則只將搜尋擴大到包含複數詞彙,輸入computer,會檢索到包含computer和computers的文件。無切截和弱切截的查準率較強切截高,但查全率較低。該用那種搜尋系統呢?答案取決於使用者的資訊需求是屬於那種類型。

此外,還得考慮內容結構如何。如果在HTML或XML中有欄位(fields)設計,搜尋引擎可以「看到」,可以搜尋。那麼如果想要知道費曼博士的書,限定在作者欄位搜尋 Richard Feynman,可以得到較高的查準率;如果沒有欄位設計的話,只能以Richard Feynman在網站中做全文檢索,搜尋結果可能是只在文章中提到費曼博士,壓根兒都不是費曼博士的著作。


Document similarity(類似文件)
如果手邊已經有一篇很好的文件,可以利用一些原理搜尋到更多類似的文件,這就是所謂的Document similarity(類似文件)。搜尋引擎的做法是將這篇很好的文件中的頻繁字(stop words),例如: the, is ,he 等,加以刪除後,留下一組語意豐富的詞彙,代表這篇文件。然後以該組詞彙搜尋到更多類似結果。另一種方法是搜尋有用到相同metadata的文件(當然這得要該文件有用metadata做index才做得到)。




Collaborative filtering(協同過濾)
根據Wikipedia,協同過濾是藉由蒐集大量使用者的偏好資訊(collaborating)來自動預測(filtering)個別使用者偏好的方法。協同過濾的基本假設是:很多使用者的一致行為傾向於和未來的行為一致;協同過濾的協同是指很多的其他使用者所表現出來的一致的行為,過濾是用來幫助個別使用者過濾最適的資訊或者偏好行為。所以亞馬遜網路書店用其他使用者上網買書的行為(消費者會一起買的書是相同主題或興趣的)來做協同過濾,推薦使用者類似的書籍。

除了亞馬遜網路書店以外,2005年 Tim Spalding所建的線上個人圖書館LibraryThing是另一個好範例,使用者可以免費或付費註冊後將個人的館藏或喜歡讀的書建上去,並為每本書貼上書籤、寫書評,其他人就可以透過書籤和書評來搜尋或瀏覽相關圖書。例如:下圖是Tuesdays with Morrie 的搜尋結果,這本書有2千4百多位會員有收藏,有49位會員寫書評,下面的標籤雲則是會員們為這本書所貼的標籤,由標籤字體可以知道大部分人對這本書的認知(biography, death, inspirational)。接下來就是利用協同過濾所提供的「推薦」,如果您喜歡看Tuesdays with Morrie,您應該也會喜歡看Mitch Albom的另兩本書(在天堂遇見的五個人和for one more day),還有Morrie教授的現身說法等20本書。

想知道更多協同過濾的網站應用,請參考Wikipedia或google。

Citation Searching(引文檢索)

下圖是利用CiteSeer.IST (賓州州立大學所建的科技文獻數位圖書館)搜尋到的結果,每篇文章均提供下列幾種自動搜尋更多相關文獻的方法:
  • Cited by
    現在正在看的這篇文章有被那些文章引用?文獻的引用與被引用關係隱含著某種相關,也許是作者有交集,也許作者間原本就互相認識。
  • Active bibliography (related documents)
    和cited by相反, Active bibliography 提供這篇文章的參考文獻(或稱書目),是作者在寫這篇文章時所參考引證的相關文獻,當然有相當程度的相關性。
  • Similar documents based on text
    當正在看的這篇文章轉譚成搜尋策略進行搜尋,找到相關的文獻。
  • Related documents from co-citation
    從共引文獻找到的相關文獻。如果其他作者在寫文章時,也參考引用相同的文獻,表示這兩篇文章應該有某種相關性存在。換句話說,A篇文章後面的參考文獻與B篇文章後面的參考文獻中,如果有相同的文獻,就表示A和B這兩篇文章有共引關係(co-citation), A、B兩篇文章一定有共通性存在,一定都探討到某一個主題。


以上所介紹是幾種常見的搜尋原理,當然還有很多原理原則可以應用。不管用什麼方法,最重要的是找到最符合使用者需求的結果。所以citation searching通常對學術研究取向的使用者有用,對一般使用者可能沒有太大的加值。所以,資訊結構師在設計或選擇搜尋引擎時,請先了解使用者希望從我們的網站找到什麼樣的資訊。


Collaborative filtering. (2007, April 19). In Wikipedia, The Free Encyclopedia. Retrieved April 21, 2007, from http://en.wikipedia.org/w/index.php?title=Collaborative_filtering&oldid=123986565

Morville, P., & Rosenfeld, L. (2007). Information architecture for the World Wide Web (3rd ed.). Cambridge, MA: O'Reilly. pp. 159-162.

沒有留言: