AI 搜尋前沿技術總覽: 哪些該做、哪些值得投入、哪些先知道就好
這場是 The Frontier of AI Search 系列的最後一場,講題就叫 The New Frontier of AI Search。系列的定位是這樣寫的:
AI 搜尋正在快速演進。這個系列把資訊檢索前沿的頂尖專家聚在一起,討論 agentic search、自適應相關性管線、control vectors、PageIndex、現代 RAG、以及把向量搜尋擴展到生產環境。我們也會掃過一批正在成形的技術: LLM as a Judge、late interaction、wormhole vectors、semantic IDs、hypencoders。
整個系列在 2026 年 6 月跑了十場,錄影都放在 aipoweredsearch.com/lightning-lessons 免費看。最後這場由兩位主辦人自己上陣。Trey Grainger 是《AI-Powered Search》的作者、Searchkernel 創辦人,做搜尋和資料科學 18 年,之前是 Presearch 的 CTO。Doug Turnbull 是《Relevant Search》和《AI-Powered Search》的共同作者,帶過 Reddit、Shopify、Wikipedia 的搜尋團隊。
小編一直很關注 RAG 和搜尋這個題目,也認為它是 AI 工程師的一項核心技術。現在大家的注意力幾乎都在模型和 agent 框架上,但真正決定產品好不好用的,很多時候是底下那一層沒什麼人想碰的檢索。這場正好是一份完整的清單: 兩位在這行待了快二十年的人,把 18 個題目一次講完,告訴你每一個是什麼、成熟到什麼程度、值不值得現在就做。
演講出處: The New Frontier of AI Search
編按: 如果你對「相關性不等於向量相似度」這件事還不熟,可以先看小編之前整理的 RAG 不只是 Vector Search: 從語意相似度到真正的搜尋理解,那篇的原文作者正是本場的 Doug Turnbull。另外系列裡那場「Agentic search: can we just use grep?」的爭論,小編也整理過相關的 向量已死? Grep 萬能?。
以下是重點整理:
1. 先講清楚: 「AI 搜尋」指的是兩件事

Doug 一開場先把範圍定義好。他和 Trey 講的 AI 搜尋同時包含兩種: 一種是人類在搜尋框打字的傳統搜尋,另一種是 agent 自己在後面下查詢的 agentic RAG 式搜尋。這兩種現在都越來越重要,而且共用同一套底層技術。
投影片上是今天要掃過的清單: Hybrid Search、Sparse vs. Dense Vector Retrieval、Agentic Search、Reflected Intelligence、Signals Boosting、Collaborative Filtering / Personalization、Learning to Rank、Semantic IDs、Active Learning、LLM as a Judge、Cross-encoders、Multimodal Search、Semantic Knowledge Graphs、Sparse Encoders / SPLADE、Wormhole Vectors、Hypencoders、Quantization、Late Interaction。
Doug 說得很老實: 這場的目的不是把每個題目講透,而是給你「線索」,讓你之後聽到別人提起某個名詞時,至少知道對方在講什麼、也知道該往哪裡挖。小編覺得這種掃描式的整理其實蠻少見的,因為每個題目單獨拿出來都有一堆深度文章,但很少有人願意花一小時把它們的相對位置排出來。
2. 混合搜尋: 已經是業界基本盤,不是前沿

Trey 用電影搜尋當例子。查詢是 the hobbit,左邊是 BM25(全文搜尋最常用的排序演算法,Elasticsearch 預設就是它)的關鍵字搜尋: 前幾筆確實有 hobbit,但後面跑出來 The Good, the Bad and the Ugly、The Abyss、The Apartment。原因是 BM25 預設用 OR 邏輯,多字查詢會拆開各自比對,只要文件裡命中其中一個詞就有分數,所以光是 the 這種到處都有的常見字就能讓文件排上來。更有趣的是有一筆《魔戒》看起來很相關,實際上整篇文件裡根本沒有 hobbit 這個詞,純粹因為 the 出現了兩次就拿到了分數。
右邊是 dense vector 的語意搜尋(用模型把文字轉成向量,再算向量之間的相似度): 第一筆是《哈比人》,接著是魔戒系列,很合理。但也混進了《哈利波特》,因為在語意空間裡兩者題材相近(巫師、類似的視覺風格)。概念上接近,但不是精確命中。兩邊各自有好結果,也各自有一批雜訊。
混合搜尋就是兩邊各跑一次再合併。最基本的做法是 reciprocal rank fusion (RRF): 兩種搜尋各自跑出一份排名清單,然後根據每筆結果在各清單裡的排名來合算分數,同時出現在兩邊、而且兩邊排名都靠前的結果,最終分數就會最高。
Trey 的判斷值得注意: 混合搜尋現在已經是「他接觸到的多數組織的 state of the art」,大部分公司不是已經在做,就是正在轉過去。換句話說,如果你的 RAG 現在還只有純向量檢索,那不是落後前沿,是落後基本盤。
3. 稀疏對稠密不是二選一,是一條光譜

