APP下载

知识对话系统的零资源在线更新

2022-06-21林健成蔺晓川

中文信息学报 2022年5期
关键词:语料人工模板

林健成,蔺晓川

(暨南大学 网络空间安全学院,广东 广州 510000)

0 引言

随着用户对人机对话的需求不断演变,越来越多的研究者在该领域开展广泛的研究。为了满足用户情感陪伴的需求,微软亚太研究院推出了微软小冰[1],而为了通过对话完成特定的任务,如电商、咨询等,阿里团队推出了阿里小蜜[2]。基于深度学习的预训练模型已经在对话系统中被广泛使用,如DialoGPT[3],这些模型能够在没有特定背景的闲聊中取得近似人类聊天的表现水平。在上述提及的对话系统中,都引入了一些外部知识源,如知识图谱[4]、新闻文章[5]等。这些外部知识源能够帮助对话系统生成符合语境且与客观事实相一致的回复。

知识对话系统包括知识库的构建、知识选择[6]和知识对话生成[7]三个部分。其中,知识库的类型包括知识图谱、文章片段等。在知识对话中知识库是一个与特定领域相关的语料集合,主要依靠人工标注和信息抽取等方式来构建和维护。知识选择指的是在知识对话中,检索和选择所需要的知识。知识对话生成则是指根据给定的知识,生成一个符合聊天上下文的回复。图1是一个具体的知识对话例子,用户谈及电影《我是山姆》,对话系统不仅生成了与电影话题相关的回复,并且正确引用了《我是山姆》的信息。

图1 知识对话样例

目前知识对话系统的研究较少考虑知识对话系统的在线零资源更新的情况。然而在实际应用中,及时更新知识对话系统的参数,使得其与时俱进是至关重要的。在模型的在线更新中,需要一个结构为<知识,对话>的数据集,其中对话部分结构为<上下文,回复>。在实际环境中,我们可以通过网络爬虫等获取相关的知识描述。但由于对话部分需要与对应的知识相关,所以很难自动收集,并且人工标注的成本过于巨大,造成了知识对话系统在线更新遭遇零资源可用的问题。

如图2所示,对话语料零资源可用的情况分两种: ①对话语料整体缺失。因为用于在线更新的语料需要跟特定的知识相关,从而很难通过自动化收集,而人工 标注的 成 本太高。为了解决这个问题,该文提出使用模板构建合成数据、模板结合生成模型构建合成数据、知识保留构建合成数据三种方法来缓解对话语料缺失这个问题。②虽然①中所提及的语料难自动收集,但网络上存在一些与特定知识相关的文本。这些文本虽然与知识相关,但其组织形式不构成所需对话语料的格式,这种情况我们称之为上下文缺失,该可利用的文本称为不成对文本(unpair data)。针对上下文缺失,该文考虑使用知识对话的特殊性,使用检索、过滤、排序的方式构建合成数据。为了检验这些方法的有效性,我们在Kdconv[8]数据集上进行实验。首先,本文构建了一个电影领域的对话模型作为基线模型,并且将电影领域视为模型学习的初始领域。进一步,我们在该模型上使用音乐、旅行两个领域的对话数据作为在线更新学习的目标,并与使用人工标注数据进行在线更新的模型对比。结果表明,四种合成数据都能在零资源的情况上有效地进行在线更新。其中,在PPL、Coverage、主题相关度上模型的表现都接近使用人工标注数据进行在线更新的模型。

图2 在线更新遇到的问题与缓解方法

本文的贡献如下: ①使用合成数据在零资源的情况下进行模型在线更新,验证了其可行性; ②针对不同的场景,提出了不同的合成数据生成方法; ③实验表明,本文方法接近使用人工标注数据进行在线更新的效果。

1.相关工作

