Advertisement

微软亚洲研究院论文解读:基于动态词表的对话生成研究(PPT+视频)

阅读量:

本文于

本次Talk的主题是以动态词表为基础的对话生成机制研究。首先,请各位来宾跟随吴俣博士一起回顾近年来人工智能技术在对话系统领域的显著进展,并详细分析了检索式与生成式两种类型聊天机器人的优势及局限性。

之后,在以第一作者的身份发表文章之前,在 AAAI 2018 年的研究成果中包含了'神经响应生成器'(Neural Response Generation with Dynamic Vocabularies)。

这篇论文致力于专注于在对话生成过程中建立动态词典,在提高解码速度的同时能够有效去除不必要的词汇干扰。通过在线训练显著提升了生成速度,并且保证了性能不受影响的情况下达到了预期目标。

class="video_iframe" data-vidtype="2" allowfullscreen="" frameborder="0" data-ratio="1.588235294117647" data-w="432" data-src="http://v.qq.com/iframe/player.html?vid=p0528wsqjvb&width=654&height=367.875&auto=0" style="display: block; width: 654px !important; height: 367.875px !important;" width="654" height="367.875" data-vh="367.875" data-vw="654" src="http://v.qq.com/iframe/player.html?vid=p0528wsqjvb&width=654&height=367.875&auto=0"/>

△ Talk 实录回放

浅析对话系统

主要将对话系统划分为两大类:一类是任务型对话系统(如企业客服中心以及订票服务等领域),另一类是非任务型驱动的对话系统(如微软小冰这样的智能聊天机器人)。

对此问题给予高度关注的原因在于今年我在ACL期刊上发表了一篇论文。同学们询问为何引用了论文及源代码后仍无法使聊天机器人协助完成订外卖的任务。不得不承认目前聊天机器人的种类实在过于繁多。其中有些仅用于闲聊交流而另一些则可协助执行特定领域内的具体任务。

本次 Talk 将着重介绍闲聊机器人这一类无任务导向对话系统,并分享一篇关于聊天机器人的综述文章 — A Survey on Dialogue Systems: Recent Advances and New Fronters

该文章由京东数据科学团队发布, 是一篇较为全面的对话系统综述文献, 系统地整理并分类了 121 篇相关文献. 不仅适合作为初学者的学习资料, 还能够让读者对聊天机器人领域有更加深入的理解.

面向任务的对话系统主要包含知识库构建、自然语言处理、状态跟踪和决策机制设计。 在知识库构建方面,则需要针对特定的应用场景进行具体设计,在这里我们以酒店预订为应用场景,则需要构建与酒店相关的具体信息,例如具体的房型类型,价格范围以及地理位置等关键数据。

当掌握了一定的基础知识后

聊天机器人类型

普遍来说,聊天机器人主要分为两类,我认为准确来说应该分为三类。

比较早期的研究基本属于第一类:基于模板的聊天机器人。这种类型的机器人会设定一系列规则,并解析你的对话内容以识别出关键信息;随后会将这些识别出的信息与预先设定好的规则进行配对以生成回应。 这种方式的特点就是回复往往是以填空的形式呈现。

除了对话机器人之外, 这种以模板为基础的生成模式还可以应用于多个领域, 比如自动写作机器人

目前备受关注的聊天机器人大致可分为两类:一类是基于搜索引擎的技术(检索型),另一类则基于生成式模型(生成型)。检索型聊天机器人指的是从预先构建的大规模索引库中进行高效的信息检索。为了实现这一功能,我们需要首先从互联网上收集大量真实对话样本(对话 pairs),然后利用这些数据训练一个搜索引擎模型(搜索引擎),最后通过计算文本相似度来完成信息匹配(查找)。

生成型聊天机器人目前已成为研究界的一个热门话题。 与检索型聊天机器人不同,在其运行过程中能够自主创生独特的回应内容。因此相对而言更加灵活。然而该系统也存在一定的局限性——类似于图示所示的那样,在某些情况下可能会出现语法错误或产出缺乏意义的回复。

