雷锋网 AI 研习社编者按:语义分析(semantic parsing)是人工智能的一个分支,是自然语言处理技术的几个核心任务,涉及语言学、计算语言学、机器学习,以及认知语言等多个学科。近年来,随着人工智能的发展,语义分析也越发重要。
word embedding 是很常见的 input feature,能够很大程度地提升语义分析模型的性能。然而,对于 output 对语义分析模型性能的影响,大家的关注度却并不是很高。
近日,在雷锋网 AI 研习社公开课上,新加坡科学设计大学在读博士邹炎炎就用通俗易懂的语言为大家介绍了 semantic parsing 的概念、背景以及自己在该领域的论文成果,并介绍了关于 output embedding 对于 semantic parsing 的影响。公开课回放视频网址:http://www.mooc.ai/open/course/544?=aitechtalkzouyanyan
邹炎炎:新加坡科学设计大学博士在读,主要研究方向为自然语言理解。
分享主题:语义分析介绍及跨语言信息在语义分析中的应用
分享提纲:
1.semantic parsing 背景介绍
2.semantic parsing 模型介绍
3. 如何学 output embedding
4. 实验分析
雷锋网 AI 研习社将其分享内容整理如下:
今天跟大家分享的内容包括两个部分:
一是语义分析介绍,考虑参与分享的大多数朋友并不是从事 semantic parsing 的相关工作,所以我会从通俗易懂的角度为大家做一个普及;
二是讲一下我们在 ACL 2018 会议中的一篇短文——《跨语言信息在语义分析中的应用》(Learning Cross-lingual Distributed Logical Representations for Semantic Parsing)
对于做 nlp 的人来讲,parsing 一般会被默认为 Syntactic Parsing——语法方面的分析,常见的分析有 Dependency parsing(依赖关系分析)和 Constituency parsing(成分句法分析)。
Wikipedia 上对 semantic parsing 的解释是:把人类自然语言的话转化为机器能够读懂的语言。
为了让大家更好地区分语法分析和语义分析的不同点,我先介绍一下两种分析的任务:
Dependency parsing :比如输入一句话「I saw a girl with a telescope」,Dependency parsing 的目标就是找到哪两个词之间是存在依赖关系的,更进一步的话,可能需要给这种关系标记上 Label。例如 「I 」是 「saw」 的修饰词,其他关系同理。
Constituency parsing:我们以同样的句子为例,这里我们关注的不是两个词之间是否存在修饰、依赖关系,而是关注哪些词构成一个短语,一个短语即是一个成分,比如「a telescope」就是一个名词短语。
Semantic Parsing 则是指输入一段完整的话,最后输出 semantic representations(MRL)。那 semantic representation 是什么呢?就我了解的而言,主要有五种比较流行的 representations :
• Lambda calculus expressions(一般与 CCG 配合使用)。
• Lambda dependency-based compositional semantics(lambda-DCS)
• Forest, or DAG representations (AMR)
• SQL
• FunQL (logical forms with tree structures)
本次分享中,我们主要采用了 FunQL 这种语义分析方式。
【更多关于这五种主流语义分析的讲解细节,请回看视频 00:08:30 处,http://www.mooc.ai/open/course/544?=aitechtalkzouyanyan】
从广义上来讲,Semantic Parsing 可以分为两类:
• Task-independent:Semantic Parsing 只关注语义分析这一块,input 就是一个句子,output 就是一个 representation,它的目标就是怎样以更好的 Semantic Parsing,来预测句子的更准确的 representation,而不关注下面的任务是什么。
• Task-specific:兴趣点在于训练一个能帮助完成 Answering questions、Taking actions 等这些任务的 Semantic Parsing。
【关于更多对二者的区别的讲解以及案例,请回看视频 00:15:45 处,http://www.mooc.ai/open/course/544?=aitechtalkzouyanyan】
总的来说,我们要把一个文本转化为 semantic representation 的形式,本文采用 FunQL 这种 representation 的方式,目标就是将文本转化为一个 semantic trees(语义树)。当然这个 semantic trees 也可以反向转化为 FunQL,使用 semantic trees 这个媒介,能帮助我们更好得学到句子的语法意义。
一般来说,Semantic Parsing 中一个比较流行的方法就是去学习 joint representation——可以同时将 input 的词和 output 的 semantic units 进行对齐处理。
这次我主要介绍我们实验室的一系列工作,包括:
Generative Hybrid Tree (Lu et al.,2008)
我们知道 input 是一句话,output 是一个 semantic trees,例子中,input 为「how many states do not have a river?」这句话,下面就是它的 semantic trees,我们可以将二者的对应关系表示为 Hybrid Tree 的形式,如下图:
【关于 Generative Hybrid Tree 的更多讲解,请回看视频 00:19:17 处,http://www.mooc.ai/open/course/544?=aitechtalkzouyanyan】
Generative Hybrid Tree 有一些优点和缺点。
优点:第一,它是 Language-independent,不管 input 是中文还是英文,只要喂一个模型,系统就能输出一个 Semantic Parsing;第二,可以很好地模拟出来词与 semantic units 的对齐关系,这个对于 Semantic Parsing 来说非常重要;第三,效率性比较高。具体的推导,大家感兴趣的话可以阅读论文。
缺点:第一,无法获得长距离的依赖关系;第二,能引入的特征比较有限。
Discriminative Hybrid Tree (Lu,2014, 2015)
在这个工作中,我们采用了 log-linear model(对数线性模型)来解决上一篇论文存在的两个问题。绿色字体是在 Generative Hybrid Tree 的基础上新引入的,它们与 semantic units 保持着联系,它能将句子的节点与所有子节点的对齐关系都考虑进去。
【关于 Discriminative Hybrid Tree 的更多讲解,请回看视频 00:25:25 处,http://www.mooc.ai/open/course/544?=aitechtalkzouyanyan】
除了一般的特征,Discriminative Hybrid Tree 这个模型还会考虑到 Word n-gram features、Character-level features、 Span features 这些额外的特征。
Neural Hybrid Tree (Susanto、Lu, 2017)
现在 Neural Network 非常盛行,也有很多工作完全使用 Neural model 来完成 Semantic Parsing 的工作。Neural Hybrid Tree 其实就是 Discriminative Hybrid Tree 的一个扩展版本,引入了一些 Neural 特征,来帮助我们更好地学习 Semantic Parsing。
【关于 Discriminative Hybrid Tree 的更多讲解,请回看视频 00:28:35 处,http://www.mooc.ai/open/course/544?=aitechtalkzouyanyan】
下面讲一下我们在 ACL 2018 会议中的一篇短文——《跨语言信息在语义分析中的应用》。跨语言信息其实很少作为一个特征用于 Semantic Parsing。那为什么我们会想到使用跨语言信息去学习语义分析器呢?
例如 Machine Translation 将「How many states have no rivers?」转化为中文「有多少洲没有河流?」,可能会有很多种表达,但是语义是一样的。不同的语言其实有一些共享的信息,那这些共享信息是否能帮助我们更好的去学 Semantic Parsing 呢?这就是我们的 Motivation。
【更多关于使用跨语言信息去学习语义分析器的 Motivation 的讲解,请回看视频 00:32:15 处,http://www.mooc.ai/open/course/544?=aitechtalkzouyanyan】
接下来就是怎么去给这些共享信息建立模型。我们的目标就是在给定目标语言和辅助语言的情况下,比如要学英文的 Semantic Parsing,会以英文为目标语言,以中文、德文等其他语言为辅助语言,在训练英文的 Semantic Parsing 前,我们会在辅助语言以及语言所对应的「语义树」中学一些 cross-lingual information,之后我们会根据给定的数据,可以用 embedding 或者分布式表达去建立跨语言信息模型。
【更多关于建立跨语言信息模型的讲解,请回看视频 00:34:50 处,http://www.mooc.ai/open/course/544?=aitechtalkzouyanyan】
我们用一些实验数据来证明 output embedding 对于模型的性能是有用的,如下图中的表格:
【更多对该数据表格的详细讲解,请回看视频 00:37:00 处,http://www.mooc.ai/open/course/544?=aitechtalkzouyanyan】
那学出来的 Cross-lingual Representation 到底表示什么呢?我在这里截取了其中的一部分,如图:
如果 semantic units 拥有相似或者一样的 functional symbol,它们倾向于组成一个 group,在二维空间中非常接近。比较接近的语义会离得比较近,相反的语义则会离得比较远。
最后做一下总结,本次我们分享了语义分析的基本背景知识,我们实验室工作中用到的一些语义分析模型、ACL 2018 会议中的短文《跨语言信息在语义分析中的应用》以及语义分析的一些表现。
接下来,我们会考虑用一个 joint 的形式同时去学跨语言的 representations 和跨语言的 semantic parser。
以上提到的三个 Hybrid Tree 模型以及我们在 ACL 2018 的论文的代码,都可以在我们的官方主页(http://statnlp.org/research.sp/)上下载。
以上就是本期嘉宾的全部分享内容。更多公开课视频请到雷锋网 AI 研习社社区(https://club.leiphone.com/)观看。关注微信公众号:AI 研习社(okweiwu),可获取最新公开课直播时间预告。