NLP领域表达退化各向异性理解及对应策略总结

news2024/11/26 10:31:42

前言:今年8月份在与同学撰写deepfake相关论文的过程中偶然听导师提到各向同性与各向异性这两个词,当时以为这是cv领域的概念,回去一查发现是物理领域的,就没再深究。最近看到一篇使用对比学习解决开放式长文本生成中模型退化问题的文章 SimCTG(A Contrastive Framework for Neural Text Generation,NeurIPS 2022),这篇文章中恰好提到了这两个概念,且发现模型生成的 token 向量分布也存在 各向异性的现象(下图左),提出使用“对比训练”+“对比搜索”的方式消除这一问题(下图右)。

SimCTG

顺藤摸瓜才发现,早在2018年左右,已经有研究发现NLP领域存在模型表示的各向异性问题,且目前为止已有很多相关研究了~这篇博文是在现有资料和个人理解的基础上形成的总结,下面我们就来了解一下NLP领域中向量表示的各向同性与各向异性问题及其相关工作。


目录

  • 各向同性&各向异性
  • NLP中的各向异性&表达退化
  • 各向异性校正方法
    • “训练中校正”
      • 嵌入矩阵正则化约束
      • 对比学习
    • “训练后校正”
      • 线性变换
      • 主成分消除
  • 总结
  • 参考资料

各向同性&各向异性

各向同性与各向异性可以作为表示学习模型能力的一个判断依据。表示学习的终极目标是表征的 Alignment 和 Uniformity,前者表示相似的向量距离应该相近,后者就表示向量在空间上应该尽量均匀,各向同性便是表示学习期望达到的理想状态

  • 各向同性的物理解释:物体的物理、化学等方面的性质不会因方向的不同而有所变化的特性,即某一物体在不同的方向所测得的性能数值完全相同,亦称均质性。

  • 各向异性的物理解释:物质的全部或部分化学、物理等性质随着方向的改变而有所变化,在不同的方向上呈现出差异的性质。类比:肉的顺纹与横纹等。


NLP中的各向异性&表达退化

根据论文 Representation Degeneration Problem in Training Natural Language Generation Models(ICLR, 2019)和 Improving Neural Language Generation with Spectrum Control(ICLR, 2020),我们发现在NLP领域,模型学习到的词向量表征也存在各向异性的问题(如下图):

图片出自 ICLR 2019
图片出自 ICLR 2020

这种现象又称做表达退化(Representation Degeneration)。各向异性的问题在于,模型训练过程中会产生词向量各维度表征不一致的问题,从而使得获得的句向量也无法直接比较。模型学习到的向量表征分布较为集中,彼此间的余弦相似度很高,所以这并不是一个好的表示。向量分布的聚集性限制了句向量的语义表达能力,因此当采用Bert等模型得到句向量后,采用余弦相似度无法较好地衡量出两个句子的相似度,因为Bert输出的句向量不是基于一个标准正交基得到的。


各向异性校正方法

解决模型表征各向异性的方式本质上都是对模型生成的分布进行校正,按照校正与模型训练的先后关联,现有方法大致可分为两类:(1)以对比学习为代表的“训练中校正”;(2)以BERT-flow为代表的“训练后校正”,下面分别对其进行介绍。

“训练中校正”

“训练中校正”通过添加特定的约束或设计特定的训练方式,使得模型在学习向量表示过程中更加关注向量的各向同性特性。

嵌入矩阵正则化约束

这篇文章正式提出自然语言生成模型的“表达退化”这一问题,并给出针对这一问题的简单的解决办法,便是通过在损失中添加正则项的方式对词向量矩阵进行正则化。

相关论文:Representation Degeneration Problem in Training Natural Language Generation Models(ICLR, 2019)

对比学习

这种方法的核心思想是先对句子进行传统的文本增广,如转译、删除、插入、调换顺序等等,再将一个句子通过两次增广得到的新句子作为正样本对,取其他句子的增广作为负样本,进行对比训练,训练目标是拉近正样本对的距离,同时增加与负样本的距离,如此一来,训练出的表示向量便能够更加接近各向同性的目标。此类方法代表性工作有 SimCSE、ConSERT等。

  • SimCSE:利用预训练模型中自带的Dropout mask作为增广手段得到句向量,且质量远好于其他增广方法。

相关论文:SimCSE: Simple Contrastive Learning of Sentence Embeddings(EMNLP, 2021)

  • ConSERT:同样使用数据增强——对比学习的方式提高模型的表征能力。使用的数据增强方式有:Adversarial attack、shuffle、token cutoff、feature cutoff、dropout.

