对比表征学习(二)Setence Embedding

参考翁莉莲的Blog,本章主要阐述句子嵌入(sentence embedding)

文本扩增

绝大部分视觉应用中的对比方法依赖于创造每个图像的增强版本,但是在句子扩增中会变得非常有挑战性。因为不同于图片,在扩增句子的同时非常容易改变句子本身的语义。

Lexical Edit(词汇编辑)

EDAEasy Data Augmentation;paper)定义了一组简单但有效的文本增强操作。给定一个句子,EDA随机选择以下四种操作:

  • 同义词替换(Synonym replacement):用同义词随机替换 n n n 个单词(不能是stop word)。

  • 随机插入(Random insertion):在句子的随机位置插入一个随机选择的非停用词的同义词。

  • 随机交换(Random swap):随机交换两个词,并重复此操作 n n n 次。

  • 随机删除(Random deletion):以一定概率 p p p 随机删除句子中的每个词。

其中 p = α p = \alpha p=α n = α × sentence_length n = \alpha \times \text{sentence\_length} n=α×sentence_length,按照直觉来看,长句子在吸收更多噪声同时能保持原始标签(原始句子的意思)。超参数 α \alpha α 大致指示一次增强可能改变的句子中的单词百分比。

研究表明,与没有使用EDA的基线相比,EDA能够在多个分类基准数据集上提高分类准确性。在较小的训练集上,性能提升更为显著。EDA中的所有四种操作都有助于提高分类准确性,但在不同的 α \alpha α 值下达到最优(参考下图)。

在这里插入图片描述

在上下文增强(Sosuke Kobayashi, 2018)中,位于位置 i i i 的单词 $ w_i $ 的替换可以从给定的概率分布 p ( ⋅ ∣ S ∖ { w i } ) p(\cdot | S \setminus \{w_i\}) p(S{wi})中平滑采样,该分布由双向语言模型如BERT预测。

Back-translation(回译)

CERT (Contrastive self-supervised Encoder Representations from Transformers;paper) 通过回译的方式来产生增强后的数据。不同语言的各种翻译模型可用于创建不同方式的数据增强。一但我们有了文本样本的噪声版本,就可以通过对比学习框架来训练sentence embedding

Dropout and Cutoff

Cutoff:Shen et al.(2020)受跨视图训练的启发,提出将截止值应用于文本增强。他们提出了三种截断扩增策略:

  • 标记符截断(Token cutoff)会删除一些选定标记符的信息。为确保没有数据泄露,输入(input)、位置(positional)和其他相关嵌入矩阵(embedding matrice)中的相应标记应全部清零
  • 特征截断删除一些特征列。
  • 跨度截断删除连续的文本块。

在这里插入图片描述

一个样本可以创建多个增强版本。在训练时,使用了额外的 KL-发散项来衡量不同增强样本预测之间的一致性。

SimCSE:Gao et al.;在无监督数据中学习时,只需通过句子本身进行预测,将dropout作为噪声。换句话说,他们将dropout视为文本序列的数据增强。一个样本只需输入编码器两次,这两个版本就是正对样本,而其他批次中的样本则被视为负对样本。这种方法感觉上与cutoff很相似,但dropout相对于cutoff处理更灵活。

在这里插入图片描述

相关内容可以参考阅读笔记 :Notes

Supervision from Natural Language Inference

在语义相似性任务中,未经任何微调的预训练 BERT 句子嵌入性能不佳。因此,我们不能直接使用原始的嵌入,而需要通过进一步微调来完善嵌入。

Natural Language Inference(NLI)任务是为句子嵌入学习提供监督信号的主要数据源,如 SNLI、MNLI 和 QQP。

Sentence-BERT

SBERT: (Reimers & Gurevych, 2019) 依赖于暹罗(Siamese)和三重(triplet)网络架构来学习句子嵌入,这样,句子的相似性就可以通过嵌入对之间的余弦相似性来估算。需要注意的是这个框架依赖于监督数据集。实验效果的好坏取决于数据集,所以没有一个较好的优势。

BERT-flow

如果嵌入是均匀分布在每一个维度中,那么嵌入空间就被认为是各向同性,反之则为各项异性。 Li et al, (2020) 在论文中表示,预训练的bert模型学习到了一个非平滑的各向异性的语义嵌入空间,所以导致了在没有进行微调的情况下,在语义相似任务中的垃圾表现。 根据经验,他们发现 BERT 句子嵌入存在两个问题: 词频会使嵌入空间产生偏差。高频词靠近原点,而低频词远离原点。低频词分布稀疏。低频词的嵌入往往离其 k-NN 邻近词较远,而高频词的嵌入则较为密集。BERT-flow通过归一化流将嵌入转化为平滑和各向同性的高斯分布。

