随着知识图谱在人工智能各个领域的广泛使用,知识图谱受到越来越多AI研究人员的关注和学习,已经成为人工智能迈向认知系统的关键技术之一。之前,斯坦福大学的面向计算机视觉的CS231n和面向自然语言处理的CS224n成为了全球非常多AI研究人员的入门经典学习课程。因此,斯坦福大学于今年3月开设了一门专门面向知识图谱的系列课程CS520,官网课程页:
https://web.stanford.edu/class/cs520/web.stanford.edu
这门课程系统讲解了知识图谱的各项技术及应用。前期,我们已经对这门课程进行了介绍,可以参考链接:
从现在开始,让我们一起来学习这门知识图谱系列课程。B站上已经同步了课程视频,并带有中英文字幕,只是估计是机器自动翻译,效果大家看看就知道了。第一讲视频的B站地址:
【CS520】斯坦福大学2020春季知识图谱课程(含中英字幕,自动生成)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com
本期是CS520的第一讲,主要是简单介绍课程的整体内容和重点讲解知识图谱的一些基本概念,所有内容笔者根据视频学习内容撰写,如有理解有误之处还请提出批评指正。
课程的组织者Vinay K. Chaudhri教授首先介绍了知识图谱的几个典型应用:语义搜索、知识问答和数据集成。前两个是知识图谱最常见的应用,但是知识图谱用于“数据集成”,数据集成百度百科:
对于数据集成,百分点科技有一项《基于动态知识图谱的大规模数据集成技术》的研究工作,如有感兴趣可以阅读技术文档:
同时,在很多自然语言处理、计算机视觉和机器学习的相关研究中也都提到了知识图谱,并且越来越普遍。这些领域将知识图谱作为数据存储方式,并通过相应的算法使用和学习知识图谱。
课程大纲:
这个课程系列需要学习的内容从大的方面包括:
- 首先问一些简单而基础的问题,例如是什么是知识图谱。
- 我们如何构建一个知识图谱。
- 如何使用知识图谱来进行推理。
- 如何与现代AI算法的结合,并且有哪些高价值的用例。
- 在课程尾声,将会讨论知识图谱还存在哪些开放研究挑战问题。
课程设计:
这门课程非常有意思的一点是,每节课都会邀请三名学者形成小组,对于知识图谱的某个方面,每名学者都会带来各自不同的观点。总体上,对于知识图谱将会从来自传统知识表示和数据库的观点,包括在线数据管理系统以及机器学习和自然语言处理。包括30分钟的展示和20分钟的讨论。
好了,接下来就是正式的课程内容了,这一讲的主题是什么是知识图谱并且为什么知识图谱是有用的?
第一位教授首先介绍了Wikidata,这是在2012年启动的一个开放的知识图谱,任何人都可以编辑,支持Wikipedia,提供了结构化的链接数据,包含世界上很多有趣的话题。
具体的一个在Wikidata中的例子,安大略省这个实体和安大略省的一个城市温特图尔这个实体之间有一条边链接这两个实体,这条边有一个标签为孪生行政机构,当然实体和连接关系的标签可以用数字字母组成的id或者包括中文或德语等任何自己喜欢的方式来表示。在Wikidata中,有关于所有城市之间关联关系的图谱表示。
当考虑各种实体和关系类别后,会得到一个更全面丰富的知识图谱:
整个知识图谱包括8000多万节点,其中包括基因蛋白质,病毒,城市中的人的各种事物等等。同时,知识图谱中的边也就是关系数量已经突破了10亿。
除了Wikidata,美国国会图书馆也出版了大型RDF知识图谱(上图左),并且这个知识图谱的数据已经和Wikidata的数据进行了融合,前者的实体标识符是以n开头的,而后者的实体标识符是以q开头的。因此,将不同知识图谱进行融合就能得到一个大型知识图谱。
有了这么多的三元组,我们能做什么呢?
上图中这样的模式可以匹配出所有出生在温特图尔的人,继续扩展可以得出更多模式。使用构建的图数据库和匹配模式就可以得到我们想要的查询结果。
总结:
- 知识图谱很容易融合,数据库无法直接拼接在一起,但是知识图谱的融合就很容易,只要知道哪些节点具有相互关系就可以就行融合。
- 知识图谱支持推理,当你知道两个城市是姊妹城市也就可以知道这两个是孪生机构。
- 从开放源上取得大量的知识图谱,并将其整合建立自己的知识图谱。
- 可以采用图模式作为查询语言,比如SPARQL。
- 和机器学习相比,知识图谱具有很强的可解释性,可以给出每个节点具体表示什么,因此更易于编辑和更改等。
第二位讲者主要从一款知识图谱建模软件出发,从两个角度介绍了知识图谱:基于文档和文本的知识图谱和基于事件的知识图谱,由于没有太多概念和理论性的内容,如果感兴趣可以去看视频(33:43开始)。
重点来了:
相比于前两位讲者,第三位讲者的课程内容感觉更像传统意义上的知识图谱概念介绍和讲解,因此,我们对这一部分进行重点学习。
可以看到,将会从知识图谱的定义,知识图谱的表示(例如现在比较流行的知识图谱嵌入向量表示),以及从逻辑、数据库、计算机视觉和自然语言处理等多个角度理解知识图谱和应用。
定义知识图谱可以有多种形式:
- 正式的数学形式:这个是在知识图谱相关的学术论文中最常见的对知识图谱的定义,给定实体集合E和关系集合R,知识图谱就是一个包含很多三元组的有向多关系图。
- 定义模式:针对不同的主题的领域,定义一个模式,与任意实体相互关联,感觉这种更像是所谓的本体建模。
- 包括模式和实例:这种从字面理解上应该就是包括本体建模和实例知识图谱。
- 任意RDF/LPG/RDF* 都是一个知识图谱,查阅资料了解到这里RDF和LPG都是比较主流的图数据模型,LPG是一种属性图,而且我们熟知的Neo4j提出了为 LPG 图数据库创建标准查询语言的建议(来源:
观点|抛开炒作看知识图谱,为什么现在才爆发?_开放知识图谱-CSDN博客_知识图谱为什么在现在
)。一般认为LPG是工业界应用更广泛的模型,RDF在学术界见的更多,学术研究中使用的知识图谱一般都是以RDF标准构建的包含三元组的知识图谱。
知识图谱可以理解为结构化的世界模型,每一个领域例如歌唱领域有很多实体和关系来描述,在图中生命科学的数据集是棕色的,政府数据集是灰色的,图中每一个小泡都是一个小的知识图谱。因此,如何编码这些世界模型和实体与关系,其实也就是如何进行知识图谱的表示。这里给出了两个极性:符号表示和向量表示。
当使用符号来表示知识图谱时:
我们将实体和关系看成是一些字符串数组表示,将我们的所有对象都放在一个高维空间中,符号表示经常在符号推理系统中使用,也大量用于数据库系统中。向量表示经常用在一些CV和NLP的任务中。此外,知识图谱还有一些特点,比如开放世界假设和封闭世界假设,开放世界假设意味着在知识图谱中显式地给出的事实默认可能正确的,而时间演变意味着但是随着时间的演变,这些事实可能会被改变,例如某个国家的总统随着时间会发生改变。
这是一个在符号表示的角度给出的关于小罗伯特唐尼(I am Iron Man)的三元组的例子,包括8个实体和6个关系。我们能够编码小罗伯特唐尼在哪里出生,住在哪以及他的哪些电影,这里关系表示中用的dbp是知识出版社的名称。
用向量表示的知识图谱:
就是实体和关系都被从符号表示的空间嵌入到低维的空间中,例如实体保存在特定大小的张量中。因此,我们就可以用求和等函数来对知识图谱中的实体进行计算,在语义上相似的实体嵌入表示更加靠近,比如和小罗伯特唐尼有关的实体比如复联和钢铁侠数值表示也比较接近,这是知识图谱嵌入算法最大的优势。
接下来,我们从不同角度理解知识图谱。
首先是从逻辑的角度,也是数据库中用的经典方法:
其中,关系都是一些二元谓词。逻辑描述通常由三部分组成:TBox、ABox和RBox。
第一部分是TBox,包含一些模式和本体,本体定义了一些概念之间的关系。例如,成功的作家是至少有一项工作杰出的人物以及畅销书。第二部分是ABox,可以称其为事实实例,例如SuccessfulAuthor(StanLee)表示斯坦李是一位成功的作家。第三部分是RBox,表示谓词之间的层次结构,定义属性和子属性。
从数据库的角度理解知识图谱:
对于不同数据源建立统一的视图,采用语义数据集成机制。将XML格式或CSV格式的数据转换为知识图谱,实体是表中的单元格,关系是表头。
从计算机视觉中的知识图谱:
可以建立一个由图片中识别出的对象构成的知识图谱,目前场景图生成在很多有关视觉推理的任务得到了广泛利用,包括image captioning,VQA,Visual Dialogue等。在具有一定关系的图中,例如人骑马,而马在山前面,需要从图片中推理出这些关系,并且目前有很多这样关系数据集。
自然语言处理中的知识图谱:
如何从文本中构建知识图谱,这就需要一些传统的NLP的技术来解析我们的句子。对于一个句子,我们先知道哪些是命名实体,比如图中左侧给出的例子,爱因斯坦是德国出生,那爱因斯坦和德国应该存在一定的隐性关系,同时能够知道相对论是理论物理学的一部分。完成这一任务需要两个重要技术,也就是需要实现更好的命名实体识别和关系链接。
在不同的问题中,相同名称的实体可能具有不同的类别标签,例如Apple可以是水果,Apple也可以是具有Apple这个音乐专辑的公司,Apple也可以是硬件生产商。知识图谱可以是命名实体识别的附加信息,比如在问题Who is the CEO of Apple?中,这个Apple肯定不会是苹果树的果实,也不是音乐专辑,宁愿识别成硬件生产商。
关系链接:
上图中,四个问题中的所有关系都指向同一个谓词。知识图谱Wikidata为我们提供了这些关系的list,同义词,关系的层级结构和关系的约束。
问答系统中的知识图谱:
当有知识图谱作为背景数据时,就可以回答自然语言问题。针对图中的例子:小罗布特唐尼出演了多少部漫威电影?就可以用SPARQL查询来得到问题的答案。当然,首先得将自然语言问题转换为查询语句,得到小罗伯特唐尼出演的所有电影并计算这个电影集合中的总数。
语言模型中的知识图谱:
很多人都在使用语言预训练模型来完成下游任务。传统的语言模型只接受大型语料库的文本训练。对预训练模型就行微调,在很多任务上就能得到很好的效果。最新的趋势是在预训练语言模型中加入知识图谱。例如上图中,知识图谱提供了小罗布特唐尼的确切的事实,可以直接得到和小罗布特唐尼有关的例如托尼斯塔克等实体信息,而不是像是从Wikipedia等非结构化文本中遍历整个Wikipedia。讲者表示这是一个很有发展前景的领域,明年会很很多论文涌现。
总结:
我们从图结构的世界模型来认识什么是知识图谱,实体和关系能够以不同的逻辑模式进行组织,这个应该是和数据的领域相关。符号表示的知识图谱在很多领域都很有用,包括人文和社会学科,例如即使一个实体有几百种语言的标签,我们都可以用一个实体来表示,这是很酷的。此外,知识图谱带给机器学习和其他应用更多的可扩展性。
往期精选:
后续我们还会更新CS520接下来的课程的学习笔记。
如果对文章感兴趣欢迎关注知乎专栏“人工智能遇上知识图谱“,也欢迎关注同名微信公众号“人工智能遇上知识图谱”,让我们一起学习并交流讨论人工智能与知识图谱技术。