首页 > 编程语言 >第6篇:Milvus检索算法详解:从原理到应用

第6篇:Milvus检索算法详解:从原理到应用

时间:2024-06-11 23:33:32浏览次数:21  
标签:检索 FLAT 存储 相似 详解 Milvus 计算 向量

欢迎来到Milvus检索算法的世界!在本文,我将带你深入了解Milvus的向量相似度计算和常用的检索算法。通过这篇博客,你将了解Milvus是如何高效计算向量相似度并进行向量检索的。准备好了吗?让我们开始这段知识之旅吧!

文章目录

Milvus的向量相似度计算

向量相似度计算的原理

向量相似度计算是检索算法的核心,它通过计算两个向量之间的距离或相似度,确定它们的相似程度。常用的相似度计算方法包括欧氏距离、余弦相似度和内积。

欧氏距离

欧氏距离是一种最直观的距离度量方法,计算两个向量在多维空间中的直线距离。公式如下:

[ t e x t E u c l i d e a n D i s t a n c e = ∑ i = 1 n ( x i − y i ) 2 ] [ text{Euclidean Distance} = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2} ] [textEuclideanDistance=i=1∑n​(xi​−yi​)2 ​]

余弦相似度

余弦相似度通过计算两个向量夹角的余弦值来衡量它们的相似度。余弦相似度的取值范围在[-1, 1]之间,值越大,向量越相似。公式如下:

[ Cosine Similarity = ∑ i = 1 n x i y i ∑ i = 1 n x i 2 ∑ i = 1 n y i 2 ] [ \text{Cosine Similarity} = \frac{\sum_{i=1}^{n} x_i y_i}{\sqrt{\sum_{i=1}^{n} x_i^2} \sqrt{\sum_{i=1}^{n} y_i^2}} ] [Cosine Similarity=∑i=1n​xi2​ ​∑i=1n​yi2​ ​∑i=1n​xi​yi​​]

内积

内积是向量相似度计算中最简单的一种方法,直接计算两个向量的点积。公式如下:

[ Inner Product = ∑ i = 1 n x i y i ] [ \text{Inner Product} = \sum_{i=1}^{n} x_i y_i ] [Inner Product=i=1∑n​xi​yi​]

向量相似度计算的作用和应用场景

向量相似度计算在许多应用场景中起着关键作用,例如:

  1. 图像搜索:通过计算图像特征向量的相似度,快速找到相似的图像。
  2. 文本搜索:通过计算文本嵌入向量的相似度,找到语义相似的文本。
  3. 推荐系统:通过计算用户和物品向量的相似度,为用户推荐个性化内容。

常用检索算法

1. FLAT(Brute-force)

原理和逻辑

FLAT(Brute-force)是一种基于暴力搜索的检索算法,通过遍历所有向量计算距离或相似度,找到最相似的向量。FLAT的核心思想是利用线性扫描,进行精确的最近邻搜索。

数据存储结构

FLAT索引的存储结构非常简单,所有向量存储在一个数组中。

FLAT原理 存储向量 数组存储 搜索 遍历所有向量

标签:检索,FLAT,存储,相似,详解,Milvus,计算,向量
From: https://blog.csdn.net/wjm1991/article/details/139583300

相关文章

  • TCP四次挥手全过程详解
    TCP四次挥手全过程有几点需要澄清:1.首先,tcp四次挥手只有主动和被动方之分,没有客户端和服务端的概念2.其次,发送报文段是tcp协议栈的行为,用户态调用close会陷入到内核态3.再者,图中的情况前提是双方程序正常运行,程序在挥手过程中崩溃的情况后面会讲到过程详解(时间顺序)1.......
  • coco数据集详解
    什么是COCO数据集?COCO数据集是一个可用于图像检测(imagedetection),语义分割(semanticsegmentation)和图像标题生成(imagecaptioning)的大规模数据集。它有超过330K张图像(其中220K张是有标注的图像),包含150万个目标,80个目标类别(objectcategories:行人、汽车、大象等),91种材料类别(stuff......
  • Maven详解
    1maven介绍1)为什么使用mavenMaven是一个强大的项目管理和构建工具,它能够简化Java项目的构建、依赖管理和发布过程。以下是Maven的一些主要特点和功能:项目结构管理:Maven采用约定优于配置的原则,提供了标准的项目结构模板,使得开发人员可以快速创建和维护项目。依赖管理:Maven通......
  • 大模型高效微调-LoRA原理详解和训练过程深入分析
    博客首发于我的知乎,详见:https://zhuanlan.zhihu.com/p/702629428一、LoRA原理LoRA(Low-RankAdaptationofLLMs),即LLMs的低秩适应,是参数高效微调最常用的方法。LoRA的本质就是用更少的训练参数来近似LLM全参数微调所得的增量参数,从而达到使用更少显存占用的高效微调。1.1问......
  • 【C语言】预处理详解(下卷)
    前言紧随上文。命令行定义比如关机命令:shutdown-s-t60其中-s,-t是命令行参数。传的参数不同,效果也不同。许多C的编译器提供了一种能力,允许在命令行中定义符号,用于启动编译过程。如,当我们根据同一个源文件要编译出一个程序的不同版本时,这个特点有些用处。(假如某个程......
  • C# JavaScriptSerializer序列化时的时间处理详解
    原文链接:https://www.jb51.net/article/122143.htm输出如下图所示: 猜测这里是由于js初始化时间的时候往往是向1970/01/01添加毫秒数,JavaScriptSerializer进行序列化的时候也会格式化为距离1970/01/01到当该时间点GMT+0时间的毫秒数,如果直接反序列化可以看到少了8小时,且......
  • 构建LangChain应用程序的示例代码:27、FLARE:前瞻性主动检索增强生成技术实现与应用的示
    FLARE:前瞻性主动检索增强生成这个示例是前瞻性主动检索增强生成(FLARE)的实现。请查看原始仓库。基本思想是:开始回答问题如果开始生成模型不确定的标记,查找相关文档使用这些文档继续生成重复直到完成在查找相关文档的方式上有很多有趣的细节。基本上,模型不确定的标记会......
  • 老晨谈赌详解AG百家和BJL下三路的实战技巧打法个人经验
    更多技巧可移步围脖【老晨谈赌】技术可以通过学习来获得,经验可以通过实战来得到,心态可以通过调节来增强。每一个人都不是生来都无比强大的,我也是如此,也是通过无数个黑夜的煎熬最后才研究出来的,所以如果说幸运,我们都幸运,如果说不幸运,我们其实都一样。可以不设置止盈点,但是你一......
  • 【Linux驱动设备开发详解】14.Linux网络设备架构
    1.Linux网络设备驱动的结构与字符设备和块设备不同,网络设备并不对应于/dev目录下的文件,应用程序最终使用套接字完成与网络设备的接口。Linux系统对网络设备驱动定义了4个层次,这4个层次为:网络协议接口层:向网络层协议提供同一的数据包收发接口,无论是IP还是ARP,都是通过dev_queue_......
  • 管理数据必备;侦听器watch用法详解,vue2与vue3中watch的变化与差异
    目录一、侦听器(watch)是什么?二、Vue2中的watch(OptionsAPI)2.1、函数式写法2.2、对象式写法    ①对象式基础写法    ②回调函数handler    ③deep属性        ④immediate属性三、Vue3中的watch3.1、向下兼容(Vue2)的Options API3.2......