這張投影片蠻實用的。它把 sparse(稀疏)和 dense(稠密)畫成一條連續的軸,上面標了五個位置:
編按: 「稀疏向量」和「稠密向量」是搜尋領域的兩種資料表示方式。稀疏向量像一個超長的列表(長度等於整個字典的詞彙數),大部分位置是 0,只有文件裡實際出現的詞才有值,BM25 就是這個思路。稠密向量是用模型把整段文字編碼成一組比較短的數字(通常幾百到一千多維),每個位置都有值,用來表示語意特徵。前者精確但不懂同義詞,後者懂語意但有時不夠精確。
- Lexical / Sparse Vector Token Matching: 傳統關鍵字、多欄位搜尋
- Term Expansion: 傳統關鍵字搜尋,但用模型自動補上同義詞和相關詞(例如搜尋 car 時自動加上 automobile、vehicle)
- Sparse Retrieval + Dense Re-ranking: 傳統搜尋負責初步召回(recall,盡量把相關的都撈出來),再用 embedding 重排
- Hybrid Sparse Retrieval + Dense Vector Search: 兩邊平行跑,共同影響 recall
- Semantic / Dense Vector Search: 只用 embedding
下方列出各段對應的具體技術: 最左邊是 Boolean matching、tf-idf、BM25、docsets; 詞彙擴展那一段是 Semantic Knowledge Graphs、SPLADE、Explicit Knowledge Graphs、Ontology / Taxonomy / 同義詞 / 錯字處理; 中段是 Retriever / Reader Q&A、Learning to Rank、Personalization Vectors / Collaborative Filtering、MiniCOIL、RRF; 最右邊是 Vector Embedding Similarity、ANN(近似最近鄰搜尋,常見實作有 HNSW、IVF 等)、Late Interaction(ColBERT、ColPali 等)。
這條軸的價值在於: 稀疏和稠密不是二選一,而是可以混合使用、互補不足。如果你現在是純關鍵字搜尋,可以加一層 embedding 重排來補語意理解; 如果你是純向量搜尋(很多做 RAG 的人就是這樣起步的),可以加回關鍵字搜尋來補精確匹配。不管從哪一邊出發,每一步都能獨立上線、獨立量測效果,不用一次全換。Trey 也提到,你甚至可以先用 SPLADE 這類稀疏詞彙模型做匹配,再用語意搜尋只做重排,這樣可以保留精確匹配的能力,同時讓有語意關聯的結果排前面。
4. 從傳統 RAG 到 agentic search: 差別在有沒有補救機會

Doug 畫的傳統 RAG 流程是一條直線: 使用者問「我想知道 XYZ 公司去年的季度財報」→ LLM 理解查詢並構造搜尋指令 → 搜尋 → 產生摘要。投影片下方兩個註記都寫著「Tune, tune, tune」,最底下一行是「我們只有一次機會把這件事做對」。
他的說法是: 在傳統 RAG 裡,LLM 根本不知道自己在搜尋,我們只是把搜尋引擎撈到的東西放進 prompt 而已。中間任何一步錯了都沒有退路,LLM 沒有機會改寫查詢或調整做法。

Agentic search 跟傳統 RAG 的差別,Doug 用三個同時成立的特性來說明:
(1) 有推理和修正能力: 查詢構造 → 搜尋 → 評估結果。如果結果不夠好,就改寫查詢再搜一次,反覆修正直到滿意才產生摘要或執行動作。傳統 RAG 只跑一次就定生死,agentic search 有迴圈可以自我修正。
(2) 知道自己在用工具: 跟傳統 RAG 不同,agent 明確知道自己可以呼叫搜尋。Doug 特別強調這個區別: 傳統 RAG 裡 LLM 根本不知道搜尋這件事存在,我們只是偷偷把結果塞進 prompt; 但 agentic search 裡,搜尋是 agent 有意識選擇使用的工具,就像 coding agent 知道自己可以用檔案系統和命令列一樣。
(3) 可以加護欄: 在評估結果的環節可以加上自己的檢查邏輯和回饋機制,在 agent 偏離預期的時候及時修正。
Doug 說,這個迴圈已經改變了大家做聊天式搜尋的方式,過去那種傳統 RAG 架構正在被換掉。
5. 反饋智慧: 這場點名最被低估的一塊

