本发明专利技术提供了一种基于多任务学习的对话意图识别方法,包括以下步骤:S1:采集对话语料,构造Complete数据集;S2:选取部分对话,标注每个语句的意图,构造Intent数据集;S3:划分Intent数据集为训练集、验证集和测试集;S4:输入Intent训练集和Complete数据集,训练多任务学习模型;S5:每完成一次训练迭代,计算Intent验证集的损失值;S6:选择验证集损失值最小时的模型作为训练得到的最终模型;S7:利用Intent测试集评估模型性能,计算样本准确率等评价指标;S8:将新的对话语句输入已训练好的模型,识别其意图。本发明专利技术充分利用对话语句之外的辅助信息学习丰富的语句表征,以此提升意图识别性能。图识别性能。图识别性能。
【技术实现步骤摘要】
一种基于多任务学习的对话意图识别方法及识别系统
[0001]本专利技术涉及自然语言处理
,尤其涉及对话意图识别方法及识别系统。
技术介绍
[0002]近年来,以对话系统为基础的虚拟语音助手、智能音箱和智能服务机器人获得了极大关注,逐渐发展为新的人机交互手段,也在促进大众生活方式的变革。正确识别对话中每个语句的意图是实现对话系统的关键一步,影响着对话理解的准确性以及后续处理流程。
[0003]作为一个分类问题,意图识别方法主要有基于规则的、基于传统机器学习、基于深度学习的等类型。基于规则的意图识别需要专家设计匹配模板,只适合小规模、特定领域的对话系统。基于传统机器学习的意图识别有最大熵、隐马尔可夫、条件随机场、支持向量机、深度置信网络等模型。如今,基于卷积神经网络、循环神经网络等深度学习模型的意图识别成为研究的主流。
[0004]上述模型大多关注语句本身的词法、句法和语义特征,忽视了语句之外的轮次、发言者等辅助信息,这些信息往往与意图有着很强的关联性。例如,提问相关的意图多由用户发出且位于对话开头,回答相关的意图则由系统发出且位于对话结尾。有效利用这些强关联的辅助信息,势必可以进一步提升对话意图识别性能。
技术实现思路
[0005]本专利技术的目的是提供一种基于多任务学习的对话意图识别方法,以有效利用与意图有强关联的轮次、发言者等辅助信息,充分性训练模型,习得丰富的语句表征,从而提升意图识别性能。
[0006]为实现上述目的,本专利技术提供如下技术方案:
[0007]首先,是构造Complete和Intent两个数据集。Complete数据集主要提供辅助信息相关的训练样本,Intent数据集则提供意图分类样本。具体地,采集对话语料,构造Complete数据集;选取部分对话语料,标注每个语句的意图,构造Intent数据集;将Intent数据集按8:1:1的比例随机划分为训练集、验证集和测试集三个部分。Complete数据集中每个对话包含多轮交互,每轮交互由轮次、发言者、语句等部分组成。语句意图可以是初始提问、重复提问、澄清提问、后续提问、信息补充、答案回复、积极反馈、消极反馈、问候、感谢、其他中的一个或多个。初始提问指对话开始时提出的第一个问题;重复提问指重复之前的问题;后续提问指与初始提问相关的其他问题;澄清提问指请求问题相关的更多细节;信息补充指提供问题相关的更多细节;答案回复指潜在答案或解决方案;积极反馈指解决方案可行;消息反馈指解决方案不可行;问候指礼貌地问候对方;感谢指向对方表达感谢;其他指不属于以上任何一类的意图。Intent训练集和验证集用于模型训练,训练集则用来评估模型性能。
[0008]其次,是训练多任务学习模型。多任务学习模型包含1个主任务和2个辅助任务,主
任务是意图分类,辅助任务是轮次分类和发言者分类。轮次分类目标是预测语句在对话中的相对位置,发言者分类目标是预测语句的发言者是用户还是专家。3个任务共享模型的词表示层和语句表示层,只有输出层不同。具体地,将Intent训练集和Complete数据集输入多任务学习模型,初始化模型参数,设置好优化器和最大迭代次数,开始训练;每完成一次训练迭代,计算Intent验证集的损失值;设定模型迭代超参数,若经过连续10次迭代后,验证集损失值都不再下降,则结束训练,并选择损失值最小时的模型作为训练得到的最终模型。模型训练步骤如下:每个任务分别输入相同数量的语句,首先经过词表示层将语句每个单词转换为向量,然后进入语句表示层,生成各自的语句向量;每个任务的语句向量经各自输出层转换为类别分布,由此计算每个任务的损失值;将3个任务的损失值加权求和,得到总的损失值,计算梯度并更新多任务学习模型。
[0009]再次,是评估模型性能。利用Intent测试集评估模型性能,计算样本准确率、微精度、微召回率、微F1值等评价指标。根据这些指标对比多任务学习前后模型效果,说明多任务学习模型的有效性和优越性。
[0010]最后,是利用已训练好的多任务学习模型预测对话语句意图。将新的对话语句输入模型,经词表示层和语句表示层获得语句向量,然后只进入意图分类任务的输出层,忽略2个辅助任务的输出层,由此预测出每个意图的概率,选择所有大于0.5的作为该语句意图,完成意图识别。
[0011]本专利技术还提出了一种基于多任务学习的对话意图识别系统,包括:存储器和处理器;所述存储器上存储有计算机程序,当所述计算机程序被所述处理器执行时,实现上述的基于多任务学习的对话意图识别方法。
[0012]本专利技术还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述的基于多任务学习的对话意图识别方法。
[0013]本专利技术的有益效果是:提出一种基于多任务学习的对话意图识别方法,通过轮次、发言者等辅助信息样本,更好地学习语句表征,有效提升了意图识别性能,意图识别的准确率提升了3.74%,微F1值提升了3.59%,取得了当前最优结果。
附图说明
[0014]附图是用来进一步理解本专利技术,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但不构成对本专利技术的限制。在附图中:
[0015]图1是本专利技术一实施例一种基于多任务学习的对话意图识别方法的流程示意图;
[0016]图2是本专利技术一实施例一种基于多任务学习的对话意图识别方法的多任务学习模型架构;
[0017]图3是本专利技术一实施例一种基于多任务学习的对话意图识别方法中步骤S4模型训练的流程示意图。
具体实施方式
[0018]结合以下具体实施例和附图,对专利技术作进一步的详细说明。实施本专利技术的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本专利技术没有特别限制内容。
[0019]本专利技术实施例提出一种基于多任务学习的对话意图识别方法,如图1所示,包括以下步骤:
[0020]S1:采集对话语料,构造Complete数据集。每个对话包含多轮交互,每轮交互由轮次、发言者、语句等部分组成。轮次从1开始编号,发言者有用户和专家两类。
[0021]S2:选取部分轮数在3~10之间的对话语料,标注每个语句的意图,构造Intent数据集。语句意图可以是初始提问、重复提问、后续提问、澄清提问、信息补充、答案回复、积极反馈、消极反馈、问候、感谢、其他中的一个或多个;
[0022]S3:将Intent数据集按8:1:1的比例随机划分为训练集、验证集和测试集三个部分。训练集和验证集用于意图识别模型的训练,测试集用于模型性能的评估;
[0023]S4:将Intent训练集和Complete数据集输入多任务学习模型,初始化模型参数,设置好优化器和最大迭代次数,进行模型训练;
[0024]S5:每完成一次训练迭代,计算Intent验证集的损失值;
[0025]S6:设定模型迭代超参数,若经过连续10次迭代后,验证集损失值都不再下降,则结束训练,并选择损失值最小时的模本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于多任务学习的对话意图识别方法,其特征在于,包括以下步骤:步骤S1:采集对话语料,构造Complete数据集;步骤S2:选取部分对话语料,标注每个语句的意图,构造Intent数据集;步骤S3:将Intent数据集按比例随机划分为训练集、验证集和测试集三个部分;步骤S4:将Intent训练集和Complete数据集输入多任务学习模型,初始化模型参数,设置好优化器和最大迭代次数,进行模型训练;步骤S5:每完成一次训练迭代,计算Intent验证集的损失值;步骤S6:设置模型迭代超参数,若经过设定的连续迭代次数后,验证集损失值都不再下降,则结束训练,并选择损失值最小时的模型作为训练得到的最终模型;步骤S7:利用Intent测试集评估多任务学习模型性能,计算评价指标,包括样本准确率、微精度、微召回率、微F1值;步骤S8:将新的对话语句输入已训练好的多任务学习模型,预测每个意图的概率,从中选出所有大于0.5的作为该语句意图,完成意图识别。2.根据权利要求1所述的基于多任务学习的对话意图识别方法,其特征在于,步骤S1中,采集的每个对话包含多轮交互,每轮交互由轮次、发言者、语句组成。3.根据权利要求1所述的基于多任务学习的对话意图识别方法,其特征在于,步骤S2中,所述语句的意图包括初始提问、重复提问、后续提问、澄清提问、信息补充、答案回复、积极反馈、消极反馈、问候、感谢中的一个或多个;若语句的意图不属于前述意图中的任何一类,则该语句的意图为其他。4.根据权利要求1所述的基于多任务学习的对话意图识别方法,其特征在于,步骤S...
【专利技术属性】
技术研发人员:聂桂芝,陆明名,
申请(专利权)人:上海方立数码科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。