https://zhuanlan.zhihu.com/p/73723782

请复制粘贴到markdown 查看器查看!

Do Neural Dialog Systems Use the Conversation History Effectively? An Empirical Study

ACL2019

Chinnadhurai Sankar, Sandeep Subramanian, Christopher Pal, Sarath Chandar, [Yoshua Bengio]

https://arxiv.org/abs/1906.01603

abstract

神经网络生成模型在构建对话 agent 方面越来越流行,这种方法可以灵活的适应多个 domain,且需要很少的领域专家干预。这些系统一个被大家经常指出的问题就是他们很少有效的去使用获得的对话历史。这篇文章中,作者使用一种方法去理解模型是怎样利用对话历史的,这个方法是先是人工给文本引进 unnatural 改变或者是扰动,再去观察模型对这些改变的敏感度。作者在 4 个对论对话数据集上进行 10 种不同扰动的实验,发现通常使用的基于 RNN 和 transformer 的 seq2seq 模型对于大多数扰动都是不敏感的。再者,作者开源了代码,认为这将会是一个检验对话系统的有用工具。

introduction

人们猜测是因为不能很好的利用对话历史,所以模型经常没有办法产生对话主题相关的句子,比方说回应一些诸如 “谢谢”,“好的” 这些无关紧要的话。实验的一个核心的前提(思想)是说,如果这个模型对认为造成的文本内容的改变(扰动)不敏感,那就是说它没有非常大程度的利用这段内容。作者发现:

  • recurrent and transformer-based seq2seq models 对于实验中的大多数种类的扰动都不敏感
  • 甚至在 randomly shuffling or reversing words within every utterance in the conversation history 这种极大的变化的情况下,二者都不是特别敏感
  • recurrent model 对于对话历史中每个 utterance 的先后顺序很敏感,这意味着他可以比 transformer 更好的模拟对话动态。

experiment setup

作者将给定对话历史生成恰当回复的问题演变为一个 conditional language modeling problem. 要学习一种条件概率分布 $P_\theta (y|x)$ ,其中 $y$ 是给定对话历史 $x$ 应该出现的合理的回复。对话历史由一系列 utterance $\bold{x_1}, \bold{x_2}, ... \bold{x_n}$ 表示,其中每个 $\bold{x_i}$ 由一系列单词 $x_{i_1}, x_{i_2}, ...x_{i_k} $ 组成,回复 $y$ (utterance)同理由 $y_{i_1}, y_{i_2}, ...y_{i_k}$ 组成。至此,完整的条件概率表示为:
$$
P_{\theta}(y|x) = \prod^n_{i = 1} P_{\theta}(y_i|y_{<i},\bold{x_1}, \bold{x_2}, ... \bold{x_n})
$$
工作的关键是研究当我们人工的干扰对话历史 $\bold{x_1}, \bold{x_2}, ... \bold{x_n}$ 时,学到的概率分布会有怎么样的行为。作者通过观察在这些变化下 per-token 的 perplexity (困惑度) 增加了多少来测量这姓行为。如果增加量很小,那么我们就可以总结出 $\bold{x_1}, \bold{x_2}, ... \bold{x_n}$ 的顺序对于模型不是很重要。所有的模型训练的时候都不加入扰动,敏感度只在测试的时候被测试。

1. datasets

四个多轮对话数据集

  • bAbI dialog : 任务导向多轮数据集,五个预定饭店的任务,复杂度依次增加。实验使用任务5,因为这个是最难的,它包括 1000 个对话,每个对话平均有 13 个 user utterance。
  • Persona Chat : 开放域对话数据集,两个人被随机安排两个角色进行对话产生。10.9$k$ 个对话,平均每个对话 14.8 轮。
  • Dailydialog : 收集每天日常的对话,涉及多个主题。13$k$ dialogs / 7.9 turns
  • MutualFriends : 多轮 goal-oriented,两个agents 必须去发现他们的朋友中谁是二者共有的。11$k$ / 11.41 utterances。
2. types of perturbations

每种扰动都独立的执行

  • utterance-level perturbations : 1) $ \mathcal{Shuf}$ : 随机打乱对话历史中的 utterances。2) $\mathcal{Rev}$ : 每个 utterance 保持不变,但对话历史对话顺序颠倒。3) $\mathcal{Drop}$ : 完全丢掉某个 utterance。4) $\mathcal{Truncate}$ 缩减对话历史,只留下最近的 k 个utterances。
  • word-level perturbations : 1) $\mathcal{word-shuffle}$ 2) $\mathcal{reverse}$ 3) $\mathcal{word-drop}$ : 丢掉 30% 的 words 4) $\mathcal{noun-drop}$ : 丢掉所有的名词。5) $\mathcal{verb-drop}$
3. models

所有的数据加载,模型实现,和评估的过程都在 ParlAI 架构实现的。模型的所有超参数也都是和那个平台一样。

  • recurrent models : seq2seq_LSTM
  • transformer : 300 维 embeddings and hidden states

实验中的模型可能不是试验中所用的数据集上表现最优的模型,作者仍然相信这些模型至少可以像一个baseline 一样具有普适性普遍的使用。在这篇文章中,作者训练10轮就停止为了去保存最好的模型(?)。

results & discussion

表 2 第二列展示了在测试集上不同模型的困惑度,后边几列是不同的扰动造成的困惑度的 increase;图一展示了仅仅摘取最近 k 句话作为对话历史时模型困惑度的改变。

作者有如下发现:

  • 在大多数情况下模型在困惑度上只有很小的改变,甚至当改变非常明显时也变化不大,这意味着模型使用的信息只是提供给他们的信息中很少一部分。
  • transformer 对词序的变化不敏感,这意味着他们能学习词袋表示
  • 注意力机制的使用使得模型使用更多的来自于对话早期的信息(当只使用一句话时困惑度增加的非常剧烈)
  • 尽管 transformer 模型收敛更快且有着更低的困惑度,但是他们似乎不能捕捉到对话历史中的动态变化且对扰动不是很敏感,相对于recurrent 模型来说。

