首页 / 专利库 / 人工智能 / 语义处理 / 一种任务型对话系统中的语义理解方法

一种任务型对话系统中的语义理解方法

阅读:294发布:2020-05-08

专利汇可以提供一种任务型对话系统中的语义理解方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种任务型 对话系统 中的语义理解方法,包括步骤:收集与特定任务相关的对话数据,标注出每句对话数据的领域、意图以及槽值;对收集的对话数据进行预处理,根据预处理后的数据对构建的多任务级联神经网络模型进行训练;根据模型训练获得的领域、意图以及槽值,计算多任务级联神经网络模型的损失函数,根据损失函数值多次 迭代 ,获得最终的多任务级联神经网络模型;将待识别的对话数据进行预处理后输入到最终的模型中,识别对话数据中语句的领域、意图以及槽值。该发明解决了目前语义理解系统识别准确率低的问题,提高了任务型对话系统中自然语言理解三个子任务的识别准确率。,下面是一种任务型对话系统中的语义理解方法专利的具体信息内容。

1.一种任务型对话系统中的语义理解方法,其特征在于,包括步骤:
收集与特定任务相关的对话数据,标注出每句对话数据的领域、意图以及槽值;
对收集的对话数据进行预处理,根据预处理后的数据对构建的多任务级联神经网络模型进行训练;
根据模型训练获得的领域、意图以及槽值,计算多任务级联神经网络模型的损失函数,模型根据损失函数值进行迭代,获得最终的多任务级联神经网络模型;
将待识别的对话数据进行预处理后输入到最终的模型中,识别对话数据中语句的领域、意图以及槽值。
2.根据权利要求1所述的方法,其特征在于,所述特定任务包括领域识别、意图分类以及预定义的槽值填充。
3.根据权利要求1所述的方法,其特征在于,根据对话数据的槽值标注该语句槽值的首标签和尾标签。
4.根据权利要求1所述的方法,其特征在于,所述构建的多任务级联神经网络模型结构包括BERT层、domain嵌入层、intent嵌入层、domain分类层、intent分类层以及槽标签分类层。
5.根据权利要求1所述的方法,其特征在于,对收集的对话数据进行预处理为:
对收集的对话数据按句子进行划分,每个句子按字进行划分得到字嵌入特征,并采用字符“[CLS]”作为每个句子的开端,采用字符“[SEP]”作为句子间的分隔符。
6.根据权利要求1所述的方法,其特征在于,根据预处理后的数据对构建的多任务级联神经网络模型进行训练的步骤中,包括:
将预处理后的字嵌入特征输入BERT层进行处理,获得相应的隐状态序列;
将隐状态序列中字符“[CLS]”对应的隐藏层向量输入domain分类层中,获取领域标签;
将领域标签输入domain嵌入层进行处理后获得领域标签的嵌入表示,将该嵌入表示与字符“[CLS]”对应的隐藏层向量进行拼接,输入到intent分类层中,获取意图标签;
将意图标签输入intent嵌入层进行处理后获得意图标签的嵌入表示,将领域标签的嵌入表示和意图标签的嵌入表示分别与隐状态序列中每个字的隐藏层向量进行拼接,输入到槽标签分类层中,获取槽值的首标签和尾标签。
7.根据权利要求6所述的方法,其特征在于,获得领域标签的方法为:
领域的概率分布的计算方法如下:
p(domain|s)=softmax(Wd·h1+bd)
其中,domain表示领域的标签类别,s表示输入的句子。Wa表示领域权重矩阵,bd表示领域偏移向量;取概率最大的类别作为该句子的领域标签。
8.根据权利要求6所述的方法,其特征在于,获得意图标签的方法为:
意图的概率分布的计算方法如下:
其中,intent表示意图的标签类别,Wi表示意图权重矩阵,bi表示意图偏移向量,e_d(domain)表示将domain变换为领域嵌入向量;取概率最大的类别作为该句子的意图标签。
9.根据权利要求6所述的方法,其特征在于,获得槽值的首标签和尾标签的方法为:
首标签Hi的计算方式如下:
尾标签Ti的计算方式如下:
其中,Wh和Wt分别表示首标签和尾标签权重矩阵,bh和bt分别表示首标签和尾标签偏移向量,e_i(intent)表示将intent变换为意图嵌入向量。
10.根据权利要求1所述的方法,其特征在于,多任务级联神经网络损失函数计算方法为:
Loss=2.5*Lossdomain+1.5*Lossintent+Losshead+Losstail
其中,Lossdomain表示领域分类任务的损失函数,Lossintent表示意图识别任务的损失函数,Losshead和Losstail分别表示槽填充任务的首尾的损失函数。

说明书全文

一种任务型对话系统中的语义理解方法

技术领域

[0001] 本发明涉及自然语言理解领域,尤其涉及一种基于深度学习的任务型对话系统中的语义理解方法。

