返回

搜尋相關性排序怎麼優化?召回 + 排序雙階段方法

通智雲團隊 ·
技術方案 搜尋系統
搜尋相關性排序怎麼優化?召回 + 排序雙階段方法

摘要:搜尋相關性問題要先判定發生在召回還是排序:召回不足就補候選來源與召回寬度,排序不當就補特徵與模型。兩條排查路徑幾乎正交,混在一起改通常無效。

使用者抱怨「搜出來不相關」時,問題可能出在兩個完全不同的環節:目標文件沒進候選集(召回失敗),或者進了候選集卻排到第 40 位(排序失敗)。前者調排序權重毫無用處,後者加召回路數只在尾部塞進更多雜訊。本文按「召回—排序」雙階段拆解:兩類問題的判別表、多路召回的漏斗量級、粗排與精排分工、精排特徵與 Learning to Rank 三類方法取捨、四類排序失真的修法,以及離線評估與三階段落地路徑。

關鍵要點

一、先分清兩類問題:召不回來,還是排不上去

最佳化相關性的第一步不是調參,而是定位。同一個「搜出來不相關」的投訴,可能來自兩個正交的環節:候選集裡沒有目標文件(召回不足),或文件在候選集裡卻排到了後面(排序不當)。

判定方法是離線回放:取一批 bad case 查詢(零結果、無點擊、翻頁過深),人工標註本應出現的文件,再重跑鏈路看它們是否進入召回候選集。判斷標準是目標文件是否進了候選,而非它最終排第幾。統計幾十條就能定優先級:沒進候選就先做召回,進了候選卻排在幾十名之外就先做排序。

維度 召回不足 排序不當
判別信號 目標文件不在召回候選集內 目標文件在候選集內,精排後靠後
典型表現 零結果、結果極少、翻到底也找不到 結果很多、前幾頁不對、翻深了能找到
主看指標 Recall@K、零結果率 NDCG@10、MRR、首位命中率
有效手段 加召回路數、擴召回寬度、補查詢理解 補特徵、上精排模型、校正位置偏差
常見無效動作 調排序權重、加精排特徵 繼續加召回路數、擴大候選集

二、召回階段:多路召回與漏斗量級

召回的目標不是「排得準」,而是以可接受的代價把可能相關的文件儘量撈進候選集。單路召回必然有盲區,主流做法是四路並行。

字面召回基於倒排索引與詞頻統計(如 BM25),強在型號與編碼的精確命中;向量召回把查詢與文件對映到同一向量空間,解決用詞不一致的詞彙鴻溝,兩者邊界與融合方式見語意搜尋是什麼?向量檢索與關鍵字檢索全面對比;結構化過濾處理類目、價格、庫存等硬約束,應作過濾條件而非打分信號;熱門與個人化兜底保證極短查詢時仍有內容可展示。

多路結果需要融合。Elasticsearch 官方把倒數排名融合(RRF)定義為「把具有不同相關性指標的多路結果集合併為單一結果集」的方法,優點是無需調參、各路指標不必同尺度可比。

漏斗量級為:全量文件 → 過濾後數千至數萬 → 粗排後數百 → 精排後數十 → 展示十條,每層候選量都是下一層的天花板。召回率用 Recall@K 度量。難點在真值:相關文件全集要麼靠標註集,要麼靠點擊日誌反推,而後者天然不完整。

三、排序階段:粗排與精排怎麼分工

排序分兩段,是因為候選量與延遲預算不在一個量級。粗排面對數千到數萬候選,只能用倒排或向量庫內可計算的輕量打分(BM25 分、向量相似度、靜態品質分)配合線性融合,延遲預算在個位數毫秒;它的任務只有一個:把候選從萬級篩到百級,且不提前淘汰好文件。

精排面對數百候選,可用全量特徵與複雜模型(GBDT、LambdaMART、神經網路),延遲預算放寬到幾十毫秒,透過 rescore 實現。Elastic 官方文件對 Learning to Rank 的定位正是如此:模型通常作為第二階段的重排器,用於提升第一階段召回結果的相關性。

精排之後還有一層重排,即業務規則層:置頂、遮蔽、去重、打散、合規過濾。它不是兜底,而是業務可控性的來源。三層架構在什麼是推薦系統?召回、排序、重排三層架構解析中有對應拆解,搜尋與推薦在這一層是同構的。

