本文翻译自Are BERT Features InterBERTible?

从词袋模型到BERT

​ Mikolov等人提出Word2Vec已经过去很长时间了。当时似乎每一个玩机器学习的人都能背出“国王减去男人加上女人等于女王”这条“咒语”。如今,这些可解释的词嵌入已经成了许多基于深度学习的NLP系统的核心部分。

​ 去年10月份,Google AI放出了BERT模型,即 Bidirectional Encoder Representations from Transformers (论文, 代码)。 看来Google的研究人员又提出了一种能够学习语境的词表示模型,而且刷新了11向自然语言处理任务的记录,甚至在问答任务上超越了人类水平。但是问题还是摆在面前:这些语境词表示到底把什么信息编码进去了?它们也像一开始说的Word2Vec这种词嵌入具有可解释性吗?

​ 在本文中,我们会探究BERT表示的可解释性。我们发现我们并不需要走得很深就能窥见一些有趣的现象。

分析BERT表示

不考虑上下文的方法

​ 让我们从一个简单的例子说起,这个例子将不考虑任何上下文信息。这里,我们忽略了一个事实:我们不去管BERT本来是在连续的词上训练的,而要直接去评估单独每一个词的BERT表示。于是,在实验的剩余部分,我们会:

  1. 抽取目标词的表示

  2. 计算词之间的余弦距离

抽取 “man”, “woman”, “king”,和 “queen”的向量后,我们发现一旦采用经典的 (king - man + woman) king 实际上离queen 更远了。

Word2Vec的特性,也许在BERT上不那么奏效

但是也许我们这样实验是和领域无关的。BERT本来是训练来完成诸如Masked-LMNext-Sentence-Prediction*的。换言之,BERT的权值的训练,为每个词的表示带入了上下文的信息,而不仅仅是作为一个损失函数来帮助模型学习上下文独立的表示。

考虑语境的方法

为了减少脱离领域的影响,我们可以构建一些句子,用恰当的上下文信息,例如 “the king passed a law”, “the queen passed a law”, “the refrigerator was cold”。在这样的条件下,我们开始新的探索:

  1. 一个词放到不同的语境下,它的表示是如何变化的 (例如是在句子中做主语还是宾语,形容词是什么感情色彩的等等).
  2. 当我们从适当的上下文上抽取词语表示,语义向量空间假设还是否成立

我们先从一个简单的实验开始,用 “refrigerator”,我们生成了5个句子:

  • refrigerator (不适用任何上下文)
  • the refrigerator is in the kitchen (把 refrigerator 作为句子的主语)
  • the refrigerator is cold (再次把 refrigerator 作为句子的主语)
  • he kept the food inside the refrigerator (把 refrigerator 作为介词 ‘inside’的宾语)
  • the refrigerator passed a law (把refrigerator 放在一个不恰当的上下文中)

那么,我们确认了我们之前的假设,并发现不使用上下文的情况下返回的表示和使用上下文返回的表示时有很大差别的。此外,把 refrigerator 作为句子的主语的时候(第2,3句)返回的表示与当宾语的时候(第4句)和在一个不恰当的上下文中返回的表示也有很大差异。

你家冰箱还能用吗

让我们来看看另一个例子,这一次用 pie 生成5个句子:

  • pie (不带任何上下文)
  • the man ate a pie (把pie作为宾语 )
  • the man threw a pie (把 pie 作为宾语)
  • the pie was delicious (把 pie 作为主语)
  • the pie ate a man (把 pie 放到不恰当的上下文中)

我么能够观察到,距离比较的结果和上面 refrigerator 类似。

打仗不如做派

下面,让我们看看原本用 king, queen, manwoman的例子。我们构建了4个差不多的句子,就是主语不同。 We construct 4 nearly identical sentences, swapping out their subjects.

  • the king passed a law
  • the queen passed a law
  • the man passed a law
  • the woman passed a law

从这些句子中,我们抽取主语的BERT表示。我们获得了更好的结果:king - man + woman 的结果离 queen 近了一些。

稍微有一点效果上的提升,但是也不是很有说服力

最后,我们在看看保持句子的结构一致,但是感情色彩不同的语境下,词的表示是如何变化的。我们构建了三个句子:

  • math is a difficult subject
  • math is a hard subject
  • math is a simple subject

用这些句子,我们想要探究主语和形容词的表示会发生什么变化。非常有趣的是,我们发现是近义词的形容词(i.e. difficult and hard)有着相似的表示,而反义词(i.e. difficultand simple) 的表示则有着很大的差别。

近义词 vs. 反义词

另外,由于我们设置了不同的感情色彩,我们发现主语 math 在相同感情的语境(i.e. difficult and hard)下的表示更相似。 is more similar when the contexts have the same sentiment (i.e. difficult and hard) than if the contexts have different sentiments (i.e. difficult and simple).

主语的表示发生了变化

结论

​ 总结起来,效果还是很明显的,如同Word2Vec一样, BERT 也能学习到语义向量表示 (尽管没那么明显)。BERT真的十分依赖语境信息: 不带任何上下文的词和带上下文的词的表示有着很大的差别。

