句子表征(各项异性等偏差):PromptBERT: Improving BERT Sentence Embeddings with Prompts

news2024/11/15 17:39:21

一、核心

句子表征存在不足之处,可能面临各向异性、可能受到词频的影响、可能受到子词、大小写等的影响等等。
Gao et al.(2019)和Wang et al.(2020)指出,对于语言建模,使用最大似然训练通常会产生一个各向异性的词嵌入空间。“各向异性”是指单词嵌入在向量空间中占据一个狭窄的锥体。这种现象也可以在Bert、GPT-2等预训练过的Transformers上观察到。

二、已有的工作

之前的一些工作,也在做相关的校准工作。
比较的好的结果是,词向量具备各项同向性。

已有工作中的一些发现,也很有意思和价值。
we find that anisotropy may not be the primary cause of poor semantic similarity。各项异性并不是弱语义相似度的主要原因。
if we treat static token embeddings as word embedding, it still yields unsatisfactory results compared to GloVe。如果使用bert生成的静态语义向量,产生的结果可能并没有像glove那种令人满意。
the distribution of token embeddings is not only biased by frequency, but also case sensitive and subword in WordPiece
词向量分布不仅受到词频的影响,也受到wordpiece中子词和大小写的影响。
contrastive learning to help the BERT learn better sentence embeddings (Gao et al., 2021b; Yan et al., 2021).

1.BERT-flow

论文:On the Sentence Embeddings from Pre-trained Language Models
这篇论文看下,相似度计算相关的部分
原文链接:知乎原文
我们提出通过标准化流将BERT句子嵌入分布转换为平滑的各向同性的高斯分布,这是一个由神经网络参数化的可逆函数。具体来说,我们学习了一个基于流的生成模型,以无监督的方式最大化从一个标准高斯潜变量生成BERT句子嵌入的可能性。在训练过程中,只优化了流网络,BERT参数保持不变。然后利用学习的流,即BERT语句嵌入与高斯潜在变量之间的可逆映射函数,将BERT语句嵌入转换到高斯空间。我们将提出的方法命名为BERT-flow。
在不使用任何下游监督的情况下,我们对7个标准语义文本相似度基准进行了广泛的实验。我们的实证结果表明,在cosine嵌入相似度与人标注相似度的Spearman相关性方面,该流变换能够最大提高BERT高达12.70个点,平均提高8.16个点。当与来自自然语言推理任务的外部监督相结合时,我们的方法优于sentence- bert嵌入,得到了最优结果。除了在语义相似性任务上,在问答蕴含任务上也展现了其优越性。
此外,我们进一步的分析表明,bert训练的相似度与词汇相似度过度相关,而不是语义相似度,而我们提出的基于流的方法可以有效地解决这一问题。

Bert在解决语义相似度问题上

Reimers and Gurevych(2019)证明,BERT句子嵌入在语义相似性方面落后于先进的句子嵌入。在STS-B数据集上,甚至落后于几年前简单的、无上下文的GloVe。同时,他们表明使用上下文嵌入的均值要优于[CLS]嵌入

三、这篇论文

词向量的校准工作,采用的对比学习,PromptBERT,一种用于学习更好的句子表示的新型对比学习方法。我们首先分析了原始 BERT 当前句子嵌入的缺点,发现这主要是由于静态标记嵌入偏差和无效的 BERT 层。然后我们提出了第一个基于提示的句子嵌入方法,并讨论了两种提示表示方法和三种提示搜索方法,以使 BERT 实现更好的句子嵌入。此外,我们通过模板去噪技术提出了一种新颖的无监督训练目标,大大缩短了监督和无监督设置之间的性能差距.

3.1观察一——layers embedding不一定能够改善performance

1.随机选择两个句子,形成句子对,计算句子对彼此之间的相似度。
2.各向异性的评测是计算句子对之间的余弦相似度的平均值。
3.如果值越接近于1,则越具备各向异性。(值越接近于1,余弦相似度越大)
实施环节: randomly sample 100,000 sentences from the Wikipedia corpus to compute the anisotropy.

Let si be a sentence that appears in corpus {s1, …, sn}. n为句子的数量,M为相似度测评函数。
计算公式:在这里插入图片描述
实验结果: last layer的emebedding的各向异性很大。
在这里插入图片描述

3.2 观察二——Embedding biases harms the sentence embeddings performance