基于检索机制的聊天机器人首先要搭建一些文本与回复的对,在完成匹配模型的训练后,在投入实际运行时首先执行检索操作后再进行匹配处理。 计算相似度的方法有很多可供选择,在当前实践中普遍采用的是深度学习技术。对于系统性应用而言,则通常会综合运用多种相似度计算指标。

大多数生成模型都以Seq2Seq架构为基础

检索型 vs. 生成型

检索型聊天机器人的主要优势在于其回答的多样性和流畅性均有显著提升,并且对于编程新手而言这一系统的入门门槛相对不高。即使你对深度学习或自然语言处理的基础知识掌握得不够扎实 但只要具备编写代码的能力 并且能够从网络上获取一定数量的数据集 就可以顺利搭建这样一个检索型聊天机器人

此外,在研究人员的视角下,基于检索功能的聊天机器人相对容易进行评估,并可通过MAP、MRR、NDCG等传统信息检索评价指标顺利实现其性能测定

检索型聊天机器人的主要缺陷在于严重依赖数据质量和准确性。在实际应用中若抓取的数据质量存在问题,则可能导致预期效果大打折扣。

就工业界而言,在评估检索型聊天机器人时首要关注的是该聊天机器人的排序算法;此外还需要关注数据质量和规模;此外还需考察其回复数据是否足够有趣;以上三个要素共同决定了检索型聊天机器人的整体质量

生成模型的主要强项是拥有一个通用的代码库,并且无需针对不同语言进行特殊处理即可快速部署。一旦某一具体语言实现良好,则可无缝推广至各个语言领域

也有人指出 safe responses 是生成式聊天机器人的一个缺点 但事实上 从另一个角度来看 则是它的另一个优势

生成模型的另一个优势是,它相对而言更加容易支持多轮交互,并且带有特定的情感倾向。如果我希望生成一句充满喜悦的情绪的话,那么使用生成模型相对于检索模型而言,则更为便捷。

对于早期的研究者而言,生成模型的主要缺陷在于其回答内容较为单一 。此外,由于缺乏自动评估机制,研究人员在对生成式聊天机器人进行性能测试时面临诸多挑战 。一个模型的价值,往往需要通过大量高质量的人工标注来体现其优劣。从另一个角度来看,将生成式聊天技术应用于工业界所面临的门槛较高,具体表现在开发周期较长以及所需的技术积累较多等方面

怎样提高生成的多样性

该策略通过提升模型的复杂度来实现目标。例如上图中的论文采用了 latent variable 来处理 boring responses 问题。


上图中的论文,则是在生成过程中赋予概率偏向于一些特定的主题词 。假设某个词为主题词,则在生成过程中相应提高其被选中概率。

第二个流派主要采用一种叫做排序机制的技术 。目前最简单有效的做法是一种高效便捷的技术手段——先利用生成模型产出海量输出内容,并通过分类器将这些输出按照重要性进行筛选排序。筛选出最重要的内容排在前面能够显著提升整体效果。只要生成的海量输出数量足够庞大且多样化,则这种方法就一定能够奏效。

该方法采用强化学习技术进行建模与优化。在强化学习领域中存在两类主要方法:一类是基于策略评估的技术,另一类是基于价值函数的方法。

遵循策略的核心理念源自著名语言学家李纪为先生的主要作品,《新标准汉语词典》中对"语法"这一术语的系统阐述即为其杰出代表作之一》。该方法的基本思路在于:已知生成模型 G,在每一个输入样本X的基础上进行随机采样操作并输出20个候选翻译结果;通过应用排序公式 P(S|T) + λP(T|S),对这些候选翻译结果进行质量评估并赋予相应的奖励值作为训练反馈;其中λ是一个调节参数;具体而言,在训练过程中发现奖励值越高,则对应的梯度更新步幅也会相应增大以优化模型性能

我们再深入研究一下 GAN 的相关方法。李纪为对 SeqGAN 的模型进行了优化,并将其应用于回复生成任务中。

