OpenKG:愿景与挑战 

本文改编整理自浙江大学计算机科学与技术学院教授陈华钧在杭州首届金融知识图谱论坛上的报告。

关于论坛

首先作为承办方之一,也代表浙江大学,欢迎各位的到来。特别感谢白硕老师和所有的嘉宾百忙之中抽空过来支持这次论坛。

刚才桂林教授已经介绍过,我们组织这类论坛的一个主要目的是促进跨领域的交流,让知识图谱能更多地在垂直领域落地。传统的 KG 仍然局限于搜索引擎和Bot问答,并以百科类常识类知识图谱为主。但我们相信 KG 会逐渐渗透到更多的垂直领域。金融则是十分有希望也备受关注的垂直领域之一。

另外这次论坛,我和鲍捷还有一个目的是希望宣传“开放”对于 KG 发展的重要性。丁力和鲍捷都是语义网和 KG 领域十分资深的专家,现在也都在创业。如果讲 KG 怎么构建,我们经常会去争论是该以 Top-Down 的方式去设计构建,还是该以 Bottom-Up 的方式从粗糙数据中去总结和抽取。我相信他们俩可以争论三天三夜。但有一件事情,特别是做语义网出身的朋友,我们不太会去争论,就是“开放”对于 KG 发展的重要性。实际上每一个真正深入到 KG 这个领域的人,都会或早或迟地意识到开放对于 KG 发展的价值和意义。

我的报告也因此分为三个部分:先谈谈 KG,再谈谈 Open,最后谈 OpenKG。我会从 KG 的发展历程、内涵概念、构建方法等多个角度,并通过一些事实来引证说明我们发起 OpenKG 这个项目不是因为情怀,而是因为 Open 与 KG 的确有着内生密切的联系。

关于 KG 的概念

经常会有其它领域的朋友来问:知识图谱和本体有什么区别?为什么有人叫知识库又有人叫知识图谱?语义网络和知识图谱是什么关系?数据库和知识库什么区别?KG 和 NLP 是什么关系?

关于 KG,如果说得直白一些,只是谷歌出于商业目的创造出的一个新概念,最早只是谷歌搜索引擎的一个辅助功能而已,更多是一个工程产品概念。叫什么不重要,但任何一个新概念的产生都不是突然出现的,而是受到了历史上出现的很多其它相关事物的各种影响。我想首先把这些相关概念按历史发展脉络做个简单梳理,这包括:知识库与知识表示(Knowledge Base & Knowledege Representation)、语义网络(Semantic Network)、本体论(Ontology)、Semantic Web、链接数据(Linked Data)等。

 

首先说知识库(KB)和知识表示(KR)。KB/KR 都是属于人工智能领域的经典概念。刚才白老师已经谈到很多 KR 的难题,如模态知识表示。三元组只是最简单的 KR。今天大多数人谈 AI,大部分时候说的都是深度学习和机器学习。人们太容易被下棋所吸引。但是了解 AI 历史的人都知道,AI 不等于机器学习。从 AI 诞生的第一天起,知识表示和推理就一直是 AI 在符号这个方向的主要分支,但因为困难比较大而没落严重。但请不要轻视和忽视符号 AI,即便是 Hinton 也在强调符号逻辑对于实现强人工智能的重要性。可以打个比方:深度学习能帮助我们构建聪明的 AI,提升的是机器的感知和判断能力,如视觉、听觉、预测分析等;而 KB 则能帮助我们构建更有学识的 AI,辅助提升机器的认知能力,如语言理解、常识推理、决策支持等。显然,聪明不等于有学问、感知不等于智能、计算不等于推理。后面我们还会谈到,实现高级别的人工智能仍然困难重重,很多关键的问题根本没有解决。

