返回

語義搜尋是什麼?向量檢索與關鍵字檢索全面對比

通智雲團隊 ·
技術方案 搜尋系統
語義搜尋是什麼?向量檢索與關鍵字檢索全面對比

摘要:語義搜尋用向量表達「意思」,關鍵字檢索用倒排索引匹配「字面」;前者解決同義與意圖匹配,後者保障精確與可解釋,多數生產環境需要兩者混合而非二選一。

用戶搜「冬天穿的外套」,關鍵字檢索可能只召回標題裡帶「冬天」和「外套」的商品,把「輕薄羽絨服」漏掉;換成語義檢索,能召回語義相近的羽絨服,卻可能把「冬天用的暖手寶」也算進來。這不是哪個更好的問題,而是兩種檢索範式在「字面匹配」與「語義匹配」上的分工。本文拆解兩種檢索的工作原理、效果邊界與成本差異,給出對比表與選型建議,並說明為什麼混合檢索(hybrid search)正在成為主流做法。

關鍵要點

一、關鍵字檢索:倒排索引與詞頻統計

關鍵字檢索的做法是把文件切成詞,建立「詞 → 文件列表」的倒排索引,查詢時同樣切詞,再按詞頻、逆文件頻率、欄位長度等因素給候選文件打分。

這套方法的代表演算法是 BM25。它的判斷依據是:查詢詞在文件中出現得越多、該詞在整個語料中越稀有、文件本身越短,得分就越高。Elasticsearch 等主流檢索系統的預設文字匹配即建立在這一類統計之上,匹配查詢(match query)會先對查詢串做分詞,再按相關性打分返回。

它強在三處。 一是精確:搜「iPhone 15 Pro 256G」這種帶型號與規格的查詢,字面匹配能直接鎖定目標,語義模型反而可能因為過度泛化把「iPhone 15」也拉進來。二是可解釋:得分能拆解為每個詞的具體貢獻,排查「為什麼這條沒召回」時可以直接看詞是否命中。三是成本低:不需要模型推理,索引體積也遠小於向量索引。

它弱在一處,但很致命:詞彙鴻溝。 用戶說的詞和文件裡寫的詞不是同一個時,字面匹配就失效了。搜「保暖外套」召回不了標題只有「羽絨服」的商品,搜「怎麼退款」匹配不到寫的是「退貨流程」的幫助文件。

二、語義檢索:把意思編碼成向量

語義檢索(也稱向量檢索、稠密檢索)先把文字映射成固定維度的稠密向量(embedding),語義相近的文字在向量空間中距離更近;查詢時把查詢詞也編碼成向量,再檢索距離最近的若干條。

這一路線在工程上成熟的標誌,是稠密向量檢索在開放域問答任務上超過了傳統稀疏檢索。Facebook AI 在 2020 年提出的 Dense Passage Retrieval(DPR)用雙編碼器把問題與段落分別編碼為向量,在多個開放域問答數據集上的檢索準確率超過了強 BM25 基線。句向量方面,Sentence-BERT 透過孿生網絡結構讓模型能產出可直接用餘弦相似度比較的句子向量,把句向量檢索的開銷從上萬次模型推理降到一次編碼加一次相似度計算,是語義檢索得以大規模落地的關鍵一步。

它的核心價值是跨越詞彙鴻溝。 「保暖外套」與「羽絨服」在向量空間裡距離很近,因此能被召回;跨語言場景下,同一意思的不同語言表述也能被映射到相近位置。

代價有三。 一是需要模型:要選嵌入模型、要部署推理服務、要考慮模型更新時的全量重刷。二是算力與儲存:向量索引的體積通常顯著大於倒排索引,且相似度檢索需要近似最近鄰演算法支撐。三是可解釋性弱:很難向業務方解釋「為什麼這條排在前面」,排查問題時缺少像詞頻那樣直觀的依據。

三、兩者對比:一張表看清差異

維度 關鍵字檢索(稀疏) 語義檢索(稠密)
匹配依據 字面詞項與詞頻統計 向量空間距離
索引結構 倒排索引 向量索引(HNSW / IVF 等)
同義詞召回 依賴人工同義詞詞表 天然支援,無需維護詞表
精確型號 / 編碼 強,直接命中 弱,易被語義相近項干擾
長句與自然語言提問 弱,切詞後語義丟失 強,整句編碼保留意圖
可解釋性 高,可拆解到詞 低,難以歸因到具體詞
部署成本 低,無需模型 中高,需嵌入模型與向量庫
冷啟動 可立即生效 需要編碼全量語料
典型失效場景 詞彙鴻溝、拼寫變體 精確匹配、稀有實體、數字規格

四、語義檢索解決不了什麼

把語義檢索當成萬能替代,是落地中最常見的誤判。以下四類場景,純向量召回通常不如關鍵字檢索。

精確標識符。 訂單號、SKU、型號、錯誤碼、人名。這些字串的語義資訊極少,向量化後彼此距離很近,容易互相干擾。搜「ERR_2049」應該精確命中該錯誤碼的說明頁,而不是「ERR_2048」和「ERR_2050」。

數字與規格約束。 「500 元以下的印表機」「256G 以上」。向量模型對數量關係的表達不穩定,這類需求應當交給結構化過濾(filter)而不是語義召回。

