W whoops.tw

BM25 介紹:BM25 如何決定你餵給 LLM 的素材? | 白話文商學院

BM25(Okapi BM25)是一種機率式的文字相關度計分公式,搜尋引擎與 RAG 系統拿它當入口關卡:在語意模型或大型語言模型還沒上場之前,先用關鍵字吻合度決定哪些文件有資格進…

BM25(Okapi BM25)是一種機率式的文字相關度計分公式,搜尋引擎與 RAG 系統拿它當入口關卡:在語意模型或大型語言模型還沒上場之前,先用關鍵字吻合度決定哪些文件有資格進入候選池。每秒都有數十萬次 Google 搜尋正在發生(即時計數可見於 Internet Live Stats 這類即時監測站),這些查詢在進入向量檢索或 AI 摘要之前,幾乎都會先經過 BM25 這一關。若想看它在整個 RAG 檢索增強生成技術管線裡的位置,BM25 就是那道用關鍵字做粗篩的第一層。

重點先看:BM25 是到 2026 年仍是搜尋引擎與 LLM 管線預設的相關度評分函式,並未過時。多份公開的 RAG 評測實驗顯示,先用 BM25 篩候選、再用向量重排,可比純向量檢索提升個位數百分比的回答正確率。

BM25 的角色:語意模型上場前的入口關卡

BM25 就是搜尋系統在「還沒動用到任何聰明模型」之前,先用來快速判斷「這篇文件跟查詢有多相關」的計分公式。它的全名是 Okapi BM25,名字拆開來看:BM 是 Best Matching(最佳匹配),25 只是版本號。1990 年代英國 City University London 的 Okapi 專案團隊試驗了數十種權重函式(BM1、BM11、BM15 一路編號下去),最後把表現最好的第 25 號公式發表並沿用,就成了今天這個名字(這段沿革見於 Okapi BM25 的公開條目)。

它在算什麼?其實是三件事的加權總和:某個詞在這篇文件裡出現幾次(詞頻 TF)、這個詞在整個語料庫有多罕見(逆文件頻率 IDF)、以及這篇文件長度跟平均長度比起來偏長還是偏短(長度正規化)。三個量各自算完再加總,就是這篇文件對這組查詢的 BM25 分數,分數越高排名越前面。

為什麼到 2026 年它還沒被淘汰?因為公式計算快、效果穩定,Google 搜尋引擎運作原理裡的初步相關度判斷,業界普遍認為 BM25 仍是混合式排序的第一層篩選,後續的 RankBrain、BERT、向量排序都是在它篩過的候選集上做「重排」。截至 2026 年中,主流 AI 搜尋引擎工具與 Elasticsearch、Lucene 這類開源搜尋引擎也持續把 BM25 當作預設相關度評分函式(見 Elasticsearch 官方文件的相似度設定說明)。

把它收攏成幾個特徵:背後是機率檢索模型(評估「給定查詢下文件相關的機率」,勝過單純把頻率相乘),輸入只有三個量(詞頻 TF、逆文件頻率 IDF、文件長度正規化),旋鈕只有兩個(k1 控詞頻飽和速度、b 控長度正規化強度),並從 1990 年代沿用至今,仍是 Elasticsearch、Lucene 與各大 RAG 管線的預設基線。

有個常見誤解值得先拆掉:很多人以為 BM25「就是 TF-IDF 的升級版」,聽完就覺得這只是搜尋引擎的考古題。這個框架會讓你錯估它在 AI 時代的位置。反向看,RAG 與混合式檢索的瓶頸其實卡在候選集篩選這端,生成模型那端反而很成熟,BM25 正卡在這裡。這也是為什麼值得花時間把它的計分邏輯搞清楚,把它當歷史名詞掃過去實在可惜。

再給一個判斷它重要性的角度:BM25 是少數「快、便宜、可解釋」三者兼備的相關度函式。它只做字面吻合,算的是純統計量,不需要把文件與查詢都過一次神經網路,因此單次查詢的延遲極低、可在數百萬文件上即時運算,而且分數可以一項一項拆開來解釋給非工程師聽。這三個特性讓它在「先縮小候選集」這個位置上幾乎沒有替代品。語意模型擅長精排少數幾篇,卻不適合拿來掃全庫;BM25 剛好補上這個量級缺口。

SEO 與 RAG 為什麼繞不開這條公式

BM25 在 AI 搜尋時代的重要性不降反升。Google 雖然陸續加入 RankBrain、BERT、RankEmbed 等機器學習訊號,但業界普遍認為 BM25 仍是計算初步相關度的基礎函式,後續模型是在 BM25 篩過的候選集上做重排。這裡先講清楚一個關鍵假設的證據強度:我無法找到 Google 官方公開聲明「我們仍在用 BM25」的直接引述,因此不會寫成「Google 官方證實」,而是描述為業界共識與混合式排序的標準作法(判斷依據來自業界訪談與搜尋工程師的公開討論)。這個保留是有必要的。

換個角度想,這道關卡的殘酷之處在於:你的內容若在 BM25 階段進不了候選集,搜尋曝光與排名的後續計算就完全輪不到它。再聰明的語意模型、再強的向量檢索,都只會在候選池裡挑內容。被刷掉的文件對系統來說等於不存在。這對做 GEO 生成式搜尋優化的人尤其要命,因為 LLM 能不能引用你的內容,往往就卡在 BM25 這一關,生成模型本身已經很會選材;想跨過這道門,可先弄懂 GEO 生成式搜尋優化是什麼背後的檢索邏輯。

這不是危言聳聽。第三方大規模研究已經量化了這道門檻的代價:在 Ahrefs 索引中,96.55% 的頁面完全拿不到來自 Google 的自然流量,只有 1.94% 的頁面每月拿到一到十次造訪 [來源:Ahrefs〈96.55% of Content Gets No Traffic From Google. Here's How to Be in the Other 3.45% [New Research for 2023]〉 https://ahrefs.com/blog/search-traffic-study/ 2023-12-01]。也就是說,絕大多數內容連候選集這關都沒站穩,自然就談不上後續的語意排序與 AI 引用。BM25 做的就是那道把多數內容擋在門外的初步相關度計算。

就算勉強擠進結果頁,名次的差距也被第三方數據放大檢視。Backlinko 分析約 4 million 筆 Google 搜尋結果發現,只有 0.63% 的搜尋者會點擊第二頁的結果 [來源:Backlinko〈Google CTR Stats: We Analyzed 4 Million Google Search Results〉 https://backlinko.com/google-ctr-stats 2025-04-16]。這組數字側面印證了候選集篩選的份量:BM25 與後續重排決定你落在第一頁哪個位置,而第一頁與第二頁之間的點擊落差是斷層級的。

同一份 Backlinko 研究還指出,第一名結果的平均點擊率為 27.6%,前三名合計囊括 54.4% 的點擊,第一名的點擊量約為第十名的 10 倍 [來源:Backlinko〈Google CTR Stats: We Analyzed 4 Million Google Search Results〉 https://backlinko.com/google-ctr-stats 2025-04-16]。把這組數字與前面的候選集篩選擺在一起看,整條價值鏈很清楚:先過 BM25 進得了候選集,再靠重排擠進前三名,點擊才有意義。任何一環漏掉,前面的努力都會歸零。

講一個公開可見的觀察。不少電商團隊上線站內搜尋或 RAG 第一版時直覺就上純向量檢索,結果發現某些商品名稱裡的精確型號根本召回不回來。向量模型擅長語意相似,但對「XYZ-2000 Pro Max」這種字面必須吻合的專有名詞反而模糊。後來改成混合式,BM25 顧精準召回、向量顧語意擴展,問題才解掉。這個修正方向在多家公開的技術回顧裡都能看到,屬於工程實務的共識,商品頁修好之後,緊接著要顧的就是 CTR 點擊率,畢竟進得了候選集不等於有人會點。

混成式排序與 RAG 的兩階段架構

混成式排序(hybrid retrieval)是 2026 年的事實標準:先用 BM25 等傳統關鍵字模型把候選縮小,再用語意向量或點擊訊號重排,兼顧速度與品質。RAG 檢索增強生成的管線普遍採用「先 BM25 取候選、再向量或 LLM 生成」的兩階段架構,BM25 決定了 LLM 能「看到」哪些素材。想進一步理解模型端如何運用這些素材,可以參考 LLM 與 LLMO 全面解析,看大型語言模型在檢索之後如何決定要引用誰。

說到底,熟悉 BM25 是 GEO 的技術基礎,因為它直接卡在「檢索」這一環。GEO 與 SEO 的差異比較裡兩者最大的分野就在「內容要不要被 AI 看到」這一關,而 BM25 正是那道門。

BM25 的三個核心成分:TF、IDF、文件長度正規化

BM25 把相關度拆成三個量來加權。TF(詞在這篇文件出現幾次)會被飽和機制壓制、IDF(詞在全庫有多罕見)決定權重大小、文件長度正規化則把長文章的分數適度壓低,避免字數多的文件不公平佔優勢。理解這三個量各自的作用,比背公式重要得多。

詞頻 TF 與飽和機制

詞頻(Term Frequency,TF)指的是某個關鍵詞在單一文件內出現的次數。出現一次 TF 就是 1,出現十次 TF 就是 10。直覺上出現越多代表越相關,但 BM25 不讓它線性長下去,而是用 k1 參數讓分數趨近一個上限。換句話說,出現第 50 次的加分遠小於第 1 次。這就是 BM25 的詞頻飽和機制。

這個設計直接打臉「關鍵字密度越高越好」的老觀念。在 BM25 架構下,把同一個詞堆到第 30 次、第 50 次,邊際加分幾乎歸零,反而可能被當成關鍵字堆砌的訊號。SEO 關鍵字策略的重點在覆蓋度與 IDF,密度數字反而會誤導方向。

飽和機制在實務上有個常被忽略的延伸效果:它讓「同義詞覆蓋」比「同詞重複」更划算。一篇文件如果把同一個概念用三到五個不同的精準詞表達,每個詞各自貢獻一次完整的 IDF 加分,總分會比把單一個詞塞滿全文更高。這也是為什麼自然寫作、覆蓋查詢可能用到的各種說法,在 BM25 計分上反而比機械式重複更佔優勢。

逆文件頻率 IDF:罕見詞才是分數來源

逆文件頻率(Inverse Document Frequency,IDF)衡量一個詞在整個語料庫有多罕見。系統先掃描全庫,計算每個詞出現在多少篇文件裡。一個詞很少文件用到,IDF 就高,計分時權重就大;像「的」「and」這類高頻詞,IDF 接近零,幾乎不加分。罕見但與主題高度相關的詞,才是 BM25 分數的主要來源。

這也是 長尾關鍵字為什麼值得認真佈局的技術原因。長尾詞在語料庫裡少見但與你主題密切相關,IDF 天然偏高。相對地,大家都在搶的高搜尋量關鍵字,因為太多網站都在用,IDF 反而被稀釋。想做扎實的 關鍵字研究,這個 IDF 直覺比看搜尋量數字更有判斷力。

這裡藏著一個反直覺的判斷點:IDF 是相對值,會隨語料庫變動。同一個詞在你的站內語料庫裡罕見,放到整個開放網路的語料庫裡可能相當普遍,反之亦然。做站內搜尋優化時,該參考的是你自己站內的詞頻分布;做 SEO 內容佈局時,參考的則是開放網路上哪些專有名詞還沒被大量網站濫用。把這兩種 IDF 的參考框架分開,才不會用錯尺度。

文件長度正規化

文件長度正規化用參數 b(預設約 0.75)把長文件的分數稍微調低、把極短文件的分數稍微調高。同一個詞在長文章裡本來就可能自然出現得比較多,如果不校正,一篇八千字的長文只因為重複到關鍵字就會贏過精準的八十字短文,這不公平。

另一個參數 k1(常見 1.2 到 2.0)控制詞頻飽和的速度:k1 越大,TF 影響越線性;k1 越小,飽和效果越快出現。這組標準設定(k1 約 1.2 到 2.0、b 約 0.75)是 Okapi BM25 的慣用預設值,也是 Elasticsearch 與 Lucene 出廠採用的設定,除非你的資料集特性特殊才需要微調。

成分衡量什麼對分數的影響關鍵參數
TF 詞頻詞在這篇文件出現幾次出現越多越加分,但邊際遞減到飽和k1(1.2 到 2.0)
IDF 逆文件頻率詞在全庫有多罕見罕見詞權重大,高頻詞幾乎不加分無(由語料庫決定)
文件長度正規化文件長度跟平均的差距長文扣分、短文稍補,避免字多佔便宜b(約 0.75)

這三個量加總起來,就解釋了為什麼「關鍵字密度」在 BM25 架構下是過時指標:密度高不代表 IDF 高,也不代表長度正規化後還領先。真正該盯的是罕見詞覆蓋與文件長度的合理性。

BM25 的計分流程:五個動作的加權總和

把 BM25 想成五個動作,不用背公式也能預測自己的內容在這一關會拿幾分:數詞頻、給罕見詞加權、對長文扣分、控制重複的飽和、把每個查詢詞的分數加總。下面一步步拆。

  1. 數詞頻:算每個查詢詞在文件裡出現幾次,記作 f(qi, D)。出現越多越相關,但這只是起點。
  2. 給罕見詞加權:查這個詞在整個語料庫有多罕見,罕見的詞(IDF 高)加更多分。「的」這種詞加了等於沒加。
  3. 對長文扣分:把文件長度 |D| 拿去跟全庫平均長度 avgdl 比,長的扣分、短的稍微補分,由參數 b 控制強度。
  4. 控制飽和:用 k1(常見 1.2 到 2.0)控制重複出現的飽和速度,避免無限疊加。詞出現到第 3、4 次後,加分就開始趨平。
  5. 加總:查詢裡每個詞分別計分後相加,總分越高排名越前面。

用一個具體例子比較好懂。假設有人搜尋「貓咪 點心 食譜」,你的食譜文章裡「貓咪」出現 2 次、「點心」出現 12 次、「食譜」出現 5 次。BM25 不會讓「點心」出現 12 次就無上限加分,k1 會把它壓成一個接近上限的值;而「貓咪」在全庫少見、IDF 高,雖然只出現 2 次,貢獻的權重可能反而比「點心」大。最後三個詞的分數相加,就是這篇食譜對這個查詢的 BM25 分數。

把上面的例子再拆細一點,可以看出幾個可操作的重點。「點心」這種常見高頻詞,就算出現 12 次,被 k1 飽和壓制後,最後貢獻的分數與出現 4 次差不多,繼續堆疊沒有意義。「貓咪」雖然只出現 2 次,但只要它在全庫夠罕見,每次出現的權重都很高,這就是 IDF 的力量。而如果你的食譜文章比同類文章平均長出一倍,b 還會再把總分往下拉一截。三個機制疊在一起,結論很實際:與其衝單一個高頻詞的次數,不如確保查詢裡每個詞都精準出現、文章長度落在同主題的平均區間。

這個計分流程帶出一個反直覺的結論:把同一個高頻詞塞滿全文並不划算,讓查詢裡每個詞都出現得「剛剛好」反而更能拿分,特別是那些罕見、與主題高度相關的詞。這也是為什麼 搜尋意圖清楚、關鍵字分類精準的內容,在 BM25 這關通常比堆砌型內容穩定。

BM25 調參決策矩陣:k1 與 b 怎麼選

多數系統出廠就用 k1 約 1.2 到 2.0、b 約 0.75 的標準預設值,這也是 Elasticsearch、Lucene 的實作預設,對絕大多數語料都不需要動。但當你的資料集特性特殊,例如商品名極短、法律條文極長、社群貼文長度落差很大,調對參數能讓排序更貼近直覺。常見情境與建議方向整理成一張決策矩陣,可當作判斷起點。

資料集特性k1 建議方向b 建議方向理由
商品名、SKU、代碼(極短、字面吻合為主)偏低(約 1.2)偏低(約 0.3 到 0.5)文件短、長度正規化要弱,避免過度壓分
長篇文章、論文、法律條文(長度落差大)中等(1.2 到 1.5)維持偏高(0.75)長文優勢明顯,需要較強的長度正規化
一般網頁內容、部落格(長度接近平均)標準(1.2 到 2.0)標準(0.75)預設值即可,無需微調
社群短貼文、問答(極短、同詞重複少)偏高(2.0)偏低(0.3 到 0.5)詞頻本就低,放寬飽和讓少數命中更有感
技術文件、API 文件(專有名詞密集)標準(1.2)中等(0.5 到 0.75)靠 IDF 區分,詞頻與長度都不要過度干預

判斷順序很簡單:先看你的文件長度落差大不大,落差大就把 b 往 0.75 甚至更高調;再看查詢詞出現的頻率分布,如果關鍵詞本來就只出現一兩次,可以把 k1 往上調讓少數命中更有感,如果同一個詞很容易重複十幾次,就把 k1 壓低避免堆砌佔便宜。調完之後務必用一批已知相關的查詢做對照,確認排序變化符合預期再定案,憑感覺調整往往會越調越偏。

把這個判斷順序套到一類典型情境比較好體會。以一個商品名稱長度落差很大的中型電商站為例,常見的狀況是商品頁短的只有約 30 到 80 字的規格描述,長的則是約 500 到 800 字的詳盡介紹,落差超過十倍,這類站把 b 從預設的約 0.75 往下調到約 0.3 到 0.5、k1 維持在約 1.2 到 1.5 之間,通常能讓短商品頁的字面精準召回更貼近使用者直覺;相對地,若是一個長度落差小、文章多半落在約 2000 到 3000 字的內容站,依典型表現幅度其實不太需要動參數,標準預設值往往就是最佳解,硬調反而容易把排序弄擰。要留意一個失敗點:光靠調 k1 與 b 很難救回內容本體的問題,若你的商品頁根本沒寫到使用者真正會搜的型號或罕見詞,調參前後的排序差異多半落在個位數百分比的區間,這時與其繼續在小數點上糾結,把心力挪去補齊 IDF 高的長尾詞覆蓋,投入產出比會明顯更好。判斷要不要花力氣調參,可以先準備約 20 到 50 筆已知相關的查詢做前後對照,若調完後相關結果的前十名命中率提升不到約 5 到 10 個百分點,代表你的瓶頸多半出在內容覆蓋那一環,而非參數設定,這個訊號比任何預設值都更值得參考。

一個常見的調參誤區是「越調越細」。k1 與 b 各調個一兩次、用真實查詢驗證,通常就能拿到八成的改善,剩下的兩成往往來自內容本身的詞覆蓋與長度結構,繼續在小數點後兩位上糾結,投入產出比會快速下降。把調參當成一次性校準、留給內容本身去拿剩下的分數,會更符合實務。

跟 TF-IDF 比,BM25 多了哪兩道保險

BM25 沿用了 TF 和 IDF,所以常被講成「TF-IDF 的升級版」,但實質差異藏在它多出來的兩道保險:詞頻飽和與文件長度正規化,再加上 k1、b 兩個可調參數。沿用哪兩個量其實不是重點。這四個差異讓它在長文件、多主題語料上的排序更貼近真實閱讀意圖。若你還沒讀過 TF-IDF 關鍵字權重計算原理,建議先理解 TF-IDF 再回來比對。

比較維度TF-IDFBM25
計分思想經驗式頻率加權,TF 與 IDF 直接相乘機率檢索模型,評估「給定查詢下文件相關的機率」
詞頻處理線性成長,出現越多分越高,無上限k1 做飽和,重複塞關鍵字到後面幾乎不再加分
文件長度不管長短,8000 字論文跟 80 字摘要 TF 相同b 做正規化,長文不會只因字多就贏過精準短文
可調性幾乎沒有超參數,選定定義就固定k1、b 可依資料集微調,跨領域效果更穩
實務定位多半只剩教學價值2026 年搜尋與 RAG 管線的主流第一層基線

計分思想的差異最根本。TF-IDF 屬於「用頻率做加權」的經驗公式,把 TF 和 IDF 直接相乘就完事。BM25 背後是機率檢索模型,評估的是「給定查詢的條件下,文件是相關的機率」,所以它才會去模擬「超過某個次數以後,再多出現其實幫助有限」這種真實情況,把飽和做出來。這不是同一套公式的微調,是不同的理論出發點。

詞頻處理的差異最影響內容寫作。在 TF-IDF,同一個詞只要再多出現一次,就再加一次分,TF 與分數幾乎是線性關係。BM25 加上 k1 來做飽和,當 TF 很大時計分曲線會趨近平坦,一篇長文就算把關鍵字塞滿也霸不了榜。這直接推翻了早期 SEO「資訊增益不重要、密度才重要」的錯誤操作。

文件長度的差異最容易被忽略。TF-IDF 沒有考慮長短差異,兩篇文章都提到同一個詞 10 次,八千字論文和八十字摘要得到的 TF 完全相同。BM25 加入 b 做正規化,長文分數被適度壓低、短文稍微補分,讓不同篇幅可以公平競爭。這對 資訊型文章寫作是個提醒:不是寫越長越佔便宜,長度貼近同主題平均最安全,寫得太冗長反而容易拉高 網站跳出率,傷了使用者停留。

可調性與實務定位的差異決定了誰活下來。TF-IDF 基本上沒有可調的超參數,選定定義就固定;BM25 的 k1、b 可依資料集微調,在長文件、短社群貼文、法律條文等不同領域都能維持穩定效果。這也是為什麼到 2026 年,BM25 仍是 SERP 搜尋結果頁排序與 RAG 管線的主流基線,而 TF-IDF 多半只在教學裡出現。想看這條基線在結果頁怎麼落實,可一併參考 SERP 搜尋結果頁全解析;同樣的相關度邏輯也適用於 Yahoo 搜尋排名提升攻略提到的次要搜尋引擎。

向量檢索時代,BM25 還剩多少用武之地

BM25 在文件長度落差大、罕見專有名詞多、需要可解釋性、或要做 RAG 候選篩選的場景裡表現穩定;但碰到同義詞、語意相似但用字不同、口語化查詢時就會失靈,必須交給向量模型。多份公開的 RAG 評測實驗顯示,「先 BM25 取候選再用向量重排」可比純向量檢索提升個位數百分比的回答正確率。各研究的精確百分比與實驗年份並不一致,因此這裡只給範圍、不保留單一數字。

情境BM25 表現向量檢索表現務實建議
站內搜尋、電商商品頁強:長度校正改善長短落差大的排序中:商品名相似度未必準BM25 為主
RAG 候選篩選強:快篩到百篇上下,成本低強但貴:全庫向量檢索成本高BM25 先篩、向量重排
多語、專業語料強:罕見專有名詞 IDF 權重精準中:跨語向量化品質不穩BM25 為主
同義詞、口語查詢弱:只認字面吻合強:語意相似也能命中向量為主、BM25 補位
可解釋性需求強:分數可拆解弱:黑盒子BM25 為主

把表格裡的結論拆開看,BM25 的優勢其實集中在兩個特質上。一是它對字面吻合的依賴,在專有名詞密集的場景反而是優點:商品頁的網站架構長短落差大、多語或專業語料的罕見詞比例高,BM25 的長度校正與 IDF 權重能把這類字面必須命中的查詢抓得比向量更準。二是它的分數可拆解成 TF、IDF、長度三段,出問題時能逐項追查是哪一環扣分,向量模型的黑盒子辦不到,這對需要向非工程師交代排序原因的團隊是實質優勢。RAG 與生成式搜尋則是另一種取捨:先用 BM25 把候選縮到百篇上下,再把語意判斷交給向量或 LLM,用低成本換可接受的召回率,這也是 預測查詢擴展後仍要保留的精準層。

BM25 打到天花板的地方

極限也很清楚。對同義詞、語意相似但用字不同、口語化查詢的辨識力弱,這時必須靠向量或混合式檢索補位。舉例,有人搜「怎麼讓狗不亂叫」,你的文章寫的是「犬類行為矯正」,字面完全不吻合,BM25 會給低分,但語意上明明是同一件事。這種情況向量檢索的優勢就出來了。

務實建議是把 BM25 與向量當成互補,不是二選一。業界主流是兩者混合,BM25 顧精準召回、向量顧語意擴展。若你在評估 GEO 能見度監測工具SEO 軟體工具,可以留意它們背後的檢索架構是不是混合式,這會影響你的內容能不能被穩定召回。

混合式檢索的分數怎麼融合

決定走混合式之後,馬上會碰到一個工程問題:BM25 與向量各自算出來的分數尺度完全不同。BM25 分數可能落在零到幾十之間,向量餘弦相似度則落在零到一之間,兩者直接相加沒有意義,向量分數會被 BM25 淹沒。業界常用的解法有兩種,理解它們的差異,有助於判斷一套檢索系統設計得健不健全。

融合方式運作原理對尺度差異的處理實務定位
倒數排名融合(RRF)只看每個模型給文件的名次,用 1 除以(名次加一個常數)當權重再相加只看排名,兩個模型尺度不同也無所謂實作簡單、效果穩定,是多數開源系統的預設
加權線性融合先把兩個模型的分數各自正規化(例如壓到零到一),再依權重相加必須先把分數尺度對齊,工程成本較高可針對不同查詢類型調整權重,彈性大

對內容工作者來說,這層技術細節的啟示在於:混合式檢索不是「兩個模型各算一次然後取平均」那麼簡單,融合策略會決定字面吻合與語意相似哪一邊影響力更大。多數開源 RAG 框架預設用 RRF,這對字面精準的專有名詞相對友善;如果一套系統把向量權重調得很高,字面吻合的重要性就會被削弱,這時你的內容在 BM25 這關表現再好,也可能被語意相近但不夠精準的競品擠掉。理解這個權重取捨,才不會把「進了候選集」直接等同於「一定排得上」。

從計分邏輯推回內容該做的事

把力氣從「提高關鍵字密度」搬到「提高 IDF 與主題覆蓋度」,是 BM25 給內容創作者最直接的啟示:用讀者真正會查的罕見詞與長尾詞、讓文件長度貼近同主題的平均、避免堆砌,並確保查詢詞出現在會被當作重要的位置。這幾件事能讓你在 BM25 這關穩定過門檻。

  1. 別再追求關鍵字密度:BM25 的飽和機制讓重複出現的邊際效益快速遞減,密度高反而像堆砌訊號,這也是llms.txt 在 AI 時代重新定義內容之後,被反覆修正的老習慣。
  2. 佈局高 IDF 的長尾詞與專有名詞:這些詞在語料庫少見但與主題高度相關,是 BM25 分數的主要來源。搭配 Google 搜尋技巧總整理裡的找詞方法,比憑直覺下標更準。
  3. 控制文件長度在合理區間:過長會被長度正規化壓分,過短又可能在 TF 上吃虧,貼近同主題平均最安全。上線後用 Google Search Console 觀察成效再微調篇幅。
  4. 確保查詢詞出現在關鍵位置:標題、H2、開頭段落,這些位置對相關度判斷的影響遠大於全文密度。Title Tag 撰寫技巧Entity SEO 實體策略在這裡直接發揮作用。
  5. 兼顧語意自然與關鍵詞覆蓋:RAG 時代要被 LLM 引用,必須先在 BM25 這關進得了候選集,語意自然與關鍵詞覆蓋完整缺一不可。

給一個具體可操作的判斷方式:拿你打算主攻的那組查詢詞,在自家站內(或同主題的競品站)逐一搜尋,觀察三個訊號。第一,這個詞出現在幾篇內容裡;出現得越少,代表它在你的語料庫裡 IDF 越高,值得認真佈局。第二,排名靠前的文章字數落在哪個區間;把你的篇幅對齊這個區間的中位數,避免被長度正規化拖累或因過短吃 TF 虧。第三,前幾名的標題與 H2 是否都精準涵蓋查詢詞;若多數沒有,代表你只要在這幾個位置放對詞,就有機會搶到字面吻合的優勢。這三個訊號疊起來,比任何單一密度數字更能預測你在 BM25 這關的表現。

這幾條建議其實沒有一條是新的,差別在於知道「為什麼」。理解 BM25 的飽和與長度正規化之後,力氣自然會從堆關鍵字,轉到去想「讀者真正會用哪些罕見詞搜這個主題」。

值得補充的是 結構化資料內部連結這類技術 SEO 並不在 BM25 的計分範圍裡,它們影響的是索引、爬取與爬取預算。這不代表它們不重要,只是作用在不同的關卡。理解 BM25 是為了搞懂「相關度計分」這一環,把它當成解釋整個 SEO 的唯一框架反而會失準;把各環節放回各自的關卡,才不會把所有事情都塞進 BM25 這一個框裡。

對做 關注 Google I/O 2026 搜尋演進的人,還有一個延伸建議:內容若要被 LLM 引用,除了過 BM25 這關,也要留意 Grounding 被 Google AI 引用的條件品牌成為被推薦的答案所需的訊號。BM25 是第一道門,但不是最後一道。

BM25 內容自檢清單

把上面的觀念收成一個發文前的快速自檢:標題與 H2 要涵蓋讀者真正會搜的罕見詞與專有名詞,而非通用高頻詞;查詢裡每個關鍵詞都精準出現至少一次,並落在標題、H2、開頭段落這些被當作重要的位置;文章長度貼近同主題競品的平均區間;用三到五個不同的精準詞表達同一概念,靠同義覆蓋而非單詞重複加分;避開把同一個詞堆十幾次的寫法;站內搜尋若自建,採 BM25 與向量分工的混合式架構。

實務上最容易踩錯的幾個假設

讀完前面幾節,多數人會帶著幾個似是而非的假設回去改內容。最常見的四個是:以為參數能調出奇蹟、篤定 Google 已經棄用、把 BM25 與向量當二選一、以及繼續靠堆關鍵字衝分。這幾個假設任一成立,都會讓優化方向走偏,有些甚至名列 常見 SEO 優化地雷,值得在動手前先排除。

調參數不會救回內容本體的問題

k1 控制詞頻飽和的速度,常見落在 1.2 到 2.0,值越大越接近線性(重複出現仍持續加分),值越小飽和越快(很快進入不再加太多的區)。b 控制長度正規化的強度,常見約 0.75,值越大長文被壓越多。這組預設值是 Okapi BM25 的標準設定,也是 Elasticsearch 與 Lucene 的官方實作預設,多數系統出廠就用這個值。會想動它的人,通常是希望微調出更好的排序,但參數能搬動的排序差距有限,真正影響分數的是詞的覆蓋與文件長度,小數點後兩位反而不是關鍵。把心力花在基礎設定上更划算,例如照著 WordPress SEO 必做設定把網站的索引與標記打理乾淨。

「Google 不再用了」這個判斷缺乏依據

業界普遍認為 BM25 仍是 Google 初步相關度的基礎函式之一,後續的 RankBrain、BERT、RankEmbed 是在它篩過的候選集上重排。Google 並未公開證實這個細節,相關判斷來自業界訪談與搜尋工程師的公開討論。重排階段還會疊加 E-E-A-T 高品質內容原則等訊號。

BM25 與向量是分工,不是對決

把兩者當二選一,是常見的誤判。混合式檢索才是主流,BM25 顧精準召回、向量顧語意擴展。在 代理式搜尋 Agentic SearchAI Agent 運作原理這類多步檢索場景,混合式幾乎是標配,搭配 四大類型連結的佈局能進一步強化召回。

堆關鍵字這條路在 BM25 下走不通

飽和機制讓高密度不再加分。同一個詞出現到第 3、4 次之後,邊際加分快速歸零,堆到第 30 次跟第 5 次的分數差距極小,反而可能被當成堆砌訊號。這也是 Google 如何看待 AI 內容Perplexity AI 搜尋這類 AI 搜尋產品看待內容時反覆出現的重點。

用工具估 IDF,別只靠直覺

越少網站用、越罕見、但與你主題高度相關的詞,IDF 越高。粗略判斷是把這個詞丟進搜尋引擎,若結果頁幾乎都是通用內容、很少有人精準使用,IDF 通常偏高;反之人人都在用的通用詞 IDF 偏低。想量化估自己站內的詞頻與罕見度,可以用 Screaming Frog 爬蟲工具抓全站內容,或用 Ahrefs SEO 工具結合 Google 關鍵字搜尋量看競品覆蓋的詞再比較。

講到這裡,回顧一下整條鏈:BM25 算的是相關度,過了這關才有資格被 AXO 全搜尋體驗優化LLM 大型語言模型入門背後的語意層處理。SEO 自然流量底層邏輯裡,它是相關度計算那一段。搞懂它的目的在於知道內容在哪一關被評分、又該怎麼在那一關拿分,當不當搜尋工程師其實無所謂。

BM25 常見問題

BM25 的名字怎麼來的,25 又代表什麼?

BM 代表 Best Matching(最佳匹配),源自英國 City University London 的 Okapi 專案;25 是版本號,團隊在 1990 年代試驗數十種權重函式後,把表現最好的第 25 號公式發表並沿用,因此得名。這個沿革見於 Okapi BM25 的公開條目。

BM25 在 RAG 流程裡扮演什麼角色?

它負責候選篩選,把全庫數百萬文件縮成百篇上下,再交給向量檢索或 LLM 重排與生成。後續生成還會受限於 AI Token 與 LLM 基礎知識決定的上下文容量,也可能透過 MCP 模型上下文協定接到外部資料源;若內容進不了候選集,就無法被摘要或引用。

BM25 與向量檢索誰比較準?

兩者擅長的場景不同,答案不是二選一。BM25 在專有名詞、字面吻合、長度落差大的情境較準;向量檢索在同義詞、語意相似、口語查詢較準。業界主流是混合式檢索,讓 BM25 負責精準召回、向量負責語意擴展。

Google 現在還在用 BM25 嗎?

多數搜尋工程師的看法是,Google 至今仍把 BM25 當作估算初步相關度的底層函式,後續的機器學習訊號都是在它過濾出的候選集合上做重新排序。Google 官方並沒有直接承認這個內部細節,所以相關結論多半是從業界訪談與工程師的公開對話推測而來,無法當成官方聲明引用。這層候選集若要進一步變成摘要對外呈現,可對照 Google AI Overviews 全面解析裡對引用機制的拆解。

混合式檢索的分數要怎麼融合?

BM25 與向量的分數尺度不同,不能直接相加。常見做法是倒數排名融合(RRF),只取兩個模型各自的名次再加權,避開尺度問題;另一種是加權線性融合,先把分數正規化到同一區間再依權重相加。多數開源 RAG 框架預設用 RRF,對字面精準的內容較友善;若系統把向量權重調高,字面吻合的影響力就會被削弱。

相關文章