背景技术

[0002] 由于人机对话系统充满巨大的潜和诱人的商业价值,人机对话引起了越来越多的关注。随着大数据和深度学习技术的发展,创建自动人机对话系统作为人类的个人助理或聊天伙伴,不再是幻想。人机对话系统的目的是机器能够智能地跟人进行多轮自然语言的交互。人机对话系统根据不同的功能,大致分为两类:一类是闲聊型对话系统,典型的代表有微软小。小冰对话系统主要通过语音、文字、图片与人交互,这类系统并不执着于某项特定的任务,主要是实现与人自由、平等的情感上的一个交流。另一类对话系统是任务型对话系统,这类系统的代表有阿里小蜜,任务型对话系统以任务为导向,帮助人们实现某项特定的任务。由于任务型对话系统能够极大地减少人工的成本,提高人们的工作效率,并且相较于目前的人工客服,能够实现全天24小时服务,减少客户的等待时间,具有巨大的商业价值,因此得到了大量研究。
[0003] 任务型对话系统使用最广泛的方法是将对话系统看成流线式的系统,所述系统由自然语言理解模对话管理模块,对话策略学习模块和对话生成模块组成。由于流水线模式的系统可能存在错误传播,因此作为任务型对话系统中第一个步骤的自然语言理解模块,具有至关重要作用。自然语言理解模块主要的工作是对用户的输入进行语义分析,获取用户的对话行为以及与任务相关的重要的信息。
[0004] 在任务型对话系统中,早期系统使用基于模板的方法解决自然语言理解模块,主要是通过人工对数据进行研究,基于字、词的组合提取出具体任务的模板,在得到模板的集合之后,给每个模板设定固定的使用顺序,最后再对每一轮的对话依次使用模板进行精确匹配,从而提取任务需要的特定语义信息。这种方法的缺点是显而易见的。第一个是这种方法需要耗费大量的人力,成本过高。第二个缺点是每一个任务的模板差异性太大,往往不能复用,泛化能力太差,在准确率上表现不佳。
[0005] 除了基于模板的方法,部分系统使用机器学习方法分别单独解决领域分类、意图识别以及槽填充这三个任务,但是这些方法普遍存在识别准确率较低的问题。

发明内容

