一种用于电商直播场景的小样本多轮对话的生成模型转让专利

申请号 : CN202210091152.1

文献号 : CN114417892B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宫明

申请人 : 北京中科深智科技有限公司

摘要 :

本发明公开了一种用于电商直播场景的小样本多轮对话的生成模型,包括:使用一元语言模型构建包含字和词的中文词表,用jieba参照该词表对输入文本进行分词,用分词后得到的字和词对输入进行表征;字或词,角色,轮数和位置嵌入的和作为嵌入的表征输入到模型;模型一共包含12个Transformer块,每个块中将解码器和编码器融合在一起,实现上下文理解和生成回复能够实现参数共享;在每个块中使用两种自注意掩码的方式来控制当前词对上下文词的访问;处于上下文位置的词,能够看到所有的上下文的词,处于回复位置的词,只能看到其之前的词;在最后的一层输出每个字对应的隐状态。本发明使用电商直播过程中的真实场景的对话,采用prompt的方式,在基于少量样本的数据集上,实现对话系统。

权利要求 :

1.一种用于电商直播场景的小样本多轮对话的生成模型,其特征在于,使用一元语言模型构建包含字和词的中文词表,使用jieba参照该词表对输入文本进行分词,使用分词后得到的字和词对输入进行表征;字或词,角色,轮数和位置嵌入的和作为嵌入的表征输入到模型;模型一共包含12个Transformer块,每个块中将解码器和编码器融合在一起,实现上下文理解和生成回复能够实现参数共享;在每个块中使用两种自注意掩码的方式来控制当前词对上下文词的访问;处于上下文位置的词,能够看到所有的上下文的词,处于回复位置的词,只能看到其之前的词;在最后的一层输出每个字对应的隐状态;训练的目标函数为最小化负对数似然损失函数:其中θ代表对话生成模型的训练参数,D代表训练数据;对话的上下文c和目标回复r是成对输入到网络中的;其中T代表着生成目标回复r的长度,r<t代表第t个字之前生成回复的词;

pθ(rt|c,r<t)代表给定上下文c和位置t‑1及之前回复的词,生成第t个词的概率分布;从生成回复的第一个字到生成的第T个字,需要对T个概率分布进行相乘,对整体取log对数之后,得到 做平均计算并取相反数即得公式:对于生成模型,在推理阶段,使用解码的方法产生回复,采用解码时使用束搜索算法,且k=4,k表示束搜索算法中的超参数beam size;

使用电商数据训练好模型后,可以使用prompt直接进行推理, 初始化好模型后,使用样本数据,将其按照”上下文”+样本数据进行拼接,再和用户输入数据进行拼接后,饲喂给训练好的模型,进行生成, 对于电商类的对话,通过这样的方式,可以直接进行生成,不在需要使用大量的数据进行微调了。

2.根据权利要求1所述的一种用于电商直播场景的小样本多轮对话的生成模型,其特征在于,模型包含12层,每层包含上下文理解和回复生成两部分, 上下文理解部分采用编码器结构,当前字能够看到其前后的内容;在回复生成时采用是单向解码,每个字只能看到其之前的内容。

3.根据权利要求1所述的一种用于电商直播场景的小样本多轮对话的生成模型,其特征在于,输入部分效仿BERT的前处理过程,输入文本用jieba库参照使用一元语言模型构建的单词表进行分词标记;不同于BERT的输入由字嵌入、角色嵌入、位置嵌入三部分的和来表征,模型的输入部分将轮数嵌入融合进来。

说明书 :

一种用于电商直播场景的小样本多轮对话的生成模型

技术领域

[0001] 本发明属于对话系统技术领域,更具体的说是涉及一种用于电商直播场景的小样本多轮对话的生成模型。

背景技术

