向量搜索学习笔记

1、背景介绍

原有分词检索的瓶颈

e.g.1:

如以下三句话:

“中国首都占地16410.54平方千米”

“北京面积16410.54平方千米”

“北京面积多少平方千米”

如果按照传统的分词为Token的表示方法,三句话的分词Token表示为:

[“中国”,“首都”,“占地”,“16410.54”,“平方千米”]

[“北京”,“面积”,“16410.54”,“平方千米”]

[“北京”,“面积”,“多少”,“平方千米”]

很明显的是后两句相同Token占比更高,但是前两句语义更相似。由此可见,基于这种传统的特征表示的应用会如搜索引擎会碰到准确率不高等问题。

e.g.2:

用户搜索“浙一医院”

“浙一医院”的标准地址是“浙江大学医学院附属第一医院”

query只解析出关键词“浙一”和“医院”,匹配度很低。

更复杂的业务场景,要求跳脱出冰冷死板的分词或者分类标签,来做更贴近语义的搜索

推荐系统:通过支持相似性查询和向量聚合,向量数据库用于构建高效的推荐系统,实现对用户历史行为的个性化推荐。

搜索引擎:利用向量数据库可提高搜索质量和效率,将网页内容表示为向量,建立索引并实现与查询相关的快速检索。

社交媒体分析:向量数据库在社交媒体分析领域支持相似性查询和聚合操作,能够快速识别和提取社交媒体数据中的模式和趋势,包括情感分析、主题建模和社区发现等。

生物信息学:在基因序列分析和蛋白质相互作用预测等生物信息学领域,向量数据库有广泛应用。通过将基因序列和蛋白质表示为向量,实现高效的模式识别、聚类和预测。

图像和视频分析:应用于图像和视频分析,包括图像检索、物体识别和场景分类等。通过将图像和视频表示为向量,建立索引并实现对相似图像或视频的快速检索。

2、基础介绍

向量可以对物理世界的人/物/场景所产生各种非结构化数据(如语音、图片、视频,语言文字、行为等)进行抽象,如同数学空间中的坐标,标识着各个实体和实体关系。非结构化数据变成向量的过程称为向量化(Embedding)。向量检索就是对非结构化数据生成的向量进行检索,寻找相同或相似的向量,从而找到相同或相似的非结构化数据。

以图片搜索为例,每一幅图片可以被抽象成向量特征,然后将所有特征构建成向量索引,查询的时候,将查询(图片)也表示为一个相同维度的向量,然后用这个向量在之前构建的向量索引中查找出最相似的结果,这样就完成了一次以图搜图。

所谓向量就是由n个数字(二值向量由n个比特组成)组成的数组,我们称之为n维向量。

常见的向量近似度量有四种:欧式距离、余弦、内积、海明距离

欧氏距离计算的是两点之间最短的直线距离,距离值越小越相似。能够体现个体数值特征的绝对差异,适合数据完整,数据量纲统一的场景

余弦距离计算的是两个向量之间的夹角余弦值,夹角越小越相似。更多的是从方向上区分差异,而对绝对的数值不敏感,更多的用于使用用户对内容评分来区分兴趣的相似度和差异,同时修正了用户间可能存在的度量标准不统一的问题。

内积和余弦类似。

海明(汉明)、杰卡德距离、 谷本距离,属于二值型向量计算方式。

不同的度量方式对应不同的场景,通常欧式距离用于图片检索,余弦用于人脸识别,内积多用于推荐,海明距离由于向量比较小,通常用于大规模视频检索场景。

同构物品检索(Query和检索的物品属于统一类,两类可以用同一个模型产生表示向量)。

一般是三个步骤:

1、离线训练阶段:主要是训练深度编码模型

2、离线构建索引库:主要是用训练好的深度编码模型,对所有物品进行编码后保存到向量索引库

3、在线查询:将Query通过深度编码模型得到编码向量,取编码向量与索引向量库中距离最近的向量对应的物品ID,再通过物品ID去物品Meta库查询业务需要的Meta信息

除了同构物品检索,向量检索还可以用在异构物品检索场景

比如:个性化推荐在个性化推荐中Query 是用户,查询的对象是推荐物品(如商品、音乐、视频)。

底层的原理

1、对用户采用深度学习模型Mu进行向量表示得到VUi[i∈N N所有用户],

2、对物品采用深度学习模型Mp进行向量表示得到VPi[i∈M M所有物品],其中VUi和VPi维度一样,

3、在线推荐时查询VUi得到用户的表示x,从VPi中得到和x最相似的向量对应的物品作为推荐结果。

3、媒资应用

文本搜图

传统做法:用文本进行图像搜索,并没有对图像的真实内容做理解,而是利用图片的标题,图片所在文档中附加文本(标签)等,对这些信息和用户的Query进行第一节传统NLP计算得到搜索结果。

