模型训练方法及人机交互方法、装置转让专利

申请号 : CN202210113215.9

文献号 : CN114444462B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张红阳焦振宇孙叔琦常月李婷婷

申请人 : 北京百度网讯科技有限公司

摘要 :

本申请公开了模型训练方法及人机交互方法、装置,涉及自然语言处理、智能搜索、深度学习等领域。具体实现方案为:获取模板对应的样本集;基于样本集,构造对比学习任务的正例对和负例对;基于对比学习任务的正例对和负例对,对预训练模型进行对比学习训练。实现将模板知识学习到了模型本身中,模板知识和预训练模型的语义知识充分结合,提升模型的普适性和易用性。

权利要求 :

1.一种模型训练方法,包括:

获取模板对应的样本集;

基于所述样本集,构造对比学习任务的正例对和负例对;

基于所述对比学习任务的正例对和负例对,对预训练模型进行对比学习训练;

其中,所述模板为包括一个模板片段的有序模板,所述模板片段包括多个关键词;所述获取模板对应的样本集,包括:基于所述模板片段中的多个关键词各自的词表中的词表值,采用集束搜索方法,生成所述模板对应的样本候选集;

对所述样本候选集进行模板匹配校验,将校验通过的目标样本集作为所述模板对应的样本集。

2.根据权利要求1所述的方法,其中,所述模板为包括多个模板片段的无序模板,所述模板片段包括一个或多个关键词;所述获取模板对应的样本集,包括:针对所述多个模板片段中的每个模板片段,生成所述每个模板片段对应的候选集;

基于预设组织格式,从所述多个模板片段各自的候选集中选取候选值组成多个目标序列;其中,所述预设组织格式通过所述无序模板的第一属性确定,所述第一属性为模板片段顺序;

将所述多个目标序列输入生成式的预训练模型,生成所述无序模板对应的样本候选集;

对所述样本候选集进行模板匹配校验,将校验通过的目标样本集作为所述模板对应的样本集。

3.根据权利要求1所述的方法,其中,所述获取模板对应的样本集,包括:获取目标领域的历史数据;

基于所述历史数据,获取与所述模板匹配的样本集。

4.根据权利要求1所述的方法,其中,所述基于所述样本集,构造对比学习任务的正例对和负例对,包括:针对不同场景的模板之间的对比学习任务,将所述样本集中属于相同场景的模板的多个样本构成多个正例对,以及将不属于相同场景的模板的多个样本构成多个负例对;

针对相同场景不同意图的模板之间的对比学习任务,将所述样本集中属于相同场景相同意图的模板的多个样本构成多个正例对,以及将属于相同场景不同意图的模板的多个样本构成多个负例对;

针对相同意图的不同模板之间的对比学习任务,将所述样本集中属于相同意图的同一模板的多个样本构成多个正例对,以及将属于相同意图不同模板的多个样本构成多个负例对。

5.根据权利要求1所述的方法,其中,所述基于所述对比学习任务的正例对和负例对,对预训练模型进行对比学习训练,包括:从所述对比学习任务的正例对和负例对之中抽取多个样本对;

将所述多个样本对输入所述预训练模型,得到多个样本各自的语义表示;

将所述多个样本各自的语义表示映射到对比学习损失空间,并获取所述多个样本中任意两个样本的相似度;

基于所述相似度,获取所述多个样本各自的损失,并基于所述损失对所述预训练模型的参数进行调整。

6.一种人机交互方法,包括:

获取用户输入内容;

将所述用户输入内容输入预先训练好的预训练模型,得到所述用户输入内容的意图和词槽;其中,所述预先训练好的预训练模型为采用权利要求1-5 任一所述的模型训练方法训练得到的;

根据所述意图和词槽,获取系统反馈。

7.一种模型训练装置,包括:

样本获取模块,用于获取模板对应的样本集;

任务构造模块,用于基于所述样本集,构造对比学习任务的正例对和负例对;

模型训练模块,用于基于所述对比学习任务的正例对和负例对,对预训练模型进行对比学习训练;

其中,所述模板为包括一个模板片段的有序模板,所述模板片段包括多个关键词;所述样本获取模块,具体用于:基于所述模板片段中的多个关键词各自的词表中的词表值,采用集束搜索方法,生成所述模板对应的样本候选集;

对所述样本候选集进行模板匹配校验,将校验通过的目标样本集作为所述模板对应的样本集。

8.根据权利要求7所述的装置,其中,所述模板为包括多个模板片段的无序模板,所述模板片段包括一个或多个关键词;所述样本获取模块,具体用于:针对所述多个模板片段中的每个模板片段,生成所述每个模板片段对应的候选集;

基于预设组织格式,从所述多个模板片段各自的候选集中选取候选值组成多个目标序列;其中,所述预设组织格式通过所述无序模板的第一属性确定,所述第一属性为模板片段顺序;

将所述多个目标序列输入生成式的预训练模型,生成所述无序模板对应的样本候选集;

对所述样本候选集进行模板匹配校验,将校验通过的目标样本集作为所述模板对应的样本集。

9.根据权利要求7所述的装置,其中,所述样本获取模块,还用于:获取目标领域的历史数据;

基于所述历史数据,获取与所述模板匹配的样本集。

10.根据权利要求7所述的装置,其中,所述任务构造模块,具体用于:针对不同场景的模板之间的对比学习任务,将所述样本集中属于相同场景的模板的多个样本构成多个正例对,以及将不属于相同场景的模板的多个样本构成多个负例对;

针对相同场景不同意图的模板之间的对比学习任务,将所述样本集中属于相同场景相同意图的模板的多个样本构成多个正例对,以及将属于相同场景不同意图的模板的多个样本构成多个负例对;

针对相同意图的不同模板之间的对比学习任务,将所述样本集中属于相同意图的同一模板的多个样本构成多个正例对,以及将属于相同意图不同模板的多个样本构成多个负例对。

11.根据权利要求7所述的装置,其中,所述模型训练模块,具体用于:从所述对比学习任务的正例对和负例对之中抽取多个样本对;

将所述多个样本对输入所述预训练模型,得到多个样本各自的语义表示;

将所述多个样本各自的语义表示映射到对比学习损失空间,并获取所述多个样本中任意两个样本的相似度;

基于所述相似度,获取所述多个样本各自的损失,并基于所述损失对所述预训练模型的参数进行调整。

12.一种人机交互装置,包括:

输入获取模块,用于获取用户输入内容;

模型应用模块,用于将所述用户输入内容输入预先训练好的预训练模型,得到所述用户输入内容的意图和词槽;其中,所述预先训练好的预训练模型为采用权利要求1-5任一所述的模型训练方法训练得到的;

结果获取模块,用于根据所述意图和词槽,获取系统反馈。

13.一种电子设备,其特征在于,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法,或者以使所述至少一个处理器能够执行权利要求6所述的方法。

14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-5中任一项所述的方法,或者以使至少一个处理器能够执行权利要求6所述的方法。

说明书 :

模型训练方法及人机交互方法、装置

技术领域

[0001] 本申请公开了一种模型训练方法及人机交互方法、装置,涉及人工智能领域,具体涉及自然语言处理、智能搜索、深度学习等领域。

背景技术

[0002] 在人机对话交互过程中,机器需要理解对话语句的语义。基于大规模无监督数据的预训练模型,在多项自然语言处理任务上取得了突破性的提升。在预训练模型应用于特定领域时,通常会将领域知识融入到预训练模型中,使得通用的预训练模型,可以在特定领域发挥更好的效果。
[0003] 相对于标注样本,模板可以看做是是一类句式的表达,或者看做是许多具有相同语义的句子的集合,模板蕴含着更加丰富的语义信息。将模板知识引入到预训练模型中,会让预训练模型产出的语义表示更加适用于对话理解。

发明内容

