关键词感知检索

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

向量检索服务 DashVector免费试用进行中,玩转大模型搜索,快来试试吧~

了解更多信息,请点击:https://www.aliyun.com/product/ai/dashvector


背景介绍

关键词检索及其局限

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

  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。


使用示例

前提条件


Step1. 创建支持Sparse Vector的Collection

说明

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


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

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}
))


Step3. 带有Sparse Vector的向量检索

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,DashText

免费体验阿里云高性能向量检索服务https://www.aliyun.com/product/ai/dashvector







相关文章
|
3月前
|
自然语言处理 开发工具 索引
向量检索服务——关键词感知检索详解
向量检索服务DashVector同时支持Dense Vector(稠密向量)和Sparse Vector(稀疏向量),前者用于模型的高维特征(Embedding)表达,后者用于关键词和词频信息表达。DashVector可以进行关键词感知的向量检索,即Dense Vector和Sparse Vector结合的混合检索。
|
8月前
|
数据采集 搜索推荐 安全
如何查询谷歌SEO关键词的搜索量?
答案是:可通过semrush或Google Search Console工具获取关键词来发外链。 选择正确的工具 Google关键词规划器 最直接和权威的工具便是Google自家的关键词规划器。 使用这个工具,你可以获取到准确和详尽的关键词搜索量数据。
261 0
如何查询谷歌SEO关键词的搜索量?
|
8月前
|
数据采集 搜索推荐 安全
谷歌怎么搜索关键词?
答案是:使用搜索引擎,谷歌关键词规划工具,Ahrefs、SEMRush去搜索关键词等。 在今天的数字化时代,有效地使用谷歌搜索引擎对于找到所需信息至关重要。 掌握正确的关键词搜索技巧,可以帮助你更快、更准确地获取结果。 以下是一些常用的搜索技巧:
86 0
谷歌怎么搜索关键词?
|
8月前
|
数据采集 搜索推荐 安全
外贸关键词的搜索方法
答案是:使用搜索引擎,百度关键词规划工具,Ahrefs、SEMRush等。 搜索合适的外贸关键词是任何成功的谷歌SEO策略的基础。 选择正确的关键词不仅有助于增加网站流量,还可以吸引更有可能转化的目标受众。 以下是外贸关键词的一些有效搜索方法。 了解目标市场 在开始关键词研究之前,了解您的目标市场和目标客户的需求和兴趣至关重要。 这可以确保您的关键词与您的产品或服务以及目标受众紧密相关。
67 0
外贸关键词的搜索方法
|
10月前
|
数据采集 算法框架/工具
关键词搜索商品(精准控价)
关键词搜索商品(精准控价)
|
存储 自然语言处理 搜索推荐
【转】关于搜索挖掘所想
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。
107 0
|
消息中间件 分布式计算 算法
2021年度关键词:重新起航
公众号:程序员学长,分享编程知识,这篇文章复盘了2021年的博文之旅
118 0
|
机器学习/深度学习 搜索推荐 数据处理
这就是搜索引擎读书笔记-day3-5.检索模型与搜索排序
搜索结果排序融合了上百种排序因子,而重要两因素是:用户查询和网页内容相关性 及 网页链接情况。本节介绍内容相关性介绍网页排序
这就是搜索引擎读书笔记-day3-5.检索模型与搜索排序
|
搜索推荐
长尾关键词有那几种形式?
长尾关键词一般存在如下三种形式,分别是导航类关键词、问答型关键词以及购买型关键词,下面分别对这三种形式的关键词加以说明。 1、导航类关键词 导航类关键词属于一个特定品牌或者网站的总称,如163、新浪、搜狐等的导航类关键词,这类关键词的竞争异常激烈,中小型站长很难做上去。
172 0
|
JavaScript 算法 程序员
TextRank算法抽取关键词
PageRank 由于TextRank是由大名鼎鼎的Google的PageRank算法转化而来,所以这里先介绍一下PageRank算法。 PageRank最开始用来计算网页的重要性。在衡量一个网页的排名时,直觉告诉我们: (1)一个网页被更多网页链接时,就应该越重要,其排名就应该越靠前。
3684 0