肖仰华老师《基于知识图谱的机器语言认知》

本周五参加CCF YOCSEF专题探讨班《知识图谱》讲座上有幸听到了肖仰华老师关于《基于知识图谱的机器语言认知》的分享。下面将整理肖老师分享的主要内容。

知识图谱不单单是人类对世界认知的结果,不单单是各个行业知识沉淀的结果。有了这些结果,使得机器理解我们人类世界,理解我们人类的自然语言成为可能。正是这个可能性,各行各业的数据、文档的价值有可能被挖掘出来,各行各业现在都在利用各行业知识图谱实现行业智能化。在使用知识图谱实现行业智能化的过程中,让机器具备语言能力是一个非常关键的核心技术。微软研究院院长沈向洋曾经说过:“得语言者得天下”,意思能够率先让机器理解语言就能在人工智能中赢得头筹。 下面是分享的主要内容:

1、为什么机器理解自然语言需要知识图谱
2、怎么利用知识图谱让机器理解自然语言
3、开放问题的讨论

能不能让机器像人类一样思考?人类的思考活动非常复杂,我们有各种各样的思考活动。在所有的思考活动中,语言理解/语言认识是一种非常关键的思考活动,语言能力和语言思考能力是我们脱胎于动物的重要原因。那能不能把我们的语言理解能力赋予机器?

大部分的文档、互联网数据需要机器自动理解。现在各行各业都有大量数据,但大部分数据是躺在服务器上睡觉,没有创造预期的价值。缺乏智能化手段,缺乏机器自动理解数据的能力。如果赋予机器以知识,语言理解能力,机器就能理解我们的文本,理解我们的数据,释放数据的价值。但很显然,语言理解很困难。

语言是具有歧义的、拥有丰富的上下文、语义表达是隐式的。例如:单单“apple”这个单词,既可以代表一种水果,也可以代表一家公司,即语言具有歧义性。但如果是“I have an apple pie for lunch”,我们能够明白这里的“apple”是指水果;如果是“I have an apple iPad”,我们也能知道这里的“apple”是指苹果公司。所以语言的理解需要上下文,语言的含义通常是隐含的。语言理解的第二个困难在于语言具有多样性。

中文里面表达“老婆”、“妻子”有一百多种说法,所以语言表达的多样性也对语言理解提出了巨大挑战。语言理解从深层次讲为什么这么难呢?

人类对语言的理解是建立在认知的基础上,我们之所以能够理解彼此所说的话,是因为我们具有相似的背景知识。如果想让机器理解我们的语言,是不是也需要机器具有和我们相类似的背景知识?那什么样的背景知识才能支撑机器理解我们的语言呢?

1、知识必须要有足够的覆盖率,包含各种常见的实体和概念,即规模必须巨大。
2、语义关系必须丰富。
3、具有良好的结构。人类知识最大的载体是书籍,但书籍是非结构的,机器消化不了,必须加工整理为结构化数据,机器才能理解。
4、质量足够高。“garbage in, garbage out”。

如果以这四个要求去看传统的知识表示方式,就能发现它们或多或少的缺点。例如:本体对于实体的覆盖比较少,其侧重于schema层;语义网则关系比较单一;传统的plain text没有良好的结构。因此这些传统的知识表示方法都存在缺陷。2012年谷歌提出的知识图谱是一个合适的选择

知识图谱作为一个大规模的语义网络,富含了各种各样的实体、概念及其之间丰富的语义关系,具备规模巨大、语义关系丰富、质量精良、结构友好的特点。正是因为知识图谱的这些优点,我们看到了越来越多的知识图谱的出现。

当越来越多的知识图谱出现,将通用知识图谱、各个行业知识图谱放在机器大脑背后,让机器具备通用自然语言的理解能力、行业语言的理解能力,这件事情成为了可能。下面将介绍怎样让机器具备语言理解的能力,首先介绍下应用了什么样的知识图谱

