向量数据库及文本向量化介绍

打印 上一主题 下一主题

主题 1025|帖子 1025|积分 3079

向量数据库

调研背景:项目必要通过自然语言到数据库中取数,计划把数据库库表结构标注后吐给大模型来根据自然语言构建查询SQL。但是考虑到大模型的上下文限制,我们不能把库表数据一次性交给大模型,必要先对数据预筛一遍。这里就考虑将数据库库表中的关键信息向量化后存入向量数据库,再利用大模型提取自然语言中的关键指标进行向量化。通过向量数据库进行相似度匹配。将预筛出的数据再交给大模型进行分析,以此降低大模型的负担。
1.概述

​ 在数学中,向量是具有大小和方向的量,可用带箭头的线段表示(箭头方向为向量方向,线段长度为模长)。向量间的关系可通过欧氏间隔、余弦相似度、汉明间隔等方式来衡量。
​ 数据向量是基于不同特性或属性来描述对象的数据表示。每个向量代表一个单独的数据点,比方一个词或一张图片,由描述其许多特性的值的聚集组成。这些变量有时被称为“特性”或“维度”。
​ 向量数据库是专门用来存储和查询高维向量的数据库。与传统数据库将数据存储为行和列不同,向量数据库将数据表示为高维向量,并通过盘算向量之间的间隔或相似度来进行搜索 。这种方法使得向量数据库能够高效地处置惩罚非结构化数据,并支持诸如相似性搜索、推荐体系、图像辨认等AI应用 。
2.核心能力



  • 管理:向量数据库以原始数据形式处置惩罚数据,能够有效地组织和管理数据,便于AI模型应用。
  • 存储:能够存储向量数据,包罗各种AI模型必要利用到的高维数据。
  • 检索:向量数据库特别擅长高效地检索数据,这一个特点能够确保AI模型在必要的时候快速获得所需的数据。这也是向量数据库能够在一些推荐体系或者检索体系中得到应用的紧张原因。
3.工作原理

其工作原理大抵可以分为以下几个步骤:
3.1.数据表示为向量

​ 向量数据库起首必要将原始数据(如图像、文本、音频等)通过深度学习模型或嵌入模型转换为向量表示。这些向量通常是由多个数值组成的数组,每个数值代表原始数据的一种特性。比方,利用预训练的BERT模型可以将文本转换为向量,利用ResNet模型可以将图像转换为向量。这种向量化表示使得非结构化数据能够在高维空间中进行高效的存储和查询。
3.2.向量存储与索引

​ 向量数据库会将这些向量存储在数据库中,并通常利用一些高效的索引结构来加快查询。这些索引结构包罗但不限于:


  • 倒排索引:用于处置惩罚离散特性的文本检索,在向量数据库中,通常会结合其他高效算法进行向量检索。
  • KD树(K-Dimensional Tree):用于高维空间的数据分割,可以加快最近邻搜索。
  • LSH(Locality Sensitive Hashing):用于将相似的向量映射到相同的桶中,帮助加快相似度查询。
  • HNSW(Hierarchical Navigable Small World):一种基于图的结构,能够快速进行最近邻搜索,是现在非常盛行的近似最近邻搜索算法。
3.3.相似度盘算

​ 向量数据库的一个核心功能是快速盘算两个向量之间的相似度。常用的相似度度量包罗但不限于:


  • 余弦相似度(Cosine Similarity):盘算两个向量夹角的余弦值,适用于文本和词向量。
  • 欧氏间隔(Euclidean Distance):盘算两个向量之间的直线间隔,适用于一样平常的数值型数据。
  • 曼哈顿间隔(Manhattan Distance):也称为城市街区间隔,盘算两个向量各维度差值的绝对值之和。
3.4.向量查询

​ 当用户提交一个查询向量时,向量数据库会通过索引结构进行快速搜索,返回与查询向量最相似的若干个向量(通常是K个最近邻向量)。这个过程涉及相似度盘算,即盘算查询向量与数据库中每个向量的相似度,并根据相似度大小进行排序。常用的相似度盘算方法包罗余弦相似度、欧几里得间隔等。为了进步查询效率,向量数据库通常利用近似最近邻搜索算法(如FAISS、Annoy、ScaNN等),这些算法可以在保证肯定精度的条件下,明显进步查询速度。
4.应用场景

