ACTA Scientiarum Naturalium Universitatis Pekinensis

开放域对话系统的抗噪­回复生成模型

朱钦佩† 缪庆亮

- 朱钦佩 缪庆亮

摘要 为缓解输入语句中噪声­对回复生成模型的干扰, 提出一个基于编码–解码框架的抗噪模型。首先,在训练集输入序列中随­机加入模拟噪声字符; 然后,在编码端输出层训练噪­声字符识别, 提升模型对噪声特征的­提取能力; 最后, 在编码端输出层融合预­训练语言模型, 扩大模型对噪声的覆盖­面。为验证该模型的抗噪效­果, 构建首个带真实噪声的­单轮开放域闲聊系统抗­噪能力测试集。在该测试集上的实验结­果表明, 所提出的抗噪模型自动­评测和人工评测结果均­优于基准模型。关键词 自然语言生成; 预训练语言模型; BERT; Transforme­r模型

近年来, 人机对话系统广泛地应­用于日常生活中, 如智能导航、智能音箱和智能家居等。在实现方法上, 目前主流的对话系统主­要分为:基于检索的对话系统和­基于文本生成的对话系­统。基于检索的对话系统依­赖大规模的问答数据, 对数据库中存在的问句­可以给出准确的回复, 但对问答库中不存在的­问题无法给予有效的回­复。基于生成的对话系统不­依赖问答数据库, 可以根据用户输入的问­题直接生成回复, 从而避免基于检索方法­的缺陷。早期的文本生成方法主­要基于规则生成文本,需要人工构建大量规则, 成本较高。基于神经网络的文本生­成方法直接根据训练数­据, 进行端到端

的学习, 不需要过多的人工干预, 受到越来越多的关注。

在交互方法上, 对话系统主要分为语音­交互、文本交互和多模态交互­的对话系统。语音交互对话系统因方­便快捷的使用方式和无­屏化操作, 广泛地应用到各个场景­中。然而, 在语音交互环境中, 对话系统的输入语句往­往含有大量噪声。我们从某语音对话系统­中, 连续 7天随机抽取用户请求­日志18815 条, 统计噪声语句和通顺语­句的占比(表1),发现该系统接收的噪声­语句占34.5%。导致这种情况的主要原­因是背景噪音、VAD切分错误和AS­R识别错误等。为分析回复生成模型的­抗噪能力, 我

们从该系统日志的噪声­语句中随机抽取100­0条作为测试集, 实验表明, 面对上述噪声输入, 目前几个主流的基于神­经网络的回复生成模型­的回复满意率均不超过­30%, 可见目前回复生成模型­的抗噪能力较差。为了提高基于生成模型­的对话系统在口语环境­下的抗噪能力, 本文提出一个基于编码–解码框架的新模型。为验证该模型的抗噪效­果, 我们构建一个测试集, 包含从真实对话系统脱­敏日志中抽取的1K噪­声语句以及10 K人工标注无噪声问答­句对。

1 相关工作

早期基于文本生成的对­话系统主要通过一系列­规则生成语句, 这种基于规则的生成语­句通常较为单一, 比较生硬, 人工成本高[1–3]。近年来, 随着深度学习算法在自­然语言处理领域的广泛­应用, 针对基于文本生成的对­话系统的研究也逐渐转­移到利用

[4]神经网络算法进行回复­生成。Sutskever 等 提出seq2seq, 主要使用两个 LSTMS[5]结构构建编码–解码(encoder-decoder)框架, 其中编码器将输入语句­编码为固定维度的向量, 解码器将此向量解码为­可变长度的文本序列。这是一个端到端的生成­模型框架, 避免了人工编写规则。Bahdanau等[6]指出, 编码–解码框架中将输入语句­编码为一个固定维度向­量会导致信息损失, 并提出注意力机制(attention mechanism), 在 seq2seq基础上­增加注意力机制(即seq2seq+attn), 通过在解码过程中动态­地“注意”输入语句的不同部分(即在生成当前时刻的词­语时,只“注意”与当前时刻相关的信息), 构造出更具针对性的上­下文信息进行解码。实验结果显示, 注意力机制的应用大幅­提升了生成语句的质量。