近年来,由于深度学习在多个领域取得了显著成效,研究人员开始将深度学习使用在知识对话系统中。当前的BERT[9]和GPT-2[10]等算法使用大量数据进行训练,在对话领域取得十分突出的成果。基于这两种模型,Google推出Meena[11],Facebook推出Blenderbot[12]等对话预训练模型,进一步推动了人机对话的研究进展。在这个过程中,研究人员发现知识集成到对话生成中可以使生成的结果更加多样化和可控。文献[13]使用wiki作为知识库,进行知识对话生成,使得回复更具备信息量;文献[14]将人设信息作为一种额外知识,使模型基于这些信息进行对话,使得对话内容更加可控;文献[15]依据给定的图片进行多模态对话,使得对话生成的结果更符合图片内容。虽然上述方法都在给定的知识背景下取得一定进展,但未考虑模型在新知识上的表现。比如当模型遇上不在训练集中的实体时,模型表现会有所下降,尤其是当新实体与训练集存在领域上的差异时,模型甚至无法继续使用。目前,为了解决模型更新前后领域可能不一致的问题,文献[16]提出一种迁移学习的方法,文献[17]提出使用不同的adaptor来适应前后领域存在差异的情况。文献[16-17]都缓解了模型更新前后领域冲突的情况,但都假设新领域的数据充足,而现实情况并不总是能满足该假设。这些更新方法需要离线更新模型再部署,造成人力成本、时间成本较大。因此研究知识对话系统零资源在线更新是有必要的。Facebook[18-19],以及文献[20]提出在线交互学习方法,利用人类交互数据进行模型更新,虽然它们能够满足在线更新的条件,但其用于学习的数据仍然具有收集成本巨大、噪声大等缺点,且该方法并没有考虑知识对话的场景,只考虑了无背景闲聊的场景。在知识对话在线更新的场景中,对话语料需要和特定的知识背景相关,这导致了想自动地收集到大量的数据是十分困难的。针对数据资源缺乏的问题,文献[21]使用RNN对上下文编码器和知识编码器的预训练在少资源的知识对话系统上取得进步。文献[22]使用预训练模型与合成数据等方式来缓解对话生成模型对人工标注数据的依赖,在一定程度上减轻了知识对话系统的学习对知识标注的依赖。但上述两种方法只考虑了知识对话模型的初次学习,并没有考虑模型后续在线更新中数据零资源的问题,不能直接用到知识对话零资源更新的问题上。同时,上述研究内容主要集中在英语领域,在中文领域的知识对话系统研究较为缺乏,需要研究人员弥补这个缺陷。

2.方法

本节中先陈述任务描述,然后分别描述不同情况下合成数据生成的策略。

2.1 任务描述

用于知识对话系统在线更新的语料结构由多个集合组成。其中,R为对话的回复,由多个token:r1……rn组成。C为对话的上下文,由多个句子组成,每个句子也由多个token组成。K是一个给定的知识集合,K={ki|i=1,2,3,…,n},该文研究的知识类型限定在知识图谱,ki为一个知识条目,以三元组(Entity,Attr,Value)的形式组成。对于任意一个知识对话生成的模型来说,其输入为(C,K),由对话上下文和给定的知识内容拼接而成。生成模型需要建模P(rn|C.K,r1……rn-1),模型需要根据给定的上下文、知识和已生成的字符去预测下一个字符的概率。

在知识对话系统的在线更新中,需要与新知识K′相关的的语料。由于上文提及两种语料零资源的情况,会存在不同情况的缺失,本文算法需要结合存在的K′生成来解决知识对话在线更新时语料零资源的问题。

2.2 整体对话缺失

在实际的知识对话系统的在线更新中,对话语料零资源,最常见的情况是对话语料整体缺失。我们提出的策略需要在给定知识K的条件下,生成用于在线更新的对话语料。 文本生成中基于模板生成是一种可行的方法,其具有可控、易拓展的优点。因此针对整体缺失的情况,我们使用模板填充与生成模型结合的方式来进行合成数据的构造。利用模板可控的优点,我们可以设计特定的槽位,填入与特定知识相关的词语。因此使用如表1所示的模板填充可以很方便地让合成数据与特定知识的相关。

表1 简单模板示例

其中,{entity}、{attr}、{value}分别对应ki中的Entity、Attr、Value三个部分。通过对新的知识K′进行遍历,在遍历过程中对模板进行填充,即可生成批量的合成数据。

在知识对话系统的应用过程中,除了与特定知识相关外,用户也可能与其进行闲聊。在闲聊中,回复是否多样化、是否平滑地衔接上下文成为主要的目的。模板生成数据除样式缺乏多样性外,对话的衔接和递进也较差,不利于模型在线更新后使用。与模板特性相反的是,生成模型具有灵活、生成结果多样化等优点,在NLP任务中得到了广泛使用。模型可以通过指定的上下文来完成问答、对话生成、文章续写等功能。DialoGPT是微软将Transformer结构应用到对话生成任务中的生成模型,其在对话生成任务上取得稳健的效果。为了使生成的合成数据符合闲聊的场景,我们进一步将模板和DialoGPT模型进行结合。

我们先使用模板生成一个关于ki的对话对,然后使用DialoGPT模型续写该对话,重复该过程至对话K’中的每一个ki遍历完毕。

表2中Response的白体字部分使用模板生成,而粗体部分则是由DialoGPT模型续写而成。该做法能使得回复在正确引用知识的同时,更自然和更具有多样性。

表2 简单模板示例

DialoGPT是用于对话生成的一个预训练模型。其输入为词语token embedding(te)和position embedding(pe)的和。

E(x)是tokenx的Embedding表示,P(x)是位置为x的Embedding表示。输入的向量经过多层的Transformer得到最终的隐空间表示,并使用最后一层的Transformer进行句子概率的建模:

式(4)中Ht为第t层的隐变量输入,Ot+1为该层的输出,其中O0为式(1)中的Input。

除此之外,在模型的在线更新过程中,灾难性遗忘是需要解决的一个重要的开放性问题。在本文中,使用了一种知识保留的方法来缓解该问题。虽然新对话领域的资源为零,但原对话领域的仍然可用。因此我们在生成的合成数据中混入了跟合成数据的比例为a的原领域的数据。模型在混合后对数据进行跨域学习。在我们的实验中,a的取值为1时,模型的在线更新表现效果最好。

2.3 上下文缺失

虽然对话语料很难收集,但网络上仍有一些不成对文本可以作为对话的回复使用,比如一些用户对某部电影的评论。这种情形我们称其为上下文缺失。换言之,对于一些领域,除了新知识K′外,我们也能获取可作为回复R′的语料。但是由于中C′仍为空,模型要想建模P(R′|C′,K′),需要使用一定的方法解决C′缺失问题。

在该场景下,我们使用检索模型和过滤算法,在闲聊数据集LCCC[23]上进行检索。用检索的结果来作为C′,从而使得模型可以正常的建模P(R′|C′,K′)。该策略的合成数据的构造算法具体如下: ①先在LCCC数据集上根据(C,R)进行索引构建; ②我们在上文提及的不匹配数据中抽取含有知识的文本,作为R′。使用BM25算法在该数据库上进行检索,获取R与R’最为相似的50数据对集合{(C,R)i|i=0,…,50}; ③是用过滤算法过滤掉含有人名、敏感词的数据对(C,R)i; ④将经过过滤的数据对中的C与R′输入BERT进行打分,将得分第一的C视作C′,构成合成数据。

其中BERT将对话的上下文和候选的kesponse作为输入。其中原始的kesponse作为正例记作r, 在同一语料中随机抽取样本,作为负样本,记作r-,按照以下损失函数在 LCCC数据集上进行优化,如式(6)、式(7)所示。

