用于口语对话系统中的意图检测和槽位填充的方法和系统与流程

文档序号:22188300发布日期:2020-09-11 21:58阅读:196来源:国知局
用于口语对话系统中的意图检测和槽位填充的方法和系统与流程
优先权要求本申请要求美国临时申请号62/626,886的权益,该美国临时申请题为“methodsandsystemsforintentdetectionandslotfillinginspokendialoguesystems(用于口语对话系统中的意图检测和槽位填充的方法和系统)”,并于2018年2月6日提交,其全部内容明确地通过引用并入本文中。本公开一般涉及自动口语理解领域,并且更具体地,涉及用于校正和更新输入文本以用于口语理解系统中的槽位填充的系统和方法。
背景技术
:除非在本文中另行指示,否则在此章节中描述的材料并不是对于本申请中的权利要求的现有技术,并且不因包括在此章节中而被承认是现有技术。口语理解(slu)系统将人类语音表达的语言处理成机器可理解的语义表示。slu是所有会话式ai系统的关键组件。slu的一般任务涉及根据话语的意图确定和槽位填充。意图确定任务可以被视为语义话语分类问题,而槽位填充任务可以作为连续单词的序列标记问题而被应对。解决这两个相关任务的先前方法通常作为两个单独的系统来提出,所述系统诸如用于意图确定的支持向量机(svm)和用于槽位填充的条件随机场(crf)。神经网络、尤其是循环神经网络(rnn)中的最新进展允许意图确定和槽位填充两者的联合训练模型。此框架显示出相比于先前的最先进技术的优势,并且在研究团体中得到了大量关注。注意力机制和编码器-解码器模型对联合模型的成功作出贡献。注意力机制允许对输入序列的优化选择,以用于针对内容和位置信息进行解码。一般而言,slu系统被部署为口语对话系统的下游任务,其中其输入是来自前端自动语音识别(asr)引擎的输出。asr引擎生成的单词序列中的错误导致意图检测和槽位填充的性能降级。在大多数现实生活的应用中(例如,具有噪声和混响效果的远场),即使在部署了更稳健的asr技术的情况下,这样的错误仍然不可避免。由于语音识别引擎生成的转录错误,槽位填充和意图检测任务的现实生活性能通常会降级。来自语音识别器的前端的插入、删除和误识别错误导致语言理解模型的误解和不重合。各种错误源(包括但不限于嘈杂的环境)可能增加甚至最先进的自动语音识别系统的错误率,并且这些错误对slu系统的准确性产生负面影响。因此,对增加口语理解系统的准确性的方法和系统的改进将是有益的。技术实现要素:本公开描述了考虑语音识别错误的意图检测和槽位填充的联合训练模型。基于注意力的编码器-解码器循环神经网络首先从话语中解码意图信息,然后在提取槽位信息之前校正单词序列中的错误,如果有的话。考虑到输入话语,三重联合训练框架使正确理解的概率最大化。在一个实施例中,已经开发了一种用于操作口语理解(slu)系统的方法。该方法包括:利用slu系统中的处理器接收文本短语中的多个单词;利用处理器、使用多个单词作为对rnn编码器的输入、基于循环神经网络(rnn)编码器的输出,来生成多个单词的第一编码表示;利用处理器、使用第一编码表示作为对第一rnn解码器的输入、基于第一rnn解码器的输出,来生成与多个单词相对应的意图标签;利用处理器、使用第一编码表示和意图标签作为对第二rnn解码器的输入、基于第二rnn解码器的输出,来生成校正的多个单词,所述校正的多个单词包括与文本短语中的多个单词之一不同的至少一个单词;利用处理器、使用多个校正的单词作为对rnn编码器的输入、基于rnn编码器的另一个输出,来生成与所述多个校正的单词相对应的第二编码表示;以及利用处理器、使用所述多个校正的单词的第二编码表示和意图标签作为对第三rnn解码器的输入、基于第三rnn解码器的输出,来生成机器可读对话短语,该机器可读对话短语包括被分配给机器可读对话短语中的至少一个槽位的所述多个校正的单词中的至少一个单词。在另一实施例中,已经开发了一种用于口语理解(slu)的系统。该系统包括:存储器,其被配置成存储循环神经网络(rnn)编码器、第一rnn解码器、第二rnn解码器和第三rnn解码器。该系统进一步包括:输入设备和可操作地连接到存储器和输入设备的处理器。该处理器被配置成从输入设备接收文本短语中的多个单词;使用多个单词作为对rnn编码器的输入、基于rnn编码器的输出,来生成多个单词的第一编码表示;使用第一编码表示作为对第一rnn解码器的输入、基于第一rnn解码器的输出,来生成与多个单词相对应的意图标签;使用第一编码表示和意图标签作为对第二rnn解码器的输入、基于第二rnn解码器的输出,来生成校正的多个单词,所述校正的多个单词包括与文本短语中的多个单词之一不同的至少一个单词;使用多个校正的单词作为对rnn编码器的输入、基于rnn编码器的另一输出,来生成与多个校正的单词相对应的第二编码表示;以及使用多个校正的单词的第二编码表示和意图标签作为对第三rnn解码器的输入、基于第三rnn解码器的输出,来生成机器可读对话短语,该机器可读对话短语包括被分配给机器可读对话短语中的至少一个槽位的多个校正的单词中的至少一个单词。附图说明图1是自动口语理解(slu)系统的一个实施例的示意图。图2是用于经由槽位填充过程进行自动意图检测、单词校正以及生成机器可读对话短语的过程的框图。图3是描绘了图2的方法的操作的各方面的示图。图4是描绘了意图标识符的示图,该意图标识符被映射到图1的系统中所使用的数据库中的预定机器可读对话短语。图5是现有技术的长短期记忆(lstm)单元的示图。具体实施方式出于促进对本文中公开的实施例的原理的理解的目的,现在参照以下书面说明书中的附图和描述。这些参考文献不意图限制主题的范围。本公开还包括对所说明的实施例的任何改变和修改,并且包括如本公开所属领域的技术人员通常会想到的所公开的实施例的原理的进一步应用。如本文中使用的,术语循环神经网络(rnn)指代一种类型的神经网络,其接收一系列输入并生成一系列输出,其中对rnn的每个输入影响rnn的内部状态以向rnn提供“记忆”,其中rnn的输出不仅受到当前输入的影响,而且还受到基于先前接收到的输入而已经改变的rnn的内部状态的影响。一种类型的rnn使用长短期记忆(lstm)单元,该单元在rnn中也被称为神经元。在图5中描绘了现有技术lstm的示例。图5描绘了在时间步t处的lstm的操作,其中简化了对先前时间步t-1和后续时间步t+1的描绘。图5中的lstm接收输入值xt(其通常是数字输入值),并且基于该输入值生成输出值ot、lstm的内部状态(其被称为“隐藏状态”)和上下文信息,该上下文信息结合了从lstm单元对较早输入中的一个或多个的在先操作接收到的信息。在图5的示例中,lstm单元包括内部状态,该内部状态也被称为数字“隐藏状态”变量ht,其中每个输入在离散时间步t处发生。基于来自在先时间步的两个输入ct-1和ht-1来确定隐藏状态ht,并且用于第一输入的初始隐藏状态被设置为预定值,下面将对其进行更详细描述。术语c指代数字“上下文”变量,其被分配给在lstm单元的每次迭代中生成的数值。在图5中,符号指代生成所有输入之和的加法单元,符号指代生成所有输入的乘积的乘法单元,术语σ指代s型函数,并且术语tanh指代双曲正切函数。图5中所描绘的lstm单元的其他实施例可以使用所描绘的元件的稍微不同的布置。如图5中描绘的,在时间ct的上下文变量是基于在先上下文ct-1、输入变量xt和lstm单元的在先隐藏状态ht-1确定的。隐藏状态ht是基于先前隐藏状态ht-1、输入变量xt和当前上下文ct确定的。在图5中,输出ot基于隐藏状态值ht。当前时间上下文变量ct和隐藏状态ht在时间t+1处变成对lstm单元的后续迭代的输入,以处理另一输入值xt+1。在多个时间步内生成的一系列一个或多个上下文变量被称为“上下文向量”。尽管出于说明性目的在本文中引用了使用一个或多个lstm单元的rnn,但生成隐藏状态和上下文数据的其他rnn实施例也适用于供本文中描述的系统和方法使用。在本文中描述的实施例使用单向和双向rnn两者。单向rnn结合了lstm单元或其他适当的神经元,以基于在时间上在一个方向上进行的一系列输入值来生成一系列输出,尽管通常不是排他地从序列中的最早输入到序列中的最后输入。以单向配置示出了图5的lstm单元,其中输入序列x中的较早值影响用于之后的输入的lstm单元的状态。尽管一些更复杂的rnn使用多层神经元,但是本文中描述的单向rnn使用单个lstm单元,其针对一系列输入中的每个输入进行更新。双向rnn包括至少两个神经元,诸如图5中描绘的lstm的两个实例,以生成既在时间上向前又在时间上向后进行的输出。对于本文中描述的实施例,所有输入数据在使用rnn之前都是可用的,因此在时间上“向后”进行仅意味着一个lstm单元从输入中的最终值开始,并且向后迭代到第一输入值,以结合来自序列中的将来值而不是序列中的先前值的隐藏状态和上下文信息,这实际上是图5的lstm在时间上反转的配置。另一个lstm单元以与单向lstm相似的方式从序列中最早的输入开始来生成输出。双向lstm的输出例如是两个向量的集合,这两个向量基于两个lstm节点的数字隐藏状态变量输出,以产生针对序列中的输入值的输出,该输出既受序列中的先前值的影响也受序列中的后续值的影响。如本文中使用的,术语“意图”和“意图标签”指代将从用户接收到的输入文本短语中的多个单词与存储在存储器中的预定的机器可读对话短语相关联的数字标识符。对话短语基于来自用户的原始输入中的信息,对有关用户想要实行的任务的信息进行编码。例如,在旅行预订系统中,意图可以对应于预订航班、检查航班状态、更改航班、询问票价信息以及系统支持的其他任务的请求。如下面进一步详细描述的,循环神经网络编码器/解码器系统和方法基于从用户接收到的输入文本短语来生成意图标签,并且使用另一解码器将来自输入文本短语的单词分配给槽位,该槽位存在于所标识的机器可读对话短语的结构中。附加地,本文中描述的实施例使用意图标签作为对循环神经网络单词校正解码器的输入的一部分,该循环神经网络单词校正解码器基于所标识的意图标签来更新原始输入文本,以校正输入文本中的错误并且提高口语理解系统的准确性。如本文中使用的,术语“槽位”指代预定的机器可读对话短语中的字段,该字段将输入文本中的单个单词或少量单词映射到在自动口语理解对话框架中可理解的变量。如上所述,机器可读对话短语对应于slu系统实行的任务,系统通过检测输入的意图标识该任务。每个槽位表示给定任务的变量输入字段。例如,一个意图对应于一项命令该系统启动设备的任务。该任务包括两个槽位,第一槽位指示要激活的设备的类型(例如,加热器),并且第二个槽位包括该设备的设置(例如,将温度设置为40℃)。每个机器可读对话短语包括至少一个槽位,并且许多机器可读对话短语包括多个槽位的序列。如下面进一步详细描述的,循环神经网络编码器/解码器系统基于标识出的意图来标识与文本输入相对应的特定机器可读对话短语,并且将来自校正的输入单词的集合中的单词分配给槽位以产生机器可读输入。既基于输入文本中单词的内容又基于序列中的单词的“对齐”或排序来填充槽位。附加地,在许多情况下,来自输入文本短语的单词中的一些不对应于任何槽位,从最终的机器可读对话短语中省略这些单词。机器可读对话短语的一个示例由两个槽位的序列形成,这两个槽位在本文中被称为fromloc和toloc。在航空公司航班预订系统中使用机器可读对话短语来标识用户输入中指定的航班的始发地(fromloc)和目的地(toloc)。如本文中进一步详细描述的,循环神经网络编码器/解码器系统在校正的文本输入短语中标识与始发地槽位fromloc和目的地槽位toloc相对应的单词。使用循环神经网络解码器来标识单词,该解码器不仅基于单词的内容(所述单词是两个槽位的地理位置),而且还基于单词在文本短语中的对齐来将单词分配给槽位,以标识fromloc的正确始发地位置和toloc的目的地位置。图1描绘了口语理解(slu)系统100,该系统100实行将从人类用户接收到的输入短语中的单词映射到预定对话短语的操作,该预定对话短语具有带有槽位的结构,该槽位由在输入中提供的所选单词填充。系统100包括音频输入设备104、输出设备112、处理器128和存储器132。在系统100中,音频输入设备104是例如麦克风或一系列麦克风,其接收来自人类用户的口语输入。音频输入设备104可选地包括:附加的电路,其包括滤波器、放大器和模数转换器,其产生输入语音的数字化表示,以供处理器128进行附加处理。而图1描绘了音频输入设备104,替换的实施例使用使得系统100能够接收与人类输入相对应的一系列单词的另一输入设备,诸如键盘或手势输入设备。在系统100中,输出设备112是例如在对话系统中产生输出的音频输出设备或视觉显示设备。该输出至少部分地基于从用户经由音频输入设备104提供给系统100的信息。如下面更详细描述的,系统100从用户接收语音或文本输入,对输入进行编码,并且基于所标识的意图来生成输入的意图标签以及校正的输入文本两者,从而生成带有槽位的机器可读对话短语,该槽位包括从校正的输入文本中提取的单词。系统100利用在口语理解框架中可理解的特定术语来处理结构化对话短语,以基于来自用户的输入产生输出响应。输出设备112基于来自用户的输入向用户提供模仿用户期望的对话响应的输出,但是系统100以自动化方式生成对话响应。在系统100中,处理器128是数字逻辑设备,其例如包括以下各项中的一个或多个:微处理器中央处理单元(cpu)、微控制器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、图形处理单元(gpu)、专用集成电路(asic)或实行本文中描述的系统100的功能和动作的任何其他合适的数字逻辑设备。在一些实施例中,处理器128包括加速硬件,该加速硬件以有效的方式实现本文中描述的rnn编码器和解码器的操作,尽管包括cpu和gpu的其他处理硬件也可以实现rnn编码器和解码器。处理器128可操作地连接到音频输入设备104、输出设备112和存储器132。在系统100中,存储器132包括:一个或多个易失性存储器设备,诸如随机存取存储器(ram)和一个或多个非易失性存储器设备,诸如磁盘或固态盘。存储器132存储处理器128执行以实行本文中描述的功能和动作的编程指令。在系统100中,存储器132存储编程的指令和数据,这些指令和数据实现语音识别器136、rnn编码器140、rnn意图解码器144、rnn单词校正解码器148、rnn槽位解码器158、词汇数据库162和结构化对话数据库166。在存储器132中,语音识别器136是现有技术的自动语音识别(asr)系统,其包括例如软件和模型,这些软件和模型将系统100从音频输入设备104接收到的电信号转换成口语单词的机器可读表示的序列。语音识别器包括自动语音识别系统(包括使用隐马尔可夫模型的那些系统)和各种类型的神经网络(包括“深度学习”神经网络模型)的任何合适的实施例。系统100使用语音识别器136来生成文本单词的序列,该文本单词的序列用作本文中描述的其余口语理解处理的基础。在操作期间,由于众多因素,语音识别器136错误地识别来自用户的一些输入单词,该因素包括声音噪声和其他失真的可能性、特定用户的语音模式、以及甚至在现有技术的语音识别器的高级实施例中发生的其他错误。如以下更详细描述的,即使在来自语音识别器136的输入包括错误的情况下,系统100在口语理解过程期间也改进意图检测和槽位填充的准确性。在存储器132中,rnn编码器140是rnn,其接收与输入文本序列中的单词相对应的数值序列,并且基于输入来生成多个单词的第一编码表示,作为隐藏状态数字输出值的第一向量henc。在图1的实施例中,rnn编码器140是双向rnn编码器。在存储器132中,rnn意图解码器144响应于接收到来自rnn编码器140的编码输出数据来生成输出“意图”标签yintent。rnn意图解码器144产生作为数值的意图标签,其将来自rnn编码器的编码输出映射到预定的机器可读对话短语,从多个对话短语中选择该预定的机器可读对话短语以具有与来自语音识别器136的输入文本相关联的最大可能性。在图1的实施例中,rnn意图解码器144是单向单步rnn解码器,其使用注意力机制以基于从rnn编码器140接收到的输入产生单个输出标签。在存储器132中,rnn单词校正解码器148接收来自rnn编码器140的编码输出henc和来自rnn意图解码器144的输出标签yintent两者,以生成一系列输出单词ywcorrected,其包括对来自语音识别器136的初始输入文本的校正。意图信息yintent提供附加的上下文信息,以使得rnn单词校正解码器148能够基于所标识的意图来校正原始输入文本中的某些。在图1的实施例中,rnn单词校正解码器148是使用注意力机制的单向rnn解码器。在存储器132中,rnn槽位解码器158是另一rnn解码器,其利用由rnn单词校正解码器148生成的单词来填充具有由槽位形成的预定结构的对话短语。来自rnn槽位解码器158的输出是机器可读语义结构,其将来自用户的单词映射到机器可读对话短语中的机器可读槽位,该机器可读对话短语映射到以上描述的标识出的意图标签。系统100或另一自动口语系统使用具有填充的槽位结构的机器可读对话短语作为输入,以提供进一步的对话处理。在图1的实施例中,rnn槽位解码器158是使用注意力机制的单向rnn解码器。在存储器132中,词汇数据库162存储数值与人类所理解的单词之间的映射。词汇数据库分配数值,其中每个值都用预定数量的位进行编码(例如,对于具有上至65,536个单词的词汇为16位,对于具有上至16,777,216个单词的词汇为24位等)。在系统100的操作期间,rnn编码器和解码器接收与人类语言单词相对应的数字输入作为输入,并且单词校正rnn解码器148被配置成生成与词汇数据库中最有可能的一个或多个单词的概率相对应的输出,其与rnn解码器148的输出相对应。词汇数据库162在系统100的训练过程之前生成,所以系统100中的rnn编码器和解码器中的每一个都使用词汇数据库162中的数字单词映射来训练,并且在系统100中的推理操作期间使用相同的词汇数据库162。在存储器132中,结构化对话数据库166存储与意图标签相对应的数值与预定的机器可读对话短语之间的映射,该预定的机器可读对话短语均包括用于在结构化语义框架中执行特定任务的一个或多个槽位。结构化对话数据库166在系统100的训练过程之前生成,所以系统100中的rnn编码器和解码器中的每一个使用结构化对话数据库166中的意图标签到机器可读对话短语映射来训练,并且在系统100中的推理操作期间使用相同的结构化对话数据库166。图4描绘了结构化对话数据库166的一个实施例的示例。在图4中,每个数字意图标签与机器可读对话短语结构相关联。每个机器可读对话短语结构由一个或多个预定槽位形成,该预定槽位对应于口语理解框架所理解的元素。系统100标识与特定机器可读对话短语相对应的意图标签,并且随后标识与槽位中的每一个相对应的单词。在图4中,意图标签404是一个数值,该数值映射到在航空旅行调度系统中使用的预定的机器可读对话短语,以用于请求示出从航班的始发地位置(“fromloc”)到目的地位置(“toloc”)的航班。图4描绘了与这些元素相对应的槽位408和412,并且对话系统利用来自用户的输入中的信息来填充槽位。尽管出于说明性目的以匹配一种常见的语音模式的次序示出了槽位408和412(在目的地toloc之前指定航班的始发地fromloc),但是图4中的槽位的具体次序是任意的,并且本文中描述的实施例可以基于输入文本、以不同的语义次序将单词分配给槽位(例如,系统100可以在始发地fromloc之前指定目的地toloc的另一输入文本短语中将槽位准确地分配给单词)。如本文中描述的,系统100使用rnn槽位解码器158,基于单词的内容并且基于槽位的对齐将来自校正的输入文本短语的单词与槽位相关联,诸如在短语序列中fromloc在toloc之前出现。如图4中描绘的,在大多数实施例中,结构化对话数据库166存储意图值与不同的机器可读对话短语之间的多个映射。机器可读对话短语中的每一个包括至少一个槽位,并且基于slu系统从每个对话短语中提取的信息,不同的对话短语可以包括不同数量的槽位。尽管系统100描绘了包括音频输入设备104、处理器128和一个或多个输出设备112的单个计算设备,但是系统100的替换实施例可以包括实现本文中描述的结构并实行本文中描述的方法的其他硬件配置。特别地,在一个实施例中,诸如智能电话、便携式计算机、集成在车辆中的信息娱乐系统、可穿戴设备或其他合适的设备之类的移动电子设备从音频输入设备接收音频输入,并且可选地实行自动语音识别。然后,移动电子设备经由数据网络将自动语音识别的结果传输到网络服务器,该网络服务器对来自语音识别器的输入数据实现附加处理,以生成结构化的输出短语,其中来自语音识别输入的单词会被校正并正确映射到结构化短语中的槽位。照此,对处理器128的引用不严格限于单个计算机中的单个物理处理设备的操作,并且还指代结合在计算设备中的、在通信上相互连接的多个个体处理设备的结构和操作。在以下在图2中描述的系统100的操作之前,rnn编码器140、rnn意图解码器144、rnn单词校正解码器148和rnn槽位解码器158经历联合训练过程,该训练过程同时训练rnn编码器140和解码器144-158中的每一个,以使得系统100能够实行下面描述的口语理解操作。在一个实施例中,使用先前确定为与特定口语理解系统的任务相关的大量预定文本短语来训练该系统。在一个示例中,系统100被配置成实行用于自动航空旅行预订的slu操作。预定的训练数据集合,诸如航空旅行信息系统(atis)数据集提供了预定的文本短语和预定的结构化对话意图的对应集合,其中具有可以使用来自文本短语的选择的单词填充的槽位。训练过程还将单词错误引入到训练数据中,以模拟语音识别器136的输出中的不准确性的影响,由于在训练过程期间的输入文本的单词中的某些需要校正,这进一步使得能够对rnn单词校正解码器148进行适当的训练。训练过程的结果是参数的集合,这些参数调整rnn编码器140、rnn意图解码器144、rnn单词校正解码器148和rnn槽位解码器158中的lstm单元中的每一个的s型函数,以使得当rnn编码器140和rnn解码器144、148和158在本文中描述的联合模型中一起使用时,这些rnn中的每一个能够基于训练数据产生以下输出,该输出使得生成正确的槽位填充输出的总体可能性最大化。由于训练数据被选择为代表期望在系统100的操作期间接收到的实际输入,因此当经训练的rnn被呈现有在系统100的操作期间没有在原始训练数据中直接呈现的另一输入文本的序列时,该经训练的rnn也有产生准确的输出的高的可能性。附加地,训练过程使用在训练过程开始之前定义的超参数,这些超参数定义了用于训练rnn编码器和解码器的各种参数,包括指定学习速率、小批量大小(在小批量梯度下降训练过程中使用,该过程以其他方式在本领域中是已知的)和丢失率的超参数。具有数字参数a的s型函数的一个示例是。在训练过程期间,系统100调整编码器和解码器中的每一个中的参数,以使得使用训练数据的集合来实行在本文中描述的意图检测、单词校正和槽位填充操作的准确性最大化。训练过程被称为“联合”训练过程,因为在训练过程期间,rnn编码器140生成由rnn解码器144、148和158作为输入而接收的输出。在训练过程期间,rnn编码器140和rnn解码器144、148和158的参数均被调整,以增加整个系统100作为一个整体(“联合地”)的操作的总准确性,而不是仅仅隔离地训练rnn编码器140和rnn解码器144、148和158。在系统100中,存储器132存储参数数据、权重矩阵和其他数据结构,在训练过程完成之后,所述其他数据结构与rnn编码器140、rnn意图解码器144、rnn单词校正解码器148和rnn槽位解码器158rnn中的每一个相关联地实现rnn编码器和rnn解码器,以使得能够实现过程200的推理操作,这在下面更详细地描述。尽管出于说明性目的,结合图1的系统100(其能够实行训练过程)描述了训练过程,但在其他实施例中,实行训练过程的计算设备与实现下面描述的推理过程的计算设备不同。例如,在一个实施例中,另一计算系统实行训练过程,并且系统100在存储器132中接收和存储联合训练的rnn编码器140、rnn意图解码器144、rnn单词校正解码器148和rnn槽位解码器158。图2描绘了用于操作口语理解(slu)系统的过程200,该过程200处理语音识别器的输出以生成结构化短语,该结构化短语可以在人机对话系统中经历附加的自动处理。过程200也被称为推理过程,因为过程200使用系统100中的先前训练的rnn编码器和解码器来检测和意图并生成具有一个或多个基于用户输入而填充的槽位的机器可读对话短语输出。在下面的描述中,对实行功能或动作的过程200的引用指代如下处理器的操作:执行存储的程序指令,以结合自动口语理解系统中的组件来实行该操作。例如,下面的描述包括对rnn编码器和rnn解码器的描述,所述描述指代由处理器实行以结合rnn编码器和解码器的数据结构来执行所存储的程序指令的操作,所述数据结构存储在存储器中以实现rnn编码器或解码器。出于说明性目的,结合图1的系统100来描述过程200。当系统100接收到来自人类用户的单词的输入序列(框204)时,过程200开始。在系统100中,处理器128使用自动语音识别器136、基于从音频输入设备104接收到的输入,来生成单词序列。在另一实施例中,输入可以是用户利用键盘或手势输入设备输入的自由格式文本。如上所述,虽然自动语音识别过程的输出可以标识采用机器可读格式的单词序列,但是口语理解系统需要附加处理以将单词映射到服从附加的自动化处理的结构化短语中。附加地,即使最先进的语音识别器也以非平凡的比率在生成输入单词时产生错误,并且系统100还提供附加的错误校正以校正口语短语的上下文内的单词,从而降低slu处理中的错误率。在过程200的描述中使用的示例输入文本序列是:“向我显示从坦帕到nowalkie的航班”,其中输入序列包括输入中的错误,其中术语“nowalkie”实际上是指代城市名称“密尔沃基(milwaukee)”。当系统100使用rnn编码器140实行第一编码遍(pass)(框206)时,过程200继续。第一编码遍将文本中的单词用作对rnn编码器140的输入的序列。在系统100中,处理器128使用词汇数据库162将文本的每个单词映射到预定的数值,其可以用作对rnn编码器140的输入。对于输入序列中的总共i个单词,与输入序列中的单词相对应的每个数值在符号上被称为xi,其中不同的文本输入序列当然可以包含可变数量的单词。使用上面的示例,处理器128使用词汇数据库162为单词中的每一个生成数字输入值:x1=“示出”,x2=“我”,x3=“航班”,x4=“来自”,x5=“坦帕”,x6=“去往”,x7=“no”,x8=“walkie”。出于本文中描述的rnn解码器/编码器的目的,假定输入序列x中的每个项以不同的时间间隔发生,尽管此处实际的“时间”仅指代说出单词的序列,并且不指代,例如,说出每个单词的绝对时间或说出单词所用的速度。在过程200期间,rnn编码器140生成文本短语中的多个单词的第一编码表示,作为编码输出数据的第一向量henc(框208)。对于输入中的每一个,编码输出数据向量henc由来自rnn编码器140的隐藏状态输出形成,在上面提供的示例中,所述输入包括与多个单词相对应的八个元素。rnn编码器140接收输入文本中的多个单词,并且在每个“时间步”处作为输入应用每个输入单词时,更新lstm单元,其中系统100使用输入中的每个单词作为序列中的输入,其中序列中的每个单词对应于离散的“时间”。如上面提到的,rnn编码器140是双向rnn,这意味着隐藏状态输出向量henc中的每个项本身是两元素向量,其包括前向时间fh(最早到最新)和后向时间bh(最新到最早)lstm单位的隐藏状态值。前向时间lstm单元的最终输出是在处理了输入短语中的i多个单词中的每一个单词之后、基于前向时间lstm单元的隐藏状态的向量(针对单词索引0…(i-1)的),并且类似地,后向时间lstm单元的最终输出是在倒序处理了输入短语中的i多个单词中的每一个单词之后、基于后向时间lstm单元的隐藏状态的另一向量(针对单词索引(i-1)…0的)。来自lstm单元的这些最终输出将来自文本短语中的多个单词中的每一个单词的信息结合在最终编码输出中。最终编码输出henc组合前向时间和反向时间lstm单元两者的输出向量:。向量henc中的每个输出项是一个数值,其通常是0.0到1.0范围内的分数。尽管在本文中没有更详细地描绘,但在一些实施例中,将非线性函数q应用于和,以生成henc中的最终输出向量。在一些实施例中,系统100针对henc生成固定长度的输出向量,其不一定与输入向量中的单词数是相同长度,而在其他实施例中,henc中的编码向量的长度基于原始输入文本的长度而变化。当系统100提供编码表示输出向量henc作为对rnn意图解码器144的输入,以使用注意力机制、基于编码的输入来生成意图标签(框210)时,过程200继续进行。特别地,编码输出向量henc是对rnn意图解码器144的一个输入。rnn意图解码器基于与结构化对话数据库166中的不同结构化短语相对应的预定“意图”的集合,生成标识来自用户的输入文本的预定“意图”的单个输出标签。rnn意图解码器144基于编码的输入向量henc中的多个输入值仅产生单个输出标签,而不是产生一系列输出隐藏值,并且在下面更详细地描述了rnn意图解码器144的操作。在接收第一输入之前,处理器128基于以下函数将rnn意图解码器的内部状态初始化为状态s0:,其中是来自从rnn编码器140输出的前向时间隐藏状态的最终值,并且是来自从rnn编码器140输出的后向时间隐藏状态的最终值。术语ws是为每个神经元之间的连接提供的权重矩阵。从s0开始的rnn意图解码器144的当前内部隐藏状态被称为,并且对改变当前内部状态的内部状态的每次更新被称为。处理器128基于以下函数来实行每次更新:,对于被提供给rnn意图解码器144的任何附加输入,新生成的隐藏状态变成当前隐藏状态。术语wc是另一权重矩阵。术语cintent是rnn意图解码器144的上下文值。与rnn中的标准lstm单元(诸如图5的lstm单元)不同,使用注意力机制来计算上下文值cintent,该注意力机制基于以下函数来产生数值aij,该函数提供针对为henc的i个输入元素生成的每个cintent值的值的总和:。为了计算aij中的每个值,处理器128使用以下函数:。在先前的方程中,术语j是与lstm神经元层相对应的索引值,“t”符号表示用于的转置矩阵,并且术语wa表示在注意力机制中使用的另一权重矩阵。注意力机制基于输入文本中的多个单词、通过除单词的特定内容外还基于输入文本中的单词定位对单词的对齐进行加权,来生成值aij,其增加标识与特定的机器可读对话短语正确对应的特定意图标签的准确性。如上所述,aij影响上下文值,以将输入中的单词的对齐结合到rnn意图解码器144的操作中。每个机器可读对话短语中的槽位既对应于输入文本中的术语的语义含义,又对应于术语在输入中相对于其他单词的定位,这在以上描述的示例中使得系统100能够在输入短语中区分开fromloc和toloc,即使两个槽位都指代语义相同的元素(即,两者指代地理位置)。因此,rnn意图解码器144基于输入文本短语中的多个单词的内容和输入文本短语的序列中的特定单词的对齐两者来标识意图标签。rnn意图解码器144处理来自rnn编码器140的编码的输入向量henc,以生成最终输出隐藏状态。为了生成针对标识出的意图的数字意图标签yintent(框212),处理器128使用以下函数来生成与存储在结构化对话数据库166中的意图标签最紧密对应的输出:,其中wp是权重矩阵,并且是在处理了所有输入henc之后的rnn意图解码器144的最终隐藏状态。图3出于解释的目的描绘了rnn意图解码器144基于henc的编码输入产生的文本意图标签“航班”,但是在系统100的实际实施例中,意图标签是直接映射到结构化对话数据库166内的预定机器可读对话的数值,如图4中描绘的。在过程200期间,意图标签yintent充当对rnn单词校正解码器148和rnn槽位解码器158两者的输入。在过程200期间,rnn单词校正解码器148接收来自rnn编码器140的编码的输出向量henc和来自rnn意图解码器144的单个意图标签yintent作为输入,并且生成解码输出的集合(框216),处理器128将所述解码输出的集合转换成校正的单词序列ywcorrected(框218)。如上所述,在许多输入短语中,语音识别器136在输入文本中生成错误。在过程200期间,系统100使用意图标签作为对rnn单词校正解码器148的附加输入来校正这些错误中的一些或全部。意图标签向rnn单词校正解码器148提供附加信息,以帮助rnn单词校正解码器148标识输出单词集合,所述输出单词集合包括对原始输入文本短语中的单词中的一些的一个或多个校正。附加地,rnn单词校正解码器148使用在rnn意图解码器144中使用的相同注意力机制来生成内部上下文值cword_correction,以基于用于输入意图标签的单词的预期对齐来增加标识单词的准确性。更详细地,处理器128在接收到henc的第一元素之前、基于以下函数将rnn单词校正解码器148的内部状态初始化为初始状态s0:,其中是来自从rnn编码器140输出的前向时间的最终输出向量,并且是来自从rnn编码器140输出的后向时间的最终输出向量。术语ws是在rnn单词校正解码器148中使用的权重矩阵。在接收到初始输入之后,rnn单词校正解码器148开始使用经训练的lstm解码器发射单词,其继续发射单词的序列,直到发射指示输出序列完成的句子结尾(“eos”)术语。因此,rnn单词校正解码器148不逐个单词地处理来自输入的原始单词,而是代替地仅使用编码的输入和意图标签yintent来初始化解码器的状态,这然后产生校正的输出单词的序列。在来自rnn单词校正解码器148的输出序列中,rnn单词校正解码器148的输出隐藏状态值映射到每个时间步处的词汇数据库162中的对应单词的数字索引值。在一个实施例中,处理器128使用以下函数来找到下一个校正的输出单词的数字索引值:,其中wp是权重矩阵。来自rnn单词校正解码器148的每个输出单词还在解码过程中为下一个时间步更新lstm单元的状态,所以rnn单词校正解码器148不仅基于编码输入序列中的下一个输入、而且基于先前发射的校正单词来选择校正的输出单词。如图3中描绘的,单词校正解码器148的输出校正输入错误,并且生成具有以下数值的新校正的输入单词的集合:所述数值对应于y1=“显示”,y2=“我”,y3=“航班”,y4=“来自”,y5=“坦帕”,y6=“去往”,y7=“密尔沃基”,以及指示输出的结束的最终输出y8=<eos>。系统100在每个时间步为输出单词yn更新单词校正解码器148中的lstm的状态,并且先前的时间步的输出也被称为“嵌入式”输入,因为当rnn校正单词解码器148生成附加输出时,这些输出影响rnn校正单词解码器148中的lstm单元的内部状态。附加地,如图3中描绘的,当下一个隐藏状态映射到句子结尾(<eos>)输出时,rnn单词校正解码器148停止产生输出,该句子结尾(<eos>)输出表示在校正的单词输出序列中不再有单词要生成。因此,rnn单词校正解码器148可以生成输出多个校正单词ywcorrected,其可选地包括与原始输入文本短语中呈现的不同的数量的单词。当系统100使用多个校正的单词作为对rnn编码器140的第二遍的输入(框220)时,过程200继续进行,以基于编码的隐藏状态数据的向量henc2来产生多个校正的单词的第二编码表示(框222),该向量基于由rnn单词校正解码器148产生的多个校正的单词。在系统100中,处理器128重新使用rnn编码器140、以与以上描述的生成编码的隐藏状态数据的第一向量henc类似的方式来生成编码的隐藏状态数据的第二向量henc2。编码的隐藏状态数据的第二向量henc2是基于校正的单词输出ywcorrected进行编码的,以改进在机器可读对话短语的槽位中的内容的最终输出的准确性。当系统100使用多个校正的单词henc2的第二编码表示和意图标签yintent作为对rnn槽位解码器158的输入(框224)时,过程200继续进行,以生成机器可读对话短语yslot,其包括至少一个槽位,该槽位使用来自多个校正的单词中的至少一个单词来填充(框226)。rnn槽位解码器158使用上面结合rnn意图解码器144和rnn单词校正解码器148所描述的相同的注意力机制。rnn槽位解码器158基于编码的输入henc2和意图标签yintent发射一系列输出槽位类型。rnn槽位解码器158以与以上描述的rnn校正单词解码器148相似的方式在序列中发射槽位标识符。如图3中描绘的,槽位fromloc接收值“坦帕”,并且槽位toloc接收值“密尔沃基”。rnn槽位解码器158以与rnn意图解码器144和rnn校正单词解码器148类似的方式来发射槽位类型:。当然,编码的隐藏状态向量henc2还包括与输入短语中未直接映射到fromloc和toloc槽位的单词相对应的数据。rnn槽位解码器158为剩余单词中的每一个分配默认值,该默认值在图3中被描绘为“o”,其不直接映射到机器可读对话短语中的预定槽位中的与检测到的意图yintent相对应的一个槽位。如以上所描述的,机器可读对话短语中的每个槽位在系统100中具有特定的语义含义,并且过程200向每个槽位分配输入的特定单词,或者在某些情况下分配输入的多个单词(在适当的情况下),以将来自输入的人类语言文本短语转换成可以由自动化系统100理解的机器可读格式。系统100使用机器可读对话短语作为输入以执行人机交互领域中的特定任务。在系统100响应于生成机器可读对话短语而生成的输出的一个非限制性示例中,系统100使用填充槽位数据——在所标识的意图的上下文中的所标识的始发地fromloc=“坦帕”和所标识的目的地toloc=“密尔沃基”,以使用结构化查询语言(sql)或另一数据库查询格式来生成数据库查询,从而基于存储在航班数据库(未示出)中的信息来生成坦帕与密尔沃基之间的航班列表。然后,系统100使用输出设备112来生成视觉或听觉输出,以响应于用户查询向用户呈现航班列表,以实行与来自用户的原始输入文本短语的意图相对应的任务。当然,通过使用本文中描述的实施例的实现具有改进的意图检测和槽位填充准确性的slu的计算系统,可以实现各种各样的其他任务。与现有技术的解决方案相比,以上描述的过程200使得系统100能够以更高的准确性实行slu操作,以用于标识被分配给机器可读对话短语中的特定槽位的单词。表1描绘了在以上描述的atis航空公司预订系统的上下文中的对slu操作的准确性的改进:模型wer(%)槽位(f1)得分意图错误(%)1.具有高错误率输入的意图检测和槽位填充14.5584.265.82.具有减少的错误率输入的意图检测和槽位填充10.4386.855.23.具有高错误率输入的联合意图检测、单词校正和槽位填充10.5587.135.04表1。在表1中,wer对应于单词错误率百分比,其中较低的值表示较高的准确性,槽位得分表示针对如下的数字得分:输出对话中的最终槽位被用来自输入的单词填充的准确性的程度,其中较高的值表示较高的准确性,并且意图错误百分比表示标识正确意图的错误率,其中较低的值表示较高的准确性。表1在表的三个行中描绘了三种实现方式1-3。在实现方式1中,wer表示来自人类声音输入的asr的高错误率,这可能会在嘈杂的情况下发生。实现方式1中的输入文本的高wer降低了槽位填充和意图检测的准确性。实现方式2描绘了一种情况,其中单独的语音识别校正过程减少了对系统的输入的wer,该系统仅实现意图检测和槽位填充,但不包括联合训练的单词校正rnn解码器,该解码器基于单词的意图和单词的编码表示来校正原始输入的单词。实现方式3描绘了以上描述的系统100和过程200的实施例,其中如在实现方式1中那样,来自asr的原始输入是有噪声的,但是由于rnn单词校正解码器148的文本校正过程而降低了最终的wer率,所述rnn单词校正解码器148是与以上描述的rnn编码器140、rnn意图解码器144和rnn槽位解码器158联合地训练的。在实现方式3中,即使实现方式3接收到具有实现方式1的较高wer的输入,槽位填充得分和意图错误得分也超过了实现方式2的准确性。如上面描绘的,系统100和过程200的改进的一个非限制性示例在于,即使在来自语音识别器136的输入文本中存在较高错误率的情况下,检测正确意图并利用来自输入的正确单词填充槽位的准确性也得以改进。将领会到,以上公开的以及其他的特征和函数的变体或其替换方案可以被合期望地组合到许多其他不同的系统、应用或方法中。本领域技术人员后续可以做出各种目前未预见或未意料到的替换方案、修改、变化或改进,它们也意图被所附权利要求涵盖。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1