知识图谱是对现实世界实体及其关系的有组织表示。它通常存储在图数据库中,后者可以本地化存储数据实体之间的关系。知识图谱中的实体可以代表对象、事件、情境或概念。这些实体之间的关系捕捉了它们如何连接的上下文和意义。
知识图谱将数据和关系与称为组织原则的框架一起存储。这些组织原则可以被看作是围绕数据的一些规则或类别,它们为数据提供了一个灵活的概念结构,以驱动更深入的数据洞察。知识图谱的价值在于它如何组织原则、数据和关系,以为用户或业务提供新的知识。它的设计适用于多种使用模式,包括实时应用程序、搜索与发现,以及为生成式 AI提供基础进行问答。
有时候,人们会把知识图谱的概念复杂化。你可能会听到关于企业级结构的讨论,这些结构整合并连接了来自数据孤岛和各种来源的信息。虽然这确实描述了知识图谱(一个可以支撑数据集成用例的图谱),但它描述的是一个广泛的范围。仅从大规模数据集和多数据源的角度思考会使创建和实施知识图谱显得复杂且耗时。但知识图谱不需要广泛或复杂。你可以构建一个范围较小的图谱来解决特定用例的问题。
你可能在搜索引擎的背景下听说过知识图谱。Google 知识图谱改变了我们在网络上搜索和查找信息的方式。它将关于人物、地点和事物的事实汇集到一个有组织的实体网络中。当你在 Google 上搜索信息时,它利用实体之间的连接来提供上下文中最相关的结果,例如,在 Google 所称的“知识面板”中显示的内容。
Google 知识面板展示了圣家堂的图片、地图、描述、地址、营业时间、建筑师、高度等信息。
Google 知识图谱中的实体代表了我们所知的世界,标志着从“字符串到事物”的转变。这个简单短语背后是一个深刻的概念,即将网络上的信息视为实体,而不仅仅是一堆文本。由于信息被组织成实体的网络,Google 可以利用知识图谱的集体智慧,根据你的查询的意义而非简单的关键词匹配来返回结果。
现在你已经了解了知识图谱如何通过上下文组织和访问数据,让我们来看看知识图谱数据模型的构建块。知识图谱的定义因人而异,但我们可以将其精髓归纳为三个关键组成部分:节点、关系和组织原则。
节点表示并存储关于实体的详细信息,例如人物、地点、物体或机构。每个节点都有一个(有时是多个)标签来标识节点类型,并且可能可选地拥有一个或多个属性(属性)。节点有时也被称为顶点。
例如,在电子商务知识图谱中,节点通常表示诸如顾客(潜在顾客和现有顾客)、产品和订单等实体:
关系连接两个节点:它们显示了实体之间的关联。与节点类似,每个关系都有一个标签,用于标识关系类型,并且可能可选地拥有一个或多个属性。关系有时也被称为边。
在电子商务示例中,客户和订单节点之间存在关系,捕捉了顾客与其订单之间的“下订单”关系:
组织原则是一个框架或模式,根据特定用例的基本概念来组织节点和关系。与许多数据设计不同,知识图谱可以轻松地包含多个组织原则。
组织原则的范围可以从简单的(产品线 -> 产品类别 -> 产品分类法)到复杂的(解释图谱中数据的完整业务词汇表)。将组织原则视为概念地图或元数据层,它覆盖在图谱中的数据和关系之上。
该模型使用与图谱的其他部分相同的节点和关系结构来描述组织原则——这意味着你可以编写既从实例数据中提取,又从组织原则中提取的查询。
在电子商务示例中,组织原则可能是产品类型和类别:
在学习知识图谱时,你可能会遇到关于本体论的文章,并想知道它们在其中的位置。本体论是某一特定领域内概念及其之间关系的正式规范;语义网络是表示本体论的一种常见方式。简单来说,本体论是一种组织原则。
本体论可能非常复杂,定义和维护需要花费大量精力。在决定是否需要本体论时,关键是要考虑你希望通过知识图谱解决的问题。在许多情况下,本体论并非必需。在电子商务示例中,使用产品分类法作为组织原则就足以满足产品推荐的用例。
将知识图谱视为一个不断增长、不断发展的系统,以简化早期设计并更快地交付价值。如果你选择了适合实施知识图谱的技术,随着需求的变化,你可以扩展和演化图谱。通过这种方式,你可以在用例需要时添加本体论,而不是在一开始就被迫构建它们。
让我们看看知识图谱的样子。下面是一个简单的电子商务示例知识图谱,显示节点为圆圈,节点之间的关系为箭头。组织原则也作为节点和关系存储,因此该图使用了一些颜色阴影来显示哪些节点和关系是实例数据,哪些是组织原则:
知识图谱示例,显示了节点为圆圈,关系为箭头。为展示目的,实例数据和组织原则进行了高亮显示。
创建知识图谱涉及概念上映射图数据模型,然后在数据库中实现它。有很多数据库可供选择,但选择合适的数据库可以简化设计过程,加快开发和实施,并使其更易于适应未来的更改和改进。
原生属性图数据库,例如Neo4j(https://neo4j.com/product/neo4j-graph-database/),是实现知识图谱的合理选择。它们本地存储信息为节点、关系和属性,允许直观地可视化高度互连的数据结构。物理数据库与概念数据模型匹配,使得设计和开发知识图谱更加容易。使用属性图,你可以获得:
谱时进行简单的数据建模。因为概念模型和物理模型非常相似(通常是相同的),从设计到实施的过渡更加直接(且易于向非技术用户解释)。
灵活性: 添加新数据、属性、关系类型和组织原则变得容易,无需进行大规模重构或代码重写。随着需求的变化,你可以迭代并逐步扩展知识图谱的数据、关系和组织结构。
性能: 属性图在处理复杂遍历和多对多关系时,相较于 RDF 数据库或关系数据库提供了更好的查询性能。这种性能来自于直接在数据库中存储实体之间的关系,而不是在查询中通过连接重新生成它们。原生属性图数据库通过内存中的指针遍历关系,使得即使是遍历复杂的多关系链的查询也非常快速。
开发者友好的代码: 属性图支持直观且富有表现力的 ISO 查询语言标准,GQL,这意味着你要编写、调试和维护的代码比 SQL 或 SPARQL 更少。Neo4j 的 Cypher 是 GQL 最广泛使用的实现。
人们有时会将属性图与三元组存储(又称 RDF 数据库)视为构建知识图谱的同等可行选项,但三元组存储存在显著的缺点。
基于资源描述框架(RDF),三元组存储使用了一种细粒度的方法进行设计和存储。三元组存储将所有数据表达为主语-谓语-宾语的“三元组”形式。这种模型不支持带有属性的关系或同类型的多重关系。要满足现实世界的用例,你需要实施一些变通办法。常见的变通办法包括将关系转化为对象(称为重述)或使用_单例属性_通过额外的“类型”关系捕捉属性。这些变通方法意味着更大的数据库、更复杂的物理模型,以及较差的查询性能。
由于重述和单例属性迫使在设计上做出艰难的决策,三元组存储并不适合解决涉及混乱数据域的现实问题。基于三元组存储构建的知识图谱更难设计,实施耗时,并且难以更改。
关系型数据库和其他非原生图数据库方法遭遇类似的设计摩擦。无论是关系型数据库还是文档数据库,都不存储关系——必须在查询代码中使用连接或值查找在运行时进行合成。由于关系存在于代码而不是数据集中,每个应用程序和数据用途都必须有自己的实现。SQL(关系数据库查询语言)迫使你在查询中定义每个连接。因此,随着关系数量的增加,知识图谱变得更加难以管理,并且在运行时性能较差。
知识图谱提供了一种强大的工具,用于存储和组织数据,以实现对这些数据的更复杂理解。为了理解公司如何做到这一点,让我们看看使用知识图谱解决特定问题的示例。虽然这不是一个用例的全面列表,但它展示了一组具体的例子,说明了知识图谱在现实世界中的应用。
在生成式 AI应用中,知识图谱捕获并组织关键的领域特定或专有公司信息。知识图谱不仅限于结构化数据;它们也可以处理不太有组织的数据。
GraphRAG,一种通过知识图谱为大语言模型提供基础的方法,正在成为使用专有领域数据的 AI 应用的基础(这些应用称为 RAG 应用)。知识图谱的基础增强了响应准确性,并通过数据关系提供的上下文提高了可解释性。行业领导者如德勤强调了知识图谱在构建企业级生成式 AI 方面的重要作用。Gartner 将知识图谱列为一种“高质量”且对生成式 AI 有重大影响的技术:
此 Gartner 影响力雷达图将知识图谱突出为生成式 AI 领域内的一项高影响力技术(图片来源:Gartner)
在欺诈检测与分析(https://neo4j.com/use-cases/fraud-detection/) 中,知识图谱表示一个交易网络,其参与者及其相关信息。公司可以使用此知识图谱快速识别可疑活动、调查涉嫌欺诈行为,并通过不断变化的欺诈模式发展其知识图谱。诸如路径查找和社区检测等算法为机器学习算法提供了关键信号,可以揭示更复杂的欺诈网络。
在主数据管理(https://neo4j.com/use-cases/master-data-management/)中,知识图谱提供了公司客户及其与公司互动的一个有组织的、已解决的(即“去重的”)综合数据库。
这种有组织的客户视图对于拥有多个部门或应用程序与客户互动的公司尤为重要。如果没有知识图谱,可能很难或不可能获得客户的准确视图。知识图谱通过一个识别客户行为来自同一客户的组织原则将多个应用程序中的客户行为联系起来。
在供应链管理(https://neo4j.com/blog/supply-chain-forecasting/)中,知识图谱表示供应商、原材料、产品和物流网络,这些网络共同为公司的运营和客户提供服务。这种端到端的供应链可视性允许管理者识别薄弱点并预测可能发生中断的地方。诸如最短路径之类的图算法通过找到 A 和 B 之间的最直接路线,实时优化供应链。
在调查性新闻(https://neo4j.com/blog/electiongraph-report-2/)中,知识图谱捕获调查中的关键实体(公司、人物、银行账户等)和活动。将这些实体相互关联,可以发现隐藏的模式,例如本不应该存在的实体之间的远距离关系。
调查员可能会使用实体解析技术,揭示那些为了掩饰活动而隐藏在假身份或壳公司背后的实体。诸如社区检测和链接预测之类的算法也提供了洞察力和进一步调查的方向。
在医学和其他研究(https://neo4j.com/case-studies/basecamp-research/)用例中,知识图谱存储关于研究对象的信息。例如,知识图谱可以将蛋白质和基因序列与环境和化学数据一起存储,揭示复杂的模式并扩展我们对蛋白质的认识。
知识图谱是对现实世界实体及其关系的有组织表示,并且在其上叠加了一个或多个组织原则,以在上下文中框定信息,从而从数据中获取洞察。知识图谱是多个用例中洞察型应用程序和人工智能解决方案的支撑技术。
要掌握知识图谱背后的概念和技术并获得实际操作经验,关注公众号并在后台回复“知识图谱入门”, 您将免费获得该指南的英文原版!
本指南涵盖了如何构建、管理、查询、分析和可视化你的知识图谱,以便你可以开发基于数据的应用程序和高级分析。
GraphAcademy 使用 Neo4j 图数据库中的属性图模型学习知识图谱基础知识。