一类是概念知识图谱,或者称作taxonomy。Taxonomy又分为严格taxonomy和lexical taxonomy。lexical taxonomy中富含了大量的“isA”关系,如“China is a developing country”,“China”是一个人实例,“developing country”是一个概念。这种知识库是怎么构建的呢?差不多是在2011-2012年,大家从互联网语料通过语言学pattern,如英文中的“such as”中前半部分往往是概念,后半部分往往是实例。只要不是绝对封闭的领域,从任何预料采用data-driven的方式抽出来的知识一定会有bias和缺失。即很多知识单单靠抽取是抽不出来的,这就需要推断。推断可以是基于符号规则的严格推理,也可以是基于已有知识图谱的结构特性的推理。如PPT中所示,假设C是乔布斯,那乔布斯是不是一个billionaire呢?那我们就去看跟乔布斯相似的实体,如果他们都是billionaire,那乔布斯十有八九也是一个billionaire,其实这就是一个很简单的协同过滤的思路。

第二类知识图谱是DB-Pedia这类富含了各种各样事实的知识图谱。

在介绍怎么利用这些知识图谱做这件事之前,需要先澄清一件事情:什么是理解?这是一个很难很难的问题,可能理解是一个伪命题,但我们还是希望得到一些符号化的理解。比如说我们在看见一个短文本后,能明白其在描述的某个实体;在看见一堆词后,能够促发我们想到某个概念;当说到某个概念时,我们能够通过一组属性理解其内涵。

一、理解一段文本指代的实体。 例如在看见“China is a country”,我们能够明白这里的“China”是国家而不是瓷器;在看到“Li Na won 51 singles matches and lost just four in this year”和“Li Na’s signature song”时我们能够明白第一个“Li Na”是网球运动员,第二个“Li Na”是歌手。这就是理解,理解文本背后所指代的实体。在短文本中,这个问题是非常难的,因为短文本缺乏必要的上下文,缺乏必要的用于推断的依据。下面是我们的解决思路

人之所以能够区分两个不同的李娜,是因为第一个句子中出现了“won”、“matches”和“lost”这些词,第二个句子中出现了“song”这个词。人通过分析这些上下文,将不同实体区分开。但这里的问题是,为每一个实体找这些上下文可能不是很多,但是,关于网球运动员和歌手的上下文是很多的,因此我们可以建立起概念与这些词汇之间的统计关联,也就是只要出现了“won”、“matches”和“lost”很有可能是一个tennis player,只要出现了“song”很有可能是一个“singer”。只要知道者两个李娜分别是tennis player和singer,就不难推断她们分别是谁。怎么实现这个办法呢?

用细粒度的主题作为概念指引实体链接模型找到正确的实体。

二、理解实体的概念。 如对于一篇语料中特朗普这个实体,特朗普这个实体有很多概念类别,如:政治人物、支持人、商人等,我们能不能理解这篇语料中特朗普的概念类型。naive的做法是做一个有监督的entity typing,用远程监督对数据进行标注,但是远程监督出来的句子可能是一个噪音,如“特朗普继承了他父亲的房地产生意”这句话只能说明他是一个商人,不能说明他是一个政治家。下面是我们对这个问题的解决思路:

第一、利用远程监督降低样本的标注代价;第二,采用end-to-end的深度学习框架自动做entity typing;第三,在type fusion中利用先验知识(人的知识,知识库中存在的知识)约束融合的过程。这几个思路都体现了怎么利用已有的知识库尽量降低整个方案的人力成本。

三、理解短文本的概念。 例如:“Alice has been using Apple for more than ten years”这里Apple的概念是mobile phone;“Bill Gates is one of the co-founder of Microsoft”这里“Bill Gates”的概念是entrepreneur、person。这里有两个需要关注的点,①选择正确的概念;②选择更有信息量的概念。下面是实现的细节:

在深度学习的框架里,采用C-ST Attention和C-CS Attention帮助选择正确的概念,更进一步,采用vanilla attention选择正确的概念,采用source2token self-attention选择更好的概念。

