本发明属于人机交互领域,涉及自然语言处理、垂直对话系统等,特别涉及一种基于多任务学习的意图与槽位联合识别方法。

背景技术:

意图识别和槽位识别可以将垂直对话系统中用户输入文本转化为语义表示,为系统采取下一步行动提供支撑,是垂直对话系统自然语言理解模块的关键步骤。意图识别任务侧重于预测输入文本的意图,槽位识别以提取语义概念作为自然语言的约束为主要目的,即为给定输入文本中每个单词分配适当的语义标签。在目前的研究中,意图识别和槽位识别通常采用“流水线”方式独立进行,近期部分研究采取了意图和槽位联合识别的方式,但这些模型没有充分考虑意图和槽位之间的强相关性,这会导致在人机对话过程中,随着对话的进行,用户意图可能会不断发生偏移,槽值也存在不断改变的可能,所以用户意图和槽值有必要在其识别过程中进行持续的匹配验证。基于此,本专利采用多任务学习共享多个任务之间的参数和特征,以实现意图识别模型和槽位识别模型的联合优化。

技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种基于多任务学习的意图与槽位联合识别方法,建立意图和槽位联合识别模型,提高意图和槽位识别的准确率和f值,并将其应用于垂直对话系统,从而提高垂直对话系统自然语言理解模块的性能。

为了实现上述目的,本发明的技术方案是:

一种基于多任务学习的意图与槽位联合识别方法,包括:

s1,共享表示特征的构建;通过lstm-cnn获取具有文本时序和结构信息的共享表示特征;

s2,意图识别模型和槽位识别模型的设计;在共享表示特征的基础上采用bi-lstm模型,分别针对意图标签信息和槽位标签信息构建带注意力机制的bi-lstm意图识别模型和槽位识别模型;

s3,意图识别模型和槽位识别模型的联合优化;将意图识别模型和槽位识别模型的损失函数进行加权,获得总损失函数,并对其进行联合优化求解。

优选的,所述s1包括:

s1.1,将用户输入文本转化为one-hot向量v1;

s1.2,将所述向量v1输入到lstm中进行处理,输出具有文本时序信息的向量v2;

s1.3,将所述向量v2输入到cnn中进行处理,输出具有文本时序和结构信息的共享表示特征h(shared),该特征将作为意图识别和槽位识别的共同特征。

优选的,所述s2包括:

s2.1,将所述共享表示特征h(shared)作为输入,以意图标签构建训练数据集dataintent,以槽位标签构建训练数据集dataslot;

s2.2,采用带注意力机制的bi-lstm模型作为意图识别训练模型和槽位识别训练模型。

优选的,所述意图识别模型的建立具体包括以下内容:

将共享表示特征h(shared)输入到带注意力机制的bi-lstm意图识别训练模型进行迭代优化,得到最终预测输出为yintent。

优选的,所述槽位识别模型的建立具体包括以下内容:

将共享表示特征h(shared)输入到带注意力机制的bi-lstm槽位识别训练模型进行迭代优化,得到最终预测输出为oslot。

优选的,所述s3具体包括:

s3.1,将意图识别损失函数lossintent定义为预测输出yintnet与真实意图的交叉熵;

s3.2,将槽位识别损失函数lossslot定义为预测输出oslot与真实槽位序列的平均交叉熵;

s3.3,将总损失函数定义为意图识别损失函数和槽位识别损失函数的加权和,如下:

其中:loss为意图和槽位联合识别模型的总损失,α、β分别为预设的意图识别任务与槽位识别任务的权重系数;α通过基于梯度下降法的权重自学习方法确定,计算步骤如下:

s3.3.1,对α进行梯度计算,如下:

其中,b为偏置值,f(z)为模型输出值,t为样本真实值,(f(z)-t)为输出值与样本真实值t之间的误差;

s3.3.2,对α值进行迭代计算,如下:

d表示为梯度步长的学习率;

s3.3.3,当loss的单调性不能保持时,停止迭代,得到α值;

s3.4,利用adam方法对公式(1)进行优化求解,最后得到输入文本最终的意图标签和槽位标签序列。

采用上述方案后,本发明的有益效果是:

本发明一种基于多任务学习的意图与槽位联合识别方法,利用多任务学习的优势建立意图和槽位联合识别模型,分别提高意图和槽位识别的准确率和f值,并将其应用于垂直对话系统,从而提高垂直对话系统自然语言理解模块的性能。

以下结合附图及实施例对本发明作进一步详细说明,但本发明的一种基于多任务学习的意图与槽位联合识别方法不局限于实施例。

附图说明

图1是基于多任务学习的意图和槽位联合识别模型的结构示意图;

图2是基于多任务学习的意图和槽位联合识别模型的流程图。

具体实施方式

以下将结合本发明附图,对本发明实施例中的技术方案进行详细描述和讨论。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