[0004] 本申请提供了一种模型训练方法及人机交互方法、装置、设备以及存储介质,以提高模型的语义理解能力。
[0005] 根据本申请的第一方面,提供了一种模型训练方法,包括:
[0006] 获取模板对应的样本集;
[0007] 基于所述样本集,构造对比学习任务的正例对和负例对;
[0008] 基于所述对比学习任务的正例对和负例对,对预训练模型进行对比学习训练。
[0009] 根据本申请的第二方面,提供了一种人机交互方法,包括:
[0010] 获取用户输入内容;
[0011] 将所述用户输入内容输入预先训练好的预训练模型,得到所述用户输入内容的意图和词槽;其中,所述预先训练好的预训练模型为采用第一方面所述的模型训练方法训练得到的;
[0012] 根据所述意图和词槽,获取系统反馈。
[0013] 根据本申请的第三方面,提供了一种模型训练装置,包括:
[0014] 样本获取模块,用于获取模板对应的样本集;
[0015] 任务构造模块,用于基于所述样本集,构造对比学习任务的正例对和负例对;
[0016] 模型训练模块,用于基于所述对比学习任务的正例对和负例对,对预训练模型进行对比学习训练。
[0017] 根据本申请的第四方面,提供了一种人机交互装置,包括:
[0018] 输入获取模块,用于获取用户输入内容;
[0019] 模型应用模块,用于将所述用户输入内容输入预先训练好的预训练模型,得到所述用户输入内容的意图和词槽;其中,所述预先训练好的预训练模型为采用第一方面所述的模型训练方法训练得到的;
[0020] 结果获取模块,用于根据所述意图和词槽,获取系统反馈。
[0021] 根据本申请的第五方面,提供了一种电子设备,包括:
[0022] 至少一个处理器;以及
[0023] 与所述至少一个处理器通信连接的存储器;其中,
[0024] 所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法,或者以使所述至少一个处理器能够执行第二方面所述的方法。
[0025] 根据本申请的第六方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面所述的方法,或者以使所述至少一个处理器能够执行第二方面所述的方法。
[0026] 根据本申请的第七方面,提供了一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现第一方面所述方法的步骤,或者以使所述至少一个处理器能够执行第二方面所述的方法。
[0027] 根据本申请实施例的模型训练方法,实现将模板知识学习到了模型本身中,提升模型的普适性和易用性。
[0028] 应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0029] 附图用于更好地理解本方案,不构成对本申请的限定。其中:
[0030] 图1是根据本申请第一实施例的模型训练方法的示意图;
[0031] 图2是根据本申请第二实施例的模型训练方法的示意图;
[0032] 图3是根据本申请第三实施例的人机交互方法的示意图;
[0033] 图4是根据本申请第四实施例的模型训练装置的框图;
[0034] 图5是根据本申请第五实施例的人机交互装置的框图;
[0035] 图6是用来实现本申请实施例的模型训练方法的电子设备的框图。

具体实施方式