[0002] 目前的对话系统,不论是闲聊系统(e.g.,Blender‑Bot)还是面向任务型对话系统(e.g.,MinTL)都需要较大的对话数据集在语言生成模型上进行微调。使用大的数据集微调这些生成模型花费是昂贵的,收集大量的特定领域的数据集要花费大量的人力和物力,还需要较大的计算资源和大量的时间。为了解决使用大量训练样本以及进行微调带来的开销的问题,我们采取了一种不需要对梯度进行微调,而是使用少量样本做为生成模型的上下文的来进行学习方式,即使用基于少量样本的prompt的学习方法。
[0003] 现有的开放域的预训练生成模型基于像persona‑chat,DailyDialog,Wizard of Internet(WiT)等数据集进行的训练,没有包含电商直播场景的数据,导致这些预训练好的生成模型不能够很好的解决电商直播场景的对话任务。
[0004] 因此,如何提供一种用于电商直播场景的小样本多轮对话的生成模型成为了本领域技术人员亟需解决的问题。

发明内容

[0005] 有鉴于此,本发明使用电商直播过程中的真实场景的对话,通过收集、处理后构成的电商直播的对话数据,来训练一个对话生成模型,采用prompt的方式,在基于少量样本的数据集上,实现对话系统。
[0006] 为了实现上述目的,本发明采用如下技术方案:
[0007] 一种用于电商直播场景的小样本多轮对话的生成模型,输入文本使用一元语言模型构建包含字和词的中文词表,使用jieba对输入文本进行分词,使用分词得到的字和词对输入进行表征;字或词,角色,轮数和位置嵌入的和作为嵌入的表征输入到模型;模型一共包含12个Transformer块,每个块中将解码器和编码器融合在一起,实现上下文理解和生成回复能够实现参数共享;在每个块中使用两种自注意掩码的方式来控制当前词对上下文词的访问;处于上下文位置的词,能够看到所有的上下文的词,处于回复位置的词,只能看到其之前的词;在最后的一层输出每个字对应的隐状态。
[0008] 进一步的,模型包含12层,每层包含上下文理解和回复生成两部分。上下文理解部分采用编码器结构,当前字能够看到其前后的内容;在回复生成时采用是单向解码,每个字只能看到其之前的内容。
[0009] 进一步的,训练的目标函数为最小化负对数似然损失函数:
[0010]
[0011] 其中θ代表对话生成模型的训练参数,D代表训练数据;对话的上下文c和目标回复r是成对输入到网络中的;其中T代表着生成目标回复r的长度,r<t代表第t个字之前生成回复的词;pθ(rt|c,r<t)代表给定上下文c和位置t‑1及之前回复的词,生成第t个词的概率分布;从生成回复的第一个字到生成的第T个字,需要对T个概率分布进行相乘,对整体取log对数之后,得到 做平均计算并取相反数即得公式:
[0012] 进一步的,输入部分效仿BERT的前处理过程,输入文本用jieba进行分词,分词时参照用一元语言模型构建包含字和词的中文词表,同时使用分词后的字和词对输入进行表征;不同于BERT的输入由字嵌入、角色嵌入、位置嵌入三部分的和来表征,模型的输入部分将轮数嵌入融合进来。
[0013] 进一步的,对于生成模型,在推理阶段,使用解码的方法产生回复,采用解码时使用束搜索算法,且k=4,k表示束搜索算法中的超参数beam size。
[0014] 使用电商数据训练好模型后,可以使用prompt直接进行推理。初始化好模型后,使用样本数据,将其按照”上下文”+样本数据进行拼接,再和用户输入数据进行拼接后,饲喂给训练好的模型,进行生成。对于电商类的对话,通过这样的方式,可以直接进行生成,不在需要使用大量的数据进行微调了。
[0015] 具体流程如下:
[0016] 使用电商数据训练好的模型
[0017] 1.初始化好模型
[0018] 2.使用样本数据,对于1个样本的情况,拼接成:
[0019] prompt 1=“上下文”+“用户:店主有养过宠物吗”+“店主:有养过一直斗牛犬”+“用户:太巧了,我也想养一只斗牛犬”+“店主:哇,太棒了。”
[0020] 若有多个样本,prompt=prompt1+prompt2+...+prompt_n
[0021] 3.提示用户输入usr_input
[0022] 4.input=prompt+usr_input
[0023] 5.对input进行tokenizer和数字化,输入到模型,进行生成。
[0024] 本发明的有益效果在于:
[0025] 本发明使用基于电商直播数据集,使用unified LM模型,训练出基于电商直播领域的生成模型,训练模型时融合使用prompt方法,使用少量样即即可完成对话任务,解决了传统微调需要使用使用大的数据集的问题,以及微调模型在硬件资源以及时间上的花费。