参见图1和图2所示,本发明一种基于多任务学习的意图与槽位联合识别方法,包括:共享表示特征的构建;意图识别模型和槽位识别模型的设计;意图识别模型和槽位识别模型的联合优化。

本发明用于同时识别垂直对话系统的输入文本的意图和槽位。其中的槽位识别指的是对给定输入文本中每个单词分配适当的语义标签,其表示形式为“槽值对”形式,其中:“槽”表示语义属性的名称,“值”表示该语义属性的值。

所述的多任务学习指的是共享多个任务之间的参数和特征,以实现意图识别模型和槽位识别模型的联合优化。

本实施例中,以atis(airlinetravelinformationsystem)公共测试数据集为例,atis数据集由航班预订人员的录音组成。其中,训练集包含4478个问句,测试集包含来自893个问句。该数据集总共有122个不同的槽值标签和23种不同的意图类型。表1为该数据集的一个实例“whataretheflightsfromtacomatosanjoseonwednesdaythenineteenth”,表1显示了该实例对应的意图和槽位。

表1atis数据集实例

本发明具体步骤如下:

s1:共享表示特征的构建,即通过lstm-cnn(长短期记忆网络lstm和卷积神经网络cnn)获取具有文本时序和结构信息的共享表示特征,具体包括以下内容:

s1.1:将“whataretheflightsfromtacomatosanjoseonwednesdaythenineteenth”转化为one-hot向量v1;

s1.2:将s1.1得到的向量v1输入到lstm中进行处理,输出具有文本时序信息的向量v2;

s1.3:将向量v2输入到cnn中进行处理,输出具有文本时序和结构信息的共享表示特征h(shared),该特征将作为意图识别和槽位识别的共同特征。

s2:意图识别模型和槽位识别模型的设计,即在共享表示特征的基础上采用bi-lstm模型,分别针对意图标签信息和槽位标签信息构建带注意力机制的bi-lstm意图识别/槽位识别模型,具体包括以下内容:

s2.1:将基于s1得到的共享表示特征h(shared)作为输入,分别以意图标签和槽位标签构建两个训练数据集dataintent和dataslot。

s2.2:采用带注意力机制的bi-lstm模型作为意图识别和槽位识别的训练模型。

s2.2.1:将共享表示特征h(shared)输入到带注意力机制的bi-lstm意图识别训练模型进行迭代优化,得到最终预测输出为yintent。在本例中,输出中间结果为23维向量,并进行格式转换。

s2.2.2:将共享表示特征h(shared)输入到带注意力机制的bi-lstm槽位识别训练模型进行迭代优化,得到最终预测输出为oslot。在本例中,输出中间结果为122维向量,并进行格式转换。

s3:意图识别模型和槽位识别模型的联合优化,即将意图识别模型和槽位识别模型的损失函数进行加权,获得总损失函数并进行优化求解,具体包括以下内容:

s3.1:将意图识别损失函数lossintent定义为,基于s2.2.1得到的预测输出yintnet与真实意图的交叉熵;

s3.2:将槽位识别损失函数lossslot定义为,基于s2.2.2得到的预测输出oslot与真实槽位序列的平均交叉熵;

s3.3:将总损失函数定义为意图识别损失函数和槽位识别损失函数的加权和,即公式1:

其中:loss为意图和槽位联合识别模型的总损失,α、β分别为预设的意图识别任务与槽位识别任务的权重系数。α通过基于梯度下降法的权重自学习方法确定,计算步骤如下:

s3.3.1:对α进行梯度计算,如公式2:

其中,b为偏置值,f(z)为模型输出值,t为样本真实值,(f(z)-t)为输出值与样本真实值之间的误差。

s3.3.2:利用公式3对α值进行迭代计算:

其中,d表示为梯度步长的学习率。

s3.3.3:当loss的单调性不能保持时,停止迭代,得到α值。

s3.4:利用adam方法对公式(1)进行优化求解,输出最终识别结果。

最后得到输入文本最终的意图标签atis_flight和槽位标签序列“ooooo

b-fromloc.city_nameob-toloc.city_namei-toloc.city_nameob-depart_date.day_nameob-depart_date.day_num”。

本发明在atis数据集上得到的意图识别的准确率为97.40%、槽位识别的f值为96.16%,较现有的blstm-cnn-crf联合识别模型分别提高1.50%和0.92%。

以上仅为本发明实例中一个较佳的实施方案。但是,本发明并不限于上述实施方案,凡按本发明所做的任何均等变化和修饰,所产生的功能作用未超出本方案的范围时,均属于本发明的保护范围。

属性与意图识别_一种基于多任务学习的意图与槽位联合识别方法与流程相关推荐

  1. python登录系统账号检测_一种基于python的惠普打印机默认用户名密码检测方法与流程...

    本发明涉及打印机检测技术领域,特别是一种基于python的惠普打印机默认用户名密码检测方法. 背景技术: 网络打印机是当前各大中小型企业正常办公比不可少的办公网络设备,但对于大中型企业而言,不同部门或 ...

  2. flash写保护原理_一种基于flash写保护的防止flash被意外篡改的方法与流程

    本发明属linux嵌入式芯片安全技术领域于领域,尤其是涉及一种nandflash写保护应用方法. 背景技术: 目前很多公司都纷纷尝试智能设备(sd,smartdevice)领域,sd设备功能越来越多, ...

  3. 计算机多任务处理未来的挑战,基于多任务学习的多姿态人脸重建与识别Multi-poseface-计算机应用.PDF...

    基于多任务学习的多姿态人脸重建与识别Multi-poseface-计算机应用.PDF Journal of Computer Applications ISSN 1001-9081 2017- -10 ...

  4. 水位尺读数识别 python_一种基于深度学习的水尺识别方法与流程

    本发明涉及水位监测 技术领域: :,具体地说,涉及一种基于深度学习的水尺识别方法. 背景技术: ::近些年来,随着图像处理技术的发展,通过计算机获得图像里的详细信息成为了一种非常方便且高效的方式.将图 ...

  5. 云计算 码率适配限速_一种基于云计算的应用于用户终端的测速方法

    一种基于云计算的应用于用户终端的测速方法 [专利摘要]本发明提供一种基于云计算的应用于用户终端的测速方法,包括:建立测速机制,定义相关参数,测速方法,输出测速结果:具体包括:建立测速机制,定义相关参数 ...

  6. 基于linux火焰识别算法,一种基于深度学习模型的火焰识别方法与流程

    本发明属于通信领域,具体涉及一种基于深度学习模型的火焰识别方法. 背景技术: 随着我国工业化与城镇水平的不断提高,现代设施大型公共建筑朝着空间大.进深广功能复杂的多元化方向发展,这对于防烟火朝着空间大 ...

  7. matlab换挡程序,一种基于MATLAB换挡过程中快速锁定分析数据的方法与流程

    本发明涉及汽车变速器数据分析,特别的,涉及一种基于matlab换挡过程中快速锁定分析数据的方法. 背景技术: 自动变速器的核心功能是能根据驾驶员意图进行自动换挡,解放驾驶员的左脚:在自动变速器的使用过 ...

  8. matlab中枝切法解包裹,一种基于改进枝切法的激光散斑相位解包裹方法与流程

    本发明属于激光散斑干涉测量领域,涉及一种激光散斑相位解包裹方法. 背景技术: 散斑干涉相位图解包裹是激光散斑测量的关键步骤,Goldstein枝切法解包裹算法由于可识别残差点,防止误差传递,解缠精度高 ...

  9. matlab鬼成像,一种基于光计算的可视化计算鬼成像系统及成像方法与流程

    本发明涉及成像探测领域,具体为一种基于光计算的可视化计算鬼成像系统及成像方法. 背景技术: 光学鬼成像技术是通过双路光信号符合探测恢复待测物体空间信息实现的.其特点是包含物体信息的信号光(signal ...

最新文章

  1. 什么是UUID及其实现代码
  2. 没推送功能,你好意思叫APP嘛?
  3. 几个关于money处理的函数
  4. 管理系统制作的python代码_python学生管理系统代码实现
  5. linux学习笔记:linux中磁盘管理常用的几个命令
  6. 选择播放器你需要知道什么?
  7. python俄罗斯方块代码34行_Python:游戏:300行代码实现俄罗斯方块
  8. Tuxedo 介绍与安装
  9. 互联网时代掘金在线教育:自助式学习 社交是标配元素
  10. 本地搭建私有云盘:群晖系统存储空间设置 3/5
  11. Allegrocadence PCB测量时显示两种单位(mil mm)
  12. install par
  13. 天地图和谷歌地图静态图像素坐标和经纬度坐标互转
  14. python scrapy框架 简书_7、Python Scrapy框架,简单学习
  15. 关于微博的发表框计数规则及jq实现
  16. 改革40年致敬创业者:有梦想谁都了不起!
  17. 灵性图书馆:好书推荐-《当下的力量》
  18. 整理一些个人常用的windows软件
  19. esxcli software vib 升级或安装esxi5补丁
  20. 深度学习-核对矩阵维度

热门文章

  1. python之标准库html
  2. C++ 实现磁盘初始化
  3. 2 大数据电商数仓项目——项目需求及架构设计
  4. nrf51822 --TWI(硬件IIC)
  5. NRF52832与NRF52840的性能区别
  6. LeetCode Weekly Contest 185
  7. utf-8中一个汉字是3个字节,你知道吗?
  8. Netbeans常用快捷键及全部快捷键
  9. 【2020年牛客暑假第八场】E题 Enigmatic Partition
  10. 32位ARM嵌入式处理器的调试技术