一种基于预训练模型的自然语言理解方法
阅读说明:本技术 一种基于预训练模型的自然语言理解方法 (Natural language understanding method based on pre-training model ) 是由 王春辉 胡勇 于 2019-09-24 设计创作,主要内容包括:本发明公开一种基于预训练模型的自然语言理解方法。所述方法包括:建立基于双向深度Transformer的预训练模型;对待理解语句进行分词处理,并在待理解语句的开始和结尾分别加入特殊标签,得到待理解语句的文本向量;以所述待理解语句的文本向量为输入,调用所述预训练模型,得到待理解语句的文本语义向量;进行意图识别;进行实体识别。本发明可以准确全面地理解意图、识别实体,为后续的对话提供坚实的基础;可以显著提高人机对话系统的质量和用户体验。(The invention discloses a natural language understanding method based on a pre-training model. The method comprises the following steps: establishing a pre-training model based on a bidirectional depth Transformer; performing word segmentation on the sentence to be understood, and adding special labels at the beginning and the end of the sentence to be understood respectively to obtain a text vector of the sentence to be understood; taking the text vector of the sentence to be understood as input, and calling the pre-training model to obtain the text semantic vector of the sentence to be understood; performing intention recognition; and carrying out entity identification. The invention can accurately and comprehensively understand the intention and identify the entity, and provides a solid foundation for subsequent conversation; the quality and the user experience of the man-machine conversation system can be obviously improved.)
技术领域
本发明属于自然语言理解技术领域,具体涉及一种基于预训练模型的自然语言理解方法。
背景技术
近年来,自然语言作为人类表达自己思想最为方便、自然的方式,己逐渐成为人机交互中最主流的方式。因自然语言的多样性、复杂性等特点,实现其准确地机器理解一直是人工智能领域中研究的热点和难点。
人机对话的第一步就是自然语言理解,只有准确全面地理解用户的语言,才能给出合理的回答。自然语言理解具体包括意图识别和实体识别两个任务。可通过建立预训练模型实现型意图识别和实体识别。传统的预训练模型一般基于双向长短期记忆网络,比如,在Matthew E.Peters等人发表在期刊《CoRR》(第abs/1802.05365卷)上的论文“Deepcontextualized word representations”提出的深度上下文语义表示模型就是基于双向长短期记忆网络。其存在问题是,如果堆叠多层,会使模型体积显著增大,模型训练的时间也会显著增加。所以,该架构下很难构建多层的网络结构,使得预训练模型无法捕获深层次的语义信息。
发明内容
为了解决现有技术中存在的上述问题,本发明提出一种基于预训练模型的自然语言理解方法,通过基于大规模语料建立预训练语言模型,在仅有少量训练样本的场景下能准确地进行意图识别及全面地进行实体识别。
为实现上述目的,本发明采用如下技术方案:
一种基于预训练模型的自然语言理解方法,包括以下步骤:
步骤1,建立基于双向深度Transformer的预训练模型,所述预训练模型的输入为一个句子经分词处理并在其开始和结尾分别加入特殊标签后得到的文本向量,输出为所述句子的文本语义向量;
步骤2,对待理解语句进行分词处理,并在待理解语句的开始和结尾分别加入所述特殊标签,得到待理解语句的文本向量;
步骤3,以所述待理解语句的文本向量为输入,调用所述预训练模型,得到待理解语句的文本语义向量;
步骤4,将所述待理解语句的文本语义向量输入第一多层感知机进行与意图相关的语义特征提取,并由softmax层计算待理解语句针对每个预置的意图类别的概率,概率最大的意图类别为待理解语句的意图类别;
步骤5,将所述待理解语句的文本语义向量输入第二多层感知机进行与实体相关的语义特征提取,然后送入双向长短期记忆网络(Long Short-Term Memory,LSTM)进行前向语义与后向语义的融合,最后由一个条件随机场分别计算待理解语句的每个单词取预置的每个实体类别时的概率P,P最大时的每个实体类别即为每个单词的实体类别,进而得到识别的实体类别。
与现有技术相比,本发明具有以下有益效果:
本发明通过建立基于双向深度Transformer的预训练模型,对待理解语句进行分词处理,并调用所述预训练模型,得到待理解语句的文本语义向量,进而进行意图识别和实体识别,可以准确全面地理解意图、识别实体,为后续的对话提供坚实的基础。可以显著提高人机对话系统的质量和用户体验。
附图说明
图1为本发明实施例一种基于预训练模型的自然语言理解方法的流程图;
图2为每层预训练模型的结构示意图;
图3为应用预训练模型进行意图识别和实体识别的一个流程示意图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
本发明实施例一种基于预训练模型的自然语言理解方法,流程图如图1所示,所述方法包括以下步骤:
S101、建立基于双向深度Transformer的预训练模型,所述预训练模型的输入为一个句子经分词处理并在其开始和结尾分别加入特殊标签后得到的文本向量,输出为所述句子的文本语义向量;
S102、对待理解语句进行分词处理,并在待理解语句的开始和结尾分别加入所述特殊标签,得到待理解语句的文本向量;
S103、以所述待理解语句的文本向量为输入,调用所述预训练模型,得到待理解语句的文本语义向量;
S104、将所述待理解语句的文本语义向量输入第一多层感知机进行与意图相关的语义特征提取,并由softmax层计算待理解语句针对每个预置的意图类别的概率,概率最大的意图类别为待理解语句的意图类别;
S105、将所述待理解语句的文本语义向量输入第二多层感知机进行与实体相关的语义特征提取,然后送入一个双向长短期记忆网络进行前向语义与后向语义的融合,最后由一个条件随机场分别计算待理解语句中每个单词取预置的每个实体类别时的概率P,P最大时的每个实体类别即为每个单词的实体类别,进而得到识别的实体类别。
在本实施例中,步骤S101主要用于构建预训练模型。本实施例的预训练模型是基于双向深度Transformer结构,预训练模型的输入是经分词处理后的句子文本向量,而且是在句子的开始和结尾分别加入了特殊标签(如[CLS]和[SEP])后得到的文本向量(每个单词或汉字用其ID表示)。参见后面的表1。预训练模型的输出是表示输入句子文本语义的多维向量。由于所述预训练模型采用双向深度Transformer结构,句子中的每个单词都可以跟句子中的其他单词都产生交互,因此在句子开头加入的特殊标签可以认为是整个输入句子的表示。
在本实施例中,步骤S102主要用于对待理解语句进行分词处理,并在待理解语句的开始和结尾分别加入步骤S101所述的特殊标签。对于英文,分词处理是单词级别的,即按照空格进行分割;对于中文,分词处理是汉字级别的,即按照单个汉字进行分割,如“我在北京工作”的分割结果为:“我”,“在”,“北”,“京”,“工”,“作”。
在本实施例中,步骤S103主要用于得到待理解语句的文本语义向量。方法是:以步骤S102得到待理解语句的文本向量为输入,调用预训练模型,预训练模型的输出即为待理解语句的文本语义向量。
在本实施例中,步骤S104主要用于对待理解语句进行意图识别。意图识别的任务是识别出输入句子是针对哪个预先设置的场景,其本质是一个文本分类的任务。意图识别由意图识别网络实现,意图识别网络包括第一多层感知机和一个softmax层,参见图3。首先,将所述待理解语句的文本语义向量X输入第一多层感知机进行与意图相关的语义特征提取。第一多层感知机可采用如下的激励函数:
relu(x)=max(0,x)
然后,将第一多层感知机的输出送入softmax层中,计算待理解语句针对每个预置的意图类别的概率p,计算公式如下:#
p=softmax(relu(WX+b))
其中,W为由第一多层感知机输入量的权重组成的向量,b为阈值。#
预置的意图类别是针对具体的应用场景预先设定的意图类别。比如,一个任务型对话的场景,可预置发通知、打开聊和校内问答等意图类别。计算完待理解语句针对每个预置的意图类别的概率后,取概率最大的意图类别作为待理解语句的意图类别。
在本实施例中,步骤S105主要用于对待理解语句进行实体识别。实体识别的任务是识别出输入句子中的实体名称。比如,输入一个句子“我在北京工作”,在识别前先定义一些实体种类,如人名、地名。经识别“北京”就是一个地名类的实体名称。因此,实体识别本质上是一个序列标注的任务。实体识别由实体识别网络实现,实体识别网络包括第二多层感知机、一个双向长短期记忆网络和一个条件随机场,可参见图3。首先,将所述待理解语句的文本语义向量输入第二多层感知机进行与实体相关的语义特征提取。然后,将第二多层感知机的输出送入双向长短期记忆网络,进行前向语义与后向语义的融合。将一句话的单词表示X送入前向LSTM网络可表示为
(如“我在北京”),送入后向LSTM网络可表示为(如“京北在我”),进行前向语义与后向语义融合可表示为最后,将双向长短期记忆网络的输出送入条件随机场,计算待理解语句的每个单词取每个预置的实体类别时的概率,概率最大时每个实体类别就是每个单词对应的实体类别,在此基础上得到最后识别的实体类别,可参见表2。作为一种可选实施例,所述预训练模型是在整个中文***语料上进行预训练得到的。
本实施例对预训练模型的训练样本进行了限定。本实施例的预训练模型是在整个中文***语料上进行语言模型的预训练得到的。中文***语料包含1,043,224个维基词条,总大小为1.6G。在整个中文***语料上进行语言模型的预训练,可以得到语义丰富且鲁棒性好的预训练模型。
作为一种可选实施例,所述预训练模型由12层Transformer结构堆叠而成,每层由一个自注意力网络和一个通过残差网络、层归一化网络连接的前向传播网络组成,每层输出768维的向量。
本实施例对所述预训练模型的结构进行了进一步限定。所述预训练模型为12层Transformer结构,每层的结构如图2所示,包括一个自注意力网络和一个前向传播网络,自注意力网络和前向传播网络之间通过残差网络、层归一化网络连接,每层输出768维的向量。通过残差网络可以构建深度的网络,从而有效捕捉深度的语义信息。传统的注意力网络的输入包括Q(Query)、K(Key)和V(Value)三个矩阵,分别表示注意力网络的查询、键和值。而自注意力网络中Q、K和V均来自同一输入,即用单词表示的句子向量X。这里就是指句子中每个单词的表示。注意力网络和自的注意力网络计算公式分别为:
式中,d为X的维度,本实施例中d=768。通过运算
句子中的每个单词都可以跟整个句子中的其他单词都产生交互。作为一种可选实施例,所述步骤3提取预训练模型最后4层网络的结果,并把结果相拼接,获得每个单词768×4=3072维度的表示。
本实施例中,为了获得更丰富的语义表示信息,将预训练模型的最后4层拼接,也就是将4个维度为768的向量首尾相连,可获得每个单词768×4=3072维度的表示。
作为一种可选实施例,在句子开始和结尾加入的特殊标签分别为[CLS]和[SEP]。
本实施例给出了一种具体的特殊标签。也就是在句子开始加入特殊标签[CLS],在句子结尾加入特殊标签[SEP]。本实施例只是给出一种较佳的实施方式,并不排斥或限制其它可行的特殊标签。
作为一种可选实施例,如果待理解语句中的某个单词不在用于预训练的预置词表中,在所述单词前标注特殊标签[UNK]。
本实施例给出了当待理解语句中的某个单词不在预置词表中时所述单词的标注方法,即在在所述单词前标注特殊标签[UNK]。预置词表就是对预训练模型进行预训练时的训练样本集。同样,本实施例只是给出一种较佳的实施方式,并不排斥或限制[UNK]以外的其它可行的特殊标签。
作为一种可选实施例,步骤S105所述概率P的计算公式如下:
式中,A(yi+1|yi)表示分词后待理解语句的第i个单词的实体类别为yi时第i+1个单词的实体类别为yi+1的概率,pi(yi)表示第i个单词的实体类别为yi的概率,n为分词后待理解语句的单词数量。
为了更好地理解本发明的技术方案,下面给出一个应用建立的预训练模型对待理解语句进行意图识别和实体识别的实例。
一个任务型对话场景,预设置有3个意图:发通知,打开聊天,校内问答;预设置4个实体:联系人,事件,时间,问题。
待理解语句为:“给全班家长发个通知,周六将召开运动会”。
第一步,对待理解语句进行分词。如果每个字都在预置词表中,分词结果直接就是这个字本身;如果某个字不在预置词表中,用[UNK]进行标识。由于这句话中每个字都在词表中,所以分词结果全是字的本身。最后在这句话的开头加上特殊标识[CLS],句子的结尾加上特殊标识[SEP]。最后的分词结果如表1。
表1分词结果
[CLS]
给
全
班
家
长
发
个
通
知
,
周
六
将
召
开
运
动
会
[SEP]
第二步,调用预训练模型进行语义特征抽取。以上一步的分词结果为输入,调用预训练模型进行语义特征抽取。预训练模型为12层的transformer网络,通过所述网络,这句话中的每个单词都会与句子中的其他单词产生交互,提取最后4层网络的结果,并把结果相拼接,获得每个单词3072维度的表示。
第三步,进行意图识别。将上一步的结果送入意图识别网络,如图3。首先通过第一多层感知机进行特征的再抽取,然后送入softmax网络中获得每个意图的概率分布。“发通知”这个意图的概率最高,因此,输出识别的意图为“发通知”。
第四步,进行实体识别。将第二步的结果送入实体识别网络,如图3。首先通过第二多层感知机对特征进行再次的抽取,然后送入双向长短期记忆网络对序列特征进行再次的抽取,最后送入条件随机场,计算每个字取每个预置的实体类别时的概率,概率最大时的每个实体类别即为每个字对应的实体类别。结果如表2所示。所以,最后输出识别的实体为:联系人:全部;时间:周六;事件:运动会。
表2 实体识别结果
[CLS]
给
全
班
家
长
发
个
通
知
其他
其他
联系人
联系人
其他
其他
其他
其他
其他
其他
,
周
六
将
召
开
运
动
会
[SEP]
其他
时间
时间
其他
其他
其他
事件
事件
事件
其他
上述仅对本发明中的几种具体实施例加以说明,但并不能作为本发明的保护范围,凡是依据本发明中的设计精神所做出的等效变化或修饰或等比例放大或缩小等,均应认为落入本发明的保护范围。