AI在线 AI在线

人工智能和知识图谱二:构建和使用知识图谱的工具包和算法

一、知识表示标准RDF 和 SPARQL许多知识图谱的核心是资源描述框架 (RDF),它是 W3C 标准,用于以主语-谓语-宾语三元组的形式表示信息。 RDF 提供了一个灵活的图形数据模型,其中每个三元组(例如Alice worksAt CompanyX)都断言资源之间的关系。 它带有形式语义(RDF Schema、OWL 本体),可实现丰富的知识建模(例如类层次结构、域/范围限制)。

人工智能和知识图谱二:构建和使用知识图谱的工具包和算法

一、知识表示标准

RDF 和 SPARQL

许多知识图谱的核心是资源描述框架 (RDF),它是 W3C 标准,用于以主语-谓语-宾语三元组的形式表示信息。RDF 提供了一个灵活的图形数据模型,其中每个三元组(例如<Alice> <worksAt> <CompanyX>)都断言资源之间的关系。它带有形式语义(RDF Schema、OWL 本体),可实现丰富的知识建模(例如类层次结构、域/范围限制)。RDF 中的数据可以以各种格式(Turtle、JSON-LD 等)序列化,并且是模式可选的,这意味着可以从开放模式开始并逐步发展它。要查询 RDF 数据,标准语言是SPARQL(SPARQL 协议和 RDF 查询语言)。SPARQL 是一种类似 SQL 的查询语言,允许对三元组进行模式匹配。它支持复杂的图形模式查询、过滤、聚合甚至推理(通过蕴涵机制)。例如,SPARQL 查询可以通过匹配三元组模式并利用本体关系来询问:“查找在北京公司工作的所有人”。SPARQL 在查询任意图模式方面的表达能力是知识图谱擅长解答复杂问题的原因之一。然而,表达能力的提升也伴随着计算成本:SPARQL 查询引擎必须优化潜在的大型连接,因为单个 SPARQL 查询可能涉及多个三元组模式。SPARQL 引擎中实现了图模式匹配、连接优化和结果分页等算法,以处理大规模查询。许多知识图谱工具包原生支持 RDF/SPARQL,从而确保了互操作性。

图数据库模型——带标签属性图

除了 RDF 模型之外,知识图谱 (KG) 的另一个范例是带标签属性图 (LPG)模型。在这里,节点和边可以具有标签以及任意一组键值属性,而不是将每条边作为预定义的“谓词”。该模型是 Neo4j 等图数据库的基础。LPG 通常使用Cypher(Neo4j 的查询语言)或 Gremlin(一种遍历语言)等语言进行查询。Cypher 提供了一种非常易读的 ASCII 语法,例如MATCH (p:Person)-[:WORKS_AT]->(c:Company {location: "Beijing"}) RETURN p用于查找在北京的公司工作的人员)。RDF 的优势在于标准化和推理能力,而 LPG 则在开发人员友好的建模和某些图操作的性能方面更胜一筹。这两种模型都共享图遍历算法的底层思想。工具正在日益融合:例如,Apache TinkerPop(Gremlin 的框架)可以将 RDF 表示为属性图,而 SPARQL 和 Cypher 都在影响新的标准图形查询语言(GQL)。

嵌入算法——TransE、ComplEx 等

知识图谱嵌入算法是专门的机器学习模型,用于学习实体和关系的向量表示。其目标是使向量空间中的几何运算与图中的关系相对应,从而能够预测新的链接或相似性查询。TransE (平移嵌入)是一种开创性的算法,它将关系表示为向量平移:对于三元组(头h,关系r,尾t),TransE 尝试在向量空间中使h + r ≈ t 。它简单高效,但无法很好地模拟一对多或多对多关系。后来的模型,如TransH、TransR、RotatE,引入了变体(将实体投影到特定于关系的空间或在复空间中使用旋转)来解决这些限制。ComplEx是一种嵌入模型,它使用复值向量来捕捉非对称关系,因为复共轭可以区分r(h,t)与r(t,h) 。它在基准测试中取得了成功,实现了较高的链接预测准确率。这些算法通常优化三元组的评分函数(例如距离或相似度),使用已知的真实三元组和负样本(损坏的三元组)进行训练,以使真实事实的排名高于无意义事实。它们的价值在于能够泛化和预测知识图谱(KG,知识图谱补全)中的新边。然而,嵌入是潜在表示,不易解释,这就是为什么它们经常与符号方法一起使用的原因。最近的嵌入技术集成了图神经网络 (GNN):例如,关系型图神经网络 (GCN)会聚合每个节点的邻居信息,以迭代方式计算其嵌入,从而自然地将局部图结构融入到表示中。图自编码器和基于 Transformer 的模型也用于编码多跳邻域。嵌入算法的选择会影响可扩展性:像 TransE 这样简单的模型可以扩展到数百万个实体,而复杂的神经方法可能需要更多的计算(通常是 GPU)。PyKEEN或DGL-KE等库提供了许多嵌入模型的实现,并在实验中得到广泛应用。

