日常生活中,我们经常遇到以下两种信息展现方式:


  二者展示的信息量是差不多的,但右边这种看起来更加直观。而且,随着文本篇幅的增长,这种优势会体现得更加明显。
和人一样,机器也更加擅长利用右图所示的数据。但矛盾之处在于,互联网等数据平台存储的大多是左图所示的数据。要把左图转换成右图,机器需要经历一个「阅读理解」的过程。
这个过程如何完成?这就要提到我们今天的主题——知识图谱。
知识图谱可以做什么?
知识图谱的概念于 2012 年由 Google 提出,当时主要被用来提高其搜索引擎质量,改善用户搜索体验。随着大数据时代的到来和人工智能技术的进步,知识图谱的应用边界被逐渐拓宽,越来越多的企业开始将知识图谱技术融入其已经成型的数据分析业务,有的甚至使用知识图谱作为其数据的基础组织与存储形式,成为其数据中台的核心基建。 
与谷歌类似,微软将知识图谱技术用于旗下必应(Bing)搜索引擎,优化搜索结果质量和交互式搜索体验;LinkedIn 与 Facebook 利用知识图谱挖掘其平台上人、事、资讯等之间的相互关系,使得用户更容易发现感兴趣的内容、找到志同道合的朋友;eBay、亚马逊等电商平台使用知识图谱为用户和产品建立联系,执行更精准的产品推荐;IBM 则专注于企业服务,其 IBM Watson Discovery 产品能够帮助用户根据自身的特殊需求快速构建自己的知识图谱框架。
虽然知识图谱的概念 2012 年才被提出,但其背后的思想本质上是上个世纪的语义网络(Semantic Network)知识表达形式,即一个由节点(Point)和边(Edge)组成的有向图结构知识库。其中,图的节点代表现实世界中存在的“实体”,图的边则代表实体之间的“关系”。

图 1:传统知识库与知识图谱示意图 [1]
与传统的数据存储和计算方式相比,知识图谱技术更加侧重于对非结构化异构数据的收集和处理,更擅长对于关系的表达和计算,可以处理复杂多样的关联分析、挖掘到更多隐藏知识。与此同时,知识图谱的数据结构与人工智能领域许多技术任务所基于的数据一脉相承(异质结构多关联的大数据),可以为后续的机器学习和推理任务提供强有力的支持,帮助企业在智能搜索、智能问答、智能推荐、以及大数据分析这几个方面提升性能。

  • 智能搜索:传统的搜索引擎依靠网页之间的链接和权重进行搜索排序,而知识图谱提供了实体的分类、属性和关系的描述,从而可以直接对事物进行更精准的语义搜索。

  • 智能问答:基于知识图谱的智能问答是目前产业界问答系统的主要技术路线之一,即对于给定的自然语言问题,利用知识图谱技术进行语义的解析、查询、推理以得出答案。该技术常见于智能手机或音箱载体上的智能对话机器人,如 Siri、Google Assistant、Amazon Alexa、小爱同学、天猫精灵,以及微软的小冰、小娜等,这些智能问答 agent 的背后都有相关企业各自积累的知识图谱作为问答系统的支撑。

  • 智能推荐:基于知识图谱的推荐能更好将用户与被推荐项目之间的各种相互联系考虑进来,可以增强数据的语义信息、挖掘隐藏的关联信息,进一步提高推荐的准确度。

  • 大数据分析:基于知识图谱中实体的关联信息和推理,我们能挖掘出传统数据分析较难得到的隐含信息,该优势在存在大量异构信息的数据集中更为显著。基于知识图谱的大数据关联分析在金融风控、反欺诈乃至安防等应用场景中都有很好的效果。


近年来,知识图谱的诸多优势和应用前景使得面向特定领域的知识图谱构建在行业应用中得到推广,产生了如医疗知识图谱、金融知识图谱、电商图谱等不同的垂直行业的知识图谱形态。