这种做法有两个问题:一是图片附加文本(标签)信息可能是错误的,二是还有绝大多数图片都没附加文本从而无法被搜索。

向量检索的做法:

1、利用标注的图片和描述文本对,联合训练图片深度编码模型MI和文本编码模型Mt,两个模型输出的向量维度一样

2、利用训练好的MI将所有图片进行向量表示得到VIi[i∈M M所有图片](实际就是翻库)

3、在线上搜索是将用户Query用Mt进行编码得到xt,从VIi中得到和xt最相似的图片作为搜索结果。

ES向量搜索

Elasticsearch 最初并未专门针对向量检索进行设计。然而,随着机器学习和人工智能的兴起,对于高维向量空间的查询需求逐渐增长。

在Elasticsearch的 5.x 版本中,Elastic 爱好者们开始尝试通过插件和基本的数学运算实现简单的向量检索功能。

到 Elasticsearch 7.0 版本,正式开始增加对向量字段的支持,例如通过 dense_vector 类型。这标志着Elasticsearch正式进入向量检索领域,不再只依赖于插件。

在 Elasticsearch 8.9 版本上新了:Semantic search 语义检索功能

4、测试相关

主要是从性能表现和搜索精准度来考虑。

性能:翻库(写入)性能,查询性能

搜索精准度:更多的是根据业务场景判断算法选择是否合适,以及算法本身的准确召回评测

  • 11
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习是研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。在过去的十年中,机器学习帮助我们自动驾驶汽车,有效的语音识别,有效的网络搜索,并极大地提高了人类基因组的认识。在本课中,将学习最有效的机器学习技术,并获得实践,让它们为自己的工作。更重要的是,不仅得到理论基础的学习,而且获得那些需要快速和强大的应用技术解决问题的实用技术。最后,会学到一些硅谷利用机器学习和人工智能的最佳实践创新。本课程提供了一个广泛的介绍机器学习、数据挖掘、统计模式识别的课程。主题包括: (一)监督学习(参数/非参数算法,支持向量机,核函数,神经网络)。 (二)无监督学习(聚类,降维,推荐系统,深入学习推荐)。 (三)在机器学习的最佳实践(偏差/方差理论;在机器学习和人工智能创新过程)。 本课程还将使用大量的案例研究,您还将学习如何运用学习算法构建智能机器人(感知,控制),文本的理解(Web 搜索,反垃圾邮件),计算机视觉,医疗信息,音频,数据挖掘,和其他领域。
matlab学习笔记汇总,适合初学者。 1.3Matlab界面介绍(1).docx 1.4Matlab界面介绍(2).docx 1.5Matlab帮助系统.docx 1.6Matlab的搜索顺序及搜索路径.docx 2.1Matlab的变量与常量.docx 2.2Matlab的基本数据结构(1).docx 2.2Matlab的基本数据结构(2).docx 2.3 Matlab中的空数组与子数组.docx 2.4 Matlab的算术运算符.docx 2.5 常见的Matlab运算函数(1).docx 2.6 常见的Matlab运算函数(2).docx 2.7 Matlab的字符串及其运算.docx 2.8 字符串函数及二维字符串.docx 2.9 绘图入门.docx 2.10绘图属性的控制.docx 2.11图形窗口菜单及对数坐标.docx 2.12 本章小结.docx 3.1程序编写的一般步骤.docx 3.2关系运算符.docx 3.3逻辑运算符.docx 3.4逻辑函数与短路运算.docx 3.5if语句.docx 3.6流程图的绘制.docx 3.7if语句的嵌套.docx 3.8switch.docx 3.9try_catch结构.docx 3.10多个图像窗口与子窗口.docx 3.11图像的增强控制.docx 3.12文本的高级控制.docx 3.13极坐标图.docx 4.1while循环结构.docx 4.2while循环举例.docx 4.3for循环.docx 4.4for循环举例.docx 4.5break和continue.docx 4.6循环结构嵌套.docx 4.7编译语言与解释语言.docx 4.8逻辑数组与向量化.docx 4.9应用举例.docx 4.10应用举例(2).docx 5.1M文件的分类.docx 5.2自顶向下程序设计.docx 5.3初始Matlab函数.docx 5.4初始Matlab函数(2).docx 5.5函数的局部变量.docx 5.6局部变量与按值传递.docx 5.7函数的选择性参数.docx 5.8函数的检测工具.docx 5.9全局内存与全局变量.docx 5.10持久变量.docx 5.11显示信息的几种方式.docx 5.12排查逻辑错误.docx 5.13排查逻辑错误(2).docx 5.14函数的函数.docx 5.15函数的函数(2).docx 5.16子函数.docx 5.17私有函数.docx 6.1复数数据类型.docx 6.2复数的作图.docx 6.3其他二维作图函数.docx 6.4其他的作图函数.docx 6.5本章举例.docx 9.1多项式.docx 9.2插值与拟合.docx matlab中文帮助文档.chm

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值