图神经网络

如上所述,GNN 已成为分析知识图谱的重要工具。图神经网络是一种通过聚合邻居节点的表示来迭代更新节点表示的模型。在知识图谱 (KG) 的背景下,关系型GNN 还会考虑边的类型。像R-GCN(关系图卷积网络)这样的模型通过为不同关系类型设置单独的权重矩阵来扩展 GCN。GNN 擅长节点分类(例如,根据图上下文预测实体的标签或类型)和链接预测(GNN 可以输出潜在链接的分数)等任务。它们在我们有额外的节点特征或属性来与关系信息混合的场景中也能大放异彩。一个新兴的发展是Graph Transformers,它将自注意力机制应用于邻域甚至整个子图中的节点,有可能比 GNN 的局部聚合捕获更多的全局交互。 Kumo.ai 博客中引用的关于关系图 Transformer 的研究正在进行中,该研究可以处理包含多种关系类型的大型知识图谱的复杂性。GNN 虽然功能强大,但规模相对较大——其可扩展性通常受限于内存(用于保存邻居信息)以及随图谱规模增长的计算量。诸如邻居采样、小批量训练和使用归纳表征等技术被用于在大型知识图谱上扩展 GNN。

推理器和规则引擎

在算法方面,知识图谱的另一个重要组成部分是推理引擎。这些推理引擎包括描述逻辑推理器(用于 OWL 本体),例如 HermiT 或 Pellet,可以推断子类关系、实例类型等,以及基于规则的引擎,例如支持 SPARQL 推理或 SWRL 规则的引擎。例如,规则引擎可能应用一条规则:“如果 X 是 Y 的父级,且 Y 是 Z 的父级,则推断 X 是 Z 的祖父级。”此类规则可以用语义网标准(RIF/RuleML)编写,也可以通过 Jena 内置规则推理器等引擎实现。这些推理器确保一致性并允许推导隐性知识,但它们可能需要大量计算(在最坏情况下,大型本体的 OWL 推理速度可能会呈指数级增长)。现代系统有时会使用前向链接(提前实现所有推理)来优化查询应答,但这会占用存储空间;而另一些系统则使用后向链接(动态推导查询的依据)来节省空间。一些图数据库(例如 Stardog、GraphDB 和 Ontotext 平台)内置了对常见蕴涵(RDFS/OWL 配置文件)的支持 。同时,属性图系统通常缺乏显式推理器,不过可以通过遍历查询或使用外部工具(例如,将 Apache Jena 推理步骤与 Neo4j 结合进行 OWL 推理)来实现某些约束。

二、关键工具和平台

存在多种用于处理知识图谱的工具包,每种工具包都有不同的优势。

Apache Jena

一个开源 Java 框架,是语义网社区的中坚力量。Jena 提供了用于创建和操作 RDF 图的 API、内存和 TDB 持久存储以及 SPARQL 查询引擎 (ARQ)。它还包含一个内置的基于规则的推理器。Jena 因其对 RDF/OWL 标准的全面支持而备受赞誉,并经常在研究和企业项目中用作知识图谱 (KG) 数据处理的“粘合剂”。在可扩展性方面,Jena TDB 可以在单台机器上处理数千万个三元组,而 Jena 较新的Fuseki服务器则为 Web 应用程序提供了 SPARQL 端点。但是,对于非常大的图或高并发性需求,专用的图数据库可能更受欢迎。Jena 的优势在于其丰富的功能和作为库的灵活性。对于使用 Java 构建自定义知识图谱管道的开发人员来说,它是首选。 

Stardog

一个商业企业知识图谱平台。Stardog 是一个支持 RDF 和 OWL 的图谱数据库,同时也提供了一定的多模型灵活性(它可以提取 JSON、CSV 等数据并将它们映射到图中)。它具有强大的SPARQL 查询引擎,尤其是内置规则引擎,除了 OWL 推理之外,还可以定义推理规则。Stardog 强调企业级功能,例如安全性、可扩展性(它可以在集群模式下运行)和工具(它具有用于虚拟图、搜索集成等的连接器)。许多用户选择 Stardog 是因为它在大型图谱上的性能和便利性——它提供了一个统一的环境来建模本体、加载数据和进行推理查询。在可扩展性方面,Stardog 可以通过集群处理数千亿个三元组,并使用基于磁盘的索引和缓存来提高查询速度。它还提供高级功能,例如全文搜索集成和地理空间查询。易用性:Stardog 带有基于 Web 的 GUI,并支持 GraphQL,方便用户使用 GraphQL 查询。缺点是需要支付许可费用(它是商业软件),并且需要根据具体部署进行调整。

