1 基本概念
知识图谱是一种用于描述实体之间关系的语义网络,它是一种半结构化数据的表示方法,用于描述实体、属性和实体之间的关系。知识图谱通常被用于构建智能搜索引擎、推荐系统、问答系统等人工智能应用。知识图谱的核心思想是将现实世界中的信息转化为图形,其中节点表示实体,边表示实体之间的关系。
1.1 基本元素
知识图谱(英语:Knowledge Graph),是结构化的语义知识库,用于以符号形式描述物理世界中的概念及其相互关系。其基本组成单位是 “实体-关系-实体”三元组,以及实体及其相关属性-值对,实体间通过关系相互联结,构成网状的知识结构。
1.2 优点
知识图谱具有以下几个优点:
- 知识图谱可以统一的结构化的表现形式,机器可读,对人类友好。这样可以方便地存储、查询和交换知识,也可以提高知识的可视化和可理解性。
- 知识图谱可以含有丰富的语义信息,概念,属性,实体之间关系。这样可以增强知识的表达能力和建模灵活性,也可以支持知识的推理、评估和更新等操作。
- 知识图谱可以构建之后可以作为背景知识直接供下游应用使用。这样可以提高知识的价值和可用性,也可以支持多领域的知识检索、理解和推荐等应用。
- 知识图谱可以丰富关联信息,天然具有图的各种特征,可以进行图的相关操作。这样可以发现知识的隐藏模式和关联,也可以支持社团发现、路径查询、追溯源头等应用。
2 发展历史
知识图谱的发展背景是一个很有趣的话题,它涉及到人工智能、语义网络、本体论、语义网、链接数据等多个领域。简单来说,知识图谱是一种用于描述实体之间关系的语义网络,它是一种半结构化数据的表示方法,用于描述实体、属性和实体之间的关系。知识图谱的概念最早由谷歌于2012年提出,但是知识图谱的发展却可以追溯到1960年的语义网络,中间经历了一系列的演变,才形成了今天的知识图谱。
知识图谱的发展历史可以分为以下几个阶段:
- 语义网络: 由Quillian于上世纪60年代提出的知识表达模式,采用相互连接的节点和边来表示知识,节点表示对象、概念,边表示节点之间的关系。语义网络的优点是简单直白,缺点是缺乏标准,完全靠用户自定义。
- 本体论: 一词源于哲学领域,且一直以来存在着许多不同的用法。在计算机科学领域,其核心意思是指一种模型,用于描述由一套对象类型(概念或者说类)、属性以及关系类型所构成的世界。AI研究人员认为,他们可以把本体创建成为计算模型,从而成就特定类型的自动推理。80年代出现了一批基于此的专家系统,比如WordNet和Cyc项目。
- 万维网: 1989年Time Berners-Lee发明了万维网,实现了文本间的链接。万维网通过超文本标记语言 (HTML)把信息组织成为图文并茂的超文本,利用链接从一个站点跳到另个站点。这样一来彻底摆脱了以前查询工具只能按特定路径一步步地查找信息的限制。
- 语义网: 1999年万维网之父Tim Berners-Lee提出了语义网(Semantic Web)的概念,语义网是为了使得网络上的数据变得机器可读而提出的一个通用框架。“Semantic”就是用更丰富的方式来表达数据背后的含义,让机器能够理解数据。“Web”则是希望这些数据相互链接,组成一个庞大的信息网络,正如互联网中相互链接的网页,只不过基本单位变为粒度更小的数据。
- 链接数据: 2006 年Tim Berners - Lee 提出与其要求大家现在把数据搞得很漂亮,不如让大家把数据公开出来。只要数据能够公开出来,数据能够连在一起,我们就会建立一个生态,这套想法他称为 “ 链接数据 ”。在关联数据的定义上,他定义了几层什么是好的链接数据:第一是在网上,一颗星;二是机器能够自动读,这就有两颗星;三是尽可能用一个公有的格式,不要是某个公司私有的,这样能够促进公开交换,做到这点就有三颗星;因为是 W3C 提出来的,必须用 RDF,用 RDF 就有四颗星;如果 RDF 有 ID 把它连在一起就是五颗星。这就是 Tim Berners - Lee 提出的链接数据的五星标准。
- 知识图谱: 2012年,谷歌发布了知识图谱,用于改善搜索的质量。知识图谱除了显示其他网站的链接列表,还提供结构化及详细的关于主题的信息。其目标是,用户将能够使用此功能提供的信息来解决他们查询的问题,而不必导航到其他网站并自己汇总信息。
3 构建流程
按照流程来说,知识图谱的构建主要包含6个环节:知识建模、知识存储、知识抽取、知识融合、知识计算以及知识应用。
3.1 知识建模
知识建模就是基于行业的应用属性、知识特点、实际需求,依据知识图谱的模式进行业务抽象和业务建模,主要是实体定义、关系定义、属性定义。
为保证知识图谱质量,通常在建模时需考虑如下几个关键问题:
- 概念划分的合理性,如何描述知识体系和知识点之间的关联关系;
- 属性定义方式,如何在冗余度最低的条件下满足应用和可视化展示;
- 时间、时序等复杂知识标示,通过匿名节点的方式还是边属性的方式进行描述,有何优缺点?
- 后续的知识扩展难度,是否支持概念体系的变更和属性调整?
3.2 知识存储
知识图谱的原始数据类型一般来说有三类:
- 结构化数据(Structed Data),如关系数据库
- 非结构化数据,如图片、音频、视频
- 半结构化数据,如XML、JSON、百科
目前,主流的的知识存储解决方案包含单一式和混合式存储两种。其存储方式一般有两种选择,一个是通过RDF(资源描述框架)这样的规范存储格式来进行存储,比较常用的有Jena等。还有一种方法,就是使用图数据库来进行存储,常用的如Neo4j等。
相较而言图数据库在关联查询的效率上会比传统的关系数据存储方式有显著的提高。当我们涉及到2,3度的关联查询,基于知识图谱的查询效率会高出几千倍甚至几百万倍。
除此之外,基于图的存储在设计上会非常灵活,一般只需要局部的改动即可。因此对大数据量的情况,更应用图数据库来进行存储的。
3.3 知识抽取
信息抽取(infromation extraction)信息抽取是一种自动化地从半结构化和无结构数据中抽取实体、关系以及实体属性等结构化信息的技术。关键技术包括:实体抽取、关系抽取和属性抽取。
- 实体抽取,也称为命名实体识别(named entity recognition,NER),是指从文本数据集中自动识别出命名实体。 当前主流技术为面向开放域(open domain)的实体抽取。
- 关系抽取,为了得到语义信息,从相关语料中提取出实体之间的关联关系,通过关系将实体联系起来,才能够形成网状的知识结构。其技术研究已经从早期的“人工构造语法和语义规则”(模式匹配),“统计机器学习”发展到“面向开放域的信息抽取方法”与“面向封闭领域的方法”相结合。
- 属性抽取,目标是从不同信息源中采集特定实体的属性信息,如针对某个公众人物,可以从网络公开信息中得到其昵称、生日、国籍、教育背景等信息。采用数据挖掘的方法直接从文本中挖掘实体属性和属性值之间的关系模式,据此实现对属性名和属性值在文本中的定位。
3.4 知识融合
通过信息抽取,实现从原始数据中获取到了实体、关系以及实体的属性信息后,就需要通过知识融合对数据进行逻辑归属和冗杂/错误过滤。即需要实体链接和知识合并两个流程实现。
- 对非结构化/半结构化数据处理: 实体链接(entity linking)的流程是通过给定的实体指称项,通过相似度计算进行实体消歧和共指消解,确认正确实体对象后,再将该实体指称项链接到知识库中对应实体。其中实体消歧解决同名实体产生歧义问题,共指消解解决多个指称对应同一实体对象的问题。
- 对结构化数据处理: 知识合并主要涉及“合并外部知识库”,处理数据层和模式层的冲突;以及用RDB2RDF等方法“合并关系数据库”
3.5 知识计算
在通过信息抽取,和知识融合后已经实现从原始杂乱数据中获得到一系列基本的事实表达。之后一步就是通过知识计算获得结构化,网络化的知识体系以及更新机制。其主要包括4方面内容:本体构建、知识推理、质量评估和知识更新。
- 本体构建:即通过实体并列关系相似度计算、实体上下位关系抽取、本体的生成,完成自动化的本体构建,实现将数据归类成人工的概念集合/概念框架,如“人”、“事”、“物”等。
- 知识推理:通过基于逻辑的推理、基于图的推理和基于深度学习的推理,处理知识图谱之间关系值缺失,完成进一步的知识发现。
- 质量评估:可以对知识的可信度进行量化,通过舍弃置信度较低的知识来保障知识库的质量。
- 知识更新:在知识图谱实际应用后,将有大量数据涌入和更新,因此知识的更新流程是必须搭建的。更新包括概念层的更新和数据层的更新。
概念层的更新是指新增数据后获得了新的概念,需要自动将新的概念添加到知识库的概念层中。数据层的更新主要是新增或更新实体、关系、属性值,对数据层进行更新需要考虑数据源的可靠性、数据的一致性(是否存在矛盾或冗杂等问题)等可靠数据源,并选择在各数据源中高频出现的事实和属性加入知识库。
至此经过上述流程的处理,知识图谱的初始化已经构建成功了。
3.6 知识应用
经过上述5个环节,专项领域的知识图谱已经构建完成,在其具备的特有应用形态,与领域数据和业务场景相结合后,将实际助力企业在该领域取得实际的商业价值。
4 关键技术
以下为知识图谱技术路线图:
在构建类似的图谱过程当中,主要涉及以下几个方面的自然语言处理技术:
- 实体命名识别(Name Entity Recognition)
- 关系抽取(Relation Extraction)
- 实体统一(Entity Resolution)
- 指代消解(Coreference Resolution)
5 应用场景
知识图谱的优点可以体现在很多实际的应用场景中,例如:
- 信息检索: 利用知识图谱可以提供更精准、更丰富、更智能的搜索结果,也可以提高搜索的召回率和准确率,以及对搜索意图的理解和满足。
- 自然语言理解: 利用知识图谱可以提供自然语言中实体和关系的背景信息,也可以提高自然语言的分析和生成的质量和效率,以及对用户的语言和意图的理解和响应。
- 问答系统: 利用知识图谱可以提供问答模式和知识子图之间的映射,也可以提高问答的准确性和可靠性,以及对复杂问题的回答和解释。
- 推荐系统: 利用知识图谱可以提供用户和物品的多维度的特征和关联,也可以提高推荐的个性化和多样化,以及对推荐的解释和反馈。
- 电子商务: 利用知识图谱可以提供商品的结构化和语义化的描述,也可以提高商品的匹配和展示,以及对用户的购买意愿和行为的分析和预测。
- 金融风控: 利用知识图谱可以提供实体之间的关系和风险的分析,也可以提高风险的识别和预防,以及对风险的控制和补救。
- 公安刑侦: 利用知识图谱可以提供实体之间的关系和线索的发现,也可以提高案件的侦破和破解,以及对案件的分析和总结。
- 司法辅助: 利用知识图谱可以提供法律条文的结构化和语义化的表示,也可以提高法律的检索和查询,以及对案件的判决和辅助。
- 教育医疗: 利用知识图谱可以提供知识的可视化和交互式的表示,也可以提高知识的学习和传播,以及对药物分析、疾病诊断等的支持。
6 其它
1、什么时候选择知识图谱?
2、设计知识图谱时要注意什么?
- 业务原则(Business Principle):一切要从业务逻辑出发,并且通过观察知识图谱的设计也很容易推测其背后业务的逻辑,而且设计时也要想好未来业务可能的变化。
- 效率原则(Efficiency Principle)。 效率原则让知识图谱尽量轻量化、并决定哪些数据放在知识图谱,哪些数据不需要放在知识图谱。 效率原则的核心在于把知识图谱设计成小而轻的存储载体。
- 分析原则(Analytics Principle):不需要把跟关系分析无关的实体放在图谱当中。
- 冗余原则(Redundancy Principle):有些重复性信息、高频信息可以放到传统数据库当中。
3、知识图谱与当前流行的ChatGPT等大模型在底层技术上有什么区别和联系?在用户交互层上二者的优劣有体现在哪些方面?
知识图谱是一种用于描述实体之间关系的语义网络,它是一种半结构化数据的表示方法,用于描述实体、属性和实体之间的关系。知识图谱的构建和应用涉及到多个任务,如知识抽取、知识融合、知识推理等。知识图谱的优点是可以提供准确、可拓展、可溯源、机器可理解的知识,也可以支持多领域的知识检索、理解和推荐等应用。
ChatGPT是一种经过训练的大语言模型,它可以根据所训练数据中的模式生成文本。ChatGPT的构建和应用涉及到多个任务,如文本理解、文本生成、文本对话等。ChatGPT的优点是可以基于学习的数据理解人类的文本并且生成类似的文本表达,也可以支持与人直接交互的问答场景。
知识图谱与ChatGPT在底层技术上的区别主要在于知识的表示方式和获取方式。知识图谱是一种知识的形式化表示方式,它使用图结构和三元组来表示知识,它的知识来源于人工定义的本体和规则,或者从结构化或非结构化的数据源中抽取。ChatGPT是一种知识的参数化表示方式,它使用神经网络的权重来表示知识,它的知识来源于大量的文本数据的学习,或者从文本中生成。
知识图谱与ChatGPT在底层技术上的联系主要在于知识的应用和结合。知识图谱可以作为ChatGPT的背景知识,提供文本中的实体和关系的信息,消除歧义,提高理解和生成的准确性。ChatGPT可以作为知识图谱的交互能力,提供自然语言的表达和对话,提高用户的体验和满意度。知识图谱和ChatGPT可以相互补充,形成更强大的知识服务。
知识图谱与ChatGPT在用户交互层上的优劣主要体现在以下几个方面:
- 准确性: 知识图谱的准确性相对较高,因为它的知识是经过人工或自动的验证和筛选的,而且可以追溯到知识的来源。ChatGPT的准确性相对较低,因为它的知识是基于数据的学习和生成的,可能存在事实性错误和时效性问题,而且无法追溯到知识的来源。
- 拓展性: 知识图谱的拓展性相对较低,因为它的知识是受限于本体和规则的,需要不断地更新和完善,而且构建和维护的成本较高。ChatGPT的拓展性相对较高,因为它的知识是基于数据的学习和生成的,可以适应不同的领域和需求,而且训练和应用的成本较低。
- 可解释性: 知识图谱的可解释性相对较高,因为它的知识是以人类可读和机器可读的方式表示的,可以提供知识的逻辑和证据,也可以支持知识的推理和评估。ChatGPT的可解释性相对较低,因为它的知识是以神经网络的权重表示的,无法提供知识的逻辑和证据,也难以支持知识的推理和评估。
- 交互性: 知识图谱的交互性相对较低,因为它的知识是以图结构和三元组的方式表示的,需要专业的查询语言和工具,也需要用户有一定的知识背景和技能。ChatGPT的交互性相对较高,因为它的知识是以自然语言的方式表示和生成的,可以直接与用户进行对话和沟通,也可以适应用户的语言和意图。
4、如何更好的将知识图谱与当下流行的大模型结合起来?
知识图谱与当下流行的大模型结合起来是一个很有前景的研究方向,它可以充分利用知识图谱的结构化和符号化的知识,以及大模型的语义和概率化的知识,实现知识的互补和增强,提高知识的表达能力和应用效果。目前有以下几种知识图谱与大模型结合的方法:
- 知识图谱增强大模型: 这种方法是在大模型的预训练或者推理阶段,引入知识图谱的信息,使大模型能够学习和使用知识图谱中的实体、关系和属性等知识,提高大模型的准确性和可解释性。例如,ERNIE 3.01就是一种将知识图谱三元组转换成文本作为输入,让大模型在预训练阶段直接学习知识图谱的知识的方法。
- 大模型增强知识图谱: 这种方法是利用大模型的语义理解和文本生成能力,来辅助知识图谱的构建和应用,使知识图谱能够从大模型中获取和更新知识,提高知识图谱的覆盖面和时效性。例如,SQL-PaLM2就是一种利用大模型从自然语言中生成 SQL 语句,从而从结构化数据中构建知识图谱的方法。
- 知识图谱和大模型协同使用: 这种方法是将知识图谱和大模型结合起来,形成一个统一的知识服务,使知识图谱和大模型能够相互补充和支持,提高知识的价值和效果。例如,Data-Copilot3就是一种利用大模型从自然语言中抽取关键指标,然后利用知识图谱从数据源中提取相关数据,最后利用大模型生成可视化图表的方法。