学界 | IBM、哈佛联合提出Seq2Seq-Vis:机器翻译模型的可视化调试工具

选自arXiv

作者:Hendrik Strobelt等

机器之心编译

参与:刘天赐、刘晓坤

语言翻译中出现的细微错误对于人类而言常常是很明显的,并会导致差异很大的结果。例如,之前由于 seq2seq 翻译系统将「早上好」错误的翻译为了「攻击他们」,导致错误的逮捕事故。深度学习模型的不可解释性更是普遍存在的问题。为此,IBM 研究院、Watson AI Lab、哈佛 NLP 团队和哈佛视觉计算团队联合研发了一款针对 seq2seq 模型的可视化调试工具 Seq2Seq-Vis,使用户可以可视化模型执行过程中的注意力、单词预测、搜索树、状态轨迹和近邻词列表等,从而更高效地进行分析和调试。

  • 项目演示地址:http://seq2seq-vis.io/
  • GitHub 地址:https://github.com/HendrikStrobelt/Seq2Seq-Vis

图 1:(左图)Seq2Seq-Vis 中翻译视图(Translation View)示例:输入语句为「our tool helps to find errors in seq2seq models using visual analysis methods」,目标是将其翻译为德语。编码器和解码器之间对单词「seq2seq」的关注(attention)是正确的(红色高亮线条),但目标语言的语言词典 (language dictonary) 中并没有对应单词。观察「seq2seq」的编码器近邻词(右图)可以发现,另一个未知单词「hunki」与其距离很近。各种按钮能够支持用户完成更深层分析的交互需求。

介绍

基于神经网络的深度学习方法在诸多人工智能任务中都表现出了惊人的提升效果,但复杂的结构也令人们很难解释其预测结果。基于注意力的 sequence-to-sequence models (seq2seq) [3, 49],通常也称为编码器-解码器(encoder-decoder)模型,就是这一趋势的范例。在很多诸如机器翻译、自然语言生成、图像描述以及总结的应用场景中,seq2Seq 模型都表现出了当前最优的效果。最新研究表明,这些模型能够在特定的重要场景下,实现人类级别的机器翻译效果。

seq2seq 模型的强大性来自于其为对序列的处理和预测提供了一个高效的监督方法,而无需对源序列和目标序列间的关系予以人工指明。在同一个模型中,系统能够学会对源序列句进行重排、转换、压缩或扩展,进而输出目标序列。上述变换是通过一个巨大的内在状态表征实现对源序列的编码及之后的解码工作的。只要数据量充足,seq2seq 模型就能为预测序列的学习提供一个通用的实现机制。

虽然 seq2seq 模型的影响已经很明确了,但深度学习模型导致的复杂程度和不确定性的增加也带来了问题。通常,在给出预测时,这些模型的表现都像是一个黑箱,使得追踪错误源头也变得困难。而内部的潜在表征也使人们难以分析这些模型,因为它们将数据转化成了和原始序列相差甚远的结果。虽然这些性质是很多深度学习技术所共有的,但对于人类读者而言,语言中的错误会非常明显。例如,由于 seq2seq 翻译系统将「早上好」错误的翻译为了「攻击他们」,导致了一次错误的逮捕,最终成为一起广为人知的事故 [12]。除此之外,seq2seq 模型中更常见却也值得担忧的失败包括:机器翻译系统完全曲解了一句话,图像描述系统生成了错误的描述,或语音识别系统给出了错误的文本。

在理想情况下,模型开发者希望部署能够完全理解、相信其产生结果是正确的系统。但目前对于深度学习模型而言,这个目标依然难以实现。同时研究者相信,在「以一种通用的、可复现的方式实现表象化、可视化 seq2seq 系统中的错误」这一重大挑战面前,可视化分析社区能够有所帮助。

研究者开发了 SEQ2SEQ-VIS:一个能够通过实现以下三个目标,进而满足上述要求的可视化分析工具。

  • 检查模型决策:SEQ2SEQ-VIS 允许用户理解、描述并具体化 seq2seq 模型的错误,覆盖模型全部的五个阶段:编码器、解码器、注意力、预测、束搜索。
  • 连接样本和决策:SEQ2SEQ-VIS 展示了 seq2seq 模型基于潜在状态及其相关近邻,从训练数据中学到了什么。
  • 测试可选决策:SEQ2SEQ-VIS 提供了灵敏的交互方法,可以实现对模型内部进行操作。

图 1(或更完整的图 7)展示了 SEQ2SEQ-VIS 的全貌。它整合了模型组件的可视化(图 1 左)、特定样本的内在表征(图 1 中),和在一个由预先计算好样本组成的巨大离线语料库上实现的最近邻搜索(nearest-neighbor lookup)。

图 2:seq2seq 模型通过五个阶段,将源序列翻译为目标序列:(S1)将源序列编码为潜在向量,(S2)将其解码为目标序列,(S3)编码器和解码器之间实现注意,(S4)在每个时间步骤中,预测单词概率,(S5)(通过束搜索)搜索最佳翻译。

图 7:Seq2Seq-Vis 概述。两个重要视图:(a)翻译视图(Translation View)和(b)近邻视图(Neighborhood View)分别推动了不同的分析模式。翻译视图提供了(c)注意力的可视化,(d)每个时间步骤中 top-k 个单词预测,以及(e)束搜索树。近邻视图通过(f,g)状态轨迹的投影以及(h)针对一个特定模型状态的最近邻列表,更进一步展示模型学到了什么。

使用案例

图 10:一个日期转换模型翻译效果的比较。输入序列「March 21, 2000」和「May 21, 2000」仅有几个字符不同。(顶部)用于预测正确月份「3」和「5」的注意力集中在了其差异「y」和「rc」上。(左下)轨迹视图展示了编码器状态变化中的这一差异。(右下)近邻列表显示,在输入 M 后,模型依然未作出决策。

图 11:抽象总结的使用案例。输入句子「Russian defense minister Ivanov called Sunday for the creation of a joint front for combating global terrorism(俄罗斯国防部长 Ivanov 于周日呼吁联合抵抗全球性的恐怖主义)」可以有不同的总结形式。图中黄色方格展示了不同的前缀解码(prefix decode)设置下的抽象结果。顶部:无约束抽象;中间:将预测从「for」改成「on」后,为保证语法正确,导致模型自动加上了「world leaders」;底部:将第一个单词从「Russian」改为「Moscow」或「Russia」,句子进一步压缩后,依然保留了句意。

图 12:利用 WMT』14 数据完成语言翻译的使用案例。(顶部)注意力图展示了目标单词「he」的注意力并非仅集中在解码器「er」部分,而是同时注意力了后面的单词,甚至注意了距离很远的动词「gesprochen(说)」。解码器的状态轨迹(左下)显示「he」和「spoke」的距离非常接近。近邻列表表明,模型设置了一个阶段,其中预测「spoke」为下一个单词。

图 13:一个欠训练的英语-德语模型。在欠训练或欠参数化模型中,重复是一个很常见的现象。轨迹象形图显示,在「in Stuttgart」的重复中,解码器状态在同一个区域内在「in」和「Stuttgart」交替变化,直到将它们分离出来。

论文:SEQ2SEQ-VIS : A Visual Debugging Tool for Sequence-to-Sequence Models

论文地址:https://arxiv.org/abs/1804.09299

神经 Sequence-to-Sequence 模型已经通过许多序列预测任务证明了其具有准确、稳健的性质,也已经成为文本自动翻译的标准方法。Sequence-to-Sequence 模型的运行包含五个黑箱阶段,包括将源序列编码到一个向量空间中,再将其解码为新的目标序列。如今这是标准过程,但和许多深度学习方法一样,理解或调试 Sequence-to-Sequence 模型是很困难的。在本文中,研究者实现了一个可视化分析工具,使用户可以通过训练过程中的每个阶段,与训练好的 Sequence-to-Sequence 模型进行交互。其目标包含识别已被学到的模式,并发现模型中的错误。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2018-05-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏架构之路

蓄水池抽样-Reservoir Sampling

 英文原文:hadoop-stratified-randosampling-algorithm         译者:bruce-accumulate    ...

34830
来自专栏人工智能头条

递归神经网络不可思议的有效性(下)

17330
来自专栏小樱的经验随笔

51Nod 1083 矩阵取数问题(矩阵取数dp,基础题)

1083 矩阵取数问题 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 一个N*N矩阵中有不同的正整数,经过这个格子,就能获得...

27680
来自专栏深度学习自然语言处理

调参的一些个人拙见

最近的事。。浓缩成下面的一张图。 ? 调参有哪些方法呢? 语料处理。这个是之后一切操作的基础。有人或许认为算法是最重要的,其实不然,语料处理真的真的是最重要的。...

29850
来自专栏Python中文社区

利用深度学习建立流失模型(附完整代码)

失去一个老用户会带来巨大的损失,大概需要公司拉新10个新用户才能予以弥补。如何预测客户即将流失,让公司采取合适的挽回措施,是每个公司都要关注的重点问题。

32820
来自专栏人工智能

通过JS库Encog实现JavaScript机器学习和神经学网络

在本文中,你会对如何使用 JavaScript 实现机器学习这个话题有一些基本的了解。

1.6K100
来自专栏程序员宝库

使用 JavaScript 实现机器学习和神经学网络

英文:JeffHeaton 译文: 云+社区/白加黑大人 https://cloud.tencent.com/developer/article/103589...

393100
来自专栏企鹅号快讯

机器学习系统设计03-机器学习入门应用案例

@[Markdown, 机器学习] Github源代码下载 参考书籍:《机器学习系统设计》 应用案例说明 我们有一个数据集,是一个网站每小时的web访问量,随着...

23850
来自专栏AI科技大本营的专栏

如果你还没搞懂LSTM 网络,那本文绝对值得一看

本文作者Christopher Olah是Google Brain的研究科学家,她在文中图文并茂地解释了什么是LSTM网络,为什么要用LSTM网络,以及LSTM...

31870
来自专栏LhWorld哥陪你聊算法

【深度学习篇】--Seq2Seq模型从初识到应用

“高分辨率”聚焦在图片的某个特定区域并以“低分辨率”,感知图像的周边区域的模式。通过大量实验证明,将attention机制应用在机器翻译,摘要生成,阅读理解等问...

13540

扫码关注云+社区

领取腾讯云代金券