Trey 講到「reflected intelligence」(反饋智慧,也就是從使用者的實際行為中學習來改善搜尋結果)的時候說了一句蠻重的話: 在現在多數的 AI 搜尋實作裡,這是最被忽略的一塊。原因不外乎是收集使用者行為訊號很麻煩,或者做搜尋的人直接跳過了這一步。但它其實是最豐富的資訊來源之一,可以讓搜尋系統持續從使用者行為中學習、自動改善自己。
概念本身很單純: 使用者搜尋 → 看到結果 → 對結果採取行動(點擊、加入購物車、購買、收藏)→ 把這些行動集合起來建模型 → 下一次結果就更好。投影片把它拆成四種:
四種用的是同一個迴圈、同一批資料,差別只在最後訓練出來的模型是什麼。
順帶一提,Doug 提到他和 Trey 今年六月去了一場電商搜尋研討會,電商搜尋圈裡大多數人仍然靠傳統的 learning to rank,而不是什麼大型深度學習模型。這個現況本身就說明了一些事。
6. 如果只能先做一件事: signals boosting

Trey 舉的例子是搜尋 ipad。原生的搜尋結果跑出來是一堆線材,因為這些線材的商品名稱裡有 iPad,而且製造商欄位被錯標成 iPad 而不是 Apple。BM25 就會把它們排在最前面。他自己也說這些根本是壞結果,因為連標註都是錯的。
導入 signals boosting 之後,系統從點擊資料自動學到大家搜 ipad 的時候真正點的是什麼,把真正的 iPad 拉到最前面。做法簡單到有點無聊: 就是對熱門查詢統計點擊次數,然後加權。
這場真正的建議藏在最後的 Q&A 裡。Trey 說學生最常問的問題是「如果只能先做一件事,你會做什麼」,他們的答案永遠是: 只要你有夠多的行為訊號,就先做 signals boosting。它是最容易實作的演算法,在生產環境的投報率最高。他接著說:
它一點也不炫,很多人會想說「這我不想做,看起來太基本了,我只是在對查詢做次數統計而已」。但如果你退回去問自己到底在做什麼: 我是在相信我的使用者,他們正在明確告訴我什麼是相關的,我就把那些東西排到前面。這比起去做一堆很精巧的演算法,其實合理得多。
小編覺得這段值得單獨拿出來。整場演講花了一小時介紹 hypencoder、wormhole vectors 這些很新的東西,然後在最後告訴你先去做那個已經存在很多年、一點也不新的技術。這不是保守,是排序問題: 前沿技術的邊際效益,通常要在基本功做完之後才看得到。
7. 呈現偏差: 你的模型只學得到你已經展示過的東西

Doug 接著講一個做反饋智慧一定會遇到的問題: 呈現偏差(presentation bias)。他的例子是在雜貨店網站搜尋 oatmeal,結果只跑出三種燕麥片,於是使用者的點擊也只會落在這三個上。但問題是: 其他種類的燕麥呢? 其他口味呢? 鋼切燕麥呢? 使用者不是不想要它們,而是根本沒看到。
這是一個會自我強化的迴圈: 模型 → 搜尋結果 → 點擊 → 訓練資料 → 模型。投影片在迴圈旁邊標了一行字: 「More of the same」。因為我們只展示某些結果,所以只有那些結果會被點,所以模型只學會重複已經展示過的東西。

Active learning 的作用就是讓模型參與自己訓練資料的產生。投影片的表格是 oatmeal 的三筆訓練資料: Matches body 全是 0、Matches title 全是 1。也就是說訓練資料嚴重偏向「標題命中」。Active learning 會用統計方法看出這件事,然後主動去補「body 命中但 title 沒命中」的樣本。
旁邊那兩行註記把它定義得很清楚: 「統計上學出我們的訓練資料缺了什麼」「嚴謹地做探索,而不是只做利用」。Doug 說他們在 AI-Powered Search 課程裡會用一整堂課只講這件事。
8. LLM as a judge: 記得你有兩個迴圈

