搜索技术日新月异,如今它不再是搜索框中输入几个单词那么简单了。不仅输入方式多样化,并且还要在非常短的时间内给出一个精准而又全面的答案。目前,谷歌给出的解决方案就是——知识图谱(Knowledge Graph)。
知识图谱能做什么?
知识图谱想做的,就是在不同数据(来自现实世界)之间建立联系,从而带给我们更有意义的搜索结果。
比如,在上图中,用 Google 搜索自然语言处理,右侧会显示研究领域和相关概念。点击这些知识点,又可以深入了解;再比如,搜索一个人名时,右侧会给出此人的生平、背景、居住位置、作品等信息。
这就是知识图谱,它不再是单一的信息,而是一个多元的信息网络。
知识图谱的源头
知识图谱的雏形好几年前就已出现,一家名为 Metaweb 的小公司,将现实世界中实体(人或事)的各种数据信息存储在系统中,并在数据之间建立起联系,从而发展出有别于传统关键词搜索的技术。
谷歌认为这一系统很有发展潜力,于2010年收购了 Metaweb。那时 Metawab 已经存储了1200万个节点(Reference Point,相当于一个词条或者一个页面),谷歌收购后的两年中,大大加速这一进程,现已有超过5.7亿个节点并在它们之间建了180亿个有效连接(这可是一个相当大的数字,维基百科英文版也才有大约400万个节点)。
知识图谱的通用表示方法
本质上,知识图谱是一种揭示实体之间关系的语义网络 ,可以对现实世界的事物及其相互关系进行形式化地描述 。现在的知识图谱己被用来泛指各种大规模的知识库 。
三元组是知识图谱的一种通用表示方式,即 G=(E,R,S)<math xmlns="http://www.w3.org/1998/Math/MathML"><mrow class="MJX-TeXAtom-ORD"><mi>G</mi><mo>=</mo><mo stretchy="false">(</mo><mi>E</mi><mrow class="MJX-TeXAtom-ORD"><mo>,</mo></mrow><mi>R</mi><mrow class="MJX-TeXAtom-ORD"><mo>,</mo></mrow><mi>S</mi><mo stretchy="false">)</mo></mrow></math>,其中 E=e1,e2,…,e|E|<math xmlns="http://www.w3.org/1998/Math/MathML"><mi>E</mi><mo>=</mo><mrow class="MJX-TeXAtom-ORD"><msub><mi>e</mi><mn>1</mn></msub><mrow class="MJX-TeXAtom-ORD"><mo>,</mo></mrow><msub><mi>e</mi><mn>2</mn></msub><mrow class="MJX-TeXAtom-ORD"><mo>,</mo></mrow><mo>…</mo><mrow class="MJX-TeXAtom-ORD"><mo>,</mo></mrow><msub><mi>e</mi><mrow class="MJX-TeXAtom-ORD"><mrow class="MJX-TeXAtom-ORD"><mo stretchy="false">|</mo></mrow><mi>E</mi><mrow class="MJX-TeXAtom-ORD"><mo stretchy="false">|</mo></mrow></mrow></msub></mrow></math> 是知识库中的实体集合,共包含 |E|<math xmlns="http://www.w3.org/1998/Math/MathML"><mrow class="MJX-TeXAtom-ORD"><mo stretchy="false">|</mo></mrow><mi>E</mi><mrow class="MJX-TeXAtom-ORD"><mo stretchy="false">|</mo></mrow></math> 种不同实体,R=r1,r2,…,r|E|<math xmlns="http://www.w3.org/1998/Math/MathML"><mi>R</mi><mo>=</mo><mrow class="MJX-TeXAtom-ORD"><msub><mi>r</mi><mn>1</mn></msub><mrow class="MJX-TeXAtom-ORD"><mo>,</mo></mrow><msub><mi>r</mi><mn>2</mn></msub><mrow class="MJX-TeXAtom-ORD"><mo>,</mo></mrow><mo>…</mo><mo>,</mo><msub><mi>r</mi><mrow class="MJX-TeXAtom-ORD"><mrow class="MJX-TeXAtom-ORD"><mo stretchy="false">|</mo></mrow><mi>E</mi><mrow class="MJX-TeXAtom-ORD"><mo stretchy="false">|</mo></mrow></mrow></msub></mrow></math> 是知识库中的关系集合,共包含 |R|<math xmlns="http://www.w3.org/1998/Math/MathML"><mrow class="MJX-TeXAtom-ORD"><mo stretchy="false">|</mo></mrow><mi>R</mi><mrow class="MJX-TeXAtom-ORD"><mo stretchy="false">|</mo></mrow></math> 种不同关系,S⊆E×R×E<math xmlns="http://www.w3.org/1998/Math/MathML"><mi>S</mi><mo>⊆</mo><mi>E</mi><mo>×</mo><mi>R</mi><mo>×</mo><mi>E</mi></math> 代表知识库中的三元组集合。
三元组的基本形式主要包括实体 A、关系、实体 B 和概念、属性、属性值等,实体是知识图谱中的最基本元素,不同的实体间存在不同的关系。概念主要指集合、类别、对象类型、事物的种类,例如人物、地理等;属性主要指对象可能具有的属性、特征、特性、特点以及参数,例如国籍、生日等;属性值主要指对象指定属性的值,例如中国、1988—09—08等。每个实体(概念的外延)可用一个全局唯一确定的 ID 来标识,每个属性—属性值对可用来刻画实体的内在特性,而关系可用来连接两个实体,刻画它们之间的关联。
如下图是实体 A 与实体 B 组成的一个简单三元组形式。
知识图谱的架构
知识图谱的架构主要包括自身的逻辑结构以及体系架构,分别说明如下。
1. 知识图谱的逻辑结构。
知识图谱在逻辑上可分为模式层与数据层两个层次,数据层主要是由一系列的事实组成,而知识将以事实为单位进行存储。如果用(实体 A,关系,实体 B)、(实体、属性,属性值)这样的三元组来表达事实,可选择图数据库作为存储介质,例如开源的 Neo4j、Twitter 的 FlockDB、Sones 的 GraphDB 等。模式层构建在数据层之上,主要是通过本体库来规范数据层的一系列事实表达。本体是结构化知识库的概念模板,通过本体库而形成的知识库不仅层次结构较强,并且冗余程度较小。
2. 知识图谱的体系架构。
知识图谱的体系架构是指其构建模式结构,如图下图所示。
知识图谱主要有自顶向下与自底向上两种构建方式。自顶向下指的是先为知识图谱定义好本体与数据模式,再将实体加入到知识库。该构建方式需要利用一些现有的结构化知识库作为其基础知识库,例如 Freebase 项目就是采用这种方式,它的绝大部分数据是从维基百科中得到的。自底向上指的是从一些开放链接数据中提取出实体,选择其中置信度较高的加入到知识库,再构建顶层的本体模式。目前,大多数知识图谱都采用自底向上的方式进行构建,其中最典型就是 Google 的 Knowledge Vault。
知识图谱的关键技术
大规模知识库的构建与应用需要多种智能信息处理技术的支持。这就涉及到当下异常火爆的人工智能中的自然语言处理(NLP)技术。
所谓自然语言,就是我们平时所说的话(包括语音或文字),但这些话计算机如何能“理解”?过程很复杂,下面是其中的几个关键步骤。
1. 知识抽取。
知识抽取技术,可以从一些公开的半结构化、非结构化的数据中提取出实体、关系、属性等知识要素。
知识抽取主要包含实体抽取、关系抽取、属性抽取等,涉及到的 NLP 技术有命名实体识别、句法依存、实体关系识别等。
2. 知识表示。
知识表示形成的综合向量对知识库的构建、推理、融合以及应用均具有重要的意义。
基于三元组的知识表示形式受到了人们广泛的认可,但是其在计算效率、数据稀疏性等方面却面临着诸多问题。近年来,以深度学习为代表的表示学习技术取得了重要的进展,可以将实体的语义信息表示为稠密低维实值向量,进而在低维空间中高效计算实体、关系及其之间的复杂语义关联。
知识表示学习主要包含的 NLP 技术有语义相似度计算、复杂关系模型,知识代表模型如距离模型、双线性模型、神经张量模型、矩阵分解模型、翻译模型等。
3.知识融合。
由于知识图谱中的知识来源广泛,存在知识质量良莠不齐、来自不同数据源的知识重复、知识间的关联不够明确等问题,所以必须要进行知识的融合。知识融合是高层次的知识组织,使来自不同知识源的知识在同一框架规范下进行异构数据整合、消歧、加工、推理验证、更新等步骤,达到数据、信息、方法、经验以及人的思想的融合,形成高质量的知识库。
在知识融合过程中,实体对齐、知识加工是两个重要的过程。
4.知识推理。
知识推理则是在已有的知识库基础上进一步挖掘隐含的知识,从而丰富、扩展知识库。在推理的过程中,往往需要关联规则的支持。由于实体、实体属性以及关系的多样性,人们很难穷举所有的推理规则,一些较为复杂的推理规则往往是手动总结的。对于推理规则的挖掘,主要还是依赖于实体以及关系间的丰富情况。知识推理的对象可以是实体、实体的属性、实体间的关系、本体库中概念的层次结构等。
知识推理方法主要可分为基于逻辑的推理与基于图的推理两种类别。
大规模开放知识库
互联网的发展为知识工程提供了新的机遇。从一定程度上看,是互联网的出现帮助突破了传统知识工程在知识获取方面的瓶颈。从1998年 Tim Berners Lee 提出语义网至今,涌现出大量以互联网资源为基础的新一代知识库。这类知识库的构建方法可以分为三类:互联网众包、专家协作和互联网挖掘,如下图所示:
下面介绍几个知名的中文知识图谱资源:
OpenKG.CN:中文开放知识图谱联盟旨在通过建设开放的社区来促进中文知识图谱数据的开放与互联,促进中文知识图谱工具的标准化和技术普及。
Zhishi.me :Zhishi.me 是中文常识知识图谱。主要通过从开放的百科数据中抽取结构化数据,已融合了百度百科,互动百科以及维基百科中的中文数据。
CN-DBPeidia:CN-DBpedia 是由复旦大学知识工场实验室研发并维护的大规模通用领域结构化百科。
cnSchema.org: cnSchema.org 是一个基于社区维护的开放的知识图谱 Schema 标准。cnSchema 的词汇集包括了上千种概念分类、数据类型、属性和关系等常用概念定义,以支持知识图谱数据的通用性、复用性和流动性。
知识图谱的典型应用
知识图谱为互联网上海量、异构、动态的大数据表达、组织、管理以及利用提供了一种更为有效的方式,使得网络的智能化水平更高,更加接近于人类的认知思维。
基于大规模开放知识库或知识图谱的应用,目前尚处在持续不断的发展与探索的阶段。下面列出了一些国内外比较出色的应用。
1. 语义检索。
谷歌公司通过建立 Google Knowledge Graph,实现了对知识的体系化组织与展示,试图从用户搜索意图感知、以及查询扩展的角度,直接提供给用户想要的知识。
2. 智能问答。
IBM 公司通过搭建知识图谱,并通过自然语言处理和机器学习等技术,开发出了 Watson 系统。在2011年2月的美国问答节目《Jeopardy!》上,Watson 战胜了这一节目的两位冠军选手,可与1996年同样来自 IBM 的“深蓝”战胜国际象棋大师卡斯帕罗夫产生的影响相提并论,被认为是人工智能历史上的一个里程碑。
3. 领域专家快速生成。
构建面向特定领域、特定主题的大规模知识库是实现对某一领域深度分析和计算的重要基础,OpenKN 通过实现端到端的开放知识库构建工具集,实现了在给定部分种子(Seed)的情况下,从无到有的生成领域知识库,进而形成领域专家。
4. 行业生态深度分析与预测。
利用开放大数据可以帮助企业发现潜伏在数据中的威胁,将结构化网络日志、文本数据、开源和第三方数据整合进一个单一的环境,屏蔽可疑的信号与噪声,有效保护用户网络,可在信用卡欺诈行为识别、医疗行业疾病预测、电商商品推荐、强化组织数据安全、不一致性验证、异常分析、金融量化交易、法律分析服务等多方面提供有价值的服务。
知识图谱的前景与挑战
在关注到知识图谱在自然语言处理、人工智能等领域展现巨大潜力的同时,也不难发现知识图谱中的知识获取、知识表示、知识推理等技术依然面临着一些困难与挑战,在未来的一段时间内,知识图谱将是大数据智能的前沿研究问题,有很多重要的开放性问题亟待学术界和产业界协力解决。我们认为,未来知识图谱研究有以下几个重要挑战:
知识类型与表示。知识图谱主要采用(实体1、关系、实体2)三元组的形式来表示知识,这种方法可以较好地表示很多事实性知识。然而,人类知识类型多样,面对很多复杂知识,三元组就束手无策了。例如,人们的购物记录信息、新闻事件等,包含大量实体及其之间的复杂关系,更不用说人类大量的涉及主观感受、主观情感和模糊的知识了。
知识获取。如何从互联网大数据萃取知识,是构建知识图谱的重要问题。目前已经提出各种知识获取方案,并已成功抽取大量有用的知识。但在抽取知识的准确率、覆盖率和效率等方面,都仍不如人意,有极大的提升空间。
知识融合。来自不同数据的抽取知识可能存在大量噪音和冗余,或者使用了不同的语言。如何将这些知识有机融合起来,建立更大规模的知识图谱,是实现大数据智能的必由之路。
知识应用。目前大规模知识图谱的应用场景和方式还比较有限,如何有效实现知识图谱的应用,利用知识图谱实现深度知识推理,提高大规模知识图谱计算效率,需要人们不断锐意发掘用户需求,探索更重要的应用场景,提出新的应用算法。
总结
本文对知识图谱的起源、定义、架构、大规模知识库、应用以及未来挑战等内容,进行了全面阐述。
知识抽取、知识表示、知识融合以及知识推理为构建知识图谱的四大核心技术,本文就当前产业界的需求介绍了它在智能搜索、深度问答、社交网络以及一些垂直行业中的实际应用。此外,还总结了目前知识图谱面临的主要挑战,并对其未来的研究方向进行了展望。
知识图谱的重要性不仅在于它是一个拥有强大语义处理能力与开放互联能力的知识库,并且还是一把开启智能机器大脑的钥匙,能够打开 Web3.0 时代的知识宝库,为相关学科领域开启新的发展方向。
参考资料以及推荐阅读
- 柳絮飞.《知识图谱:谷歌打造未来搜索》,电脑爱好者,2013年。
- 徐增林,盛泳潘,贺丽荣,王雅芳.《知识图谱技术综述》,电子科技大学统计机器智能与学习实验室,2016年7月。
- 知识图谱——机器大脑中的知识库
- 人工智能2.0时代的开放知识计算
如有侵权请联系QQ:758230255删除