1. 引言
近年来,随着我国现代化速度不断推进,国民经济的迅猛发展,中国民航事业以迅猛的速度走入人们的日常生活,超高的发展速度给全国人民带来了更加方便快捷的出行选择,但与此同时前所未有的发展速度也给全体民航飞行安全保障人员带来了的巨大的工作压力。航班量的飞速增长让许多民航幕后工作者走到了前台,根据中国民用航空局发布的《2019年民航行业发展统计公报》 [1] 显示,自2015至2019年,全国航班起降架次由856.6万架次快速增长到1166万架次,年平均增长率超过了8%,如图1所示。流量的飞速增长对系统的保障水平提出了更高的要求,气象因素这一在低流量运行状态下非关键飞行安全要素在大流量运行时也成为影响航班正常率的主要因素之一,根据公报数据显示,因气象原因造成的航班不正常情况已经占到总数的46.49%。未来整个民航业对气象服务的需求将会更加旺盛,但现有保障能力还远远不能满足用户的需求。

Figure 1. Flights taken off and landed at China’s civil airports from 2015 to 2019
图1. 2015~2019年中国民用机场航班起降架次
2. 智能对话系统
对话系统的发展为解决航空气象服务短板提供了一种新的可能,对话系统并不是一个新兴领域,自20世纪60年代开始,研究人员就已经开始了人机对话的研究,其中麻省理工学院的Weizenbaum开发的Eliza被认为是第一个智能对话系统 [2]。对话系统的发展历程可以归纳为三个阶段:基于符号规则和模板的对话系统;基于传统机器学习的对话系统和基于数据驱动的深度学习的对话系统 [3]。第一阶段研究主要是人工制定语法规则和本体设计,计算机易理解,但会消耗大量的人力和物力。传统机器学习方法降低对话系统的手工复杂性,也有一定弱机器学习能力,但是解释扩展性差。目前对话系统研究主要采用深度学习技术,得益深度学习等技术进步,对话系统也取得新的突破,获得新的发展前景。以微软Cortana、以亚马逊Echo、百度Duer、谷歌Home等为代表的智能对话产品也越来越多的走进人们的日常生活,对话系统从简单的问答的实现,向着更加准确、迅捷和人性化的方向不断发展。
按照使用场景的不同,一般讲对话系统分为开放型(Open-domain)对话系统和任务型(Task-oriented)对话系统两种类型。
2.1. 开放型对话系统
开放型对话系统是指不限定主题或者对话目的对话系统,用户和智能设备之间进行的随意性对话。这类对话是现在人工智能领域的一个主要研究方向,研究人员致力于开发出能够与人类进行持续、开放性的对话系统,国内外主要AI巨头都致力于此类对话系统的研究,亚马逊、谷歌、百度、腾讯等公司都面向市场推出并推出大众消费品级的智能音箱产品,而这其中以类人机器人索菲亚(Sophia)为代表,其融合了多种人工智能技术,在谷歌语音技术的加持下,她已经可以与人“侃侃而谈”。虽然已上述技术产品为代表,开放域对话系统涌入人们日常生活,但其对话质量不高、对话深度不够和逻辑联系性差等问题并未得到根本性解决,距离其成熟完善还有很长的距离。
2.2. 任务型对话系统
任务型对话系统是以解决具体问题为驱动,应用场景设计为帮助使用者更快的完成某项具体任务。这类对话系统任务目标非常明确,通常局限在某一个限定的专业领域,但其适用于各类任务场景,非常有利于节省人力成本或提升效率。但相应的此类系统对于对话内容的准确性要求相对开放域对话系统又高出许多,且对话数据规模很小,可用语料资源少,需要人为整理知识库、领域词典等。这类系统往往具有显著的唯一性特征,很难从一个任务领域很好的匹配到另一个领域。航空气象服务就属于典型的任务型对话系统。
研究认为,对话系统现在包括两种主要处理方法:管道方法(pipeline)和端到端方法(end-to-end) [4]。管道(pipeline)方法被认为主要用于任务型对话系统研究,其系统框架如图2所示,如果将语音对话简化为文字对话,对话系统结构可以更加简化为图3所示。

Figure 2. Structural drawing of pipeline method
图2. 管道法结构图