conclusion

本文研究生成神经对话系统在其所依赖的对话历史中综合引入扰动时的行为。我们发现,即使对对话历史进行剧烈的、非自然的修改,recurrent and transformer-based seq2seq models 也没有显著的变化。我们还发现了 recurrent and transformer-based seq2seq models 在利用对话历史的方式上的细微区别。通过开源代码,我们相信这种通过引入扰动来研究模型行为的例子将成为一个有用的诊断工具。

转载于:https://www.cnblogs.com/forPrometheus-jun/p/11177804.html

《Do Neural Dialog Systems Use the Conversation History Effectively? An Empirical Study》相关推荐

  1. [NLG]Do Neural Dialog Systems Use the Conversation History Effectively? An Empirical Study?

    摘要: 为了发现对话历史是否真的被有效的利用了,本文介绍了10种干扰来评测对话历史是否真正被利用.发现transformer-seq2seq 和rnn seq2seq并没有很好地利用这些信息 主要工作 ...

  2. 《Introduction to Computing Systems: From bits and gates to C and beyond》

    很好的一本计算机的入门书,被很多学校采纳作为教材,作者Yale N. Patt 是计算机界的泰斗.中文版名为<计算机系统概论>(译者:梁阿磊 , 蒋兴昌, 林凌) 书籍首页 (旧版首页 ) ...

  3. CHAPTER 24 Dialog Systems and Chatbots

    CHAPTER 24 Dialog Systems and Chatbots Speech and Language Processing ed3 读书笔记 Language is the mark ...

  4. DL:深度学习算法(神经网络模型集合)概览之《THE NEURAL NETWORK ZOO》的中文解释和感悟(六)

    DL:深度学习算法(神经网络模型集合)概览之<THE NEURAL NETWORK ZOO>的中文解释和感悟(六) 目录 DRN DNC NTM CN KN AN 相关文章 DL:深度学习 ...

  5. DL:深度学习算法(神经网络模型集合)概览之《THE NEURAL NETWORK ZOO》的中文解释和感悟(四)

    DL:深度学习算法(神经网络模型集合)概览之<THE NEURAL NETWORK ZOO>的中文解释和感悟(四) 目录 CNN DN DCIGN 相关文章 DL:深度学习算法(神经网络模 ...

  6. DL:深度学习算法(神经网络模型集合)概览之《THE NEURAL NETWORK ZOO》的中文解释和感悟(三)

    DL:深度学习算法(神经网络模型集合)概览之<THE NEURAL NETWORK ZOO>的中文解释和感悟(三) 目录 MC HN BM RBM DBN 相关文章 DL:深度学习算法(神 ...

  7. Paper:《Graph Neural Networks: A Review of Methods and Applications—图神经网络:方法与应用综述》翻译与解读

    Paper:<Graph Neural Networks: A Review of Methods and Applications-图神经网络:方法与应用综述>翻译与解读 目录 < ...

  8. 美国DARPA204页可解释人工智能文献综述论文《Explanation in Human-AI Systems》

    来源:专知 摘要:本文介绍Arxiv上的<Explanation in Human-AI Systems>,一篇关于可解释机器学习的综述,介绍了可解释机器学习的多学科观点.历史研究.模型. ...

  9. Paper:《Graph Neural Networks: A Review of Methods and Applications》翻译与解读

    Paper:<Graph Neural Networks: A Review of Methods and Applications>翻译与解读 目录 <Graph Neural N ...

最新文章

  1. OpenFire、Spark、Smack介绍
  2. 软件测试人员:如何优秀的提Bug?
  3. Mysql8.0可以使用解压版 这个比较快 好像现在都是解压版了
  4. python123循环结构_来学Python啦,大话循环结构~
  5. 计算MACD(指数平滑移动平均线)Moving Average Convergence / Divergence
  6. 平板电脑必装十大软件_电脑越用越卡?这5个必装软件,分分钟帮你恢复火箭般的速度...
  7. tenrrt编译出错
  8. VUE Error:if there's nested data,rowKey is required错误
  9. linux u盘安装win8,u盘启动大师安装深度技术win8.1系统教程
  10. PCA+SVM进行人脸识别(ORL人脸数据集分类)
  11. 跨境电商如何通过WhatsApp Business进行客户服务?
  12. 51单片机——红绿灯系统
  13. sqlserver Sum求和float类型 数据不准问题
  14. 计算机专业发展1500字,【关于计算机起源及发展的论文1500字左右,论文形式.】...
  15. ldpc译码讲解_LDPC码编译码原理及应用
  16. 科学计算机怎么反用lglg,我的计算机使用LG显示器. 在哪里可以恢复出厂设置. 找不到吗?...
  17. MySQL数据库期末项目 图书馆管理系统
  18. Streamlit学习使用(一)
  19. CST微波工作室学习笔记—9.求解器
  20. vi 编辑文件中常用命令

热门文章

  1. 第二阶段 铁大Facebook——十天冲刺(六)
  2. RobotFramework读取mysql和oracle数据库
  3. laravel5.5事件系统
  4. LeetCode-Populating Next Right Pointers in Each Node-填充结点的右指针-二叉树递归
  5. CSS3学习——设计优雅的数据表格
  6. 欣赏一下OFFICE 2013 PLUS吧
  7. iReport工具的使用(三)
  8. gdb的简单使用和gdb+gdbserver方式进行ARM程序调试
  9. s9 Linux 进程管理命令
  10. 裴蜀定理(note)