来自:NLP从入门到放弃

今天分享的论文解决了我很久以来的一个疑惑,名字叫做:On the Sentence Embeddings from Pre-trained Language Models[1]

这个论文主要探讨两个问题:

  1. 为什么Bert做无监督文本匹配效果不好?是因为bert的输出携带的语义信息太少还是我们没有正确的利用挖掘这些语义信息

  2. 如果说是因为没有正确挖掘利用这些语义信息,那么我们怎么使用无监督的方式,让这种语义信息很容易的被利用

本文主要聊第一点,先说一下结论:

Bert向量空间并不平滑,有些区域不好被定义,也就是说是存在问题的,导致简单的相似性度量不能很好起到度量作用

简单说就是Bert输出向量语义信息是足够的,但是consine这种简单东西不能很好的度量出来而已。

那么就有大致两个解决办法:转化Bert的输出空间或者使用其他的有用的相似性度量函数。

论文使用的是第一种,对Bert的输出空间做了一个转化,这个不细说,大家去看原论文。

1. 之前遇到的小疑惑

我简单说一下我之前遇到的问题:

Bert出来之后,在下游任务上,横扫各大榜单。

一个最基础的应用是使用【cls】的输出向量微调做文本分类任务;

这样做的前提我们认为因为由于自注意力的存在,【cls】可以看到全局的信息。

但是需要注意的是,上面这句话绝对不代表没有在具体任务微调过的【CLS】向量可以代表整个句子的语义信息。

为什么这么说呢?

我们使用【CLS】向量做无监督的文本匹配,会发现一个非常奇怪的现象。

一般直觉上认为,由于Bert强大的编码能力,应该可以很好的表示语义信息,所以做无监督语义匹配,准确度应该还不错。

但是结果会发现相似度都比较大,没有什么区分度。

更进一步,我们可以对Bert输出,不仅仅是【CLS】向量,可以使用所有Tokens的输出向量做各种操作:max/mean/min Pooling等等吧。

甚至我们可以使用倒数第1/2/3/4或者把最后几层输出联合起来使用。

总之各种骚操作之后,会发现,无监督文本匹配效果依然不好。

究其原因就是????谈到的词向量的各向异性。

2. 词向量的各向异性

我们来详细说说Bert的向量空间存在的问题。

之前的论文发现Bert的词向量存在各向异性(anisotropic),两个现象

  1. 词频影响了词向量空间分布

根据词频来区分不同的单词,然后计算不同词频的单词距离原点的距离,发现词频越低,距离原点越远。

我们希望句子的embedding表达可以用来度量句子之间的相似性;但是如果单词的embedding的分布是受词频影响的,那么这种相似性是不能让人信服的。

我举个简单的例子,两句话,A和B:

  1. A:你喜欢吃苹果吗?

  2. B:你爱吃苹果吗?

不同的单词是【喜欢】和【爱】。我们假设哈,假设【喜欢】出现的频次足够的高,那么它离原点就足够的近。【爱】出现的频率足够的低,那么它离原点就足够的远。

这样的话,词频信息就误导了我最终句子向量的表达,那么embdding度量相似性就不靠谱了。

  1. 词频影响词向量空间稀疏性

基于上面的1,论文观察到,词频高的词汇分布的密集,词频低的词汇分布的稀疏。

这一点问题很大,因为如果存在稀疏性,那么在词频低的词汇周围,就会存在很多意义不明的地方。

我们可以直观的想一下,如果分布的很稀疏,那么也就是词与词之前的空间存在大量的不确定性,这些地方是没有明确的语义信息表达的。

如果我们最终所有单词的加和正合适落在这种语义不明确的地方,那么相似性的度量准确度自然很低。

为什么sen-emb相似度很大

其实还有一个小点我想说一下,就是自己做实验的时候,会发现语义匹配效果不好的体现是因为consine计算出来的相似度基本都大于0.9。

文中解释了为啥效果不好,但是并没有详细说为啥相似度计算出来都很大。(或者是有提到但是我粗心错过了)

针对这一点,我想说一下我自己的感受。

我觉得这两点的结合是根本原因:高频离原点近+高频分布紧密。

怎么说呢?

这句话其实可以这么理解:高频词基本都挤在一块了。

句子大部分还是高频词占主要部分,在计算句子向量sen-emb的的时候,我们的操作是直接相加。

那么计算出来的和当然相似度就很高。

我这个解释不严谨,没啥严格证明,但是我觉得比较容易理解。

简单总结

简单来说,就是Bert的向量空间存在各向异性(anisotropic):

  1. 高频离原点近,低频离原点远

  2. 高频分布紧密,低频分布稀疏

这两个现象的存在导致Bert的语义信息不能很好的表达出来,所以做语义相似度不好。

一个解决办法,就是把Bert的向量空间转换到另一个更加合适的空间,然后再做相似性度量,这就是论文的另一部分,感兴趣的可以去看原论文吧。

为啥相似度都很大,主要是因为高频词都挤在一块了。

加我微信,做个点赞之交

参考资料

[1]