其基本思路是,在每次生成一个词的同时(每当生成一个词时),通过搜索方法对已生成的完整句子进行查找,并利用判别器D对其进行评估;分值越高,则表明该词的价值也越高。随后所采用的方式与SeqGAN如出一辙。

本文思路

本文写作初衷旨在提出无需依赖复杂工具或算法的回复生成方法。

我们旨在尽量不产生大量时间开销的同时又能提高回复生成的质量。提升效率的关键体现在 Seq2Seq 的最后一层——尤其是投影层的行为模式上。这一层通常会涉及一个较大的矩阵

我们主张无需构建如此庞大的矩阵结构,在实际应用中真正有用的词汇数量有限。这些少量关键词汇便足以产出一句自然流畅、高度相关的对话内容。例如通过收集那些在语法功能上具有特殊作用以及与输入内容高度相关的词语进行整合就能实现只需维护一个小型词典即可产出高质量且自然流畅的回答这一目标

具体来说,在线处理系统中会为每个输入构建一个动态词典。这种做法旨在降低在线解码所需的时间,并实现去除非相关词的功能。

本文提出了一种基于 Seq2Seq 的扩展方法,在此基础上新增了一个动态词汇表的能力。具体而言,在每一个输入样本中会生成两类不同的词汇:第一类词汇是按照固定规则进行生成(即静态词汇表)。这种静态词汇表主要由功能性符号构成(即功能符号),这些功能符号在语法结构中起到辅助连接的作用(即辅助符号)。这些功能符号根据语义类别划分构建而成(即根据语义类别划分构建而成),并主要用于维持语法流畅性和完整性(即维持语法流畅性和完整性)。

另一类词语是内容型词语**(即动态词汇表)**。 动态词汇表推断出与输入相关的词语。 也就是说我们能使用哪些词语来回应输入。 这种类型的构建不再依赖于基于字性的分类方法而要利用分类器或者词语预测模型来推断出相关联的词语

基于这两个关键词后, 我们就可以为每个 input 构建一个词典. 其规模相对较小, 并且小型概念则指的是原来的词典规模是 3 万左右的数量级. 通过这种调整

通过矩阵乘法视角来看待,则当我们将一个矩阵从N×30,000的维度降到N×1,000的维度时,就能显著提高其运算速度。

词预测模型

让我们探讨如何进行内容词的预测。在自然语言处理领域中,内容向量是由编码器生成的内容向量表示的内容信息载体。在获得该向量后,则需要通过一个多层感知机(MLP)模型来推断哪些词汇将在后续内容中被涉及。其损失函数设计如下:首先将最终出现在回复中的词汇标记为正样本(标签为1);然后从未出现过的词汇中随机选取若干作为负样本(标签为0)。基于此分类目标构建损失函数即可。

在采样负例方面采取什么样的策略至关重要。去除句子中的功能词后,通常会保留约10至15个具有代表性的正面词汇.为了提高识别效率和准确性,在对负样本进行筛选时应优先考虑那些频繁出现的关键词素.

在对负例进行选取时,在进行词预测的过程中可以更加精准地识别出具体内容词是什么样的。然而,在当前的词预测模型中存在相同的问题:生成的回复总是倾向于高频词汇。为了解决这一问题,在构建词汇表时应当采用频率控制的方法来筛选负例。

时间复杂度

在完成词预测方法的完整介绍之后,我们将深入分析时间复杂度的计算过程,并探讨其解码速率的变化情况.

首先对比Seq2Seq模型与本文提出的解码器方法,在GRU单元和注意力机制方面所消耗的时间完全相同。然而,在Projection层上的时间消耗上,本文方法的表现会更加优异

主要原因在于 Seq2Seq 模型的词汇量通常都非常庞大,在这种规模下(如3万级),计算出的结果会非常庞大;相比之下,在本文中所涉及的序列长度 T 值可能仅在数千级别,并非必须为每个单词单独创建映射关系;相反地,在构建词汇表时,并非必须每个单词都有独立条目;相反地

