Dialogue System Survey——Non-task-oriented 翻译

论文地址
参考文献请查看论文。

无任务导向对话系统

与旨在为用户完成特定任务的任务导向对话系统不同,无任务导向对话系统(也称为聊天机器人)集中于在多领域中与人类交谈[64]。总体上,聊天机器人有生成方法generative method或者基于检索的方法retrieval-based method。生成模型可以生成在语料库corpus中从未出现过的、更为合理的回复,而检索方法更注重流畅、信息丰富的回复[30],因为它们可以使用回复选择算法response selection algorithm从语料库中选择合适于当前对话的回复。在之后的部分中,我们首先探索近年来的最热门的话题之一——神经生成模型,讨论了他们的缺点和提升可能性。之后,我们介绍了在检索模型中深度学习取得的成就。

1. 神经生成模型

近年来,诸如推特、reddit等社交媒体网站存在大量的对话式交换,从而发展了数据驱动模型data-driven model。[64]给出了一种生成概率模型,建立在基于短语基础上的统计机器翻译statistical machine translation[118],去模拟微博上的对话。它视生成回复问题为翻译问题,将一条微博翻译成一个回复。但是,生成回复比不同语言之间的翻译更难。很大程度上是由于可行的回复范围过广,以及发布微博和回复之间缺乏短语校准phrase alignment。深度学习在机器翻译中的成功应用,即神经机器翻译,激发了神经生成对话系统的研究热情。
在以下小节中,我们首先介绍序列到序列模型,为神经生成模型的基础。然后,我们讨论一些热门研究主题,包括合并对话上下文、改善回复多样性、对话题和特点进行建模、
利用外部知识库、互动学习与评估。

1.1 序列到序列模型