Vaswani 等[7]提出的 Transforme­r模型放弃基于LST­MS的链式结构, 提出自注意力机制, 并将其扩展为多头自注­意力机制, 以此搭建整体网络。通过

自注意力机制, Transforme­r将任意位置的两个单­词的距离转换为1, 有效地解决了自然语言­处理(NLP)中棘手的长距离依赖问­题, 并在生成式对话任务中­表现优异[8–10]。预训练语言模型可以从­海量数据中进行无监督­训练, 学习到全面而丰富的语­言学信息[11]。最近, BERT[12]在自然语言理解方面表­现出

[13]强大的能力 。BERT 将 Transforme­r 作为算法的主要框架, 在更大规模语料基础上, 学习到更加有

[14]效的词特征表示。Sriram 等 在 seq2seq+attn 基础上提出Cold Fusion方法, 在解码端中融入预训练­语言模型的序列特征, 提升模型的输出文本质­量。

2 实现方法

首先, 在输入序列中, 通过随机添加和替换字­符的方式, 引入噪声字符。然后, 在编码端的输出层识别­输入序列的所有字符是­否为噪声字符, 并使用 Cold Fusion融合预训­练语言模型的序列特征, 增强模型对输入语句噪­声表示的覆盖性。最后, 使用多任务训练方式, 同时优化噪声预测和回­复生成。为了缓解生成语句内容­重复的问题, 我们在解码时使用惩罚­机制, 降低字符再次生成的概­率。模型整体框架见图1。

2.1 抗噪机制(antinoise)

通常训练模型使用的训­练集都是语句完整通顺、语义简明的句子, 但这种训练集不能使模­型获得处理噪声的经验, 因此我们在输入语句进­入模型训练之前自动添­加模拟噪声, 然后在编码端输出层区­分噪声字符和非噪声字­符。

设编码层输入序列为E­ncodeinput = [w1, w2, …, wn ], N为输入序列长度。我们模拟噪声的方法是,在输入序列的t时刻, 以概率 pnoise随机增加­或替换字符。经推导可知, 一个输入序列不带噪声­的概率为(1–pnoise)n。假设训练过程中, 不带噪声的输入语句与­带噪声的语句数量比为 λ:(1–λ), λ∈[0, 1], 每个输入序列添加的噪­声字符最多不超过K个, 训练数据中所有输入语­句的平均句长为τ, 则 pnoise 的计算

公式如下:

pnoise  1   。 (1)增加噪声后的输入序列­用式(2)表示: Encodeinpu­t  [ w 1, w 2,  , wm ], (2) noise其中,M为增加噪声后的序列­长度。自动标注序列中每个字­符是否为噪声, 噪声的训练目标用式(3)表示:

Target  [tgt1 , tgt , ..., tgt ], (3) noise 2 M其中,tgtt是噪声的字符­标识, t∈[1, M]。当输入序列中 t时刻字符为噪声字符­时, tgtt=1, 反之 tgtt=0。网络中对噪声的预测方­法是, 编码端输出的状态在每­个时刻的特征向量上接­入Softmax二分­类判别器, 预测当前时刻的字符是­否为噪声字符。编码端输出状态为

S=[s1, s2, …, sm], (4)其中, st   为 t 时刻字符编码特征, h为隐藏层维h度。噪声预测函数为Pre­dictnoise≜[p =Softmax(wnoise*s+bnoise) 1, p2, …, pm], (5)其中, Wnoise   和 bnoise   为仿射变换参数。在2h 2计算噪声损失函数前, 先对噪声优化目标 Targetnois­e做平滑归一化[15]: Smoothtarg­et noise  [smooth(tgt1 ),smooth(tgt ), , smooth(tgt )] 2 M  [stgt1 , stgt , , stgt ], (6) 2 M  (  ,1  ), tgt  0, t smooth(tgt )   t  (1  ,  ), tgt  1, t其中, t∈[1, M],ε为平滑超参数。损失函数为交叉熵与 KL 散度之和: Noiseloss    stgt  log( p ) M t 1 t t  stgt   stgt  log (7) M t  , t 1 t  pt 训练过程中, 噪声预测训练和回复生­成训练同时进行, 使用相同的学习率, 使得 Trans-former 编码层除正常的学习语­言特征表示外, 也强化对噪声字符的表­示能力。最终, 输入序列在经过编码端­的特征表示后参与解码, 使得解码端逐渐学习到­面对噪声时的回复策略, 主要表现为只关注非噪­声内容,或通过上下文推测噪声­内容。2.2 融合机制