图 2:行业知识图谱应用一览 [2]
如何构建知识图谱?
一般来说,构建一个知识图谱通常会经历知识获取、知识表示与建模、知识融合、知识存储,以及构建完成后的知识查询和推理几大要素:

  • 知识获取:从不同来源、不同结构的数据中抽取知识(实体、关系以及属性等信息),这是知识图谱构建的核心与前提条件。

  • 知识表示与建模:为知识制定统一的数据架构(data schema),将获取到的知识依照统一的数据结构存储并形成知识库,这是知识图谱正式构建的第一步,影响着后续的知识融合、存储以及查询推理可以使用的方法与效果。

  • 知识融合:将不同源的知识以统一的框架规范进行验证、消歧、加工等异构数据整合工作,这是知识图谱更新与合并的必经之路,为不同知识图谱间的交互融合提供可能性。

  • 知识存储:依据数据量的大小、数据特征以及应用需求的不同,选取合适的存储模式,将获取到的数据存储起来,形成知识图谱。

  • 知识查询与推理:基于构建完成的知识图谱进行查询,或者进一步推理挖掘出隐藏知识来丰富、扩展知识图谱,这是知识图谱构建的最终目的,与知识获取共同影响着知识图谱的应用场景和范围。


图 3:知识图谱构建的要素与示例流程
在执行正式的知识获取步骤之前,通常会首先确认知识的建模表示方式,主要的方式有两种:

  1. 先为知识图谱设计数据模式(data schema),再依据设计好的数据模式进行有针对性的数据抽取,这是自顶向下(top-down)的数据建模方法,一般适用于数据相对集中、知识结构相对确定的垂直领域行业知识图谱

  2. 先进行数据的收集和整理,再根据数据内容总结、归纳其特点,提炼框架,逐步形成确定的数据模式,这是自底向上(bottom-up)的数据建模方法,一般适用于与涉及海量数据、内容繁杂且架构不清晰的公共领域通用知识图谱


图 4:知识图谱数据建模方法 [3]
知识图谱构建的核心技术、局限与发展方向
知识获取是构建知识图谱的核心与前提条件,也是自动构建知识图谱最关键的影响要素和重点研究领域。除了纯人工的知识输入之外,目前的知识获取主要是指针对结构化数据(如关系型数据库)、半结构化数据(如词典、百科类标记清晰的网页数据)、或者非结构化数据(如声音、图像和文字语料数据)这三类不同结构的知识进行的自动或半自动抽取。
对于结构和半结构化的数据,通常只需要简单的预处理和映射即可以作为后续数据分析系统的输入,相关技术已经比较成熟。而非结构化数据通常需要借助自然语言处理、信息抽取、乃至深度学习的技术来帮助提取有效信息,这也是目前知识抽取技术的主要难点和研究方向,包含实体抽取关系抽取事件抽取三个重要的子技术任务。

  • 实体抽取:主要是指命名实体识别(Named Entity Recognition, NER)任务,即从纯文本中自动识别并提出特定类别的命名实体,如人物、组织、地点、时间、金额等。实体抽取是知识抽取中最基础的步骤,早期主要是通过人工编写规则的方式进行抽取,但规则不易总结、成本高且移植性差,目前主要是作为补充方法使用。在这之后,实体抽取多采用基于特征的统计方法,使用如隐马尔可夫(HMM)和条件随机场(CRF)等模型,将实体抽取当做序列标注问题进行预测标注。而近年来,随着深度学习的发展,目前较流行的方法是将统计方法与深度神经网络相结合,使用如长短期记忆网络(LSTM)自动提取特征,再结合 CRF 模型标注提取实体,自动化程度更高,适用范围更广。

  • 关系抽取:指从文本中识别抽取实体之间的关系,抽取结果常使用 SPO 结构(即主谓宾结构)的三元组来表示。与实体抽取类似,早期主要使用基于模板的方法(触发词模板、依存句法分析模板等),近年来开始发展出半自动的基于监督学习的方法(CNN、RNN 等)和纯自动的基于弱监督学习的方法(远程监督、Boostrapping 等)。目前在关系抽取任务上取得最佳表现的模型大多融入了注意力机制,如 Attention CNNs 模型和 Attention BLSTM 模型等。

  • 事件抽取:指识别文本中目标事件的信息,并以结构化的形式呈现。例如从投融资新闻中定位融资公司、融资金额、投资企业等信息;或是从恐怖袭击事件的新闻报道中识别提取出袭击发生的时间、地点和受害人信息等。事件抽取同时涉及到实体和关系抽取的相关技术。从宏观的事件抽取思路上来看,事件抽取的方法可分为流水线抽取和联合抽取两大类方法。流水线抽取的思路是将事件抽取任务进一步分解为事件识别、元素抽取、属性分类等一条流水线上的多个子任务,分别使用相应的机器学习分类器实现,这是目前事件抽取的主流方法。联合抽取则主要是采用基于概率图的模型进行联合建模,或基于深度学习的方法(如基于注意力机制的序列标注模型),将事件的多个元素作为一个整体共同识别并提取。