情境很實際: 你調完排序,結果冒出一批從來沒有人標註過的文件。投影片上畫了個人指著結果問「這些結果好嗎?」右邊表格是 blue suede couch 的四筆文件,其中兩筆的評分欄是問號,旁邊寫著「No label!」和「我們要怎麼評估排序?」
用 LLM judge 拿到即時標註當然很誘人。但 Doug 提醒重點在對齊,而且是兩個迴圈:
- 第一個迴圈(校準): 讓 judge 對齊人類。用人類標註者(或點擊資料)當標準答案,量 LLM judge 跟人類的一致性。這一步是在問「這個 judge 的評分準不準」。
- 第二個迴圈(最佳化): 用校準好的 judge 讓搜尋變好。拿 judge 產生的標註當回饋訊號,去改善搜尋排序。這一步是在問「搜尋結果有沒有變好」。
這兩個迴圈很容易被混成一個。小編覺得這個區分很重要: 如果你跳過第一步直接跑第二步,你其實只是在對一個沒有校準過的評分系統做最佳化,分數會漂亮,但跟人類覺得好不好可能完全脫鉤。Doug 也提到,LLM judge 想解決的其實跟點擊資料、人工標註資料是同一類的偏差問題,不是換一個東西就沒有偏差了。
9. Bi-encoder、cross-encoder、late interaction: 同一條軸的三個位置

Trey 用一個具體例子解釋 bi-encoder 的問題。查詢是 mountain hike,文件講的是 first time snow hiking。Bi-encoder 的做法是把查詢和文件各自獨立編碼成向量: 查詢只有兩個詞,模型無從判斷這是冬天的登山、還是哪一種山、哪一種健行; 文件那邊講的是「第一次在雪地健行」。兩個向量因為編碼的時候彼此看不到對方,算出來的相似度可能就偏低,即使這份文件其實是相關的。
Cross-encoder 的做法不一樣: 把查詢和文件拼在一起送進模型,讓模型同時看到兩邊的內容再判斷相關性。這樣一來,mountain 可以配合 first time 理解成「第一次爬這種山」,snow 和 hike 可以合起來理解成雪地健行。因為模型能同時看到查詢和文件的所有詞,交叉比對之後的相關性判斷明顯更準。代價是每一組(查詢, 文件)配對都要跑一次完整的模型推論,運算成本高到只能拿來重排前幾十筆結果。
Late interaction 落在中間。三者其實是同一條軸上的三個位置,差別在於「查詢和文件的 token 在什麼時候開始互相影響」:
實務上的組合通常是: 用左邊那格做初步召回,用右邊那格重排前幾十筆。
10. Late interaction 為什麼被看好

計分機制叫 MaxSim,其實很直白: 把查詢拆成一個一個 token(詞),每個 token 分別去文件裡找「跟它最像的那個 token」,記下那個最高的相似度分數,最後把查詢裡所有 token 的最高分加總起來,就是這組(查詢, 文件)的相關性分數。投影片的例子是查詢「what town is the capital of France?」對上文件「Paris is the capital city, known for the Eiffel tower.」,右邊那張熱力圖標出每個查詢 token 各自在文件裡最匹配的位置。
Trey 解釋了它為什麼有效: 搜尋領域很早就知道,一份文件如果只是同一個詞重複出現很多次,不見得比「把查詢裡每個詞都涵蓋到」的文件更相關。這種「是否完整覆蓋了查詢的每個面向」的訊號,在 bi-encoder 的單一向量裡很容易整個消失(因為整份文件只用一個向量來代表,細節被平均掉了),而 late interaction 因為保留了每個 token 各自的向量,天然就能判斷「查詢裡的每個詞是不是都被文件涵蓋到了」。他的結論很直接: late interaction 大幅勝過單一向量表示,所以現在這麼熱門。

它在多模態上的應用更有意思。ColPali 的做法是把 PDF 頁面切成一格一格的圖像區塊(patch),每個 patch 一個 embedding,而每個區塊的語意來自它在整份 PDF 裡的位置脈絡。當使用者問「2019 年哪一個小時的總發電量最高?」,hour 這個詞就會亮在文件裡跟小時有關的區塊上; 問「這個鐵電材料的化學式是什麼?」,formula 這個詞會亮在真正寫著化學式的區塊上。對於有版面和結構的 PDF,這比先把整頁轉成純文字再切塊合理得多。
顯而易見的問題是規模: 每個 token 都要存一個向量。Trey 說 Amélie Chatelain 在系列課程裡的專場會講近期的進展,包括把 embedding 的表示壓縮好幾個數量級,以及減少真正需要進索引的向量數量。
11. 多模態搜尋: 用圖片加文字一起查