再说语义网络。语义网络(Semantic Network)有时会与 Semantic Web(有时候会被翻译为语义网)混淆起来。语义网络是 1960 年前后,作为一种知识表示的手段被提出来。典型的语义网络如 WordNet 和谷歌 KG 有些不一样。WordNet 刻画的是词与词之间的关系,而谷歌 KG 强调的是实体和概念之间的关系。像 MIT 的常识知识库 ConceptNet,以及 BabelNet 大百科语义网络等都更加偏重于词语之间的关系刻画,主要用于辅助 NLP 自然语言处理。此外,在 NLP 领域也一直都在研究怎样自动的从文本抽取和构建语义网络。

再说本体论。Ontology 实际上是个哲学概念。在上个世纪 80 年代,人工智能研究人员将这一概念引入到计算机领域用来研究知识表示。Tom Gruber 把本体定义为“概念和关系的形式化描述”,这方面代表性的学术方向是描述逻辑(Decription Logic)。本体相关的语言或技术通常被用来为知识图谱定义 Schema。

但我觉得对 KG 影响最大的还不是上面说的这些,而是 Web 的发明。我们知道 Web 是新科图灵奖获得者 Tim Berners-Lee 1989 年在欧洲核子研究组织 CERN 发明的。在他最早的 Web Proposal 里面实际上就有 KG 的影子。他这样描述 Web 的愿景:Web 是一个 Linked Information System,Web 以图的方式相互链接和关联,链接可以指向任何事物,包括文档、概念、实体等。在 1994 年的第一届 WWW 大会上,他就已经指出,Web 不止是文本之间的互联,而应该是对象、事物或数据之间的互联。所以,他在 1998 年正式提出了 Semantic Web:“The Semantic Web is a web of data, in some ways like a global database”。从某个角度看,谷歌 KG 是 Semantic Web 理念的一种商业化实现,但的确,谷歌 KG 还只实现了 Semantic Web 的一小部分愿景。还有一个概念叫 “链接数据 Linked Data”也是 Tim 于 2006 年提出,是为了强调要更多的建立数据之间的链接,而非仅仅是把文本数据结构化。

所以 KG 有着 Web、AI、NLP 等多重基因。但知识图谱说到根子上还是得益于 Web 的发展,特别是 Web 发展所带来的大量的开放域数据(包括维基百科)。没有这些开放域的数据做基础,技术再怎么进步,谷歌也无法做出他们的 KG 产品。

关于 KG 的价值

第一个方面,KG 辅助搜索前面已经谈到 KG 最早就是谷歌搜索引擎的一个辅助功能。它所解决的刚需是:我们要搜索的是事物本身,而不是返回一堆的文档。所以当时谷歌 KG 的 Slogan 是:“Things, Not Strings!”。这和Semantic Web 的理念非常 Match。Web 的理想是建立起万物和事物的相互链接,而搜索的理想则是万物和事物的直接搜索。

第二个方面,KG辅助问答交互我想在目前这个时间点上,业界可能更加关心这一点。最近来了解 KG 的好像大多集中于这个方向,有做车载系统的、有做智能厨房的、有做智能家居的。KG 在这些场景下,除了聊天机器人,很多都涉及到怎样通过 KG 提升人与 IoT 设备的智能交互能力。我觉得对于怎样实现 IoT 设备的智能化,与其给它挂载一枚强芯片或增加一个高深的神经网络,还不如简单给它挂接一个背景知识库,这个智能化效果可能更加直接和有效。

第三个方面,KG辅助决策这个方面可能是金融、医疗等领域关注的更多,包括 Kensho、IBM Watson、Plantir 也都在做相关的工作。语义网早期很强调一个概念叫“More Machine-Understandable”。深度学习的流行造成一种错觉,觉得只要有足够好的算法和模型,机器就能读懂所有的数据。我这里引用了 MSR 闫俊博士最近写的一篇文章。我们很多所谓的大数据,首先要把它转变成一个可计算的大数据。我们先不要去谈一些高大上的算法和模型,比如我们首先对一些文本预先抽取一些语义,让数据的语义更加的规范,再逐步建立和增强数据之间的语义关联和链接。很多时候,我们只需要把各种数据有机的组织和关联起来,建一个知识图谱,就可以解决很多上层的决策问题了。从这个角度讲,KG 就是更高质量的、表示更加规范、语义自描述、更加可计算、更加 Machine-Understandable 的大数据。

