关键词感知检索_向量检索服务(VRS)-冲顶技术团队

关键词感知检索

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

背景介绍

关键词检索及其局限

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

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

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

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

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

基于语义的向量检索

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

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

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

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

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

关键词检索+语义检索

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

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

  1. 系统复杂度增加。

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

  3. 可维护性降低。

  4. ......

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

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

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,代码才能正常运行。单击Cluster详情了解如何查看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}
))
说明

向量检索服务DashVector推荐使用DashText生成Sparse Vector。

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

    相关内容推荐

    极限游戏猎豹浏览器官网kk录像机老司机开车了暗黑的破坏神征途2s凤凰模拟器小桔商家通睿云网王者荣耀在线玩艾兰岛谷歌导航unicareer哒哒英语竞技体育骑士联盟河南豫剧大全下载okbuy好乐买天国王朝下载艾希手游寻常生活老款单机游戏lr调色软件超级联盟途游棋牌僵尸炮艇生存软件造价工程师雷鸟特攻队islide下载58同城网官网薄荷app宿松同心pppe御清绝最新今日头条碧斯诺兰破碎地牢智能识图手机照片p图软件sonos音响眉山人一键录屏case23白雪公主换装epic平台下载温州轨道交通我是掼蛋王智慧物流管理系统二维码识别车轮滚滚购物有哪些平台调教美女游戏音量增强器森宝积木知户型电脑版布卡漫画官网追剧喵vrapp手机图片压缩五线谱转简谱软件2980邮箱映目直播百战天虫6火柴人2看图片识别皮肤病免费的数独游戏弧光之源2武商网地图世界java游戏下载火柴人实验室2拿货网尝鲜派官网技成培训网官网七鲜超市小伴龙abc英语嘀嘀虎越南语翻译软件准星瞄准器爱剪辑看电影神器高速查询万能搜索器天天果园官网易掌控开课啦官网五线谱转简谱软件腾讯云下载简单心理2次元游戏wwe游戏手机版微信位置贵州社保查询赚钱红包佳能打印机app附近共享汽车中国地震速报网我要看宝宝巴士随拍山羊大碰撞ppt宝藏网快乐连连看电脑版浏览器下载手机当书网舆情通9130日照银行51管家导播软件枪林弹雨游戏下载塔防游戏推荐杏林圣手百词斩在线背单词音量调节器人教教材宝石塔防华乐思橙瓜官网玩客爱思助手下载安装备份软件新东方oalr修图轻松筹官网在线识别音乐线上音乐北京数字学校好玩的养成游戏武林q传poweramp星辰变游戏口袋英雄迷你世界修改器大连生活网共享电动自行车橙光游戏exo义乌购批发网闪玩下载迷你宝贝撞车大赛哈啰换电正确云苹果地图导航taotao交行网上银行一号货车韩国伪娘FM调频收音机水果切切乐4398游戏麻将酷看好玩单机手游数据传送安卓模拟中国移动河北和商汇幻幻球丰格易快报挤痘大师彩虹医生最大返利网手机测亩仪下载识图提取文字vip英语来骑哦法宣在线学习polygons篮球风云艾兰岛老爹寿司店试玩版我爱破解网中国军棋订烟平台知政inode龙珠超下载流量大富翁二号人事部智慧家维语汉语在线翻译券老大聊天女仆洛克精灵战记myfree大家来找茬2老爹烤肉店博看期刊爱剪辑TEPPENmsn官方下载糖果世界大冒险烧包网磁力猫下载漂移赛车2破解版字母游戏口袋魔兽

    合作伙伴

    冲顶技术团队

    www.he1tech.com
    dh.jsfengchao.com
    www.8830000.cn
    www.china185.com
    www.china185.com
    www.hz.bj.cn
    zz.urkeji.com
    zz1.urkeji.com
    www.fishftmyers.com
    dh.jsfengchao.com
    idc.urkeji.com
    www.seo5951.com
    seo.jsfengchao.com
    www.zhdaili.cn
    www.kmpower.cn
    www.innatjerome.com
    dw.urkeji.com
    www.te3.com.cn
    www.seo5951.com
    www.akz.net.cn