基于milvus向量數(shù)據(jù)庫(kù)的相似度檢索問題——稀疏-密集向量檢索和混合搜索 原創(chuàng)
“ 不同的向量類型可能會(huì)得到不同的檢索結(jié)果,因此需要根據(jù)不同的場(chǎng)景選擇合適的檢索策略 ”
相似度檢索是目前人工智能領(lǐng)域一個(gè)非常重要的應(yīng)用場(chǎng)景,其不僅僅應(yīng)用于人工智能技術(shù),同樣應(yīng)用于搜索技術(shù);比如搜索引擎,電商搜索等多種技術(shù)領(lǐng)域。
因此,向量數(shù)據(jù)庫(kù)也成為現(xiàn)在技術(shù)領(lǐng)域不可缺少的一個(gè)中間件;雖然說(shuō)向量檢索主要就是進(jìn)行向量計(jì)算,不管是余弦,還是歐式距離等算法,目的都是通過(guò)計(jì)算向量之間的位置關(guān)系來(lái)確定相似度。
但這里就產(chǎn)生了一個(gè)問題,使用稠密向量和稀疏向量檢索會(huì)得到不一樣的結(jié)果;而使用混合搜索技術(shù)又會(huì)產(chǎn)生另一種結(jié)果。
因此,這里就涉及到向量數(shù)據(jù)庫(kù)在不同的應(yīng)用場(chǎng)景下的檢索策略的選擇;什么情況下應(yīng)該選擇稠密向量,什么情況下應(yīng)該選擇稀疏向量,而什么情況下又應(yīng)該選擇混合搜索。
相似度檢索的策略問題
milvus向量數(shù)據(jù)庫(kù)支持多種類型的度量方式,常見的有余弦和歐式距離;使用不同的度量算法其結(jié)果也不盡相同,而且有的算法是值越大越好,而有的算法卻是值越小越好。
而我們今天討論的不是值大小問題,而是不同向量類型之間的檢索策略問題。
在Milvus中有兩種經(jīng)典的向量類型,稠密向量和稀疏向量;不同類型的向量可以表示不同的信息,使用不同的嵌入模型可以更全面地表示數(shù)據(jù)的不同特征和方面。
而稠密向量和稀疏向量的主要區(qū)別是,表示語(yǔ)義的密集向量和表示句子中詞頻的稀疏向量。
因此,稠密向量類型和稀疏向量類型,使用的是兩種完全不同的搜索方式;稠密向量一般使用機(jī)器學(xué)習(xí)模型,也就是Embedding模型生成語(yǔ)義相關(guān)的向量數(shù)據(jù);而稀疏向量一般使用的是詞袋模型或BM25算法。
在milvus向量檢索中,返回值中會(huì)有一個(gè)距離值(distance),在某些情況下使用稠密向量,稀疏向量或者混合搜索的方式可能搜索到的結(jié)構(gòu)都是一樣的。
但其距離值distance的值卻是不一樣的,在某些情況下可能混合搜索策略的距離值更大,而某些情況下普通檢索的距離值更大;當(dāng)然,前提是使用了同樣的計(jì)算策略,比如說(shuō)余弦函數(shù)。
那么什么情況下應(yīng)該選擇稠密向量類型,什么情況下應(yīng)該選擇稀疏向量類型?
由于稠密向量主要進(jìn)行的是語(yǔ)義檢索,而稀疏向量主要進(jìn)行的關(guān)鍵詞匹配;所以,在選擇上我們需要從多個(gè)方面進(jìn)行考慮。
核心對(duì)比:稠密向量 vs 稀疏向量
維度 | 稠密向量 | 稀疏向量 |
生成方式 | 深度學(xué)習(xí)模型(如 BERT、ResNet) | 詞頻統(tǒng)計(jì)方法(如 TF-IDF、BM25) |
維度 | 低維(如 384、768 維) | 高維(如 10萬(wàn)+ 維,大部分為0) |
語(yǔ)義理解 | ?????(捕捉上下文語(yǔ)義) | ?(僅關(guān)鍵詞匹配) |
關(guān)鍵詞敏感度 | ??(可能忽略術(shù)語(yǔ)細(xì)節(jié)) | ?????(精確匹配關(guān)鍵詞) |
計(jì)算開銷 | 高(需模型推理) | 低(直接統(tǒng)計(jì)計(jì)算) |
適用場(chǎng)景 | 語(yǔ)義搜索、跨模態(tài)檢索、長(zhǎng)文本理解 | 短文本搜索、精確術(shù)語(yǔ)匹配、日志分析 |
Milvus 索引支持 | IVF_FLAT, HNSW, DISKANN 等 | SPARSE_INVERTED_INDEX |
當(dāng)然,稠密向量搜索和稀疏向量搜索并不是非此即彼的關(guān)系,在某些場(chǎng)景下可以使用混合搜索的方式,也就是同時(shí)使用稠密向量和稀疏向量進(jìn)行搜索。
總結(jié)建議
場(chǎng)景 | 推薦方案 | 案例 |
長(zhǎng)文本、語(yǔ)義理解 | 純稠密向量 | 法律文檔語(yǔ)義檢索 |
短文本、精確關(guān)鍵詞匹配 | 純稀疏向量 | 商品型號(hào)搜索 |
復(fù)雜需求、混合意圖 | 混合搜索 | 電商搜索(“性價(jià)比 5G 手機(jī)”) |
資源有限、延遲敏感 | 稀疏向量 | 日志實(shí)時(shí)分析 |
本文轉(zhuǎn)載自公眾號(hào)AI探索時(shí)代 作者:DFires