四、精排特徵與 Learning to Rank 的取捨

精排特徵是相關性的載體,建議按四類搭齊:文本相關性(BM25 得分、欄位命中、查詢詞覆蓋率、詞項緊鄰度、向量相似度);使用者行為(點擊率、加購率、轉化率,必須按曝光量平滑,否則雜訊會淹沒信號);文件屬性(時效、品質分、評分、銷量、庫存);上下文(裝置、時段、查詢類型、使用者歷程)。

有了特徵,接下來是用什麼目標組合它們,即 Learning to Rank 的方法選擇。

方法 標註形式 最佳化目標 適用與代價
Pointwise 單條文件的相關性等級 單點預測誤差 標註最簡單;但目標與排序位置脫節
Pairwise 文件對的偏序 逆序對數量 標籤可由點擊對構造;忽略列表整體,易紮堆
Listwise 整個列表的順序 直接最佳化 NDCG 等指標 最貼近線上目標;標註與計算成本最高

選型上,標註靠人工、資料量小時從 pointwise 起步;有穩定點擊日誌後轉 pairwise;只有確需最佳化列表級目標(多樣性、整體收益)時才上 listwise。需要說明的是,Airbnb 在公開研究中指出,常用 LTR 框架隱含的「一條結果的價值可獨立於列表中其他條目確定」這一假設並不成立——這正是只做 pointwise 的系統容易「前十條長得一樣」的結構性原因。

五、四類常見排序失真與修法

相關性被銷量淹沒。 行為特徵的量級與覆蓋率遠大於文本特徵,模型很快學會「銷量高的排前面」。修法是把文本相關性設為硬門檻:文本分低於門檻的文件不得進入頭部,再用分位數校準與分桶正規化把行為特徵壓到可比尺度。

長尾查詢塌陷。 訓練樣本被頭部查詢主導,長尾查詢的排序幾近隨機。修法是按查詢頻次分層抽樣或加權,讓長尾樣本在訓練集中保住比例;同時對長尾查詢提高文本特徵權重、降低行為特徵權重。

新內容排不上。 沒有曝光就沒有點擊,形成死循環。修法有三:保證索引即時性,讓新內容分鐘級可被召回;用不依賴曝光的特徵(內容品質分、屬性完整度)做冷啟動打分;預留固定比例的探索流量累積資料。零結果率的成因與降法在站內搜尋零結果率怎麼降?8 個可落地策略中有專門拆解。

位置偏差。 越靠前的結果越容易被點擊,把點擊直接當相關性標籤,等於把歷史排序固化。微軟研究院在 SIGIR 2018 提出的無偏排序學習方法用傾向性估計(IPS)校正:按「該位置的結果被使用者觀察到的機率」對點擊加權,從有偏日誌中學到無偏的排序模型。更輕量的做法是維持少量隨機化或交換位置的探索流量。

六、評估與落地:離線指標與三階段路徑

離線指標解決「能否快速迭代」,線上 A/B 解決「是否真的有用」。MRR 適合導航型、唯一答案型查詢;MAP 考察多個相關結果的整體品質;NDCG@K 同時考慮多級相關性與位置折損,是多結果場景的預設選擇。Elasticsearch 的排序評估介面支援 precision、recall@k、MRR、DCG 等指標,可對標註集直接評測。

標註測試集這樣建:從真實查詢日誌分層抽樣,頭部、腰部、長尾各佔固定比例;每個查詢標註 20–50 條候選的相關性等級;雙人獨立標註並檢驗一致性;內容更新後定期重標。行為信號可作弱標籤,但自帶位置偏差。

必須分段評估,按查詢類型、是否有結果、品類分別統計。整體指標會被頭部查詢平均掉,最常見的失敗是「整體漲了、長尾崩了」卻未被發現。此外,LTR 的優勢並非總是穩固:有研究對多個公開資料集的統計檢驗顯示,許多 LTR 演算法相對「資料集中最好的單個特徵」並未產生顯著差異,基線之間多數統計打平,因此離線評估必須做顯著性檢驗。

