知识图谱融入向量数据库,带来RAG效果飞升算法子图大模型爱因斯坦

我们发现,实际上用一个简单的多路召回然后rerank的RAG范式,就能够很好的处理复杂的多跳KG-RAG场景,而并不需要过多的LLM开销和任何图算法。

Oursimplepipelineisnotmuchdifferentfromthecommonmulti-wayretrievalandrerankarchitecture,butitcanachievetheSoTAperformanceinthemultihopgraphRAGscenario.

尽管使用很简单的架构,但我们的方法显著超过目前state-of-the-art的解决方案,比如HippoRAG,并且仅仅需要用到向量存储和少量的LLM开销。我们首先引入我们方法的理论基础,然后介绍具体方法过程。

理论

我们观察到在实际的KG-RAG场景中,存在跳数有限性假设:在KG-basedRAG中,实际问的query问题的查询路由只需要在知识图谱中进行有限的,且很少的跳数(如少于4跳)的查询,而并不需要在其中进行非常多次跳数。

我们的跳数有限性假设基于两点很重要的观察:1.query复杂度有限性,2.“捷径”的局部dense结构。

query复杂度有限性

用户的一个提问query,不太可能涉及到非常多的entities,或者引入复杂的relationships。否则这个问题会显得非常奇怪和不切实际。

Normalqueryvs.Weirdquery

y

“捷径”的局部dense结构

知识图谱中是一个存在一些局部dense结构,对于有些query,有一些“捷径”,可以从一个entity通过捷径快速连接到多跳之外的entity。

"Shortcuts"structure

假设我们有一个家庭关系的知识图谱,包含以下实体和关系:Alex是Brian的孩子(Alex-child_of-Brian)Cole嫁给了Brian(Cole-married_to-Brian)Daniel是Cole的哥哥(Daniel-brother_of-Cole)Daniel是Alex的舅舅(Daniel-uncle_of-Alex)这是一个包含冗余信息的密集型的知识图谱。显然,可以通过前三条relationships推导出最后一条relationship。但知识图谱中往往存在一些这种冗余信息的捷径。这些捷径可以减少一些entities之间的跳数。

基于这两点观察,我们发现,有限次数的在知识图谱内的路由查找过程,只涉及到局部的知识图谱信息。因此,将query进行知识图谱内信息检索的过程可以用下面这两步来实现:

路由的起点,可以通过向量相似性查找来完成。可以涉及到query与entities或query与relationships的相似度关系查找。

从起点找到其它信息的路由过程,可以用一个LLM来代替完成。将这些备选信息放进prompt里,依托LLM强大的自注意力机制来挑选有价值的路由。由于prompt长度有限,所以只能将局部知识图谱的信息放入,比如起点附近限定跳数内的知识图谱信息,这一点是正好可以由跳数有限性来保证。

整个过程不需要其任何它的KG存储和复杂的KG查询语句,只需要使用vectordatabase和一次LLM的访问。而vectorretrieval+LLMrerank才是这个pipeline中最关键的部分,这也就解释了我们只用一个传统的两路召回架构,就可以达到远超基于图理论的方法(如HippoRAG)的表现。这也说明了,实际上不需要复杂的图算法,我们只需要将图结构的逻辑关系存储在向量数据库里,用一个传统的架构就可以进行逻辑上的子图路由,而现代LLM强大的能力帮助做到了这一点。

方法概览

我们的方法只涉及在RAG流程中检索passages的阶段,不涉及chunking或LLMresponsegeneration的创新和优化。我们假设已经得到了一组corpus的三元组信息,它包含一系列的entities和relationships信息。这些信息可以表示一个知识图谱的信息。

Overallpipelineofourmethod

方法详解

4.1.向量入库

我们准备两个向量存储collections,一个是entitycollection,另一个是relationshipcollection。将一系列的uniqueentities信息和relationships信息,使用embedding模型,转换成向量,存储在向量存储中。对于entities信息,直接将他们的字符描述转换成embedding。对于relationships的原始数据形式,它的结构是一个三元组:

(Subject,Predicate,Object)

我们启发性地直接将它们合并成一个句子

"SubjectPredicateObject"

比如:

(Alex,childof,Brian)->"AlexchildofBrian"(Cole,marriedto,Brian)->"ColemarriedtoBria"