相关论文:ConSERT: A Contrastive Framework for Self-Supervised Sentence Representation Transfer(ACL, 2021)

其他基于对比学习的方法:ESimCSE(COLING 2022)、DiffCSE(NAACL2022)、PromptBert(EMNLP 2022)、SNCSE、EASE(NAACL2022)等,详见此篇博客。

“训练后校正”

“训练后校正”通过对表示学习模型输出的向量进行特定的变换,使得得到的向量分布更加接近各向同性。

线性变换

这种方法的核心思想是对模型输出的向量进行线性变换,代表工作有 BERT-flow、Bert-Whitening.

  • BERT-flow:使用flow模型将分布进行校正为均匀的高斯分布,使得计算出的余弦相似度更为合理。

基于流模型的BERT句向量分布校正
相关论文:On the Sentence Embeddings from Pre-trained Language Models(EMNLP, 2020)

根据 苏神的分析,flow模型在缓解各向异性这一问题上并未发挥太大作用,仅仅使用简单的线性变换也能够实现,所以有了下述Bert Whitening 方法。

  • Bert Whitening:将所有的句向量转换为均值为0且协方差矩阵为单位矩阵的向量,之后再使用余弦相似度计算。

相关论文:Whitening Sentence Representations for Better Semantics and Faster Retrieval

主成分消除

  • SIF:一种高效便捷的无监督句子建模工作,通过对词向量加权(Weighted)+消除主成分(Removal)等操作,得到良好的句向量。

相关论文:A Simple but Tough-to-Beat Baseline for Sentence Embeddings(ICLR, 2017) Princeton University

  • All-but-the-Top:同样是通过消除词向量主成分的方式得到更加优越的向量表征。

相关论文:All-but-the-Top: Simple and Effective Postprocessing for Word Representations(ICLR, 2018) UIUC


总结

想起前段时间直接使用预训练的 Bert、Sentence Bert 和 SimCSE 提取句向量特征,使用 t-SNE 可视化之后发现三者对同一组数据的表示差异十分巨大,尤其是 Bert 的表征效果十分不堪,而 Sentence Bert 和 SimCSE 的表征效果相差无几。当时只觉得是模型本身的表征能力存在差距,并不清楚问题的本质,回想起来才发现后两个模型使用了对比学习,这就隐式缓解了模型的表达退化问题,即模型生成的句向量的各向异性,如此,上述问题便有了答案。


参考资料

  1. Bert中的词向量各向异性具体什么意思啊? - 看图学的回答 - 知乎
  2. NLP名词解释:各向异性(Anisotropic)​
  3. 文本表达:解决BERT中的各向异性方法总结
  4. 进击!BERT句向量表征.md
  5. NLP(自然语言处理):Representation Degeneration 表达退化
  6. 你可能不需要BERT-flow:一个线性变换媲美BERT-flow

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/86233.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在 Spring Boot 中使用 HikariCP 连接池

目前星标 12K,被使用次数更是达到了 43.1K。再来看看它的自我介绍。 牛逼的不能行啊,原来 Hikari 来源于日语,“光”的意思,这意味着快得像光速一样吗?讲真,看简介的感觉就好像在和我的女神“汤唯”握手一样…

基于SSM的企业管理系统

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

[ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

软件测试面试必看,资深测试工程师面试题集锦 全网首发

全网首发,最牛的全套软件测试 ,自动化测试面试题,这些面试题都在文章末尾,有需要的可以自取 废话少说直接开始咱们今天的整体内容, 1.自我介绍? 我是谁、工作几年、你上家公司做什么、负责什么、你的优势…

史上最全事件相机DVS/Event-based Camera的介绍和分析综述文章

史上最全事件相机DVS/Event-based Camera的介绍和分析1. DVS 的一些介绍2. 基于事件的视觉传感器发展现状与趋势3. 事件相机的动态范围:信噪比动态范围DR结论4. 新型相机DVS/Event-based camera的发展及应用应用点传统相机的缺点事件相机的优点5. 事件相机在无人驾驶…

[技巧]还在使用RDP远程windows?OpenSSH远程win10操作系统!

文章目录前言一、Win10开启OpenSSH服务1.1 查看本机是否安装了openssh1.2 下载openssh1.3 查看ssh是否安装1.4 安装openssh服务端1.5 启动openssh服务1.6 查看openssh服务是否启动正常二、开始远程2.1 在目标机器上查看用户名2.2 使用ssh命令远程三、常见问题3.1 ssh命令登陆提…

C# 接口

一 接口 接口(interface)实际上是一个约定。 如:ICloneable,IComparable; 接口是抽象成员的集合; ICIonable含有方法clone(); IComparable含有方法compare(); 接口是一个引用类型,比抽象类更抽象。 帮助实现多重继承…

配置本地Git从Gitlab上拉取项目

配置本地Git从Gitlab上拉取项目 安装git: https://git-scm.com/downloads git官网下载安装包,安装时一路next即可 ①配置用户名,邮箱 创建一个文件夹,任意位置即可鼠标右键选择,git bash here配置提交人姓名、邮箱 g…

一起学习用Verilog在FPGA上实现CNN----(二)卷积层设计

1 打开Vivado工程 Vivado工程文件如图: 打开Vivado软件,打开工程,如图: 自动升级到当前版本,如图: 暂时选择现有开发板的型号,如图: 出现一条警告性信息,暂时先不管&…

2023年第五届人工智能与机器学习国际会议(FAIML 2023)

2023年第五届人工智能与机器学习国际会议(FAIML 2023) 重要信息 会议网址:www.faiml.org 会议时间:2023年4月14-16日 召开地点:中国北京 截稿时间:2023年3月15日 录用通知:投稿后2周内 收录检索:EI,S…

差分进化算法在图像处理中的应用研究(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 本文为Storn和Price制定的著名差分进化计算智能算法的实现。该算法使用Otsu准则作为适应度函数,可用于使用多个阈值…

为什么球的表面积不能用周长积分而体积可以用面积积分?

问题描述: 将面积从最底下一层层叠到最上面可以得到球体积的正确公式 但是将周长从最底下一层层叠到最上面会得到错误结果,错误结果的几何意义是什么?以及是在什么地方积错了? 解答一: 首先, ∫−RR2πR2…

计算机研究生就业方向之去央企(国企)信息化部门

我一直跟学生们说你考计算机的研究生之前一定要想好你想干什么,如果你只是转码,那么你不一定要考研,至少以下几个职位研究生是没有啥优势的: 1,软件测试工程师(培训一下就行) 2,前…

C语言:星期一问题

题目需求 整个20世纪(1901年1月1日至2000年12月31日之间),一共有多少个星期一? (不要告诉我你不知道今天是星期几哈) 请用一段程序实现了这一功能。 算法思路 判断1901年1月1日到2000年12月31的每一天是星期几,如果是星…

前端开发:JS中关于正则表达式的使用汇总

前言 在前端开发过程中,关于正则表达式的使用也是必备技能,尤其是在实际业务需求的时候,需要处理一些不能按照正常语句操作的逻辑,如前端开发中的字符匹配、参数处理等都需要正则表达式来匹配截取处理。虽然正则表达式在程序开发中…

01-18-spark-入门简介-部署入门

01-spark-入门简介: Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。 一次性数据计算:框架在处理数据的时候,从存储设备中读取数据,进行逻辑操作,然后将结果存储到介质中。 Hadoop 的 MR 框架和 S…

直播技术分享:千万级直播系统后端架构设计的方方面面

1、引言 本文以TFBOYS“日光旅行”七周年这场直播演唱会为案例,为你分享大型直播系统后端架构设计的方方面面,包括:基本架构、稳定性保障、安全性障、监控报警、应急预案等技术范畴。 案例中的这次演唱会采用了在线实时互动及演唱会现场的多…

【能效管理】关于某项目配套渗滤液工程电能管理系统的设计和应用

摘要: 介绍老港综合填埋场二期配套渗滤液工程电能管理系统,采用智能电力仪表采集配电现场的各种电参量。系统采用现场就地组网的方式,组网后通过现场总线通讯并远传至后台,通过Acrel-3000电能管理系统实现配电回路用电的实时监控…

服开与编排,老兵新传

前段时间,有同学问:编排与服开是什么关系?现在运营商都建设编排系统,那是不是服务开通以后就退出 OSS 舞台了?为什么会出现编排?这些问题对于行业老兵来说感慨万千,而对于新兵来说就要通过追溯其…

深度学习炼丹-超参数设定和网络训练

前言网络层内在参数 使用 3x3 卷积使用 cbr 组合尝试不同的权重初始化方法 图片尺寸与数据增强batch size 设定 背景知识batch size 定义选择合适大小的 batch size学习率和 batch size 关系 学习率参数设定 背景知识什么是学习率如何设置学习率 优化器选择 优化器定义如何选择…