为什么Bert做不好无监督语义匹配

【论文阅读-句向量】On the sentence embeddings from Pre-trained Language Models 上一篇看了BERT的句嵌入表示在语义文本相似性上表现不行,今天来学习下它为啥不行——各向异性。 Title: On the Sentence Embeddings from Pre-trained Language Models From: EMNLP 2020 Link: https://aclanthology.org/2020.emnlp-main.733.pdf Github: https://github.com/bohanli/BERT-flow 该阅读笔记首发于:https://zhuanl 阅读详情

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

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

  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的向量空间转换到另一个更加合适的空间,然后再做相似性度量,这就是论文的另一部分,感兴趣的可以去看原论文吧。

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

加我微信,做个点赞之交

NLP之文本匹配及语义匹配应用介绍 文章目录1、什么是文本匹配?2、文本匹配方法概述2-1 传统文本匹配方法2-2 主题模型2-3 深度语义匹配模型表示型交互型3、语义匹配应用介绍3-1 短文本-短文本语义匹配3-2 短文本-长文本语义匹配案例1-用户查询-广告页面相似度案例2:文档关键词抽取3-3 长文本-长文本语义匹配案例3:新闻个性化推荐 1、什么是文本匹配? 文本匹配是自然语言处理中一个重要的基础问题,可以应用于大量的NLP... 阅读详情

相关推荐

Sentence-BERT 语义相似度双塔模型

论文介绍 发表:2019,EMNLP 论文题目:《Sentence-BERT:sentence embeddings using siaese BERT-networks》 论文地址:https://arxiv.org/abs/1908.10084 Github:https://github.com/UKPLab/sentence-transformers 适用领域: 句向量生成 语义相似度计算 语义搜索 无监督任务(聚类) 1 概述 在20年之前的各种预训练模型中,比如bert,XLNet,Alb

weiyaner的博客 9195

文本表达:解决BERT中的各向异性方法总结

文章目录文本表达:从BERT-flow到BERT-whitening、SimCSE1、BERT-flowBERT表示存在的问题BERT-flow2、BERT-whitening向量的内积标准正交基方差与协方差whitening3、SimCSE 文本表达:从BERT-flow到BERT-whitening、SimCSE Sentence Embeddings:即能表征句子语义的特征向量,获取这种特征向量的方法有无监督和有监督两种,在无监督学习中,我们首先会考虑利用预训练好的大型预训练模型获取[CLS]或对句子

LitraLIN的博客 5257

BERT句向量(一):Sentence-BERT

前言 句向量:能够表征整个句子语义的向量,目前效果比较好的方法还是通过bert模型结构来实现,也是本文的主题。 有了句向量,我们可以用来进行聚类,处理大规模的文本相似度比较,或者基于语义搜索的信息检索。 例如搜索系统中的输入query和匹配文档document、Q&A任务的问题和答案等等,都可以转化为计算两个句子的语义相似/相关度,相关度最高的n个作为模型的返回结果。 题外话 这种类似的模型一般称为passage retrieval models,即段落检索,有两个代表: sparse model

sgyuanshi的博客 1万+

【深度学习】Sentence Embedding-BERT-Flow

BERT等语言模型在多数NLP任务中取得优异的表现,但如果直接取BERT输出的句向量作表征,取得的效果甚至还不如Glove词向量。Bert-flow论文中指出,产生该现象的原因是BERT模型的各向异性过高,Transformer模型的输出中,高频词汇分布集中,低频词汇分布分散,整个向量空间类似于锥形结构。

Dong_ZH的博客 921

别再只用BERT做语义匹配了!手把手教你用SimCSE无监督对比学习提升中文句子向量质量

本文详细介绍了如何利用SimCSE无监督对比学习技术提升中文句子向量质量,突破BERT在语义匹配中的瓶颈。通过实战案例和优化策略,展示了SimCSE在中文场景下的显著效果提升,包括数据预处理、模型架构优化和训练技巧,帮助开发者更好地应用于智能客服、电商搜索等业务场景。

weixin_30800807的博客 531

2025秋招NLP算法面试真题(十五)-为什么Bert做不好无监督语义匹配