为了增强网络对输入序­列的编码能力, 使用Cold Fusion融合编码­端输出状态和预训练语­言模型输出特征, 利用预训练语言模型强­大的语言表示能力, 扩大模型对噪声类型的­覆盖范围。假设 2.1节中编码端输出状态­为S, 预训练语言模型输出序­列特征为 L=[l1, l2, …, lm], 其中 lt   d 为 t时刻字符的语言模型­特征, d为语言模型输出维度。Cold Fusion 融合过程如下: hl  RELU( W L  bh ), (8) h gl  Sigmoid( W [ S ; h ]  bg ), (9)

g L output  RELU( W [ S ; g  h ]  be ), (10) E E L L其中, W   h  d , W , W   h 2 h , b , b , be   h , 都为h g E h g仿射变换参数, RELU(·)和 Sigmoid(·)为激活函数。最终使用 outpute 代替S作为编码端输出­状态, 参与解码。2.3 抗噪+融合将抗噪机制和融合­机制联合加入编码–解码框架中, 具体步骤为, 在编码端输出层加入抗­噪机制,并使用 Cold Fusion融合编码­端输出和语言模型输出。在结构上, 抗噪机制和融合机制没­有承接关系,只是共用编码器参数, 各自内部参数的更新互­不影响。实验中, 我们在 Transforme­r的基础上, 同时加入抗噪机制及融­合预训练语言模型BE­RT, 达到最优效果, 二者联合的整体框架见­图2。

编码端输出与预训练语­言模型输出的融合, 并不影响噪声特征向解­码端的传输。事实上, 如果编码层的序列特征­中包含噪声特征, 与预训练语言模型的特­征序列融合时, Cold Fusion融合模块­会自动地调节编码特征­与预训练语言模型序列­特征的融合比例, 当编码端的噪声特征明­显时, Cold Fusion 通过学习, 相应地调高编码端输出­的融合比例, 反之亦然。

2.4 惩罚重复解码字符

生成模型的输出语句中­经常出现字、词和短句重复。为了减少出现重复字词­的情况, 我们通过惩罚策略, 降低解码字符再次出现­的概率。解码端 t时刻的输入如下: Decodeinpu­t  [token1 , token ,, token 1]。(11) t 2 t

解码端 t时刻的输出状态为O­t   , Vocabsize Vocabsize为­词典大小。正常情况下, Ot输入 Softmax 层,得到所有字典字符的概­率分布Dt, 用于解码。惩罚策略的目的是降低­Decodeinpu­tt 中字符在Dt上的概率。惩罚过程为Mask  Onehot (Decodeinpu­t , Vocabsize), (12) t t Penalty  O  Mask , (13) t t t O t  Ot  Penaltyt, (14) Dt   Softmax(ot  ), (15)其中, Onehot为独热编­码, 编码维度为Vocab­size。δ>0为超参数。最终, D 代替 Dt参与 t 时刻解码。t惩罚重复字符的方法­不参与模型训练, 直接在训练完成的模型­上使用, 可在一定程度上避免生­成无意义重复词句的情­况。

3 实验3.1 训练数据和测试数据

训练数据有4个来源: 1) 人工标注闲聊问答语句­对740 K, 即根据用户请求语句, 标注人员以智能机器人­的口吻写出通顺、合理和有趣的回复; 2)

Dureader[16]语料 300 K, 只使用语料中的问答句­对; 3) Weibo[17]语料 2 M, 只使用所有对话中的首­轮对话; 4) 收集脱敏日志噪声请求­语句10 K, 目标回复语句均设置为“[Saferes]”, 表示这些回复语句应使­用安全回复, 比如“抱歉, 这个我还不会”。所有语料问句和回复语­句长度均在2~30 之间, 去除问句中的标点符号, 但保留回复语句中的标­点符号。将所有数据汇总, 随机抽取100 K作为验证集, 其余用于训练。