落地分三階段。階段一建觀測與基線:補齊查詢詞、曝光、點擊、無結果、換詞埋點,建標註集跑出分段基線,盯零結果率與首位點擊率。階段二補召回與粗排:接上多路召回與 RRF 融合,做查詢理解(糾錯、同義歸一、意圖識別),把過濾條件從打分中剝離,盯 Recall@K 與長尾候選覆蓋率。階段三上精排與規則層:搭四類特徵、訓 LTR 模型、配業務規則並保留探索流量,盯 NDCG@10 的分段提升與線上 A/B 顯著性。此階段搜尋與推薦可共用排序底座,協同方式見推薦系統與搜尋的協同:一體化增長方案。

常見問題

問:怎麼快速判斷搜尋相關性差的是召回問題還是排序問題?

答:做離線回放:取一批 bad case 查詢,人工標註本應出現的文件,重跑鏈路看它們是否進入召回候選集。沒進候選是召回問題,進候選卻在精排後掉到幾十名是排序問題。

問:多路召回是不是路數越多越好?

答:不是。每加一路都要付出索引、延遲與融合的代價,只有能覆蓋現有盲區時才值得加。判斷標準是增量召回率:新路帶來的、其他路召不回的相關文件佔比過低就該放棄。

問:沒有標註資料,能做 Learning to Rank 嗎?

答:可以,但要降低預期。先用點擊日誌構造偏序對訓練 pairwise 模型,同時建小規模人工標註集驗證。純行為標籤帶位置偏差,需預留探索流量或用逆傾向加權校正,否則模型只會強化歷史排序。

問:為什麼離線 NDCG 提升了,線上轉化率卻沒變?

答:三個常見原因:沒做顯著性檢驗,漲幅落在雜訊區間;整體指標被頭部查詢平均掉,長尾其實變差了;離線標註的相關性與購買意圖不是一回事,需檢查標註口徑。

問:新上架的內容總是排不上怎麼辦?

答:先確認能否被召回:索引即時性不足時新內容不在候選集裡,屬於召回問題。若能召回卻排不上,則是行為特徵缺失導致的冷啟動,需用內容品質分、屬性完整度等特徵打分。

問:上了精排模型後還需要保留人工規則嗎?

答:需要。置頂、遮蔽、打散與合規過濾是業務可控性的來源,模型無法保證這些約束。分工是模型負責相關性排序,規則層負責業務約束與多樣性,只在必要處覆蓋結果。

關於通智雲

通智搜尋面向本文描述的相關性調優場景,提供多路召回、倒數排名融合、Learning to Rank 精排與人工規則干預能力,支援離線評測與線上 A/B 聯動。通智雲(TENGENCE)是 AI 時代的企業增長引擎,專注公域引流獲客與私域轉化成交;核心產品為通智 GEO(GEO + SEO 雙引擎)與通智搜尋。

相關閱讀

資料來源

  1. arXiv《Unbiased Learning to Rank with Unbiased Propensity Estimation》(微軟研究院,2018):支撐「位置偏差可用傾向性估計(IPS)校正」的論斷。
  2. arXiv《Is Learning to Rank Worth It? A Statistical Analysis of Learning to Rank Methods》(2013):支撐「離線漲幅必須做顯著性檢驗、多數基線與 LTR 統計打平」的論斷。
  3. arXiv《Learning To Rank Diversely At Airbnb》(Airbnb,2022):支撐「單條結果的價值不能獨立於結果列表確定」的論斷。
  4. Elasticsearch 官方指南《Learning To Rank (LTR)》:支撐「LTR 模型通常作為第二階段重排器,提升第一階段召回結果的相關性」這一雙階段論斷。
  5. Elasticsearch 官方指南《Reciprocal rank fusion》:支撐「RRF 把不同相關性指標的多路結果集合併為單一結果集且無需調參」的論斷。
  6. Elasticsearch 官方指南《Evaluate ranked search results》:支撐「排序評估介面支援 precision、recall@k、MRR、DCG 等離線指標」的論斷。

立即行動

← 上一篇: 搜推一體架構設計:搜索與推薦怎麼融合?四層架構與四階段落地 下一篇: 內容運營日曆:選題、生產與分發的節奏管理 →
諮詢
二維碼

企業微信