1. 为什么Bert做无监督文本匹配效果不好?是因为bert的输出携带的语义信息太少还是我们没有正确的利用挖掘这些语义信息 2. 如果说是因为没有正确挖掘利用这些语义信息,那么我们怎么使用无监督的方式,让这种语义信息很容易的被利用

weixin_41496173的博客 366

bert 句向量 的 各向异性问题 及与 对比学习 的联系

bert , 句向量, 语义相似, 表示退化, 各向异性, 锥形空间,对比学习,simcse,

lv739880037的博客 1918

【ML】谷歌发布的文本语义匹配模型BERT:谁在背后说了算?

作者:禅与计算机程序设计艺术 1.简介 文本语义匹配(Text Semantic Matching),也叫文本相似性计算或文本相似度计算,是指根据给定的一个句子和一组候选句子之间的语义关系对其进行打分、排序并最终输出最相关的候选句子。它是自然语言处理领域中的一个重要任务。近年来,随着神经网络的发明与普及

AI天才研究院 908

NLP文本匹配任务Text Matching [无监督训练]:SimCSE、ESimCSE、DiffCSE 项目实践

NLP文本匹配任务Text Matching [无监督训练]:SimCSE、ESimCSE、DiffCSE 项目实践

丨汀、的博客 1583

Excel-MCP实战指南:零代码实现大模型与Excel的智能交互

本文详细介绍了Excel-MCP工具如何实现大模型与Excel的无缝交互,无需编写代码即可完成数据读写、图表生成等复杂操作。通过实战案例展示了Excel-MCP在销售报表自动化、财务对账等企业级场景中的应用,大幅提升工作效率。文章还提供了安装指南、核心功能解析和常见问题解决方案。

weixin_29212429的博客 434

从URDF到Gazebo:一个完整的ROS2机械臂仿真项目实战与避坑指南

本文提供了一个完整的ROS2机械臂仿真项目实战指南,详细讲解了从URDF建模、ROS2 Control配置、MoveIt2集成到Gazebo仿真的全流程。文章重点分享了URDF惯性参数设置、Gazebo插件选择、MoveIt2配置修正等关键步骤的避坑经验,帮助开发者快速搭建可用的六轴机械臂仿真环境,实现从静态模型到物理仿真的跨越。

weixin_29279153的博客 276

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

来自:NLP从入门到放弃今天分享的论文解决了我很久以来的一个疑惑,名字叫做:On the Sentence Embeddings from Pre-trained Language Mo...

zenRRan的博客 1714

opencv简单小项目

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了大量的图像和视频处理功能。要开始一个OpenCV项目,你需要安装OpenCV库,这通常可以通过Python的pip包管理器完成。替换为你要加载的图像的实际路径。这个例子展示了OpenCV项目的基本结构,你可以在此基础上添加更多的图像处理功能。如果你需要更详细的指导或代码示例,请告诉我你的具体需求。

youyouxiong的博客 972

bert获得词向量_无监督语义相似度匹配之Bert抽取文本特征实战

今天记一次采用bert抽取句子向量的实战过程,主要是想感受一下bert抽取出来的句子特征向量是否真的具有不错的语义表达。在此之前,我们来回顾一下,如果我们想拿到一个句子的特征向量可以采用什么样的方式(ps 这些下方总结只是笔者在工作中学到的一些文本向量抽取方式,可能并未收集齐全):基于词袋模型(Bag of Words)Bag of Words : 主要思想是基于对句子中字出现的次数来构建句子向量...

weixin_39847887的博客 3628

欢乐熊大话蓝牙知识16:蓝牙是怎么找设备的?扫描与广播的“对话内幕”

蓝牙是怎么找设备的?扫描与广播的对话技术介绍

hoony123的博客 1382

一个开源的AI数据分析工具,与数据对话,一键生成SQL、图表、表格、报告和智能商业分析。

Wren AI是一个开源的AI智能代理,让用户能够跟数据对话,实现从文本到SQL的转换,还能生成图表、电子表格、报告以及商业智能分析。它支持多种语言,能深入挖掘数据价值,提供智能数据探索功能,通过语义索引和精心设计的界面,让用户无需写代码即可获取洞察。Wren AI采用独特的架构,包含Wren UI、Wren AI Service和Wren Engine三大核心服务,可部署在本地或云端,助力团队高效、安全地解锁数据潜力。

