一、初識檢索

什麼是檢索呢?檢索是一種用戶和龐大的資料庫之間的互動行為。

檢索行為的發生是為了在龐大的信息羣中高效的篩選出關的信息。檢索行為的完成從宏觀上來看一般通過兩種方式,一種是搜索引擎,另一種是垂直搜索。搜索引擎有 Google、百度、搜狗等。而垂直搜索則是在大多數產品內置的對內容的檢索功能,淘寶中檢索各種商品,滴滴的出行場景起終點檢索都屬於垂直搜索。

我們從5W原則(when-where-what-why-how)來拆解檢索行為。

when-人們希望在海量信息中尋找到相關的信息;

where-於是他們打開了自己的手機應用或者電腦連接網路;

why-網路上的信息繁雜他們沒有辦法立馬找到自己想要的相關信息;

what-於是點開了搜索引擎,在檢索框內輸入了關鍵字;

how-隨後搜索引擎在海量的各類信息中迅速呈現給用戶相關的信息。

信息和信息量的哲學態 —— 信息是減少不確定性的東西,信息也是增加確定性的東西;信息量是一個信息能減少不確定性的度量,信息量也是一個信息能增加確定性的度量。

二、完成一次檢索的邏輯

檢索需求:滿足用戶在海量信息中迅速篩選出自己感興趣的內容

檢索外部流程:用戶檢索意圖 → 輸入的內容(關鍵詞/圖片/語音/二維碼等)→ 搜索結果(屏蔽部分結果)→ 搜索結果展現(默認排序和選擇排序)

檢索內部流程:用戶輸入query → query分析 → 索引&詞庫 → 內容篩選 → 結果召回→ 結果排序及展示

三、檢索策略框架

檢索的流程框架往往一致,但在不同的使用場景下,子項檢索策略和側重點會不同。比如在出行場景下,檢索結果會側重POI熱度及距離等因素,在新聞內容類檢索上會側重於熱點關鍵詞,在外賣地址上檢索會側重於精細化地址類別識別等。

3.1、Query分析

Query分析主要是對用戶輸入的query進行信息的轉譯過程,將用戶輸入的query進行分詞處理。各個搜索平臺都有自己的分詞模型,CRF模型是一種序列標註的機器學習方法,其關鍵點在於如何有足夠且標註準確的訓練語料庫。切分後的關鍵詞進一步用子項檢索策略處理,歸一化無效詞,如:「的」。Query分析裡麪包含了很多子項策略,包括糾錯,相關搜索詞,query改寫/變換,query類別識別,意圖識別,同義詞替換,Term詞項構造(文本詞條化,停用詞過濾,詞條歸一化,詞幹提取,詞形還原)等等。

提升query分析的準確率纔能夠在資料庫中索引找到相關的檢索結果召回。

3.2、索引&詞庫

不同的搜索系統對應有不同的詞庫,搜索的很多優化都是集中在詞庫優化上。索引是將經過query分析處理後的關鍵詞與詞庫中的相關內容進行匹配,

3.3、內容篩選

內容可分為文本信息和數據信息,文本信息用於計算內容的相關性,市面上有不少成型的開源解決方案。這一塊也有成熟的Lucene演算法,該演算法會給出文本相關性分數,以及綜合考慮文本的字數,這個搜索詞在所有文本中出現的概率等因素。難點在於怎麼去處理文本之間的關係,以及數據之間的關係,而這個便是搜索系統設計最核心的部分。

3.4、結果召回及排序

搜索在呈現結果數量方面本身是一個邊際效益遞減的產品。

圖片中的紅色至藍色代表用戶點擊次數,用戶點擊次數越多則該區域顏色越紅,點擊次數約少則為藍色,這種用戶點擊行為數據可視化表示的用戶點擊區域的熱度。由圖我們可以看出用戶點擊行為,主要集中在前三條結果的,表明前三條檢索結果點擊熱度較高。用戶本身對首頁前幾條的關注度最高,剩下的關注度則相對較低。且用戶對首頁的檢索結果遠遠高於後面頁面的檢索結果,因此搜索引擎並沒有必要把所有結果都給展示用戶。

通過篩選後的檢索結果展示給用戶,比如我們召回了50條結果,但我可能前端展示給用戶的檢索結果只有10條。這個時候就需要對召回的檢索結果進行合理的排序,根據演算法對內容的相關度計算和業務相關性篩選後的結果進行打分排序,呈現給用戶想要的檢索結果。不同場景下檢索結果的排序也會不一樣,比如出行場景下熱度高的結果排在前面,外賣地址檢索時則加強距離的權重因子,距離近的排在前面,文本內容檢索則將文本相關度高的結果排在前面等。

四、檢索結果評估

評估檢索結果的好壞主要從兩個方向來看,一個是檢索結果的數據層面,另一個是檢索的性能層面(即效率)。本文關於檢索結果的評估主要討論的是數據層面的檢索結果評估,常用的衡量標準是檢索結果召回率,準確率和排序合理性。

召回率(recall) = 檢索到的相關內容 / 所有相關的內容總和 = A / (A + C)

準確率(precision) = 檢索到的相關內容 / 所有檢索到的內容總數 = A / (A + B)

在實際項目中,因為召回率和準確率相互影響,所以我們儘可能在保證一定召回率的情況下提升準確率(但如果是反作弊系統則是在保證準確率的情況下,保證召回率)。因此,我們通過統計出一組不同閥值下的準確率和召回率的關係,稱之為P-R曲線。計算一個F值作為準確率和召回率的綜合表徵,F = 2*P*R / (P + R) 。在實際應用中也會對參數進行調整做出適應使用場景的靈活變化。

排序的合理性評估則是需要根據用戶的使用場景確定是要根據熱度排序還是距離排序等進行評估。評估時需制定評估標準,做到評估標準相互獨立,完全窮盡的原則,便於他人理解與工作複查(檢索結果排序常用GSB方式評估,需要注意Bad中是否有極端bad的結果)。

五、總結

用戶在使用檢索服務時,檢索結果的準確度和效率是影響用戶體驗的關鍵因素,而檢索結果的準確性依賴數據和推薦演算法。針對不同數據類別的檢索必要信息不同,檢索結果的展現方式也應不一樣,需要根據用戶的使用場景去建設。各類檢索的邏輯流程大體相似,但子項策略多樣,在做檢索的功能時,一定要注意用戶的使用場景和用戶的輸入習慣。


推薦閱讀:
相關文章