嚴格的業務規則。 某些商品必須置頂、某些內容必須屏蔽、某些品類在特定區域不可售。這些是規則問題,不是相關性問題,混進語義召回只會增加排查難度。

極小語料。 文件數量只有幾十到幾百條時,關鍵字檢索配合同義詞詞表往往已經足夠,引入向量檢索的邊際收益不抵工程成本。

五、混合檢索:為什麼多數場景要兩者並用

既然各有邊界,主流做法是把兩路召回合併。混合檢索(hybrid search) 指同一查詢同時走關鍵字召回與向量召回,再把兩路結果融合成最終排序。

融合方式通常有兩類:一是加權求和,把兩路的歸一化得分按權重相加,權重可按查詢類型動態調整;二是倒數排名融合(RRF),按各路結果的排名而非原始得分融合,避免兩路得分尺度不一致帶來的偏差。

混合的價值在互補:關鍵字路保底,確保精確查詢不失控;向量路兜底,把字面不匹配但語義相關的結果撈回來。實踐中,只要語料規模到了一定量級且查詢存在多樣性,混合檢索的相關性通常優於任何單一路線。

落地時還需注意兩點。一是查詢理解前置:先判斷查詢類型(精確型號 / 自然語言提問 / 寬泛品類),再決定兩路的權重配比,比固定權重效果好。二是評估要分段:整體指標會掩蓋真相,應把測試集按查詢類型拆開,分別看精確型與模糊型的表現,否則很可能出現「整體漲了、精確查詢卻崩了」而不自知。

如果你正在規劃搜尋與推薦的統一底座,可先讀搜尋推薦協同:一體化增長方案,兩者共用同一份向量索引是協同成本最低的切入點。

六、選型建議

常見問題

問:語義搜尋會取代關鍵字搜尋嗎?

答:不會,短期內也不應該。語義檢索擅長跨越詞彙鴻溝,關鍵字檢索在精確型號、編碼、人名等場景仍明顯更強,且可解釋、成本低。主流做法是混合檢索:兩路召回後融合排序,而不是用一條路線替換另一條。

問:什麼情況下值得上語義檢索?

答:三個訊號同時出現時收益最大:查詢以自然語言提問為主(如「怎麼申請退款」)、用戶用詞與文件用詞差異大、且內容量已大到人工維護同義詞詞表不現實。反過來,若查詢多為精確型號或編碼,語義檢索的邊際收益有限。

問:向量檢索的嵌入模型怎麼選?

答:先看語言與領域匹配度,再看向量維度與推理成本的平衡。通用多語言模型適合起步;垂直領域(醫療、法律、工業)術語特殊,通用模型表現會明顯下降,需用領域語料微調。選型時應用自己的真實查詢集做召回評測,不要只看公開榜單。

問:混合檢索的兩路結果怎麼融合?

答:兩種常見做法。加權求和是把兩路得分分別歸一化後按權重相加,實現簡單但要求兩路得分尺度可比;倒數排名融合(RRF)按各路結果的排名位置融合,不依賴得分尺度,工程上更穩健,是多數系統的預設選擇。

問:上了語義檢索後,同義詞詞表還需要維護嗎?

答:需要,但職責變了。語義模型能覆蓋大部分同義表達,但業務強相關的等價詞(品牌別名、內部簡稱、促銷叫法)模型學不到,仍需人工維護。詞表從「召回的主力」變成「精確糾偏的補充」,維護量通常會下降。

問:怎麼判斷語義檢索有沒有真的提升效果?

答:按查詢類型分段評估。建一個標註測試集,把查詢分為精確型(型號、編碼)與模糊型(自然語言提問、寬泛品類),分別看召回率與首位命中率。只看整體指標會被平均掉——常見的失敗是模糊型漲了、精確型掉了,整體看起來持平甚至上漲。

關於通智雲

通智搜尋面向本文描述的檢索場景,提供關鍵字召回、語義向量召回與混合融合排序能力,支援按查詢類型動態調配兩路權重並保留人工干預規則層。通智雲(TENGENCE)是 AI 時代的企業增長引擎,專注公域引流獲客與私域轉化成交;核心產品為通智 GEO(GEO + SEO 雙引擎)與通智搜尋。

相關閱讀

資料來源

  1. arXiv《Dense Passage Retrieval for Open-Domain Question Answering》(Karpukhin 等,2020):提出雙編碼器稠密檢索(DPR),在多個開放域問答數據集上的 top-20 檢索準確率超過強 BM25 基線。
  2. arXiv《Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks》(Reimers & Gurevych,2019):用孿生網絡產出可直接用餘弦相似度比較的句向量,把句向量檢索開銷從上萬次推理降為一次編碼加相似度計算。
  3. Elasticsearch《What is vector search?》:向量檢索把非結構化數據映射為稠密向量並按相似度召回,用於語義匹配與相似內容檢索。
  4. Elasticsearch 官方指南《Match query》:匹配查詢先對查詢串分詞再按相關性打分的機制,是關鍵字檢索(稀疏檢索)的典型實現。

立即行動

← 上一篇: 為什麼你的 A/B 測試總做不出顯著結果?2026 年三組數據 下一篇: 搜推一體架構設計:搜索與推薦怎麼融合?四層架構與四階段落地 →
諮詢
二維碼

企業微信