搜索結果排序原理
哈哈哈配圖打一波我司廣告~
搜索結果排序原理
一、機器學習排序系統4個組成步驟:人工標註訓練數據(query與文檔的相關程度&用戶點擊記錄)、文章特徵抽取、學習分類函數、在實際搜索系統中採用機器學習模型
- 搜索rank過程:
文章特徵抽取轉化成特徵向量----------X-----------------人工標註訓練數據相關性Y,每個文檔會轉化成<x,y>,訓練結果是一個分類函數或者回歸函數,在之後的用戶搜索之後,可以用分類函數對文檔進行打分,形成搜索結果
三、文章抽取的特徵
1.Query詞在文檔中的詞頻信息
2.文檔長度
3.網頁入鏈數量
4.網頁出鏈數量:事實上,「入鏈」和「出鏈」(outbound link)都是通常意義上的鏈接,即對於同一個鏈接,對鏈接所在的網頁來說,它是出鏈,對指向的網頁來說,它是入鏈。
- 網頁的pagerank值
#基本思想:如果網頁T存在一個指向網頁A的連接,則表明T的所有者認為A比較重要,從而把T的一部分重要性得分賦予A。這個重要性得分值為:PR(T)/C(T)
其中PR(T)為T的PageRank值,C(T)為T的出鏈數,則A的PageRank值為一系列類似於T的頁面重要性得分值的累加。
PR(A)=(1-d)+d(PR(t1)/C(t1)+…+PR(tn)/C(tn))
A代表頁面A
PR(A)則代表頁面A的PR值
d為阻尼指數。通常認為d=0.85
t1…tn 代表鏈接向頁面A的頁面t1到tn
C代表頁面上的外鏈接數目。C(t1)即為頁面t1上的外鏈接數目
從計算公式可以看到,計算PR值必須使用迭代計算才能得到。
優點:是一個與查詢無關的靜態演算法,所有網頁的PageRank值通過離線計算獲得;有效減少在線查詢時的計算量,極大降低了查詢響應時間。
不足:人們的查詢具有主題特徵,PageRank忽略了主題相關性,導致結果的相關性和主題性降低;另外,PageRank有很嚴重的對新網頁的歧視。
6.網頁Url長度
7.查詢值的proximity值:即在文檔中多大的窗口內可以出現所有查詢詞
四、機器排序的方法:
A.單文檔方法(point wise approach )對於某個新查詢的Q,先獲取文檔D對應的3個特徵值,再根據機器學習到的參數組合計算得分,當得分大於闕值,則Q與D相關。
文檔分為三個特徵:PageRank值、proximity值、cosine相似性分值
Score(Q D)=a*CS+b*PM+c*PB+d
B.文檔對方法(pair wise approach)判斷任意兩個文檔形成文檔對<DOC.1,DOC.2>是否滿足順序關係,即是否滿足DOC.1應該排在DOC.2前面。
DOC分值根據人工標註的cosine相似性得出,訓練方法可以是支持線性分類SVM、boost庫以及神經網路都可以作為具體的學習方法。
SVM方法是通過一個非線性映射p,把樣本空間映射到一個高維乃至無窮維的特徵空間中(Hilbert空間),使得在原來的樣本空間中非線性可分的問題轉化為在特徵空間中的線性可分的問題.簡單地說,就是升維和線性化。
弊端:1.只考慮到兩個文檔的排序問題,沒有考慮列表在搜索列表中的位置。解決方法:列表前位置進行加權。
- 不同的查詢,相關文檔數量差距很大,準確率差異很大
C.文檔列表方法(list wise approach)query後引擎返回搜索結果文檔,並對文檔進行相似性得出分數,f(a),f(b),f(c)進行不同的排列組合得到各自的概率值,不同的評分函數概率分布是不一樣的。假設最優解是人工標註的最優評分函數g(x),機器訓練的時候假設兩個評分函數f(x),h(x).利用KL距離衡量概率分布大小最接近虛擬的最優解評分函數g(x)的,以此作為實際評分函數。
推薦閱讀: