基于BERT语言模型和TextCNN模型的多意图识别方法及系统与流程

文档序号:30922099发布日期:2022-07-29 23:08阅读:1186来源:国知局
基于BERT语言模型和TextCNN模型的多意图识别方法及系统与流程
基于bert语言模型和textcnn模型的多意图识别方法及系统
技术领域
1.本发明涉及自然语言处理技术领域,具体涉及一种基于bert语言模型和textcnn模型的多意图识别方法及系统。


背景技术:

2.当前,工业界主流的基于nlp(自然语言处理)技术的智能客服机器人主要围绕单一意图的识别与应答,即每次只能识别、应答一个问题。如果同时出现多个问题时,机器人智能选择性的回答一个问题,而无法完整回答所有的问题,主要原因是这些机器人并未采用多意图识别与应答技术。
3.虽然,目前市场上也有极个别的基于复杂意图智能识别的人机交互问答方法及系统,但基本都是基于知识图谱实现,即从知识库中获取解答问题所需的相关信息,但类似基于知识图谱的复杂意图智能识别、问答方法能够识别的意图类型有限,且识别速度较慢,影响了多意图问答的人机交互体验。
4.为了解决基于知识图谱的复杂意图智能识别、问答方法存在的上述缺陷,目前也有学者通过神经网络学习多意图识别语料的数据特征来训练多意图识别模型,然后使用完成训练的多意图识别模型对待进行意图识别的语料进行意图识别。但现有的多意图识别模型的训练数据为通用场景下获取的多意图语料数据,因此将针对通用场景训练的多意图识别模型应用到特定场景(比如问答过程涉及许多专业词汇的场景)中进行多意图识别,存在识别精度和识别效率不高的问题。


技术实现要素:

5.本发明针对特定场景下的多意图识别需求,并以提高多意图识别模型的识别准确率和识别效率为目的,提供了一种基于bert语言模型和textcnn模型的多意图识别方法及系统。
6.为达此目的,本发明采用以下技术方案:提供一种基于bert语言模型和textcnn模型的多意图识别方法,包括步骤:s1,构建多意图识别场景的专业术语分词库;s2,使用所述专业术语分词库对所获取的模型训练数据集中的每个样本进行逐条的标签扫描,并按扫描顺序依次统计每个所述样本中的每条标签出现的专业术语的频数c,将扫描到的每个所述专业术语保存到存储模块中,然后根据每个所述样本中的每条所述标签对应的所述频数c,构建起所述训练数据集对应的标签矩阵;s3,基于所述标签矩阵构建模型训练的损失函数;s4,以bert语言模型为预训练模型学习所述训练数据集的数据特征,目的是将保存在所述存储模块中的关联每个所述样本的每个所述专业术语转换为对应的词向量,并将各所述词向量融合形成为关联所述样本的句向量后输出给textcnn模型,所述textcnn模型根据输入预测输出意图识别结果,并使用步骤s3构建的所述损失函数对模型参数进行优化
后,最终训练形成融合所述bert语言模型和所述textcnn模型的多意图识别模型;s5,将待进行意图识别的语料输入到完成训练的所述多意图识别模型中,模型输出意图识别结果。
7.优选地,每个所述样本中的每条所述标签中出现所述专业术语的频数c的值为0或1或2。
8.优选地,步骤s3中构建的所述损失函数通过以下表达式(1)表达:表达式(1)中,表示所述损失函数;表示对第个样本的预测概率值;为第个所述样本的概率真实值;表示所述训练样本集中的第个标签;表示所述训练样本集中的标签数量;表示所述训练样本集中的样本数量;表示第个所述样本中的第个标签的词频。
9.优选地,通过以下公式(2)评估所述多意图识别模型的性能:公式(2)中,表示所述多意图识别模型的预测准确率;表示所述多意图识别模型对样本的预测值;表示所述样本的真实值;表示所述训练数据集中的样本数量。
10.本发明还提供了一种基于bert语言模型和textcnn模型的多意图识别系统,可实现所述的多意图识别方法,所述多意图识别系统包括:专业术语分词库构建模块,用于构建多意图识别场景的专业术语分词库;标签矩阵构建模块,连接所述专业术语分词库构建模块,用于使用所述专业术语分词库对所获取的模型训练数据集中的每个样本进行逐条的标签扫描,并按扫描顺序依次统计每个所述样本中的每条标签出现专业术语的频数c,并将扫描到的每个专业术语保存到存储模块中,然后根据每个所述样本中的每条所述标签对应的所述频数c,构建起所述训练数据集对应的标签矩阵;损失函数构建模块,连接所述标签矩阵构建模块,用于基于所述标签矩阵构建模型训练的损失函数;模型训练模块,分别连接所述存储模块和所述损失函数构建模块,用于以bert语言模型为预训练模型学习所述训练数据集的数据特征,以将保存在所述存储模块中的关联
每个所述样本的每个所述专业术语转换为对应的词向量,并将各所述词向量融合形成为关联所述样本的句向量后输出给textcnn模型,所述textcnn模型根据输入预测输出意图识别结果,并使用所构建的所述损失函数对模型参数进行优化后,最终训练形成融合所述bert语言模型和所述textcnn模型的多意图识别模型;多意图识别模块,连接所述模型训练模块,用于将待进行意图识别的语料输入到完成训练的所述多意图识别模型中,模型输出意图识别结果。
11.优选地,所构建的所述损失函数通过以下表达式(3)表达:表达式(3)中,表示所述损失函数;表示对第个样本的预测概率值;为第个所述样本的概率真实值;表示所述训练样本集中的第个标签;表示所述训练样本集中的标签数量;表示所述训练样本集中的样本数量;表示第个所述样本中的第个标签的词频。
12.本发明具有以下有益效果:1、所构建的标签矩阵很好地利用了标签包含的专业术语,使得模型能够更好地学习到这些专业术语的数据特征。
13.2、在模型训练采用的损失函数中增加了在每个样本的每个标签中出现的专业术语的词频,有利于提升模型的学习能力,加快模型收敛,同时保障了模型的可导与迭代优化,模型训练的效果更好。
14.3、把训练数据集首先导入到作为预训练模型的bert语言模型中进行数据特征学习,通过将输入的每个样本转换为对应的句向量后输出给textcnn模型,有利于简化textcnn模型后续的学习过程,提升学习效果。
15.4、使用网络结构简单的textcnn模型进行多意图识别模型的训练,简化了模型训练的复杂度,有利于提升模型训练的速度;且利用增加了词频特征的损失函数对textcnn模型参数进行调优,使得多意图识别模型训练过程更加侧重对特定场景下的专业术语的特征学习,有利于提升模型的多意图识别准确度。
附图说明
16.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1是本发明一实施例提供的基于bert语言模型和textcnn模型的多意图识别方法的实现步骤图;
图2是利用bert语言模型+textcnn模型进行多意图识别模型训练的原理图;图3是利用完成训练的多意图识别模型对输入的语料进行多意图识别的原理框图;图4是本发明一实施例提供的基于bert语言模型和textcnn模型的多意图识别系统的结构示意图。
具体实施方式
18.下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
19.其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
20.本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若出现术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
21.在本发明的描述中,除非另有明确的规定和限定,若出现术语“连接”等指示部件之间的连接关系,该术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个部件内部的连通或两个部件的相互作用关系。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
22.在阐述本实施例提供的基于bert语言模型和textcnn模型的多意图识别方法之前,首先对将涉及的相关专业名词进行含义解释:nlp:自然语言处理。
23.bert语言模型,是一个预训练的语言表征模型,bert为英文“bidirectional encoder representation from transformers”的简称。该模型强调了不再像以往一样采用传统的单向语言模型或者把两个单向语言模型进行浅层拼接后进行预训练,而是采用mlm(masked language model)模型进行预训练,以致能生成深度的双向语言表征。
24.textcnn模型:一维卷积神经网络,专门用于处理文本的卷积神经网络,具有模型轻量、运行效率和准确性高的优点。
25.损失函数:用于评估模型的预测值与真实值的不一致程度,为非负实值函数,损失函数的值越小,模型鲁棒性越好。
26.sigmoid函数,也叫logistic函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)区间,可以用来做二分类。
27.adam优化器,是深度学习中最流行的优化器之一。
28.以下以电信业务问答这一特定的多意图识别场景为例,对本实施例提供的基于bert语言模型和textcnn模型的多意图识别方法的具体实现进行说明:
本实施例提供的多意图识别方法主要由模型训练模块和多意图识别模块这两个模块实现,模型训练模块的作用是,以预训练的bert语言模型首先学习训练数据集的数据特征,输出每个样本对应的句向量,然后以将输出的句向量输入到轻量的textcnn模型中,并采用增加了专业分词词频特征的损失函数对textcnn模型进行参数调优,最后经更新迭代将最终训练形成的bert语言模型和textcnn模型融合为多意图识别模型。多意图识别模块则利用完成训练的多意图识别模型对输入的语料进行多意图识别,并将识别结果显示给用户。
29.多意图识别模型训练包括专业术语分词库构建、标签矩阵构建、损失函数优化和模型性能评估这4个步骤。首先是专业术语分词库的搭建,即如图1中所示的本实施例提供的基于bert语言模型和textcnn模型的多意图识别方法的步骤:s1,构建多意图识别场景的专业术语分词库;本实施例中,专业术语分词库指收集电信行业的专业术语加入到库中形成为专业术语分词库。例如,在宽带业务咨询问答场景中,某条语料为“宽带需要解绑,顺便改密码”,该条语料包含了两个意图,第一个意图为“宽带解绑”,第二个意图为“宽带改密码”,本技术将“解绑”“改密码”这两个词作为宽带业务咨询问答场景中的专业术语加入到专业术语分词库中。本技术收集的专业术语还可以包括业务码,不同的业务码对应不同的业务,加入业务码这类特定的术语到分词库中能够很好地区分出业务类型。例如,宽带业务,通常以ad或adsld开头的号码作为宽带接入号,当样本中出现这类号码时,可以快速识别出意图类型为咨询宽带业务相关问题。
30.完成对特定场景的专业术语分词库的构建后,需要收集模型训练数据集。本技术中,收集的训练数据包括单意图的历史语料数据,例如“宽带需要解绑”、“宽带需要改密码”等类似的单意图语料数据,也可包括多意图的历史语料数据,例如“宽带需要解绑,顺便改密码”等类似的多意图语料数据。且本技术通过混合采样方式处理特定场景下正负样本不平衡的问题。电信行业,正负样本不平衡问题同样存在,例如,某些热门业务场景的数据量非常多,而某些冷门业务场景的数据量特别少。如果不考虑正负样本平衡问题,训练出来的模型对样本量多的类别的预测概率特别高,而对样本量少的类别的预测概率非常低,甚至接近为0。针对这个现象,本技术在把训练数据传入到bert语言模型前,使用混合采样方式对数据进行处理,同时考虑了数据不平衡和平衡的问题,通过引入一个超参平衡两种极端的采样方式(即正样本占总样本数量比例过大,或负样本占总样本数量比例过大两种极端)。引入超参平衡两种极端的方法通过以下公式(1)和(2)表达:公式(1)-(2)中,表示获取的样本数量;为考虑正负样本不平衡问题时的预测概率;为不考虑正负样本平衡问题时的预测概率与考虑正负样本不平衡问题时的预测概率的比例,值在(0,1);为不考虑正负样本平衡问题时的预测概率;
为结合不考虑正负样本平衡问题和考虑正负样本不平衡问题这两者的预测概率;为结合不考虑正负样本平衡问题和考虑正负样本不平衡问题这两者的预测概率与考虑正负样本不平衡问题时的预测概率,值在(0,1);为不考虑正负样本平衡问题时的预测概率引入平衡因子;为考虑正负样本不平衡问题时的预测概率引入1减去平衡因子。
31.以混合采样方式获得模型训练数据集后,如图1所示,本实施例提供的多意图识别方法转入步骤:s2,以构建的专业术语分词库为分词字典,使用jieba等分词工具对所获取的模型训练数据集中的每个语料样本进行逐条的标签扫描,并按扫描顺序依次统计每个样本中的每条标签出现专业术语的频数c,并将扫描到的每个专业术语保存到存储模块中,然后根据每个样本中的每条标签对应的频数c,构建起训练数据集对应的标签矩阵;这里需要说明的是,由于作为分词字典的专业术语分词库针对特定场景的专业术语而构建,因此使用jieba等分词工具对训练数据集中的语料样本进行分词时,能够快速且精准地分得相应的专业术语,提高了对特定场景下的语料的分词准确度。
32.以下对标签矩阵的构建方法进行举例说明:例如,训练数据集中的某个语料样本为“宽带需要解绑,顺便改密码”,该语料中假设具有3类文本标签,分别为“业务类型”、“业务行为”和“辅助词”,例如,该语料中的“宽带”这个词的标签为“业务类型”,“解绑”和“改密码”这两个词的标签为“业务行为”,“需要”和“顺便”这两个词的标签为“辅助词”,分词工具以构建的专业术语分词库为分词词典以逐条扫描样本中的标签的方式进行分词并通过每类标签出现的专业术语的频数c(即本技术中所指的词频)。扫描方式比如为:首先对“业务类型”这一标签进行扫描并分词,并统计词频。比如,对于上述的语料,首先对“宽带”这个词进行扫描,由于该“业务类型”标签下的词只有“宽带”这一个词,且该次作为专业术语被收录在专业术语分词库中,则直接从该语料中分得“宽带”这个词,并统计该词在“业务类型”这一标签下的频数c,由于该语料中被标记为“业务类型”标签的词只有“宽带”这一个词,因此,该语料中被标记为“业务类型”标签的专业术语的频数c为1,即该语料的“业务类型”标签下出现的专业术语的频数c为1。
33.然后对“辅助词”这一标签进行扫描并分词。比如,对于上述的语料,对“需要”这个被标记为辅助词的词进行扫描,由于辅助词并非为专业术语,因此不对辅助词进行频数统计。
34.最后对“业务行为”这一标签进行扫描并分词,并统计词频。比如,对于上述的语料,对“业务类型”这一标签进行扫描并分词,分得
ꢀ“
解绑”和“改密码”这两个词,由于这两个词同属于“业务类型”这一标签,因此,对“业务类型”这一标签下出现的专业术语的频数c统计为2个(即“解绑”和“改密码”两个词)。
35.完成分词并对分得的专业术语完成频数统计后,将每个专业术语保存到存储模块中,而将非专业术语过滤掉,然后,根据每个样本中的每条标签对应的频数c,构建起训练数据集对应的标签矩阵,标签矩阵中的每一行的数据构成例如表达如下:
样本 标签 词频;为了简化后续的模型训练复杂度,提高模型训练效率,优选地,设定在每条标签中出现的专业术语的频数c的值为0或1或2,即一条语料中的某个标签下出现的专业术语词个数要么为0个,要么为1个,要么为2个,不能大于2个,大于2个时,会增加分词以及统计词频的时间,对于后续的模型训练速度会产生影响。
36.完成对训练数据集的标签矩阵构建后,本实施例提供的多意图识别方法转入步骤:s3,基于标签矩阵构建模型训练的损失函数,该损失函数通过以下表达式(3)表达:表达式(3)中,表示损失函数;表示对第个样本的预测概率值;为第个样本的概率真实值;表示训练样本集中的第个标签;表示训练样本集中的标签数量;表示训练样本集中的样本数量;表示第个样本中的第个标签的词频。
37.当时,即第个样本中的第个标签下没有出现专业术语,则损失函数表达为:当时,即第个样本中的第个标签下出现一个专业术语,则损失函数表达为:对比表达式(4)和(5)可知,当标签下出现一个专业术语时,由于的值在0-1之间,则,因此表达式(5)计算的损失相比表达式(4)计算的损失有所减少;当时,即第个样本中的第个标签下出现两个专业术语,则损失函数表达为:
对比公式(6)和(5),,因此当标签下出现2个专业术语时,损失相比出现一个专业术语时会更小。对比表达式(4)-(6)可以发现,词频的介入能减小真实值与预测值之间的差异,该差异与词频的数量呈反比。
38.另外,表达式(4)-(6)中的该部分继承了交叉熵可导的特性,即模型做反向传播求导的时候,每一步都是可导的。另外,本发明使用adam优化器完成每一轮的模型权重的迭代更新。
39.完成损失函数的构建后,如图1所示,本实施例提供的多意图识别方法转入步骤:s4,以bert语言模型为预训练模型学习训练数据集的数据特征,目的是将保存在存储模块中的关联每个样本的每个专业术语转换为对应的词向量,并将各词向量融合形成为关联该样本的句向量后输出给textcnn模型,textcnn模型根据输入预测输出意图识别结果,并使用步骤s3构建的损失函数对模型参数进行优化后,最终训练形成融合bert语言模型和textcnn模型的多意图识别模型;多意图识别模型的结构以及训练多意图识别模型的原理框图请见图2。其中的bert语言模型分输入层、注意力机制层、前馈神经网络层和输出层。输入层用于输入训练数据,经注意力机制层学习分词的数据特征后,在传输给前馈神经网络层,注意力机制层与前馈神经网络层并行发生12次信息交互,最后由输出层输出融合了各分词特征的关联同个样本的句向量。由于bert语言模型识别分词特征并输出句向量的具体过程并非本发明要求权利保护的范围,因此不做具体说明。
40.如图2所示,textcnn模型包括嵌入层、卷积层、池化层、全连接层和输出层。嵌入层的作用是从bert语言模型的输出层获取输入数据(即句向量);卷积层为一维卷积层;池化层使用最大池化层,保证输入的具有不同长度的句向量统一为相同长度的句向量;全连接层,用于将池化层的输出拼接为一个一维向量;输出层则使用sigmoid激活函数,并使用上述的损失函数对模型进行优化,最终训练形成多意图识别模型。由于textcnn模型的具体训练过程并非本发明要求权利保护的范围,因此不做具体说明。
41.本发明通过以下方法评估所训练的多意图识别模型的性能:假设有个多意图的样本,为多意图识别模型对样本的预测值,为真实值,则通过以下公式(7)评估多意图识别模型的性能:公式(7)中,表示多意图识别模型的预测准确率。
42.完成对多意图识别模型的优化训练后,如图1所示,本实施例提供的多意图识别方法转入步骤:s5,将待进行意图识别的语料输入到完成训练的多意图识别模型中,模型输出意
图识别结果。如图3所示,待进行意图识别的语料比如为“宽带需要解绑,顺便改密码”,用户通过web服务端提供的输入界面输入该语料,输入语料后,web服务端调用完成训练的多意图识别模型进行意图识别,并输出多意图识别结果,分别为“宽带解绑”和“宽带改密码”,最后,web服务端将识别结果展示给用户。
43.需要强调的是,本发明提供的多意图识别方法的技术核心为:1、基于构建的专业术语分词库与获取的训练数据集构造标签矩阵,标签矩阵很好地利用了每个标签下包含的专业术语,让模型能够更好地学习这些专业术语的数据特征;2、根据标签矩阵,在损失函数中增加了每个标签下的专业术语的词频特征,损失函数结合标签矩阵提升了模型的学习能力,并加快了模型收敛,又保障了模型的可导与迭代优化,使得模型的训练效果更好。
44.本发明还提供了一种基于bert语言模型和textcnn模型的多意图识别系统,如图4所示,包括:专业术语分词库构建模块,用于构建多意图识别场景的专业术语分词库;标签矩阵构建模块,连接专业术语分词库构建模块,用于使用专业术语分词库对所获取的模型训练数据集中的每个样本进行逐条的标签扫描,并按扫描顺序依次统计每个样本中的每条标签出现专业术语的频数c,并将扫描到的每个专业术语保存到存储模块中,然后根据每个样本中的每条标签对应的频数c,构建起训练数据集对应的标签矩阵;损失函数构建模块,连接标签矩阵构建模块,用于基于标签矩阵构建模型训练的损失函数;模型训练模块,分别连接存储模块和损失函数构建模块,用于以bert语言模型为预训练模型学习训练数据集的数据特征,以将保存在存储模块中的关联每个样本的每个专业术语转换为对应的词向量,并将各词向量融合形成为关联样本的句向量后输出给textcnn模型,textcnn模型根据输入预测输出意图识别结果,并使用所构建的损失函数对模型参数进行优化后,最终训练形成融合bert语言模型和textcnn模型的多意图识别模型;多意图识别模块,连接模型训练模块,用于将待进行意图识别的语料输入到完成训练的多意图识别模型中,模型输出意图识别结果。
45.需要声明的是,上述具体实施方式仅仅为本发明的较佳实施例及所运用技术原理。本领域技术人员应该明白,还可以对本发明做各种修改、等同替换、变化等等。但是,这些变换只要未背离本发明的精神,都应在本发明的保护范围之内。另外,本技术说明书和权利要求书所使用的一些术语并不是限制,仅仅是为了便于描述。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1