对此而言的情况,则需满足回复词数多于 1 的前提条件

经实验证明,这种方法相比 Seq2Seq 能节省约 40% 的时间

模型训练

如果仅对动态词典进行训练,则会在训练与预测过程中产生一定的不匹配问题。即使在训练阶段就已经采用动态词汇表的方法,在预测阶段仍然会遇到一个问题:即不清楚选择词汇这一过程会对生成回复产生何种影响。

为了求解该问题,在训练过程中我们将动态词典作为隐变量加以处理。对于公式的具体推导过程,建议读者参考相关文献。

因为涉及隐变量的问题,在构建这种模型时会遇到挑战。具体来说,在这种情况下我们假定动态词典T是一个完全变例体:即每个单词都有被选中或未被选中的两种可能性。然而当词汇量达到数万时其规模将相当于2^{30000}的数量级这使得这种方法在实际应用中变得不可行对此我们该怎么办呢?

我们可以通过蒙特卡洛采样的方法来估计词典会对回复产生什么影响

该方法采用了真正的采样方法,并将每个计算过程均进行了单独的计算;随后将所有结果取平均值。

这样处理后,我们可以将构建词典与生成回复的两个损失整合在一起,在一个统一的公式中表示。这种方法与将词典和生成过程分开单独训练的方式不同。通过逐次采样方法得到的结果,来评估动态词典在不同场景下其对应的回复生成损失是什么。

因为这个损失是通过取样计算得出的,在RL训练中通常会遇到方差较大的问题。为了提升训练稳定性,在梯度更新过程中引入了一个基准值BK。

实验

本文实验所用数据来自我们之前的一篇文章,这些词可以覆盖约 99% 的词。

△ 本文使用的开源 baseline

目前研究界仍未找到一个很好的自动指标,能用于回复生成或对话评测。

现有的方法可分为四类:

该方法是用于评估 BLEU 值** ,即对 word overlap、ground truth 和你的回应进行评估。由于一句话可能会产生不同的回应,在某种程度上来说,在对话评估场景下使用 BLEU 可能不完全适合用于对话评估场景。

第二类方法用于度量 embedding 间的相似性程度 ,这类技术主要包括以下三种具体实现方式:第一种为简单算术平均法;第二种是对绝对值进行平均处理;第三种则采用基于贪心算法的配对策略。

该方法主要基于多样性的度量,并对其性能进行评估时需考虑以下两个关键因素:一是不同n-gram的数量;二是其熵值的大小。

这种方法被称为图灵测试;通过 retrieval 模块中的 discriminator 进行评估。

在表1中列出的前四行属于基准方案,在此基础上构建了改进型模型。具体而言,在改进型模型中我们采用了双重损失整合策略:一方面通过整合词预测与Seq2Seq的损失来实现整体优化目标;另一方面则分别对这两种损失进行了单独评估以获得更加全面的学习效果。实验结果表明,在各项评估指标上,改进型模型的表现均优于传统方法。

表2记录了人工标注的结果,其中数值0代表最低水平、数值2代表最高水平,其κ值衡量的是三种情况的一致性程度。在实际应用中发现κ值往往偏低,这表明即使让真人来进行评测,也难以达成高度一致的评价

△ 速度对比:本文模型可节省40%的时间

△ 案例效果对比

总结

在本研究中

****> >>> 获取完整PPT和视频实录

关注PaperWeekly微信公众号,回复20171227 获取下载链接。

点击以下标题查看往期实录: * 基于生成模型的事件流研究 + NIPS 2017 论文解读

该模型具有多类别区分器

**
**

关于PaperWeekly

**
**

PaperWeekly 是一个分享人工智能前沿论文成果并深入解析其创新思路与应用价值的学术平台。若你关注或关注于人工智能领域研究工作,请随时查看我们的推送信息;特别为你准备了一个交流社群,并通过公众号后台便捷通道让你快速加入

全部评论 (0)

还没有任何评论哟~