向量數(shù)據(jù)庫定義
向量數(shù)據(jù)庫是將信息存儲為向量的數(shù)據(jù)庫,向量是數(shù)據(jù)對象的數(shù)值表示,也稱為向量嵌入。 它利用這些向量嵌入的強大功能來對非結構化數(shù)據(jù)和半結構化數(shù)據(jù)(例如圖像、文本或傳感器數(shù)據(jù))的海量數(shù)據(jù)集進行索引和搜索。 向量數(shù)據(jù)庫是為了管理向量嵌入而構建的,因此為非結構化和半結構化數(shù)據(jù)的管理提供了完整的解決方案。
向量數(shù)據(jù)庫與向量搜索庫或向量索引不同:它是一種數(shù)據(jù)管理解決方案,支持元數(shù)據(jù)存儲和過濾、可擴展、允許動態(tài)數(shù)據(jù)更改、執(zhí)行備份并提供安全功能。
向量數(shù)據(jù)庫通過高維向量來組織數(shù)據(jù)。 高維向量包含數(shù)百個維度,每個維度對應于它所表示的數(shù)據(jù)對象的特定特征或屬性。
什么是向量嵌入?
向量嵌入是主題、單詞、圖像或任何其他數(shù)據(jù)的數(shù)字表示。 向量嵌入(也稱為嵌入)由大型語言模型和其他人工智能模型生成。
每個向量嵌入之間的距離使向量數(shù)據(jù)庫或向量搜索引擎能夠確定向量之間的相似性。 距離可以代表數(shù)據(jù)對象的多個維度,從而使機器學習和人工智能能夠理解模式、關系和底層結構。
了解如何部署文本嵌入
更多關于向量嵌入的知識,請閱讀文章 “Elasticsearch:什么是向量嵌入?”。
向量數(shù)據(jù)庫如何工作?
向量數(shù)據(jù)庫通過使用算法來索引和查詢向量嵌入來工作。 該算法通過哈希、量化或基于圖的搜索來實現(xiàn)近似最近鄰 (ANN) 搜索。
為了檢索信息,人工神經(jīng)網(wǎng)絡搜索會找到查詢的最近向量鄰居。 與 kNN 搜索(已知最近鄰,或真正的 k 最近鄰算法)相比,計算強度較小,近似最近鄰搜索的準確度也較低。 然而,它對于高維向量的大型數(shù)據(jù)集可以高效且大規(guī)模地工作。
向量數(shù)據(jù)庫管道如下所示:
1)索引:通過哈希、量化或基于圖的技術,向量數(shù)據(jù)庫通過將向量映射到給定的數(shù)據(jù)結構來對向量進行索引。這使得搜索速度更快。
- 哈希:哈希算法,比如局部敏感哈希(LSH)算法,最適合進行近似最近鄰搜索,因為它能夠提供快速而近似的結果。LSH 使用哈希表(類似數(shù)獨謎題)來映射最近鄰。查詢將被哈希到一個表中,然后與同一表中的一組向量進行比較,以確定相似性。
- 量化:量化技術,比如產(chǎn)品量化(PQ),將向量分解為較小的部分,并用代碼表示這些部分,然后將部分重新組合。結果是向量及其組件的代碼表示。這些代碼的集合被稱為碼書(codebook)。在查詢時,使用量化的向量數(shù)據(jù)庫將查詢分解為代碼,然后與碼書進行匹配,以找到最相似的代碼生成結果。
- 基于圖:圖算法,比如分層可導航小世界(HNSW)算法,使用節(jié)點表示向量。它對節(jié)點進行聚類,并在相似節(jié)點之間繪制線條或邊緣,創(chuàng)建層次圖。當發(fā)起查詢時,算法將導航圖層次結構,以找到包含與查詢向量最相似的向量的節(jié)點。
向量數(shù)據(jù)庫還將索引數(shù)據(jù)對象的元數(shù)據(jù)。 因此,向量數(shù)據(jù)庫將包含兩個索引:向量索引和元數(shù)據(jù)索引。
2)查詢:當向量數(shù)據(jù)庫收到查詢時,它將索引向量與查詢向量進行比較,以確定最近的向量鄰居。 為了建立最近鄰,向量數(shù)據(jù)庫依賴于稱為相似性度量的數(shù)學方法。 存在不同類型的相似性方法:
- 余弦相似度在 -1 到 1 的范圍內(nèi)建立相似度。通過測量向量空間中兩個向量之間的角度的余弦,它可以確定向量是完全相反的(用 -1 表示)、正交的(用 0 表示)或 相同(用 1 表示)。
- 歐氏距離通過測量向量之間的直線距離來確定 0 到無窮大范圍內(nèi)的相似度。 相同的向量用0表示,而較大的值表示向量之間的差異較大。
- 點積相似性方法確定負無窮大到無窮大范圍內(nèi)的向量相似性。 通過測量兩個向量的大小和它們之間角度的余弦的乘積,點積將負值分配給彼此遠離的向量,將 0 分配給正交向量,將正值分配給指向相同方向的向量。
3)后處理:向量數(shù)據(jù)庫管道中的最后一步有時是后處理或后過濾,在此期間向量數(shù)據(jù)庫將使用不同的相似性度量來重新排列最近的鄰居。 在此階段,數(shù)據(jù)庫將根據(jù)元數(shù)據(jù)過濾搜索中識別的查詢最近鄰居。
某些向量數(shù)據(jù)庫可能會在運行向量搜索之前應用過濾器。 在這種情況下,它被稱為預處理或預過濾。
為什么向量數(shù)據(jù)庫很重要?
向量數(shù)據(jù)庫很重要,因為它們保存向量嵌入并支持一系列功能,包括索引、距離度量和相似性搜索。 換句話說,向量數(shù)據(jù)庫專門用于非結構化數(shù)據(jù)和半結構化數(shù)據(jù)的管理。 因此,向量數(shù)據(jù)庫是機器學習和人工智能數(shù)字領域的重要工具。
向量數(shù)據(jù)庫核心組件
向量數(shù)據(jù)庫可能具有以下核心組件:
- 性能和容錯:分片和復制過程確保向量數(shù)據(jù)庫的高性能和容錯性。 分片涉及跨多個節(jié)點對數(shù)據(jù)進行分區(qū),而復制涉及跨不同節(jié)點制作數(shù)據(jù)的多個副本。 如果節(jié)點發(fā)生故障,這可以實現(xiàn)容錯和持續(xù)的性能。
- 監(jiān)控能力:為了確保性能和容錯能力,向量數(shù)據(jù)庫需要監(jiān)控資源使用情況、查詢性能和整體系統(tǒng)運行狀況。
- 訪問控制能力:向量數(shù)據(jù)庫也需要數(shù)據(jù)安全管理。 訪問控制監(jiān)管可確保合規(guī)性、責任性以及審核數(shù)據(jù)庫使用情況的能力。 這也意味著數(shù)據(jù)受到保護:擁有權限的人可以訪問數(shù)據(jù),并且保留用戶活動的記錄。
- 可擴展性和可調(diào)性:良好的訪問控制功能會影響向量數(shù)據(jù)庫的可擴展性和可調(diào)性。 隨著存儲數(shù)據(jù)量的增加,水平擴展的能力變得必不可少。 不同的插入和查詢速率以及底層硬件的差異都會影響應用程序的需求。
- 多用戶和數(shù)據(jù)隔離:在具備可擴展性和訪問控制功能的同時,向量數(shù)據(jù)庫應該能夠容納多用戶或多租戶。 與此相一致,向量數(shù)據(jù)庫應該啟用數(shù)據(jù)隔離,以便任何用戶活動(例如插入、刪除或查詢)對其他用戶保持私有 —— 除非另有要求。
- 備份:向量數(shù)據(jù)庫創(chuàng)建定期數(shù)據(jù)備份。 這是向量數(shù)據(jù)庫在系統(tǒng)發(fā)生故障時的關鍵組件 —— 在數(shù)據(jù)丟失或數(shù)據(jù)損壞的情況下,備份可以幫助將數(shù)據(jù)庫恢復到以前的狀態(tài)。 這可以最大限度地減少停機時間。
- API 和 SDK:向量數(shù)據(jù)庫使用 API 來實現(xiàn)用戶友好的界面。 API 是一種應用程序編程接口或一種軟件,它使應用程序能夠通過請求和響應相互 “對話”。 API 層簡化了向量搜索體驗。 SDK(即軟件開發(fā)工具包)通常包含 API。 它們是數(shù)據(jù)庫用于通信和管理的編程語言。 SDK 有助于開發(fā)人員友好地使用向量數(shù)據(jù)庫,因為它們在開發(fā)特定用例(語義搜索、推薦系統(tǒng)等)時不必擔心底層結構。
向量數(shù)據(jù)庫和傳統(tǒng)數(shù)據(jù)庫有什么區(qū)別?
傳統(tǒng)數(shù)據(jù)庫以表格形式存儲信息,并通過為數(shù)據(jù)點分配值來索引數(shù)據(jù)。 當查詢時,傳統(tǒng)數(shù)據(jù)庫將返回與查詢完全匹配的結果。
向量數(shù)據(jù)庫以嵌入的形式存儲向量并啟用向量搜索,向量搜索根據(jù)相似性指標(而不是精確匹配)返回查詢結果。 向量數(shù)據(jù)庫在傳統(tǒng)數(shù)據(jù)庫無法做到的地方“提升”了:它被有意設計為與向量嵌入一起操作。
向量數(shù)據(jù)庫也比傳統(tǒng)數(shù)據(jù)庫更適合某些應用,例如相似性搜索、人工智能和機器學習應用,因為它支持高維搜索和定制索引,并且具有可擴展性、靈活且高效。
向量數(shù)據(jù)庫的應用
向量數(shù)據(jù)庫用于人工智能、機器學習 (ML)、自然語言處理 (NLP) 和圖像識別應用。
- AI/ML應用:向量數(shù)據(jù)庫可以通過語義信息檢索和長期記憶來提高 AI 能力。
- NLP 應用:向量相似性搜索是向量數(shù)據(jù)庫的關鍵組成部分,對于自然語言處理應用非常有用。 向量數(shù)據(jù)庫可以處理文本嵌入,這使計算機能夠 “理解” 人類或自然語言。
- 圖像識別和檢索應用:向量數(shù)據(jù)庫將圖像轉換為圖像嵌入。 通過相似性搜索,他們能夠檢索相似的圖像或識別匹配的圖像。
向量數(shù)據(jù)庫還可以服務于異常檢測和人臉檢測應用。
向量數(shù)據(jù)庫的未來趨勢
向量數(shù)據(jù)庫的未來與人工智能和機器學習的發(fā)展以及與使用深度學習為結構化和非結構化數(shù)據(jù)生成更強大的嵌入相關的研究密切相關。
隨著創(chuàng)建更好嵌入的能力的提高,向量數(shù)據(jù)庫更好地處理和管理這些嵌入的能力需要新的技術和算法。 事實上,此類新方法一直在開發(fā)中。
其他研究致力于混合數(shù)據(jù)庫的開發(fā)。 這些旨在結合傳統(tǒng)關系數(shù)據(jù)庫和矢量數(shù)據(jù)庫的強大功能,以滿足對高效和可擴展數(shù)據(jù)庫日益增長的需求。
Elasticsearch 的向量數(shù)據(jù)庫
Elasticsearch 包含一個用于向量搜索的向量數(shù)據(jù)庫。 Elastic 使開發(fā)人員能夠使用 Elasticsearch 相關性引擎 (ESRE) 構建自己的向量搜索引擎。
借助 Elasticsearch 工具,你可以構建一個向量搜索引擎,該引擎可以搜索非結構化和結構化數(shù)據(jù)、應用過濾器和分面、對文本和矢量數(shù)據(jù)應用混合搜索,并利用文檔和字段級安全性,同時在本地運行 云或混合環(huán)境中。文章來源:http://www.zghlxwxcb.cn/news/detail-812008.html
探索 Elasticsearch 向量數(shù)據(jù)庫文章來源地址http://www.zghlxwxcb.cn/news/detail-812008.html
向量數(shù)據(jù)庫資源
- Elasticsearch 向量數(shù)據(jù)庫
- Elastic 的向量搜索原理
- 閱讀有關 ANN 算法的更多信息
- 了解如何實現(xiàn)圖像相似度搜索
到了這里,關于Elasticsearch:什么是向量數(shù)據(jù)庫?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!