Kaiyuansjtu 2018-07-09
点击上方关注,All in AI中国
在本文中,将为大家简单介绍自然语言处理语义建模(NLP)的概念。
语义建模(或语义语法)通常与语言建模(或语言语法)进行比较,最好从对比中定义和理解语义建模开始。
语言与语义
语义和语言语法都定义了理解自然语言句子的正式方式。语言语法处理语言类别,如名词、动词等。另一方面,语义语法是一种语法,其非终端不是名词或动词等通用结构或语言类别,而是像PERSON或COMPANY这样的语义类别。
语言和语义两种方法在20世纪70年代几乎同时出现。语言模型多年来一直受到关注(作为计算语言运动的一部分),并且是整个NLP发展的基础。
语义模型在最初开始时引起了兴趣,但由于技术复杂性而迅速失败。然而,近年来,语义建模经历了复兴,现在它几乎是所有商业NLP系统的基础,如Google、Cortana、Siri、Alexa等。
掌握语义语法和语法语法之间区别的最简单方法是查看下图:
在上图中,较低和较高的句子是相同的,但它们的处理方式不同。使用传统语言语法对下半部分进行解析,其中每个单词都标记有PoS(Point-of-Speech)标记,如NN代表名词、JJ代表形容词,等等。然而,上部使用语义语法进行解析,而不是单个词被PoS标记,一个或多个单词形成高级语义类别,如DATE或GEO。
当然,这是对语言学方法的高度简化定义,因为我们不考虑共同参考分析,命名实体解析等。
引入了将单个单词分组为高级语义实体的能力,以帮助解决困扰早期NLP系统的关键问题,即语言歧义。
语言歧义
我们先看下图:
尽管两个句子的语言特征实际上是相同的,但语义是完全不同的。仅使用语言语法解决这种模糊性将需要非常复杂的背景分析。如果可以获得这样的背景,并在许多情况下,确定性地完成它是根本不可能的。
另一方面,语义语法允许以简单且完全确定的方式清楚地解决这种模糊性。使用正确构造的语义语法,星期五和Alexy将属于不同的类别,因此不会产生混淆的含义。
请注意,精明的NLP读者会注意到,除了具有相同的PoS标记之外,这些单词将具有不同的“命名实体”分辨率。在这个特定的例子中,确实是这样。然而,在更复杂的现实生活中,实体分辨率被证明远没有那么有效。
语义语法示例
让我们看一下语义语法的简单定义。
无论配置的具体语法如何,语法通常被定义为语义实体的集合,其中每个实体至少具有名称和可通过其识别该实体的同义词列表。
例如,这里有一个关于网站和用户实体及其同义词的简单定义:
鉴于此语法:
将全部解析为相同的两个语义实体:
当然,现实系统支持更复杂的语法定义。定义同义词有许多不同的方法,它们是许多不同类型的同义词本身;语义实体可以具有数据类型,并且可以按层次组进行组织以帮助进行短期内存处理。遗憾的是,所有这些都超出了本博客的范围。你可以在这里找到这种语法支持的一个例子(https://www.datalingvo.com/client/src/javadoc/com/datalingvo/mdllib/DLElement.html)
决定论与概率论
我们强调了上面的语义语法方法的确定性。虽然语言和语义语法应用的具体实现既可以是确定性的,也可以是概率性的,但语义语法几乎总是导致确定性处理。
其原因在于语义语法本身的性质,它基于简单的同义词匹配。正确定义语义语法使得能够完全确定性地搜索语义实体。实际上没有“猜测”——语义实体要么明确地找到,要么没有。
由此产生的语义语法决定论是一个显著的特点。虽然概率方法可以在许多众所周知的场景中运行,例如情绪分析、支持聊天机器人或文档理解,但它不适合NLP / NLU驱动的业务数据报告和分析。
例如,如果您的推特简讯为85%或86%,是积极的,只要它朝着正确的方向发展,那就无关紧要了。但是,另一方面,销售数字的报告必须是正确的,并且必须与会计系统的数据精确匹配。即使像“你上个季度的总销售额是1亿美元,概率是97%”这样的高概率结果在任何情况下都毫无价值。
凭借语义语法的所有优点,有一个明显的限制阻碍了它的发展(至少在最初阶段)——即它只能应用于狭窄的数据域。
通用与特定领域
虽然语言语法对于所有数据域都是通用的(因为它处理动词和名词等通用语言结构),但语义语法及其基于同义词的匹配仅限于特定的,通常非常狭窄的数据域。其原因在于,为了创建语义模型,需要提出所有实体的详尽集合,并且最令人生畏的是所有同义词的集合。
对于特定的数据域,它是一个可管理的任务,并且是由复杂的现实生活系统极大地帮助的任务。对于一般的NLU,如在一般人工智能(AGI)中,语义建模根本不起作用。
在过去的十年中,有很多关于使用闭环人工管理和监督自学习功能推进语义建模的研究,但事实仍然是语义建模在处理特定的,明确定义和理解的数据时最佳应用域。
值得注意的是,流行的深度学习(DL)NLP / NLU方法几乎从未在特定数据域中运行得足够好。这是由于DL模型训练缺乏足够大的预先存在的训练集。这就是传统的闭环人类策展和自学习ML算法在语义建模系统中占主导地位的原因。
管理和监督自学
人工管理(或人工切换)和监督自学习算法是两种相互关联的技术,有助于在开发新的语义模型时减轻为语义实体提出详尽的同义词集的问题。
这两个工作如下。首先,使用语义实体的基本同义集创建语义模型,这可以很快完成。一旦使用该模型的NLP / NLU应用程序开始运行,该模型无法自动“理解”的用户句子将被管理。在人的处理过程中,将修改用户句子以适合模型,并且自学习算法将“学习”该修改并且将在下次自动执行它而无需人类切换。
此过程中有两个关键属性:
在所有这一切中重要的是监督允许在语义建模进一步“学习”时保持语义建模的确定性。使用管理和有监督的自学习,语义模型可以在每次都学到更多知识,并且最终可以比在开始时学到的知识更多。
因此,模型可以从小规模开始,通过人工交互学习,这个过程与许多现代AI应用程序没有什么不同。
结论
在过去的50年里,语义建模经历了几个高峰和低谷。随着最近的实时人工管理与监督自学习的相互关联,这种技术最终成长为当今大多数NLP / NLU系统的核心技术。因此,下次你向Siri或Alexa说一句话的时候,在后端系统的某个深处,有一个语义模型将正处理这个答案。