在这里插入图片描述

U \mathcal{U} U 代表观察到的BERT句子嵌入空间, Z \mathcal{Z} Z 为期望的潜在空间,它是一个标准高斯分布。因此, p Z p_{\mathcal{Z}} pZ 是一个高斯密度函数,并且 f ϕ : Z → U f_{\phi} : \mathcal{Z} \rightarrow \mathcal{U} fϕ:ZU 是一个可逆变换:

z ∼ p Z ( z ) , u = f ϕ ( z ) , z = f ϕ − 1 ( u ) z \sim p_{\mathcal{Z}}(z), \quad u = f_{\phi}(z), \quad z = f_{\phi}^{-1}(u) zpZ(z),u=fϕ(z),z=fϕ1(u)

一个基于流的生成模型通过最大化 U \mathcal{U} U 的边际似然来学习这个可逆映射函数:

max ⁡ ϕ E u = BERT ( s ) , s ∼ D [ log ⁡ p Z ( f ϕ − 1 ( u ) ) + log ⁡ ∣ det ⁡ ∂ f ϕ − 1 ( u ) ∂ u ∣ ] \max_{\phi} \mathbb{E}_{u=\text{BERT}(s), s\sim \mathcal{D}} \left[ \log p_{\mathcal{Z}}(f_{\phi}^{-1}(u)) + \log \left| \det \frac{\partial f_{\phi}^{-1}(u)}{\partial u} \right| \right] ϕmaxEu=BERT(s),sD[logpZ(fϕ1(u))+log detufϕ1(u) ]

其中 s s s 是从文本语料库 D \mathcal{D} D 中采样的句子。只有流参数 ϕ \phi ϕ 在优化过程中被优化,而预训练的BERT中的参数保持不变。

BERT-flow已经被证明可以提高大多数语义文本相似性(STS)任务的性能,无论是否有NLI数据集的监督。因为学习用于校准的归一化流不需要标签,它可以利用整个数据集,包括验证集和测试集。

Whitening Operation

Su et al. (2021) 应用了白化操作来改善学习表示的各向同性,并减少句子嵌入的维度。

他们将句子向量的均值变换设置为0,协方差矩阵变换为单位矩阵。给定一组样本 { x i } i = 1 N \{x_i\}_{i=1}^N {xi}i=1N,让 x ~ i \tilde{x}_i x~i Σ ~ \tilde{\Sigma} Σ~ 为变换后的样本和相应的协方差矩阵:

μ = 1 N ∑ i = 1 N x i , Σ = 1 N ∑ i = 1 N ( x i − μ ) ( x i − μ ) T \mu = \frac{1}{N} \sum_{i=1}^N x_i, \quad \Sigma = \frac{1}{N} \sum_{i=1}^N (x_i - \mu)(x_i - \mu)^T μ=N1i=1Nxi,Σ=N1i=1N(xiμ)(xiμ)T

x ~ i = ( x i − μ ) W , Σ ~ = W T Σ W = I ,因此  Σ = ( W − 1 ) T W − 1 \tilde{x}_i = (x_i - \mu)W, \quad \tilde{\Sigma} = W^T \Sigma W = I \text{,因此 } \Sigma = (W^{-1})^T W^{-1} x~i=(xiμ)W,Σ~=WTΣW=I,因此 Σ=(W1)TW1

如果我们得到 Σ \Sigma Σ 的奇异值分解(SVD) U Λ U T U \Lambda U^T UΛUT,我们将有 W − 1 = Λ U T W^{-1} = \sqrt{\Lambda} U^T W1=Λ UT W = U Λ − 1 2 W = U \Lambda^{-\frac{1}{2}} W=UΛ21。注意,在SVD中, U U U 是一个正交矩阵,其列向量为特征向量, Λ \Lambda Λ 是一个对角矩阵,包含按顺序排列的正特征值。

可以通过只取 W W W 的前 k k k 列来应用降维策略,这种方法被称为 w h i t e n i n g − k whitening-k whiteningk

在许多 STS 基准测试中,无论是否有 NLI 监督,白化操作都优于 BERT-flow,并在 256 个句子维度上实现了 SOTA。

Unsupervised Sentence Embedding Learning

Context Prediction

