iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
AI & Data

RAG × Agent:從知識檢索到智慧應用的30天挑戰系列 第 8

Day 8|檢索方式——AI 應該怎麼樣選擇「誰來幫它找資料」呢?

  • 分享至 

  • xImage
  •  

Day 7|Generation pipeline:AI 如何把知識取出來用 有說到檢索方式其實有很多種,今天就來介紹幾種常見的檢索方式。


1. TF-IDF(term frequency–inverse document frequency)

這邊我們可以把這個詞拆分成兩個部分:

  • TF(詞頻):看這個詞在某篇文章裡出現的多不多。常出現的話 → 代表它對這篇文章可能很重要。
  • IDF(逆向檔案頻率):看這個詞是不是在「所有文章」裡到處都會出現。如果大家文章裡都有,那就沒有什麼代表性;如果只有少數文章才有,那就更能凸顯這篇文章的特色。

TF × IDF = TF-IDF:結合起來,就能找到「在這篇文章常出現,但在整個資料庫很少出現」的詞,通常就是這篇文章的關鍵詞。

舉例來說:
「the」這個詞在英文文章中到處都有 → TF 高、IDF 低 → TF-IDF 低。
「cybersecurity」在某一篇資安論文中出現很多,但在一般文章不常見 → TF 高、IDF 高 → TF-IDF 高。

因此,TF-IDF 能幫我們挑出關鍵詞,常用於搜尋引擎或文件檢索;但因為沒有考慮上下文與語意,對 RAG 這種需要「理解語意」的應用就比較不合適。

2. BM25 (Best Matching 25)

有了先前 TF-IDF 的基礎,BM25 這邊加上一個概念,就是「邊際效益遞減」,其實白話說明就是如果這個單字在這個文章裡面出現了 10 次就就跟他出現了 100 次,,其實重要性差不多,沒有必要因為它一直重複就讓分數無限升高。
這樣的設計能避免「詞頻太高就誤判為更相關」的情況,讓檢索結果更合理。
此外,BM25 也會考慮文章長短,避免長文章因為字多就被判定更相關,讓檢索更公平。

總結來說,BM25 是 TF-IDF 的改良版,讓重複詞不會無限加分,並且考慮文章長短,讓排序更公平。
所以在 RAG 中它常用來做 初步檢索 (first-stage retrieval),快速篩出候選文件,再交給更強的模型排序。

3. 密集檢索 (Dense Retrieval)

傳統方法(TF-IDF、BM25)主要依賴「字詞的出現次數」來判斷相關性,而不是理解字詞背後的「語意」,但密集檢索的關鍵是用 Embedding(向量表示) 把查詢與文件轉換成數值空間的向量,再用數學方式(餘弦相似度、點積、歐式距離)來衡量「語意」上的相似程度。

這也是大部分 RAG 系統的核心檢索器,有時實務上常跟 BM25 混合使用 (Hybrid Retrieval),確保既有語意,又不會漏掉關鍵詞。


當然還有很多種檢索方式,今天就簡單介紹到這邊!


上一篇
Day 7|Generation pipeline:AI 如何把知識取出來用
系列文
RAG × Agent:從知識檢索到智慧應用的30天挑戰8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言