意图理解方法、装置、设备和介质与流程

未命名 09-17 阅读:90 评论:0


1.本公开涉及人工智能领域,更具体地,涉及一种意图理解方法、装置、设备、介质和程序产品。


背景技术:

2.近年来,自然语言处理和语音识别方面的技术进步,促进了聊天对话系统(例如:siri或alexa等)的不断繁荣。在对话系统中,机器需对用户语句进行解析和理解,尤其需确定用户所表达的意图。例如:“给xxx手机号充值100元话费”识别出意图“充话费”。
3.对于对话系统而言,如何有效从对话人的语句中识别已知意图和发现新意图是至关重要的。然而,在实现本公开发明构思的过程中,发明人发现,现有的意图理解模型难以准确识别已知意图和发现新意图。


技术实现要素:

4.鉴于上述问题,本公开提供了一种意图理解方法、装置、设备、介质和程序产品。
5.本公开实施例的一个方面,提供了一种意图理解方法,包括:响应于用户输入的对话信息,将所述对话信息输入经训练的意图理解模型;基于所述意图理解模型输出的预测意图,向所述用户返回答复结果,其中,所述答复结果包括与所述预测意图中目标领域相关联的信息;其中,所述意图理解模型被配置为预先通过如下操作训练获得:基于有标签的外部样本数据和无标签的内部样本数据,对待训练的所述意图理解模型进行第一阶段预训练;基于有标签的内部样本数据和无标签的内部样本数据,对经第一阶段预训练的所述意图理解模型进行第二阶段预训练,其中,所述内部样本数据来自所述目标领域的历史数据,所述外部样本数据来自所述目标领域之外的其他历史数据。
6.根据本公开的实施例,所述意图理解模型还被配置为预先通过如下操作训练获得:基于所述目标领域的历史数据,获得意图理解样本数据,其中,所述意图理解样本数据与所述内部样本数据相同或不同;利用经第二阶段预训练的所述意图理解模型处理所述意图理解样本数据,获得所述意图理解样本数据的表示向量;基于所述意图理解样本数据的表示向量,进行近邻对比学习,获得经训练的所述意图理解模型,其中,所述近邻对比学习用于根据所述意图理解样本数据中样本问的近邻关系进行对比学习。
7.根据本公开的实施例,所述意图理解样本数据包括n个意图理解样本,n为大于或等于2的整数,所述基于所述意图理解样本数据的表示向量,进行近邻对比学习包括:从所述n个意图理解样本中确定m个意图理解样本,作为m个锚点,m为大于或等于1的整数,m小于或等于n;基于所述m个锚点中各锚点的表示向量进行聚类操作,构造m个邻接矩阵,其中,所述聚类操作包括基于每个锚点与其他任一样本之间的近邻关系进行聚类;基于所述m个邻接矩阵进行近邻对比学习。
8.根据本公开的实施例,在近邻对比学习结束后,确定最终的所述m个邻接矩阵;在将所述对话信息输入经训练的意图理解模型之后,所述方法还包括:利用经训练的所述意
图理解模型处理所述对话信息,得到所述对话信息的表示向量;基于所述对话信息的表示向量和最终的所述m个邻接矩阵,获得所述预测意图。
9.根据本公开的实施例,所述基于所述目标领域的历史数据,获得意图理解样本数据包括:从所述目标领域的历史数据中确定第一意图理解样本;基于所述第一意图理解样本,从所述目标领域的历史数据中确定第二意图理解样本,其中,所述第一意图理解样本与所述第二意图理解样本之间的相似度大于或等于预设阈值;对所述第一意图理解样本进行数据增强得到第三意图理解样本,以及对所述第二意图理解样本进行数据增强得到第四意图理解样本;其中,所述意图理解样本数据包括所述第一意图理解样本、所述第二意图理解样本、所述第三意图理解样本与所述第四意图理解样本中至少一个。
10.根据本公开的实施例,所述基于所述第一意图理解样本,从所述目标领域的历史数据中确定第二意图理解样本包括:利用经第二阶段预训练的所述意图理解模型处理所述目标领域的历史数据中各个样本,获得各个样本的表示向量;计算所述第一意图理解样本的表示向量与其他样本的表示向量之间的相似度,其中,所述其他样本包括所述目标领域的历史数据中的任一样本;基于计算得到的相似度结果,确定所述第二意图理解样本。
11.根据本公开的实施例,所述对待训练的所述意图理解模型进行第一阶段预训练包括:将所述有标签的外部样本数据和所述无标签的内部样本数据输入到待训练的所述意图理解模型;基于待训练的所述意图理解模型对所述有标签的外部样本数据的预测结果,得到第一损失函数值;基于待训练的所述意图理解模型对所述无标签的内部样本数据的预测结果,得到第二损失函数值,其中,所述第一损失函数值与所述第二损失函数值经由不同的损失函数得到;根据所述第一损失函数值和所述第二损失函数值,更新待训练的所述意图理解模型的模型参数。
12.根据本公开的实施例,所述对经第一阶段预训练的所述意图理解模型进行第二阶段预训练包括:将所述有标签的内部样本数据和所述无标签的内部样本数据输入到经第一阶段预训练的所述意图理解模型;基于经第一阶段预训练的所述意图理解模型对所述有标签的内部样本数据的预测结果,得到第三损失函数值;基于经第一阶段预训练的所述意图理解模型对所述无标签的内部样本数据的预测结果,得到第四损失函数值,其中,所述第三损失函数值与所述第四损失函数值经由不同的损失函数得到;根据所述第三损失函数值和所述第四损失函数值,更新经第一阶段预训练的所述意图理解模型的模型参数。
13.本公开实施例的另一方面提供了一种意图理解装置,包括:输入模块,用于响应于用户输入的对话信息,将所述对话信息输入经训练的意图理解模型;答复模块,用于基于所述意图理解模型输出的预测意图,向所述用户返回答复结果,其中,所述答复结果包括与所述预测意图中目标领域相关联的信息;其中,所述意图理解模型被配置为预先通过如下操作训练获得:基于有标签的外部样本数据和无标签的内部样本数据,对待训练的所述意图理解模型进行第一阶段预训练;基于有标签的内部样本数据和无标签的内部样本数据,对经第一阶段预训练的所述意图理解模型进行第二阶段预训练,其中,所述内部样本数据来自所述目标领域的历史数据,所述外部样本数据来自所述目标领域之外的其他历史数据。
14.所述装置包括分别用于执行如上所述任意一项所述的方法的各个步骤的模块。
15.本公开实施例的另一方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行
时,使得一个或多个处理器执行如上所述的方法。
16.本公开实施例的另一方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
17.本公开实施例的另一方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的方法。
18.上述一个或多个实施例具有如下有益效果:提供了外部样本数据和内部样本数据联合参与学习的预训练策略。在第一阶段预训练中,通过有标签的外部样本数据学习意图识别的一般知识,通过无标签的内部样本数据学习目标领域中的语言特性和分布。在第二阶段预训练中,利用目标领域内部历史数据中较为稀缺的有标签数据与无标签数据的自监督任务联合训练,使得模型对于文本的表示能力可以从有标签样本迁移到无标签样本中,进而可使模型对新意图的文本也能输出较为优质的表示向量。能够响应于用户输入的对话信息,提升对用户对话信息的特征表示能力,返回准确的预测结果和答复结果。
附图说明
19.通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
20.图1示意性示出了根据本公开实施例的意图理解方法的应用场景图;
21.图2示意性示出了根据本公开实施例的意图理解方法的流程图;
22.图3示意性示出了根据本公开实施例的意图理解模型的训练方法的流程图;
23.图4示意性示出了根据本公开实施例的第一阶段预训练的流程图;
24.图5示意性示出了根据本公开实施例的第二阶段预训练的流程图;
25.图6示意性示出了根据本公开实施例的近邻对比学习的流程图;
26.图7示意性示出了根据本公开实施例的意图理解模型的训练方法的架构图;
27.图8示意性示出了根据本公开实施例的bert模型的架构图;
28.图9示意性示出了根据本公开实施例的近邻对比学习的示意图;
29.图10示意性示出了根据本公开另一实施例的近邻对比学习的流程图;
30.图11示意性示出了根据本公开实施例的获得意图理解样本数据的流程图;
31.图12示意性示出了根据本公开实施例的确定第二意图理解样本的流程图;
32.图13示意性示出了根据本公开实施例的意图识别装置的结构框图;
33.图14示意性示出了根据本公开实施例的意图识别模型的训练装置的结构框图;以及
34.图15示意性示出了根据本公开实施例的适于实现意图理解方法的电子设备的方框图。
具体实施方式
35.以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免
不必要地混淆本公开的概念。
36.在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
37.在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
38.在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。
39.一般来说,意图识别和意图发现可通过对句子提取文本特征,并对特征聚类来实现。针对意图识别和发现,主要有两大关注点:一是怎么表征好一个句子。二是怎么更好的聚类。
40.1、句子表征:目前句子表征学习方法通常依赖于大量的标记话语,并采用伪标记方法进行表示学习。此方法严重受限于伪标记的质量,一旦伪标记有问题,极大程度会导致模型识别不准确。
41.2、聚类方法:聚类旨在将整个数据集分成不同的簇,且使簇与簇之间的区别尽可能大,而簇内数据的差异尽可能小,使用最广泛的是k-means算法。但现有算法亟需良好的句子表征以进行聚类。
42.本公开的实施例提供了一种意图理解方法,提供了外部样本数据和内部样本数据联合参与学习的预训练策略。在第一阶段预训练中,通过有标签的外部样本数据学习意图识别的一般知识,通过无标签的内部样本数据学习目标领域中的语言特性和分布。在第二阶段预训练中,利用目标领域内部历史数据中较为稀缺的有标签数据与无标签数据的自监督任务联合训练,使得模型对于文本的表示能力可以从有标签样本迁移到无标签样本中,进而可使模型对新意图的文本也能输出较为优质的表示向量。能够响应于用户输入的对话信息,提升对用户对话信息的特征表示能力,返回准确的预测结果和答复结果。
43.图1示意性示出了根据本公开实施例的意图理解方法的应用场景图。需要注意的是,图1所示仅为可以应用本公开实施例的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
44.如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
45.用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
46.终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
47.服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103
所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
48.服务器105可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或分布式系统,还可以是提供云服务、云计算、网络服务、中间件服务等基础云计算服务的云服务器。
49.在终端设备101、102、103安装的诸如客户端应用程序、web应用程序等应用程序(英文缩写为app)中,客户端(即前端)与服务器端(即后端)可以通过网络报文进行数据通信,例如,即在app客户端中,将服务器端需要从客户端获取的参数进行组装,调用网络请求方法向服务器端发送。具体而言,在具有对话功能的app中,用户可以在客户端输入问题、指示或其他内容,客户端将用户输入的对话信息进行解析,并调用网络请求方法向服务器端发送。
50.可以理解,本公开实施例所提供的意图理解方法一般可以由服务器105执行。相应地,本公开实施例所提供的意图理解装置一般可以设置于服务器105中。本公开实施例所提供的意图理解方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的意图理解装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
51.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
52.以下将基于图l描述的场景,通过图2~图11对本公开实施例的意图理解方法进行详细描述。
53.图2示意性示出了根据本公开实施例的意图理解方法的流程图。如图2所示,该实施例的意图理解方法包括:
54.在操作s210,响应于用户输入的对话信息,将对话信息输入经训练的意图理解模型。
55.例如,在手机银行的智能客服页面,用户输入的对话信息包括“我想查余额”,“请问银行的房贷利率为多少?”,或“我信用卡额度现在为多少?”等。意图理解模型可以基于机器学习算法构建,并预先训练获得。
56.在操作s220,基于意图理解模型输出的预测意图,向用户返回答复结果,其中,答复结果包括与预测意图中目标领域相关联的信息。
57.例如上述对话信息中,预测意图可以分别为查询余额、查询房贷利率和查询信用卡额度,答复结果则为具体的余额结果、房贷利率结果和信用卡额度结果。目标领域可以为金融领域。
58.尤其说明,基于对话进行意图理解可以分为不同的领域,比如金融领域、电商领域、车载导航领域、智能家居领域等。可以理解的是,上述领域划分方式只是作为一种示例,也可以采用其他的领域划分方式,比如,分为天气领域、音乐领域、电影领域等。
59.进一步地,还可以在特定领域中进一步划分到具体业务,例如金融领域的理财业务、借贷业务或其他业务等。答复结果还可以包括与预测意图中目标业务相关联的信息。目
标领域和目标业务的确定,可以基于用户的查询入口、智能客服页面等信息确定,也可以通过意图理解模型自动化确定。下述以目标业务场景举例说明模型训练过程。
60.在一些实施例中,意图理解模型被配置为预先通过如下图3~图9的任一个实施例示出的操作训练获得。
61.图3示意性示出了根据本公开实施例的意图理解模型的训练方法的流程图。如图3所示,该实施例的意图理解模型的训练方法包括:
62.在操作s310,基于有标签的外部样本数据和无标签的内部样本数据,对待训练的意图理解模型进行第一阶段预训练。
63.例如,为了让意图理解模型预先学习意图识别的能力,可使用基础的bert模型在外部数据集上(如同为银行领域的banking中文数据集)进行意图识别这一有监督任务的预训练。
64.进而,在意图理解模型掌握意图识别能力的同时,为了使意图理解模型对于目标业务场景输入文本的分布进行熟悉,避免模型参数偏移到外部数据的分布上,故在预训练的过程中加入目标业务场景的内部样本数据进行掩码语言模型(mask language model)的自监督任务学习。外部数据的有监督任务(需要标签)和内部所有数据自监督任务(无需标签)同时进行学习,使模型在掌握外部知识的同时,还能对于内部所有数据的语言特性和分布进行初步的学习。
65.外部样本数据或内部样本数据包括通过预设采集手段(例如,从网页中进行合法爬取、从人机交互设备存储的目标语言下用户历史语句中进行读取等手段)获取到的特定领域或特定业务的历史语言语句。需要说明的是,预设采集手段可以预先设定,而且本公开实施例不限定预设采集手段。
66.在操作s320,基于有标签的内部样本数据和无标签的内部样本数据,对经第一阶段预训练的意图理解模型进行第二阶段预训练,其中,内部样本数据来自目标领域的历史数据,外部样本数据来自目标领域之外的其他历史数据。
67.在经第一阶段预训练的意图理解模型初步掌握意图识别能力和熟悉内部数据分布后,将目标领域下目标业务场景中的有标签数据和无标签数据进行联合训练。
68.目标业务场景中的有标签数据和无标签数据分别用于意图识别任务和掩码语言模型任务。此步骤通过学习内部数据的意图识别任务,可有效的利用业务内部数据中较为稀缺的有标签数据与无标签数据的自监督任务联合训练,使得模型对于文本的表示能力可以从有标签样本迁移到无标签样本中,进而可使模型对新意图的文本也能输出较为优质的表示向量。
69.根据本公开的实施例,采用外部样本数据和内部样本数据联合的多任务预训练技术,以获取优秀的话语表示,具有较强的意图识别能力。第一阶段预训练中,识别任务的目的是通过外部意图数据集中的有标记话语学习意图识别的一般知识,而自监督任务则是通过领域内收集的话语学习特定领域的语义。第二阶段预训练中,减少内部样本数据的标注成本,并能够将经由外部样本数据得到的表示能力迁移到目标业务场景中。
70.图4示意性示出了根据本公开实施例的第一阶段预训练的流程图。如图4所示,该实施例是操作s310的其中一个实施例,包括:
71.在操作s410,将有标签的外部样本数据和无标签的内部样本数据输入到待训练的
意图理解模型。
72.在操作s420,基于待训练的意图理解模型对有标签的外部样本数据的预测结果,得到第一损失函数值。
73.示例性地,参照下述图7,在操作s420执行意图识别任务的训练。其中预测结果包括对有标签的外部样本数据中每个样本的预测意图,与每个样本的意图标签经由交叉熵损失计算得到第一损失函数值。可以理解,交叉熵损失仅为示例,还可以选择平均损失、均方误差损失等,本公开实施例不进行限定。
74.在操作s430,基于待训练的意图理解模型对无标签的内部样本数据的预测结果,得到第二损失函数值,其中,第一损失函数值与第二损失函数值经由不同的损失函数得到。
75.示例性地,参照下述图7,在操作s430执行掩码语言任务的训练。其中预测结果包括对无标签的内部样本数据中每个样本的预测意图,与每个样本的意图标签经由掩码语言模型损失计算得到第二损失函数值。例如,可以选择现有的或未来将要公开的损失函数,用于计算掩码语言模型损失。
76.在操作s440,根据第一损失函数值和第二损失函数值,更新待训练的意图理解模型的模型参数。例如根据第一损失函数值和第二损失函数值更新意图理解模型,并继续执行训练步骤,直至达到预设停止条件。
77.示例性地,可以将第一损失函数值和第二损失函数值直接求和,根据求和结果更新模型参数。还可以给第一损失函数值和第二损失函数值各自配置权重参数,第一损失函数值和第二损失函数值各自与其权重参数相乘,乘积结果再求和,根据求和结果更新模型参数。
78.本实施例中,在第一阶段预训练时,采用多任务训练方式进行,多任务包括上述的意图识别任务和用于使模型熟悉内部数据分布的掩码语言任务,能够提高模型针对目标业务场景的意图识别能力和对话表示能力。
79.需要说明的是,虽然以先后顺序描述了操作s410~操作s440,但是并意味着是对实际执行顺序的限定,例如操作s420和操作s430可以同时执行,操作s420还可以在操作s430之后执行。
80.图5示意性示出了根据本公开实施例的第二阶段预训练的流程图。如图5所示,该实施例是操作s320的其中一个实施例,包括:
81.在操作s510,将有标签的内部样本数据和无标签的内部样本数据输入到经第一阶段预训练的意图理解模型。
82.在操作s520,基于经第一阶段预训练的意图理解模型对有标签的内部样本数据的预测结果,得到第三损失函数值。
83.示例性地,参照下述图7,在操作s520执行意图识别任务的训练。其中预测结果包括对内部有标签数据中每个样本的预测意图,并与每个样本的意图标签经由交叉熵损失计算得到第三损失函数值。可以理解,交叉熵损失仅为示例,还可以选择平均损失、均方误差损失等,本公开实施例不进行限定。
84.在操作s530,基于经第一阶段预训练的意图理解模型对无标签的内部样本数据的预测结果,得到第四损失函数值,其中,第三损失函数值与第四损失函数值经由不同的损失函数得到。
85.示例性地,参照下述图7,在操作s530执行掩码语言任务的训练。其中预测结果包括对内部无标签数据中每个样本的预测意图,与每个样本的意图标签经由掩码语言模型损失计算得到第四损失函数值。例如,可以选择现有的或未来将要公开的损失函数,用于计算掩码语言模型损失。
86.在操作s540,根据第三损失函数值和第四损失函数值,更新经第一阶段预训练的意图理解模型的模型参数。例如根据第三损失函数值和第四损失函数值更新意图理解模型,并继续执行训练步骤,直至达到预设停止条件。
87.示例性地,可以将第三损失函数值和第四损失函数值直接求和,根据求和结果更新模型参数。还可以给第三损失函数值和第四损失函数值各自配置权重参数,第三损失函数值和第四损失函数值各自与其权重参数相乘,乘积结果再求和,根据求和结果更新模型参数。
88.本实施例中,在第二阶段预训练时,同样采用多任务训练方式进行,多任务包括上述的意图识别任务和掩码语言任务,能够减少内部样本数据的标注成本,并能够将经由外部样本数据得到的表示能力迁移到目标业务场景中,强化学习目标业务场景中的语义。
89.需要说明的是,虽然以先后顺序描述了操作s510~操作s550,但是并意味着是对实际执行顺序的限定,例如操作s520和操作s530可以同时执行,操作s520还可以在操作s530之后执行。
90.图6示意性示出了根据本公开实施例的近邻对比学习的流程图。如图6所示,该实施例的近邻对比学习包括:
91.在操作s610,基于目标领域的历史数据,获得意图理解样本数据,其中,意图理解样本数据与内部样本数据相同或不同。
92.可以理解,目标领域的历史数据可以是多个业务的数据,也可以来自具体某个目标业务的数据(如目标业务场景中的历史数据),可以通过预设采集手段获取到。可以直接采用第一阶段预训练和第二阶段预训练时的内部样本数据,也可以重新采集新的内部样本数据。意图理解样本数据包括有标签的内部样本数据和无标签的内部样本数据。
93.在操作s620,利用经第二阶段预训练的意图理解模型处理意图理解样本数据,获得意图理解样本数据的表示向量。
94.在本技术实施例中,意图理解样本数据的表示向量指用于表征其语义特征的数学表示,例如其以特征向量形式被映射特定表示空间里。经由第二阶段预训练的意图理解模型具有良好的表示能力,基于该模型获得的表示向量可为后续聚类任务提供良好基础,提高聚类准确性。
95.在操作s630,基于意图理解样本数据的表示向量,进行近邻对比学习,获得经训练的意图理解模型,其中,近邻对比学习用于根据意图理解样本数据中样本间的近邻关系进行对比学习。
96.示例性地,为有效学习用于聚类的紧凑表示,提出了近邻对比学习,用于聚集近邻的实例,推开远处的实例。
97.根据本公开的实施例,通过在对比学习中引入近邻关系的概念,可将相似的实例拉近,将不相似的实例推远,进而得到更紧凑的聚类。并直接在特征空间中进行聚类操作和优化,更有利于不同意图之间的区分,以及类似或相同意图之间的发现。
98.图7示意性示出了根据本公开实施例的意图理解模型的训练方法的架构图。图8示意性示出了根据本公开实施例的bert模型的架构图。
99.参照图2~图7,为有效识别已知意图并发现未知意图,提供了一个两阶段框架,即基于半监督数据的多任务预训练框架和基于近邻关系的对比学习算法。本公开实施例的意图理解模型的训练方法包括两阶段,一是多任务预训练阶段。二是近邻对比学习阶段。多任务预训练阶段还包括两个子阶段,即第一阶段预训练和第二阶段预训练。在训练完成后可以在测试集对模型测试。
100.例如,对于多任务预训练阶段,通过使用大规模中文语料上预训练的bert类语言模型作为基础架构,并利用外部有标签数据、目标业务场景中的无标签数据联合继续进行第一阶段预训练,利用目标业务场景中的无标签数据和有标签数据联合继续进行第二阶段预训练,起到微调的作用。例如,对于近邻对比学习阶段,利用无标记数据中的自我监督信号进行聚类,以拉进相似样本和推远不相关样本。
101.基于图7所示的架构,利用外部和内部数据进行表示学习的多任务预训练策略,对预训练语言模型进行优化,以学习用于已知意图和新意图发现任务的特定文本表示,并进一步为后续聚类打下基础。为提升聚类的紧凑度,提出了一种近邻对比学习算法以产生紧凑的聚类,从而最大化不同意图之间的一致性,最小化同一意图不同语句之间的一致性。
102.图7中外部有标签数据指的是有标签的外部样本数据,内部无标签数据指的是无标签的内部样本数据,内部有标签数据指的是有标签的内部样本数据。可以理解,有标签的外部样本数据、无标签的内部样本数据和有标签的内部样本数据中的每个样本为历史对话形式,标签为意图标签。
103.参照图8,以双向编码表征(bidirectional encoder representations from transformers,bert)模型为例,首先,获取输入文本的“tok 1,tok 2,...,tok n”(tok n表示输入文本(例如训练样本)中的第n个分词),在“my dog is cute”的前面添加一个[cls]标志,后面添加一个[sep]标志。接着,进行掩码操作,随机对一个或多个分词添加掩码[mask]。接着进行词嵌入操作,经过词嵌入提取得到各个分词的词向量“e(cls),e
my
,e
dog
……”
,然后通过transformer编码器得到相应的语义向量“c,t
my
,t
dog
……”
,并取[cls]在编码器最后一层的隐状态向量c作为整个样本的语义向量,即得到表示向量。
[0104]
图9示意性示出了根据本公开实施例的近邻对比学习的示意图。图10示意性示出了根据本公开另一实施例的近邻对比学习的流程图。意图理解样本数据包括n个意图理解样本,n为大于或等于2的整数,如图10所示,该实施例是操作s630的其中一个实施例,包括:
[0105]
在操作s1010,从n个意图理解样本中确定m个意图理解样本,作为m个锚点,m为大于或等于1的整数,m小于或等于n。
[0106]
在操作s1020,基于m个锚点中各锚点的表示向量进行聚类操作,构造m个邻接矩阵,其中,聚类操作包括基于每个锚点与其他任一样本之间的近邻关系进行聚类。
[0107]
例如,通过构造邻接矩阵,以进行对比学习。其中当两个样本是相似的时候也即是一对正样本对的时候,邻接矩阵对应的元素是1,否则是0。近邻关系可以通过表示向量之间的相似度确定,相似度可以通过欧式距离、余弦相似度等来计算得到。
[0108]
在操作s1030,基于m个邻接矩阵进行近邻对比学习。
[0109]
参照图9,其中,各个五角形和三角形代表着各个样本的表示向量,x1、x2、x3和x4
代表锚点。圆形n1、圆形n2、圆形n3和圆形n4代表邻接矩阵在表示空间的范围。
[0110]
图9右侧,实线和虚线表示聚类过程中得到锚点与其他样本之间的聚类结果。实线代表属于正样本,即相似度大于或等于预设阈值,如0.8。虚线代表属于负样本,即相似度小于预设阈值,如0.8。
[0111]
在近邻对比学习过程中,可以根据邻接矩阵计算对比损失,通过最小化对比损失,减小两个近似或同类样本之间的距离,同时增大两个负样本的距离,使得模型学习到更好的语义表示,避免受到干扰信息的干扰,进而得到更紧凑的聚类。对比损失函数可以包括已有的或未来将要公开的,可以计算对比损失的函数,本公开不进行限定。
[0112]
在一些实施例中,在近邻对比学习结束后,确定最终的m个邻接矩阵。在将对话信息输入经训练的意图理解模型之后,还包括:利用经训练的意图理解模型处理对话信息,得到对话信息的表示向量。基于对话信息的表示向量和最终的m个邻接矩阵,获得预测意图。
[0113]
例如,通过m个邻接矩阵可以得到m个聚类簇,基于对话信息的表示向量和每个聚类簇中的表示向量进行相似度计算,获得具有最高相似度的聚类簇,该聚类簇表征的意图作为预测意图。
[0114]
根据本公开的实施例,通过两阶段的模型训练,不仅提高模型的意图识别能力,还具有较高的意图发现能力,能够快速提供准确的预测意图。
[0115]
图11示意性示出了根据本公开实施例的获得意图理解样本数据的流程图。如图11所示,该实施例是操作s610的其中一个实施例,包括:
[0116]
在操作s1110,从目标领域的历史数据中确定第一意图理解样本。
[0117]
在操作s1120,基于第一意图理解样本,从目标领域的历史数据中确定第二意图理解样本,其中,第一意图理解样本与第二意图理解样本之间的相似度大于或等于预设阈值。
[0118]
在操作s1130,对第一意图理解样本进行数据增强得到第三意图理解样本,以及对第二意图理解样本进行数据增强得到第四意图理解样本。数据增强例如可以包括随机插值、删除、修改等操作。
[0119]
其中,意图理解样本数据包括第一意图理解样本、第二意图理解样本、第三意图理解样本与第四意图理解样本中至少一个。
[0120]
考虑到目标领域的历史数据中样本分布不均匀,第二意图理解样本可能拥有与第一意图理解样本相似,但是不同的特征表示和意图,对两个相似样本进行数据增强,得到新的样本对,可以更充分的覆盖较大的分布范围,帮助模型更好的学习数据分布,提高泛化能力和鲁棒性。
[0121]
可以理解,可以循环执行多次操作s1110~操作s1120,得到意图理解样本数据。
[0122]
图12示意性示出了根据本公开实施例的确定第二意图理解样本的流程图。如图12所示,该实施例是操作s1120的其中一个实施例,包括:
[0123]
在操作s1210,利用经第二阶段预训练的意图理解模型处理目标领域的历史数据中各个样本,获得各个样本的表示向量。
[0124]
在操作s1220,计算第一意图理解样本的表示向量与其他样本的表示向量之间的相似度,其中,其他样本包括目标领域的历史数据中的任一样本。
[0125]
在操作s1230,基于计算得到的相似度结果,确定第二意图理解样本。
[0126]
具体地,先利用经第二阶段预训练的意图理解模对各样本进行编码,进而采用向
量内积作为相似度,可以对每一个样本xi(第一意图理解样本)找其top-k个相似的句子。具体而言,在数据增强过程中,每当来一个样本xi时,会从其集合中均匀的采样出一个相似样本xi’(第二意图理解样本),然后利用数据增强为xi和xi’分别生成一个新的样本xi和xi’,所以新的样本xi和xi’就可以看作是样本xi两个不同视角下的相似样本,是一对正样本。其中,i≥1,k≥1。
[0127]
经第二阶段预训练的意图理解模型具有较优的表示能力,提取的表示向量更准确,有利于相似度的计算。
[0128]
基于上述意图识别方法,本公开还提供了一种意图识别装置。以下将结合图13对该装置进行详细描述。
[0129]
图13示意性示出了根据本公开实施例的意图识别装置的结构框图。
[0130]
如图13所示,该实施例的意图识别装置1300包括输入模块1310、答复模块1320。
[0131]
输入模块1310可以执行操作s210,用于响应于用户输入的对话信息,将对话信息输入经训练的意图理解模型。
[0132]
答复模块1320可以执行操作s220,用于基于意图理解模型输出的预测意图,向用户返回答复结果,其中,答复结果包括与预测意图中目标领域相关联的信息。
[0133]
基于上述意图识别模型的训练方法,本公开还提供了一种意图识别模型的训练装置。以下将结合图14对该装置进行详细描述。其中,意图理解模型被配置为预先通过意图识别模型的训练装置训练获得。
[0134]
图14示意性示出了根据本公开实施例的意图识别模型的训练装置的结构框图。
[0135]
如图14所示,该实施例的意图识别模型的训练装置1400包括第一训练模块1410、第二训练模块1420。
[0136]
第一训练模块1410可以执行操作s310,用于基于有标签的外部样本数据和无标签的内部样本数据,对待训练的意图理解模型进行第一阶段预训练。
[0137]
在一些实施例中,第一训练模块1410可以执行操作s410~操作s440,在此不再赘述。
[0138]
第二训练模块1420可以执行操作s320,用于基于有标签的内部样本数据和无标签的内部样本数据,对经第一阶段预训练的意图理解模型进行第二阶段预训练,其中,内部样本数据来自目标领域的历史数据,外部样本数据来自目标领域之外的其他历史数据。
[0139]
在一些实施例中,第二训练模块1420可以执行操作s510~操作s540,在此不再赘述。
[0140]
在一些实施例中,意图识别模型的训练装置1400还可以包括近邻对比学习模块,该模块可以执行操作s610~操作s630,操作s1010~操作s1030,操作s1110~操作s1130,操作s1210~操作s1230,在此不再赘述。
[0141]
需要说明的是,意图识别模型的训练装置1 400包括分别用于执行如上图2~图12描述的任意一个实施例的各个步骤的模块。装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
[0142]
根据本公开的实施例,意图识别装置1300或训练装置1400中的任意多个模块可以
合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。
[0143]
根据本公开的实施例,意图识别装置1300或训练装置1400中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,意图识别装置1300或训练装置1400中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
[0144]
图15示意性示出了根据本公开实施例的适于实现意图理解方法的电子设备的方框图。
[0145]
如图15所示,根据本公开实施例的电子设备1500包括处理器1501,其可以根据存储在只读存储器(rom)1502中的程序或者从存储部分1508加载到随机访问存储器(ram)1503中的程序而执行各种适当的动作和处理。处理器1501例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic))等等。处理器1501还可以包括用于缓存用途的板载存储器。处理器1501可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
[0146]
在ram 1503中,存储有电子设备1500操作所需的各种程序和数据。处理器1501、rom 1502以及ram 1503通过总线1504彼此相连。处理器150l通过执行rom 1502和/或ram 1503中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除rom 1502和ram 1503以外的一个或多个存储器中。处理器1501也可以通过执行存储在一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
[0147]
根据本公开的实施例,电子设备1500还可以包括输入/输出(i/o)接口1505,输入/输出(i/o)接口1505也连接至总线1504。电子设备1500还可以包括连接至i/o接口1505的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1506。包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1507。包括硬盘等的存储部分1508。以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1509。通信部分1509经由诸如因特网的网络执行通信处理。驱动器1510也根据需要连接至i/o接口1505。可拆卸介质1511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1510上,以便于从其上读出的计算机程序根据需要被安装入存储部分1508。
[0148]
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的。也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
[0149]
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可
以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom 1502和/或ram 1503和/或rom 1502和ram 1503以外的一个或多个存储器。
[0150]
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的方法。
[0151]
在该计算机程序被处理器1501执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
[0152]
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1509被下载和安装,和/或从可拆卸介质1511被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
[0153]
在这样的实施例中,该计算机程序可以通过通信部分1509从网络上被下载和安装,和/或从可拆卸介质1511被安装。在该计算机程序被处理器1501执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
[0154]
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如java,c++,python,“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0155]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0156]
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
[0157]
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

