什么是相似性搜索?大模型的底座技術 原創
說到相似性搜索可能有些人聽說過這個詞,而有些人可能都沒聽過這個詞;相似性搜索可能很多人都不清楚,但語義搜索應該很多人都聽說過;在某種條件下,可以把相似性搜索等價于語義搜索;但相似性搜索又不完全等價于語義搜索。
今天,我們就來一起聊一下什么是相似性搜索,這個RAG技術中的大殺器,也是人工智能時代不可或缺的一個技術。
相似性搜索
在傳統的計算機技術中,絕大部分搜索都是通過字符匹配實現的;最常見的就是我們在搜索引擎中輸入某個問題,然后會得到一些響應,這些響應中就包含你搜索的關鍵字;這個就是字符匹配。
而如果是做過技術的人,一定知道什么是字符匹配了;最典型的就是SQL語句,根據某個字符串查詢數據。
但相似性搜索有一個很明顯的缺點,那就是不能根據語義進行搜索;還拿四大名著來說,如果使用字符匹配的方式進行搜索。
比如說輸入孫悟空,那么就只能搜索到與孫悟空三個字相關的內容;但孫猴子,齊天大圣這些和孫悟空有關的內容可能就搜索不到了。
而相似性搜索是什么樣的?
比如你搜索——一只和尚帶著一只猴子,一頭豬經歷多重困難的故事;這時就應該能搜索到西游記;雖然里面沒有提到任何和孫悟空,唐僧等有關的東西,但根據語義理解這就是四大名著之一的西游記。
這就是語義搜索。
顯而易見語義搜索的好處是什么?
語義搜索能夠讓計算機更好的理解人類的語言和需求;它能夠根據你的語義理解你想做什么;而不是你必須給出明確的指令,它才能明白你想做什么。
比如說,我忙了一天了腳不沾地,又餓又困累;這時人工智能就能明白你是想吃飯了;吃完飯之后需要洗個澡,然后好好的睡一覺。而不是說告訴它,我要吃飯,然后它讓你去吃飯;我要洗澡,然后讓你去洗澡;我要睡覺,然后讓你去睡覺。
語義理解是自然語言的基礎,也是實現人工智能必不可少的一環;因為語義理解是人類與機器打交道的通道。
所以,語義理解就是相似性搜索的一個重要應用;但為什么說相似性搜索和語義搜索又不完全一樣呢?
原因在于,相似性搜索還可以應用到圖像搜索,混合搜索,只能推薦等多種應用場景。
那怎么才能實現這個相似性搜索呢?
要想實現相似性搜索,那么就不得不提的一個東西,那就是——向量。
向量由于其強大的功能特性,廣泛應用于人工智能的各種場景中;而相似性搜索作為人工智能領域的重要環節,向量就成了其必不可少的一項工具。
在之前的互聯網行業中,大部分都是結構化的數據,比如關系型數據庫;但隨著互聯網技術的發展,非結構化數據變得越來越多,比如圖像,音視頻,圖文混合等等多種類型的數據格式。
這時,不同格式的數據處理起來就成為一件很麻煩的事;更重要的是這些數據雖然是非格式化的,但并不代表著這些數據是沒有關系的數據。
因此,具體怎么處理這些不同類型的數據,就成為了一個難點;后來發現向量特別適合于這種場景,技術人員只需要把文本等數據轉化為向量表示的數據即可。
而后,計算機就可以根據不同向量之間的關系,如距離,長度,方向等去計算不同格式數據之間的相關性。
而現在實現的相似性搜索,主要就是通過歐式距離和余弦相似度等算法來計算不同向量之間的關系,最后實現語義搜索。
本文轉載自公眾號AI探索時代 作者:DFires
原文鏈接:??https://mp.weixin.qq.com/s/xQOHmUeiXQ7p3sOsdf1VAg??