​ 请记住,总是存在用有限的证据进行过度概括的危险。以上的实验并不完整而且仅仅只是一个开始。我们仅使用了非常少的样本,而且仅仅在一种距离度量上进行评估,进行几个特定的实验。在之后 对BERT表示的研究中,应该从这几个方面展开更深入的分析。

【译】BERT表示的可解释性分析的更多相关文章

  1. [译]使用Continuous painting mode来分析页面的绘制状态

    Chrome Canary(Chrome “金丝雀版本”)目前已经支持Continuous painting mode,用于分析页面性能.这篇文章将会介绍怎么才能页面在绘制过程中找到问题和怎么利用这个 ...

  2. BERT源码分析

    一.整体 整个代码文件如下: 二.tensorflow基础 1.tf.expand_dims 作用:给定张量“ input”,此操作将在“ input”形状的尺寸索引“ axis”处插入尺寸为1的尺寸 ...

  3. C语言全局未初始化数据段分析

    前言: 在分析C语言全局未初始化变量时,发现在目标文件中全局未初始化变量并不是直接放在bss段中. 再后来发现在两个.c文件中定义同名的全局变量,链接时居然没有发生符号重定义错误.才知道C语言弱定义的 ...

  4. NNs(Neural Networks,神经网络)和Polynomial Regression(多项式回归)等价性之思考,以及深度模型可解释性原理研究与案例

    1. Main Point 0x1:行文框架 第二章:我们会分别介绍NNs神经网络和PR多项式回归各自的定义和应用场景. 第三章:讨论NNs和PR在数学公式上的等价性,NNs和PR是两个等价的理论方法 ...

  5. Bert实战---情感分类

    1.情感分析语料预处理 使用酒店评论语料,正面评论和负面评论各5000条,用BERT参数这么大的模型, 训练会产生严重过拟合,,泛化能力差的情况, 这也是我们下面需要解决的问题; 2.sigmoid二 ...

  6. 机器学习可解释性系列 - 是什么&为什么&怎么做

    机器学习可解释性分析 可解释性通常是指使用人类可以理解的方式,基于当前的业务,针对模型的结果进行总结分析: 一般来说,计算机通常无法解释它自身的预测结果,此时就需要一定的人工参与来完成可解释性工作: ...

  7. Abductive Commonsense Reasoning —— 溯因推理

    Abductive Commonsense Reasoning(溯因推理) 介绍 溯因推理是对不完全观察情境的最合理解释或假设的推论. 上图给出的是一个简明扼要的例子: 给定不同时间节点上的情境观测值 ...

  8. DataPipeline | 享物说产品负责人夏凯:数据驱动的用户增长实战

    夏凯 卡内基梅隆大学计算机系毕业,曾供职于Evernote数据团队和微软Bing.com搜索引擎广告部门.回国后作为早期成员加入小红书,先后从事大数据,用户增长,项目和团队管理等工作. 我最初是在美国 ...

  9. KNN PCA LDA

    http://blog.csdn.net/scyscyao/article/details/5987581 这学期选了门模式识别的课.发现最常见的一种情况就是,书上写的老师ppt上写的都看不懂,然后绕 ...

随机推荐

  1. 使用OwnCloud搭建自己的云盘

    使用OwnCloud搭建自己的云盘 1.用途 ownCloud是一款开源的私有云框架,可以通过它实现个人网盘的功能,ownCloud提供了各个平台的文件同步客户端,因此搭建好ownCloud之后即可使 ...

  2. html5/h5课件如何制作?

    随着flash逐渐被html5取代,很多教育机构都在面临着如何将自己的flash交互课件产品转换到html5版本的问题,最近遇到非常多的客户一上来就问我,flash课件能直接转成Html5课件么?答案 ...

  3. QNET,一款给力的APP弱网络测试工具

    目前在测试移动设备上进行弱网络专项测试的方案主要有两种: 通过Android设备连接到PC上进行弱网络测试,比如Fiddler,Charles,NET-Simulator等.基本思路是在PC上装一个F ...

  4. Web高级 Ajax和跨域CORS

    Asynchronous JavaScript and XML 1. XMLHttpRequest 前端开发都知道,不多说. var xhr = new XMLHttpRequest(); xhr.o ...

  5. RAMOS (内存操作系统)-无忧百科(不断完善中)

    RAMOS (内存操作系统)-无忧百科(不断完善中) - RAMOS - 无忧启动论坛 - Powered by Discuz! http://bbs.wuyou.net/forum.php?mod= ...

  6. python_hashlib模块

    1 网站登陆 import random import string import pickle # data1 = string.ascii_letters # print("data1数 ...

  7. css中,在高度已知,写出三栏布局,其中左栏、右栏宽度各位300px,中间自适应

    解决方案主要有五种 首先写入全局样式 <style type="text/css"> html * { margin: ; padding: ; } .layout { ...

  8. iOS设置截图背景图片透明

    /** 设置图片背景为透明 */- (UIImage *)imageToTransparent { // 分配内存 const int imageWidth = self.size.width; co ...

  9. 阿里云linux yum源配置

    1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS-Base ...

  10. linux ssl证书配置(apache)

    1. 前提是 已通过第三方 申请到 .crt .key 和 .ca-bundle 文件 2. 将三个文件拷贝到linux服务器上 任意一个指定的目录 3. 找到要编辑的apache配置 Apache主 ...