式(7)中,Wt和bt是全连接层的参数,其中,r是每个对话中对应的回复,将匹配的(c,r)的标签设定为label=1,而r-是在同一语料、[不同对话上下文中随机抽取的回复,以此作为负样本,其标签设定为 label = 0。用同样的方法计算p(label=0|c,r),整体语义匹配问题转化成文本二分类问题,可用以下损失函数对模型进行优化,如式(8)所示。

(8)

3. 实验

3.1 实验设置

在我们的实验中,使用了预训练模型BERT和DialoGPT。DialoGPT共有12层Transformer。每一层Transformer具有12个head,每一个hidden state的输出为768维向量。模型的训练使用交叉熵作为目标函数,以1e-4的学习率使用Adam进行优化。在4.2节中提出的构建Pseudo Data方法中使用的DialoGPT使用清华公开的数据集LCCC进行训练。我们使用DialoGPT在知识对话数据集上进行微调,作为我们用于进行实验的知识对话系统。我们使用的BERT结构与上述提及的DialoGPT相似,不同点在于使用的损失函数不同。同时,本文使用的BERT为了学到可用于通用对话语义匹配的特征,在LCCC上进行训练。

我们的实验在清华大学公开的多领域数据集KdConv上进行实验。KdConv是一个覆盖电影、音乐、旅游三个领域的对话数据。该数据集包括了movie、music、travel三个领域的知识对话数据,86K的数据样本、句子级别的知识标注。在知识部分,共包括13 072个实体,9 115个关系,总计157 029个知识三元组,如表3所示。

表3 KdConv数据统计

实验中,我们假设模型的在线更新在前后不同主题的语料上进行,这也是符合现实的,因为现实增长的知识是多种多样的。为了展示我们生成的合成数据,可以帮助知识对话模型在对话语料零资源的情况下实现在线更新,我们设计了增量实验和对比实验两部分。增量实验部分,我们以KdConv测试集为总数据量,0.25为一个步长,模拟现实中知识逐渐增长的过程。通过增量实验去探索我们的知识对话系统是如何适应知识的不断增长,以及说明模型在不同资源量下合成数据和人工标注数据对模型在线学习的影响。在对比实验上我们采用如下几个对比算法,用于衡量我们提出的方法各个部件对算法的影响。

(1)DA(DataAugmentation): 我们采用数据增强的方法来构建Baseline。由于本文假设在线更新时,新知识的对话语料可用资源为零,因此我们的数据增旧知识上的数据上进行。在数据增强算法中,常用的一种方法是使用同义词进行替换,以达到表达方式的多样化。在该文知识对话场景中,我们在对话数据上使用新知识的实体替换旧对话数据上知识实体的方法进行数据强化。

(2)DialoGPT: 我们的算法使用DialoGPT进行建模,所以使用在通用对话数据集LCCC上进行训练的DialoGPT作为实验的baseline。

(3)GPT_movie: 该模型是DialoGPT在电影领域的知识对话数据上进行微调,具有一定的知识对话能力。

(4)RR(ResponseRewrite): 美团联合腾讯发表的论文[24]提出了一种利用同义词表和语言模型对对话语料中的Response进行重写。通过该方法构造的合成数据可以缓解不同对话风格的语料稀少难收集的问题。根据该论文的介绍,其方法在自动评估和人工评估中达到了当前的最佳水平(SOTA)。本论文将不同领域的对话数据视作不同的风格,在该方法上进行适配,并以此作为实验的Baseline。

(5)GPT_movie+T(Our): 该模型在GPT_movie上加入特定领域的的模板数据进行训练。

(6)GPT_movie+C(Our): 该模型在GPT_movie上加入特定领域合成的闲聊数据进行训练。

(7)GPT_movie+T+OLD(Our): 这个模型使用特定领域的模板数据和等量的旧领域数据进行在线更新。

(8)GPT_R(Our): 这个模型针对上下文缺失的场景,我们使用目标领域上人工标注的对话回复视为R′,通过检索模型构造其缺失的上下文,最终生成合成数据。

(9)GPT_human: 该模型使用对应领域中人类标注数据进行在线更新,是我们提出的方法应该逼近的模型。

以上所述的设置中,GPT_movie+T(Our)、GPT_movie+C(Our)、GPT_movie+T+OLD(Our)为利用本文针对对话缺失的情况提出由不同设置生成的合成数据进行在线更新后的模型。而GPT_R(Our)则是使用本文针对上下文缺失情况提出生成策略生成的合成数据进行在线更新后的模型。

3.2 实验评价指标

在实验中,我们使用如下指标进行模型性能的衡量。

(1)PPL(Perplexity): 该指标用来衡量生成的回复的语言流畅程度,PPL取值越小越好。

(2)Coverage:为了衡量生成的回复是否正确并充分地利用了给定的知识文本,我们首先使用开源工具jieba进行中文分词。分词后使用word-leval级别的token计算生成的response和给定知识的文本描述的程度。

(9)

其中,|V|表示给定知识描述K的token个数。|v|表示生成的对话回复中的token与给定知识的token交集大小。

(3)BagOfWordScore(BoW): 让模型学习使用知识内容进行表达是十分中重要的。涉及不同主题的数据进行在线更新后的模型,仍有一定可能会混肴新知识和旧知识所对应的一些概念。为了衡量合成数据对模型这方面的能力的影响,我们使用Bag of Word Score对模的这一能力进行评测。Bag of Word Score的具体计算如下: ①首先采用TF-IDF算法计算出各领域的关键词,将得分前10的关键词作为候选集; ②然后人工在该候选集中挑选出5个与领域主题最为贴切的主题词。具体的主题词如表4所示。③当生成回复含有某个主题的主题词时,积累1分。如果三个主题的主题词都不包括,则记为主题无关。在测试集上首先使用模型进行回复生成,然后对整个生成结果进行计算。在计算的最后对电影、音乐、旅行、主题无关四个得分进行归一化。由于生成结果具有随机性,后续实验结果均是三次实验取平均后的结果。

表4 主题词展示

我们使用该指标在人类标注数据上进行计算,结果如表5所示。其结果表明,在真实的人类对话中有大量的主题无关语句,比如用于打招呼、道谢等语句。而剔除主题无关的语句后,剩下的语句表现出明显的主题倾向且符合对应的主题。这表明该指标能有效表明一个回复集合的主题倾向,进而可以评测模型生成的回复的主题倾向。下文中,我们使用BoW_movie, BoW_music, BoW_travel, BoW_natural分别表示movie,music,travel三种倾向和与主题无关的分数。

表5 人工标注数据的BoW分数

3.3 实验结果与分析

实验结果如图3、图4所示。增量实验表明,本文提出的各种合成数据都能使得模型有效地进行在线更新。从图中可以看出,以0.25为步长增长的数据,在每次递增后都能有效减少PPL。因为合成数据中含有噪声等因素,其PPL下降曲线相比使用人工标注数据进行跨域学习的曲线下降起伏较大,但随着数据量的增大,使用合成数据进行训练的模型依然可以有效提升模型的表现性能,但总体仍然呈现下降的趋势。考虑到灾难性遗忘而提出的GPT_movie+T+OLD(Our)取得接近使用人工标注数据的水平。同时,为了应对上下文缺失而提出的GPT_R(Our),性能表现达到全部策略的最佳。这表明,如果不匹配数据可得,那么充分利用这些缺失上下文的语料能够有效提升模型的跨域学习能力。这是因为,这些不匹配的上下文仍属于人类自然产生的语句,具有更自然的表达方式。此外,对比不同目标领域的在线更新(从电影到音乐和从电影到旅游),我们提出的基于合成数据的在线更新方法不依赖于跨域学习前后是否具有领域相似性,其具有一定的普适性。

图3 使用音乐领域数据进行在线更新

图4 使用旅游领域数据进行在线更新

如表6、表7所示,经过对比实验,我们发现本文提出的合成数据的生成方法生成的合成数据都能有效实现知识对话系统的在线更新。对比数据增广方法(DA),我们的方法在主题倾向方面表现得更好。词替换等常见数据增广方法只能在训练语料可能的情况下进行。据我们分析,这是因为在完成新领域知识对旧领域知识替换后,语句上一些无关知识的词语并不会被替换,而这些词语往往跟主题有关。比如“电影”“主演”等词语与具体的实体无关,却与主题高度相关。由于该原因,导致了使用常用的数据增广方法进行跨域学习的模型,并不能学会新领域上特定的表达方式。比如从电影领域到音乐领域,使用DA进行跨域学习的模型会将“音乐专辑”实体视作“电影”实体进行表达。正如表中BoW_movie所示,在模型在线更新后生成的语料中,仍有12%或20%倾向于原有领域。而使用我们生成的合成数据进行的跨域学习,则只有少于8%的倾向。尤其是在不相似的领域进行在线更新,错误的主题倾向大幅度减少。

表6 使用音乐领域数据进行在线更新

表7 使用旅游领域数据进行在线更新

对比其他基线方法,虽然DialoGPT使用的大规模的闲聊数据LCCC中包括了广泛的聊天话题,但模型并没有学会在特定领域使用知识进行对话的能力。在KdConv上各项指标,尤其是知识覆盖率上并不理想。而经过movie领域的数据进行微调得到的DialoGPT_movie则学到了一定的知识利用能力。但正如表中数据所示,这些能力与对话领域相关,在与原领域不相似的旅游领域上的表现要远远差于跟原领域相似的音乐领域上的性能。在音乐领域,DialoGPT_movie的知识覆盖率为51%,而在旅游领域上,知识覆盖率下降至34%。同时,在音乐领域生成的回复以27%倾向于对应的主题,而在旅游领域则只有5%。而使用我们生成的合成数据进行跨域学习后,各项数据都能超越DialoGPT_movie,说明了本文方法的有效性。作为SOTA的RR,因为考虑同义词表对Response进行重写操作,在PPL、BoW等指标上显著优于其他Baseline,略优于本文方法。该方法即使使用了语言模型来保证重写后数据的语法通顺,也不能完全避免该问题,而我们提出的方法使用人类设计的模板或正常对话数据,因而在PPL上优于RR。同时,RR需要在模型更新前知道新数据所属的领域以便维护同义词表, 其通用性不如本文提出的方法。

对比我们提出的各种方法,每一种方法都适合特定的场景。比如我们只考虑问答场景而提出的GPT_movie+T(Our),在知识覆盖率上超越使用人类数据进行在线更新的模型,因为问答场景下更在意知识是否正确使用,但对话的流畅度和多样性会有所降低。而考虑上下文缺失的GPT_R取得了更佳的成绩,各项指标与使用人工标注的数据更为接近。这表明,对话整体缺失要比上下文缺失更难解决,但在表8的人工评价上两者差异并不明显。另一方面,如何充分利用网络上现有与知识相关的文本数据,并改造成适合对话的形式,可能是知识对话系统在新领域数据零资源时进行在线更新的关键因素。

表8 人工评测结果

为了更好地评估我们的方法,本文选用了baseline中的最优结果RR、对话缺失场景中综合效果最好的GPT_move+T+OLD、上下文缺失场景中的GPT_R以及使用人类标注数据进行更新的模型GPT_human,在真实对话中进行评估。我们在不同领域的知识中随机抽取若干知识项,要求多位评估人对不同模型在这些知识背景下生成的回复进行评分。因为在上述实验中,已经使用了Coverage评价了知识能否合理使用,所以人工评分主要是为了评价一些难以量化的指标。指标为Relevance(回复是否与上下文相关)和Fluency(语法逻辑等表达是否通顺)。评估人可以打分0、1、2。其中,0分表示完全不符合该指标,1分表示轻微冲突同,2分表示完全符合该指标。最终的结果为评估人给予分数的平均值。

从表8可以看出所示,我们提出的两种方法虽然分别针对对话整体缺失和对话上下文缺失两种不同的场景,但在人工评测上的结果是接近的,说明即使对话缺失程度较大仍能得到和缺失程度较轻的情况相似的结果,进一步说明零资源在线更新问题在本文的方法下得到一定的缓解。尽管Baseline在BoW指标上略微优于本文提出的方法,但在人工评测上差于本文提出的方法。同时,在流畅度上本论文提出的方法近似于使用人工数据进行更新的模型。但在相关度上,本文方法和使用人工数据进行更新的模型仍然有较大差距,这是因为使用算法合成的数据在上下文相关方面仍然有待提高。

4. 结论

为了解决知识对话系统在线更新时人工标注数据缺乏的问题,我们使用合成数据进行模型的在线更新,并且针对不同的场景提出了不同的合成数据的生成策略。实验结果表明,使用合成数据能够有效使得模型进行参数更新以适应于现实世界不断增长的知识。同时本文方法显著优于传统的数据增强方法,能够在一定程度上缓解知识对话系统在线更新中语料零资源的问题。

猜你喜欢

语料人工模板
铝模板在高层建筑施工中的应用
人工3D脊髓能帮助瘫痪者重新行走?
高层建筑中铝模板系统组成与应用
铝模板在高层建筑施工中的应用
基于归一化点向互信息的低资源平行语料过滤方法*
人工,天然,合成
人工“美颜”
Inventors and Inventions
濒危语言与汉语平行语料库动态构建技术研究
人工制冷