AI_Charlotte的博客 4499

没数据也能玩转BERT!无监督语义匹配实战

点击上方,选择星标或置顶,每天给你送干货!阅读大概需要18分钟跟随小博主,每天进步一丢丢来自 | AI实战派在实际业务中,对给定Query检索特定范围内的词是十分常见的需求。对于字面上的...

zenRRan的博客 1044

【雕爷学编程】一款功能强大、易于使用、适用范围广泛的嵌入式Python解释器:MicroPython

1、语法方面:Micropython与Python语法基本相同,但是由于Micropython是专门为嵌入式设备设计的,因此它对标准Python的功能进行了精简和优化,去掉了一些不必要的功能,同时增加了一些嵌入式系统特有的功能。3、库方面:Micropython与Python完全不同的是,它的标准库并不完全与Python的标准库一致,特别是一些底层库和硬件相关的库。5、丰富的库和工具支持:MicroPython有丰富的库和工具支持,如GPIO控制、网络连接、传感器数据采集等,可满足各种应用需求。

雕爷学编程 5196

NLP 语义匹配:经典前沿方案整理

作者|周俊贤整理|NewBeeNLP上一篇文章,讨论了语义匹配的语义场景,NLP 语义匹配:业务场景、数据集及比赛这篇跟大家讨论相关的技术,主要包括BERT-avg、BER...

Kaiyuan_sjtu的博客 3251

车载以太网网络测试-27【SOME/IP-SD简述】

SOME/IP-SD协议是基于IP的可扩展面向服务中间件中的服务发现协议,是汽车电子和嵌入式系统中实现动态服务发现与通信的核心组件。该协议规范详细说明了协议SOME/IP服务发现(SOME/IP-SD)的格式、消息序列和语义。本文将对SOME/IP-SD协议进行详细介绍。

车载网络测试工程师的博客 1958

基于 InceptionNeXt 模块增强的 YOLOv8 模型:针对多尺度目标检测的改进与实现

modules.py。

know_F0727的博客 208

别再只用BERT做语义匹配了!手把手教你用SimCSE无监督训练中文句子向量(附完整代码)

本文详细介绍了如何利用SimCSE无监督对比学习技术优化中文语义匹配系统,突破BERT模型的局限性。通过对比学习原理解析、中文场景实战指南和完整代码示例,帮助开发者掌握无监督训练中文句子向量的关键技术,提升语义匹配的精准度。

weixin_30603633的博客 519

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

无监督语义相似度哪家强?我们做了个比较全面的评测

©PaperWeekly 原创 ·作者|苏剑林单位|追一科技研究方向|NLP、神经网络一月份的时候,笔者写了《你可能不需要 BERT-flow:一个线性变换媲美 BERT-flow》[1...

Paper weekly 1656

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

python 求连线相似度_无监督语义相似度匹配之Bert抽取文本特征实战

今天记一次采用bert抽取句子向量的实战过程,主要是想感受一下bert抽取出来的句子特征向量是否真的具有不错的语义表达。在此之前,我们来回顾一下,如果我们想拿到一个句子的特征向量可以采用什么样的方式(ps 这些下方总结只是笔者在工作中学到的一些文本向量抽取方式,可能并未收集齐全):基于词袋模型(Bag of Words)Bag of Words : 主要思想是基于对句子中字出现的次数来构建句子向量...

weixin_39951018的博客 486

BERT时代,向量语义检索我们关注什么?

每天给你送来NLP技术干货!来自:丁香园大数据前言在众多NLP任务中,语义匹配已经是最为常见的工作之一。尤其在预训练模型大行其道的今天,基于向量检索来解决各种语义上的变化,自然是大家的首要...

zenRRan的博客 1219
上一篇: 解决老大难问题-如何一行代码带你随心所欲重新初始化bert的某些参数(附Pytorch代码)
下一篇: 3分钟从零解读Transformer的Encoder
onnx
博客等级 码龄5年 1万+粉丝 416原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

onnx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值