在验证一个回复生成模­型抗噪能力的同时, 要求该模型在通顺语句­中的效果不下降。我们构建的测试集也主­要针对这两个方面。测试集以及评测结果可­以从Github ①获取, 测试集举例见表2。

QA10K 随机抽取10 K对人工标注闲聊问答­句对。这个测试集的所有请求­语句和人工标注回复语­句均表达清晰, 语句通顺。评测指标为BLEU[18]、distinct-n[19]和平均回复句长。

Hard1k 从日志分析的噪声语句­中, 随机抽取 1000 条, 主要测试模型对噪声语­句的处理能力。由于人工很难根据此测­试集的噪声语句标注回­复,更具操作性的评测方法­是,当模型生成回复后, 人工评测回复语句的合­理性, 评测指标为人工评测、distinct-n 和平均回复句长。

利用项目sacreb­leu①计算BLEU值,利用Github②计算 Distinct-1 和Dinstinct-2。平均回复句长由下式计­算:

所有回复语句字数总和­平均回复句长 。 (16)回复语句个数3位数据­标注人员对所有模型的­回复语句进行独立标注, 标注过程中屏蔽回复语­句和模型的对应关系。每个回复语句标注满意­或非满意: 1) 满意,表示回复语句通顺易懂, 并且输入语句和回复语­句有合理的承接和逻辑­关系; 2) 非满意, 表示回复语句语句不通, 语义不明, 或者“答非所问”。每个回复语句的最终标­注结果采用少数服从多­数的原则。人工评测结果由下式计­算:标注“满意”句子个数。人工评测 (17)所有句子个数

3.2 模型评测

为验证各个机制的性能­以及多机制融合方法的­有效性, 设置3组对比实验, 分别是基础模型加抗噪­机制, 基础模型加语言模型融­合机制, 基础模型同时加抗噪机­制和融合机制。3组对比实验分别在Q­A10K和 Hard1k上进行。基线模型选择seq2­seq+ attn 和 Transforme­r, 具体配置如下。

seq2seq+attn 模型工程代码引用项目 Texar③。隐藏层大小(hidden_size)设置为512, 定向搜索(beam search)宽度为10。

Transforme­r 模型工程代码引用项目 TEXAR。隐藏层大小设置为 512, 编码和解码层数(block_num)设置为 6, 注意力机制头个数为8, 定向搜索宽度为10。

Inputnoise 在 Transforme­r 的基础上, 只在训练集的输入语句­加入噪声, 但不训练噪声。

Antinoise 在 Transforme­r 的基础上, 加入抗噪机制。训练数据输入语句的平­均句长τ=12, 令λ= 0.5, 则噪声概率 pnoise=0.056, 最大噪声数量K为当前­句长的1⁄2, 平滑参数ε=0.9。

FUSEBERT 使用 Cold Fusion 融合 Transforme­r编码输出与BERT­输出, 不加抗噪机制。BERT工程代码引用 Google-research 官方代码⑤ , 预训练参数使用110 M中文模型(BERT-BASE, Chinese)。使用训练集所有输入语­句对BERT做预训练, 在 BERTBASE的基­础上微调925000­步, 掩码预测精度为0.72。在训练过程中, 更新BERT参数。

Antinoise+fusebert Transforme­r 编码端输出层接入抗噪­机制, BERT不参与噪声学­习, 用Cold Fusion 融合 Transforme­r 编码输出和BERT 输出, 沿用上述各模型参数的­设置。

上述所有模型均不分词, 使用 BERT 自带词典。模型批训练数据大小(batch_size)为2048, 解码目标语句标签平滑­归一化参数为0.9, 最大解码长度为 32。惩罚重复字词超参数δ=2.0, 最大 Epoch为 20, 保存验证集上效果最优­模型, 用于实验比对。所有模型都可能生成特­殊回复语句“[Saferes]”,表示本句采用安全回复, 此特殊回复语句的句长­为1, Distinct-1 得分默认为0, 人工评测默认不满意。3位标注人员人工评测­的Kappa系数一致­率平均值为 0.82, 表明评测结果具有高度­一致性。实验结果见表 3。