On the Sentence Embeddings from Pre-trained Language Models: https://arxiv.org/pdf/2011.05864.pdf,

Bert做不好无监督文本匹配的原因找到了!!相关推荐

  1. 搜索,然后学习:两阶段的无监督文本生成

    论文标题: Unsupervised Text Generation by Learning from Search 论文作者: Jingjing Li, Zichao Li, Lili Mou, X ...

  2. 【论文阅读 | cryoET】Gum-Net:快速准确的3D Subtomo图像对齐和平均的无监督几何匹配

    论文题目&作者 Gum-Net: Unsupervised Geometric Matching for Fast and Accurate 3D Subtomogram Image Alig ...

  3. 基于句子嵌入的无监督文本摘要(附代码实现)

    ©PaperWeekly· 作者|高开远 学校|上海交通大学 研究方向|自然语言处理 本文主要介绍的是一个对多种语言的邮件进行无监督摘要抽取的项目,非常详细.文本摘要也是非常有意思的 NLP 任务之一 ...

  4. 直播 | WWW 2021:用先验知识指导BERT注意力机制的语义文本匹配

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

  5. 论文浅尝 | DeCLUTR: 无监督文本表示的深度对比学习

    Giorgi, J. M., O. Nitski, G. D. Bader and B. Wang (2020). "DeCLUTR: Deep Contrastive Learning f ...

  6. struts2和hibernate的简单新闻发布系统_企业做不好新闻软文营销,原因都在这里!...

    新闻稿发布是在营销宣传的过程中有效利用第三方新闻报道的传播方式,将企业信息进行有效传播:同时由于是第三方的报道,既非企业也非消费者,这样更容易让人们接受.新闻营销在网络营销中应用最为普遍,是大多企业采 ...

  7. 无监督领域迁移及文本表示学习的相关进展

    ©作者|邴立东.何瑞丹.张琰.李俊涛.叶海 单位|阿里巴巴达摩院.新加坡国立大学等 摘要 随着基于 transformer 的预训练语言模型的广泛应用,多种自然语言处理任务在近一两年来都取得了显著突破 ...

  8. 语义表征的无监督对比学习:一个新理论框架

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」7折优惠最后3天,请扫码咨询 ↑↑↑ 译者 | Linstancy 责编 | 琥珀 出品 | AI科技大本营(ID:rgznai100) ...

  9. NAACL 2021 | AWS AI 提出基于对比学习的端到端无监督聚类方法

    ©PaperWeekly 原创 · 作者 | 李婧蕾 学校 | 北京邮电大学硕士生 研究方向 | 自然语言处理 Abstract 无监督聚类的目的是根据在表示空间中的距离发现数据的语义类别.然而,在学 ...

  10. 分享 | 无监督视觉目标跟踪

    第一次在知乎写文章,想谈谈博士期间比较熟悉的视觉目标跟踪.过去每一年的这个时候都在忙碌的赶CVPR,今年突然闲下来,有点不适.工作之余,写点文章当作是怀念科研的时光.步入正题,谈谈最近在CVPR202 ...

最新文章

  1. DDD理论学习系列(6)-- 实体
  2. InetAddress相关笔记
  3. 将keras的h5模型转化为onnx
  4. Canvas实现文字粒子化,并且绕轴旋转(完善)
  5. Java入门1.2.3—一个老鸟的Java学习心得
  6. BugkuCTF-Reverse题NoString
  7. mocha chai mysql_Github MIT开源银行电子支付系统(ReactJS+Nodejs+Mysql)
  8. Halcon Blob分析(二值化图像分割)
  9. JS数据结构第五篇 --- 二叉树和二叉查找树
  10. GB/T 8567-2006《计算机软件文档编制规范》中与需求有关的文档包
  11. 手机应用只清理不够,还要卸载
  12. factory setup 序列号_麻烦哪位大侠帮我把改一下setup factory 中生成16位注册码的脚本,(在线等)急!!!...
  13. c语言试题 函数选择,(C语言函数章节选择题.doc
  14. logistic人口模型python代码_人口模型(马尔萨斯vslogistic).ppt
  15. fps射击HTML网页游戏,关于Unity中FPS第一人称射击类游戏制作(专题十)
  16. Windows11图片密码的设置方法(用喜欢的图片作为开机密码)
  17. http前后端传参写法
  18. 为什么在Visual Studio Code 中输入的汉字变成繁体字了?电脑上其他地方的输入是正常的
  19. 高精度计算-大整数除法
  20. 音频相关基础知识(采样率、位深度、通道数、PCM、AAC)

热门文章

  1. 安装Python模块:pygame
  2. 深圳90后小伙拿到14所国外名牌大学offer
  3. VB中Excel 2010的导入导出操作
  4. SNS网站获取导入MSN联系人的方法
  5. python基础之小数据池,is和==区别 编码问题
  6. HDU3746 Cyclic Nacklace KMP求循环节
  7. 贝叶斯推断之最大后验概率(MAP)
  8. 【mongoDB实战】mongo集群---主从复制篇
  9. 【MySQL必知必会】第十章 创建计算字段
  10. Failed to initialize storage module: user 的解决方式