embedding bias不仅包括了token frequency,同时也包括,wordpiece的subwords,case sensitive .(子词和大小写——
对于cased PLM的token embedding大致可以分为3个region: 1 lowercase begin of word tokens 2. the uppercase begin of word tokens 3 the subword tokens .

对于uncased PLM 的token embedding大致可以分为2个region: 1 begin of word tokens 2 the subword tokens

实验结果:对于频率偏差,我们可以观察到高频tokens是聚集的,而低频标记在所有三个模型中都是稀疏分散的(Yan 等人,2021)。 BERT 中的词开头标记比子词标记更容易受到频率的影响(图中怎么看出来的?)。然而,子词标记在 RoBERTa 中更容易受到攻击

在这里插入图片描述
三个预训练模型的静态令牌嵌入各向异性的计算:根据任意两个tokens嵌入之间的余弦相似度的平均值得到的。
实验结果如下,bert-base-uncased具备较强的各向异性。
在这里插入图片描述

四、论文中的方法

  1. how to represent sentences with the prompt, and 2) how to find a proper prompt for sentence embeddings

4.1 sentence representation with prompt

方法一:使用[MASK]的hidden state表示句子。
方法二:使用[mask]得到的top-k的tokens的平均值表示句子。
P表示概率值,Wv表示token的embedding
在这里插入图片描述

4.2 prompt search

3中方式,mannal search,template search based on T5, OptiPrompt
prompt质量的评测:spearman correlation in the STS-B development set as the main metric to evaluate different templates.

4.3 prompt based denosing

The idea is using the different templates to represent the same sentence as different points of view.
使用不同的template表示同一个句子,得到的句子相似度应该很大,偏差应该很小。
h’和h表示句子x使用不同的模板h’和h^.

训练目标:同一个句子下的embedding的偏差应该尽可能的小。
在这里插入图片描述

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

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

相关文章

BabaSSL:支持半同态加密算法 EC-ElGamal

01 背 景 随着大数据与人工智能的快速发展,个人隐私数据泄露和滥用时有发生,隐私安全问题也越来越被重视。 国家于 2020 年施行密码法、2021 年施行个人信息保护法,对个人隐私数据和数据安全加密有更高的要求。 因此,隐私计算也…

2022年博客之路总结

今年是不平凡的一年,IT行业 开卷 的一年,今年大多数人 都 因种种原因 被迫换了工作,再次 先感谢CSDN 这个平台,在这里 给自己了一块可以展示自己才华的空间,通过CSDN平台的各项运营数据,让我有幸 拿到了 更…

flv.js播放flv视频

flv.js是FLV视频播放器&#xff0c;纯JS开发&#xff0c;无需Flash。 <!DOCTYPE html> <html><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport"…

【虚幻引擎UE】UE5 制作一个元旦烟花短视频的小案例(使用sequence制作视频案例)

祝愿大家元旦快乐&#xff01; 效果预览 一、创建粒子烟花特效 可以使用现成的Niagara烟花粒子特效&#xff0c;直接跳过这一步。 1、 通过Niagara系统创建粒子特效 选择现有发射器素材。 或者也可新建空白特效&#xff0c;将发射器拖入轨道&#xff08;素材包含闪光、拖…

基于TP6+Uni-app框架开发的多端圈子社区论坛小程序H5系统,带数据库和安装教程

正文&#xff1a; 前台uni-app后台tp6开发的多端圈子社区论坛小程序H5系统,带数据库和安装教程。 系统基于TP6Uni-app框架开发&#xff1b;客户移动端采用uni-app开发&#xff0c;管理后台TH6开发。 系统支持微信公众号端、微信小程序端、H5端、PC端多端账号同步&#xff0c…

CSDN的2022和2023

前言 今天是2022年12月31日&#xff0c;今年的最后一天&#xff0c;年关已至。 又到了&#xff1a;回头看路&#xff0c;低头赶路&#xff0c;抬头望路的时候。 回顾2022 疫情中的2022 今年应该算是疫情的高峰期吧&#xff0c;各种新冠变异株横行&#xff0c;从严控到一夜…

Day845.Fork/Join -Java 并发编程实战

Fork/Join Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于Fork/Join的内容。 线程池、Future、CompletableFuture 和 CompletionService&#xff0c;仔细观察会发现这些工具类都是在帮助站在任务的视角来解决并发问题&#xff0c;而不是让纠缠在线程之间如何协作的…

深度学习:05 卷积神经网络介绍(CNN)

目录 卷积神经网络简介 为什么要用卷积神经网络 网络结构组成 卷积层 卷积计算 卷积核大小 f 边界填充 (p)adding 步长 (s)tride 计算公式 卷积层 激活函数 池化层&#xff08;pooling&#xff09; dropout层 全连接层 卷积神经网络简介 卷积神经网络由一个或多个…