Quick-Thought (QT)vectors (Logeswaran & Lee, 2018)将句子表征学习表述为一个分类问题:给定一个句子及其上下文,分类器根据其向量表征(“cloze test”)将上下文句子与其他对比句子区分开来。这样的表述去除了会导致训练速度减慢的 softmax 输出层。

在这里插入图片描述

f ( ⋅ ) f(\cdot) f() g ( ⋅ ) g(\cdot) g() 是两个将句子 s s s 编码成固定长度向量的函数。设 C ( s ) C(s) C(s) 为在 s s s 上下文中的句子集合, S ( s ) S(s) S(s) 是候选句子集合,包括只有一个真实上下文句子 s c ∈ S ( s ) s_c \in S(s) scS(s) 和许多其他非上下文负句子。Quick Thoughts模型学习优化预测唯一真实上下文句子 s c s_c sc 的概率。它本质上是在考虑句子对 ( s , s c ) (s, s_c) (s,sc) 为正样本对时使用NCE损失,而其他对 ( s , s ′ ) (s, s') (s,s) 其中 s ′ ∈ S ( s ) , s ′ ≠ s c s' \in S(s), s' \neq s_c sS(s),s=sc 作为负样本。

L Q T = − ∑ s ∈ D ∑ s c ∈ C ( s ) log ⁡ p ( s c ∣ s , S ( s ) ) = − ∑ s ∈ D ∑ s c ∈ C ( s ) log ⁡ exp ⁡ ( f ( s ) T g ( s c ) ) ∑ s ′ ∈ S ( s ) exp ⁡ ( f ( s ) T g ( s ′ ) ) \mathcal{L}_{QT} = -\sum_{s \in D} \sum_{s_c \in C(s)} \log p(s_c | s, S(s)) = -\sum_{s \in D} \sum_{s_c \in C(s)} \log \frac{\exp(f(s)^T g(s_c))}{\sum_{s' \in S(s)} \exp(f(s)^T g(s'))} LQT=sDscC(s)logp(scs,S(s))=sDscC(s)logsS(s)exp(f(s)Tg(s))exp(f(s)Tg(sc))

这个损失函数计算每个句子 s s s及其对应的上下文句子 s c s_c sc的对数概率,相对于所有候选句子的得分的归一化。这有助于模型学习区分正确的上下文句子与其他不相关的句子。

Mutual Information Maximization

IS-BERT (Info-Sentence BERT)(Zhang et al. 2020)采用基于相互信息最大化的自监督学习目标,以无监督方式学习良好的句子嵌入。

IS-BERT的工作流程如下:

  1. 使用BERT将输入句子 s s s 编码为长度为 l l l 的令牌嵌入 h 1 : l h_{1:l} h1:l
  2. 然后应用不同核大小(例如1, 3, 5)的1-D卷积网络来处理令牌嵌入序列以捕获n-gram局部上下文依赖性: c i = ReLU ( w ⋅ h i : i + k − 1 + b ) c_i = \text{ReLU}(w \cdot h_{i:i+k-1} + b) ci=ReLU(whi:i+k1+b)。输出序列被填充以保持输入的相同尺寸。
  3. i i i 个令牌的最终局部表示 F θ ( i ) ( x ) \mathcal{F}_\theta^{(i)}(x) Fθ(i)(x) 是不同核大小表示的拼接。
  4. 通过在令牌表示 F θ ( x ) = { F θ ( i ) ( x ) ∈ R d × l } i = 1 l \mathcal{F}_\theta(x) = \{\mathcal{F}_\theta^{(i)}(x) \in \mathbb{R}^{d \times l}\}_{i=1}^l Fθ(x)={Fθ(i)(x)Rd×l}i=1l 上应用时间平均池化层计算全局句子表示 ξ θ ( x ) \xi_\theta(x) ξθ(x)