然后直接将这个句子转换成embedding,然后存储在向量数据库里。这种做法方便且直接,虽然这样做可能存在少量的语法问题,但这不影响句子含义的表达,也不影响它在向量空间中的分布。当然,我们同样也鼓励在前期抽取三元组的时候,直接使用LLM生成简短的句子描述。

4.2.向量相似搜索

对于输入的Query,我们遵循常见的GraphRAG中的范式(如HippoRAG,MSGraphRAG),将query提取entities,对于每个queryentity,转换成embedding,分别对entitycollection进行vectorsimilaritysearch。然后将所有queryentities搜索得到的结果进行合并。

对于relationship的向量搜索,我们直接将querystring,转换成embedding,对relationshipcollection进行vectorsimilaritysearch。

4.3.扩展子图

Expandingsubgraphfromtworetrievedways,thenmergedthemtogether

我们以搜索到的entities和relationships为知识图谱里的起始,往外扩大一定的范围。对于起始entities,我们往外扩大一定的跳数后,取它们邻接的relationships,记为

对于起始relationships,我们往外扩大一定跳数,得到

我们将两个set取并集,

基于跳数有限性,我们仅需要扩大较小的度数(如1,2等),就能涵盖大部分可能有助回答的relationships。请注意,这一步扩展的度数的概念和回答问题总共需要的跳度的概念不同。比如,如果回答一个query问题涉及两个相差n跳的entities,那么实际上往往只需要扩展n/2度就可以,因为这两个entities是被向量相似召回后的两个起始端点。如图,向量召回到了两个红色的entities,只需要从它们开始,相向扩展2度,就能覆盖到4度的跳数,这足以回答涉及到这两个entities的4跳问题。

Infact,toanswerthequestionwith4degreehops,youonlyneedtoexpanditby2degreesfrombothendpointsinthesetting.

4.4.LLMRerank

这一步中,我们使用LLM强大的自注意力机制,完成对relationships候选集的进一步筛选。我们使用one-shotprompt,将query和relationships候选集放入prompt里,要求LLM从中选择出可能对回答这个query有帮助的relationships。考虑到有些query可能存在一定的复杂性,我们采用Chain-of-Thought的思想,让LLM的回答里写下思考过程,我们观察到,这一方法对一些偏弱的模型有一些帮助。我们规定LLM的返回为json格式,以便于解析格式。具体的prompt参考如下:

Oneshotinputprompt

这个prompt是一个展示的参考,实际上,如何把relationships中的三元组转成一个通顺的短句,是一个棘手的问题。但是,你完全可以用上文提到的启发性的方法,把三元组直接拼在一起。如:

(Eleanor,bornin,1122)可以直接转成Eleanorbornin1122

这种方式有时会带来一定的语法问题,但它是最快,最直接的方式,也不会对LLM带来误解。

4.5.获得最终passages

对于上面的例子,实际上可以在LLMrerank这个阶段直接返回最终的回答,比如在Oneshotoutputprompt的json字段里加上比如“finalanswer”的字段。但是,这一步的prompt里只有relationship的信息,不一定所有问题都可以在这个阶段返回最终答案,所以其它具体的信息应该要在原始的passsage里获得。

LLM返回精确排序后的relationships。我们只需要取出先前在存储中的对应relationship信息,从中获取相应的metadata,在那里有对应的passageids。这些passages信息就是最终被retrieved到的passages。后续生成回答的过程和naiveRAG一样,就是将它们放入prompt的context中,让LLM给出最后的回答。

结果

我们使用与HippoRAG中一致的denseembedding,facebook/contriever,来作为我们的embedding模型,可以看到,在三个multi-hop的数据集上结果比较上,我们的方法大幅超过naiveRAG和HippoRAG的结果。所有的方法使用相同的embedding模型设置。我们使用Recall@2作为我们的衡量指标,它表示,

Onthemulti-hopdatasets,ourmethodoutperformsnaiveRAGandHippoRAGinalldatasets,allofthemarecomparedusingthesamefacebook/contrieverembeddingmodel.

这一结果说明了,即使是最简单的多路召回然后rerank的RAG范式,应用在graphRAG的场景上,也能得到state-of-the-art的performance。这一结果也说明了,合理的向量召回和LLM设置,是应用在multi-hopQA场景中的关键。