Neo4j

 Neo4j 或许是最著名的图数据库,它使用带标签属性图模型和 Cypher 查询语言。它并非专门的 RDF 存储(尽管名为 Neosemantics 的插件允许导入/导出 RDF)。Neo4j 以其对开发人员友好的特性而闻名,设置和查询相对简单,并配有可视化探索工具(Neo4j 浏览器和 Bloom)。它在图遍历性能方面表现出色,并且拥有成熟的生态系统(多种语言的驱动程序和活跃的社区)。Neo4j 的可扩展性传统上受限于其单实例数据库(用于 OLTP 工作负载),但最新版本(Neo4j 4.x 和 5)引入了分片和 Fabric 技术,用于读取查询的水平扩展。它符合 ACID 规范,可以在高端硬件上处理数百亿个关系。对于知识图谱,Neo4j 通常用于主要需要操作型图查询(例如,实时推荐、欺诈模式检测)而非繁重语义推理的场景。它本身并不执行 OWL 推理——人们要么不用,要么使用外部推理器来提前丰富图谱。Neo4j 的一个关键优势是易用性和可视化;数据科学家可以快速启动 Neo4j 实例并运行非常直观的 Cypher 查询。Neo4j 还具有图数据科学库,可直接在属性图上运行图算法(例如中心性、社区检测)。总而言之,Neo4j 在用户友好性、事务性能和生态系统方面表现强劲,但与 RDF 存储相比,其语义表达能力较弱。

Protégé

由斯坦福大学维护的开源本体编辑器和框架。Protégé 不是一个数据库,而是一个知识建模工具。它提供了一个图形用户界面来定义类、属性和逻辑约束(使用 OWL 本体),有效地充当了知识图谱的模式编辑器。领域专家和知识工程师使用 Protégé 来设计知识图谱的模式(本体),有时还会填充小规模实例进行测试。它支持包括推理器(例如 HermiT)在内的插件,用于验证类层次结构并检查本体的一致性。Protégé 的优势在于它能够帮助设计具有丰富语义的复杂模式——您可以通过友好的用户界面指定Person是Mammal的子类,或者hasSpouse是对称的等等。这使得它对于确保知识图谱的理论合理性至关重要。本体设计完成后,可以将其导入到图形数据库中,该数据库将强制执行或使用该模式。 Protégé 还具有用于本体开发的团队协作功能。它高度可用,尽管在理解形式语义方面存在一定的学习曲线。对于非专业人士来说,种类繁多的 OWL 选项可能会让人不知所措,但 Protégé 可以有效地成为构建知识图谱 (KG) 的 TBox(模式)的工作台。在现代知识图谱项目中,你经常会看到这样的工作流程:使用 Protégé 进行模式设计,而实际的实例数据存储和管理在实现该模式的数据库中,例如 GraphDB 或 Neo4j。

其他值得注意的工具

除了上述工具之外,还有其他广泛使用的工具: Ontotext 的GraphDB(通常简称为 Ontotext GraphDB)是一个企业级 RDF 存储库,以高性能和全文搜索集成而闻名——它用于许多工业项目并提供大数据可扩展性(集群支持)。OpenLink的Virtuoso是另一个资深的三元组存储库,以支持 DBpedia 而闻名;它同时支持 SQL 和 SPARQL 查询,可以充当关系数据和 RDF 数据的统一数据。Blazegraph (以前是 Systap 的 bigdata)是 Wikidata 查询服务使用的开源三元组存储库(以其高效的查询引擎和 GPU 加速选项而闻名)——它的开发在收购后暂停,但它仍在一些地方的生产中使用。RDF4J (以前是 Sesame)是一个类似于 Jena 的开源 Java 框架(一些项目更喜欢它的 API 风格)。对于属性图,除了 Neo4j,JanusGraph(开源,基于 Apache Cassandra 或其他后端构建)允许分布式图存储并支持 TinkerPop/Gremlin 查询。我们将在第 6 节中详细介绍TigerGraph,它是一个分布式图数据库,旨在处理非常大的图和进行实时分析。Grakn (TypeDB)是一个知识图平台,它使用自定义查询语言(Graql)提供超关系模型,专注于内置的智能推理和推理。每种工具在可扩展性方面都有其优缺点:例如,TigerGraph 和 JanusGraph 旨在跨集群进行水平扩展,而 GraphDB 和 Stardog 通常使用大型服务器或通过复制和缓存进行“垂直”扩展。在功能方面:一些强调推理(GraphDB、Stardog),另一些强调分析(TigerGraph、带有 GDS 的 Neo4j),还有一些强调便利性(比如我们将在下一节讨论的云托管服务)。前景丰富,选择往往归结为用例要求,例如数据大小、查询复杂性、推理需求和团队专业知识。

