Skip to content

誠實匹配

搜尋引擎最危險的不是找不到,是找不到卻假裝找到了。這個原型在最後一關擋住假滿分: 依「片庫到底有沒有這片」把搜尋分成三段信心,第一名的 % 老實反映匹配程度,而不是永遠 100%。

問題:相對分數天生會說謊

排序內部分數是相對值(RRF 融合分、cross-encoder 混分都經 min-max), 所以「這批裡的第一名」永遠被映成 1.0。就算整批都不相關,第一名照樣顯示 100% —— 使用者看到滿分,卻完全無從理解為什麼是它。

為什麼不能用 AI 精排分數當品質

直覺會想:「cross-encoder 逐對打分,拿它的分當 % 不就好了?」實測打臉: 搜「Michael Jackson」(片庫一部相關都沒有),CE 還是給第一名 0.88 高分 —— CE 對離題片照樣給高分,不能當絕對品質。所以 CE 只拿來決定排序,不決定 %。

CE 是相對配對判斷:給它一部片就評「這部相對像不像」,總找得到「最像的一部」打高分, 沒有「整體有沒有命中」的概念

真正可信的訊號:cosine

改用使用者原句向量對片庫算最佳 cosine —— 查詢和每部片用同一個模型編進同一個座標系, cosine 就是兩者在意義空間裡的絕對距離(不能用 AI 腦補的劇情向量,那照著答案寫、天生偏高)。

為什麼這對「無命中」有代表性:cosine 低不是「相對這批最低」,是「最近的鄰居也很遠」 —— 查詢落在語意空間裡沒有片的空區。空區就是空區,這個低分有絕對意義。

真命中與離題因此有清楚落差:

查詢最佳 cosine
真實查詢(45 條校準)0.45 – 0.65
Michael Jackson(無片)0.37
量子力學教科書(無片)0.39

三段信心帶

cosine橫幅顯示 % 上限
≥ 0.52✅ 高度相關95%
0.45 – 0.52◐ 部分相關68%
< 0.45⚠ 無高度相關 · 語意聯想42% + 警示
  • 天花板帶誠實訊號:第一名的 % 反映「片庫到底有沒有這片」(95 / 68 / 42),不再每查詢都 95%。
  • 帶內位置 = AI 排序(絕對值不具意義);對整個候選池算 min-max,所以同一部片換顯示筆數,分數不變。
  • 邊界誠實:cosine 抓得出重度離題(MJ、量子),但軟離題(查「怎麼報稅」cosine 0.47)跟最弱的真實查詢重疊、分不開 → 歸「中」頂 68%,而非假裝高度相關。

這條規則怎麼來的

來自一次真實事故:搜「Michael Jackson」,片庫 600+ 部全無相關,第一名卻是一部戰爭犯罪片、 標 100%。從現象、根因、量測校準到修法的完整 debugging 全記錄 → 除錯實錄