移动互联网、云计算、以及物联网等技术的快速发展开启了一个大规模生产、分析和应用数据的大数据时代。然而,互联网上只有少数的结构或半结构化的数据知识可方便直接地被机器解析。对于非结构化数据的知识抽取尚达不到完全取代人工的准确度要求,而依靠人工编辑的知识图谱构建有着高成本、低效率的问题。根据德国 Mannheim 大学的研究者估算 [5],手动创建一个三元组(即一条记录)的成本在 2 到 6 美元之间。那么,使用纯人工的方式构建一个大型知识图谱的总成本就会在数百万到数十亿美元之间。相比较而言,自动创建知识图谱的成本可以降低 15 到 250 倍左右,即一个三元组需要 1 美分到 15 美分左右的成本。因此,如何应用自动化知识抽取技术,在广泛的自由文本信息中自动且准确地提取高质量、结构化知识,将成为知识图谱构建的重要突破点。

图 5:每个三元组成本与错误率之间的关系示意 [5]
前沿的知识图谱自动构建技术
知识获取是知识图谱自动构建的核心,而非结构化知识又是知识获取里面最需要攻克的技术难点。近年来,深度学习和相关自然语言处理技术的迅猛发展使得非结构化数据的自动知识抽取少人化、乃至无人化成为了可能。与传统方法相比,深度学习方法减少了对外部工具的依赖,能构建端到端的系统直接进行实体识别、关系抽取等任务,简单高效。
在深度学习的基础上,艾伦人工智能实验室和微软的研究人员结合自然语言处理领域较为成功的预训练语言模型,提出了自动知识图谱构建模型 COMET(COMmonsEnse Transformers)[8]。该模型可以根据已有常识库中的自然语言内容自动生成丰富多样的常识描述,在 Atomic 和 ConcepNet 两个经典常识图谱上都取得了接近人类表现的高精度,证明了此类方法在常识知识图谱自动构建和补全方面替代传统方法的可行性。

图 6:COMET 从一个已有知识图谱中学习(实线),并生成新的节点和边(虚线) [8]
另一方面,IJCAI 2020 上一篇来自明略科学院知识工程实验室的论文另辟蹊径,从传统的基于文本的知识图谱生成进一步扩展到了基于语音生成知识图谱。其 HAO-Graph 系统 [10] 设计并实现了实时的语音图谱生成架构,并且能够根据演讲者的主题变化在不同的图谱之间切换。

图 7:结合摘要从一长段语音演讲中提取出的知识图谱示例 [10]
HAO-Graph 基于明略科技的 HAO 智能技术,是已知的首个公开发布的从语音中构建知识图谱的系统,实现了中文文本和语音知识图谱的实时生成和可视化。与此同时,明略科技在最近的 WAIC 2020 上还进一步开放了其 Text2KG API 接口,帮助相关从业人员进行知识图谱底层的数据收集、标注、抽取、以及关联等相关任务,避免了大量的重复工作,节省开发者的时间。
在深度学习发展进入瓶颈的时期,结合知识成为了下一步人工智能技术突破的关键,而知识图谱必然是核心驱动力之一。我们期待这一技术在未来有更大、更广的应用。


©著作权归作者所有:来自51CTO博客作者mob604756ed58d5的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. js基础知识:变量作用域与闭包,以及类与类的继承
  2. Mybatis 最近知识总结(1)
  3. mysql基本知识学习
  4. 【ASM】ASM基础知识
  5. 【OGG】OGG基础知识整理
  6. MYSQL 最近知识总结(2)
  7. MYSQL 最近知识总结(1)
  8. 【体系结构】有关Oracle SCN知识点的整理--补充内容
  9. js基础知识:变量与常量,函数及参数

随机推荐

  1. Android开发者指南(1) —— Android Debu
  2. windows和linux下android sdk通用
  3. Android 性能优化之使用MAT分析内存泄露
  4. 【Android】学习笔记(9)——SQLite简单使
  5. 2012版辅助开发工具包(ADT)新功能特性介绍
  6. Mac下用Charles实现Android(安卓)http和h
  7. Android 内存优化
  8. android sql
  9. 【Android】 从头搭建视频播放器(1)——概
  10. osg for android (一) 简单几何物体的加