三、关键工具评估

对以上工具进行总结:Apache Jena功能丰富,非常适合定制解决方案,但可能需要更多手动设置才能扩展(将其嵌入 Web 应用程序中需要设置 Fuseki 或类似程序)。Stardog 是企业级的,将语义严谨性(OWL、规则)与良好的可扩展性和流畅的用户体验(特别是对于那些具有 RDF 专业知识的人)相结合。Neo4j 非常用户友好且有详尽的文档,使开发人员可以轻松上手;当模式可以更宽松并且图遍历是核心(社交网络、推荐)时,它是理想的选择。Protégé 在本体设计方面无与伦比,但不用于运行时查询(它是离线设计)。

在性能方面:属性图数据库(Neo4j、TigerGraph)在路径密集型查询方面通常优于 RDF 存储,因为它们可以有效地索引关系,而 RDF 存储在复杂模式匹配方面表现出色,尤其是与推理相结合时。

扩展性方面:众所周知,TigerGraph 和 Amazon Neptune(属性图 + RDF)能够通过分布式架构处理非常大的图(1000 亿条边),而像 Jena TDB 或单实例 Neo4j 这样的程序在单台机器上处理数十亿条关系时会受到限制。

易用性方面:精通 SQL 的用户一开始可能会觉得 SPARQL 很陌生,而习惯于 JSON 的用户可能更喜欢属性图。现代工具正在弥合差距(例如,GraphDB 和 Stardog 提供了 GraphQL 端点以方便使用,Neo4j 的 GDS 库可以轻松地将 ML 带入图表,等等)。

表格样式的比较(例如在 DB-Engines上)通常显示权衡:例如,Jena TDB 是基于文件的,对于并发写入不是 ACID,而 Neo4j 是完全 ACID 并支持用户定义的过程; Stardog 支持推理,Neo4j 原生不支持,等等。

最终,“最佳”工具取决于具体情况,但令人鼓舞的消息是,现在存在一系列成熟的工具来实现知识图谱,这反映了知识图谱在人工智能和企业应用中日益增长的重要性。

相关资讯

迄今为止最大最全面!人类专家级准确性,AI数据驱动的生物医学知识图谱

编辑 | 萝卜皮为了应对生物医学研究中科学出版物和数据的快速增长,知识图谱(KG)已成为整合大量异构数据以实现高效信息检索和自动知识发现的重要工具。 然而,将非结构化的科学文献转化为知识图谱仍然是一项艰巨的挑战,之前的方法无法达到人类水平的准确率。 在最新的研究中,佛罗里达州立大学(Florida State University)和 Insilicom LLC 的研究人员使用了在 LitCoin 自然语言处理挑战赛 (2022) 中获得第一名的信息提取流程,利用所有 PubMed 摘要构建了一个名为 iKraph 的大规模知识图谱。
3/20/2025 2:08:00 PM
ScienceAI

AI问答的核心!知识图谱:突破传统 RAG 的天花板

看似简单的 AI 问答系统,背后却隐藏着无数技术难题。  当我们询问"组件 A 与组件 B 有什么区别"这样的问题时,传统检索增强生成(RAG)系统往往会犯难。 它们就像只会做加法的计算器,遇到了需要乘除法的复杂方程...传统 RAG 的三大痛点传统 RAG 技术已成为 AI 应用的标配,但它面临三个根本性挑战:信息孤岛:文档被切分成互不相关的小块,丢失了上下文联系视野局限:只能基于文本相似度检索,无法理解概念间的逻辑关系推理能力缺失:无法像人类那样进行跨文档的综合分析例如,你问系统:"A组件和B组件有什么区别?
4/8/2025 3:45:00 AM
大数据AI智能圈

知识图谱火了?

知识图谱技术正在悄然升温。  这项技术虽然在AI创业赛道中出现频次最低,但近期却被频频提及。  从大型科技公司到创业企业,知识图谱已成为兵家必争之地。
4/27/2025 12:10:00 AM
大数据AI智能圈
  • 1