微信扫码
添加专属顾问
在《大模型应用的10种架构模式》一文 中,知识图谱是RAG系统中的一种重要的技术, 基于知识图谱的大模型应用也成为一个典型的架构模式。但是,在一般的RAG系统中, 都会用到向量数据库,那么,当知识图谱与向量数据库相遇后,会是怎样的场景呢?
知识图谱是一种结构化的信息表示形式,用于说明不同概念之间的关系。它充当一张地图,连接各种数据,并以易于理解的方式表示这些关系。知识图谱经常被用来存储复杂的信息,并通过链接相关概念来促进对大量数据集的理解。
知识数据库一般通过图数据库承载,是集中式信息管理的关键,它提供了优化可访问性的结构化存储库。先进的搜索功能提高了数据检索效率,确保快速和准确的信息发现。协作工具进一步促进实时贡献,促进共享知识和不断改进的文化。
知识图谱由节点(表示实体或想法)和边(表示这些实体之间的联系)组成。例如,在以书籍为中心的知识图谱中,实体可以象征特定的书籍、作者和类别,而连接可以象征链接,如“属于什么类别”或“由谁所有”等。
它们捕获语义关系,这意味着它们理解数据的上下文和含义。这使得它们对于像推荐系统和搜索引擎这样的应用程序非常有用,因为在这些应用程序中,理解数据背后的含义是至关重要的。
知识图谱具有高度的灵活性,能够以传统数据库难以处理的方式表示复杂的、相互连接的数据。
以一个简单的图书知识图谱为例,在这里,我们希望搜索由特定作者编著的所有书籍。
# 使用SPARQL 来通过作者查找图书
query = "
SELECT ?bookTitle WHERE {
?book rdf:type :Book .
?book :writtenBy :AuthorName .
?book :title ?bookTitle .
}
“
BookTitle 是一个变量,它将保存指定作者所写的书的标题。此查询在图中搜索具有: writtenBy 关系的所有书籍。
矢量数据库以矢量的形式存储数据。向量只是表示某些信息的数字序列。例如,在机器学习中,向量经常被用来表示数据点的特征。
矢量数据库在处理复杂和大型数据(如照片、文档和传感器信号)方面正变得越来越流行。它们是为快速有效地处理大型数据集而设计的。
这里数据以数值向量的形式存储。这使得它适用于需要数学运算的应用程序,例如相似性搜索或机器学习。
矢量数据库非常适合执行快速搜索和比较。特别是在处理大型数据集时。它们是图像或文本相似性搜索等应用程序的理想选择,在这些应用程序中,需要查找与给定查询最相似的项。
向量可以有多个维度,允许复杂和详细的数据表示。例如,图像可以由一个高维向量来表示,该向量捕获图像的像素信息、颜色和其他特征。
假设我们拥有一个矢量数据库,每个矢量代表一个图像。我们的目标是识别类似于指定查询图像的图像。
import faiss
import numpy as np
# `image_vectors` 是一个图像向量;`query_vector` 是待查找的图像向量
index = faiss.IndexFlatL2(image_vectors.shape[1])
index.add(image_vectors)
# 查找最相似的5个图像
D, I = index.search(np.array([query_vector]), 5)
print("Indices of similar images:", I)
其中,IndexFlatL2被用来创建一个基于最近邻搜索欧几里得度量的索引,搜索以查询向量的方式提供了前5个最相似的图像。
当对知识图谱与矢量数据库进行比较时,了解它们在显示和查找数据方面的差异非常重要。知识图谱能很好地显示事物之间的联系,非常适合根据意义来查找信息。与此同时,矢量数据库更善于处理复杂的数据,比如文本、图像和没有组织的数据,这使得它们成为需要处理这类数据的任务的关键。
知识图谱与矢量数据库在数据表达、性能和典型用例的比较如下:
| 对比项 | 知识图谱 | 向量知识库 |
|---|---|---|
| 数据表达 | 使用带有节点和边的图形结构来表示实体及其关系 | 使用矢量(数字阵列)表示数据点,适用于数值和高维数据。 |
| 用例 | 对于理解实体之间的关系至关重要的应用程序非常理想。它们通常用于语义搜索、推荐系统和知识管理系统。 | 最适合于需要相似性搜索的应用程序,如图像识别、自然语言处理和机器学习。 |
| 性能 | 在表示复杂关系方面提供了很大的灵活性,但在处理大规模的数字数据时可能会遇到性能问题。 | 为数值数据和相似性搜索提供优秀的性能,但在表示复杂的、相互关联的数据时可能不那么灵活。 |
4. 知识图谱与向量数据库的结合
在某些情况下,同时使用知识图和矢量数据库可能非常强大。例如,在推荐系统中,可以使用知识图谱来理解目标和用户之间的关系,而向量数据库可以用来执行快速相似性搜索以找到最相关的目标。
kg_query = "'
SELECT ?relatedItem WHERE {
:UserID :likes ?item .
?item :relatedTo ?relatedItem .
}
"'
# 从知识图谱中找到目标列表
related_items = ["Item1", "Item2", "Item3"]
# 使用向量数据库查找相似的目标
similar_items = []
for item in related_items:
item_vector = get_vector(item)
D, I = index.search(np.array([item_vector]), 5)
similar_items.extend(I)
# 得出推荐列表
print("Recommended items:", similar_items)
在这个例子中,使用知识图来查找与用户喜欢的对象相关目标,使用向量数据库来查找与这些相关对象相似的目标,从而形成一个相对全面的推荐系统。
知识图谱的向量化一般表达为嵌入模型,这些模型旨在将实体和关系映射到度量空间中的低维向量表示(嵌入)。在关系型相关变换下,实体之间的接近度反映了知识图谱中存在相应的边的可能性。换句话说,如果两个实体通过知识图谱中的一个特定关系连接在一起,那么在应用相应的关系特定转换之后,它们的嵌入应该是紧密相关的。
例如,两种知识图谱嵌入模型:TransE 和 PairRE。TransE 将每个实体和关系表示为嵌入空间中的一个向量。对于给定的三元组(头部、关系、尾部) ,TransE 的目标是使头部实体的嵌入和关系的嵌入之和近似等于尾部实体的嵌入。这种基于翻译的方法允许 TransE 有效地建模实体之间的简单关系。
另一方面,PairRE 将每个关系表示为一对向量(rH,rT) ,并将元素相乘(Hadamard 乘积)应用于实体嵌入。对于一个给定的三元组(头,关系,尾) ,PairRE 的目的是使 rh ∘ h (其中 rh 是头特定关系嵌入)的元素智能积近似等于 rt ∘ t (其中 rt 是尾特定关系嵌入)的元素的Hadamard乘积。这种方法允许 PairRE 建模实体之间更复杂的关系,同时考虑到头部和尾部实体在关系中的特定角色。
TransE 和 PairRE 都使用梯度下降法进行训练,以便在满足各自的约束时尽量减少误差。然而,由于问题的规模,在大型知识图谱中训练这些模式可能是具有挑战性的。随着知识图谱中实体数量的增加,潜在三元组的数量以二次方式增加,这使得在训练期间考虑所有可能的三元组在计算上是不可行的。为了解决这个问题,一般会使用负抽样来估计知识图谱中不存在的三元组的误差。这种技术通过破坏正三元组(即 知识图谱中存在的三元组)来生成负三元组,方法是用一个随机实体替换头部或尾部的实体。然后,训练该模型,使其正三元组的得分高于负三元组。这种方法允许模型从现有的和不存在的关系中学习,同时保持可管理的计算复杂性。
知识图谱嵌入模型的主要任务之一是链接预测,它包括推断图中缺失的链接。链路预测有两个常见的应用: 二叉链路分类和潜在链路完成度排序。
二叉链路分类。给定一个三元组(头部,关系,尾部) ,预测三元组可能是真或假。这对于诸如事实检查或知识库补全等任务非常有用。
潜在链路补全的排序。给定一个部分三元组,例如,(头,关系,?),模型对缺失实体的潜在候选者进行排序。这对于诸如推荐系统或问题回答之类的任务非常有用。
为了评估 KG 嵌入模型在链路预测任务中的性能,使用了两个常用的指标:
hit@N,衡量的是排在 N 个预测前列的正确实体的比例。例如,如果给定(头部,关系)对的正确尾部实体在100个潜在候选者中排名第3,那么 Hits@10得分将为1(因为正确的实体在前10名中) ,而 Hits@1得分将为0(因为正确的实体不是最高预测)。
MRR,此度量计算正确实体的倒数排名的平均值。倒数排名是第一个正确预测的排名的倒数。例如,如果正确的尾部实体排名第三,倒数排名将是1/3。
当前,大致有三种不同的学习机制,有助于提升知识图谱嵌入模型的性能: 非结构化统计学习,网络学习和主题学习。这些机制为嵌入式模型如何捕获和利用知识图谱中的信息提供了不同的视角。通过了解每个机制的作用,深入了解各种嵌入模型的优点和局限性,从而开发出更有效的知识图谱学习方法。
非结构化统计学习是一种面向知识图谱的学习方法,其重点是利用潜在变量建模三元组(h,r,t)的概率分布。此方法没有明确考虑图结构或关系之间的逻辑规则。相反,它依赖于实体的统计共同出现的频率和知识图谱内的关系作出预测。在非结构化统计学习中,每个头部实体、尾部实体和关系在嵌入空间中用一个不同的向量表示。模型根据这些嵌入在数据中共同出现的频率和模式来学习它们。三元组(h,r,t)的得分通常使用点积或嵌入的头部、关系和尾部之间的另一个相似性度量来计算。
这种方法不直接利用图的结构属性,而是关注实体和关系之间的统计关系。这使得非结构化统计学习在数据表现出强共现模式时特别有用,这种模式不需要详细的图结构分析就可以捕获。
网络学习是一种不需要明确考虑关系的语义就可以获取知识图谱的结构特征的机制。这种方法利用连通性模式和图的拓扑结构来学习反映实体的邻近性和相关性的嵌入。
像 TransE 这样的嵌入模型可以通过基于图谱中观察到的连通性调整实体和关系嵌入来学习潜在的网络模式。在训练过程中,该模型试图最小化由边直接连接的实体之间的嵌入距离,同时最大化不直接连接的实体之间的距离。这个优化过程允许模型学习反映图结构的嵌入,在图中更接近的实体具有更相似的嵌入。
通过学习这些结构模式,网络学习允许嵌入模型捕获知识图谱的重要拓扑特征,这对于像链接预测或实体聚类这样的任务可能是至关重要的,尤其是在没有详细的关系信息的情况下。
这是知识图嵌入过程中发现关系规则的一种机制。主题是知识图谱中可以表示逻辑规则或关系之间约束的小的、重复出现的子图。
知识图谱的嵌入模型,如 TransE,可以通过优化关系嵌入来学习这些模式,以满足模式所隐含的约束条件。主题学习可以捕捉图结构之外的各种规则,比如对称性(如果 A 与 B 相关,那么 B 与 A 相关),为知识图谱中的规则学习提供了一个精确的定义,它完全依赖于图的结构而不是外部信息或推理。这种方法有助于捕获和利用知识图谱中固有的模式来提高嵌入质量和预测性能。
在链接预测任务中增加负样本的数量和多样性,以提供更具挑战性和代表性的测试。重采样指标(R-MRR)和标准指标一起使用,可以以获得更准确的模型性能评估,特别是对于大型知识图谱,统一的负样本可能会产生误导。
知识图谱和矢量数据库各有其独特的优势,适合不同类型的任务。知识图谱擅长表示和查询实体之间的复杂关系,这使它们成为语义搜索和推荐系统等应用程序的理想选择。矢量数据库为存储和搜索大量数字数据而进行了优化,使它们非常适合进行图像和文本相似性搜索等任务。在某些情况下,结合这两种技术可以提供一个强大的解决方案,利用各自的优势来获得更好的结果。其中,知识图谱的向量化提供了一种新的结合尝试。
PS,如果希望对向量数据库有进一步的了解以及在工程中更好的应用,可以参考图灵出版的《从零构建向量数据库》一书:
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-07-03
企业级知识图谱项目之:数据库选型
2026-07-02
企业级知识图谱的实体架构治理实践
2026-07-02
一文讲清:“统一语义”、“构建本体”、“AI推理”这三者的关系
2026-07-02
graphify + claude 图谱关系
2026-07-01
把运维能力装进 Qoder,一句话就能定位根因
2026-07-01
Gbrain、GraphRAG、LLM Wiki、Graphify:4 种知识图谱方案怎么选
2026-07-01
一文讲清:本体(Ontology)与语义(Semantics)到底是什么关系?
2026-06-30
从 OOP 到本体:用形式语义支撑 AI 协作方法论
2026-04-07
2026-04-19
2026-04-23
2026-04-22
2026-06-03
2026-04-23
2026-05-26
2026-05-07
2026-05-28
2026-05-23
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。