文/本刊记者 陈 杰
8月24日至27日在杭州召开的2019年全国知识图谱与语义计算大会(CCKS 2019)上,百度CTO王海峰发表了题为《知识图谱与语义理解》的演讲。
王海峰认为,知识图谱是让机器像人类一样理解客观世界的基石。在演讲中,他用生动的实例展示了百度在知识图谱和语义理解领域的技术探索及应用,并探讨了其未来的发展方向。
以下是演讲实录:
我现在在百度负责的技术涉及互联网、大数据、人工智能等方方面面,但是我的专业其实是自然语言处理、知识图谱。大概26年前,我在哈工大,在李生教授和赵铁军教授的指导下做机器翻译系统。当时,主要是基于规则的系统,也要用到知识,那时的知识是把人类专家的知识编辑在规则里,实现语言的理解、生成,然后实现翻译。
过去20多年,这一领域从基础研究到应用,都已经发生了非常大的变化。当然,20多年相比于自然语言处理这个领域70多年的历史来说,还很年轻。
自然语言处理这样一个有70多年历史的专业,现在仍然欣欣向荣,我想有两个方面的原因:一方面是因为有大量用户的真实需求,促使我们更多地投入这方面探索应用;另一方面自然语言处理发展了70多年遇到的很多问题都还没有解决,需要我们进一步深入研究。
我首先从人工智能开始介绍。
大家都知道,人类历史发展到现在,已经经历了三次工业革命,每次工业革命都会带来翻天覆地的变化,生产力的进步带来了整个社会的变革,生活方式随之发生深刻变化。第一次工业革命使人类走向机械化时代,第二次是带来了电力,第三次是信息化革命。我们很幸运,今天处在第四次工业革命的开端,第四次工业革命的核心驱动力就是人工智能。当然,人工智能是为了模拟人的能力,需要包括语音、视频、图像、AR/VR等感知方面的技术,也需要知识图谱、语言理解等认知方面的技术。当然,还有机器学习,以及最近这些年很重要的深度学习等等。
感知能力很多生物都有,而且很多生物这方面的能力比人类强。认知能力则是人类特有的,包括我们的语言和知识。我们通过语言的交流、知识的呈现(知识呈现其实也是基于语言),把知识传承下来。关于语言和知识,不管是对于人类还是对于人工智能都是非常重要的。
知识图谱是让机器像人类一样理解客观世界的基石。
过去这些年,AI技术通过深度学习取得了非常好的效果,尤其是在语音、视觉等感知技术上取得了非常大的突破,甚至在很多方面,深度学习达到的效果已经超过了人类。
深度学习也给自然语言处理以及知识相关的技术带来了非常大的帮助,但是我们继续深入研究、应用实践的时候会发现,我们还需要更好地结合知识、推进知识图谱相关的工作,才能取得更好的效果。
基本的知识图谱,会涉及到实体的属性关系,每一个实体可能有若干个属性,实体和实体之间有很多关系,每一个关系基本上可以理解为是一个事实。因此知识图谱就是对客观世界的描述。百度AI多年技术积累和业务实践的集大成是百度大脑,百度大脑发展了近10年的时间,其中的知识图谱技术是从2013年开始做的。一方面知识图谱的规模在快速增长,另一方面,基于知识图谱来提供服务,每天满足用户各种需求的量级也在快速增加。过去这些年,百度知识图谱的服务规模大概增长了490倍。
百度大脑技术能力的应用,一开始主要集中在搜索引擎上,之后开始突破互联网业务的范畴,面向各种企业级的用户,比如金融、客服、商业等,发展各种各样的应用,同时也进行AI技术开放,比如通过百度大脑的AI开放平台,让大家应用到我们的AI技术。
一个比较完整的百度语言和知识技术的布局,底层的基础就是知识图谱,通过知识挖掘、知识整合与补全、分布式图索引及存储计算等步骤,构建了包括实体、关注点、事件、行业知识、多媒体等等多元异构知识图谱。自然语言处理相信大家都不陌生,一个相对完整的自然语言处理体系包括词法、句法、语义到篇章各个方面。构建一个知识图谱的时候,这里面很多技术也会被综合使用。百度语言与知识技术一方面全面支持百度自己的产品,比如搜索、问答、对话、机器翻译等等,一方面通过开放赋能很多企业级的应用。
广义来看,知识图谱也是语言科学的一部分,知识的获取和运用是理解语言不可或缺的;反过来,为了更好地去构建、挖掘知识图谱,语言理解技术也是十分必要的,语言与知识技术是相辅相成的。
接下来,我会从这几个方面来介绍:一方面是多元异构的知识图谱构建,这里面会涉及到图谱构建的一些应用,包括复杂知识等等;另一方面,涉及自然语言处理技术的一些探索。当然,我们的架构图远比我今天所讲的要完整。在实际应用中,我们还会通过百度的开源开放平台,进行数据和技术的开放。
首先说多元异构知识图谱的构建。说到知识图谱,首先就涉及到图谱的构建,涉及到在开放的、海量的数据里怎么样去挖掘数据、构建超大规模知识图谱。我们人类学习知识,是靠各种视觉、听觉等等去感知世界,不断地建立和完善知识体系。机器如何学习?或者说让一个机器的大脑怎么去学?那就要靠数据,比如互联网上海量的多形态数据,蕴含了很多行业应用的有价值信息。
首先,我们从大量无标签非结构化数据中进行开放知识挖掘,一方面我们基于多维数据分析和语言理解技术自动获取知识挖掘模板,并通过不断迭代获取新模板、挖掘新知识;另一方面我们基于远程监督学习来自动构建训练语料。为了去除自动构建训练语料中的噪声样例,我们提出注意力正则化(Attention Regularization)技术基于实体上下文进行分析,通过模型输出指导标注语料的选择。通过这样一套方法,我们实现在千亿级文本中进行更精准地开放知识抽取。
基于开放知识挖掘抽取了大量的SPO三元组,需要对其进行归纳整理,我们提出了自底向上的开放本体构建,即从开放数据中挖掘实体和关系,从海量实体关系中自动学习实体类别关系、类别上下位关系,并逐层抽象形成本体结构,实现知识体系的自学习和构建。利用这样一套技术以后,本体规模增长了30倍,同时事实覆盖也有一个稳定的增长。
另一方面,在这样海量的数据里,有很多相似知识可能是从不同的数据、不同的文章里面抽取到的,这些知识如何进行融合、去粗取精,让它更准确、有效?这又涉及到多源数据知识的整合。我们通过语义空间变换技术实现实体消歧、实体归一等等,解决知识表示形式多样,关联融合困难的问题。基于前面提到的这些技术,我们现在构建了一个非常庞大的知识图谱,里面含有6亿实体,事实的量或者说各种关系量已经达到了3780亿。比我们人类大脑里面储备的知识多得多。
基本的知识图谱构建了以后,真正要用于各种真实应用,又涉及到很多更复杂的知识。所以我们从简单实体拓展到复杂事件,可以描述事件的动态、时序、空间、条件、概率等等关系。
下面我们说一下复杂知识。
比如桃园三结义的照片,在没有任何知识的情况下只能识别出画面中有三个人,有酒,有树。但是结合实体知识,我们可以知道这三个人的身份和更多的信息,比如树是桃树。进一步基于事件知识,我们知道是东汉末年,刘备、关羽、张飞三人在桃园结义。有了事件知识以后,还可以对动态变化的客观世界进行建模。
事件图谱以事件为基本单位,表达事件相关的元素以及事件间的关联关系,比如图中的内马尔转会,中间最左边是相似事件——姆巴佩转会,中间则以时间为线,从皇马开价、被评为最佳球员、皇马和巴萨的争夺、到达成转会协议……形成了一个完整的事件演变脉络。而参与事件的角色称为事件论元,如:内马尔、姆巴佩、巴萨、皇马等等,与对应的实体图谱相关联。
完整的事件图谱技术包括,底层的数据,事件图谱的构建(构建涉及到事件抽取、事件关系抽取、事件检测等技术),事件图谱的认知计算,例如事件链接、事件计算、事件推理,事件计算包括重要性计算、热度计算、质量计算、相似度计算;事件推理包括事件关系推理、事件论元预测、事件演化预测等。现在我们基本上可以做到分钟级的热点事件收录,实现千万量级规模的事件库,有十几个领域、4300+事件的类型。事件图谱应用,比如搜索热点“华为正式发布鸿蒙”可以呈现出完整的事件发展过程,帮助用户清楚地了解事件的来龙去脉;又如三峡大瀑布景区停业紧急通知,涉及地图信息点的发现、更新。
说完了复杂知识,我们再说行业知识。
行业数据量非常庞大,但是真正应用在一个行业里的时候,都需要转化为行业相关的专业性知识。行业知识,需求到底大到什么程度,举一些例子:研究报告认为,到2020年,行业数据的体量会是非常巨大的,比如说法律专业每年产出4亿卷宗,医疗方面的数据会提升48%以上。还有一些行业是知识密集型的,而运营商会用到很多的人工客服,中国有全职客服500万人,人力成本巨大。另一方面,传统行业对于大数据的应用比例还是很低的,比如金融行业非结构化数据占80%左右,有效利用率只有0.4%,而人工构建知识图谱,以freebase为例,每条人工成本大约为2.25美元,也都不便宜。
与通用知识图谱相比,行业知识图谱有共性也有所区别。比如说,通用图谱相对浅层,但覆盖非常广。因为通用知识图谱主要是以互联网、大数据为基础的。大家知道,互联网经过20多年的发展,已经和人类日常生活的方方面面都密不可分了,某种程度上,互联网可以被理解为客观世界的一个映射。这个庞大的网络能够构建很多种图谱,但是真正涉及到某个行业的非常细致、深入的知识图谱,互联网不能都覆盖到。所以,很多行业的知识图谱是相对封闭的,一般是由一些专家去构建、去标注。从图谱服务的角度,通用图谱可以让大家都去应用,但是行业图谱是针对特定行业的需求,定制化程度比较高,也有不同的应用方向。所以,以通用图谱为基础,面向行业的开发者,在图谱开发的时候,会涉及到一系列特有问题。
基于这样的背景,我们构建了一体化的行业知识图谱平台,将多年积累的通用图谱构建能力迁移至行业,建设了行业图谱的基础架构和构建平台,以及智能问答、语义检索、推理计算、智能推荐、内容生成等基础能力组件,支撑行业应用,并且针对行业特点实现一些优化,服务于不同领域的用户。
这里简单介绍一下医疗的知识图谱。为了构建一个医疗场景的知识图谱,我们跟很多合作伙伴合作构建了这样一个框架,包括结构化的解析、实体链接、人机结合、因果关系学习、诊断路径挖掘等等。我们可以看到,专业医疗图谱涉及到医院、医师、疾病等等各个方面,通过医疗的认知计算,提供各种医疗临床辅助决策服务。
多媒体知识图谱。今天我讲的题目,是知识图谱和自然语言处理,但实际上,人类几千年传承靠知识来做载体,还包括了语音、视觉,以及各种各样的形式。现在视觉类的产品,坦率来说都不智能。比如,计算机视觉技术可以识别,但识别出来之前,如何将这些孤立的数据联系起来?还是跟图谱相关。我们可以基于图谱把知识关联起来,进行它们之间的关联与计算,进而能够做结构化的语义理解。
接下来介绍知识增强的语言处理技术。
如前面所说,一方面语言理解是我们发现知识很重要的基础,另一方面,有了这些知识,可以更好地帮助我们做人工智能。
在语言方面,首先介绍语义表示。我们知道,自然语言存在很多歧义,同时一个意思也可以用不同的词来表述,句子表达的形式非常多。因而好的形式化语义表示是计算机处理语言的基础,语义表示可以分为形式化符号表示和统计分布式表示。
随着深度学习的兴起,统计分布式语义表示这几年很受欢迎。简单回顾一下历史,相信大家都很清楚,2003年,图灵奖获得者Bengio,最早提出了前馈神经网络语言模型,这些年得到了很大的发展,这两年出现了很多基于分布式表示的预训练语言模型。今年百度先后发布了两版语义理解框架ERNIE。
ERNIE1.0是基于知识增强的语义表示模型。我们为了训练这些模型,使用了包括百度百科、新闻、对话等等海量的多样化语料,同时强化了中文的词、实体等先验语义知识,从而得到更好的语义表示模型。
在1.0知识增强的基础上,我们希望不断更新这个系统,ERNIE2.0在知识增强的同时,又增加了持续学习的能力,通过基于多任务学习的预训练任务迭代,不断提升模型性能。通过对百科、对话,篇章结构、网页搜索、语义关系等超过13亿知识不断地学习,不断地积累,ERNIE在多项中英文自然语言处理任务上取得了业界最好效果。
基于语义表示,我们可以做更复杂的语言理解任务,例如机器阅读理解。
机器阅读理解就是让机器来阅读文本,并且回答相关的问题。知识对于机器阅读理解会起到什么作用呢?比如这个例子,问的是《人在囧途》是谁的代表作,仅靠文本自身的内容是不够的,需要基于一些外部知识来得到想要的答案。为此我们提出文本表示和知识表示融合的阅读理解模型KT-NET,通过融合前面讲的知识图谱增强文本阅读能力。这个技术在实体对话等很多领域已经得到了非常好的应用效果。
阅读理解能力也广泛应用于搜索产品。现在我们的移动设备越来越小,而大家的工作生活节奏越来越快,希望搜索不再像以前是一条条的URL、摘要,更直观、准确的结果是大家更希望看到的。这里面就涉及到智能问答的技术,比如“香格里拉酒店的老板是谁”,这个问题,大家就需要很直观的回答。有时智能问答不仅仅是直接给出一个答案就可以,更多的应该是一段话来进行高度相关的解释。比如面对“煎鱼怎么不粘锅”这个问题,我们会给出方法一、方法二两个回答。
对于聊天,我们提出基于知识的主动聊天技术。目前相对普遍的技术是用户问一句,然后机器进行回答,用户主动地问,机器被动应对。而真实场景的聊天,用户是希望机器可以主动地发起对话的。于是我们设计了基于知识驱动的自主对话任务,让机器根据给定的知识图谱信息,主动来引领对话进程,达到信息充分交互。
基于百度飞桨(PaddlePaddle),我们开源了检索模型、生成模型两个主动对话的基线模型。同时我们举办了一个知识驱动的对话竞赛,这个竞赛影响很广泛,参与度很高,队伍报名数1536支,提交结果数1688次。
最后介绍一下语言生成,包括机器辅助写作和智能自动创作。
现在内容创作过程中面临一些痛点,包括捕捉不到热点信息,实时报道速度不够快,也包括人工审核成本高、搜集素材费时费力、创作用词缺乏灵感、多模态内容需求等等。这些问题借助我们的技术,都可以缓解。创作前可以辅助选题、激发灵感,包括热点发现、热词分析、事件检索、观点分析等等。创作中可能需要更多辅助的素材,把很多相关的内容呈现出来,这个时候需要做信息的推荐,加入一些领域知识库,一些历史相关的事件脉络,帮助写作。当然还有标题的生成,这个也是很有技术含量的。创作后保证质量、提升分发。保证质量包括文本纠错、低质检测、词语润色;提升分发,包括添加文章标签、自动摘要、文本分类。
另外一方面,机器也可以自动创作,能够实时的追踪事件的波动,自动把相关的信息汇聚,生成文章,覆盖重要信息。相比人工写作,既省时省力,还可以提升稿件质量,应用程度非常高,也非常广。这是基于结构化数据自动生成新闻的基本过程,包括宏观规划、微观规划、表层实现。为了实现智能创作,百度打造了智能创作可视化平台。
上述语言和知识技术,都是基于百度飞桨深度学习平台实现的,飞桨是国内唯一功能完整、开源开放的深度学习平台。其中PaddleNLP是中文语言与知识模型及数据集,开放了大规模的数据集,包括阅读理解、对话、语音翻译、信息抽取、实体链指数据集等等。提供基础网络,支持序列标注、文本分类、语义匹配、语言生成等等各种类型任务,还包括百度最新的前沿研究成果。