如果你的模型是在多種模態上訓練的,你就可以跨模態搜尋。Trey 先示範以圖搜圖: 拿一張 DeLorean 的圖當查詢,回傳的是其他 DeLorean,以及一批雙門跑車、燈光風格類似的圖。
更有意思的是組合查詢: 同一張圖再加上文字 superhero,第一名變成《黑豹》站在跑車上,燈光風格一致。他還注意到一件事: 其他回傳的結果就算不是超級英雄,也都是各自故事裡的主角。
實務價值在哪? Trey 點名電商和二手交易平台這種賣家自己上架的場景。商品欄位資料常常缺漏或錯誤,能從圖片裡補回來的資訊就很重要。這跟前面 ipad 那個「製造商欄位被錯標成 iPad」的例子其實是同一個問題的兩種解法。
12. 語意知識圖譜: 你的倒排索引本身就是一個語言模型

核心觀察是: 大部分搜尋引擎裡本來就有兩個索引結構。Inverted index(倒排索引)是從詞查文件: 給一個詞,回傳所有包含這個詞的文件,Elasticsearch 的全文搜尋就靠它。Forward index 則反過來,從文件查詞: 給一份文件,列出它包含哪些詞。有了這兩個,你就能在「詞 → 包含這個詞的文件 → 這些文件裡的其他詞」之間來回走訪,這本身就構成了一張圖。
他的第一個例子是履歷資料: 從 skill 欄位裡的 java 出發,找到含這個技能的文件集合,再走到那些文件裡出現的其他技能,會發現 hibernate 和 scala 很常一起出現,而 oncology(腫瘤學)跟 java 完全沒有交集。用集合的角度看是文件集合有沒有重疊,用圖的角度看就是 java 有一條「has related skill」的邊連到 scala 和 hibernate,而 oncology 是孤立的。
但真正有意思的是下一個例子: 同一個查詢詞 server,放到不同分類底下,語意完全不同。
- devops 分類: nginx 0.70、jenkins 0.70、git 0.69、ssh 0.68
- travel 分類: tipping 0.54、vpn 0.45、tip 0.41、firewall 0.33、restaurant 0.22、bill 0.19、cash 0.18
- scifi 分類: flynn’s 0.53、computer 0.28、grid 0.24、shutdown 0.21、hacker 0.19
travel 那一組很妙: server 在旅遊語境裡是餐廳服務生,所以關聯詞是小費、帳單、現金; 但 vpn 和 firewall 也在裡面,因為出國旅行時你會用 VPN 保護隱私。scifi 那一組則明顯是《電子世界爭霸戰》的詞彙。
另一個例子是 driver: travel 分類下是 taxi 0.72、car 0.66、license 0.61、driving 0.61; devops 分類下是 ipam 0.78、overlayfs 0.74、container_name 0.73、docker 0.68、compose.yml 0.65。
語意知識圖譜可以拿來做很多事: 查詢理解與消歧(判斷使用者搜的 server 到底是哪個意思)、自動補全與查詢建議、同義詞與分類關係的自動建立。其中最直接的應用是查詢改寫,這個技術叫 pseudo relevance feedback(虛擬相關回饋,簡稱 PRF): 先用原始查詢搜一次,從搜到的前幾筆結果裡提取有用的關聯詞,再拿這些關聯詞來擴展原始查詢,讓第二次搜尋更精準。用在語意知識圖譜上效果更好: 使用者搜尋 barbecue near haystack(Haystack 是搜尋相關性領域的研討會名稱),系統從圖譜裡判斷 barbecue 屬於餐廳分類,自動補上關聯詞 ribs、brisket、pork; 但如果查詢是 barbecue grill,就會判斷成戶外家電分類,關聯詞變成 grill、propane、charcoal。同一個詞,根據脈絡產生兩種完全不同的查詢擴展。
編按: PRF 最自然的搭配是 BM25 關鍵字搜尋,因為輸入輸出都是「詞」。在 OpenSearch / Elasticsearch 上可以用兩階段查詢來實作: 第一次用原始查詢搜尋,對 top-k 結果跑
significant_termsaggregation 找出統計上有區別性的詞,再把這些詞加回查詢跑第二次。significant_terms的原理是比較「搜尋結果裡某個詞出現的比例」和「整個索引裡這個詞出現的比例」,比例差異大的詞就被判定為 significant,例如搜尋 java 時 hibernate 在結果裡出現 40% 但在整個索引只有 2%,就會被挑出來; 而 the 到處都有就不會。如果你在做混合搜尋,把 PRF 用在 BM25 那一側來補強召回,是最實際的起點。
Trey 的總結蠻漂亮: 語意知識圖譜本質上就是一個建立在你自己資料上的語言模型,而它其實就只是你的倒排索引。
編按: 語意知識圖譜不需要另外建 graph database,就是用搜尋引擎現有的索引來走訪。在 OpenSearch / Elasticsearch 上,核心操作就是前面 PRF 編按提到的
significant_termsaggregation: 搜尋查詢詞 → 對命中的文件跑significant_terms→ 拿到統計上跟查詢詞高度相關的其他詞。如果文件有分類欄位,加上 filter 就能做到「同一個詞在不同分類下給出不同關聯詞」(就是前面 server 那個例子)。拿到這些關聯詞之後,除了做查詢改寫(PRF),也可以用來做自動補全、同義詞擴展、分類導航等。Trey 的書《AI-Powered Search》有完整實作範例。
13. 為什麼自建的語意圖譜會贏過開箱即用的 SPLADE

