本讲座选自清华大学计算机科学与技术系刘知远老师于2016年1月19日在 RONG V2.0系列交流会——语言语音语义与大数据技术专场论坛上所做的题为《面向大规模知识图谱的表示学习技术》的演讲。
刘知远:大家好,我叫刘知远,来自计算机系。非常感谢前面李涓子老师、蔡老师讲了一些认知和知识图谱相关的知识,这样我就可以接着他们讲我今天的题目。我的题目是:表示学习跟大家耳熟能详的深度学习有密切的联系。
我们为什么要关注表示学习这个问题呢?我们可以看关于机器学习的一个重要公式,这个公式有三个部分组成,第一部分是关于数据或者问题的表示,在表示的基础上我们要去设计或者构建一个目标,也就是说我们要实现一个什么样的目标。在设定了目标之后,开始看怎么实现这个目标,这就是优化的过程。对于机器学习来讲,表示是这三个环节中最基础的部分,也是我们为什么会关注它的重要原因。对于自然语言处理和多媒体处理而言,所处理的数据是典型的无结构数据。为了让计算机更好地对这些数据进行智能处理,如何很好地表示它们是一个至关重要的问题。
什么是表示学习呢?在自然语言处理中,常用的表示方式是1-hot Representation,每一个词都可以表示成一个非常长的向量,这个向量的长度就是词汇的数量,例如汉语常用词有6000个,我们就把每个词表示成6000维的向量。每个词对应的向量中有一维设置为1,其他维度设置为0,这样很自然地就把人类语言中的所有词都独一无二地表示成一个向量,这样计算机就可以很好的区分某个词跟另外一个词是不一样的。这种方法非常简单,应用也非常广泛,例如搜索引擎中的百度、谷歌,当输入一个查询词,基本思路就是匹配哪些文档里面出现了这些查询词。其实背后本质就是把每一个词都表示成一个独一无二的符号。但是这种方法面临一个很大的问题,大家可以看到,其实很多的词互相之间有非常丰富的语义联系,比如说star和sun,一个是星星,一个是太阳,它们虽然是不同的词,但有密切的语义关联。但是计算机把它们表示成了两个独立的向量,忽略了它们之间的语义关系。这就是我们希望用表示学习解决的问题。
表示学习的基本思想是提出一种所谓的Distributed Representation,或者是Embedding,用一个低维的向量空间,把每个词都表示到空间里面的某一个位置。这样,我们就可以利用词和词之间在这个空间中的距离来衡量词与词之间的语义关系,这就是表示学习的基本目标。
表示学习的基础是什么?我为什么能够做这件事情?其实刚才蔡老师讲到了,这与人脑有非常密切联系。人脑有什么样的特点?第一个特点就是,人脑中的信号都是通过生物电或化学电传递的,这是一个非常低速的过程。但是我们又知道,人脑与计算机相比,虽然信号速度很慢,但认知能力却非常强,比如我们人可以快速地识别一张图片中哪个部分是老虎,哪个部分是草坪等等。但是对于计算机来讲,要实现这种认知能力却非常难。第二个,与计算机相比,人脑是一个非常低功耗的装置。也就是说对于人脑来讲,我们每天只需要吃几顿饭就可以让人脑一天到晚一直工作,但是对于计算机来讲,一台普通计算机每天消耗的能量比人脑要多得多。因此,人脑的工作原理非常值得我们学习。那么,人脑有什么样重要的工作机制呢?
我们现实世界是一个离散的世界,这个世界里面每个物体相互之间都是独立的,有比较明确的界限,因此可以称为离散的世界。但是人脑表示这些物体的时候,都是表示为很多神经元上抑制和激活的状态。也就是说,我们用神经元上不同的抑制和激活状态来表示不同的物体。因此,虽然现实世界是离散的世界,但是在人脑的认知世界中,都被表示到连续的空间中。从这个角度来看,我们刚才所说的那种低维向量表示,其中每一维都可以看成是人脑的神经元。
现实世界带有非常强的层次性,比如人有头、四肢和躯体,头又可以分成头发、眉毛、五官等等。在认知世界里面也会对应存在这种层次性,即神经网络的层次结构。现在非常流行的深度学习技术就是由于引入了“深度”的层次性结构,带来了很多任务性能的革命性提升。
所以我们来看,人脑的这两个特点,对应到表示学习的两个特点,这两个特点就是:第一,采用分布式表示来表征现实世界的对象,即采用连续的空间表示对象。第二,采用深度的多层神经网络实现对现实世界的层次性建模,这也是表示学习的重要思想。
可以说,表示学习有非常强的认知基础。而同时,对于自然语言处理而言,也有着非常重要的现实意义,主要体现在两个方面,第一个方面,大规模自然语言处理面临非常强的数据稀疏难题,传统方法无法很好解决。而通过构建低维向量表示空间,我们把所有对象映射到这个空间里面,就可以利用这个空间的连续性较好地处理数据稀疏问题。另外一个好处是,可以实现不同领域以及不同对象之间的知识迁移。在自然语言处理中,我们关心的对象非常多,从最基础的词到句子,到文档,以及知识,我们如何更好地计算它们之间的语义关联呢?比如说给你一个句子、一个文档,怎么判断他们之间的语义关系?对传统的自然语言处理而言,这是非常难的事情。通过将这些对象映射到统一的空间中,我们将能够非常容易地计算它们之间的语义关系。因此,我们认为对于自然语言处理来讲,表示学习是非常重要的技术,也是近年来自然语言处理领域非常关心的方向。深度学习技术则是这个方面的重要代表。今天由于时间关系,不可能介绍表示学习在自然语言处理所有方面的应用。这里将以知识表示学习为例,向大家简单介绍最新的进展。
知识图谱是一种特殊网络,其中每个节点代表现实世界中的实体,而节点间的边表示实体之间的关系。知识图谱一般用三元组形式组织知识,每个三元组包括一个头实体、一个尾实体以及它们之间的关系。这是知识图谱的基本表示形式。有两种代表性的知识图谱,一个是语言知识图谱WordNet,包含了英语中词与词之间的同义、反义、上下位等关系。Wordnet是自然语言处理常用的语言知识库。另外一种知识图谱Freebace是世界知识图谱,包含了现实世界中人、地点、机构等实体以及它们之间的关系,例如,乔布斯是苹果公司的创始人等。
传统的知识图谱表示方式是基于RDF的三元组,相当于把每一个实体和关系都表示成独一无二的符号。这种方法与one-hot representation类似无法很好地利用或计算实体之间的语义关系。例如,乔布斯和比尔盖茨都是IT里面非常有名的人物,但是在知识图谱中用两个独一无二的符号表示,因此无法很好地计算它们之间的语义关系。因此我们希望通过表示学习来解决这个问题。如果能做到这一点,将能够更好地利用知识图谱中的知识。
现在主要介绍知识表示学习的一个最简单也是最有效的方案,叫TransE。在这个模型中,每个实体和关系都表示成低维向量。那么如何怎么学习这些低维向量呢?我们需要设计一个学习目标,这个目标就是,给定任何一个三元组,我们都将中间的relation看成是从head到tail的一个翻译过程,也就是说把head的向量加上relation的向量,要让它尽可能地等于tail向量。在学习过程中,通过不断调整、更新实体和关系向量的取值,使这些等式尽可能实现。这里面会有非常多技术实现细节,这里面就不作太多讲解,大家如果感兴趣可以去阅读相关论文。
这些实体和关系的表示可以用来做什么呢?一个直观的应用就是Entity Prediction(实体预测)。就是说,如果给一个head entity,再给一个relation,那么可以利用刚才学到的向量表示,去预测它的tail entity可能是什么。思想非常简单,直接把h + r,然后去找跟h + r向量最相近的tail向量就可以了。实际上,我们也用这个任务来判断不同表示模型的效果。我们可以看到,以TransE为代表的翻译模型,需要学习的参数数量要小很多,但同时能够达到非常好的预测准确率。
这里举一些例子。首先,利用TransE学到的实体表示,我们可以很容易地计算出跟某个实体最相似的实体。大家可以看到,关于中国、奥巴马、苹果,通过TransE向量得到的相似实体能够非常好地反映这些实体的关联。
如果已知head entity和relation,我们可以用TransE模型判断对应的tail entity是什么。比如说与中国相邻的国家或者地区,可以看到比较靠前的实体均比较相关。比如说奥巴马曾经入学的学校,虽然前面的有些并不准确,但是基本上也都是大学或教育机构。
如果同时知道heat entity和tail entity,我们也可以用TransE模型判断它们之间的关系。例如奥巴马和哥伦比亚大学之间就是一个入学学校的关系。这表明 TransE能够得到比较好的预测效果。
刚才我们简单介绍了TransE很有意思的性能,但是TransE也有自身的缺陷,这里我们简单总结TransE面临的若干挑战,以及在这些方面的最新研究进展。
首先,很多情况下TransE关于h + r=t的假设其实本身并不符合实际。为什么呢?假如头实体是美国,关系是总统,而美国总统其实有非常多,我们拿出任意两个实体来,比如奥巴马和布什,这两个人都可以跟USA构成同样的关系。在这种情况下,对这两个三元组学习TransE模型,就会发现,它倾向于让奥巴马和布什在空间中变得非常接近。而这其实不太符合常理,因为奥巴马和布什虽然都是美国总统,但是在其他方面有千差万别。这其实就是涉及到复杂关系的处理问题,即所谓的1对N,N对1、N对N这些关系。刚才例子就是典型的1对N关系,就是一个USA可能会对应多个tail entity。为了解决TransE在处理复杂关系时的不足,研究者提出很多扩展模型,基本思想是,首先把实体按照关系进行映射,然后与该关系构建翻译等式。
TransH和TransR均为代表扩展模型之一,其中TransH由MSRA研究者提出,TransR由我们实验室提出。可以看到,TransE在实体预测任务能够达到47.1的准确率,而采用TransH和TransR,特别是TransR可以达到20%的提升。对于知识图谱复杂关系的处理,还有很多工作需要做。这里只是简介了一些初步尝试。
对于TransH和TransR的效果我们给出一些例子。比如对于《泰坦尼克号》电影,想看它的电影风格是什么,TransE得到的效果比TransH和TransR都要差一些。再如剑桥大学的杰出校友有哪些?我们可以看到对这种典型的1对N关系,TransR和TransH均做得更好一些。
人类知识除了在知识图谱中,更多地蕴藏在大量的互联网文本中。如何把文本信息与知识图谱信息结合起来,更好地实现知识表示,是一个重要的挑战问题。其实如何从文本中抽取知识,是自然语言处理的重要研究任务,其基本思想是寻找两个实体共同出现的文本,然后从这些文本中抽取特征,用来判断实体间的关系。
我们来看知识表示与文本结合的重要意义。通过上图可以发现,如果单独利用文本信息进行关系抽取,效果如蓝线所示。而如果将知识表示信息结合进来,效果会有明显跃迁。这说明,如果能够将文本和知识图谱信息有效融合在一起,将有助于表示学习等任务的性能提升。另外一个非常重要的挑战是,实体在知识图谱中还有丰富的描述信息,这些信息也是文本形式的,怎么把它融合进来呢?我们尝试了采用卷积神经网络对文本建模。由于时间关系就不作详细介绍,如果大家感兴趣可以私下交流。
总之,有非常多的知识是蕴藏在无结构的文本里面的,如何把无结构的文本和有结构的知识结合在一起,是非常重要的研究方向,也是不断扩充知识图谱的重要技术手段,值得深入研究。
最后我想介绍的是,如何充分利用知识图谱中的关系路径进行表示学习。我们可以看到,任意两个实体之间的关系,其实跟它们之间的关系路径有非常强的联系。比如说《阿甘正传》的电影语言其实与导演的语言有密切联系。如何充分利用关系路径,对于知识表示学习有重要意义。
过去就有人利用关系路径判断两个实体之间的关系,取得了非常好的效果。我们现在想说,在知识表示学习中,不只考虑直接的关联关系,还应当考虑两个实体之间的关系路径。这里有个重要问题,任给两个实体,如何把它们之间的关系路径也表示成向量,这就涉及到组合语义问题。
我们提出利用相加、相乘、循环神经网络的形式来实现组合语义,利用关系路径中每个关系的表示,得到关系路径的表示。这样我们就得到一个扩展的TransE模型,把关系路径表示成向量,然后构建h + r = t等式。
可以看一下扩展版TransE的性能。通过这些表格我们可以看到,考虑关系路径的模型在实体预测有超过35%的提升,这个提升是非常显著的。而在关系预测上,也有10%的提升,这个提升也非常明显。
由于时间关系这里就只举一个例子。如果我们能够很好地考虑关系路径,任给两个关系,假如它们形成一个路径的话,我们可以得到这个路径对应的关系,比如说某个关系路径是:“出生地点”和“地点所在国家”,通过模型可以推测出这个路径对应着关系“国籍”。
以上就是我们今天着重介绍的,如何在知识表示学习中考虑复杂关系,如何把文本和知识图谱信息相结合,以及如何考虑关系路径等等。当然,知识图谱的表示学习还有非常多值得研究的课题。
知识表示学习与深度学习在自然语言处理中的应用密切相关,最近两年正处在爆发期,今年自然语言处理会议的大部分论文都是关于深度学习的。这表明,表示学习是非常重要的研究方向。
最后想再强调一点,面向知识图谱的表示学习,对于更好地表示和利用知识图谱中的信息具有非常重要的意义。
这个方向仍然处于探索阶段,有非常多的工作值得去做。其有很多开放性的问题没有得到答案。比如人类认知的举一反三的能力,这代表了人的泛化能力以及抽象能力,目前深度学习和表示学习对此还做得不够好。2015年《科学》杂志上发表了一篇重要工作,就探索了只给一个样例来学习分类的问题,这对于人来讲很容易,但是对于机器则很难做到,特别是深度学习在这方面的能力非常差。实际上,深度学习领域在2014年发布过一个非常有名的成果,能够利用大规模无标注的图片自动学习和识别猫脸。其实这个过程有非常多的限制,包括使用了非常大量的猫的图片,而且都是标准的正脸。采用非常规范的数据学习得到猫脸,与人脑相比没什么了不起,因为人脑根本不需要这么多图片才能学到猫的样子。人只需要根据有限个样例,就能总结出猫的特点。这是深度学习和表示学习需要继续努力的方向。
在知识表示学习方面,我们做了一些工作,把常用的算法模型代码都开源在了网上。我们也发表了一些论文,都列在这儿,如果感兴趣欢迎浏览。