由于互信息估计通常对于连续和高维随机变量来说是难以处理的,IS-BERT依赖于Jensen-Shannon估计器(Nowozin et al., 2016, Hjelm et al., 2019)来最大化 E θ ( x ) \mathcal{E}_\theta(x) Eθ(x) F θ ( i ) ( x ) \mathcal{F}_\theta^{(i)}(x) Fθ(i)(x) 之间的互信息:
I J S D ω ( F θ ( i ) ( x ) ; E θ ( x ) ) = E x ∼ P [ − sp ( − T ω ( F θ ( i ) ( x ) ; E θ ( x ) ) ) ] − E x ∼ P , x ′ ∼ P ~ [ sp ( T ω ( F θ ( i ) ( x ′ ) ; E θ ( x ) ) ) ] I_{JSD}^\omega(\mathcal{F}_\theta^{(i)}(x); \mathcal{E}_\theta(x)) = \mathbb{E}_{x \sim P}[-\text{sp}(-T_\omega(\mathcal{F}_\theta^{(i)}(x); \mathcal{E}_\theta(x)))] - \mathbb{E}_{x \sim P, x' \sim \tilde{P}}[\text{sp}(T_\omega(\mathcal{F}_\theta^{(i)}(x'); \mathcal{E}_\theta(x)))] IJSDω(Fθ(i)(x);Eθ(x))=ExP[sp(Tω(Fθ(i)(x);Eθ(x)))]ExP,xP~[sp(Tω(Fθ(i)(x);Eθ(x)))]
其中 T ω : F × E → R T_\omega : \mathcal{F} \times \mathcal{E} \rightarrow \mathbb{R} Tω:F×ER 是一个带参数 ω \omega ω 的可学习网络,用于生成判别器得分。负样本 x ′ x' x 是从分布 P ~ = P \tilde{P} = P P~=P 中采样的。 sp ( x ) = log ⁡ ( 1 + e x ) \text{sp}(x) = \log(1 + e^x) sp(x)=log(1+ex) 是softmax激活函数。

\mathcal{E} \rightarrow \mathbb{R}$ 是一个带参数 ω \omega ω 的可学习网络,用于生成判别器得分。负样本 x ′ x' x 是从分布 P ~ = P \tilde{P} = P P~=P 中采样的。 sp ( x ) = log ⁡ ( 1 + e x ) \text{sp}(x) = \log(1 + e^x) sp(x)=log(1+ex) 是softmax激活函数。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TPD-3W 系列——3W 1.5KVDC 隔离 宽范围输入,双隔离双输出 DC/DC 电源模块

TPD-3W系列产品是专门针对线路板上分布式电源系统中需要产生一组与输入电源隔离的双隔离双电源的应用场合而设计。该产品适用于:1)输入电源的电压变化范围≤2:1 ;2)输入输出之间要求隔离≤1500VDC;3&#x…

从零开始搭建一个SpringBoot项目

目录 Spring BootSpring Boot 项目开发环境1、快速创建SpringBoot项目2、pom.xml 添加 Meavn 依赖3、配置application.yml4、验证数据库是否连接成功5、配置 Druid 数据源 Spring Boot 整合 MyBatis1、准备依赖2、application-dev.yml 配置3、启动类添加Mapper接口扫描器4、设置…

【C++】:vector容器的基本使用

目录 🍒1,vector的介绍🍒2,vector的使用🐯2.1 vector的构造🦁2.2 vector iterator 的使用🌽2.3 vector 空间增长问题🍓2.4 vector 增删查改🐯2.5 vector 访问及遍历&…

2024新数据库入门教程

1.官网下载MySQL 下载Mysql链接: 点击下载mysql 下载完成后解压到某一个文件夹(记住这个路径,一会要用到) 2.配置初始化文件my.ini 在根目录下创建一个txt文件,名字叫my,文件后缀为ini 以下代码除安装目录和数…

[STM32-HAL库]ADC采集-DMA中断采集-平均值滤波-STM32CUBEMX开发-HAL库开发系列-主控STM32F103C8T6

目录 一、前言 二、实现步骤 1.STM32CUBEMX配置 2.Keil工程程序设计 三、结语 一、前言 本文通过STM32CUBEMX实现对ADC的数据采集和滤波操作,帮助各位开发者完成与模拟量输入的采集工作。 二、实现步骤 1.STM32CUBEMX配置 以STM32F103C8T6为例,打开S…

选项卡式小部件QTabWidget

文章目录 1. 详细介绍2. 常用属性3. 信号4. 常用函数5. 官方示例Tab Dialog QTabWidget提供一堆选项卡式小部件。 1. 详细介绍 选项卡式部件提供一个选项卡栏和一个用于显示与每个选项卡相关的页面的页面区域。 默认情况下,选项卡栏显示在页面区域上方,…

duckdb 插件机制研究

本文研究 duckdb 内置的 extensions 工作机制。 插件架构 在 duckdb 源码内,内置了一组原生插件,位于顶层 extension 目录下: 除此之外,还支持 Out-of-Tree Extension,简单说就是独立的插件,不是集成在源…

2024年5月20日 (周二) 叶子游戏新闻

《边境之塔》登陆Steam 复古风恐怖生存冒险DascuMaru制作并发行,一款低像素3D复古风恐怖生存冒险新游《边境之塔(The Tower on the Borderland)》登陆Steam正式推出,限时九折优惠,本作暂不支持中文。 勇魅出击&#xf…