技术特征:
1.一种意图理解方法,包括:响应于用户输入的对话信息,将所述对话信息输入经训练的意图理解模型;基于所述意图理解模型输出的预测意图,向所述用户返回答复结果,其中,所述答复结果包括与所述预测意图中目标领域相关联的信息;其中,所述意图理解模型被配置为预先通过如下操作训练获得:基于有标签的外部样本数据和无标签的内部样本数据,对待训练的所述意图理解模型进行第一阶段预训练;基于有标签的内部样本数据和无标签的内部样本数据,对经第一阶段预训练的所述意图理解模型进行第二阶段预训练,其中,所述内部样本数据来自所述目标领域的历史数据,所述外部样本数据来自所述目标领域之外的其他历史数据。2.根据权利要求1所述的方法,其中,所述意图理解模型还被配置为预先通过如下操作训练获得:基于所述目标领域的历史数据,获得意图理解样本数据,其中,所述意图理解样本数据与所述内部样本数据相同或不同;利用经第二阶段预训练的所述意图理解模型处理所述意图理解样本数据,获得所述意图理解样本数据的表示向量;基于所述意图理解样本数据的表示向量,进行近邻对比学习,获得经训练的所述意图理解模型,其中,所述近邻对比学习用于根据所述意图理解样本数据中样本间的近邻关系进行对比学习。3.根据权利要求1所述的方法,其中,所述意图理解样本数据包括n个意图理解样本,n为大于或等于2的整数,所述基于所述意图理解样本数据的表示向量,进行近邻对比学习包括:从所述n个意图理解样本中确定m个意图理解样本,作为m个锚点,m为大于或等于1的整数,m小于或等于n;基于所述m个锚点中各锚点的表示向量进行聚类操作,构造m个邻接矩阵,其中,所述聚类操作包括基于每个锚点与其他任一样本之间的近邻关系进行聚类;基于所述m个邻接矩阵进行近邻对比学习。4.根据权利要求3所述的方法,其中:在近邻对比学习结束后,确定最终的所述m个邻接矩阵;在将所述对话信息输入经训练的意图理解模型之后,所述方法还包括:利用经训练的所述意图理解模型处理所述对话信息,得到所述对话信息的表示向量;基于所述对话信息的表示向量和最终的所述m个邻接矩阵,获得所述预测意图。5.根据权利要求3所述的方法,其中,所述基于所述目标领域的历史数据,获得意图理解样本数据包括:从所述目标领域的历史数据中确定第一意图理解样本;基于所述第一意图理解样本,从所述目标领域的历史数据中确定第二意图理解样本,其中,所述第一意图理解样本与所述第二意图理解样本之间的相似度大于或等于预设阈值;对所述第一意图理解样本进行数据增强得到第三意图理解样本,以及对所述第二意图
理解样本进行数据增强得到第四意图理解样本;其中,所述意图理解样本数据包括所述第一意图理解样本、所述第二意图理解样本、所述第三意图理解样本与所述第四意图理解样本中至少一个。6.根据权利要求5所述的方法,其中,所述基于所述第一意图理解样本,从所述目标领域的历史数据中确定第二意图理解样本包括:利用经第二阶段预训练的所述意图理解模型处理所述目标领域的历史数据中各个样本,获得各个样本的表示向量;计算所述第一意图理解样本的表示向量与其他样本的表示向量之间的相似度,其中,所述其他样本包括所述目标领域的历史数据中的任一样本;基于计算得到的相似度结果,确定所述第二意图理解样本。7.根据权利要求1所述的方法,其中,所述对待训练的所述意图理解模型进行第一阶段预训练包括:将所述有标签的外部样本数据和所述无标签的内部样本数据输入到待训练的所述意图理解模型;基于待训练的所述意图理解模型对所述有标签的外部样本数据的预测结果,得到第一损失函数值;基于待训练的所述意图理解模型对所述无标签的内部样本数据的预测结果,得到第二损失函数值,其中,所述第一损失函数值与所述第二损失函数值经由不同的损失函数得到;根据所述第一损失函数值和所述第二损失函数值,更新待训练的所述意图理解模型的模型参数。8.根据权利要求1或7所述的方法,其中,所述对经第一阶段预训练的所述意图理解模型进行第二阶段预训练包括:将所述有标签的内部样本数据和所述无标签的内部样本数据输入到经第一阶段预训练的所述意图理解模型;基于经第一阶段预训练的所述意图理解模型对所述有标签的内部样本数据的预测结果,得到第三损失函数值;基于经第一阶段预训练的所述意图理解模型对所述无标签的内部样本数据的预测结果,得到第四损失函数值,其中,所述第三损失函数值与所述第四损失函数值经由不同的损失函数得到;根据所述第三损失函数值和所述第四损失函数值,更新经第一阶段预训练的所述意图理解模型的模型参数。9.一种意图理解装置,包括:输入模块,用于响应于用户输入的对话信息,将所述对话信息输入经训练的意图理解模型;答复模块,用于基于所述意图理解模型输出的预测意图,向所述用户返回答复结果,其中,所述答复结果包括与所述预测意图中目标领域相关联的信息;其中,所述意图理解模型被配置为预先通过如下操作训练获得:基于有标签的外部样本数据和无标签的内部样本数据,对待训练的所述意图理解模型进行第一阶段预训练;
基于有标签的内部样本数据和无标签的内部样本数据,对经第一阶段预训练的所述意图理解模型进行第二阶段预训练,其中,所述内部样本数据来自所述目标领域的历史数据,所述外部样本数据来自所述目标领域之外的其他历史数据。10.一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~8中任一项所述的方法。11.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~8中任一项所述的方法。12.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~8中任一项所述的方法。

技术总结
本公开提供了一种意图理解方法,涉及人工智能领域。该方法包括:响应于用户输入的对话信息,将所述对话信息输入经训练的意图理解模型;基于所述意图理解模型输出的预测意图,向所述用户返回答复结果;其中,所述意图理解模型被配置为预先通过如下操作训练获得:基于有标签的外部样本数据和无标签的内部样本数据,对待训练的所述意图理解模型进行第一阶段预训练;基于有标签的内部样本数据和无标签的内部样本数据,对经第一阶段预训练的所述意图理解模型进行第二阶段预训练。本公开还提供了一种意图理解装置、设备、存储介质和程序产品。存储介质和程序产品。存储介质和程序产品。


技术研发人员:张佳颖
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2023.06.15
技术公布日:2023/9/16
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