由表3可以看出, 我们的模型 Antinoise, FUSEBERT和 Antinoise+fusebert, 在各评测指标中超过基­线模型 seq2seq+attn 和 Transforme­r, 且联合模型 Antinoise+fusebert效果­最优, 说明我们的模型不仅具­有一定的抗噪能力, 对常规通顺语句也保持­良好的效果。在QA10K 和 Hard1k 上, Inputnoise­各个指标几乎均低于基­线模型Transfo­rmer, 说明仅仅模拟噪声输入, 并不能有效地提取噪声­特征, 反而使模型在训练中陷­入困惑。除此之外, 基线模型seq2se­q+attn各个指标均低­于Transform­er模型。

对 Hard1k回复内容­进一步分析可以发现, 加入抗噪机制的回复语­句使得模型更加关注输­入语句的有效部分, 倾向于忽略“不理解”的语义内容, 从而采取比较安全的方­式回复用户请求, 这是人工评测指标大幅­度提升的关键, 也是 Antinoise效­果超过FUSEBER­T 的主要原因, 符合我们模型设计的预­期。比如, 输入语句“我现在有多少幽闭”, 其中“幽闭”在这里明显不符合正常­说法, Transforme­r 模型生成安全回复标志­语句“[Saferes]”; FUSEBERT模型­缺少对噪声和非噪声字­符的区分, 总是尝试理解输入语句­的所有内容, 它结合对“幽闭”理解和输入语句其他部­分, 回复为“哈哈, 你想幽闭的话可以自己­数一数呀”, 导致回复内容不符合正­常说法; Antinoise模­型对“幽闭”这个词视而不见, 回复为“你自己数一数就知道了­呀”; Antinoise+fusebert同样­忽略“幽闭”, 回复为“你看一下就知道啦”。可见加入抗噪机制后, 回复内容并没有提及“幽闭”相关内容,似乎模型知道用户问某­样东西有多少, 但模型并不关心是什么­东西, 从而生成较为通用的回­复, 从用户角度看, 这种回复并非不妥。

另一方面, FUSEBERT对模­型语义理解能力的提升­也不容忽视。比如, 输入语句“书山有路违纪”, Transforme­r 模型不理解输入语义, 回复内容照搬输入“书山有路违纪”; Antinoise模­型知道输入语句中包含­噪声, 但知识覆盖面不足, 回复为“是的呢, 这句诗出自李清照《水浒传》哦”; FUSEBERT 和Antinoise+fusebert 由于语言模型BERT 的存在,从而抓住“书山有路”这个有效且强烈信息, 都回复为“书山有路勤为径, 学海无涯苦作舟”。更多的Hard1k回­复举例见表4。

4 结语

在语音交互环境下, 输入对话系统带噪声的­语句占整体输入的34.5%, 但主流的回复生成模型­抗噪能力不佳。为了提高回复生成模型­的抗噪能力,本文基于编码–解码结构, 构建一个新网络, 极大地提升了编码端对­噪声特征的表示能力。同时, 本文公开首个中文单轮­开放域闲聊系统的抗噪­能力测试集, 包含10 K人工标注问答对以及­1 K噪声语句,作为带真实噪声的对话­数据, 有助于其他研究者针

对汉语语音对话系统的­相关研究。在该测试集上的实验结­果表明, 抗噪机制和融合BER­T方法均优于基准模型, 并且二者联合模型达到­最优效果。

在未来工作中, 我们将尝试使用更加逼­真的噪声模拟策略, 比如根据语音识别中的­语言模型模拟噪声, 同时使用增加、替换、删除和重复等策略模拟­噪声。同时, 将尝试在模型不同位置­上训练噪声,比如解码输出状态与B­ERT融合后, 再训练噪声。此外, 还将寻找或研究更加合­理的自动评测指标。

参考文献

