你搜尋資料時,是不是常先拿到一大串結果,然後才慢慢挑出最有用的那幾筆?
你可以把重排序模型想成第二關的篩選員,先把可能相關的結果撈上來,再仔細排一次順序。
它重要是因為第一輪檢索講求快,第二輪重排序講求準,兩者一起用,搜尋和問答體驗會差很多。
容易混淆
重排序 vs 初步檢索
重排序看的是更細的語意和上下文 初步檢索看的是速度和粗篩能力 最關鍵的區別是處理的是候選集還是全庫搜尋。
重排序 vs 向量檢索
重排序通常用更重的模型重新打分 向量檢索是先用向量相似度找候選 最關鍵的區別是第一輪找人,第二輪排隊。
記住這句就好
先快篩,再精排,答案才會更準。
實際案例
客服知識庫搜尋 使用者先被 BM25 找到 50 筆可能答案,再由重排序模型把真正能解決問題的內容排到最前面。
RAG 文件檢索 問答系統先撈出候選段落,再用重排序挑出最相關的 5 段送進大模型。
算法與應用
常見做法是用 cross-encoder 直接看查詢與候選文件的整段內容,所以準,但比較慢。 評估時常看 NDCG、MRR 或 MAP,因為重排序在乎的是名次順序。 候選集品質很重要,因為重排序再強,也救不了第一輪完全沒撈到的資料。
情境判斷
Q1(直覺題): 如果系統先撈出 100 筆,再把前 10 筆重新排順序,這一步是什麼?
Q2(判斷題): 候選資料很差,但重排序模型很強,最後結果一定會好嗎?
常見問題
重排序模型需要很多資料嗎?
A:通常需要,尤其是深度學習版本,因為它要學的是細緻的相關性判斷。
怎麼評估重排序效果?
A:常用 NDCG、MRR、MAP,也會看線上點擊率或轉換率。
重排序和檢索一定要分兩層嗎?
A:大多數實作會這樣設計,因為速度和精準度很少能靠同一個模型同時做到最好。