向量数据库在各种 AI 应用场景中发挥着关键作用,比方:


  • 图像和人脸辨认:向量数据库广泛用于人脸辨认体系和图像相似性搜索应用程序。
  • 推荐体系: 它们通过有效地找到与用户互动或感爱好的项目相似的项目来为推荐引擎提供支持。
  • 自然语言处置惩罚 (NLP): 在 NLP 中,向量数据库用于文档相似性、情绪分析和文档聚类等任务。
  • 异常检测: 它们可用于检测各个领域的异常情况,比方网络安全或制造业,方法是辨认偏离规范的数据点。
  • 生物医学研究: 在基因组学和其他生物医学研究中,向量数据库可用于分析和比力高维生物数据。
  • 电子商务搜索: 对于电子商务平台,向量数据库通过根据产物功能或用户偏好提供准确和相干的结果来增强搜索功能。
  • 多媒体内容检索: 向量数据库在检索雷同的多媒体内容(比方查找视觉上相似的图像或视频)方面发挥着关键作用。
5.常见向量数据库

产物名称特点适用场景开源/商业上风局限性Milvus开源、分布式,支持多种索引算法(如IVF, HNSW, ANNOY),支持向量数据和混合数据范例,社区活跃大规模高维数据检索,AI应用,推荐体系,搜索引擎开源1. 高度可扩展,支持分布式架构 2. 多种索引方式灵活选择 3. 社区活跃,支持大规模数据集1. 性能优化和集群管理可能复杂 2. 部署和维护较为复杂Pinecone全托管云服务,简化运维,支持及时更新,自动扩展,支持向量搜索和稀疏向量中小企业、快速部署,云原生应用,AI即服务平台商业1. 易于部署和管理,免除基础设施运维 2. 及时向量更新 3. 提供高可用、高性能的云服务1. 高度依靠云服务商 2. 成本可能随规模增长而增长Elasticsearch通过插件(如Elastic Learned Sparse Encoder)支持向量搜索,强大的全文检索能力结合全文检索的场景,如日志分析、日志搜索和分析、业务监控开源+商业1. 强大的全文检索功能,结合向量搜索提供混合搜索 2. 庞大的社区和插件生态1. 向量搜索支持是插件形式,性能可能不如专门的向量数据库 2. 配置和调优复杂FAISSMeta开源的向量检索库,支持GPU加快,支持多种向量索引算法,如IVF, HNSW算法研究、定制化开辟、必要高性能的检索场景开源1. 高性能,支持GPU加快 2. 灵活的定制化能力,适合研究性应用 3. 社区支持1. 必要手动搭建上层服务和数据管理 2. 不提供全面的运维和监控功能Qdrant轻量级,Rust开辟,支持过滤查询,支持向量与非向量数据混合检索,支持动态数据更新中小规模及时应用,边沿盘算应用,在线推荐开源1. 高性能,轻量级,支持高并发 2. 灵活的过滤查询功能,支持多种数据范例 3. 易于部署1. 相比Milvus,功能稍显简朴 2. 不支持分布式集群PGVectorPostgreSQL扩展,原生支持向量存储与SQL查询,兼容传统关系型数据库能力必要结合SQL与向量搜索的现有PG用户开源1. 无缝集成到现有PostgreSQL数据库中 2. 保存SQL查询的上风 3. 易于与传统应用结合1. 不适合大规模向量数据处置惩罚 2. 性能在大数据量下可能受到限制 上文提到过,向量数据库必要将数据转成向量再存入数据库,这个过程必要自己处置惩罚,下面就介绍下文本的向量化。
文本向量化

1.概述

​ 文本向量化是将非结构化的文本数据转换为结构化数值向量的过程,是自然语言处置惩罚(NLP)任务的基础步骤。通过向量化,文本语义信息被编码为盘算机可处置惩罚的数学表示,支持下游任务如分类、聚类、检索等。
2.核心方法分类

2.1.传统方式

​ 传统的文本向量化方法重要是通过简朴的统计学技能来将文本转换为向量表示。虽然这些方法相对简朴,且易于实现,但它们的表示能力有限,通常无法捕捉到词汇之间深层的语义关系。
2.1.1.词袋模型
​ 词袋模型是一种最简朴的文本表示方法。它忽略了文本中词汇的顺序,仅仅根据文本中各个词汇的出现频率来构建特性向量。每个文本被表示为一个词汇表中词语出现次数的向量。优点是实现简朴、易于理解,但缺点是忽略了词序、语法和语义。
2.1.2.TF-IDF
​ TF-IDF是对词袋模型的改进,它考虑了词频和文档频率两个因素。TF衡量一个词在当前文档中的紧张性,而IDF则衡量该词在全部文档中的有数程度。TF-IDF的上风在于可以降低常见词汇的权重,进步有数词汇的代表性,使得向量更加精粹和有区分度。
2.1.3.N-Gram模型
​ N-Gram模型通过将文本分别为一连的N个词组(即N个一连的词),可以捕捉到肯定的上下文信息。N-Gram可以帮助捕捉词序信息,但随着N的增大,模型复杂度也会明显增长,且高维度的数据可能导致稀疏性问题。
2.2.词嵌入

