2.2 多源数据存储和融合
2.2.1 数据来源
我们应当如何构建知识图谱呢?需要先了解下知识图谱的数据来源。知识图谱的最重要数据来源就是以维基百科、百度百科为代表的大规模知识库,此外,互联网的海量网页中也蕴藏着海量知识。接下来,我们分别详细介绍一些典型数据来源。
1. 大规模知识库
大规模知识库以词条作为基本组织单位,每个词条对应现实世界的某个概念,由世界各地的编辑者义务协同编纂内容。随着互联网的普及和Web 2.0理念的深入人心,这类协同构建的知识库,无论是数量、质量还是更新速度,都早已超越传统由专家编辑的百科全书,成为人们获取知识的主要来源之一。目前,维基百科已经收录了超过2200万词条,而仅英文版就收录了超过400万条,远超过英文百科全书中最权威的大英百科全书的50万条,是全球浏览人数排名第6的网站。
除了维基百科等大规模在线百科外,各大搜索引擎公司和机构还维护和发布了其他各类大规模知识库,例如,谷歌收购的Freebase,包含3900万个实体和18亿条实体关系;DBPedia是德国莱比锡大学等机构发起的项目,从维基百科中抽取实体关系,包括1000万个实体和14亿条实体关系;YAGO则是德国马克斯·普朗克研究所发起的项目,也是从维基百科和WordNet等知识库中抽取实体,到2010年该项目已包含1000万个实体和1.2亿条实体关系。此外,在众多专门领域还有领域专家整理的领域知识库。
2. 互联网链接数据
国际万维网组织W3C在2007年发起了开放互联数据项目(Linked Open Data,LOD)。该项目旨在将由互联文档组成的万维网(Web of Documents)扩展成由互联数据组成的知识空间(Web of Data)。LOD以RDF(Resource Description Framework)形式在Web上发布各种开放数据集,RDF是一种描述结构化知识的框架,它将实体间的关系表示为(实体1,关系,实体2)的三元组。LOD还允许在不同来源的数据项之间设置RDF链接,实现语义Web知识库。目前各机构已经基于LOD标准发布了数千个数据集,包含数千亿RDF三元组。随着LOD项目的推广和发展,互联网会有越来越多的信息以链接数据形式发布,然而各机构发布的链接数据之间存在严重的异构和冗余等问题,如何实现多数据源的知识融合,是LOD项目面临的重要问题。
3. 互联网网页文本数据
与整个互联网相比,维基百科等知识库仍只能算沧海一粟。因此,人们还需要从海量互联网网页中直接抽取知识。与上述知识库的构建方式不同,很多研究者致力于直接从无结构的互联网网页中抽取结构化信息,如华盛顿大学Oren Etzioni教授主导的“开放信息抽取”(Open Information Extraction,OpenIE)项目,以及卡耐基梅隆大学Tom Mitchell教授主导的“永不停止的语言学习”(Never-Ending Language Learning,NELL)项目。OpenIE项目所开发的演示系统TextRunner已经从1亿个网页中抽取出了5亿条事实,而NELL项目也抽取了超过5千万条事实。
显而易见,与从维基百科中抽取的知识库相比,从无结构网页中抽取的信息准确率还很低,其主要原因在于网页形式多样,噪声信息较多,信息可信度较低。因此,也有一些研究者尝试限制抽取的范围,例如,只从网页表格等内容中抽取结构信息,并利用互联网的多个来源互相印证,从而大大提高抽取信息的可信度和准确率。当然这种做法也会大大降低抽取信息的覆盖面。天下没有免费的午餐,在大数据时代,我们需要在规模和质量之间寻找一个最佳的平衡点。
4. 其他来源数据
从以上数据来源进行知识图谱构建并非孤立进行的。在商用知识图谱构建过程中,需要实现多数据源的知识融合。以谷歌发布的Knowledge Vault(Dong,et al. 2014)技术为例,其知识图谱的数据来源包括了文本、DOM Trees、HTML表格、RDF语义数据等多个来源。多来源数据的融合,能够更有效地判定抽取知识的可信性。
2.2.2 数据存储
长期以来,关系数据库在数据存储领域处于垄断的地位,被广泛应用在各个行业的管理领域。关系数据模型存储的数据简单、实用,很好地满足了数据管理的需要。其特点为:能够存储大量结构化数据,支持事物的ACID特性,对数据进行访问、分析。然而在云计算的推动下,伴随着互联网多样化应用产生了新型多结构数据,即多源异构大数据,其特点为:多来源,多维度,结构化、半结构化和非结构化的数据混杂,数据量庞大等。
1. 数据存储技术
在以数据为中心的信息时代,存储已经成为了IT基础设施的核心之一,而数据存储(Data Storage,DS)也已经成为继互联网热潮之后的又一次技术浪潮。
就数据本身而言,大致可以分为结构化数据、半结构化数据和非结构化数据三类。数据库分为SQL数据库和NoSQL数据库。数据库主要有五种存储模型:关系、键值存储、文档存储、列式存储、图形。现有主流数据库如表2-1所示。
表2-1 现有主流数据库
2. 数据处理技术
海量数据,结构复杂多样化,且杂而乱,这就需要选择适当的数据处理技术对其进行分析、处理和管理。
(1)大数据处理与Hadoop生态系统
随着互联网的发展,信息检索技术面对的数据量越来越大,这使得很多传统的方法都不能直接应用在对海量数据的处理上,否则时间开销将会变得非常大。云计算能够对分散的海量数据进行处理和分析,实现对数据的高效管理。而Hadoop由于其在海量数据处理方面具有非常优越的性能,成为近几年最为流行的云计算应用开发开源平台。大数据处理与Hadoop生态系统如图2-3所示。
图2-3 大数据处理与Hadoop生态系统
这里的技术主要包括以下几项。
● HDFS:提高吞吐量的可靠分布式文件系统;
● MapReduce:大型分布式数据处理模型;
● HBase:支持结构化数据存储的分布式数据库;
● Hive:供数据摘要和查询功能的数据仓库;
● Pig:在MapReduce上构建的一种高级数据流语言,可简化MapReduce任务开发;
● Chukwa:一个用来管理大型分布式系统的数据采集系统;
● ZooKeeper:用于解决分布式系统中的一致性问题,是Chubby的开源实现;
● Avro:一个数据序列化系统;
● Sqoop:主要用于在Hadoop(Hive)与传统的数据库(MySQL、PostgreSQL...)间进行数据的传递;
● KafKa:一种高吞吐量的分布式发布订阅消息系统,处理消费者规模的网站中的所有动作流数据;
● Flume:Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统;
● YARN:一种新的Hadoop资源管理器,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
其他上层操作,如ETL Tools是数据处理工具,Mahout/Deep Learning是数据挖掘方面技术,D3/Echarts/Zoomcharts是数据可视化技术,RDBMS是关系数据库管理系统。
(2)自然语言处理
人们经常用到的查询功能使用的是搜索引擎技术。用户在搜索引擎中输入较长的问题时,计算机要能够给出准确的答案。在我们从电影或电视上看到的未来场景,搜索引擎已经进化到类似人类助手一样能回答针对任何事物的复杂问题的程度。尽管互联网搜索引擎能够导航非常巨大的知识范围,但是我们要达到智能助手的能力还很远。一个很明显的不同就是互联网搜索的查询被划分成少数几个关键词而不是以自然语言表述的实际的问题。人们可以用基于社区的问答系统通过句子甚至是段落来描述他们的信息需求,因为他们知道如果问题描述得更好,其他人会通读上下文获得更为明确的理解而给出更好的回答。相比而言,一个互联网搜索引擎对于一段很长的查询只能给出很差的返回结果或不返回任何有价值的东西。人们只能够将他们的问题转换成一个或几个贴切的关键词去尝试相对贴切的回复。自然语言处理就是更好地理解文本信息,抓住文本的特征。
智能化就是实现人机间自然语言的交互。要使计算机能理解自然语言的意义、意图、思想等,需要强大的自然语言处理技术支持。自然语言处理的技术体系框架如图2-4所示。
图2-4 自然语言处理的技术体系框架
本文利用自然语言处理技术进行分词、聚类等,使网络文档共享相关数据达到语义层次,便于智能化共享。
(3)文本挖掘
文本挖掘指从大量文本数据中抽取隐含的、未知的、可能有用的信息,它是语义搜索的基础。常用的文本挖掘方法包括:全文检索、中文分词、句法分析、文本分类、文本聚类、关键词提取、文本摘要、信息提取、智能问答等。文本挖掘相关技术的结构如图2-5所示。
图2-5 文本挖掘相关技术结构
2.2.3 知识融合
知识融合是将从网络大数据公开的碎片化数据中获取的多源异构、语义多样、动态演化的知识,通过冲突检测和一致性检查,对知识进行正确性判断,去粗取精,将验证正确的知识通过对齐关联、合并计算有机地组织成知识库,提供全面的知识共享的重要方法。通过知识融合的定义可以看出,知识融合建立在知识获取的基础上,知识获取为知识融合提供知识来源。在知识融合中,如何刻画开放网络知识的质量,消除知识理解的不确定性,发现知识的真值,将正确的知识更新扩充到知识库中是研究者们关注的重点。知识融合不同于数据融合、信息融合。数据融合处理的是最原始的、未被加工解释的记录,表现为对文本、数字、事实或图像等数据的关联、估计与合并。信息融合处理的对象则是被加工过的建立关联关系的数据,解释具有某些意义的数字、事实、图像以及能够解答某一问题的文本等形式的信息。而知识融合处理的对象是知识,值得重点关注的是知识不是数据的简单累积,而是有序的可用于指导实践的信息。
面向网络大数据的知识融合方法的研究具有非常重要的意义。从理论角度看,知识融合是自然语言处理、人工智能领域所面临的重要研究课题之一,知识融合研究所取得的每一个进步都有助于计算机加深对人类的智能、语言、思维等问题的理解。从知识工程角度看,知识融合为构造适应网络大数据环境下的知识库提供有效的扩展方法,保障知识库的开放性,通过对知识融合方法的研究解决知识库中知识覆盖面窄,知识库难以动态扩展的难题。从应用上看,知识融合具有巨大的社会价值和经济效益,它是将来自网络大数据碎片化数据中的知识关联起来进行重构,基于网络大数据背后隐藏的知识之间的关系,建立知识库的重要手段,而知识库在很多应用中起着至关重要的作用,例如,在检索方面,借助知识库进行检索具有多方面优势,如可以使检索结果更加精准,不仅如此,借助知识库进行检索还可以智能分析用户的意图,并且进行推理与计算,直接给出用户想要的结果。除此之外,借助知识库可以提供更加全面的检索结果,通过知识库构建的完整的知识体系,用户可以更加全面地掌握知识点。在当前快速发展的电子商务领域中,借助构建的商品知识库,融合用户的兴趣特点和行为,可以准确地向用户推荐其感兴趣的信息和商品。在知识问答、知识推理、情报分析等方面也有重要应用。由此可见,面向网络大数据的知识融合方法研究不但具有深远的理论价值,而且有着广泛的应用前景,可以创造巨大的社会和经济效益。
目前,国内外工业界和学术界对知识融合的关键技术展开了广泛的研究。然而,现有工作大部分是针对知识融合中的局部问题或特定技术的,如知识评估、实体链接、分类对齐、分类合并等,还没有形成一套系统的理论方法以及完整的计算模式和框架。