詳細解釋
使用稠密向量(神經嵌入)而非稀疏向量(TF-IDF/BM25)進行信息檢索的方法,基於語義相似度而非關鍵詞匹配。
稀疏 vs 稠密:
- 稀疏:維度高(詞表大小),大多數為 0,關鍵詞匹配
- 稠密:維度低(256-1024),全部非零,語義匹配
技術原理:
- 編碼器:BERT、RoBERTa 將文檔和查詢編碼為向量
- 相似度:余弦相似度或點積
- 索引:近似最近鄰(ANN)加速搜索(FAISS、HNSW)
訓練方法:
- 雙編碼器:查詢和文檔獨立編碼,快速但準確率較低
- 交叉編碼:查詢和文檔一起編碼,準確但慢(用於重排序)
- 對比學習:拉近正樣本,推遠負樣本
代表模型:
- DPR(Dense Passage Retrieval):Facebook 的開創性工作
- Contriever:無監督對比學習
- GTR(Google Text Representation):T5 基礎
- BGE、E5:當前開源最強
- OpenAI Embedding API:text-embedding-3
優勢:
- 語義理解:「車」和「汽車」距離近
- 跨語言:多語言模型支持跨語言檢索
- 魯棒性:拼寫錯誤、同義詞不影響
劣勢:
- 計算成本:編碼和索引比稀疏方法貴
- 可解釋性:不知為何匹配(黑盒)
- 精確匹配:ID、代碼、專有名詞可能不如 BM25
現代 RAG:通常稀疏 + 稠密混合,各取所長。