什么是相似性搜索?大模型的底座技术 原创
说到相似性搜索可能有些人听说过这个词,而有些人可能都没听过这个词;相似性搜索可能很多人都不清楚,但语义搜索应该很多人都听说过;在某种条件下,可以把相似性搜索等价于语义搜索;但相似性搜索又不完全等价于语义搜索。
今天,我们就来一起聊一下什么是相似性搜索,这个RAG技术中的大杀器,也是人工智能时代不可或缺的一个技术。
相似性搜索
在传统的计算机技术中,绝大部分搜索都是通过字符匹配实现的;最常见的就是我们在搜索引擎中输入某个问题,然后会得到一些响应,这些响应中就包含你搜索的关键字;这个就是字符匹配。
而如果是做过技术的人,一定知道什么是字符匹配了;最典型的就是SQL语句,根据某个字符串查询数据。
但相似性搜索有一个很明显的缺点,那就是不能根据语义进行搜索;还拿四大名著来说,如果使用字符匹配的方式进行搜索。
比如说输入孙悟空,那么就只能搜索到与孙悟空三个字相关的内容;但孙猴子,齐天大圣这些和孙悟空有关的内容可能就搜索不到了。
而相似性搜索是什么样的?
比如你搜索——一只和尚带着一只猴子,一头猪经历多重困难的故事;这时就应该能搜索到西游记;虽然里面没有提到任何和孙悟空,唐僧等有关的东西,但根据语义理解这就是四大名著之一的西游记。
这就是语义搜索。
显而易见语义搜索的好处是什么?
语义搜索能够让计算机更好的理解人类的语言和需求;它能够根据你的语义理解你想做什么;而不是你必须给出明确的指令,它才能明白你想做什么。
比如说,我忙了一天了脚不沾地,又饿又困累;这时人工智能就能明白你是想吃饭了;吃完饭之后需要洗个澡,然后好好的睡一觉。而不是说告诉它,我要吃饭,然后它让你去吃饭;我要洗澡,然后让你去洗澡;我要睡觉,然后让你去睡觉。
语义理解是自然语言的基础,也是实现人工智能必不可少的一环;因为语义理解是人类与机器打交道的通道。
所以,语义理解就是相似性搜索的一个重要应用;但为什么说相似性搜索和语义搜索又不完全一样呢?
原因在于,相似性搜索还可以应用到图像搜索,混合搜索,只能推荐等多种应用场景。
那怎么才能实现这个相似性搜索呢?
要想实现相似性搜索,那么就不得不提的一个东西,那就是——向量。
向量由于其强大的功能特性,广泛应用于人工智能的各种场景中;而相似性搜索作为人工智能领域的重要环节,向量就成了其必不可少的一项工具。
在之前的互联网行业中,大部分都是结构化的数据,比如关系型数据库;但随着互联网技术的发展,非结构化数据变得越来越多,比如图像,音视频,图文混合等等多种类型的数据格式。
这时,不同格式的数据处理起来就成为一件很麻烦的事;更重要的是这些数据虽然是非格式化的,但并不代表着这些数据是没有关系的数据。
因此,具体怎么处理这些不同类型的数据,就成为了一个难点;后来发现向量特别适合于这种场景,技术人员只需要把文本等数据转化为向量表示的数据即可。
而后,计算机就可以根据不同向量之间的关系,如距离,长度,方向等去计算不同格式数据之间的相关性。
而现在实现的相似性搜索,主要就是通过欧式距离和余弦相似度等算法来计算不同向量之间的关系,最后实现语义搜索。
本文转载自公众号AI探索时代 作者:DFires
原文链接:https://mp.weixin.qq.com/s/xQOHmUeiXQ7p3sOsdf1VAg