回顾我们的方法,把entities和relationships转成向量,并进行搜索的作用就是寻找子图的起点,它像是破解刑侦案件中的现场发现的“线索”。而后面扩展子图和LLMrerank的过程像是具体通过这些“线索”进行分析的过程,LLM拥有“上帝视角”,可以在一众的候选relationships中,聪明地选择对破案有用的relationships。这两个阶段,回归本质,也就是对应朴素的vectorretrieval+LLMreranking范式。

作者介绍

张晨,Zilliz算法工程师

会议推荐

12月13日至14日(下周五至周六),AICon全球人工智能开发与应用大会将在北京盛大开幕!本次大会汇聚70+位AI及技术领域的顶尖专家,深入探讨大模型与推理、AIAgent、多模态、具身智能等前沿话题。此外还有丰富的圆桌论坛、以及展区活动,带你深入探索大模型的最新实践与未来趋势。年度最后一次AI盛宴,让我们一起见证AI未来。

THE END
1.犬种分类图像数据集数据说明: 该数据集包含120种犬类图像,每个文件夹大约150张图片。 品种分类:: 非洲猎犬 墨西哥无毛犬 标准贵宾犬 迷你贵宾犬 玩具贵宾犬 卡迪根犬 彭布罗克犬 布拉班克格里芬 柯伊伯犬 垂耳兔 ...http://www.dilitanxianjia.com/16976/
2.[卡通狗女]图片免费下载卡通狗女素材卡通狗女模板女兽医检查宠物 美丽的女警察和警犬 小女孩在农场-为孩子们的快乐图 时尚在城市滑板车上的小女孩 超级猫和超级狗剪影 快乐的白人妇女和她的小女儿戴着3D眼镜坐在沙发上,一边吃着爆米花一边笑着看电视里的喜剧电影。 矢量线。 戴牛仔帽的女孩 十几岁的女孩读一本书 男孩和女孩坐在字母的多维数据集 夫妇牵着他...https://m.58pic.com/tupian/katonggounv.html
3.catVSdogdata深度学习猫狗分类任务数据集猫狗数据集 coco-2014test-cat_dog-2659.zip 1、COCO数据集test2014中的猫狗图像和标签,标签格式为xml和txt两种。 2、类别为cat和dog 3、数量为2000多张 4、可以接用于YOLO猫狗检测 上传者:weixin_51154380时间:2022-03-28 yolo猫狗图像分类数据集 ...https://www.iteye.com/resource/Suyebiubiu-12328169
4.TensorFlow深度学习教程.pdfTensorFlow 深 度 学 习 简要目录 人工智能绪论 1.1 人工智能 1.2 神经网络发展简史 1.3 深度学习特点 1.4 深度学习应用 1.5 深度学习框架 1.6 开发环境安装 1.7 参考文献 第2 章 回归问题 2.1 神经元模型 2.2 优化方法 2.3 线性模型实战 2.4 线性回归 2.5 参考文献 第3 章 分类问题 3.1 手写数字图片数据集 ...https://m.book118.com/html/2021/0402/7040124053003110.shtm
1.CatDogRecognition通过数据统计分析了解数据集分布,基于 PyTorch 框架搭建 AnimalCNN 模型并训练,对模型进行全面评估与预测结果可视化。同时开发了 PyQt5 图形用户界面,方便用户上传图像进行猫狗识别,展示识别结果及置信度,为猫狗图像分类提供了完整解决方案,具有一定的拓展性与应用潜力,可用于宠物图像识别相关领域或作为深度学习图像分类的...https://python.code.coder100.com/index/index/content/id/57368
2....家养动物数据集25234张7类VOC+YOLO格式(鸡鸭鹅牛羊猪狗数据集...该数据集包含25234张用于多种家畜和家禽检测的图像,每张图像都有对应的XML和TXT文件进行标注。标签种类为7种,分别是“cattle”(牛)、“chicken”(鸡)、“dog”(狗)、“duck”(鸭)、“goat”(山羊)、“goose”(鹅)和“pig”(猪),总共有155891个标注框。数据集未经过增强处理,适合用于训练和评估目标检测模型。https://blog.51cto.com/u_17037082/12703066
3.详解PyTorch中的Dataset:功能实现及应用示例fromtorch.utils.dataimportDatasetfromPILimportImageimportosclassCatsAndDogsDataset(Dataset):""" 猫和狗的图像数据集 """def__init__(self,directory,transform=None):""" Args: directory (string): 图像数据的目录路径。 transform (callable, optional): 需要对样本进行的可选变换。 https://blog.csdn.net/m0_73640344/article/details/144094192
4.深度学习视角下的猫狗图像识别实现人工智能技术在图像识别领域取得了显著进展,其中基于深度学习的图像分类方法在猫狗图像识别中表现出色。本文将介绍使用深度学习技术实现猫狗图像分类的方法,具体包括数据集的准备、模型构建和训练过程,并探讨了该技术在实际应用中的潜在价值。 随着深度学习技术的不断发展,图像识别已经成为其中的一个重要应用领域。猫狗图像...https://m.nowcoder.com/discuss/518041359870066688
5.基于SSDMobileNet摘要:针对传统卷积神经网络对猫狗图像识别效果差的问题,构建了一种基于SSD_MobileNet_v1目标检测模型的猫狗图像识别方法.通过采集猫狗图像,创建数据集,对图像进行增强、标注等预处理,以消除噪声对识别的影响.在TensorFlow平台下,运用MobileNet提取特征,通过RPN区域建议生成特征区域,将此特征区域输入到SSD网络进行训练,应用...https://d.wanfangdata.com.cn/periodical/tjzyjssfxyxb202001009
6.一些关于猫狗绝育益处的论文2、第二个潜在的偏见是,我们的数据集没有提供每只狗被绝育的年龄,完整狗繁殖的次数,或者绝育狗在绝育前是否繁殖。 3、最后,如前所述,目前还无法知道绝育与观察到的结果之间的联系。生殖和死亡原因之间的直接因果关系是可能的,但实际关系可能更复杂。 有论文出处真好 https://www.ncbi.nlm.nih.gov/pmc/articles...https://m.douban.com/group/topic/258950408/
7....ai生成的图库存例证.插画包括有下落,多维数据集,休息室...插画 关于 带太阳镜的狗在海滩上享用清凉的饮料,旁边站着. 想法是用一点幽默来唤起那种温暖和清新. 插画 包括有 下落, 多维数据集, 休息室 - 279034538https://cn.dreamstime.com/%E5%B8%A6%E5%A4%AA%E9%98%B3%E9%95%9C%E7%9A%84%E7%8B%97%E5%9C%A8%E6%B5%B7%E6%BB%A9%E4%B8%8A%E7%8E%A9%E8%80%8D-ai%E7%94%9F%E6%88%90%E7%9A%84%E5%9B%BE-%E5%B8%A6%E5%A4%AA%E9%98%B3%E9%95%9C%E7%9A%84%E7%8B%97%E5%9C%A8%E6%B5%B7%E6%BB%A9%E4%B8%8A%E4%BA%AB%E7%94%A8%E6%B8%85%E5%87%89%E7%9A%84%E9%A5%AE%E6%96%99%EF%BC%8C%E6%97%81%E8%BE%B9%E7%AB%99%E7%9D%80-image279034538
8.狗吃声音淘声网描述:倾吐的狗食入塑料碗。 Tag:OWI动物塑料狗碗食品饮食浇注 by Ryntjie 来源Freesound 详情下载 wav827.2 KB1152 kbps... 描述:倾吐的catfood到塑料碗里。 Tag:猫动物宠物喵喵猫国内宠物碗食品动物OWI浇注塑料 by theneedle.tv 来源Freesound 详情下载 ...https://www.tosound.com/sound/sound-grKv517d
9.米兰大学发布论文与猫咪叫声数据集,分类喵喵叫米兰大学的研究团队在期刊《动物福利》上发布了论文《猫在不同环境中叫声的自动分类》。 他们通过音频信号处理和模式识别算法,实现了对猫叫声的自动分类。此外,团队还开放了一个包含 440 段由 21 只猫收集的叫声数据集。 收集二十一只猫,在三种状态的喵喵叫 猫,一直以来都是最受欢迎和喜爱的家庭宠物之一,通过对它...https://www.pianshen.com/article/33982716275/
10.五释放迁移学习的力量·ApacheCN深度学习译文集·看云想法是使用通常是图像分类专家的预训练模型来解决我们的问题,即数据样本较少。 制定我们的现实问题 正如我们前面提到的,我们将在图像分类问题上进行工作,每个类别的训练样本数量较少。 我们的问题的数据集可在 Kaggle 上获得,它是其中最受欢迎的基于计算机视觉的数据集之一。 我们将使用的数据集来自猫狗挑战,而我们...https://www.kancloud.cn/apachecn/apachecn-dl-zh/1956105