[0006] 本发明的目的在于克服现有任务型对话系统预测句准确率低的问题,提供一种基于多任务学习的任务型对话系统中的语义理解方法。本发明采用BERT作为三个任务共享的强大的特征提取器,利用多任务级联训练三个任务,训练得到能够识别用户语句的领域、意图和槽信息的自然语言理解模型,提供了一种简洁有效的语义理解方法。
[0007] 本发明的目的能够通过以下技术方案实现:
[0008] 一种任务型对话系统中的语义理解方法,包括步骤:
[0009] 收集与特定任务相关的对话数据,标注出每句对话数据的领域、意图以及槽值;
[0010] 对收集的对话数据进行预处理,根据预处理后的数据对构建的多任务级联神经网络模型进行训练;
[0011] 根据模型训练获得的领域、意图以及槽值,计算多任务级联神经网络模型的损失函数,模型根据损失函数值进行迭代,获得最终的多任务级联神经网络模型;
[0012] 将待识别的对话数据进行预处理后输入到最终的模型中,识别对话数据中语句的领域、意图以及槽值。
[0013] 具体地,所述特定任务包括领域识别、意图分类以及预定义的槽值填充。
[0014] 具体地,根据对话数据的槽值标注该语句槽值的首标签和尾标签。
[0015] 具体地,所述构建的多任务级联神经网络模型结构包括BERT层、domain嵌入层、intent嵌入层、domain分类层、intent分类层以及槽标签分类层。
[0016] 具体地,对收集的对话数据进行预处理为:
[0017] 对收集的对话数据按句子进行划分,每个句子按字进行划分得到字嵌入特征,并采用字符“[CLS]”作为每个句子的开端,采用字符“[SEP]”作为句子间的分隔符。
[0018] 具体地,根据预处理后的数据对构建的多任务级联神经网络模型进行训练的步骤中,包括:
[0019] 将预处理后的字嵌入特征输入BERT层进行处理,获得相应的隐状态序列;
[0020] 将隐状态序列中字符“[CLS]”对应的隐藏层向量输入domain分类层的Softmax分类器中,获取领域标签;
[0021] 将领域标签输入domain嵌入层进行处理后获得领域标签的嵌入表示,将该嵌入表示与字符“[CLS]”对应的隐藏层向量进行拼接,输入到intent分类层的Softmax分类器中,获取意图标签;
[0022] 将意图标签输入intent嵌入层进行处理后获得意图标签的嵌入表示,将领域标签的嵌入表示和意图标签的嵌入表示分别与隐状态序列中每个字的隐藏层向量进行拼接,输入到槽标签分类层中,获取槽值的首标签和尾标签。
[0023] 更进一步地,获得领域标签的方法为:
[0024] 领域的概率分布的计算方法如下:
[0025] p(domain|s)=softmax(Wd·h1+bd)
[0026] 其中,domain表示领域的标签类别,s表示输入的句子。Wd表示领域权重矩阵,bd表示领域偏移向量。取概率最大的类别作为该句子的领域标签。
[0027] 更进一步地,获得意图标签的方法为:
[0028] 意图的概率分布的计算方法如下:
[0029]
[0030] 其中,intent表示意图的标签类别,Wi表示意图权重矩阵,bi表示意图偏移向量,e_d(domain)表示将domain变换为领域嵌入向量。取概率最大的类别作为该句子的意图标签。
[0031] 更进一步地,获得槽值的首标签和尾标签的方法为:
[0032] 首标签Hi的计算方式如下:
[0033]
[0034] 尾标签Ti的计算方式如下:
[0035]
[0036] 其中,Wh和Wt分别表示首标签和尾标签权重矩阵,bh和bt分别表示首标签和尾标签偏移向量,e_i(intent)表示将intent变换为意图嵌入向量。
[0037] 具体地,多任务级联神经网络损失函数计算方法为:
[0038] Loss=2.5*Lossdomain+1.5*Lossintent+Losshead+Losstail
[0039] 其中,Lossdomain表示领域分类任务的损失函数,Lossintent表示意图识别任务的损失函数,Losshead和Losstail分别表示槽填充任务的首标签和尾标签的损失函数。三个子任务的损失函数如下:
[0040] 领域分类任务的损失函数:
[0041]
[0042] 其中,D为领域类别的数量;yd为指示变量(0或1),如果该类别和样本的类别相同就是1,否则是0;pd为对于观测样本属于类别d的预测概率。
[0043] 意图识别任务的损失函数:
[0044]
[0045] 其中,I为意图类别的数量;yi为指示变量(0或1),如果该类别和样本的类别相同就是1,否则是0;pi为对于观测样本属于类别i的预测概率。
[0046] 槽填充任务的首标签的损失函数Losshead:
[0047]
[0048] 其中,H为槽填充中首标签类别的数量;yh为指示变量(0或1),如果该类别和样本的类别相同就是1,否则是0;ph为对于观测样本属于类别d的预测概率。
[0049] 槽填充任务的尾标签的损失函数Losstail:
[0050]
[0051] 其中,T为槽填充中尾标签类别的数量;yt为指示变量(0或1),如果该类别和样本的类别相同就是1,否则是0;pt为对于观测样本属于类别t的预测概率。
[0052] 本发明相较于现有技术,具有以下的有益效果:
[0053] 本发明使用BERT作为三个任务的特征提取层,能够大幅提高句子特征提取信息量,并且通过联合三个任务训练,能够更好通过任务之间的作用提高准确率。本发明三个任务之间采用级联预测的方法,能够提高三个任务均预测正确的句准确率。本发明采用深度网络模型自动提取特征,具有较好的泛化性。附图说明
[0054] 图1是一种任务型对话系统的自然语言理解系统的流程图
[0055] 图2是基于BERT的多任务级联神经网络模型图。

具体实施方式