DoIP协议从入门到精通系列——车载网络安全

现代社会慢慢步入数字时代,在这个时代,网络安全已经成为最重要的关注点。自从1980年第一次出现电脑病毒,网络威胁和攻击持续不断,给社会(经济)带来巨大影响。随着汽车的数字化和互联化发展,自然而然会联想到汽车也将为成为黑客攻击的目标。导致的问题除了单纯的不便(攻…

数据结构 | 十大排序超硬核八万字详解【附动图演示、算法复杂度性能分析】

写在前面 2023年的第一篇博客&#xff0c;在这里先祝大家兔年快乐&#x1f430; 本文从学习到搜寻各种资料&#xff0c;整理成博客的形式展现足足花了一个月的时间&#xff0c;慢工出细活&#xff0c;希望本篇文章可以真正带你学懂排序&#xff0c;不再为写排序算法而苦恼 博主…

MQTT协议的工作原理

一、MQTT概述 MQTT由IBM的Andy Stanford-Clark博士和Arcom&#xff08;现为Eurotech&#xff09;的Arlen Nipper于1999年发明。 MQTT 是物联网 &#xff08;IoT&#xff09; 最常用的消息传递协议。MQTT 代表 MQ 遥测传输。该协议是一组规则&#xff0c;用于定义物联网设备如何…

二叉树16:找树左下角的值

主要是我自己刷题的一些记录过程。如果有错可以指出哦&#xff0c;大家一起进步。 转载代码随想录 原文链接&#xff1a; 代码随想录 leetcode链接&#xff1a;513.找树左下角的值 题目&#xff1a; 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边…

Android每周一轮子:Nvwa(热修复)

前言 &#xff08;废话&#xff09; 最近发现了一个问题&#xff0c;一些平时博客写的很多的程序员&#xff0c;反倒在日常的工作中&#xff0c;却是业务写的很一般&#xff0c;只会摆理论的人&#xff0c;甚至还跑出来教别人如何找工作&#xff0c;如何做架构&#xff0c;其实…

2022年终总结:少年不惧岁月长,彼方尚有荣光在。

2022年终总结&#xff1a;少年不惧岁月长&#xff0c;彼方尚有荣光在。 &#x1f3ac; 博客主页&#xff1a;王同学要努力 &#x1f3ac;个人简介&#xff1a;大三小白&#xff0c;喜欢前端 &#xff0c;热爱分享 &#x1f3a5; 本文由 王同学要努力 原创&#xff0c;首发于…

Eureka 注册中心

Eureka 注册中心目录概述需求&#xff1a;设计思路实现思路分析1.快速上手2.增加 Maven 依赖3.Client端配置注册中心Server端配置注册中心参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip ha…

R 语言 管道操作符

背景 关于代码的简洁性,就是你使用了比较简化的高级操作符,但是有时候会增加代码的可读性。这种可读性在于你是否真正的去了解R的高级语法。你了解高级语法,他就不难,你不了解,他就难,可读性差。 这里我们来讲解一下,关于管道操作符,使R语言编程简化一些。 管道操作…

【登录流程执行逻辑】

1)整体流程图 2.main.js是入口&#xff0c;里面require("permission")时会触发方法体 在进行require("权限时")&#xff0c;会进行一系列初始化。 重定向。 接着走login方法。 vuex其实就是store。 触发vuex里面的方法: await store.dispatch(user/getInf…

CDN消耗速度太快,解决办法

前段时间发现我网站的CDN消耗速度太快了&#xff0c;20多块钱100G的流量&#xff0c;半个月甚至十几天左右都消耗完了。 于是我看CDN的访问ip并不多&#xff0c;发现大部分消耗的都是静态资源&#xff0c;js等文件。 后来找到了解决办法&#xff0c;目前100G还有这么多 方法 …

基于MVC的网上汽车城网站平台开发

摘要 随着现代都市生活节奏的不断加快、网络覆盖面的日益扩大&#xff0c;越来越多的人们加入了网上购物的行列。如今&#xff0c;网购已经成为人们生活的一部分。本系统主要是使用 B/S架构开发出的一个基于 ASP.NET的网上汽车城网站平台开发。前台页面使用CSSDIV&#xff0c;后…

Torch包学习

创建 torch.from_numpy(ndarray) → Tensor&#xff1a;将numpy.ndarray 转换为pytorch的 Tensor。两者共享内存。返回的张量不能改变大小。orch.linspace(start, end, steps100, outNone) → Tensor&#xff1a;生成一个 从start 到 end 的tensor。tensor的长度为steps。包括…