本发明涉及智能语音领域,尤其涉及一种语义槽填充模型训练方法及系统。
背景技术:
口语语义理解是将自动语音识别产生的输出转化为结构化的语义表示的一种技术,因而对于语音识别错误非常敏感。在语义理解中,通常会使用语义槽填充。为了提升语义理解对语音识别错误的鲁棒性,会利用基于规则的纠正模型对语义槽填充预测的槽值进行纠正。进而保证口语语义理解的准确。
在实现本发明过程中,发明人发现相关技术中至少存在如下问题:
这些方法的缺陷在于槽填充模型和基于规则错误纠正模型是相互独立的,即使两个模型单独的训练,但纠正结果的好坏大幅度是受规则错误纠正模型限制的。然而错误纠正本应作为一个后处理模块,不应过于影响口语语义理解。使得口语语义理解对语音识别的鲁棒性较差。
技术实现要素:
为了至少解决现有技术中口语语义理解中槽填充模型和基于规则错误纠正模型相互独立,使得口语理解对于语音识别错误的鲁棒性较差的问题。
第一方面,本发明实施例提供一种语义槽填充模型训练方法,包括:
对带有标注的第一训练数据集进行训练,生成第一语义槽填充模型;
将自动语音识别的第二训练数据集,输入至所述第一语义槽填充模型,确定第一语义槽值对;
基于规则的错误纠正模块对所述第一语义槽值对进行纠正,确定第二语义槽值对,其中,所述错误纠正模型基于预设规则对所述第一语义槽值对进行纠正;
基于所述第二语义槽值对,对所述第一语义槽填充模型进行策略梯度训练,确定训练后的第二语义槽填充模型。
第二方面,本发明实施例提供一种语义槽填充模型训练系统,包括:
数据训练程序模块,用于对带有标注的第一训练数据集进行训练,生成第一语义槽填充模型;
语义槽值对确定程序模块,用于将自动语音识别的第二训练数据集,输入至所述第一语义槽填充模型,确定第一语义槽值对;
纠正程序模块,用于基于规则的错误纠正模块对所述第一语义槽值对进行纠正,确定第二语义槽值对,其中,所述错误纠正模型基于预设规则对所述第一语义槽值对进行纠正;
语义槽填充模型训练程序模块,用于基于所述第二语义槽值对,对所述第一语义槽填充模型进行策略梯度训练,确定训练后的第二语义槽填充模型。
第三方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的语义槽填充模型训练方法的步骤。
第四方面,本发明实施例提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现本发明任一实施例的语义槽填充模型训练方法的步骤。
本发明实施例的有益效果在于:通过强化学习将基于规则的错误纠正直接引入训练的方法,用于口语语义理解中的槽填充任务。一方面利用了领域知识,另一方面连接了槽填充和错误纠正两个模块。从而提高语义理解对语音识别错误的鲁棒性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种语义槽填充模型训练方法的流程图;
图2是本发明一实施例提供的一种语义槽填充模型训练方法的模型架构图;
图3是本发明一实施例提供的一种语义槽填充模型训练方法的测试集的结果示意图;
图4是本发明一实施例提供的一种语义槽填充模型训练方法的使用实例图;
图5是本发明一实施例提供的一种语义槽填充模型训练方法的性能示意图;
图6是本发明一实施例提供的一种语义槽填充模型训练系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示为本发明一实施例提供的一种语义槽填充模型训练方法的流程图,包括如下步骤:
s11:对带有标注的第一训练数据集进行训练,生成第一语义槽填充模型;
s12:将自动语音识别的第二训练数据集,输入至所述第一语义槽填充模型,确定第一语义槽值对;
s13:基于规则的错误纠正模块对所述第一语义槽值对进行纠正,确定第二语义槽值对,其中,所述错误纠正模型基于预设规则对所述第一语义槽值对进行纠正;
s14基于所述第二语义槽值对,对所述第一语义槽填充模型进行策略梯度训练,确定训练后的第二语义槽填充模型。
在本实施方式中,为了解决现有技术中的缺陷,进而在槽填充模型的训练过程中也引入错误纠正模块,由于纠正过程是基于规则的不可导过程,因而使用强化学习中的策略梯度传递方法进行训练。在训练过程中考虑纠正模块,可以使槽填充模型的输出更好地用于纠正模块,从而提升语义理解对语音识别的鲁棒性。进而方法包含两个模块,语义槽填充模型,和基于规则的错误纠正模块。
对于步骤s11,为了训练语义槽填充模型需要准备适当的数据,包括人工标注的真实文本,以及语音识别假设的文本。这二者在训练阶段中都会使用。第一数据为人工标注的真实文本数据,由于每个词都有明确的标注,因此可以将槽填充任务转换为一个序列标注任务进行处理,从而训练语义槽填充模型。
作为一种实施方式,通过双向长短时记忆网络对带有标注的第一训练数据集进行训练。
对于步骤s12,将语音识别假设的文本,也就是自动语音识别的文本输入到在步骤s11中训练的语义槽填充模型,如图2所示的模型架构图,用户说出的话为“我要去静安区”,然而由于语音识别中有错误,误识别为“我要去静湾区”。就获得了错误的第一语义槽值对,为了便于表示,通过语义三元组进行表示,得到(inform-终点-静湾区)。由于语义槽值对错误,“我要去静湾区”则无法获得正确的对齐标注。
对于步骤s13,错误纠正模块由多种规则构成,在日常的使用中,通过不断收集语音识别的错误,从而逐渐丰富规则。基于错误纠正模块对“我要去静湾区”(inform-终点-静湾区)进行纠正,例如,经过纠正得到用户的原本意思“我要去静安区”。得到槽值对为“inform-终点-静安区”。对真实文本进行对齐标注就可以得到“我:o要:o去:o静:b-inform-终点安:i-inform-终点区:i-inform-终点”。
对于步骤s14,考虑到纠正过程是基于规则的不可导过程,因而使用强化学习中的策略梯度传递方法进行训练。其中,策略梯度传递方法包括:pre-training预训练以及rl-training强化学习训练。将第二语义槽值对“inform-终点-静安区”确定为强化学习的回报来训练槽填充模型。强化学习的具体过程以及对应公式在下文中具体说明。
通过该实施方式可以看出,通过强化学习将基于规则的错误纠正直接引入训练的方法,用于口语语义理解中的槽填充任务。一方面利用了领域知识,另一方面连接了槽填充和错误纠正两个模块。从而提高语义理解对语音识别错误的鲁棒性。
作为一种实施方式,在本实施例中,在确定训练后的第二语义槽填充模型之后,所述方法还包括:
接收测试数据集;
将所述测试数据集输入至所述第二语义槽填充模型,确定纠正前的槽值对;
将所述纠正前的槽值对输入至所述错误纠正模块中,得到最终的槽值对。
在本实施方式中,为了验证训练的第二语义槽填充模型的效果,将预先准备好的测试数据集输入到第二语义槽填充模型中得到纠正前的槽值对,例如,测试数据集可以为语音识别的假设文本。将纠正前的槽值对输入到错误纠正模块中进行纠正,得到最终槽值对。
通过该实施方式可以看出,通过测试校验进一步地提高语义理解对语音识别错误的鲁棒性。
对上述内容进行具体说明,为了整合现有知识,可以采用基于规则的纠错模块来减少由嘈杂的语音识别假设引起的识别错误。但是,后处理错误校正模块与slu(spokenlanguageunderstanding,口语语义理解)模型是隔离的,并且校正性能在很大程度上取决于slu错误的类型。为了解决这个问题,本方法提出了一种基于策略梯度的强化学习(rl)方法,以考虑错误校正后的最终性能来优化slu模型。整个模型的体系结构如图2所示。目标是基于序列标记的槽填充模型,纠错模块基于n-gram特征。
本方法定义了一些下文中会使用的符号,来充分介绍本方法。其中,令r=(r1...r|r|)和u=(u1...u|u|)分别表示asr(automaticspeechrecognition,自动语音识别)最佳识别文本和真实文本,y=(y1...y|y|)代表以act(slot=value)三元组形式的句子级语义标签,而o=(o1...o|u|)表示“bio”模式(b-begin,i-inside,o-outside)中u上的单词级标签。
本方法采用具有聚焦机制的编解码器模型进行槽填充。blstm(bidirectionallongshort-termmemorynetwork,双向长短时记忆网络)编码器读取输入序列x(可以是u或r),并通过
假设有一个预测的act(slot=value)三元组a(s=v)。将当前领域本体中相应act-slot-value三元组候选集表示为v=(v1...v|v|)。基于本体,首先构建n元语法词gn。每个值都视为一个单词序列v=(v1...vm),其n-gram集为vn={(vi...vi+n-1)|i=1...m-n+1}。然后为v建立一个二元值特征向量d=(d1...d|gn|),其中
由于某些插槽在本体中具有许多可能的值,因此通过简单地执行矩阵乘法可以大大提高效率。实际上,n范围是1到2,因此词汇量等于|g1|+|g2|。设置阈值(本文为0.5)以拒绝不良选择。
应用基于策略梯度的强化学习(rl)算法来处理不可导的操作。为了修剪较大的搜索空间,对模型使用有标注的真实文本进行了预训练,以引导rl训练。整个训练过程包括两个阶段,如下所述。
令dtscp={(u,o)}表示带有对齐标签的真实文本。插槽填充模型受负对数似然损失的监督:
其中θ表示模型参数。
在rl训练阶段,将自动语音识别假设与未对齐标记结合使用,标记为dhyp={(r,y)}。槽填充模型通过束搜索采样以生成k个标签序列,然后将act(slot=value)增加三倍。最终在ec模块之后生成了一组语义元组
对于每个输入语音r,在三级和句子级都考虑奖励:
其中第一项是在三元组级别上惩罚假阳性(fp)和假阴性(fn),第二项是表示整个句子是否正确预测的二进制值。通过使用策略梯度下降最大化预期的累积奖励来优化模型。策略梯度可以计算为:
其中
为了稳定训练过程,交替使用dtscp和dhyp训练是有益的。
对上述内容进行实验,在包含四个对话域(地图,音乐,视频,天气)的第一届中文音频文本口语理解挑战(catslu)数据集上进行了实验。
槽标记是在中文字符级别完成的。通过使用zhwiki3语料库对基于lstm的双向语言模型(bilm)进行预训练,可以初始化200维的char嵌入。lstm是具有256个隐藏单元的单层。在训练过程中,参数在(-0.2;0.2)范围内均匀采样。概率为0.5的dropout应用于非循环层。选择adam作为优化器。在预训练中将学习率设置为0.001,在rl训练中将学习率设置为0.0005,在训练期间固定不变。在解码阶段,将束大小设置为5。根据验证集上的性能选择最佳模型,然后评估act(slot=value)三元组的f分数和句子级准确性。
通过显示与不同基准相比的主要结果。在评估阶段,对所有的实验都进行了纠错。研究了以下基准:
hd:仅采用未对齐的数据。
focus:对带标注的真实文本进行训练,并对asr假设进行评估。
ua:将槽填充模型从blstm更改为focus。
da:数据增强方法,其中通过两种方式通过伪比对的asr假设来增强训练数据:(1)由预先训练的标记模型(gen)生成;(2)通过最小编辑距离(align)与真实文本对齐)。
图3所示的测试集的结果示意图显示了测试集的总体结果。结果表明,以端对端的方式使用未对齐数据(“hd”)训练的模型比标记模型(“focus”)效果差。“ua”方法从真实文本转移到asr假设,并获得与focus相当的结果。可能由于嘈杂的数据集,使用“ua”和“da”方法未发现增加。与“聚焦”和“da”基准相比,提出的模型除音乐领域之外都有显著的提升(在视频和天气领域显著性水平为95%,地图领域显著性水平为90%)。
图4给出了一个示例,说明rl训练如何为空位填充带来好处。基准模型识别出两个槽块“公司(company)”和“甘河子镇(ganhezitown)”,用特殊词“是(is)”分隔,这会生成错误的槽值对。slu模型通过rl学习以产生更适合校正的输出。尽管在目的地名称中不太可能出现“是”的字样,但slu模型将其视为槽的一部分,显示了柔和地划定槽范围的能力。
通过消融研究,研究模型中每个子模块的有效性。从图5所示的性能示意图的上半部分可以看出,如果仅使用asr假设dhyp(即不带“tscp”)进行训练,则由于缺少来自真实文本的强监督信号,因此性能会下降。如果没有预训练(“pt”),系统的性能也会下降(f分数为0.47%,联合精度为0.72%),显示了预训练的重要性。此外,在没有任何真实文本监督的情况下,平均性能会急剧下降。这是因为在大空间中搜索困难。
如图6所示为本发明一实施例提供的一种语义槽填充模型训练系统的结构示意图,该系统可执行上述任意实施例所述的语义槽填充模型训练方法,并配置在终端中。
本实施例提供的一种语义槽填充模型训练系统包括:数据训练程序模块11,语义槽值对确定程序模块12,纠正程序模块13和语义槽填充模型训练程序模块14。
其中,数据训练程序模块11用于对带有标注的第一训练数据集进行训练,生成第一语义槽填充模型;语义槽值对确定程序模块12用于将自动语音识别的第二训练数据集,输入至所述第一语义槽填充模型,确定第一语义槽值对;纠正程序模块13用于基于规则的错误纠正模块对所述第一语义槽值对进行纠正,确定第二语义槽值对,其中,所述错误纠正模型基于预设规则对所述第一语义槽值对进行纠正;语义槽填充模型训练程序模块14用于基于所述第二语义槽值对,对所述第一语义槽填充模型进行策略梯度训练,确定训练后的第二语义槽填充模型。
进一步地,所述系统还包括测试程序模块,用于:
接收测试数据集;
将所述测试数据集输入至所述第二语义槽填充模型,确定纠正前的槽值对;
将所述纠正前的槽值对输入至所述错误纠正模块中,得到最终的槽值对。
进一步地,所述数据训练程序模块用于:
通过双向长短时记忆网络对带有标注的第一训练数据集进行训练。
进一步地,所述语义槽值对包括语义三元组。
进一步地,所述策略梯度训练包括:pre-training预训练以及rl-training强化学习训练。
本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的语义槽填充模型训练方法;
作为一种实施方式,本发明的非易失性计算机存储介质存储有计算机可执行指令,计算机可执行指令设置为:
对带有标注的第一训练数据集进行训练,生成第一语义槽填充模型;
将自动语音识别的第二训练数据集,输入至所述第一语义槽填充模型,确定第一语义槽值对;
基于规则的错误纠正模块对所述第一语义槽值对进行纠正,确定第二语义槽值对,其中,所述错误纠正模型基于预设规则对所述第一语义槽值对进行纠正;
基于所述第二语义槽值对,对所述第一语义槽填充模型进行策略梯度训练,确定训练后的第二语义槽填充模型。
作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的方法对应的程序指令/模块。一个或者多个程序指令存储在非易失性计算机可读存储介质中,当被处理器执行时,执行上述任意方法实施例中的语义槽填充模型训练方法。
非易失性计算机可读存储介质可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据装置的使用所创建的数据等。此外,非易失性计算机可读存储介质可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,非易失性计算机可读存储介质可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例的语义槽填充模型训练方法的步骤。
本申请实施例的客户端以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如平板电脑。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器,掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)其他具有数据处理功能的电子装置。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。