Figure 3. Structural drawing of text dialogue system
图3. 文本对话系统构图
3. 基于序列的语意解析
任务型对话系统的关键技术之一是命令解析,命令解析的目的在于是计算机能够识别用户自然语言中的命令意图,计算机经过自然语言处理识别出可执行的计算机指令,响应指令实现人机交互,这其中的关键是识别用户输入的句子中的关键语义槽,即用户拟执行的命令所必备的语义参数 [5]。
对于目标一致的对话,对话双方的最终目标是一致的,但这些对话在现实环境下总是隐含了其它分支问题,故准确地执行这样的对话也就同时执行了相应的分支问题,而每一个子对话都是通过关键语义槽来表示。将对话中的关键语义词进行识别表示,就可以表示一段完整的对话,具体如表1所示。

Table 1. Semantic slot extraction description
表1. 语意槽抽取说明
将命令解析引入进来通常要考虑到领域/意图解析与语义槽识别问题。假设在已经清楚任务的意图的情况下,则语义槽内容的辨别工作仅需在该文意条件下进行,但若第一步的解析出现问题,则后者的识别工作也将随之出现问题,由此导致不正确的传播。为避免这种不正确的传播,在某些工作中出现了上述两项识别工作的联合模型,它能够将通过网络结构学习输入的句子进行拆分,将每个词的标签、领域/意图所属范畴一起给出。
语义槽填充的主要思路如下:首先进行对话关键特征识别,然后将用户的自然语言语句分配到具体的意图中,最后根据识别到的语义槽进行指令执行。
本文将识别语义槽的工作看做序列标记工作,该工作通常从以下三个方面出发,即规则、传统机器学习以及基于深度神经网络的方法。
3.1. 基于规则的方法
此种方法需要在匹配之前先完成手写正则表达式任务,其流程如图4所示。该方法的主要不足之处在于:一是海量模板的手写过程将耗费较多的人力与时间;二是模型的变通性不足,若遇文法更替,则必须随之将模板的巨量内容进行更新;三是存在多种理解的可能性使得有的规则不能正确地与相应的句子进行匹配。

Figure 4. Sequence marking flow chart based on rule method
图4. 基于规则方法序列标记流程图
3.2. 基于传统机器学习的方法
在机器执行序列标注工作时所依据的模型主要有以下几种:逻辑回归模型(Logistic Regression, LR),该模型在线性回归的算法基础上加入了一个减小预测范围的分类逻辑;支持向量机(Support Vector Machines, SVM),这是一个采用监督学习方式的二元分类器;多层感知机(Multi-Layer Perception, MLP),这是一种人工神经网络模型,实现输入和输出的映射关联;随机森林(Random Forest, RF),该模型是一种集中学习算法模型,将大量决策树集中进行学习训练。
3.3. 基于深度神经网络的方法
深度神经网络技术在自然语言方面不断取得进步,使得此种方法被更加广泛地用于语义槽填充工作中,李同欢、陈晨等对该领域的前沿技术上的探索进行了综述性研究 [5] [6] [7]。深度神经网络模型主要是卷积神经网络(Convolutional Neural Network, CNN)、循环神经网络(Recurrent Neural Network, RNN)和序列到序列(Sequence to Sequence, SeqtoSeq)。CNN是第一个真正多层神经网络结构学习的算法,共享权值被限制在单一的时间维度上,且没有池化层,适用于语音和时间序列信号的处理,通过减少空间关系参数提高训练速度。RNN是按时间对不同权重的改变求和,并用平均值更新权重,常被用来根据先前的数据样本预测未来的数据序列,并且学习过程中没有用到类别信息,非常适合序列数据建模。SeqtoSeq模型2014年被Cho和Sutskever提出,改模型就是输入一个序列,输出另一个序列,这是一个通用的框架,适用于各种序列的生成任务。
4. 结论与展望
从使用手工规则模板、传统机器学习模型,对话系统不断发展,深度学习技术更是能帮助对话系统在不断变化的环境中自动优化。近年来虽然对话系统取得较大的发展,但在系统通用性、深度理解等方面还面临着许多挑战。在系统训练样本需求量、对话针对领域和场景以及专业细分领域知识引入等方面对话系统还有着巨大的进步空间。
未来人机对话系统会做新型人机交互界面,对话系统的性能也将继续得到大幅提升。将机械的、重复的对话服务任务交由计算机完成,对话系统实现技术辅助和劳动力解放,将宝贵的气象研究人员投入到气象预报研究当中,对话系统在航空气象服务业务中具有非常广阔的应用潜力,将更好的提升航空气象服务水平。