Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Knowledge Graph

知识图谱将事实存储为“实体-关系-实体”三元组,使 AI 系统能够查询、关联并推理这些事实。内容涵盖 RDF、GraphRAG 和代码。

知识图谱是一种结构化的事实表示,其中节点是实体,例如人物、地点、产品或概念;带标签的边则表示实体之间的关系。每条事实都是由主语、谓语和宾语组成的三元组,例如(Marie Curie,出生于,Warsaw);模式或本体则定义允许使用哪些类型的实体和关系。由于关系会被显式存储,系统可以通过沿图中的路径回答问题,合并不同来源中关于同一实体的事实,并推断从未被直接陈述的事实。Google 的 Knowledge Graph 于 2012 年推出,为搜索结果旁边的事实信息面板提供支持;Wikidata是由 Wikimedia 志愿者维护的免费知识图谱,包含超过 1 亿个条目。

实体、关系与三元组#

  • 实体(节点):具有明确身份的事物,由本体对每个实体进行类型定义,例如人物、城市或化合物。
  • 关系(边):带有标签的有向链接,例如“出生于”或“首都是”。标签承载含义,因此(Warsaw,首都是,Poland)和(Poland,首都是,Warsaw)代表不同的陈述。
  • 属性:附加到实体上的字面值,例如出生日期或人口数量。
  • 本体:由类别、关系类型和规则构成的模式,例如“每个首都都是一座城市”;推理引擎可以据此从现有事实推导出新事实。

目前主要有两种数据模型。W3C 的资源描述框架(RDF)使用 Web URI 标识每个实体和关系,并存储可通过 SPARQL 查询的纯三元组,适用于 Wikidata 等开放关联数据。图数据库(例如 Neo4j)所使用的属性图则允许节点和边携带键值属性,并可使用 Cypher 或 GQL 等语言查询;ISO 于 2024 年 4 月将 GQL 发布为标准。

在这个小型图谱中,“Marie Curie 出生于哪个国家?”这个问题对应一条两跳路径:从 Marie Curie 经过 Warsaw 到达 Poland;共享的“获奖”边则将两位 Curie 与她们共同获得的 1903 年奖项连接起来。

构建和查询知识图谱#

图谱的数据来自经过整理的数据库、通过命名实体识别(NER)和关系抽取处理的文本(这些任务越来越多地由大型语言模型(LLM)完成),以及图像。随后,实体解析会将指向同一事物的不同提及合并为一个节点,例如将“M. Curie”和“Marie Skłodowska-Curie”合并。除了显式查询外,TransE 等知识图谱嵌入会将每个实体和关系表示为向量,并根据头实体加上关系后与尾实体的接近程度为候选三元组打分,从而预测缺失的链接;图神经网络则直接从图的结构中学习。

计算机视觉可以从图像中提取实体和关系。YOLO26检测器的输出会转化为(图像,包含,类别)三元组;将这些三元组与背景事实结合,就能回答单靠检测器无法回答的问题,例如图像中出现了哪些类型的车辆:

import networkx as nx
from ultralytics import YOLO

# Detect objects in an image
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]

# Each detected class becomes an entity node linked to the image
graph = nx.DiGraph()
for class_id in result.boxes.cls.int().tolist():
    graph.add_edge("bus.jpg", result.names[class_id], relation="contains")

# Background knowledge as (subject, relation, object) triples
for subject, relation, obj in [("bus", "is_a", "vehicle"), ("car", "is_a", "vehicle"), ("person", "is_a", "human")]:
    graph.add_edge(subject, obj, relation=relation)

# Two-hop query: which detected entities are vehicles?
vehicles = [node for node in graph.successors("bus.jpg") if graph.has_edge(node, "vehicle")]
print(f"Vehicles in bus.jpg: {vehicles}")

知识图谱与大型语言模型#

LLM 会将知识隐式存储在其权重中,因此事实难以检查或更新,也容易出现幻觉。知识图谱会显式存储事实,并提供可引用的来源;修改也会立即生效。GraphRAG结合了两者:它扩展了检索增强生成(RAG),检索相互关联的实体和关系路径,或图社区的摘要,而不是彼此孤立的文本片段,因此更擅长回答多跳问题,例如某个零件延迟交付时,哪些供应商还为另一家工厂供货。LLM 也可以将自然语言问题转换为针对现有图谱的 SPARQL 或 Cypher 查询。

实际应用#

  • 搜索与助手:实体信息面板、直接答案和语音助手会在经过整理的大型图谱中查找有关人物、地点和组织的事实。
  • 药物发现:生物医学图谱会关联基因、蛋白质、化合物、疾病和副作用;链接预测可提出候选药物靶点,或发现已批准药物的新用途。
  • 欺诈检测:共享设备、地址或支付卡的账户会形成相互连接的团伙;遍历图谱时,这些团伙会显现出来,即使单独看每个账户都很正常。
  • 场景理解:场景图会将图像描述为物体及其关系,例如(人,骑着,马)。Visual Genome 数据集以这种方式标注了 10 万多张图像,用于训练能够回答场景相关问题的模型。
  • 关系型数据库:将记录存储在通过外键关联的表中,适合使用固定模式的事务。对于“购买了此产品的朋友的朋友”等多跳问题,每跳都需要一次联接;而图数据库可以直接遍历已存储的边。
  • 向量数据库:根据嵌入相似度检索项目,无需显式链接即可查找相关内容。知识图谱会明确记录两个实体之间的关系,而混合系统会同时使用这两种方式。
  • 本体:本体是类型和规则组成的模式,而知识图谱则是在该模式中填入实例事实,例如 Wikidata 中数百万个具体的人物、地点和作品。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来