這張投影片直接把兩者放在一起對比。左邊是語意知識圖譜,右邊是 SPLADE(一種稀疏詞彙模型),都沒有經過 fine-tune。
查詢 korean bbq,語意知識圖譜給的是: 分類 Korean,關聯詞 korean^0.7754、bbq^0.6716、banchan^0.5534(韓式小菜)、sariwon^0.5211。SPLADE 給的是 korean 2.84、korea 2.56、grill 1.58、dish 1.21、restaurant 1.18、barbecue 0.79、dinner 0.39 這些還算合理的,但也混進了 hotel 0.16、famous 0.11、brand 0.11、diner 0.02。
查詢 lasagna 更明顯。語意知識圖譜給的是分類 Italian,關聯詞 lasagna^0.9193、alfredo^0.3992、pasta^0.3909、italian^0.3742。SPLADE 因為用的是通用語言模型的 tokenizer,lasagna 不在它的基礎詞彙表裡,所以被硬拆成 las / ##ag / ##na 三個子詞片段(subword),模型只能從這三個沒有意義的片段去猜語意,結果跑出 hotel 0.33、club 0.31、location 0.3、festival 0.29 這批跟千層麵完全無關的詞。
Trey 的解釋是: SPLADE 這類模型在公開 benchmark 上表現很好,但一離開它訓練的領域,開箱即用就會跑出像上面 hotel、club 這種完全無關的擴展詞。相對地,語意知識圖譜完全建立在你自己的資料上,不會有「換個領域就不準」的問題。
Q&A 時他又補了一段更強的說法: 課堂上他會示範,光靠 pseudo relevance feedback 這項技術就能大幅勝過混合搜尋,同時打敗純 dense 和純 lexical 的做法。而且這件事已經成立很多年了,前提是你真的去做領域專屬的相關性,真的了解你的使用者、你的內容、你的領域。
14. Wormhole vectors: 用一個向量空間的結果去查另一個向量空間

這是 Trey 自己在推的方向。傳統混合搜尋是兩邊各查一次再想辦法合併; wormhole vectors 的做法是用一邊的結果去產生另一邊的查詢。投影片列了五個步驟:
- 在目前的向量空間裡查詢
- 找到一組相關的文件
- 從這組文件推導出一個 wormhole 向量,對應到另一個向量空間裡的某個區域
- 帶著那個查詢跨到另一個向量空間
- 需要的話重複多次
圖上畫了三個空間: 稀疏詞彙空間、稠密語意空間、行為空間。也就是說使用者行為訊號也是一個可以被查詢的空間。
實際例子還是 korean bbq: 你可以從關鍵字查詢出發,拿到一組文件,用 pseudo relevance feedback 產生一個改寫過的稀疏查詢; 也可以從 embedding 出發,拿到一組文件,反過來產生一個詞彙表示丟回倒排索引。兩個方向都成立。
小編覺得這個想法有意思的地方在於: 前面提到的 pseudo relevance feedback(從搜尋結果裡提取資訊來改善查詢)是 1970 年代就有的技術,但 wormhole vectors 把它用在「跨表示空間」這件事上。傳統混合搜尋是兩邊各跑各的、最後合併排名清單; 而 wormhole vectors 是讓一邊的搜尋結果直接去指引另一邊該搜什麼,兩種搜尋之間有了因果關係,不只是並行加總。
15. Semantic IDs: 把 embedding 空間變成一個分類階層