[0056] 下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0057] 实施例
[0058] 如图1所示为一种任务型对话系统中的语义理解方法的流程图,包括步骤:
[0059] S1、收集与特定任务相关的对话数据,标注出每句对话数据的领域、意图以及槽值;
[0060] 在S1中,从对话平台的用户日志中,将用户对话日志按照句子划分,得到用户的对话数据,例如:“做可乐鸡翅需要哪些材料?”,对对话数据进行数据标注,具体有三个任务的标签:
[0061] 第一类的标签是领域类别,领域类别包括有:公交,地图,火车,电话等。
[0062] 第二类的标签是意图的类别,意图的类别有:查询,播放,打开等。
[0063] 第三类的标签是槽值类别及其值,槽值的类别有:姓名,地点,时间,内容等。
[0064] 例如,“做可乐鸡翅需要哪些材料?”的三类标签分别是:领域(美食),意图(查询),槽值(菜名:可乐鸡翅)。
[0065] S2、对收集的对话数据进行预处理,根据预处理后的数据对构建的多任务级联神经网络模型进行训练;
[0066] 如图2所示,是本申请提出的基于BERT的多任务级联的神经网络图。在S2中,领域识别,意图分类,槽填充任务三个子任务共享BERT层。得到相同的句子表征。在输入BERT层前,对训练语句进行预处理。
[0067] 例如,“做可乐鸡翅需要哪些材料?”按字划分,按照BERT预定义的数据格式得到字嵌入特征:“[CLS]做可乐鸡翅需要哪些材料?[SEP]”以及分句标签“11111111111111”。这里的[CLS]表示的是句子的开端。[SEP]是句子的分隔符。这里输入语句只有一个句子,所以分句标签只有一个类别。经过BERT层得到上下文信息的隐状态序列H=(h1,...,hT)。
[0068] 第一个特殊字符[CLS]的隐藏层向量h1作为整个句子的特征向量输入到domain分类层的softmax分类器中,得到句子在领域类别上的概率分布。领域的概率分布的计算如下:
[0069] p(domain|s)=softmax(Wd·h1+bd)
[0070] 其中,domain表示领域的标签类别,s表示输入的句子。Wd表示领域权重矩阵,bd表示领域偏移向量。取概率最大的类别作为该句子的领域标签。
[0071] 将该领域标签经过domain嵌入层得到领域标签的嵌入表示。将该嵌入表示与第一个特殊字符[CLS]的隐藏层向量h1进行拼接,作为特征向量输入到intent分类层的softmax分类器中,得到句子在意图类别上的概率分布。
[0072] 意图的概率分布的计算如下:
[0073]
[0074] 其中,intent表示意图的标签类别,Wi表示意图权重矩阵,bi表示意图偏移向量,e_d(domain)表示将domain变换为领域嵌入向量。取概率最大的类别作为该句子的意图标签。
[0075] 将领域分类的结果作为意图分类的特征,这能够缓解系统生成领域正确但是意图错误的问题。将该意图标签经过intent嵌入层得到意图标签的嵌入表示。槽标签分类层包含两个分类器,分别是首标签的Softmax分类器,及尾标签的Softmax分类器。将语句的领域标签和意图标签分别转换为对应的领域标签向量和意图标签向量,然后将这两个标签向量拼接到每个字的表示中,经过槽标签分类层分别预测语句的首标签Hi和尾标签Ti。
[0076] 首标签Hi的计算方式如下:
[0077]
[0078] 尾标签Ti的计算方式如下:
[0079]
[0080] 其中,Wh和Wt分别表示首标签和尾标签权重矩阵,bh和bt分别表示首标签和尾标签偏移向量,e_i(intent)表示将intent变换为意图嵌入向量。
[0081] S3、根据模型训练获得的领域、意图以及槽值,计算多任务级联神经网络模型的损失函数,模型根据损失函数值进行迭代,获得最终的多任务级联神经网络模型;
[0082] 本发明使用三个子任务的加权交叉熵,损失函数是三个任务的损失函数加权之和:
[0083] Loss=2.5*LosSdomain+1.5*Lossintent+Losshead+Losstail
[0084] 其中,Lossdomain代表领域分类任务的损失函数,Lossintent代表意图识别任务的损失函数,Losshead和Losstail分别代表槽填充任务的首标签和尾标签的损失函数。
[0085] 使用句准确度指标判断模型表现:如果输入句子的领域,意图,槽值都识别正确,那么该句子识别正确,计算acc=(句子识别正确的数量)/句子总数,这个指标最好的时候即为表现最好。
[0086] 通过迭代微调模型得到在测试集上表现最好的模型。
[0087] S4、将待识别的对话数据进行预处理后输入到最终的模型中,识别对话数据中语句的领域、意图以及槽值。
[0088] 在S4中,将待预测的对话数据进行预处理,例如:“做可乐鸡翅需要哪些材料?”。将预处理后的数据,输入到已经训练好的模型。通过领域识别模块可以得到领域类别上的概率分布,如[0.1,0.2,...,0.4]。0.4是概率最大的值,取最大概率所对应的领域类别:美食。将处理后的数据以及领域输入到意图分类模型中,得到意图类别上的概率分布,如[0.8,
0.01,...,0.1]。0.8是概率最大的值,取最大概率所对应的意图类别:查询。将处理后的数据,领域以及意图分别输入到首标签分类模型中,得到所有字在首标签类别上的概率分布,如[[0.11,0.31,…,0.1],[0.11,0.11,…,0.1],…,[0.11,0.31,…,0.1]],每个字的首标签取最大概率所对应的首标签类别,得到[0 0 3 0 0 0 0 0 0 0 0 0 0]。同样地将处理后的数据,领域以及意图分别输入到尾标签分类模型中,得到所有字在尾标签类别上的概率分布,如[[0.11,0.11,…,0.1],[0.11,0.01,…,0.1],…,[0.11,0.81,…,0.1]],每个字的尾标签取最大概率所对应的首标签类别,得到[0 0 0 0 0 3 0 0 0 0 0 0 0]。根据首标签及尾标签的位置抽取出原句的第3个至第6个字,即“可乐鸡翅”。槽值类别选择“3”对应的标签:菜名。得到该句话的槽值:菜名(可乐鸡翅)。
[0089] 上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