第四个方面,KG 辅助 AI很多聊天机器人之所以体验差,一个原因就是还不具备足够的语言理解和常识推理的能力。人在听到一句话的时候,不只是做字面上的语法分析,“他要使用自己所有的知识和智能去理解,这不仅仅包括语法,还包含他自己的词汇知识、上下文知识,特别是对相关事物的理解”。Winograd Schema Challenge 是一个新的 AI 评测竞赛,它主要是测试怎样能够让机器具备常识推理的能力。比如第一个例子,人很容易判断“it”指代的到底是 Trophy 还是 Suitcase,是因为人的大脑里面还存有关于物体大小的知识。他不只是在解析文本,而是同时要利用大脑中的知识去做推理。这个问题需要叠加 NLP、知识表示和推理技术。目前,用传统的 NLP 技术,正确率在50% 上下,叠加知识库后也勉强到 60%(而且还只是另外一个前置问题),但及格线是 90%。也就是说这还是个远未被攻克的难题。让机器完全听懂人话,客观的说,还是个无法预测什么时候能解决的难题。

 

这其实涉及到 AI 的一些根本性问题。比如,人脑中的符号记忆和知识存储是结构化的吗?我想一定不是纯文本化的。另外一个问题,人脑中的符号记忆是连续的还是离散的?分布式知识表示和知识图谱嵌入代表这方面的研究努力。还有一个问题,大脑利用符号记忆进行知识推理的过程又是什么?传统的 KR 在推理这块的确是举步维艰的,那么多推理机实际应用却不多。认知科学家认为人的记忆获取过程和感知是一样的,那么符号逻辑推理是否有新的实现方法?

Web 已经帮助我们形成了一个开放、超级巨大、相互链接的文档知识库,是否也能够帮助我们逐渐形成一个开放、超级巨大、相互链接的结构化知识库?这个结构化的知识库连同巨量的文本知识库一起会成为一种更加接近人脑知识组织形式的 Global Brain 或 Open Mind 吗?这当然需要极长时间的累积,但只有这种长久的累积才有可能帮助我们去构建真正有学识和懂知识的机器大脑。

 

我们总结一下 KG 的本质。从 Web 的视角,它是讲 Web of Data 和 Linked Data。从 NLP 的视角,讲的更多是怎样从文本中抽取结构化的数据。从 KR 的视角,考虑的是怎么表示和处理人脑的知识。从 AI 的视角,更多是讲我们怎么用知识库来辅助理解人的语言。另外还有包括从数据库的角度,考虑的是怎么用图来存储知识。做好 KG 需要兼容并蓄。

现有主要 KG 的数据来源

我们前面已经不止一次提到了“开放”。接下来我们先来看看现在主流的几个大 KG 是怎么构建出来的。KG 构建涉及知识表示、知识抽取、实体链接、实体融合、链接预测、推理补全、语义嵌入、知识存储等多方面的技术。这里我们不去介绍这些具体的构建技术,而是看看现实的 KG 有哪些获取来源。

我们首先来看谷歌的 KG。谷歌 KG 有很多数据来源,其中最有名的一个是 Freebase。语义网这个领域的人很早就都知道这个项目,做了很多年后,最终被谷歌用到了它的搜索引擎里面。Freebase 主要来源于开放社区的贡献,包括开放网页的抽取、已有的开放数据进行格式转换和社区成员的数据贡献。因为 Freebase 来源于开放社区或开放域的数据,所以它也是免费开放的。谷歌收购的不是 Freebase,而是构建 Freebase 的团队 MetaWeb。