Doug 講的這段動機很清楚: embedding 空間本身是有結構的,投影片上那張電影散點圖,左上角一看就是兒童電影。但 LLM 是用 token 在思考的,它沒辦法直接用一個 embedding 空間。
做法是把整個 embedding 空間用階層式分群(hierarchical clustering)一層一層往下切: 最上層是「所有電影」這個很寬的類別,第二層切出兒童、動作、獨立製片等較窄的區域,再繼續往下切到單一部電影。這樣每部電影就得到一個有語意結構的 ID: movie → kid → pixar → toys(《玩具總動員》),實際存的是 t123 → t5125 → … 這種 token 序列。因為 ID 本身就是一串 token,LLM 可以直接用它來推理和檢索,不用去處理高維向量。
Doug 自己也點出來了: 這跟搜尋界做了幾十年的分類法(taxonomy)非常像,差別只在於它是拿來組織 embedding 空間,好讓檢索更實際、也好讓 LLM 用得上。系列課程裡 Kim Falk 會從推薦系統的角度深入這個題目。
16. Hypencoder: 查詢產生的不是向量,是一整個神經網路

這是整場最新、也最不成熟的一個題目。一般的向量搜尋是: 文件編成向量、查詢編成向量、算內積。表達力有限,因為不管查詢和文件多複雜,最後都只用一個向量來代表再比較。Cross-encoder 能看到完整脈絡所以準,但每組配對都要跑一次模型推論所以貴。
Hypencoder 試圖在兩者之間找到新的平衡點: 文件這邊照樣預先編成 embedding,但查詢編碼器輸出的不是一個向量,而是一個小型神經網路的權重。這個查詢專屬的小網路(投影片上叫 q-net)直接拿文件 embedding 當輸入、輸出相關性分數。
Doug 覺得這個設計很有創意: 一般做法是把模型權重固定住,只讓輸入(查詢和文件)變動; 這裡是反過來,權重本身隨查詢動態產生,等於替每一個查詢即時生成一個專屬的「這個查詢覺得什麼文件好」的評分函數。
論文是 Hypencoder: Hypernetworks for Information Retrieval(Julian Killingback、Hansi Zeng、Hamed Zamani)。Doug 的評價是近兩年資訊檢索領域最有意思的方向之一,但他在 Q&A 裡也講得很白: 這東西他明天不會放進生產環境,太新太實驗性。Vespa 的 Andreas Eriksen 已經實作並做了不少最佳化,系列課程裡有他的專場。
17. 量化: 顧問到現場問的第一個問題

