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