CN112667788A - 一种新型的基于bertcontext的多轮对话自然语言理解模型 - Google Patents
一种新型的基于bertcontext的多轮对话自然语言理解模型 Download PDFInfo
- Publication number
- CN112667788A CN112667788A CN202011392427.2A CN202011392427A CN112667788A CN 112667788 A CN112667788 A CN 112667788A CN 202011392427 A CN202011392427 A CN 202011392427A CN 112667788 A CN112667788 A CN 112667788A
- Authority
- CN
- China
- Prior art keywords
- model
- task
- data
- classification
- tasks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Machine Translation (AREA)
Abstract
聊天机器人、智能客服如何实现准确的自然语言理解(NLU),是人机对话中的一个非常重要的部分,也是近年来研究的一个热点。多轮对话的自然语言理解不仅仅要关注当前对话的语义信息,还需要关注对话时的历史对话信息。在多任务进行自然语言理解模型比较有代表性的是MT‑DNN模型,该模型主要考虑了针对这一般性NLU任务,但是针对多轮对话下的自然语言理解没有涉及,如果将多轮对话按当前语句进行NLU任务会缺少语义信息,导致语义信息缺失和不完整。本发明设计一个新型的基于BERTCONTEXT的多轮对话自然语言理解模型。将历史对话信息融入到当前对话信息,新型的BERTXONTEXT模型在多轮对话效果下比MT‑DNN模型精确度提高了1.4个百分点。
Description
技术领域
本发明涉及自然语言处理领域,即一种用于多轮对话下的自然语言理解模型,基于BERT 的多任务算法。
背景技术
近年来,随着人工智能的火热,聊天机器人,智能客服也随之被广泛应用,其中如何获得准确语义信息,也即人工智能如何实现准确的自然语言理解(NLU),是人机对话中的一个非常重要的部分,也是近年来研究的一个热点。NLU涉及多项任务如:情感分析、意图识别、领域识别、命名实体识别等。现在比较流行的自然语言理解模型是用BERT来做各种不同任务的NLU,代表性的模型是多任务神经网络(MT-DNN)模型,MT-DNN基于BERT模型利用大量多个NLU任务来进行多任务训练,整体思路是利用BERT的预训练模型和多任务模型,将两者相结合提出了一个新的多任务深度神经网络来综合两种方法的优点。多任务学习之所以受青睐主要原因有两个,一是深层神经网络的学习需要大量特定任务的标记数据,这些数据在现实中并不是那么容易获得,多任务学习可以利用来自许多相关任务的监督数据,二是多任务学习通过受益与正则化效应,可以减轻特定任务的过度拟合。BERT语言模型,在纯文本上进行训练可以学习到通用语义信息,对于特定的NLU 任务用特定任务数据对模型进行微调,可以为一系列NLU任务创建很好的模型。MT_DNN 将两者结合起来,所有的NLU任务在BERT的编码层共享参数,对于BERT的顶层会将信息单独抽取出来用于不同的NLU任务。该方法在各项单句分类、文本分类、文本相似度等 NLU表现较好。此模型研究的NLU任务是针对当前的语句的,没有设计多轮对话的NLU,但是目前人机对话更多的情景是在进行多轮对话,多轮对话需要考虑对话的历史信息。我们知道,人类在进行多轮对话的时候,会根据之前的聊天信息在当前对话中省略或则用指示代词来代替具体信息,如果NLU只根据当前的语句信息,就会导致学习到的语义信息不
完整甚至是错误的,那么各项NLU任务的效果就会非常差。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的目的在于提出一种新型的基于BERTCONTEXT的多轮对话下的自然语言理解识别的分类模型,该模型将BERT模型训练加载的单任务数据,改成多个任务的数据,将原来只根据当前对话语句改成用将历史对话语句加上当前对话的语句,并且将每一个任务对应的损失函数由原来的交叉损失函数改为focal loss损失函数。改进后的模型在搭建的人机对话自然语言理解方向上的意图识别、领域识别两个任务的分类准确性和时间都有明显提高。本文提出的模型在CrossWOZ数据集上比原来的MT-DNN网络性能好。
为了实现上述目的,本发明的技术方案为:
一种新型的基BERTCONTEXT的多轮对话下的自然语言理解模型,包括如下步骤:
S1.将两个任务的数据通过loader加载器加载到模型中,假设为两个任务的数据分别为 D1,D2其中D1=[a1,a2,…an],D2=[b1,b2,…bm],其中ai(i=1,...,n)=[Ui1,Ri1,Ui2, Ri2,...]和bj(j=1,...n)=[Uj1,Rj1,Uj2,Rj2,...]分别表示一个多轮对话的完整轮次数据,其中Ui和Ri表示第i轮次数据的问句和答句,Ui问句是带有意图和领域标签的,输入 BERT两个任务的数据分别为D1=[Ui+[Ui-1,Ri-1]],D2=[Uj+[Uj-1,Rj-1]],总的输入为 D=[D1,D2]。
S2.数据输入到BERT模型分类需要将原始数据转换为数据的id,数据的类别label和掩码mask,多个任务和单个任务一样,分别将数据转为对映的id,label,mask,模型的输入的 total_id,total_label,total_mask是每一个任务id,label,mask的在size方向的连接,其中长度,选取最大的长度,剩余的长度不足的会补0.total_id=[id_a,id_b],total_label =[label_a,label_b],total_mask=[mask_a,mask_b];
S3.模型预训练阶段,在原有BERT模型单分类,根据数据的id改写为两个任务的分类, D[0-m]、D[m、m+n]分别是第一个任务、第二个任务的数据,经过同一个模型,共享得到的浅层网络的语义信息相同用Y表示,在进行分类的时候对每一个任务的语义信息单独拉出来进行分类任务的执行;
S4.将加载的历史文本信息context[Ui-1,Ri-1]通过BERT模型得到的语义信息c_o,会与当前对话Ui的语义信息s_o链接在一起来,拼接后的语义信息为Ch=[c1,1,…,c1,m+n]。
S5.其中用Ch[0-m]、Ch[m:]分别表示第一个任务、第二个任务的语义数据来分别进行两项任务的分类;在分类的模型中,为了平衡数据,我们将交叉熵损失函数改为focalloss 损失函数来进行分类,数据的输入为Ch[0-m]、Ch[m:]参数变量为Wn1,Wn2,则经过BERT的decoder层的softmax函数,得到每一个分类任务中的分类标签的概率数值P;
S7.对每一个任务中取最大的概率pi,其下标对应的意图为通过模型训练得到的意图;
S8.将真实的意图和模型推理得到的意图进行统计,计算每一个多分类任务的准确度 accuracy_i;
S9..按多个任务数据集的数量分配权重wi,每一个多分类任务的准确率乘权重wi,得到整个模型的分类准确率Accuracy。
与现有技术相比,本发明的有益效果是:
1)本发明提供的方法,在多轮对话的NLU任务中加入多任务和历史信息,通过对BERT 模型浅层网络实现共享,对历史信息的学习,在最后几层网络上分别做多项任务的分类,这样可以共享多个任务之间的语义信息,可以降低过拟合风险且对数据集较少的分类任务能够迁移学习得到较好的意图分类,提高多轮对话中意图识别的准确率,多个NLU任务同时进行也提高了模型响应效率和缩减推理时间,能在很大程度上提高用户的体验度。
2)本发明提供的方法,通过使用基于BERTCONTEXT的多轮对话下的NLU模型的改进,这种改进后的模型精确度在多轮对话中比原来的多任务神经网络模型有明显改善。
3)本发明提供的方法,可应用于人机智能对话系统下,在精确度方面有较大的改进提高,适用范围更广泛,能够更好地适用于实际工程工作中。
附图说明
图1根据本发明实施例的一种新型的基于BERTCONTEXT的多轮对话自然语言理解模型的流程
图2根据本发明一个实施例的传统多任务的结构示意图
图3根据本发明一个实施例的BERT的网络结构示意图
图4根据发明一个具体实施例的MT-DNN网络模型结构示意图
图5根据本发明一个具体实施例的一种新型基于基于BERTCONTEXT多轮对话自然语言理解模型的结构示意图
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
以下结合附图和实施例对本发明做进一步的阐述。
实施例1
图2是本发明的一个实施例基于参数共享的多任务的结构示意图,多个任务一起学习时,在学习的过程中对于其中一个任务来说,其他不相关部分的任务相当于噪声,而且加入噪声是可以提高模型的泛化能力。再进行不同的分类任务时,如果将多个分类任务看成相互独立的问题,每一个任务都要训练一个模型得到结果,然后再将这些结果相加在一起,这样做不仅计算时间复杂,而且分裂了各个任务之间的关系。多任务学习在所有任务中共享底层隐藏层参数,同时保留几个特定的任务的输出层来实现多任务。多任务学习涉及多个相关的任务同时并行学习,底层参数共享可以帮助学习提升泛化效果,并且模型推理的时候,可以将多个任务的结果同时呈现,缩短各项任务的响应时间。
图3是根据本发明的一个实施例的BERT的网络结构示意图。从图中可以看到,传统的BERT 模型的输入X是由三部分组成,位置编码(position embeddings)、部分编码(segement embeddings)以及词向量(tokenembeddings)。经过中间隐含状态层,其中隐状态层参数为 Wi,bi,得到语义向量,并最后通过线性结构和softmax函数得到输出的标签序列Y。涉及的公式有,其中p_e,s_e,t_e分别表示位置编码、部分编码和词的向量:
Y=p_e+s_e+t_e
Y=σ(XiWi+bi) (1)
图4是本发明的一个实施例的多任务神经网络(MT-DNN),MT-DNN是一个基于BERT和多任务的针对多想NLU的模型,从图中可以看出,MT-DNN主要分为两部分,第一部分是BERT 预训练的共享层,第二部分是特定任务层。共享层和BERT模型的是完全一致的,不同的是语句输入有多个任务的数据输入Xi而不是单一任务的数据。语句的输入,由位置编码、部分编码和词向量构成,然后进行编码得到语义的向量信息。在特定任务层不同的任务会根据不同的数据集Di从共享的语义信息中抽取特定的任务进行任务执行。基于多任务和BERT与训练的MT-DNN模型将多任务学习方法融合到BERT预训练模型中,使得多项NLU任务能够相互学习,获得更好的学习能力和泛化能力,且具有更高的准确率,刷新了多项NLU任务的识别准确率,是一个非常强大的模型。
图5是基于MT-DNN没有考虑多轮对话的情景,本文设计了一个针对多轮对话下的基于 BERTCONTEXT的MT-DNN模型,从图中可以看出,改进后的模型,将多轮对话的历史对话信息加入到模型中。
本发明提出的方法具体步骤如下:
a)将多个任务的当前语句D输入到BERT模型输入到词嵌入部分,得到由位置信息、部分信息、词向量编码的向量信息。其中每个任务的输入为Di,将多个任务的数据连接起来作为模型的输入同时输入到模型中。
其中,步骤a)的具体做法为:
D1和D2分别为两个任务的输入数据,每个数据集Di包含ni个训练样本,我们用Xi
b)将这些矩阵输入到BERT模型中,通过浅层共享参数进行编码得到语义信息S_O,改进后的网络将多轮对话中的历史信息也输入到BERT模型中,经过编码之后得到历史语义信息 C_O。然后将语义信息S_O和C_O连接起来,得到更深层次的语义理解信息。
其中b)的具体步骤为:
模型的输入矩阵D输入到BERT模型中,经过编码部分,得到多任务BERT编码信息的输
出,用公式表示如下:
hi=∑wj (3)
其中,hi表示BERT模型中第i层网络的第i时刻的隐藏状态,wj是经过softmax标准化的第j层网络权重系数,它在所有的任务之间共享,hi是整个BERT网络在第i时刻的输出。
BERT模型采用的是多头注意力,对每条信息分配三个权重Wq,Wk,Wv,多头注意力的公式为:
Q=L(hiWq)
K=L(hiWk)
V=L(hiWv)
head_i=L(Wq,Wk,Wv)
Multi_Attention=Concat(head_i)Wo (4)
其中L(·)表示线性变换函数,经过模型最后获得的语义向量表示为S_O,将对话的历史信息输入到BERT模型中得到的语义向量表示为C_O,将语义信息的向量矩阵S_O和C_O连接起来,用公式表示为:
其中H表示了融合了历史对话信息的语义信息。
c)根据不同的任务对与新信息进行特定的操作,本发明专利主要涉及两个不同的任务,分别是领域识别和意图识别,根据不同人物的任务数据量的大小,对应获得的语义信息分别进行NLU任务。
步骤c)涉及的具体做法为:
将H或得到的语义信息根据输入的D1,D2的数据量大小分别为m和n,然后分别获得两个任务的特定语义信息H1和H2,用公式表示为:
H1=H[0:m]
H2=H[m:m+n] (6)
d)特定任务的语义信息H1用来做领域识别,将H1通过线性函数和softmax获得领域识别的概率分布,对其中概率最大的数值将对应的标签取出,即可获得当前语句的对话具体领域,H2用来做意图识别,将H2通过线性函数和softmax获得意图识别的概率分布,对其中概率最大的数值将对应的标签取出,即可获得当前语句的具体意图。
步骤d)涉及的具体做法为:
其中Pi是由softmax函数获得的最大概率分布,将此概率对应的index的标签和真实的标签比较,用focal_loss损失函数来计算整个模型的损失。
实施例
本发明对上述改进的模型与MT-DNN模型在公开的中文数据集在CrossWOZ上比原来的 MT-DNN网络进行了精确度比较与分析实验,具体如下:
CrossWOZ数据集是一个中文大规模多领域任务导向对话数据集,含训练集、验证集和测试集三部分,数数据集一共包含6k个对话,102K个句子,涉及5个领域,其中训练集由5012个对话,验证集由500个对话,测试集有500个对话。每个对话都包括具体的语句文本信息、领域信息、意图填充槽信息,可以用来进行多任务的自自然语言理解。
在实验时,所使用的深度学习框架为tensorflow。新型的BERTCONTEXT模型使用的是BERT 语言模型训练好的词向量,在改进的BERTCONTEXT模型中,使用的BERT模型是基于中文的bert模型的参数,其中隐藏单元数为1536个。新型的BERTCONTEXT模型所有的可训练的参数均通过Adam算法的来进行更新。训练模型时,batch_size设置为20,每句对话的最大长度设置为60,最大的训练步数为40000,学习率设为3e-5。对于CrossWOZ数据集,每句问句都对应一个领域和一个具体的意图,所以对于CrossWOZ数据集,本实验采取F1 和Accuracy作为评价指标,实验结果如下表1。
表1新型的BERTCONTEXT多轮对话模型在CrossWOZ数据集上的实验结果
模型 | Accuracy | F1 |
MT-DNN模型 | 91.61 | 91.87 |
新型的BERTCONTEXT模型 | 93.02 | 93.21 |
从表1可以看出在CrossWOZ数据集上,本文所提出的改进的新型的基于BERTCONTEXT 模型在F1和Accuracy这两个评价指标上分别比MT-DNN模型提高了1.41和1.34个百分点;在测试集上的实验结果表明本发明针对历史对话信息加入到模型中对多轮对话效果确实起到了实际效果,证明了本发明的所设计模型的有效性。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的改变。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (1)
1.一种新型的基于BERTCONTEXT的自然语言理解模型,包括如下步骤:
S1.将两个任务的数据通过loader加载器加载到模型中,模型总的输入为D=[D1,D2]。
S2.数据输入到BERT模型分类需要将原始数据转换为数据的id,数据的类别label和掩码mask,多个任务和单个任务一样,分别将数据转为对映的id,label,mask,模型的输入的total_id,total_label,total_mask是每一个任务id,label,mask的在size方向的连接,其中长度,选取最大的长度,剩余的长度不足的会补0.total_id=[id_a,id_b],total_label=[label_a,label_b],total_mask=[mask_a,mask_b];
S3.模型预训练阶段,在原有BERT模型单分类,根据数据的id改写为两个任务的分类,D[0-m]、D[m、m+n]分别是第一个任务、第二个任务的数据,经过同一个模型,共享得到的浅层网络的语义信息相同用Y表示,在进行分类的时候对每一个任务的语义信息单独拉出来进行分类任务的执行;
S4.将加载的历史文本信息context[Ui-1,Ri-1]通过BERT模型得到的语义信息c_o,会与当前对话Ui的语义信息s_o链接在一起来,拼接后的语义信息为Ch=[c1,1,…,c1,m+n]。
S5.其中用Ch[0-m]、Ch[m:]分别表示第一个任务、第二个任务的语义数据来分别进行两项任务的分类;在分类的模型中,为了平衡数据,我们将交叉熵损失函数改为focal loss损失函数来进行分类,数据的输入为Ch[0-m]、Ch[m:]参数变量为Wn1,Wn2,则经过BERT的decoder层的softmax函数,得到每一个分类任务中的分类标签的概率数值P;
S7.对每一个任务中取最大的概率pi,其下标对应的意图为通过模型训练得到的意图;
S8.将真实的意图和模型推理得到的意图进行统计,计算每一个多分类任务的准确度accuracy_i;
S9.按多个任务数据集的数量分配权重wi,每一个多分类任务的准确率乘权重wi,得到整个模型的分类准确率Accuracy。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011392427.2A CN112667788A (zh) | 2020-12-02 | 2020-12-02 | 一种新型的基于bertcontext的多轮对话自然语言理解模型 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011392427.2A CN112667788A (zh) | 2020-12-02 | 2020-12-02 | 一种新型的基于bertcontext的多轮对话自然语言理解模型 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112667788A true CN112667788A (zh) | 2021-04-16 |
Family
ID=75400938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011392427.2A Pending CN112667788A (zh) | 2020-12-02 | 2020-12-02 | 一种新型的基于bertcontext的多轮对话自然语言理解模型 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112667788A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836919A (zh) * | 2021-09-30 | 2021-12-24 | 中国建筑第七工程局有限公司 | 一种基于迁移学习的建筑行业文本纠错方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291166A (zh) * | 2020-05-09 | 2020-06-16 | 支付宝(杭州)信息技术有限公司 | 基于Bert的语言模型的训练方法及装置 |
US20200372116A1 (en) * | 2019-05-21 | 2020-11-26 | Salesforce.Com, Inc. | Weakly Supervised Natural Language Localization Networks |
-
2020
- 2020-12-02 CN CN202011392427.2A patent/CN112667788A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200372116A1 (en) * | 2019-05-21 | 2020-11-26 | Salesforce.Com, Inc. | Weakly Supervised Natural Language Localization Networks |
CN111291166A (zh) * | 2020-05-09 | 2020-06-16 | 支付宝(杭州)信息技术有限公司 | 基于Bert的语言模型的训练方法及装置 |
Non-Patent Citations (1)
Title |
---|
周奇安等: "基于BERT的任务导向对话系统自然语言理解的改进模型与调优方法", 《中文信息学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836919A (zh) * | 2021-09-30 | 2021-12-24 | 中国建筑第七工程局有限公司 | 一种基于迁移学习的建筑行业文本纠错方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110781680B (zh) | 基于孪生网络和多头注意力机制的语义相似度匹配方法 | |
CN111274375B (zh) | 一种基于双向gru网络的多轮对话方法及系统 | |
CN112417894B (zh) | 一种基于多任务学习的对话意图识别方法及识别系统 | |
CN112800190B (zh) | 基于Bert模型的意图识别与槽值填充联合预测方法 | |
CN112115687A (zh) | 一种结合知识库中的三元组和实体类型的生成问题方法 | |
CN110543566B (zh) | 一种基于自注意力近邻关系编码的意图分类方法 | |
CN110532558A (zh) | 一种基于句子结构深层解析的多意图识别方法及系统 | |
CN114398976A (zh) | 基于bert与门控类注意力增强网络的机器阅读理解方法 | |
CN114490991A (zh) | 基于细粒度局部信息增强的对话结构感知对话方法及系统 | |
CN109308316B (zh) | 一种基于主题聚类的自适应对话生成系统 | |
Zhang et al. | Rich feature combination for cost-based broad learning system | |
CN111914553B (zh) | 一种基于机器学习的金融信息负面主体判定的方法 | |
CN115393933A (zh) | 一种基于帧注意力机制的视频人脸情绪识别方法 | |
CN115455985A (zh) | 一种基于机器阅读理解的自然语言系统的处理方法 | |
CN112667788A (zh) | 一种新型的基于bertcontext的多轮对话自然语言理解模型 | |
CN111522923B (zh) | 一种多轮任务式对话状态追踪方法 | |
Goutsu et al. | Linguistic descriptions of human motion with generative adversarial seq2seq learning | |
CN117648469A (zh) | 一种基于对比学习的交叉双塔结构答案选择方法 | |
CN112950414A (zh) | 一种基于解耦法律要素的法律文本表示方法 | |
Jin et al. | Improving deep belief networks via delta rule for sentiment classification | |
CN112463935A (zh) | 一种带有强泛化知识选择的开放域对话生成方法及模型 | |
CN111813907A (zh) | 一种自然语言问答技术中的问句意图识别方法 | |
CN113779244B (zh) | 文档情感分类方法、装置、存储介质以及电子设备 | |
CN115796029A (zh) | 基于显式及隐式特征解耦的nl2sql方法 | |
CN116403608A (zh) | 基于多标签纠正和时空协同融合的语音情感识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20220909 |
|
AD01 | Patent right deemed abandoned |