[0036] 以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0037] SimCLR(A Simple Framework for Contrastive Learning of Visual Representations):一种生成视觉表达(representation)的简单对抗学习框架。
[0038] BERT(Bidirectional Encoder Representation from Transformers),基于Transformer的双向深度语言模型,是一种预训练模型。
[0039] XLNet是一种广义自回归的语言模型,是基于Transformer-XL而构建的。
[0040] ERNIE(Enhanced Representation through Knowledge Integration),知识增强的语义表示模型。
[0041] 在人机对话交互过程中,机器需要理解对话语句的语义。目前通常采用意图和槽位的结构化表示方法来表示用户对话的语义信息。相对于深度神经网络的对话理解模型,基于模板匹配的方法具有可解释性强、易干预、准确高的优点,通常被应用于对话系统的冷启动阶段。
[0042] 近年来,BERT、XLNet、ERNIE1.0、ERNIE2.0等基于大规模无监督数据的预训练模型,在多项NLP(Natural Language Processing,自然语言处理)任务上取得了突破性的提升。它们利用语言模型等任务进行自监督学习,模型自动的学习到数据中的各种语义知识,给定一个句子,预训练模型可以比较好的给出语义表示。在预训练模型应用于特定领域时,通常会将领域知识融入到预训练模型中,使得通用的预训练模型,可以在特定领域发挥更好的效果。
[0043] 经分析,将模板作为特征结合到模型中,通常有两种结合方式,一种是将模板作为输入结合到模型中,另一种是将模板独立编码成向量和模型的输出向量结合。
[0044] 上述第一种结合方式,将模板当做特征输入模型,没有让模型本身学习到模板中的知识,存在两个缺点。第一个缺点是:不具有普适性,对于一些场景,用户没有配置模板,则预训练模型就没有特征,无法使用模板的知识。第二个缺点是:破坏了预训练模型的原有结构,特征和模型本身的语义知识没有充分结合,效果往往不太理想。
[0045] 目前的对话平台中积累了大量的用户标注模板,蕴含着更加丰富的语义信息。将该模板的知识引入到预训练模型中,会让预训练模型产出的语义表示更加适用于对话理解任务。
[0046] 为解决上述技术问题,本申请提出了一种模型训练方法、装置、电子设备和计算机可读存储介质,可以实现将模板知识学习到模型本身中,在保持模型的结构基础上,将模板知识和预训练模型的语义知识充分的结合,具有普适性和易用性。
[0047] 下面参照附图来描述根据本申请实施例提出的模型训练方法、装置、电子设备和计算机可读存储介质。
[0048] 图1是根据本申请一个实施例的模型训练方法的流程图。需要说明的是,本申请实施例的模型训练方法可应用于本申请实施例的模型训练装置。该模型训练装置可被配置于电子设备上。如图1所示,该模型训练方法可以包括如下步骤。
[0049] S101,获取模板对应的样本集。
[0050] 可以理解,模板可以看做是许多具有相同语义和句式的样本的集合,可以通过为每个模板构建包含大量样本的候选集,将模板蕴含的语义用样本表示。
[0051] 作为一种可能的实现方式,为每个模板构建包含大量样本的候选集的方法为,从用户的日志中挖掘出匹配到模板的大量样本,作为该模板的样本集。
[0052] 当从用户的日志中匹配到的样本数量较少时,还可以应用生成式的方法,为每个模板生成大量的样本,构成或补充该模板的样本集。
[0053] 在本申请实施例中,模板包括两种类型:有序模板和无序模板。
[0054] 有序模板仅包含一个模板片段,顺序进行匹配。作为一个示例,一个有序模板为:[kw_from][user_from_poi][kw_to][user_to_poi],该模板包含了4个关键词,其中,kw_from的词表值为“从”、“我在”等,user_from_poi的词表值为地点相关词,比如“博物馆”、“科技馆”等,kw_to的词表值为“去”、“到”等,user_to_poi的词表值同样为地点相关词。上面的有序模板可以匹配“从博物馆去人民公园”、“我在科技馆到水上公园”。
[0055] 无序模板是包含多个模板片段的模板组,整个模板有三个属性:模板片段顺序、模板片段是否必须、覆盖率阈值。其中,模板片段顺序的属性值等于0表示匹配时模板片段没有顺序要求,顺序大于0则需要按大小值前后有序。作为一个示例:模板片段kw_list无顺序要求,模板片段user_time和user_remind_type需要在kw_remind之前出现。匹配模板的前提是,模板片段是否必须的属性值为必须匹配的模板片段要全部匹配上,否则无法匹配模板。
[0056] 下面示例中:模板片段kw_list和kw_remind的模板片段是否必须的属性值是必须匹配的。在满足模板片段顺序和必须匹配之后,还需要检查模板覆盖率,覆盖率=匹配模板片段长度/句子总长,覆盖率超过阈值才算真正匹配上无序模板。
[0057]
[0058]
[0059] 需要说明的是,无序模板中的每个模板片段可以包括一个或多个关键词,上面仅给出了每个模板片段包含一个关键词的示例。也可以将无序模板中的每个模板片段当做是一个有序模板。
[0060] S102,基于样本集,构造对比学习任务的正例对和负例对。
[0061] 可以理解,人类往往是通过对比来学习区分事物的,比如10元钱和50元钱,大多数人在不临摹的情况下,无法画出该两种纸币上面的所有细节,但是都能轻松的进行区分。同样的道理,模型无需学习到每个对象过于具体的细节,只需要学习到足以区分多个对象的主要特征即可,这就是对比学习被提出的动机。
[0062] 对比学习是一种无监督的表示学习方法,通过定义要对比的正例和负例类型来构造对比学习任务,让模型进行对比学习,去拉近相似的正例样本,推开不相似的负例样本,从而让模型学习到更加合适于任务的更好的语义表示。
[0063] 因此,需要构建模型训练所需的对比学习任务。也就是说,需要构建用于对比学习的正例对和负例对。
[0064] 需要说的是,针对一个模型,可以构建不同角度的对比学习任务,例如不同场景模板之间的对比任务,不同意图模板之间的对比任务等等。
[0065] S103,基于对比学习任务的正例对和负例对,对预训练模型进行对比学习训练。
[0066] 在获取对比学习的正例对和负例对后,可采用对比学习方法训练预训练模型。让预训练模型去判断模板生成的样本的异同,从而将模板知识引入到预训练模型中。
[0067] 本申请实施例的模型训练方法,首先获取蕴含模板语义的样本集,然后将样本集构建对比学习任务的正例对和负例对,在通过正例对和负例对对比训练预训练模型,让预训练模型去判断模板生成样本的异同,从而将模板知识引入到预训练模型中,让预训练模型产出的语义表示更加适用于对话理解任务。
[0068] 针对图1中的步骤S101,本实施例提供一些具体的样本集的实施方式。进一步参见图2,示出了本申请实施例提供的模型训练方法的另一实施例的流程图。如图2所示,模型训练方法,可以包括如下步骤。
[0069] S201,基于目标领域的历史数据,获取与模板匹配的样本集。
[0070] 可选的,通过历史数据获取样本集的方法包括:获取目标领域的历史数据;基于历史数据,获取与模板匹配的样本集。
[0071] 在对话平台中,积累了大量的对话数据,例如用户日志,可以从用户日志中挖掘出匹配到模板的样本,当做该模板的样本集。
[0072] S202,生成有序模板的样本集。
[0073] 针对有序模板;可选的,获取模板对应的样本集,包括:
[0074] 基于模板片段中的多个关键词各自的词表中的词表值,采用集束搜索方法,生成模板对应的样本候选集;对样本候选集进行模板匹配校验,将校验通过的目标样本集作为模板对应的样本集。
[0075] 下面举例说明针对有序模板生成样本集的过程:
[0076] 对于有序模板,可以使用集束搜索(beam search)方法,搜索出n个匹配的样本(query)。具体过程为:
[0077] 随机从第一个关键词的词表中抽取n个词表值,然后从第二个关键词的词表中也抽取n个词表值,这样就有n*n个不同的组合;之后基于bilstm(Bi‑directional Long Short‑Term Memory,双向长短词记忆模型)的语言模型,计算n*n个组合的困惑度(Perplexity,值越小说明句子越通顺),选择其中困惑度最小的n个组合当做候选集。然后再从第三个关键词的词表中同样抽取n个词表值,和前面得到的候选集组成n*n个不同的组合,重复之前计算困惑度的过程。直到从最后一个关键词的词表中同样抽取n个词表值,得到困惑度最小的n个组合,作为最终的n个匹配的query,即样本候选集。对于得到的大量query,均使用模板匹配进行校验,去掉不能匹配模板的query,校验通过的即为得到的有序模板的样本集。
[0078] 可以理解,由于用户日志匹配到的样本集比较少,对于模型训练来说,样本集的数据量是远远不足的。因此,需要采用生成式的方法,为每个有序模板生成大量样本。采用上述生成式方法能快速获取有序模板的大量样本。
[0079] S203,生成无序模板的样本集。
[0080] 针对无序模板。可选的,获取模板对应的样本集,包括:
[0081] 针对多个模板片段中的每个模板片段,生成每个模板片段对应的候选集;
[0082] 基于预设组织格式,从多个模板片段各自的候选集中选取候选值组成多个目标序列;其中,预设组织格式通过无序模板的第一属性确定,第一属性为模板片段顺序;
[0083] 将多个目标序列输入生成式的预训练模型,生成无序模板对应的样本候选集;
[0084] 对样本候选集进行模板匹配校验,将校验通过的目标样本集作为模板对应的样本集。
[0085] 可选的,在针对多个模板片段中的每个模板片段,生成每个模板片段对应的候选集之前,还包括:
[0086] 根据无序模板的每个模板片段的第二属性,从多个模板片段中过滤掉属性为非必须的模板片段,获取剩余的多个模板片段;其中,第二属性为模板片段是否必须。
[0087] 也就是说,针对剩余的多个模板片段中的每个模板片段,获取每个模板片段的候选集。
[0088] 下面举例说明,针对无序模板生成样本的过程:
[0089] 对于无序模板,随机丢弃掉非必须的模板片段,针对剩下的每个模板片段,采用上述有序模板所采用的搜索方法得到每个模板片段的n个候选值。
[0090] 然后,针对每个模板片段,随机抽取其中一个候选值,组织成以下格式:片段1【posX】片段2【posX】片段3【posX】片段4【posX】【cX】,输出到生成式的预训练模型中(例如GPT‑2,或者百度的PLATO‑2),生成query。
[0091] 其中,【posX】表示模板片段顺序信息,[pos0]表示无序,[pos1]…[pos10]按大小关系有序。【cX】表示覆盖率阈值信息,[C0]、[C1]、[C2]…[C10]分别表示覆盖率阈值[0‑0.1)、[0.1‑0.2)、[0.2‑0.3)…[1.0,1.0]。
[0092] 最终,针对该搜索方法得到的每个模板片段的n个候选值,经过随机组合,生成大量的query。
[0093] 以步骤S101中表格所表示的无序模板为例,随机抽取其中一个候选值,组织成以下格式:查【pos0】我要【pos0】今天【pos1】日程【pos2】【c6】,生成的query为:现在我要查一下今天的日程。
[0094] 需要说明的是,最后对于所有根据有序模板或者无序模板生成的query,都使用模板匹配进行校验,去掉不能匹配模板的query,再和之前从日志中挖掘的样本汇总到一起,这样就得到每个模板的样本候选集合。每个模板的样本候选集合可以很充分的表达该模板的语义和句式。
[0095] 可以理解,由于用户日志匹配到的样本集比较少,对于模型训练来说,样本集的数据量是远远不足的。因此,需要采用生成式的方法,为每个无序模板生成大量样本,采用上述生成式方法能快速获取无序模板的大量样本。
[0096] S204,基于样本集,构造对比学习任务的正例对和负例对。
[0097] 可选的,构造对比学习任务的正例对和负例对可包括:
[0098] 针对不同场景的模板之间的对比学习任务,将样本集中属于相同场景的模板的多个样本构成多个正例对,以及将不属于相同场景的模板的多个样本构成多个负例对;
[0099] 针对相同场景不同意图的模板之间的对比学习任务,将样本集中属于相同场景相同意图的模板的多个样本构成多个正例对,以及将属于相同场景不同意图的模板的多个样本构成多个负例对;
[0100] 针对相同意图的不同模板之间的对比学习任务,将样本集中属于相同意图的同一模板的多个样本构成多个正例对,以及将属于相同意图不同模板的多个样本构成多个负例对。
[0101] 也就是说,为了让模型可以更好的学习到对话理解模板中的知识,构造三个和模板相关的对比学习任务,让模型可以学习到不同模板中表达的语义和句式的区别,从而产出更好的语义向量。
[0102] 1.不同场景的模板间的对比:正例:同一场景S内模板生成的两条数据;负例组:场景S内模板生成的数据与其他场景模板生成的数据形成的大量对。
[0103] 2.相同场景不同意图的模板间的对比:正例:意图A模板生成的两条数据;负例组:意图A模板生成的数据与其他意图模板生成的数据形成的大量对。
[0104] 3.相同意图不同模板间的对比:正例:意图A模板1生成的匹配度高的两条数据;负例组:意图A模板1生成的数据与意图A其他模板生成的数据形成的大量对。
[0105] S205,基于对比学习任务的正例对和负例对,对预训练模型进行对比学习训练。
[0106] 可选的,预训练模型的训练方法,包括:从对比学习任务的正例对和负例对之中抽取多个样本对;将多个样本对输入预训练模型,得到多个样本各自的语义表示;将多个样本各自的语义表示映射到对比学习损失空间,并获取多个样本中任意两个样本的相似度;基于相似度,获取多个样本各自的损失,并基于损失对预训练模型的参数进行调整。
[0107] 也就是说,作为一种可能的实现方式,基于SimCLR方法的对比学习训练预训练模型。
[0108] 作为一个示例,模型训练时,固定一批输入的样本对数量batch_size=256,例如,抽取256个正例对。需要说明的是,正例对间互为正例,正例对中的每个正例和其他正例对为负例,比如对于一个batch中的数据[z1,z1+],[z2,z2+],…[z256,z256’],对于z1,z1+是它的正例,z2、z2+…z256、z256+一共510个样本为负例。
[0109] 将一个batch的样本输入到预训练模型中,得到他们的语义表示,然后分别经过线性层做一次映射,再两两计算cosine相似度S(zi,zj),对于每个zi会得到511个相似度值,然后使用对比损失函数infoNCE loss(info Noise Contrastive Estimation loss,)计算损失,对比损失函数的公式如下:
[0110]
[0111] 其中,τ为温度系数,用于调节相似度距离,本实施例取10; 表示正例对,(zi,zj)表示负例对,K表示样本对数量。
[0112] 综上可知,对于batch中的每个zi会得到512个infoNCE loss,对他们取平均得到最终的损失(loss)。使用adam算法,反向传播对预训练模型的参数进行更新。最终经过多个batch的样本输入预训练模型,完成预训练模型的训练。其中,Adam优化算法是一种可以替代传统随机梯度下降过程的一阶优化算法,它能基于训练数据迭代地更新神经网络权重。
[0113] 需要说明的是,对于预训练模型的对比学习训练除了本申请实施例提到的SimCLR方法,还可以采用其他同样功能的方法,在此不做限制。
[0114] 本申请实施例的模型训练方法,首先通过采用历史数据结合语言模型和采用生成模型实现生成式方式获取样本集,丰富了训练样本,提升了模型训练效果,提高了预训练模型的鲁棒性。然后应用对比学习方法,构造不同场景的模板间、同一场景不同意图的模板间、同一意图不同模板间的对比学习任务,让预训练模型去判断模板生成样本的异同,从而将模板知识引入到预训练模型中,让预训练模型产出的语义表示更加适用于对话理解任务。
[0115] 根据上述模型训练方法,得到的训练好的预训练模型,将训练好的预训练模型可以应用于对话系统。图3是根据本申请另一实施例的人机交互方法的流程图。需要说明的是,人机交互方法的执行主体可以是服务器等电子设备。如图3所示,人机交互方法可以包括如下步骤。
[0116] S301,获取用户输入内容;
[0117] 通过移动终端、计算机等获取用户输入的用户输入内容。例如,明天天气怎样。
[0118] S302,将用户输入内容输入预先训练好的预训练模型,得到用户输入内容的意图和词槽;其中,预先训练好的预训练模型为采用上述任一实施例的模型训练方法训练得到的。
[0119] 可以理解,将该预先训练好的预训练模型应用于对话理解任务。
[0120] 将获取的用户输入内容(query)输入到上述模型训练方法实施例得到的训练好的预训练模型,预测用户输入内容的意图和词槽。
[0121] 作为一种可能的实现方式,query经过预先训练好的预训练模型编码后,使用cls输出隐层表示预测意图,使用每个token上的输入影响表示,加crf层预测词槽。
[0122] 在某一个用户场景下,用户为了建设任务式对话能力,会标注一些样本和模板。在训练阶段,利用上述实施例描述的模型训练方法,根据用户模板生成大量有标注样本,和用户标注样本合并到一起,放入到预训练模型中进行训练。
[0123] S303,根据意图和词槽,获取系统反馈。
[0124] 针对人机对话系统,根据用户输入内容的意图和词槽,从而获取用户的语义信息,根据语义信息,从语料库中获取与该语义信息匹配的答复,将该答复反馈给用户端。
[0125] 预测时,在训练好的预训练模型中,输入一个query,该模型会返回该query的意图和词槽结果。
[0126] 本申请实施例的人机交互方法,由于采用引入模板知识的预训练模型预测意图和词槽,可以获取更加适用于对话理解任务的语义表示,从而得到用户问题更佳匹配的反馈。
[0127] 作为对上述各图所示模型训练方法的实现,本申请提供一种实施模型训练方法的虚拟装置的一个实施例,进一步参见图4,示出了本申请实施例提供的模型训练装置的结构示意图。如图4所示,该模型训练装置可以包括样本获取模块401、任务构造模块402和模型训练模块403。
[0128] 具体地,样本获取模块401,用于获取模板对应的样本集;
[0129] 任务构造模块402,用于基于样本集,构造对比学习任务的正例对和负例对;
[0130] 模型训练模块403,用于基于对比学习任务的正例对和负例对,对预训练模型进行对比学习训练。
[0131] 在本申请的一些施例中,当模板为包括一个模板片段的有序模板时,模板片段包括多个关键词;样本获取模块401,具体用于:
[0132] 基于模板片段中的多个关键词各自的词表中的词表值,采用集束搜索方法,生成模板对应的样本候选集;
[0133] 对样本候选集进行模板匹配校验,将校验通过的目标样本集作为模板对应的样本集。
[0134] 在本申请的一些施例中,当模板为包括多个模板片段的无序模板时,模板片段包括一个或多个关键词;样本获取模块401,具体用于:
[0135] 针对多个模板片段中的每个模板片段,生成每个模板片段对应的候选集;
[0136] 基于预设组织格式,从多个模板片段各自的候选集中选取候选值组成多个目标序列;其中,预设组织格式通过无序模板的第一属性确定,第一属性为模板片段顺序;
[0137] 将多个目标序列输入生成式的预训练模型,生成无序模板对应的样本候选集;
[0138] 对样本候选集进行模板匹配校验,将校验通过的目标样本集作为模板对应的样本集。
[0139] 在本申请的一些施例中,样本获取模块401,还用于:
[0140] 获取目标领域的历史数据;
[0141] 基于历史数据,获取与模板匹配的样本集。
[0142] 在本申请的一些施例中,任务构造模块402,具体用于:
[0143] 针对不同场景的模板之间的对比学习任务,将样本集中属于相同场景的模板的多个样本构成多个正例对,以及将不属于相同场景的模板的多个样本构成多个负例对;
[0144] 针对相同场景不同意图的模板之间的对比学习任务,将样本集中属于相同场景相同意图的模板的多个样本构成多个正例对,以及将属于相同场景不同意图的模板的多个样本构成多个负例对;
[0145] 针对相同意图的不同模板之间的对比学习任务,将样本集中属于相同意图的同一模板的多个样本构成多个正例对,以及将属于相同意图不同模板的多个样本构成多个负例对。
[0146] 在本申请的一些施例中,模型训练模块403,具体用于:
[0147] 从对比学习任务的正例对和负例对之中抽取多个样本对;
[0148] 将多个样本对输入预训练模型,得到多个样本各自的语义表示;
[0149] 将多个样本各自的语义表示映射到对比学习损失空间,并获取多个样本中任意两个样本的相似度;
[0150] 基于相似度,获取多个样本各自的损失,并基于损失对预训练模型的参数进行调整。
[0151] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0152] 本申请实施例的模型训练装置,首先通过采用历史数据结合语言模型和采用生成模型实现生成式方式获取样本集,丰富了训练样本,提升了模型训练效果,提高了预训练模型的鲁棒性。然后应用对比学习方法,构造不同场景的模板间、同一场景不同意图的模板间、同一意图不同模板间的对比学习任务,让预训练模型去判断模板生成样本的异同,从而将模板知识引入到预训练模型中,让预训练模型产出的语义表示更加适用于对话理解任务。
[0153] 作为对上述图3所示人机交互方法的实现,本申请提供一种人机交互方法的虚拟装置的一个实施例,进一步参见图5,示出了本申请实施例提供的人机交互装置的结构示意图。如图5所示,该人机交互装置可以包括输入获取模块501、模型应用模块502和结果获取模块503。
[0154] 输入获取模块501,用于获取用户输入内容;
[0155] 模型应用模块502,用于将用户输入内容输入预先训练好的预训练模型,得到用户输入内容的意图和词槽;其中,预先训练好的预训练模型为采用上述任一实施例的模型训练方法训练得到的;
[0156] 结果获取模块503,用于根据意图和词槽,获取系统反馈。
[0157] 本申请实施例的人机交互装置,由于采用引入模板知识的预训练模型预测意图和词槽,可以获取更加适用于对话理解任务的语义表示,从而得到用户问题更佳匹配的反馈。
[0158] 根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
[0159] 如图6所示,是根据本申请实施例的用于实现模型训练的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
[0160] 如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
[0161] 存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的模型训练的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的模型训练的方法。
[0162] 存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的模型训练的方法对应的程序指令/模块(例如,附图4所示的样本获取模块401、任务构造模块402和模型训练模块403)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的模型训练的方法。
[0163] 存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据模型训练的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至模型训练的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0164] 模型训练的方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
[0165] 输入装置603可接收输入的数字或字符信息,以及产生与模型训练的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
[0166] 此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0167] 这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
[0168] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0169] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
[0170] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计算机程序来产生客户端和服务器的关系。
[0171] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
[0172] 上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。