搜尋結果評估與排序 ,是一種信息系統輸出的計算方法,它根據用戶輸入、用戶特徵和當前場景等因素來評估結果跟用戶意圖的相關性,並根據相關性和重要性對結果進行打分排序,從而返回用戶最需要的結果。對搜尋結果進行評估和排序,是所有搜尋系統需要考慮的最重要的幾個問題之一,也是目前主流搜尋引擎的核心技術,比如谷歌公司的PageRank技術,就是根據頁面的重要性對搜尋結果進行排序。
發展史:
搜尋結果評估和排序是跟搜尋系統密切相關的,它根據搜尋系統需要面臨的數據特點、數據量和用戶特點而不斷演進,同時它本身的進步也不斷推進搜尋系統的質量。
搜尋系統本身是由於人類面對的數據量越來越大而發展起來的。人類最早在用排序卡片、導航和目錄等方式來引導用戶找到需要的信息,比如作業系統的檔案系統、圖書館的藏書目錄、早期的全球資訊網導航頁面等。隨著數據量和數據類型的進一步增大,需要用戶對自己的需求轉化為一系列輸入,輸入系統進行搜尋來直接定位到自己感興趣的結果或者結果集合,如何對結果集合里的結果進行評估和排序,決定著搜尋系統的好壞。
最簡單的排序方式是對結果按照時間、位置等切面進行排序,這種排序方法沒有考慮結果的相關性和重要性,需要用戶更多的閱讀來定位,因而無法適用較大數據量的搜尋系統。
根據結果的重要性來進行排序是技術的一大突破,如何評估結果重要性是技術的核心。谷歌公司的PageRank技術根據頁面之間連結的關係來疊代計算每個頁面的重要性,並取得了巨大成功。除了谷歌等通用搜尋引擎,一些垂直類的信息系統也需要搜尋系統,比如購物網站。購物網站在用戶搜尋以後,返回給用戶的是商品,因而它在默認的排序方法中要考慮商品的重要性,比如銷量、好評、價格等因素。
根據用戶使用場景和用戶歷史行為來對結果進行相關性評估是搜尋系統目前正在努力攻克的技術。目前,該技術還遠遠沒有達到成熟的程度,並且隨著用戶對搜尋系統更高的要求(比如用戶問今年夏天去哪旅遊最實惠,需要綜合天氣、航班鐵路、酒店、人流、價格等全方面因素給出解決方案),結果評估和排序面臨更多的技術難題。
結果相關性評估和排序技術:
1) 面向多源異構信息融合的搜尋結果評價
如果一個搜尋的任務涉及不同的數據源,例如病人要搜尋去哪看病,涉及醫院信息、醫生信息、交通信息等。因此對結果的評估涉及多場景的融合,需要利用神經網路的方法來評價。神經網路包括輸入層,多個隱藏層和輸出層。輸入包括三部分:一是局部搜尋的評價結果,二是通過意圖理解獲取的對局部知識源重要性的評價,三是一個代表用戶偏好的常量。在訓練這個神經網路時,最終的評價結果標籤來自於人工標註或用戶反饋。
2)基於用戶上下文的搜尋結果評價及排序
這種方法假設用戶的上下文是有限的,並會在多種上下文間進行切換,這也符合一般用戶搜尋的情況。輸入數據會逐漸寫入歷史資料庫中。學習搜尋結果評價模型時首先對歷史數據按時間片進行劃分,然後以時間片為單位,根據數據中獲取的上下文屬性進行離線聚類,然後對每個獲得的聚簇,分別學習對應的搜尋結果評價模型。在聚類時嘗試多種粒度,並對學習到的搜尋結果評價模型和相關數據的契合程度進行評估,如果契合程度合理則記錄相關結果。線上搜尋時,從線上數據中獲取用戶上下文,根據上下文進行模型匹配,選擇一個搜尋結果評價模型或多個模型的組合作為當前模型使用。
3)基於強化學習的搜尋結果評價及排序
為了支持基於用戶的反饋來不斷改進搜尋結果評價模型的參數,採用基於有限狀態馬爾科夫決策過程的強化學習模型。一個有限狀態馬爾科夫決策過程表示為〈S,A,P,R〉,其中S為系統狀態的有限集合(有一個初始狀態S0),A為動作的集合,P:S×A→S'為狀態轉換函式,R:S×A→R為回報函式,狀態是搜尋結果評價模型的參數組合,行動為對參數的調整,回報函式為搜尋結果的改進(基於用戶反饋或人工驗證)。在這個有限狀態馬爾科夫決策過程中,搜尋結果評估器在每個離散的時間步t=1,2,…和環境進行互動。在每個時間步t,進入狀態S_t∈S,再此基礎上執行動作At ∈ A(St),其中A(St)為在狀態St下可選擇的動作的集合。執行完動作後,獲得一個報酬Rt+1 ∈R,並進入狀態St+1。搜尋結果評估器的策略表示為πt,πt(a|s)為在狀態St = s的條件下執行動作At = a的機率。強化學習方法指出主體如何根據其經驗來改變策略。主體的目標是最大化它在一系列動作中收到的總體報酬。
當前強化學習主流的方法是無模型的方法。無模型的方法具有很好的靈活性,但最大的問題是效率,往往需要和環境互動上百萬次甚至上千萬次。由於大搜尋中獲取回報函式的代價比較高,過多的環境互動是不可行的。因此本項目採用基於模型的強化學習方法。這種方法往往不需要嘗試太多的次數,同時具備比較強的泛化能力。總體思路分成三個層次:底層,學習狀態轉移機率模型;中間層,利用狀態轉移機率模型和策略,對後繼的狀態分布進行近似推斷;頂層,利用梯度的方法對策略的參數進行更新。本項目採用貝葉斯神經網路作為強化學習的轉移機率模型。為了適應搜尋結果數據的不斷變化,採取貝葉斯神經網路適應性學習方法,不斷更新貝葉斯神經網路。和前面的神經網路進化框架不同,貝葉斯神經網路在進化過程中的每一步都需要基於機率反向傳播進行訓練。