像很多其它语义知识库如 DBPedia、Yago 等一样,Freebase 的很多数据来源于维基百科。维基百科于 2013 年启动了一个新项目叫 WikiData,它组织了一个相对小众的专业群体(约 4000 人)采用维基协作的方式,目标是构建全球最大规模的结构化知识库。WikiData 采用 CC0 最为自由的开放许可协议,意味着任何人可以免费下载、修改和进行商业化应用。谷歌于 2016 年 5 月正式关闭了 Freebase,转过来支持 WikiData,并逐步把 Freebase 的数据导入到 WikiData,但导入遇到不少问题。我相信 WikiData 将逐渐发展成为世界上质量最高的一个开放域的结构化知识库。这里有一个问题:为什么谷歌要支持 WikiData 这么个完全开放还没有任何商业化约束的项目?我不认为是因为情怀。

谷歌 KG 还有一个数据来源是 Schema.Org。一会丁力博士会介绍 OpenKG CN-Schema 的工作。Schema.Org 支持用户直接在网页、邮件和 Web 应用程序中嵌入语义数据。这些以 RDFa,JSON-LD 和 HTML5 Microdata 格式存在的语义数据可以非常容易被聚合和搜集起来,并帮助提供这些数据的企业或个人优化他们的搜索结果。Schema.Org 的优点是数据质量比较高、且更加容易更新,但缺点是能够采集的数据类型相对有限,对于那些涉及 SEO 的数据是有效的。

还有像 MIT 的 ConceptNet 常识知识库,最早源于 MIT 媒体实验室的 Open Mind Common Sense (OMCS) 项目。OMCS 项目是由著名人工智能专家 Marvin Minsky 于 1999 年建议创立。ConceptNet 综合了专家构建、NLP 抽取、游戏众包、外部开放数据导入等各种技术手段。它是完全免费开放的,采用的是 CC SA-BY 4.0 开放许可协议,也就是说只要署名致谢并采用相同的协议就可以进一步使用,包括商业化。

另外一个著名项目是 CMU 的 NELL,它主要强调利用机器学习的方法从 Web 上不断抽取开放域的三元组知识。但它面临抽取知识的质量、可靠性和完整性问题。

KG 的知识缺失问题

KG 构建的瓶颈其实是数据来源问题,技术反而居于其次。前面谈到 WikiData 的数据质量是不错的,但却还是面临知识缺失严重的问题。高质量和高覆盖面很难兼得。事实上,知识缺失严重是所有 KG 所面临的共同问题。下面谈谈几个关于 KG 的事实。

第一,是前面已经谈到的,现有的大规模知识图谱很多都依赖开放社区的协作和开放域的数据抽取,包括大家所熟知的 DBPedia、Yago,包括国内的 Zhishi.me、CN-DBPedia、X-lore 等,也包括谷歌自己的知识图谱。

第二,不能指望 NLP 和机器学习能自动构建你真正所需要的知识图谱。NLP 的确对 KG 构建十分重要。正如今天白老师所讲的主题,让 NLP 对接 KR 是当前 KG 构建最基础的技术路线。但你如果指望有这么一种深度 NLP 算法,给它吃进大量的文档,它就能自动给你转成真正能用的 KG,那你一定会非常失望。此外文本也只是 KG 的一种来源,还包括多媒体、Crowds 和 IoT 传感器等等,这都需要用各种传统的数据处理技术去对接 KR。

第三,单一机构无法构建覆盖全面的知识图谱,即便是单一的垂直领域如金融也是这样。构建高质量高覆盖面的 KG 成本是比较高的。但一旦你有这样的高质量的 KG,的确可以帮助你形成竞争门槛。现在一般做 KG 比较迅速的是那些手里已经有不少数据资源的企业,但即使你有不少数据,也同样会面临知识缺失的问题。

开放域数据 VS 封闭域数据:OpenKG Open Data

 

