之前写过一篇文章,是我个人到目前阶段的认知,所做的判断。我个人是做万亿级数据的搜索优化工作的。一直在关注任何和搜索相关的内容。
下一代搜索引擎会什么?-CSDN博客
这篇文章再来讲讲为什么要使用向量搜索。
在阅读这篇文章之前呢,最好已经知道向量检索是怎么回事。如果还不知道,可以学习这篇文章。
什么是向量数据库
向量数据库的真相
大幅提升搜索相关性
如果你在绞尽脑汁,做搜索内容相关性提升,搜索召回质量提升,以及排序优化的。那么一定要关注一下向量搜索了。因为向量搜索在很大概率上大幅度的为你带来效果提升。如果说的没错的话,你之前一直在提升BM25的相关性。不得不承认,在关键词命中匹配方面。BM25仍然还具有它的优势。并且不是向量搜索能替代的。到目前为止,BM25和向量检索所结合,才是相关性提升的最佳实践。
问为什么能大幅度提升搜索相关性?
因为向量检索,得益于机器学习的进步,得益于深度学习的进步。利用深度学习NLP模型,去捕获上下文的相关性。将数据映射在更高维度的网络空间。而并非是单纯的关键词匹配。
如果你还不知道什么是机器学习,已为你准备了这些文章
什么是机器学习
什么是大语言模型
什么是向量嵌入
跨模态搜索能力
如果你想实现多模态搜索,以图搜图,以文搜索图,一图搜文,甚至是通过声音搜索。如果苦于找不到合适的方案,或者效果不好。都可以使用向量检索来实现。同样这项能力,本质上也是依赖深度学习和机器学习的进步,能够提供多模态大模型,例如CLIP等等。
让搜索变得更简单
在很早很早以前,做搜索还是很复杂的事情。但是随着技术的进步,到了今天,各种问题都已迎刃而解了。例如:搜索意图识别、query改写、同义词扩展、等等用来提升提升搜索相关性的复杂性问题。都能在大模型中,在向量检索中得到很好的解决。随之而来的是新的问题,如何提升模型的空间映射效果、如何embedding的速度、到目前为止,GPU性能还是一个很大的问题。不过不久的将来,随着硬件技术的进步,这些也不会是问题了。
语义检索能力
在这之前,最好能够先知道什么是语义检索。关于语义检索,可以学习这篇文章。https://elasticstack.blog.csdn.net/article/details/134806320
不同于BM25算法。BM25是纯粹的利用关键词匹配技术,利用词频和逆文档率来计算相关性。假如你搜索的关键词,在数据中并未出现,则一定不会被搜索到。而向量检索,是依赖大模型的,做的事KNN最邻近搜索。总会给你一个最相关,最相近的答案。在模型中,能够更好的理解query的意图。而这一切在技术实现上,又并不复杂。
想要用文本搜索图片,原本一定是要获取图片的表示内容的,传统的做法是将图片专为标签。但是标签总是有限的,会让图片损大量的有效信息,所以导致最终检索的效果并不好,召回效果不好。