nuxt2:自定义指令 / v-xxx / directives / 理解 / 使用方法 / DEMO

一、理解自定义指令 在 vue 中提供了一些对于页面和数据更为方便的输出&#xff0c;这些操作就叫做指令&#xff0c;以 v-xxx 表示&#xff0c;比如 html 页面中的属性 <div v-xxx ></div>。自定义指令很大程度提高了开发效率&#xff0c;提高了工程化水平&#x…

亚马逊云主管马特·加尔曼面临压力,致力于在人工智能领域赶超竞争对手

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Java项目:基于SSM框架实现的企业人事管理系统单位人事管理系统【ssm+B/S架构+源码+数据库+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的企业人事管理系统单位人事管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观…

pytorch文本分类(四)模型框架(模型训练与验证)

关卡四 模型训练与验证 本文是在原本闯关训练的基础上总结得来&#xff0c;加入了自己的理解以及疑问解答&#xff08;by GPT4&#xff09; 原任务链接 目录 关卡四 模型训练与验证1. 训练1.1 构建模型结构1.2 模型编译1.3 模型训练1.4模型超参数调试 2. 推理2.1 模型准确性…

大模型时代的具身智能系列专题(三)

清华高阳团队 高阳为清华叉院助理教授&#xff0c;本科毕业于清华大学计算机系&#xff0c;博士毕业于UC Berkeley。博士导师是Vision领域的大牛Trevor Darrell&#xff0c;读博期间和Sergey Levine合作开始强化学习方面的探索&#xff0c;博后跟随Pieter Abbeel做强化学习&am…

aws emr启动standalone的flink集群

关键组件 Client&#xff0c;代码由客户端获取并做转换&#xff0c;之后提交给JobMangerJobManager&#xff0c;对作业进行中央调度管理&#xff0c;获取到要执行的作业后&#xff0c;会进一步处理转换&#xff0c;然后分发任务给众多的TaskManager。TaskManager&#xff0c;数…

ResNet残差网络的学习【概念+翻译】

基于何明凯前辈论文的学习 1.主要内容&#xff08;背景&#xff09; 1、首先提了一个base&#xff1a;神经网络的深度越深&#xff0c;越难以训练。 2、原因&#xff1a;因为随着神经网络层数的增加&#xff0c;通常会遇到梯度消失或梯度爆炸等问题&#xff0c;这会导致训练变…

二十八、openlayers官网示例Data Tiles解析——自定义绘制DataTile源数据

官网demo地址&#xff1a; https://openlayers.org/en/latest/examples/data-tiles.html 这篇示例讲解的是自定义加载DataTile源格式的数据。 先来看一下什么是DataTile&#xff0c;这个源是一个数组&#xff0c;与我们之前XYZ切片源有所不同。DataTile主要适用于需要动态生成…

【CSharp】将ushort数组保存为1通道位深16bit的Tiff图片

【CSharp】将ushort数组保存为1通道位深16bit的Tiff图片 1.背景2.接口 1.背景 System.Drawing.Common 是一个用于图像处理和图形操作的库&#xff0c;它是 System.Drawing 命名空间的一部分。由于 .NET Core 和 .NET 5 的跨平台特性&#xff0c;许多以前内置于 .NET Framework…

10.SpringBoot 统一处理功能

文章目录 1.拦截器1.1在代码中的应用1.1.1定义拦截器1.1.2注册配置拦截器 1.2拦截器的作用1.3拦截器的实现 2.统一数据返回格式2.1 为什么需要统⼀数据返回格式&#xff1f;2.2 统⼀数据返回格式的实现 3.统一异常处理4.SpringBoot专业版创建项目无Java8版本怎么办&#xff1f;…

[转载]同一台电脑同时使用GitHub和GitLab

原文地址&#xff1a;https://developer.aliyun.com/article/893801 简介&#xff1a; 工作中我们有时可能会在同一台电脑上使用多个git账号&#xff0c;例如&#xff1a;公司的gitLab账号&#xff0c;个人的gitHub账号。怎样才能在使用gitlab与github时&#xff0c;切换成对应…

Vue.js - 计算属性与侦听器 【0基础向 Vue 基础学习】

文章目录 计算属性 computedcomputed 的使用方法computed 与 method 的区别计算属性完整写法 watch 侦听器&#xff08;监视器&#xff09;简单写法 → 简单类型数据&#xff0c;直接监视完整写法 → 添加额外配置项 计算属性 computed computed 的使用方法 **概念&#xff1…