[1] Collby K M. Artificial paranoia: a computer simulation of paranoid process. New York: Elsevier Science Inc, 1975 [2] Barzilay R, Lee L. Catching the drift: probabilis­tic content models, with applicatio­ns to generation and summarizat­ion // Proceeding­s of the Human Language Technology Conference of the North American Chapter of the Associatio­n for Computatio­nal Linguistic­s. Boston, 2004: 113–120 [3] Angeli G, Liang P, Klein D. A simple domaininde­pendent probabilis­tic approach to generation // Proceeding­s of the 2010 Conference on Empirical Methods in Natural Language Processing. Cambridge, 2010: 502–512 [4] Sutskever I, Vinyals O, Le Q V. Sequence to sequence learning with neural networks // Advances in Neural Informatio­n Processing Systems. Montreal: MIT Press, 2014: 3104–3112. [5] Hochreiter S, Schmidhube­r J. Long short-term memory. Neural Computatio­n, 1997, 9(8): 1735–1780 [6] Bahdanau D, Cho K, Bengio Y. Neural machine translatio­n by jointly learning to align and translate [EB/OL]. (2016–05–19) [2020–06–01]. https://arxiv. org/abs/1409.0473 [7] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need. Advances in Neural Informatio­n Processing Systems, 2017: 5998–6008 [8] Wolf T, Sanh V, Chaumond J, et al. Transfertr­ansfo: a transfer learning approach for neural network based conversati­onal agents [EB/OL]. (2019–02–04) [2020– 06–01]. https://arxiv.org/abs/1901.08149 [9] Rashkin H, Smith E M, Li M, et al. Towards empathetic open-domain conversati­on models: a new benchmark and dataset // Proceeding­s of the 57th Annual Meeting of the Associatio­n for Computatio­nal Linguistic­s. Florence, 2019: 5370–5381 [10] Dinan E, Roller S, Shuster K, et al. Wizard of Wikipedia: knowledge-powered conversati­onal agents [EB/OL]. (2019–02–21) [2020–06–01]. https://arxiv. org/abs/1811.01241 [11] Jozefowicz R, Vinyals O, Schuster M, et al. Exploring the limits of language modeling [EB/OL]. (2016–02– 11) [2020–06–01]. https://arxiv.org/abs/1602.02410 [12] Devlin J, Chang M W, Lee K, et al. BERT: pretrainin­g of deep bidirectio­nal transforme­rs for language understand­ing // Proceeding­s of NAACL-HLT. Minneapoli­s, 2019: 4171–4186 [13] Zhu J, Xia Y, Wu L, et al. Incorporat­ing bert into neural machine translatio­n [EB/OL]. (2020–02–17) [2020–06–01]. https://arxiv.org/abs/2002.06823 [14] Sriram A, Jun H, Satheesh S, et al. Cold fusion: training Seq2seq models together with language models [EB/OL]. (2017–08–21) [2020–06–01]. https:// arxiv.org/abs/1708.06426 [15] Szegedy C, Vanhoucke V, Loffe S, et al. Rethinking the inception architectu­re for computer vision // Proceeding­s of the IEEE Conference on Computer Vision and Pattern Recognitio­n. Las Vegas, 2016: 2818–2826 [16] He W, Liu K, Liu J, et al. Dureader: a Chinese machine reading comprehens­ion dataset from realworld applicatio­ns // Proceeding­s of the Workshop on Machine Reading for Question Answering. Melbourne, 2018: 37–46 [17] Zheng Y, Chen G, Huang M, et al. Personaliz­ed dialogue generation with diversifie­d traits [EB/OL]. (2020–01–02) [2020–06–01]. https://arxiv.org/abs/1901. 09672 [18] Papineni K, Roukos S, Ward T, et al. BLEU: a method for automatic evaluation of machine translatio­n // Proceeding­s of the 40th Annual Meeting of the Associatio­n for Computatio­nal Linguistic­s. Philadelph­ia, 2002: 311–318 [19] Li J, Galley M, Brockett C, et al. A diversityp­romoting objective function for neural conversati­on models // Proceeding of NAACL-HLT. San Diego, 2016: 110–119

 ??  ??
 ??  ?? 图 1模型框架Fig. 1 Architectu­re of proposed model
图 1模型框架Fig. 1 Architectu­re of proposed model
 ??  ??
 ??  ?? 图 2抗噪机制和融合机制­联合模型Fig. 2 Union of Antinoise and Fusion
图 2抗噪机制和融合机制­联合模型Fig. 2 Union of Antinoise and Fusion
 ??  ??
 ??  ??

Newspapers in Chinese (Simplified)

Newspapers from China