接下来我们开始具体谈“Open”。我们对外介绍 OpenKG 所遇到的第一个质疑通常是“我的数据不能开放”。对于 OpenKG 的“Open”有三个层次的解读。首先是指“开放域数据的图谱化”。所谓开放域数据就是那些已经开放的数据。目前 Web 上你能看到的所有的数据都是开放域数据,这些数据不存在开放与不开放的问题。但是我们要解决这些数据的可利用性问题。怎样解决?我们要把文本数据结构化,把已经结构化的数据转化为语义更加规范的知识图谱,并增加和增强这些结构化数据之间的链接,这样才能让数据更加容易被利用、被链接和被计算,更加 Machine-Understandable。仅仅这一件事做好已经十分不容易,意义也非常大,也不存在开放数据的囚徒困境。而且这件事情每个垂直领域都应该有人去做。

每个领域当然有自己不能开放的数据,这叫做封闭域的数据,例如医疗领域的病患数据,金融领域的决策支持数据等。封闭域的数据也需要图谱化和语义规范化,但那是各个企业自己的事情。开放域数据可以有效的弥补封闭域数据知识不完全的问题。每个企业的封闭域数据也需要与开放域的数据互相链接,需要与其它领域的数据相互链接才能更大的发挥其价值。

开源的数据和可发现性

经常遇到的第二个质疑是“我不愿意开放我的数据”。即便是从开放域抽取的数据,也付出了代价和劳动,为什么要开放呢?这里第二个层面是指“开源的数据”,这有点像开源的软件。很多软件提供商之所以选择开源一方面是因为它本身依赖开源社区,如 Cloudera,其解决方案高度依赖 Hadoop 开源社区;另外一方面开源的目的也是为了提高自己的可发现性,免费的先给你用,用深了再收钱。这种通过免费来吸引用户扩大自身影响力的模式在互联网环境下司空见惯。

与开源软件一样,人们也已经开发出不少可选用的开源数据许可协议,如 Creative Common 的 CC 系列,Open Knowledge Foundation 的开放知识许可协议等。其实这个许可协议问题是每一个做 KG 的朋友都应该关注的问题。不管你开放不开放,你都需要懂得怎样保护自己的数据,也需要知道怎样做才能不侵权,因为你做 KG 一定会用到别人的数据。

此外,KG 和普通开放数据还不一样,因为 KG 强调链接。知识图谱的本质就是用规范化的语义去链接更多的数据。开放你的 KG 能促进 KG 之间的链接。这有点像 Web 的形成过程:人们在 Web 上发布自己的网页无非是为了让别人能发现自己,而这种发布促进了网页之间的链接,搜索引擎利用基于链接关系的 PageRank 进一步提升网页的可发现性。开放可能不是刚需,但链接可以进一步提高你的数据的可发现性,并增加数据的价值。

所以,我们同时也希望能传播这样的理念:所谓“开放”和“链接”的含义还指的是提高数据的可发现性和流动性。这也是鲍捷经常提到的观点。

关于 OpenKG

接下来谈 OpenKG。OpenKG 是国内一些在第一线从事知识图谱研究和开发的朋友共同发起的。几个主要发起人都是国内资深的 KG 专家,比如东南大学的漆桂林教授,狗尾草 CTO、公子小白和琥珀机器人的技术负责人王昊奋,海知智能的 CEO 谢殿侠和 CTO 丁力,这次论坛的联合主席文因互联创始人鲍捷,从事脑科学研究的中科院自动化所的曾毅研究员等等。丁力我多介绍两句,他其实是这个领域功底非常深厚的专家,他是全球首个语义搜索引擎Swoogle 的作者,美国开放政府数据 Data.gov 语义技术核心贡献者,RPI Linked Data 项目的主要负责人,前高通研究院科学家, 斯坦福大学博士后。当然还有好多其他的朋友,都有比较接近的兴趣和价值观,也都感觉到这件事情的价值和意义,所以自发组织起来一起去推动这件事情。

 

开放之于 KG 的价值和理念