给定一个源序列(信息) X = ( x 1 , x 2 , . . . , x T ) X=(x_1,x_2,...,x_T) X=(x1,x2,...,xT),包括 T T T个单词和一个长度为 T ′ T' T的目标序列(回复) Y = ( y 1 , y 2 , . . . , y T ′ ) Y=(y_1,y_2,...,y_{T'}) Y=(y1,y2,...,yT),该模型使 Y Y Y X X X为条件的生成条件概率 p ( y 1 , . . . , y T ′ ∣ x 1 , . . . , x T ) p(y_1,...,y_{T'}|x_1,...,x_T) p(y1,...,yTx1,...,xT)最大化。具体来说,一个序列到序列模型(或称Seq2Seq)使用了编码-解码encoder-decoder结构。图1为这种结构的总体阐述。编码器一个单词一个单词地读 X X X,通过一个递归神经网络RNN将其表征为一个上下文向量 c c c,解码器以 c c c为输入,估算 Y Y Y的生成概率。编码器RNN通过下式计算上下文向量 c c c h t = f ( x t , h t − 1 ) \bold{h_t}=f(x_t,\bold{h}_{t-1}) ht=f(xt,ht1)其中, h t \bold{h}_t ht为时间步长 t t t时的隐藏状态, f f f是一个非线性函数,比如长短时间记忆单元(LSTM)[27]或者门控循环单元(GRU)[12], c c c是与最后一个单词 h T \bold{h}_T hT对应的隐藏状态。解码器是标准的RNN语言模型,带有附加的条件上下文向量 c \bold{c} c。计算每个时间 t t t候选单词的概率分布 p t \bold{p}_t pt为: s t = f ( y t − 1 , s t − 1 , c ) \bold{s}_t=f(y_{t-1},\bold{s}_{t-1},\bold{c}) st=f(yt1,st1,c) p t = s o f t m a x ( s t , y t − 1 ) \bold{p}_t=softmax(\bold{s}_t,y_{t-1}) pt=softmax(st,yt1)其中 s t \bold{s}_t st是解码器RNN在时间 t t t的隐藏状态, y t 1 y_{t1} yt1是响应序列中时间 t 1 t1 t1处的单词。Seq2Seq的目标函数定义为[5]: p ( ( y 1 , . . . y T ′ ∣ x 1 , . . . x T ) = p ( y 1 ∣ c ) ∏ t = 2 T ′ p ( y t ∣ c , y 1 , . . . , y t − 1 ) ) p((y_1,...y_{T'}|x_1,...x_T)=p(y_1|c)\prod_{t=2}^{T'}p(y_t|\bold{c},y_1,...,y_{t-1})) p((y1,...yTx1,...xT)=p(y1c)t=2Tp(ytc,y1,...,yt1))然后通过注意力机制提高了性能,即 Y Y Y中的每个单词都以不同的上下文向量 c \bold{c} c为条件,观察到 Y Y Y中的每个单词可能与 x x x中的不同部分相关。 y i y_i yi对应于上下文向量 c i \bold{c}_i ci c i \bold{c}_i ci是编码器隐藏状态 h 1 , . . . , h T \bold{h}_1,...,\bold{h}_T h1,...,hT的加权平均: c i = ∑ j = 1 T α i j h j \bold{c}_i=\sum_{j=1}^{T}\alpha_{ij}\bold{h}_j ci=j=1Tαijhj其中, α i , j \alpha_{i,j} αi,j由下式计算: α = e x p ( e i j ) ∑ k = 1 T e x p ( e i k ) \alpha=\frac{exp(e_{ij})}{\sum_{k=1}^{T}exp(e_{ik})} α=k=1Texp(eik)exp(eij)
e i j = g ( s t − 1 , h j ) e_{ij}=g(\bold{s}_{t-1},\bold{h}_j) eij=g(st1,hj)其中, g g g是一个多层感知器。
图1
[71]应用递归神经网络编解码器框架[12]在Twitter式微博客网站上生成响应,而[87]使用了[50]中描述的类似模型。通常,这些模型利用神经网络来表示对话历史并产生适当的回应。这样的模型能够利用大量数据来学习有意义的自然语言表示形式和生成策略,同时需要最少的领域知识和人力工作。

1.2 对话上下文

结合上文信息的能力是构建对话系统的关键,该对话系统可以使对话保持活跃和更高的参与度。[77]通过连续表达或嵌入单词和短语来应对整个对话历史,从而解决了上下文敏感响应生成的挑战。响应作为RNN语言模型[52]生成,与[12]中的解码器相同。[68]使用了层次模型,首先捕获了单个话语的含义,然后将它们整合为语篇。[109]扩展了具有注意机制[5]的层次结构,以分别单词级别和表达级别中,强调表达内部和表达之间的重要部分。[82]在现有方法(包括非分层模型和分层模型)之间进行了系统性的比较,并提出了一种变体,该变体根据上下文查询的相关性对上下文进行加权。它发现(1)分层RNN通常要胜过非分层RNN,并且(2)利用上下文信息,神经网络往往会生成更长,更有意义和多样化的回复。

1.3 回复多样性

当前序列到序列的对话系统中的一个挑战性问题是,它们往往会产生琐碎的或非置信的、普遍相关而无意义的响应,这些响应通常涉及一些高频短语,诸如“我不知道”或者“我很好”[77;87;68]。这种行为可以归因于对话数据集中的通用响应的相对较高频率,诸如“我不知道”这样的短语,而信息量更大的替代响应则相对稀疏。应对此类挑战的一种合适的方法是找到更好的目标函数。[38]指出,当输入给定、优化输出可能性时,神经模型会给“安全回复”分配更高的可能性。他们使用了最大交互信息maximum mutual information(MMI)作为优化目标,这是最早在语音识别中引入的[6;9]。它测量了输入和输出之间的相互依赖性,其中考虑了响应对消息的反相关性。[114]将逆文本频率指数inverse document frequency(IDF)[65]纳入训练过程中,以测量响应多样性。
一些研究意识到解码过程是冗余候选响应的另一个来源。[86;72;42]认识到波束搜索——一种近似推理算法,用于解码神经序列模型的输出序列——在光束中生成候选时缺乏多样性。[86]使用一个不相似项dissimilarity term测量了候选序列之间的不相似性,从而增强了波束搜索目标。[72]引入了随机波束搜索过程,而[42]为波束搜索评分添加了一个附加项,以惩罚搜索中同一父节点的同级扩展。[38;77;72]进一步执行了具有全局功能的重新排名,以避免产生冗余dull或通用generic的响应。[57]推测,问题不仅出现在解码和响应频率的过程中,而消息本身可能缺乏足够的信息以进行重放。它提议使用逐点交互信息pointwise mutual information(PMI)将名词作为关键字预测,反映出回复的要点,然后生成包含给定关键字的回复。
另一系列工作着重于通过引入随机潜在变量来产生更多不同的输出。他们证明自然对话不是确定性的——对同一条信息的回复可能因人而异。但是,现有回复是从确定性编码器-解码器模型中采样的。通过引入潜在变量,这些模型具有以下优点,在生成回复时,他们可以通过先采样潜在变量的分布来采样来自分布的响应,然后确定地解码。[11]提出了一个一次性对话回复的潜在变量模型。该模型在解码器 P ( Y ∣ z , X ) P(Y|z,X) P(Yz,X)中包含随机成分 z z z,其中 z z z是按照变分自动编码器框架[34;33;75]计算的。[69]将潜在变量引入了分层对话建模框架[68],其中潜在变量旨在做出诸如主题或情感之类的高级决策。[73]将潜在变量的条件设为显式属性,以使潜在变量更具可解释性。这些属性可以手动分配或自动检测,例如主题和个性。

1.4 主题和个性

学习对话的内在属性是提高对话多样性并确保一致性的另一种方法。在不同的属性中,主题和个性得到了广泛的探索。
[108]注意到人们经常将对话与主题相关的概念联系起来,并根据这些概念做出回应。他们使用Twitter LDA模型获取输入的主题,将主题信息和输入表征喂进一个联合注意模块中,并生成与主题相关的响应。在[107]中,解码器的少量改进已取得了较好的结果。[13]对该问题进行了更彻底的概括,他们将对话中的每个表述归为一个域,并相应地生成下一个表述的域和内容。[67]对高级粗略令牌序列high-level coarse token sequence和对话生成进行了显式建模,其中粗略令牌序列旨在利用高级语义。他们利用名词和活动实体来表示粗略序列。
[122]将情感嵌入到生成模型中,并在困惑perplexity中取得了良好的表现。[3]从三个方面增强了产生丰富情感反应的模型:结合认知工程情感词嵌入,通过影响受限的目标函数来增加损失目标,在不同的波束搜索推理过程中注入情感不相似性[86]。[61]为系统提供了一个具有配置文件的身份,以便系统可以始终如一地回答个性化问题。[39]进一步考虑了收件人的信息,以创建一个更真实的聊天机器人。由于训练数据来自不同说话者的不一致性,[119]提出了一种两阶段训练方法,该方法使用大规模数据初始化模型,然后微调模型以生成个性化响应。[55]使用转移强化学习来消除不一致之处。

1.5 外部知识库

人类对话和对话系统之间的重要区别在于它是否与现实相结合。合并外部知识库knowledge base(KB)是弥合对话系统与人之间背景知识差距的一种有可能的方法。
记忆网络是一种处理知识库中常见问题的经典方法。因此,将其应用于生成对话变得非常直截了当。[22]在此基础上进行了尝试,并在开放域对话中取得了良好的表现。[88]还通过将CNN嵌入和RNN嵌入耦合到多模态空间中来研究具有背景知识的开放域对话,并在困惑度中取得了进展。一种类似的任务是根据外部知识为问题生成答案。与知识库中元组检索的一般方法不同,[116]在生成过程中将知识库中的单词与常见单词一起使用。实证研究表明,所提出的模型能够通过参考知识库中的事实,为问题提供自然而正确的答案。

1.6 互动对话学习

通过互动来学习是对话系统的最终目标之一。[43]模拟两个虚拟代理之间的对话。他们定义了简单的启发式近似法来对表现良好对话进行奖励:良好的对话具有前瞻性[1]或互动性(转弯表示将来的一次转弯),内容丰富且连贯。编解码器RNN的参数定义了一个无限动作空间上的策略,该动作空间包含所有可能的表达。该代理通过使用策略梯度方法从正在进行的对话模拟中优化长期开发人员定义的奖励来学习策略[104],而不使用标准SEQ2SEQ模型中定义的MLE目标。[40]尝试进一步提高机器人从交互中学习的能力。通过在文本和数字反馈上使用策略学习和前向预测,该模型可以通过(半)在线方式与人互动来改善自身。与其使用手写奖励函数进行在线强化学习,[4]通过反复让人类选择 K K K个回复之一来进行在线的循环式主动学习,由离线的受过监督的预训练对话代理生成,作为“最佳”回复,然后响应选定的回复。该网络还通过联合交叉熵损失函数进行训练。
由于大多数人类受访者在不确定答案时可能会要求澄清或提示,因此让机器人拥有这种能力是很自然的。[41]定义了三种机器人在回答时遇到问题的情况。通过比较“不使用提问方式”的实验结果,该方法在某些情况下有了很大的改进。[37]探索了有关谈判对话的任务。由于传统的序列到序列模型模拟了人类对话,但未能优化特定目标,因此这项工作采取了目标导向的训练和解码方法,并展示了有价值的前景。

1.7 评估

评估所生成回复的质量是对话回复生成系统的重要方面[46]。可以基于人工生成的监督信号(例如任务完成测试或用户满意度分数)评估任务导向的对话系统[89;56;31],但是,由于回复多样性高,因此自动评估非任务导向的对话系统的回复质量仍然是一个悬而未决的问题[2]。尽管事实上单词重叠度量指标(例如BLEU,METEOR和ROUGE)已被广泛用于评估生成的回复,而且词嵌入度量标准能够显著地区分多个数据集的基线和最新模型,[46]发现这些度量标准以及从词嵌入模型(如Word2Vec[53])衍生的词嵌入度量标准与人类判断力之间的关联性很弱或根本没有关联。[80]提出使用两个神经网络模型来评估一系列轮次特征(turn-level feature),以评估对话的成功率。[47]使用RNN将上下文、真实回复和候选回复编码为矢量表示,然后使用线性变换空间中矢量之间的点积计算得分。[81]结合了参考和未参考指标,前者通过单词嵌入来测量回复和真实答案之间的相似性,而后者则通过训练最大边距目标函数对回复和语句之间的相关性进行评分,其中否定回答是随机抽样。
一种来自图灵测试[85]的非常有前途的想法是,使用评估程序将机器生成的文本与人工生成的文本区分开。[32]和[10]探索了对抗性评估模型[8],该模型基于区分自动生成的回复与人类回复的难易程度来打分,而[44]直接在生成对话中应用对抗学习[24;16]。

2. 基于检索的方法

基于检索的方法从候选回复中选择一个回复。基于检索的方法的关键是信息和回复之间的匹配。匹配算法必须克服信息和回复之间的语义鸿沟[28]。

2.1 单轮对话回复匹配

基于检索的聊天机器人的早期研究主要集中在单回合会话的回复选择[91],其中仅使用给定信息来选择适当的回复。通常,将上下文和候选回复分别编码为一个向量,然后基于这两个向量计算匹配分数。假设 x \bold{x} x是信息的向量表示,而 y \bold{y} y对应于回复的向量表示, x \bold{x} x y \bold{y} y之间的匹配函数可以像双线性匹配一样简单: m a t c h ( x , y ) = x T A y match(\bold{x},\bold{y})=\bold{x}^T\bold{A}\bold{y} match(x,y)=xTAy其中 A \bold{A} A是预先决定的矩阵,或更复杂的矩阵。[49]提出了一种基于DNN的短文本响应选择匹配模型,并结合了结构中的局部性和内在层次性。[28]通过使用深度卷积神经网络结构来学习信息和回复的表示,或直接学习两个句子的交互表示,然后使用多层感知器来计算匹配分数,从而改进了模型。[92]提取依赖树匹配模式,并将其用作深度前馈神经网络的稀疏独热输入sparse one-hot input,以进行上下文和回复之间的匹配。[105]将Twitter LDA模型[121]生成的主题向量合并到基于CNN的结构中,以增强具有丰富内容的回复。

2.2 多轮对话回复匹配

近年来,基于多回合检索的对话越来越受到关注。在多轮回复选择中,将当前消息和先前信息作为输入。该模型选择自然且与整个上下文相关的回复。重要的是要识别以前的话语中的重要信息并对话语关系正确建模以确保对话的一致性。[48]通过基于RNN、LSTM的结构分别将上下文(所有先前话语和当前消息的连接)和候选回复编码为上下文向量和回复向量,然后基于这两个向量计算匹配度得分。[110]以不同的策略选择了先前的信息,并将其与当前的信息结合起来,形成了一个重新形成的语境。[124]不仅对一般单词级别的上下文向量,而且还对表述级别的上下文向量进行了上下文回复匹配。[106]通过使用卷积神经网络在多个粒度级别上将上下文中的每个信息与回复进行匹配,进一步利用了表述关系utterance relationship和上下文信息contextual information,然后通过递归神经网络按时间顺序累积向量,对表述之间的关系进行建模。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值