一种基于文本摘要生成与双向语料改善对话文本生成的方法

文档序号:26007541发布日期:2021-07-23 21:26阅读:185来源:国知局
一种基于文本摘要生成与双向语料改善对话文本生成的方法

本发明属于人工智能技术领域,涉及自然语言处理以及人机对话,特别涉及一种基于文本摘要生成与双向语料改善对话文本生成的方法。



背景技术:

自然语言处理是人工智能领域的研究热点之一,其应用场景十分广阔。所谓自然语言,就是人类在发展过程中形成的一种信息交流方式,涵盖的范围非常大,所有的语种、语言都属于自然语言。随着新浪微博、百度贴吧、推特和ubuntu社区等社交平台的飞速发展,网络上出现了大量一问一答和连续问答形式的短文本对话数据,这为短文本对话的研究提供了良好的数据基础。研究自然语言处理的目的在于利用计算机强大的计算性能来代替人类处理大规模自然语言信息。不同于图像和视频的研究,语言的表达具有随机性和语义性,它既有一定的语言范式,但又不被固定的语言范式所约束。同一种语意常存在多种表达,而同一个表达在不同的场景下也可能对应着不同的语意。因此,如何让计算机准确的理解自然语言中蕴含的信息,并返回用户所期望的结果,是自然语言处理领域最主要的难点。

对话系统是自然语言处理的研究热点之一,主要包含闲聊和任务型对话两大类。闲聊对话系统的设计目标在于与用户交流。任务型对话需要在限定场景内完成用户特定的需求,例如:机票预定、保险购买等业务。互联网信息井喷式爆发,也极大的刺激了自动文本摘要技术的发展。该技术利用计算机自动地从长文本或文本集合中提炼出一段能准确反映源文中心内容的简洁连贯的短文。

专利cn111914062a公开了一种基于三阶段的长文本问答对生成系统,根据关键词从文本中检索出候选段落并从中提取出可能的答案,根据候选段落和一个答案生成问题组成问答对。专利cn111143509a公开了一种多注意力文本多样性改善方法,在编码器中引入识别/先验网络和静态注意力获取主题信息,结合解码器、动态注意力机制产生更加多样性和有意义的回复。专利cn111858931a公开了一种基于强化学习的文本生成方法,利用lstm构造词向量编码器与文本生成器,模型的输出文本与训练集的文本输入分类器中进行对抗训练,以达到更好的文本生成效果。专利cn111897949a公开了一种基于transformer的引导性文本摘要生成方法,从长文本中抽取部分语句,利用关键语义特征修正注意力机制,使得基于transformer的生成模型能够生成较多富含关键信息的摘要内容。专利cn111858912a公开了一种基于单篇长文本的摘要生成方法,使用bert算法构造文本句子向量,利用文本特征修正句子权重,并用mmr算法进行冗余处理,实现专利文本的摘要提取。

由此可见,上下文编码的质量决定了基于理解的自然语言处理系统的性能。transformer使用多头注意力机制(multi-headattention)实现词粒度级别的信息交互,经过预训练的模型将有更强的语义编码能力。

但是为了保证计算与运行效率,bert对输入文本的最大长度进行了限制(最长为512)。如果长度超过限制,则需要对输入文本进行截断、抽取、或采用一些其他方式来拓展模型文本容纳量。除此以外,bert模型大,参数多,目前多采用使用无监督方法预训练好的公开模型,在此基础上进行后续的训练。因此bert模型更多的存在于学术理论研究中,实际应用中通常需要进行模型的压缩。



技术实现要素:

为了克服上述现有技术的缺点,本发明的目的在于提供一种基于文本摘要生成与双向语料改善对话文本生成的方法,针对对话文本生成中的上下文主题一致性和多样性进行建模和学习,利用自然语言处理领域先进技术,加强模型对对话历史信息的理解,从而改善文本生成效果。

为了实现上述目的,本发明采用的技术方案是:

步骤1,处理文本摘要数据,并进行预训练,构建预训练文本摘要生成模型,其中文本摘要数据包含原始新闻文本数据和人为编写的抽象文本摘要数据。

具体地,针对输入的原始新闻文本数据和抽象文本摘要数据,进行分词、停用词过滤等通用的预处理。针对新闻文本存在显著的文本格式和位置关系,对原始新闻文本数据进行加噪声处理,增强预训练模型对输入内容的理解能力和鲁棒性。使用基于bert模型构建生成式文本摘要模型,生成器采用多层叠加的transformer-decoder搭建,使用word2vec词嵌入模型将词转为对应的编码向量,在每个词的对应位置生成词位置向量,在每个句子的对应的句位置向量,将三者输入模型,定义需要优化的目标函数,通过梯度反向传播对文本摘要模型参数进行迭代优化,以获得对输入文本内容的凝练概括。

步骤2,处理短文本对话语料,并构建语句依赖关系判别器,短文本对话语料由对话历史文本和响应文本组成,将两者进行正向和反向拼接,构建语句依赖关系判别器,由此获取具有强双向依赖关系和强单向依赖关系的语料对。

具体地,将短文本对话语料中对话历史语句和响应语句组成语料对,进行正向和反向的拼接,以bert模型为基础构建语句依赖关系判别器,标注具有强双向依赖关系和强单向依赖关系的语料对,并利用预训练的文本摘要生成模型,生成对话历史语句的单句摘要文本。对于具有强双向依赖关系的语料对,将该摘要文本与响应文本组成的语料对交替作为对话模型的训练输入和输出语料;对于具有强单向依赖关系,以其标注结果为正的方向,将对应的文本作为模型的训练输入和输出。

步骤3,加载部分预训练文本摘要生成模型,构建短文本对话生成模型,并使用步骤2得到的语料,使短文本对话生成模型学习到强的上下文依赖关系,同时不失多样性,通过梯度反向传播,更新短文本对话生成模型。

步骤4,使用短文本对话生成模型完成对话生成任务,获取训练好的短文本对话生成模型,并固定所有模型参数,输入对话历史文本,生成对应的响应文本。

具体地,加载部分预训练文本摘要生成模型,生成器同样采用多层叠加的transformer-decoder搭建而成,但与预训练摘要生成模型不共享模型模型参数,在对话语料上进行第二阶段的训练,定义需要优化的目标函数,通过梯度反向传播更新模型参数,习得强上下文依赖关系和对输入对话历史的深度理解概括能力,生成具有高度语义匹配和多样性的响应文本。

综上,本发明结合bert预训练模型与预训练任务的优势,采用bert模型作为编码器,transformer-decoder结构作为解码器,搭建编码器-解码器模型,作为预训练文本摘要生成模型和短文本生成模型。在引入位置信息后,bert模型内部多层叠加的多头注意力机制有助于加强模型对输入文本的语义理解能力,利用文本摘要生成任务对预训练文本摘要生成模型进行训练,从而使bert模型能够生成高度概括的语义编码向量。

在预训练文本摘要生成模型中,为避免原始新闻文本自身存在的特殊文体格式对模型参数更新和语义理解能力的影响,引入了一系列特定的加噪声方法,一方面扩充文本摘要数据,另一方面加强预训练文本摘要生成模型的多样性和泛化性能。

针对短文本对话生成中存在的上下文一致性较弱的问题,引入上下句依赖判别器,对无强单向和强双向依赖关系的对话语料进行舍弃,对有强单向或强双向依赖关系的语料,进行保留,并利用预训练文本摘要生成模型,生成对话历史文本的摘要文本,并将其与响应文本按照强依赖方向组成新的对话语料对,由此构成具有强依赖关系的双向对话语料。在短文本对话生成模型中,加载预训练文本摘要生成模型的编码器,利用双向对话语料进行短文本对话生成模型编码器、解码器的参数迭代更新。

与现有技术相比,本发明的有益效果是:

1、可有效避免生成通用响应文本。

2、响应文本与对话历史文本之间的关联性明显加强。

3、响应文本与对话历史文本之间主题近似,具有概括和凝练的特点。

附图说明

图1是本发明整体架构图。

图2是本发明基于bert的预训练文本摘要生成模型和数据加噪声方法示意图。

图3是本发明基于bert模型的语句依赖关系判别器与对话文本生成模型示意图。

具体实施方式

下面结合附图和实施例详细说明本发明的实施方式。

参考图1,本发明为一种基于文本摘要生成与双向语料改善对话文本生成的方法,包括如下步骤:

步骤1,处理文本摘要数据,并进行预训练,构建预训练文本摘要生成模型,其中文本摘要数据包含原始新闻文本数据和人为编写的抽象文本摘要数据。

其中,参考图2,处理文本摘要数据方式如下:

步骤1.1,文本摘要数据预处理

预处理对象包括文本摘要数据和对话文本数据,文本摘要数据包括原始新闻文本数据和人为编写的抽象文本摘要数据,对话文本数据包含对话历史文本和响应文本。预处理流程主要包括文本分句、文本分词、过滤停用词、词干提取和词性还原等。该过程使用stanfordnlp实现,而后将所有单词转为小写。

步骤1.2,文本摘要数据加噪声处理

由于文本摘要数据集多为新闻语料,而新闻具有特殊的文本格式和要求,因此简单的提取首句或者仅学习位置关系也可以得到很好的文本摘要生成效果,但这在一定程度上弱化了模型对于输入文本信息的理解,当将该文本摘要生成模型运用在对话语料历史语句中时,难以保证较好的鲁棒性和较强的语句理解能力。因此,去掉所有文本摘要数据中的原始新闻文本的首句,并对预处理后新闻文本语句数量大于5的语料分别进行随机打乱、随机删除、随机翻转三项加噪声数据增强操作。

随机打乱:以句子为基本单位,进行随机打乱3次,保留3次打乱的文本互不相同且与未打乱文本不同,最多进行10次打乱操作,超过10次停止。

随机删除:以句子为基本单位,进行随机删除,保留3次删除位置完全不同的文本,同样最多进行10次删除操作,超过10次停止。

随机翻转:以句子为基本单位,随机选定一个句子,将该句子以及后面的所有句子,调换到前面,原先前面所有的句子从篇首改为篇尾,保留3次旋转位置不同的文本,同样最多进行10次翻转操作,超过10次停止。

加噪声处理后,单个文本摘要语句最多会被扩充为10个文本摘要语句,且分散在整个文本摘要训练语料中,从而将原始文本摘要数据进一步扩大。

步骤1.3,针对模型的数据处理

使用bert标注器将对应的单词转为词序号,对于原始新闻文本x=[x1,x2,...,xn],在句子之间采用[sep]进行分隔,添加[cls]标志作为整个新闻文本数据的开头,添加[sep]标志作为整个新闻文本数据的结尾。同时,针对模型输入长度限制,对新闻文本数据进行剪裁,生成一个与处理后的原始新闻文本等长的向量,按句子的奇偶位置分别填充为全0和全1,得到句位置编码向量sentposemb(x)。按照bert模型的词位置向量编码方式,采用正余弦函数生成每个词的词位置向量tokenposemb(x)。使用word2vec词嵌入模型将词转为对应的编码向量tokenemb(x)。将编码向量、词位置向量和句位置向量相加,从而得到预训练文本摘要生成模型的输入z=[z1,z2,...,zn'];

z=tokenemb(x)+tokenposemb(x)+sentposemb(x)(1)

抽象文本摘要数据y=[y1,y2,...,ym]采用自定义的标识符同样进行句子间的分割,以及抽象文本摘要数据开头和结尾的添加。针对模型输入长度限制,对输入向量进行剪裁。对每个输入模型的语料批次,均进行打乱处理。

预训练文本摘要生成模型采用编码器-解码器框架(encoder-decoder),构建方式如下:

编码器采用了官方发布的bert模型,bert模型由多个transformer-encoder模块和前馈神经网络层组成,transformer-block使用多头注意力机制(multi-headattentionmechanism),该结构一方面可以减小注意力机制计算复杂度,便于进行大量并行运算,学习远距离依赖,另一方面能够让模型从不同角度理解输入的序列,multi-headattention机制的公式如下:

headi=attention(qwiq,kwik,vwiv)(3)

multihead(q,k,v)=concat(head1,...,headh)wo(4)

这里使用了预训练bert-large-uncased模型,其中transformerlayer+feedforward的层数为24层,隐藏层维度为1024,16个注意力头,总共包含340m个训练参数,也可根据实际情况更换为其他bert预训练模型。前向传播模型和layernorm的公式如下:

ffn(x)=relu(w1x+b1)w2+b2(5)

公式2-4和公式5-7共同构成了bert编码器,说明了bert模型如何从输入向量到完成向量语义编码和理解的过程。

预训练文本摘要生成模型的解码器采用transformer-decoder结构堆叠而成,共堆叠6层,后接线性映射层,从而将生成概率映射到对应的词典中。transformer-decoder结构与transformer-encoder结构相似,区别主要在于多头自注意力机制的输入不同和注意力掩盖矩阵(mask)不同。为了避免对的影响,注意力掩盖矩阵(mask)为斜三角矩阵。其中隐藏层维度为768,8个注意力头,前向传播的隐藏层维度为1024。在解码器中,使用束搜索(beamsearch)以增强对话生成文本的多样性。

解码器的线性映射层起初加载与编码器中word2vec相同的模型参数,但在梯度反向更新过程不保持参数共享,以此保证在编码器和解码器中分别获得自适应的词映射模型。

yi=w1dh1r+b(8)

基于原始新闻文本,选择概率最高的摘要文本作为模型的输出。单个语料对的损失函数为:

在完整训练语料中完成模型训练的损失函数为:

模型中使用负对数似然函数(nll)进行损失函数的计算。在每个transformer自层中添加dropout进行正则化约束,提高模型的泛化能力,pdropout=0.2。模型采用adam优化器进行自适应的梯度反向传播,更新模型参数。其中β1=0.9,β2=0.999。初始学习率为e-2,学习率的更新方法为:

l=l0*min(step_num-0.5,step_num*warmup_steps-1.5)(11)

模型的效果采用rouge指标进行测评,该指标主要是基于召回率(recall)进行计算。为了更好的评价模型的效果,通常同时采用rouge-n和rouge-l进行评价。rouge-n是在n-gram上计算召回率,用于衡量模型与参考摘要之间的重叠程度;rouge-l考虑了模型生成结果与参考摘要文之间的最长公共子序列,用于衡量模型生成效果的多样性。

步骤2,处理短文本对话语料,并构建语句依赖关系判别器,短文本对话语料由对话历史文本和响应文本组成,将两者进行正向和反向拼接,构建语句依赖关系判别器,由此获取具有强双向依赖关系和强单向依赖关系的语料对。

参考图3,本发明具体是利用预训练文本摘要生成模型,生成对话历史文本的单句摘要文本,对于具有强双向依赖关系的语料对,将该摘要文本与响应文本组成的语料对交替作为对话模型的训练输入和输出语料;对于具有强单向依赖关系,以其标注结果为正的方向,将对应的文本作为模型的训练输入和输出。

bert模型的预训练任务包含基于mask机制的语言模型建模和下一句关系预测(nextsentencepredictions)两项,在bert模型预训练中均采用无监督训练完成。本发明基于bert模型搭建判别器,进行有监督的下一句关系预测训练。

判别器的编码器使用预处理文本摘要生成模型的编码器,后接sigmoid分类器,输出以当前拼接方式拼接的两个输入语句之间的单向强依赖关系概率。以对话历史文本在前、响应文本在后的拼接方式为正向拼接,反之为反向拼接。如果正向拼接的判断结果为强依赖,则保留原对话语料,并利用预训练文本摘要生成模型生成对话历史文本的抽象文本摘要数据,将对话历史摘要-响应文本语料对添加到短文本对话生成模型的训练语料中;如果反向拼接的判断结果为强依赖,同样生成对话历史文本的抽象文本摘要数据,并将响应文本-对话历史摘语料对添加到短文本对话生成模型的训练语料中;如果正向反响判断的结果均很差,则舍弃该语料,如果正向反响判断的结果均很差,则舍弃该语料,避免上下文弱依赖语料对模型训练效果的影响。预训练文本摘要生成模型生成的结果具有不定性,因此,该过程增加了对话生成语料的多样性。

score=f(x)=σ(wox+bo)(12)

判别器同样采用两阶段训练的方法。第一阶段单独训练判别器:首先人工标注多条(本实施例中选择500条)一对一对话语料。该语料来自于康奈尔大学电影对话语料(cornellmovie-dialogscorpus),从中筛选出句子长度超过5个词,且非通用响应的多条(本实施例中选择500条)对话语料,每条语料均标注出正向和反向是否有强依赖关系。固定判别器的编码器参数,只使用改标注语料更新单层全连接层参数,参数更新的结果作为判别器参数初始化值。

使用平方损失函数作为判别器模型的损失函数,使用随机梯度下降(sgd)进行梯度反向传播,更新分类器参数:

l(f(x),y)=[f(x)-y]2(13)

而后,判别器的sigmoid分类器与后续短文本对话生成模型的参数一起更新,但是判别器的编码器参数仍然固定,不参与更新,避免短文本对话生成模型过大。

步骤3,加载部分预训练文本摘要生成模型,构建短文本对话生成模型,并使用步骤2得到的语料,使短文本对话生成模型学习到强的上下文依赖关系,同时不失多样性,通过梯度反向传播,更新短文本对话生成模型,使用短文本对话生成模型完成对话生成任务,获取训练好的短文本对话生成模型,并固定所有模型参数,输入对话历史文本,生成对应的响应文本。

本发明目的是通过以抽象文本摘要生成任务作为预训练任务,并结合双向语料改善短文本对话模型的效果。因此,在完成预训练文本摘要生成模型的训练后,需要获取双向语料用于对话模型的训练,并搭建短文本对话生成模型。bert模型作为近两年提出的预训练模型,以transformer-encoder模块搭建而成,具有较强的自然语言理解能力,且在自然语言处理领域的多项任务中表现极佳。因此,短文本对话生成模型同样基于bert模型和transformer实现。即,本发明中,短文本对话生成模型生成器采用多层叠加的transformer-decoder搭建而成,但与预训练文本摘要生成模型不共享模型模型参数,在对话语料上进行第二阶段的训练,定义需要优化的目标函数,通过梯度反向传播更新模型参数,习得强上下文依赖关系和对输入对话历史的深度理解概括能力,生成具有高度语义匹配和多样性的响应文本。

具体地,短文本对话生成模型与预训练文本摘要生成模型基本相同,同样采用编码器-解码器框架(encoder-decoder)。其中,预训练文本摘要生成模型中的编码器与短文本对话生成模型的编码器完全相同,且加载其训练后的模型参数,解码器同样采用多层transformer-decoder搭建而成,但短文本对话生成模型的解码器不加载预训练文本摘要生成模型的解码器的模型参数,而是单独在对话训练语料集上进行训练。对话历史语句为x=[x1,...,xn],响应文本为y=[y1,...,ym],因为这里的语料对为正反向对话训练语料,因此对话历史语句中也存在不少单句,而对于包含多条句子的对话语料,按照bert模型的输入限制,进行前向截断(即从尾部向前进行截断,保留距离响应文本较近的对话历史语句)。

语料加载和处理采用基于寄存器的方法。数据加载过程每进行一次,都从训练语料库中加载buffersize训练语料对,在此基础上使用对话语料强依赖关系判断器,将其处理为正反向训练语料对。而后对语料对的顺序进行随机打乱。模型每次进行数据输入时,从处理后的寄存器语料对中抽取batchsize语料对作为当前训练数据,再此batch中进行词标注器标注、嵌入词向量生成、词位置向量生成、句位置向量生成,由此完成从自然语言的数据化处理。当完成当前寄存器中数据的读取后,再进行下一次的寄存器数据读取,直至完成训练过程。这样基于寄存器的数据加载过程,一方面可以避免一次性读入过多对话训练文本语料对计算机内存带来的负担,另一方面,可以在设定的寄存器大小范围内进行打乱,避免原始对话文本语料对、正向摘要文本语料对和反向摘要文本语料对距离过近,影响训练效果。该方法同样应用在预训练文本摘要生成模型的数据加载过程中。

短文本对话生成模型的解码器采用改进版的多样性束搜索(diversebeamsearch),进一步改善生成效果。将每一个beam等大划为g个组,在每个组内进行标准的束搜索过程,同时在生成过程中引入非相似约束项,避免组与组之间太过相似,最终从g的组的所有生成结果中取概率最高的几个结果。

训练神经网络时,最小化预测概率和真实响应文本概率之间的交叉熵,从而得到最优的预测概率分布。由于交叉熵损失函数存在容易过拟合的问题,所以在解码过程中加入标签平滑策略(labelsmoothing),加强模型的泛化性。

该模型同样使用adam优化器进行梯度反向传播,更新模型参数,学习率的设置和更新方法与预训练文本摘要生成模型相同。在进行模型测评时,使用bleu和dist-n分别进行生成结果覆盖率和多样性的测评,以判断模型的效果是否符合要求。

最终,通过以上学习过程,能够得到具有高上下文依赖和一致性的,具有多样性的响应文本。

综上,本发明一方面基于多轮对话历史文本生成当前的响应文本,通过使用bert模型以文本摘要生成作为预训练任务,获取对对话历史文本的深度理解,并使用正反双向语料保证生成文本与对话历史的上下文一致性。另一方面基于互联网上大规模文本摘要语句,进行两阶段训练,让计算机自动地学习对文本语料的深入理解能力,并将这种能力迁移到短文本对话中,充分理解已有的一句或多句对话历史文本,生成具有多样性和上下文一致性的响应文本。该文本有利于改善用户的使用感受,促进对话长久持续的进行。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1