接下来谈一下 OpenKG 做些什么。首先我们需要做的是传播和宣传开放之于 KG 的价值及理念。我们这帮教授的力量是有限的,我们首先能做的当然是呼吁这一点,比如金融领域那么多机构对 KG 感兴趣,有没有一个大佬能站出来说组织圈内的朋友一起来支持金融开放域的知识库的构建?不是在谈胸怀,而是要意识到,只靠自己的团队很难做得出真正有用的 KG,KG 要有足够的规模和足够的质量才能真正有价值。

每一个垂直领域都应该扶持一个开放社区去共同支持开放域的知识库建设。开放域这块可以分享,但比拼的是你封闭域的知识库和将知识库变现的速度和能力。我想谷歌去支持 WikiData 也是类似的考量。谷歌已经拥有全世界最大的知识图谱,但它很清楚自己的图谱知识缺失仍然非常严重,所以它去扶持开放社区。Freebase 和 WikiData 数据都是免费的,但谷歌可以迅速的把这些数据集成进自己的搜索引擎并变现,这不是每家公司都能做得到的。因为它深知,没有这个开放的 Web,也就用不着有谷歌。真想做好KG不能只从技术层面去想问题,方法和思路上需要有新的理念和突破。

开放的知识图谱社区

第二个方面,我们也希望从我们自身做起去努力培育开放的知识图谱社区。这方面也有不少工作都在开展,包括 OpenKG.CN 的资源库,国内最大的知识图谱社群,比如像今天这样的知识图谱沙龙和论坛是每月一次的,以及我们专委会在组织的一年一度的全国知识图谱大会 CCKS 等。

在 OpenKG 的资源库中,我们正在不断搜集、整理和聚集国内外主要的开放知识库,有些直接提供 Dump,有些至少提供开放的 API。我们也在组织整理与知识图谱有关的各种开放的工具。知识图谱是一个产品概念,它的构建和使用涉及各种技术及工具的综合使用,这包括知识表示、知识抽取、知识存储、知识链接、知识推理、知识众包、知识问答等等。我们把这些工具组织整理出来,条件成熟的时候可以开展技术评测,出版技术评测报告。这些开放的资源对于那些刚刚进入这个领域的团队或企业会有参考价值和帮助。

开放域的链接知识图谱

第三个方面,我们也会利用自身的一些资源去推动开放域的链接知识图谱的建设。首先我们考虑可以做、并正在做的一件事情是把国内几家最主要的中文百科类知识图谱链接起来。这包括 Zhishi.me,CN-Dbpedia,Belief Engine、Xlore、PKUPie 等等。这些百科知识图谱都已经对外提供了开放免费的 API 服务,有部分也会提供原始的 Dump,在 OpenKG.CN 上都能找到。

至少在百科类的这些知识图谱中,我们已经具备了这种基础,我们已经聚集齐了国内最主要的百科知识图谱。在这些百科的知识库的基础之上,我们会逐步延伸到其他垂直领域,例如:金融、医疗、电商、气象等。我们会慢慢地去扩展,我们希望随着社区的成长,会有更多的数据接入到这个开放域的链接知识图谱中。

我想应该以我们现有的力量至少可以帮助建立这样的一个种子和示范,质量可能不一定高,但让那些想从事相关工作的朋友,至少有一个起点和基础。

CN-Schema:开放的Bot Schema

这是 OpenKG 在努力的另外一个工作,一会丁力博士会做更为具体的介绍。

OpenKG所面临的挑战

OpenKG 其实有很多可以做的事情,前面列举的只是我们目前正在着手做的几件事,我们有不少考量和想法,会逐步寻求资源支持去尝试实施。

OpenKG 是一件基础性、长期性的工作,显然需要长时间积累。我们不期望两三年就做出成效,这不是 Startup。即便是 Freebase 从我第一次听说这个项目到 2012 年谷歌正式推出它的知识图谱都有差不多八年的时间。这是件需要持久耐心的事情,我想不论后期推进顺利与否,我们这几位还在高校的朋友都会支撑这件事的发展,也希望有更多的朋友能参与进来支持我们。

谢谢大家!

发表评论