首页 > 其他分享 >关键词感知检索

关键词感知检索

时间:2024-11-14 11:22:26浏览次数:1  
标签:检索 示例 关键词 Vector Sparse 感知 向量

本文主要介绍带关键词感知能力的向量检索服务的优势、应用示例以及Sparse Vector生成工具。

背景介绍

关键词检索及其局限

在信息检索领域,"传统"方式是通过关键词进行信息检索,其大致过程为:

  1. 对原始语料(如网页)进行关键词抽取。

  2. 建立关键词和原始语料的映射关系,常见的方法有倒排索引、TF-IDF、BM25等方法,其中TF-IDF、BM25通常用 稀疏向量(Sparse Vector) 来表示词频。

  3. 检索时,对检索语句进行关键词抽取,并通过步骤2中建立的映射关系召回关联度最高的TopK原始语料。

但关键词检索无法对语义进行理解。例如,检索语句为"浙一医院",经过分词后成为"浙一"和"医院",这两个关键词都无法有效的命中用户预期中的"浙江大学医学院附属第一医院"这个目标。

基于语义的向量检索

随着人工智能技术日新月异的发展,语义理解Embedding模型能力的不断增强,基于语义Embedding的向量检索召回关联信息的方式逐渐成为主流。其大致过程如下:

  1. 原始语料(如网页)通过Embedding模型产生 向量(Vector) ,又称为 稠密向量(Dense Vector)。

  2. 向量入库向量检索系统。

  3. 检索时,检索语句同样通过Embedding模型产生向量,并用该向量在向量检索系统中召回距离最近的TopK原始语料。

但不可否认的是,基于语义的向量检索来召回信息也存在局限------必须不断的优化Embedding模型对语义的理解能力,才能取得更好的效果。例如,若模型无法理解"水稻灌溉"和"灌溉水稻"在语义上比较接近,就会导致无法通过"水稻灌溉"召回"灌溉水稻"相关的语料。而关键字检索在这个例子上,恰好可以发挥其优势,通过"水稻"、"灌溉"关键字有效的召回相关语料。

关键词检索+语义检索

针对上述问题,逐渐有业务和系统演化出来"两路召回、综合排序"的方法来解决,并且在效果上也超过了单纯的关键字检索或语义检索,如下图所示:

但这种方式的弊端也很明显:

  1. 系统复杂度增加。

  2. 硬件资源(内存、CPU、磁盘等)开销增加。

  3. 可维护性降低。

  4. ......

具有关键词感知能力的语义检索

向量检索服务DashVector同时支持Dense Vector(稠密向量)和Sparse Vector(稀疏向量),前者用于模型的高维特征(Embedding)表达,后者用于关键词和词频信息表达。DashVector可以进行关键词感知的向量检索,即Dense Vector和Sparse Vector结合的混合检索。

DashVector带关键词感知能力的向量检索能力,既有"两路召回、综合排序"方案的优点,又没有其缺点。使得系统复杂度、资源开销大幅度降低的同时,还具备关键词检索、向量检索、关键词+向量混合检索的优势,可满足绝大多数业务场景的需求。

说明

Sparse Vector(稀疏向量),稀疏向量是指大部分元素为0,仅少量元素非0的向量。在DashVector中,稀疏向量可用来表示词频等信息。例如,{1:0.4, 10000:0.6, 222222:0.8}就是一个稀疏向量,其第1、10000、222222位元素(分别代表三个关键字)有非0值(代表关键字的权重),其他元素全部为0。

使用示例

前提条件

  • 已创建Cluste
  • 已获得API-KEY
  • 已安装最新版SDK

Step1. 创建支持Sparse Vector的Collection

说明

  1. 需要使用您的api-key替换以下示例中的 YOUR_API_KEY、您的Cluster Endpoint替换示例中的YOUR_CLUSTER_ENDPOINT,代码才能正常运行。
  2. 本示例仅对Sparse Vector进行功能演示,简化起见,向量(Dense Vector)维度设置为4。

Python示例:

import dashvector

client = dashvector.Client(
    api_key='YOUR_API_KEY',
    endpoint='YOUR_CLUSTER_ENDPOINT'
)

ret = client.create('hybrid_collection', dimension=4, metric='dotproduct')

collection = client.get('hybrid_collection')
assert collection

重要

仅内积度量(metric='dotproduct')支持Sparse Vector功能。

Step2. 插入带有Sparse Vector的Doc

Python示例:

from dashvector import Doc

collection.insert(Doc(
    id='A',
    vector=[0.1, 0.2, 0.3, 0.4],
    sparse_vector={1: 0.3, 10:0.4, 100:0.3}
))