​ 词嵌入技能通过将词汇映射为低维度、稠密的向量,能够更好地捕捉词汇之间的语义关系。相比传统方法,词嵌入能够反映词与词之间的相似性和语境。
2.2.1.Word2Vec
​ Word2Vec是Google提出的一种深度学习模型,能够通过上下文信息学习词语的向量表示。它有两种重要的训练方法:CBOW(Continuous Bag of Words)和Skip-gram。Word2Vec通过优化一个目的函数,使得相似语境下的词语在向量空间中靠得更近,从而有效捕捉语义关系。
2.2.2.GloVe
​ GloVe是斯坦福大学提出的词嵌入模型。与Word2Vec不同,GloVe结合了全局词频统计信息,通过矩阵分解技能学习词嵌入。GloVe的优点在于它能够更好地利用词与词之间的全局共现关系。
2.2.3.FastText
​ FastText是Facebook提出的词嵌入方法,它的重要创新在于考虑了词的子词信息。FastText通过将词拆分为多个子词(如字母组合)来构建向量表示,这使得它能够处置惩罚低频词和未登录词的问题,并且能够更好地处置惩罚形态变化丰富的语言。
2.3.预训练语言模型

​ 预训练语言模型代表了当前NLP领域的主流方法,它通过大规模的语料库训练模型,使其能够理解词汇、短语、句子等各种语言征象。预训练语言模型通常在天生式和判别式任务中都有出色的表现。
2.3.1.BERT
​ BERT是Google提出的双向Transformer预训练语言模型。与传统的单向语言模型不同,BERT在训练时同时考虑了上下文的左右两侧,能够更全面地理解句子的语义。BERT已经在许多NLP任务中设立了新的基准,包罗问答、情绪分析等。
2.3.2.GPT
​ GPT是OpenAI提出的天生式预训练模型,它基于Transformer架构,并利用了单向(从左到右)的自回归模型。GPT的上风在于它能够天生流畅、连贯的自然语言文本,特别适合文本天生任务。GPT系列(如GPT-3)在文本天生、对话体系等任务中表现出了强大的能力。
3.对比

方法上风劣势技能原理上下文处置惩罚典型应用场景词袋模型1. 实现简朴、盘算效率高2. 适合小规模数据
3. 可解释性强1. 忽略词序和上下文信息
2. 高维稀疏数据导致维度灾难
3. 无法处置惩罚同义词问题基于词频统计,构建词汇-文档矩阵无上下文感知短文本分类、垃圾邮件检测TF-IDF1. 通过逆文档频率降低常见词权重
2. 改进版词袋模型
3. 适配多语言场景1. 无法捕捉词语间语义关系
2. 仍存在稀疏性问题
3. 对短语表达不敏感词频(TF)×逆文档频率(IDF)加权统计无上下文感知搜索引擎排序、关键词提取N-Gram1. 捕获局部词序特性
2. 增强短文本表达能力
3. 支持短语级分析1. 维度随N增大指数级增长
2. 数据稀疏性加剧
3. 长间隔依靠仍无法办理滑动窗口提取一连词序列局部上下文(N个词窗口)拼写纠错、生物序列分析Word2Vec1. 分布式语义表示
2. 支持词向量算术运算
3. 盘算效率较高1. 无法处置惩罚一词多义
2. 未登录词(OOV)表现差
3. 忽略全局统计信息浅层神经网络猜测上下文(CBOW/SkipGram)静态上下文(固定窗口)词相似度盘算、推荐体系GloVe1. 融合全局共现统计
2. 对高频词建模更准确
3. 适合语料库分析1. 存储共现矩阵内存消耗大
2. 仍需人工设定窗口大小
3. 更新迭代成本高矩阵分解+对数概率比优化静态全局上下文知识图谱构建、词类比任务FastText1. 子词嵌入办理OOV问题
2. 对形态丰富语言更有效
3. 适合低频词处置惩罚1. 训练时间比Word2Vec长2-5倍
2. 词向量包含冗余子词信息字符n-gram组合的词袋表示静态上下文(子词结构)多语言NER、交际媒体文本分析BERT1. 双向Transformer编码
2. 动态上下文感知
3. 支持多种下游任务微调1. 预训练需数千GPU小时
2. 推理耽误高(>50ms)
3. [CLS]表征存在信息丧失掩码语言模型+下一句猜测全文本双向上下文问答体系、语义相似度盘算GPT1. 自回归天生流畅文本
2. 零样本学习能力强
3. 支持长文本天生1. 单方向上下文限制
2. 究竟性错误率>15%3. 存在天生有害内容风险自回归语言模型(Transformer Decoder)从左到右单向上下文对话体系、创意写作
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王國慶

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表