互联网搜索引擎
說明:文章內容來源于課程視頻和課程ppt。我只學習了課程沒有做習題。文章不是翻譯,是我對課程的理解。
1 挑戰
互聯網搜索引擎與一般搜索引擎的區別主要在以下問題。
第一是數據量(scalability)?;ヂ摼W搜索需要處理的數據量大,如何保證能有效地處理這些數據,保證搜索的完整性,同時搜索速度也要在可接受范圍內。解決策略:索引時候并行處理,搜索時候分布式處理。
第二個是如何衡量數據質量,過濾垃圾數據?解決策略是垃圾檢測?!?
第三個是互聯網的動態性。要處理的數據會有新增和更新,怎么處理?解決策略是鏈接分析。
VSM是一種普適算法,可以用在一般或者互聯網搜索引擎中。這是它的優點。但它的問題是不能有效的利用網頁或者文檔的一些特性(例如:網頁鏈接、發布日期、超鏈接文本等)
2 組成部分
web searchEngine = Crawler+Indexer+(Inverted) Index + Retriever
爬蟲、索引操作、倒排索引、搜索操作
2.1 爬蟲
實驗室級別爬蟲:
從優先隊列獲得地址,回到2。
真正在生產環境下的爬蟲需要處理:
2.2 索引操作、倒排索引
創建互聯網級別的索引,挑戰在兩方面:存儲和效率。
這些多數據怎么存儲:分布式文件系統GFS、HDFS。
這么多數據怎么有效地檢索:MapReduce—-Hadoop
2.3 搜索-1 鏈接分析 Link Analysis
2.3.1 鏈接分析-1
分析鏈接關系,提高搜索引擎搜索結果(怎么評估搜索結果,請參考文本搜索系統的評估)。
標準的信息檢索模型(IR)可以應用在互聯網搜索(WR)中,但不夠高效。原因如下。
1 IR中人們主要查找圖書資源,查找文獻資源(literature Information)。WR人們需要查找一個頁面,WR是具有導航性質的,一般稱為導航搜索。所以分析鏈接關系可能有所幫助。
2 網頁一般還有其他信息可以作為搜索的線索。例如:布局、標題、鏈接信息。
3 網頁搜索可能還有其他因素,影響搜索結果。
綜上所述,我們可以通過鏈接分析、點擊次數提高搜索結果。一般來講會使用機器學習算法,把各個因素綜合考慮。
頁面間引用關系,首先注意到的是錨點(anchor text)。錨點一般來說描述了所指向頁面的主要內容或者特點。例如上面提交的“文本搜索系統的評估”,所指向的頁面就是關系文本檢索系統評估方面的內容。
鏈接關系的第二個就是入鏈和出鏈。出鏈就像是一個路由器(hub)指向不同頁面。入鏈是一個authority的頁面:別人都在證明這個頁面可能更有用。這有點像文獻中的引用和被引用關系。成熟的解決方案是PageRank,考慮入鏈的個數以及質量。要注意處理沒有入鏈的頁面。
2.3.2 PageRank
簡要描述PageRank算法。
PageRank 是一個隨機訪問模型。參數α= 跳出本頁面到其他頁面(在瀏覽器中輸入一個地址)的概率;1?α= 在頁面上隨機選擇一個連接進行下去。
如果一個頁面有很多的入鏈(inlinke),也就是說入鏈數量高,那這個頁面就更可能被訪問到。因為有更多的可能從一個頁面鏈接到這個頁面。
如果某個頁面L1的某個入鏈L4有很多的入鏈,這些鏈接和L1形成一個間接鏈接關系。因為L4有很多的入鏈,L4的訪問概率增加,那從L4到L1的概率也會增加。從這個角度看,算法也捕捉到了間接鏈接的關系。
PageRank計算:轉移矩陣、訪問到某個頁面的概率。
PageRank的計算可以從線性代數的角度理解,也可以理解為是圖的傳播。
PageRank可以用于計算某個主題相關頁面的PageRank,也可以用于社交網絡或者圖的情形。
2.3.3 HITS
直覺假設:被廣泛引用的頁面是一個好的Authority頁面;引用了很多連接的頁面是一個好的Hub頁面。
這是一個相互增強的思想。
2.4 搜索-2 排序 Ranking
這是web搜索的最后一部分了。這里主要用機器學習的方法考慮各個因素,提高排序質量。
現在我們有檢索模型(BM25)可以計算查詢語句與文檔的相似度,我們也知道錨點、鏈接分值(PageRank)可以影響排序。問題是如何把這些因素結合起來,獲得一個好的排序函數?用機器學習模型。
假設:p(R=1|Q,D)=s(X1(Q,D),...Xn(Q,D),λ),λ是參數,是一個向量。
訓練數據:為了獲得參數,我們首先要獲得訓練數據。訓練數據要包含每個文檔對每個查詢的相關度,形成一個(文檔、查詢、相關度)的數據。這些信息可以是很準確的用戶處理的數據,也可以是基于點擊量估計的(假設被點擊的文檔比跳過的文檔更相關)。
舉例:邏輯回歸模型(logistic regression)。最簡單的模型。假設影響因素之間的關系是線性的。Xi(Q,D)是一個特征,β是參數,模型如下:
logP(R=1|Q,D)1?P(R=1|Q,D)=β0+∑ni=1βiXi
P(R=1|Q,D)=11+exp(?β0?∑ni=1βiXi)
β0+∑ni=1βiXi值越大,P(R=1|Q,D)值也就越大,越相關(這與視頻中講的矛盾了,之后求證一下)。
舉例子。圖中選擇的是最大似然求解,此外還有最小二乘法。當然這里就涉及到乘法和加法的區別了。β參數學習到之后就可以用于文檔排序了。
還有更多選擇的算法用來直接提高搜索結果(MAP,nDCG)??梢蚤喿x參考文獻
?Tie-Yan Liu. Learning to Rank for Information Retrieval. Foundations and Trends in Information Retrieval 3, 3 (2009): 225-331.
?Hang Li. A Short Introduction to Learning to Rank, IEICE Trans. Inf. & Syst. E94-D, 10 (Oct. 2011): n.p.
3 互聯網搜索引擎的未來發展
3.1 趨勢
說的是趨勢,其實很多已經實現了。
下一代搜索引擎被認為更定制化,形成垂直搜索引擎。垂直搜索引擎被認為更好的原因是 1 針對特定的一個群體,他們擁有共同的基本概念。2 可以更個性化(personalization)。
搜索引擎將會不斷自動學習。
搜索、推薦、導航集一體的搜索引擎。
不再只是搜索,而是完成特定任務。例如購物。
3.2 新功能設想
從用戶、數據、服務三個角度組合形成不同的產品。
3.3 更智能化的途徑
總結
- 上一篇: 快速上手Ubuntu搭建Python编程
- 下一篇: java计算机毕业设计评标专家管理信息系