附图说明

[0026] 为了更清楚地说明本实用新式实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本实用新式的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0027] 图1为本发明的网络架构图。
[0028] 图2为本发明生成模型各层之间的注意力机制图一。
[0029] 图3为本发明生成模型各层之间的注意力机制图二。
[0030] 图4为本发明输入由字嵌入、段嵌入、位置嵌入三部分的和的表征图。
[0031] 图5为本发明训练数据变换图。
[0032] 图6为本发明基于少量样本的prompt方法的学习图。

具体实施方式

[0033] 下面将结合本发明的实施例中,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0034] 参考图1,本发明提供了一种用于电商直播场景的小样本多轮对话的生成模型,使用一元语言模型构建包含字和词的中文词表,用jieba参照该词表对输入文本进行分词,用分词后得到的字和词对输入进行表征;字或词,角色,轮数和位置嵌入的和作为嵌入的表征输入到模型;模型一共包含12个Transformer块,每个块中将解码器和编码器融合在一起,实现上下文理解和生成回复能够实现参数共享;在每个块中使用两种自注意掩码的方式来控制当前词对上下文词的访问;处于上下文位置的词,能够看到所有的上下文的词,处于回复位置的词,只能看到其之前的词;在最后的一层输出每个字对应的隐状态。
[0035] 本发明的采用一种灵活的模式,将单向和双向的注意力机制结合起来,即将编码‑解码器融合到同一个模块中,这一模式受到了Unified LM的启发。不同于UnifiedLM使用wordPiece对输入进行分词,本发明采用基于一元语言模型的方法构建单词表,使用jieba参照该单词表进行分词。由于中文的词的构成方式不同于以空格为分割符的英文,中文的词通常包含若干个字,若采用wordPiece的分割方式会导致一些词的语义信息的丢失,为了解决这个问题,本发明使用一元语言模型构建了中文sub‑word词典,该词典同时包含了字和词。使用jieba对输入句子进行分词。
[0036] 此外,Unified LM使用BERTLarge进行初始化,同时使用英文语料采用遮蔽语言模型的方式进行训练。本发明采用从中文电商直播中各种场景收集到的大量的多轮对话作为模型的训练语料,直接对模型进行生成训练。对于含有n轮对话的场景,将n‑1轮的对话作为上下文输入,训练模型生成第n轮对话。
[0037] 使用多轮对话语料对UnifiedLM进行生成式训练具有2个优点。第一,可以将相似长度的句子组成一组,减少填充的个数,这样可以减少无效的计算。第二,通过灵活的子注意力掩码机制,上下文理解和回复生成可以实现参数共享。
[0038] 参考图2‑3,本发明生成模型每层之间的注意力处理方式,模型包含12层,每层包含上下文理解和回复生成两部分。上下文理解部分采用编码器结构,当前字能够看到其前后的内容;在回复生成时采用是单向解码,每个字只能看到其之前的内容。
[0039] 训练的目标函数为最小化负对数似然损失函数:
[0040]
[0041] 其中θ代表对话生成模型的训练参数,D代表训练数据;对话的上下文c和目标回复r是成对输入到网络中的;其中T代表着生成目标回复r的长度,r<t代表第t个字之前生成回复的词;pθ(rt|c,r<t)代表给定上下文c和位置t‑1及之前回复的词,生成第t个词的概率分布;从生成回复的第一个字到生成的第T个字,需要对T个概率分布进行相乘,对整体取log对数之后,得到 再做平均计算。训练模型要将损失降低到最小,所以要在取一个负数,即最小化负对数似然函数。即得公式:
[0042] 本发明输入部分效仿BERT的前处理过程,使用一元语言模型构建包含字和词的中文词表,用jieba参照该词表对输入文本进行分词,用分词后得到的字和词对输入进行表征。不同于BERT的输入由字嵌入、角色嵌入、位置嵌入三部分的和来表征,本模型的输入部分将轮数嵌入融合进来。如图4所示。
[0043] 字嵌入:上下文包含之前的多轮对话,会在对话的的结束拼接一个特殊的end‑of‑utterance[EOU]标记,在回复的开始拼接一个begin‑of‑utterance[BOU]标记,在生成过程用这个标记的隐状态来预测下一个字。在回复的结束拼接[EOU]标记,生成时表示生成结束。
[0044] 角色嵌入:用来区分对话中的角色,EA代表着回复,EB代表着另外的角色。引入角色嵌入可以让模型更好的区分上下文的特征信息。
[0045] 轮数嵌入:代表交互对话中的轮数。即当前生成的回复表示为E[0],上一句话表示为E[‑1],在上一句用E[‑2]表示,以此类推。这里使用相对轮数嵌入而不是绝对轮数,这样能够将E[0]分配给回复,确保回复生成免受对话中其他轮数的影响。
[0046] 位置嵌入:将其添加到相应的对话中,如图4上下文包含两句话,每句话的都是从位置0开始标识。
[0047] 输入的每句话的每个字,输入的嵌入是字,角色,轮数和位置嵌入的和。
[0048] 将这四种嵌入相加,输入到transformer Block。
[0049] 采用prompt的思想,对每个训练数据做如图5的变换,即将对话数据嵌入到一套固定的模板中,再作为训练数据。
[0050] 图6给出了宠物商品在电商直播场景中观看者和对话系统的数据。模型是在3种样本进行学习。0样本表示,不给出任何样本,直接使用预训练好的模型,产生对话生成。1样本表示给出一个样本的情况下,产生对话生成。少量样本表示给出若干个样本来产生对话生成。
[0051] 从验证数据集中随机选取一个或几个样本将其转化成图5右边的格式,拼接到测试集的的句子前,输入到模型,生成输出。在测试集上,使用困惑度(perplexity)作为评价标准。困惑度的值小于在该预训练生成模型下,使用验证数据集进行微调的结果的PPL的值,证明基于少量样本的prompt方法的可行性。
[0052] 在对话推理过程中,由于受到模型最大输入长度为256个字的限制,最终将样本量设置为3,即输入模型的句子前拼接3轮历史对话,并且格式如图5右侧。
[0053] 本发明使用基于电商直播数据集,使用unified LM模型,训练出基于电商直播领域的生成模型,训练模型时融合使用prompt方法,使用少量样即即可完成对话任务,解决了传统微调需要使用使用大的数据集的问题,以及微调模型在硬件资源以及时间上的花费。本发明使用电商直播过程中的真实场景的对话,通过收集、处理后构成的电商直播的对话数据,来训练一个对话生成模型,采用prompt的方式,在基于少量样本的数据集上,实现对话系统。
[0054] 电商直播带货最近几年越来越火,每场直播观看的人数众多,如果观众的每个问题都要主播回答,那么主播无法将精力放在调节直播间的气氛和对商品的解说。针对这个问题,收集大量的真实场景下的电商直播过程中的对话以及问答数据,本发明训练了一个基于电商直播场景的生成模型。使用该模型,研发了基于电商直播的多轮对话系统。系统能自动回复直播时,观众提出的本场直播商品本身无关的一些闲聊问题。若与商品有关的问题,系统会提示组主播进行回答。基于电商直播数据训练的电商生成模型,解决了目前的生成模型不能胜任电商直播闲聊的问题。
[0055] 目前比较主流的方式是对预训练模型进行微调,微调需要有两个基本的条件,一是有一个比较好且适用要解决场景的数据集,二是要有较好的计算资源,因为随着目前预训练模型参数的增大,对计算资源的要求也随之提高。收集、整理数据集是一项要花费大量人力和物力的事情,好的计算资源也需要投入大量的经济成本。为了解决这些问题,提出使用基于少量样本的prompt的方式进行生成,并且能解决在电商直播领域问答的问题。
[0056] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。