说明

向量检索服务DashVector推荐使用快速开始生成Sparse Vector。

Step3. 带有Sparse Vector的 向量检索

Python示例:

docs = collection.query(
    vector=[0.1, 0.1, 0.1, 0.1],
    sparse_vector={1: 0.3, 20:0.7}
)

Sparse Vector生成工具

  • DashText,向量检索服务DashVector推荐使用的SparseVectorEncoder

标签:检索,示例,关键词,Vector,Sparse,感知,向量
From: https://www.cnblogs.com/DashVector/p/18545613

相关文章

  • 【自动驾驶-感知】CenterNet与CenterFusion融合目标检测的目标检测模型实战代码-基于P
    【自动驾驶-感知】CenterNet与CenterFusion融合目标检测的目标检测模型实战代码一.CenterNet目标检测模型1.中心点热力图2.物体尺寸回归3.分类任务4.损失函数二、融合目标检测CenterFusion算法原理三.实现案例与代码数据集与实验环境数据预处理与增强模型定义......
  • 03LangChain初学者指南:从零开始实现高效数据检索
    LangChain初学者指南:从零开始实现高效数据检索https://python.langchain.com/v0.2/docs/tutorials/retrievers/这个文档,我们将熟悉LangChain的向量存储和抽象检索器。支持从(向量)数据库和其他来源检索数据,并与大模型的工作流集成。这对于需要检索数据以进行推理的应用程序非常重......
  • 【大语言模型】ACL2024论文-09 无监督信息精细化训练用于增强大型语言模型的检索增强
    【大语言模型】ACL2024论文-09无监督信息精细化训练用于增强大型语言模型的检索增强生成目录文章目录【大语言模型】ACL2024论文-09无监督信息精细化训练用于增强大型语言模型的检索增强生成目录1.论文信息2.摘要3.研究背景4.问题与挑战5.如何解决6.创新点7.......
  • 京东关键词API接口获取
    获取京东关键词API接口主要有以下步骤:一、注册京东开发者账号:访问京东开放平台(https://open.jd.com/)。点击页面上的“注册”按钮,按照系统提示填写相关信息,完成账号注册。二、创建应用:登录京东开发者账号后,在开放平台上创建一个应用。填写应用的基本信息,如应用名称、应......
  • 促进通用跨域检索中广义知识的模拟
    促进通用跨域检索中广义知识的模拟ProS:促进通用跨域检索中广义知识的模拟通用跨域检索(UCDR)的目标是在广义测试场景中实现稳健的性能,其中数据在训练过程中可能属于严格未知的域和类别。最近,具有快速调整的预训练模型显示出很强的泛化能力,并在各种下游任务中取得了显著成就,如少镜......
  • 优化RAG索引策略:多向量索引与父文档检索技术
    引言在RAG(检索增强生成)系统中,索引策略直接影响检索的效率和准确性。本文将深入探讨两种先进的索引优化技术:多向量索引和父文档检索,以及一种高级的RAG优化策略——RAPTOR。这些技术能够显著提升RAG系统的性能,尤其是在处理长文档和复杂查询时。多向量索引技术多向量索引的概念多......
  • RAG检索性能提升实践:混合检索与自查询技术详解
    引言在RAG(检索增强生成)系统中,检索性能直接影响着最终的生成质量。本文将深入探讨两种先进的检索优化技术:混合检索和自查询检索。这些技术能显著提升检索的准确性和灵活性,为RAG系统带来实质性的性能提升。混合检索技术详解混合检索的核心原理混合检索通过集成多种检索算法,充分......
  • RAG 应用优化策略:从文档处理到检索技巧
    引言RAG(检索增强生成)应用的性能很大程度上取决于文档处理、分割策略和检索方法的优化。本文将系统地介绍RAG应用的各个环节优化策略,帮助开发者构建更高效的RAG系统。文档预处理优化非分割类型的文档转换器1.问答转换器(QATransformer)问答转换器可以将文档转换为问答对的......
  • LangChain 向量存储与检索技术详解
    引言在RAG(检索增强生成)应用中,向量存储和检索是连接文档处理和LLM生成的关键环节。本文将深入探讨LangChain中的向量存储和检索技术,包括常用的向量数据库、嵌入模型以及高效的检索策略。向量存储基础向量存储是将文本转换为高维向量并进行存储和检索的技术。在RAG应用中,......
  • 如何通过关键词优化提升ROI
     Hey小伙伴们,今天我们来聊聊如何通过关键词优化在YandexSEM中提升广告ROI,让你的广告投资回报率飙升!......