四、理解一堆实体对应的概念。 例如:给定“中国、巴西、印度”,人类可能会联想到金砖四国、发展中国家等概念,因此俄罗斯是一个不错的推荐;给定“百度、阿里”,人类可能会联想到IT公司、中国互联网巨头等概念,因此腾讯可能是一个不错的推荐。这个可以用来做推荐,而且是可解释推荐。解这个问题的思路如下:

以Probase等富含概念实体“isA”关系的知识库为支撑,解这个问题的关键是怎么理解已经观察到的实体集的概念,对于一组实体集的语义,采用概念分布表达其语义,例如对于“中国、巴西、印度”,能够促发我们想到金砖四国、发展中国家等概念,因此就会有一个概念分布 P ( C ∣ q ) P(C|q) P(Cq),现在要推荐一个新的实体,新实体加入进来后,尽可能保持概念分布 P ( C ∣ q , e ) P(C|q,e) P(Cq,e)与原始分布相近。

五、理解一组词描述的概念。常见的用途是给文档打标签,例如文章中提到了“China, Japan, India, Korea”,我们可以分配“Asian country”的标签;对于“dinner, lunch, food, child, girl”,我们可以打一个“meal, child”的标签;对于“bride, groom, dress, celebration”,我们可以打上“wedding”的标签。这件事情的关键难点在于:找到一组概念标签非常完美的概况这组词,很显然我们希望找到的概念标签越少越好,而且这组标签尽可能多的覆盖看到的词。

这是Minimality和Coverage之间的矛盾,可以采用最小描述长度(Minimum Description Length),希望找到的这组概念本身的编码代价尽可能小,同时用这组概念编码看到的这组词的代价也尽可能小。

六、让机器理解一个概念。 什么是理解一个概念?例如对于概念“单身汉”,我们能够立马联想到单身未婚男性,也就是我们会用一组属性解释单身汉。即我们能不能为常见的概念找到定义性的属性,mining Defining Features。

处理方法同样是利用DB-Pedia,在DB-Pedia中存在很多的category,category下面有很多实例,每个实例有很多三元组属性,那么我们就可以去挖这些实例最重要的属性是什么?剩下的问题就是如何评估这组属性的好坏。从两个角度进行:①如果这个category下的大部分实体都具有这组属性,那么这组属性很有可能是这个category的定义性属性;②如果具有这组属性的大部分实体都属于这个category,那么这组属性有可能是这个category的定义性属性。剩下的问题就变成一个优化问题,然后就变成一个搜索问题,搜索空间可能很大,可以先用频繁模式挖掘去剪枝掉那些绝不可能的搜索集。

让机器理解动词短语。 现在人与机器的交流大部分是动词指令,比如“我想看战狼2”和“我想看老友记”,虽然都是“看”这个动作,但对应的行动指令完全不同,人类之所以能够做出不同的行动,是因为我们明白第一个“看”是看电影,第二个“看”是看电视剧,所以我们是在概念层次理解动词短语。因此需要解决的是给机器一堆动词指令,机器能否生成相应的概念模板。

这里的关键问题同样是处理一对矛盾,问题的实质是做短语的归纳,例如:对于“eat breakfast, eat lunch, eat dinner”。可以归纳为“eat activity”,也可以什么都不做。前者over general,后者则over specific。所以需要处理over general和over specific的矛盾,同样可以采用MDL来做。

让机器理解自然语言问句。 其中很关键的问题是如何表达问题的语义,可以采用基于字符串模板/规则的表达,也可以是基于embedding的隐式表达。这里我们提出用显式的概念模板表达

无论我们是问“How many people are there in Shanghai”还是“How many people are there in Beijing”,本质上都是在问一个城市的人口,因此可以表达成模板“How many people are there in $City”。然后建立起模板到知识库中谓词的映射,例如对于“How many people are there in $City”就可以映射到知识库中相应City的population谓词。这个映射关系是通过互联网语料的QA对自动建立起来的。

最后是一些开放问题的讨论。

总结

肖仰华老师的lecture总是条理清晰,深入浅出,这次的lecture也给了我很多启发。当然这次的《知识图谱》探讨班内容干货也很非常多,其他老师的分享也非常精彩,关于这次探讨班的报告可以参考雷锋网的报告

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值