1. 知识图谱发展历程
知识图谱的发展可以从人工智能和语义网(注意语义网和语义网络是不同的)这两个领域进行追溯。在人工智能方面,人类致力于使计算机更智能,能够进行推理、分析、预测等高级思维活动。而知识图谱是该目标实现的一个工具,通过将人类的知识用计算机进行表示和组织,并设计相应算法完成推理、预测等任务。其中,专家系统就是利用知识库支撑AI的一种有效尝试。另一方面,互联网技术的高速发展,带来数据爆发式增长,虽然存储和检索海量数据的技术也在日益提高,但是推理、预测等复杂任务,始终发展滞后,无法有效助攻商业智能等决策任务。此时,人们希望通过引入知识,使得原始数据能够支撑推理、问题求解等复杂任务,这个目标的实践者就是语义网(Semantic Web)。
因此,知识在AI 和 语义网中目标可以总结为知识的数据化 和数据的知识化。前者是为了让计算机表示、组织和存储知识;后者是为了让数据支持推理、预测等智能任务。知识图谱的发展历程如下图所示:
1.1 Knowledge Base:
通常翻译为“知识库”。知识库是人工智能的经典概念之一。最早是作为专家系统(Expert System)的组成部分,用于支持推理。 知识库中的知识有很多种不同的形式,例如本体知识、关联性知识、规则库、案例知识等。相比于知识库的概念,知识图谱更加侧重关联性知识的构建,如三元组。
1.2 Semantic Net/ Semantic Network:
通常翻译为“语义网络”,注意要与与Semantic Web语义网区别开来。语义网络最早是1960年由认知科学家Allan M.Collins作为知识表示的一种方法提出。WordNet是最典型的语义网络。相比起知识图谱,早期的语义网络更加侧重描述概念以及概念之间的关系,而知识图谱更加强调数据或事物之间的链接。
1.3 The Semantic Web :
通常翻译为“语义网”或“语义互联网”,是Web之父Tim Berners Lee于1998年提出的。语义互联网的核心内涵是:Web不仅仅要通过超链接把文本页面链接起来,还应该把事物链接起来,使得搜索引擎可以直接对事物进行搜索,而不仅仅是对网页进行搜索。谷歌知识图谱是语义互联网这一理念的商业化实现。也可以把语义互联网看做是一个基于互联网共同构建的全球知识库。
1.4 Linked Data:
Linked Data 通常翻译为“链接数据”。是Tim Berners Lee于2006年提出,是为了强调语义互联网的目的是要建立数据之间的链接,而非仅仅是把结构化的数据发布到网上。他为建立数据之间的链接制定了四个原则:
(1)使用URI标识万物
(2)使用HTTP URI,以便用户可以(像访问网页一样)查看事物的描述
(3)使用RDF和SPARQL标准
(4)为事物添加与其它事物的URI链接,建立数据关联。
从理念上讲,链接数据最接近于知识图谱的概念。但很多商业知识图谱的具体实现并不一定完全遵循Tim所提出的那四个原则。
所以,专家系统、语义网(Semantic Web)、链接数据Linked Data 都和知识图谱有着千丝万缕的关系,可以说它们是知识图谱的前身。
2. 知识图谱类型
根据知识的主客观性,可以把知识分为事实性(或客观性)知识和主观性知识。根据知识的变化性质,知识可以分为静态知识和动态知识。比如,美国总统这个知识是有时间限定的,不同时间美国总统是不同的。另外,更为常见的是将知识分为领域知识、百科知识、场景知识、语言知识和常识知识等。领域知识,如法律领域、金融领域,是指特定领域内的知识。百科知识则是指涵盖各行各业的通用型知识,例如:人物、机构、地点等。场景知识是指在某个特定场景下或者需要完成某项任务所需要的知识,例如:在订机票或者买火车票中需要提供的信息等。语言知识指的是语言层面的知识,例如:Microsoft 的缩写是 MS,减肥和瘦身是同义词等。常识知识是指大家公认的一些知识,比如,狗有4条腿,鸟会飞,鱼在水里游等。常识也是AI中的一大难点,其实目前对于常识的边界、常识如何表示等都在研究中,并无定论。
3 典型知识图谱项目
互联网的发展为知识工程提供了新的机遇。在一定程度上,是互联网的出现帮助突破了传统知识工程在知识获取方面的瓶颈。从1998年Tim Berners Lee提出语义网至今,涌现出大量以互联网资源为基础的新一代知识库。这类知识库的构建方法可以分为三类:互联网众包、专家协作和互联网挖掘。
3.1 英文知识库
常见的英文知识库如下图所示:
偏向于schema的Schema.org
偏向于语言学的WordNet(主要用以英语的词义消歧)
偏向于概念层面的ConceptNet
常识知识库:Web Child、Cyc
领域知识库:HerbNet(中草药),linked life data(生命科学领域),
GeoData(地质学领域LinkedGeoData.org)
单语言或者多语言的百科数据:YaGo,XLORE,DBpedia,Freebase,Zhishi.me,CN-DBpedia,Wikidata,PKUBase
3.1.1 Cyc
Cyc是一个通用的常识库,主要由人工构建。Cyc 的主要特点是基于形式化的知识表示方法来刻画知识。 Cyc不仅包括知识,而且提供了非常多的推理引擎,支持演绎推理和归纳推理。但过于形式化也导致知识库的扩展性和应用的灵活性不够。目前Cyc知识库涉及50万条概念的500万条常识知识。OpenCyc是其开放出来免费供大众使用的部分知识,包括24万条概念的约240万条常识知识。
3.1.2 WordNet
WordNet 是最著名的词典知识库,主要用于词义消歧。WordNet主要定义了名词、动词、形容词和副词之间的语义关系。例如名词之间的上下位关系(如:“猫科动物”是“猫”的上位词),动词之间的蕴含关系(如:“打鼾”蕴含着“睡眠”)等。WordNet3.0已经包含超过15万个词和20万个语义关系。
3.1.3 ConceptNet
ConceptNet是一个开放的、多语言的知识库。ConceptNet主要综合了专家构建、NLP抽取、游戏众包、外部开放数据导入等各种技术手段来构建。ConceptNet5版本已经包含有2800万关系描述。最新版本为5.7,详情可以查看官网:5.7版本-2019年发布。与Cyc相比,ConceptNet采用非形式化,更加贴近自然语言的描述,而不像Cyc那样采用形式化的谓词逻辑。与链接数据Linked Data和谷歌知识图谱相比,ConceptNet更加侧重词与词之间的关系。所以,从这点来看,它更接近WordNet。但是又比WordNet包含的关系类型多。
3.1.4 FreeBase
Freebase是一个开放共享的、协同构建的大规模链接数据库。Freebase是由硅谷创业公司MetaWeb于2005年启动的一个语义网项目。2010年,谷歌收购了Freebase作为其知识图谱数据来源之一。Freebase主要采用社区成员协作方式构建。其主要数据来源包括维基百科Wikipedia、世界名人数据库NNDB、开放音乐数据库MusicBrainz,以及社区用户的贡献等。Freebase基于RDF三元组模型,底层采用图数据库进行存储。Freebase的一个特点是不对顶层本体做非常严格的控制,用户可以创建和编辑类和关系的定义。2016年,谷歌宣布将Freebase的数据和API服务都迁移至Wikidata,并正式关闭了Freebase。
3.1.5 WikiData:
WikiData的目标是构建一个免费开放、多语言、任何人或机器都可以编辑修改的大规模链接知识库。WikiData由维基百科于2012年启动,早期得到微软联合创始人Paul Allen、Gordon Betty Moore基金会以及Google的联合资助。WikiData继承了Wikipedia的众包协作的机制,但与Wikipedia不同,WikiData支持的是以三元组为基础的知识条目(Items)的自由编辑。一个三元组代表一个关于该条目的陈述(Statements)。例如可以给“地球”的条目增加“<地球,地表面积是,五亿平方公里>”的三元组陈述。截止2016年,WikiData已经包含超过2470多万个知识条目。更详细的内容可以查看WikiData官网
3.1.6 DBpedia:
DBpedia是早期的语义网项目。DBpedia意指数据库版本的Wikipedia,是从Wikipedia中的结构化数据 Infobox 中抽取的知识。DBpedia采用了一个较为严格的本体,包含人、地点、音乐、电影、组织机构、物种、疾病等类定义。此外,DBpedia还与Freebase,OpenCYC、Bio2RDF等多个数据集建立了数据链接。DBpedia采用RDF语义数据模型,总共包含30亿RDF三元组。更详细的内容可以查看DBpedia官网
3.1.7 YAGO:
YAGO是由德国马普研究所研制的链接数据库,主要集成了Wikipedia、WordNet和GeoNames这三个数据来源。YAGO将WordNet的词汇定义(比如概念名称的上下位关系)与Wikipedia的分类体系进行融合,使其具有更加丰富的实体分类体系。此外还考虑了时间和空间知识,为许多知识条目增加时间和空间的属性描述。目前YAGO包含了1.2亿条三元组知识。YAGO是IBM Watson的后端知识库之一。更多信息可以查看YAGO官网
3.1.8 BabelNet:
类似WordNet的多语言词典知识库,其目标是解决WordNet在非英语语种中的数据缺乏问题。采用的方法是将WordNet词典与Wikipedia(多语言)百科集成。首先建立WordNet中词典与Wikipedia页面标题的映射,然后利用Wikipedia中的多语言链接,再辅助以机器翻译技术,来给WordNet增加多种语言的词汇。BabelNet 3.0目前包括271语言,1400W同义词组,36.4万词语关系和3.8亿从Wikipedia中抽取的链接关系,总计超过19亿RDF三元组。 BabelNet集成了WordNet在词语关系上的优势和Wikipedia在多语言语料方面的优势,构建成功了目前最大规模的多语言词典知识库。更多更新的咨询可以查看BabelNet官网
3.1.9 NELL:
NELL(Never-Ending Language Learner)是卡内基梅隆大学开发的知识库。NELL主要采用互联网挖掘的方法从Web自动抽取三元组知识。NELL的基本理念是:给定一个初始的本体(少量类和关系的定义)和少量样本,让机器能够通过自学习的方式不断的从Web学习和抽取新的知识。目前NELL已经抽取将近300万条三元组知识。更多信息可以查阅NELL官网
3.1.10 ConceptGraph:
Microsoft ConceptGraph是以概念层次体系为中心的知识图谱。与Freebase等知识图谱不同,ConceptGraph 以概念定义和概念之间的IsA关系为主。给定一个概念如“Microsoft”,ConceptGraph 返回一组与“微软”有IsA关系概念组,如:“Company”,“Software Company”,“Largest OS Vender”等。这被称为概念化“Conceptualization”。ConceptGraph 可以用于短文本理解和语义消歧中。例如,给定一个短文本 “the engineer is eating the apple”,可以利用ConceptGraph来正确理解其中“apple”的含义是“吃的苹果”还是“苹果公司”。微软发布的第一个版本包含超过 540 万的概念,1255 万的实体,和 8760万的关系。 ConceptGraph 主要通过从互联网和网络日志中挖掘来构建。更多更新咨询欢迎查阅ConceptGraph官网
3.2 中文知识库
OpenKG是中文知识图谱资源库,所以是一个社区联盟。该社区有多个中文知识图谱可以免费下载使用。
OpenKG旨在通过建设开放的社区来促进中文知识图谱数据的开放与互联,促进中文知识图谱工具的标准化和技术普及。更多更新的中文知识图谱可以在OpenKG上获取
Zhishi.me
Zhishi.me是中文常识知识图谱。主要通过从开放的百科数据中抽取结构化数据,已融合了百度百科,互动百科以及维基百科中的中文数据。
CN-DBPeidia
CN-DBPeidia:CN-DBpedia是由复旦大学知识工场实验室研发并维护的大规模通用领域结构化百科。CN-DBpedia主要从中文百科类网站(如百度百科、互动百科、中文维基百科等)的纯文本页面中提取信息,经过滤、融合、推断等操作后,最终形成高质量的结构化数据,供机器和人使用。CN-DBpedia自2015年12月份发布以来已经在问答机器人、智能玩具、智慧医疗、智慧软件等领域产生数亿次API调用量。CN-DBpedia提供全套API,并且免费开放使用。大规模商务调用,提供由IBM、华为支持的专业、稳定服务接口。
当然还有一些其他如东北大学的TechKG、清华大学的SciKG。更多更新知识图谱数据可以查看openKG上的知识图谱数据集