Trey 說他去顧問客戶的搜尋系統時,第一件事就是問對方有沒有在做量化(quantization,降低每個數字的精度來省空間和加速運算)。如果對方一臉茫然,他馬上就知道自己大概可以幫他們省下 75% 的月帳單,同時提升速度和吞吐量。
投影片拿《AI-Powered Search》的書封當例子: 完整精度(每個維度用 Float32,佔 4 bytes)、純量量化(降到 Float16、Int8、Int4)、二元量化(每個維度只用 1 bit)。就像一張照片從全彩降到 256 色再降到黑白,雖然細節少了,你還是認得出這是哪本書。以搜尋排序的目的來說,真正影響排名的資訊幾乎沒有損失。
實際數字: int8 的 embedding 索引大小比 float32 改善 74.99%,recall(搜到的正確結果佔全部正確結果的比例)是 0.9289,而經過重排之後的 recall 是 1.0。也就是說量化壓縮損失的那一點精度,用重排就補回來了。
課程裡還會講 product quantization(可以壓到比 1 bit 更少)、Matryoshka representation learning(可變長度 embedding,可以直接截斷後段)、以及 Qdrant 在推的 TurboQuant。
Trey 特別提醒一件容易混淆的事: 量化可以用在 embedding,也可以用在 LLM 的模型參數上,但兩者要看的指標完全不同。embedding 量化看的是索引大小和 recall(壓縮後還能找回多少比例的正確結果); LLM 量化看的是 perplexity(語言品質)、首個 token 延遲(TTFT)、token 間延遲(ITL)、端到端延遲和吞吐量。兩者的取捨考量完全不同。
18. Q&A: 為什麼舊技術現在回來了
最後的問答有一個好問題,而且問題本身的設定就很到位: 清單上有些題目確實很新、還沒被好好探索; 但也有些其實很舊,只是以前太貴,因為 LLM 的關係現在才變得可行也實際。那麼,哪些屬於後面這一類?
Trey 給的具體答案是知識圖譜。他 2013 到 2015 年就在做語意知識圖譜,那時候 word2vec 才剛出來。知識圖譜一直是做實體比對的重要方法: 關鍵字搜尋比對的是詞、embedding 比對的是概念,但那種「需要在不同實體和關係之間跳接才能回答」的查詢,沒有知識圖譜或多輪循環的 agent 就很難做。
問題出在哪? 他說建起來不難,難的是要寫出「可以泛化地拿來做搜尋」的查詢樣式。你可以窮舉出幾種固定的查詢樣式,但很難做出能任意走訪知識圖譜去找答案的東西。
有了 agent 之後,我們終於可以任意生成對知識圖譜的查詢,營運知識圖譜的成本因此大幅下降。這就是知識圖譜這兩年重新出現的原因。他也順帶提醒,reflected intelligence、signals boosting、協同過濾、矩陣分解、learning to rank 這些技術其實從來沒有消失過,只是這幾年大家的注意力都轉去用開箱即用的 embedding 模型了。
小編的收尾
這場的形式是清單,但真正的訊息在優先順序上: 18 個題目裡,哪些該先做、哪些只要先知道就好。小編根據兩位講者在演講和 Q&A 裡的判斷,整理成這張表:
| 技術 | 成熟度 | 現在就做? | 簡評 |
|---|---|---|---|
| Sparse vs. Dense | 概念框架 | 🟢 該做 | 不是二選一,是一條光譜,重點是混合使用、互補不足 |
| Hybrid Search | 成熟 | 🟢 該做 | 業界基本盤,大部分公司已經在做或正在轉 |
| Reflected Intelligence | 概念框架 | 🟢 該做 | 使用者行為訊號是最被忽略的資訊來源(以下四項都屬於它) |
| Signals Boosting | 成熟 | 🟢 該做 | 講者推薦「如果只能做一件事」的首選,投報率最高 |
| Quantization | 成熟 | 🟢 該做 | 可以省 75% 索引成本,幾乎不損失 recall,馬上見效 |
| Cross-encoders | 成熟 | 🟢 該做 | 成熟的重排技術,有現成模型可以直接用 |
| Learning to Rank | 成熟 | 🟡 有資料就做 | 電商圈主流,前提是你有足夠的行為資料來訓練 |
| Agentic Search | 快速成熟中 | 🟡 值得投入 | 正在取代傳統 RAG 架構,生態工具越來越多 |
| Semantic Knowledge Graphs | 成熟 | 🟡 值得投入 | 存在很多年,PRF 能勝過混合搜尋,但需要自己建 |
| LLM as a Judge | 可用但要小心 | 🟡 值得投入 | 解決缺乏標註的問題,但要先校準(兩個迴圈) |
| Active Learning | 成熟 | 🟡 值得投入 | 解決呈現偏差,需要搭配行為訊號一起做 |
| Late Interaction | 快速發展中 | ⚪ 先知道 | 效果大幅勝過單一向量,但儲存規模問題待解 |
| Multimodal Search | 可用 | ⚪ 看場景 | 電商、有圖片的場景有用,其他場景不急 |
| Collaborative Filtering | 成熟 | ⚪ 看資料量 | 需要大量使用者行為資料才做得起來 |
| SPLADE | 可用但有限 | ⚪ 先知道 | 開箱即用在你的領域可能效果很差,需要 fine-tune |
| Semantic IDs | 早期 | ⚪ 先知道 | 讓 LLM 能用 embedding 空間的新方向 |
| Wormhole Vectors | 研究階段 | ⚪ 先知道 | 跨表示空間的 PRF,概念有趣但還在研究 |
| Hypencoder | 實驗性 | ⚪ 先知道 | 講者明確說不會放進生產環境,太新 |
兩位在搜尋圈待了快二十年的人,花一小時介紹了 18 個題目,其中不乏 wormhole vectors、hypencoder 這種很新的東西。然後在被問到「如果只能先做一件事」的時候,他們的答案是 signals boosting: 一個存在很多年、實作起來只是在對查詢統計點擊次數的技術。
小編覺得這對做 RAG 的人是一個蠻直接的提醒。前沿值得知道,因為它告訴你之後該往哪裡挖; 但決定你的檢索好不好用的,通常還是那幾件不新的事: 你有沒有在收使用者行為訊號、你的排序有沒有針對自己的領域調過、你的向量有沒有做量化。這三件事沒有一件需要等新論文。
另一個值得記下來的是 Trey 那句「語意知識圖譜就是建立在你自己資料上的語言模型,而它其實就只是你的倒排索引」。AI 搜尋這幾年的討論很容易讓人覺得答案都在外面: 換一個更好的 embedding 模型、接一個更強的重排模型。但這場一再回到同一個結論: 開箱即用的模型在 benchmark 上很好看,一進到你的領域就會跑出 hotel、club、location 這種雜訊。真正贏過它們的東西,是建立在你自己資料上的。