文本嵌入的隐私风险:从嵌入向量重建原始文本的探索

随着大型语言模型(LLMs)的广泛应用,文本嵌入技术在语义相似性编码、搜索、聚类和分类等方面发挥着重要作用。然而,文本嵌入所蕴含的隐私风险尚未得到充分探讨。研究提出了一种控制生成的方法,通过迭代修正和重新嵌入文本,以生成与固定嵌入点接近的文本。研究发现,尽管基于嵌入的朴素模型表现不佳,但多步骤方法能够精确恢复92%的32个标记文本输入。此外,模型还能够从临床笔记数据集中恢复重要的个人信息(如全名)。

在利用大型语言模型的系统中,文本数据的嵌入向量通常存储在向量数据库中。尽管向量数据库越来越受欢迎,但它们内部的隐私威胁尚未得到全面探索。本文旨在探讨第三方服务是否能够根据给定的嵌入向量重现初始文本,从而对隐私构成威胁。

方法:Vec2Text

Vec2Text方法是一种用于从文本嵌入向量重构原始文本的迭代修正过程。这种方法的核心在于控制生成,即生成满足特定条件(在本例中为与目标嵌入向量接近)的文本。以下是Vec2Text方法的详细说明:

1. 控制生成的启发式方法

Vec2Text方法基于控制生成的原理,它生成文本以满足一个已知的条件,即生成的文本在重新嵌入后,其嵌入向量应尽可能接近一个给定的目标嵌入点。

2. 迭代修正过程

这个过程从一个初始假设开始,并逐步通过迭代修正来改进这个假设。每一步都包括以下操作:

  • 使用当前的文本假设重新生成嵌入向量(ˆe(t) = ϕ(x(t)))。
  • 计算当前嵌入向量与目标嵌入向量之间的差异。
  • 根据这个差异来修正文本假设,生成一个新的更接近目标嵌入的文本假设。

3. 编码器-解码器变换器(Transformer)

Vec2Text使用标准的编码器-解码器架构的Transformer模型来生成和修正文本。Transformer模型因其在自然语言处理任务中的高效性能而广泛使用。

4. 多层感知机(MLP)

由于Transformer模型需要序列形式的输入,而嵌入向量是固定长度的向量,因此Vec2Text使用MLP来将嵌入向量投影到适合Transformer编码器的序列长度。具体步骤如下:

  • 使用MLP将目标嵌入向量e、当前假设嵌入向量ˆe(t)以及两者的差异e - ˆe(t)投影到更大的维度空间。
  • 将这些投影后的向量与假设文本的词嵌入向量连接起来,形成Transformer编码器的输入。

5. 模型参数化

Vec2Text模型的参数化包括:

  • 一个基础的文本逆向模型,用于生成初始假设p(x(0) | e)
  • 一个条件语言模型,用于从给定嵌入重构未知文本x

6. 训练过程

模型训练涉及以下步骤:

  • 从基础模型生成初始假设x(0)
  • 计算初始假设的嵌入ˆe(0)
  • 在生成的数据上训练模型,以改进文本假设。

7. 推理过程

在实际应用中,由于无法对所有中间假设进行求和,Vec2Text使用束搜索(beam search)来近似这个过程。在每一步修正中,考虑一定数量的可能修正,并解码这些修正的顶部可能延续,然后通过测量它们与目标嵌入在嵌入空间中的距离来选择顶部的独特延续。

Vec2Text方法通过这种方式能够有效地从文本嵌入向量中恢复原始文本,展示了文本嵌入技术在隐私保护方面的潜在风险。

实验设置

Vec2Text在两个最先进的嵌入模型上进行训练:GTR-base和OpenAI的text-embeddings-ada-002。还评估了在BEIR基准的多种常见检索语料库上生成的嵌入,以及MIMIC-III临床笔记数据库。

训练模型

Vec2Text方法在两个高绩效的文本嵌入模型上进行了训练:

  1. GTR-base: 这是一个基于T5的预训练变换器模型,专门为文本检索任务设计。GTR-base模型在MTEB(Massive Text Embedding Benchmark)文本嵌入基准测试中表现出色。

  2. text-embeddings-ada-002: 这是通过OpenAI API提供的模型,也是一个高性能的文本嵌入模型。

训练数据集
  • Wikipedia文章: Vec2Text的GTR模型训练使用了从Natural Questions语料库中选取的500万个Wikipedia文章段落,每个段落被截断至32个标记(tokens)。

  • MSMARCO语料库: Vec2Text的OpenAI模型训练使用了MSMARCO语料库的两个版本,每个版本的最大标记数分别为32和128。

评估数据集
  • BEIR基准: 为了评估模型在不同检索语料库上的表现,研究者使用了BEIR(Benchmark for Explainable Information Retrieval)基准的15个不同数据集。这些数据集覆盖了多种领域和类型的文本。

  • MIMIC-III临床笔记数据库: 此外,研究者还评估了Vec2Text在MIMIC-III(Medical Information Mart for Intensive Care)数据库中的临床笔记嵌入上的表现。这个数据库包含了大量的临床医疗记录,用于评估模型恢复敏感个人信息的能力。

实验细节
  • 模型参数: Vec2Text模型使用了约2.35亿参数,其中包括编码器-解码器架构和投影头(projection head)。

  • 超参数: 在实验中,研究者设置了投影序列长度s为16,这是基于初步实验结果确定的,因为增加此数值的收益递减。

  • 优化器和学习率: 使用了Adam优化器,学习率为2×10^-4,并采用了预热和线性衰减策略。

  • 训练周期: 模型训练了100个周期。

  • 硬件: 所有模型都在4个NVIDIA A6000 GPU上进行训练。

这些实验设置展示了Vec2Text方法在不同文本嵌入模型和数据集上的训练和评估过程,以及它在恢复原始文本方面的潜力。通过这些实验,研究者能够评估文本嵌入的隐私风险,并提出了相应的保护措施。

结果

域内数据集上的表现

Vec2Text在域内数据集上的表现超过了所有基线模型。这些基线模型包括简单的词袋模型和GPT-2解码器,它们没有使用迭代修正步骤来恢复文本。Vec2Text使用以下指标进行评估:

  • BLEU分数: 用于衡量重构文本和原始文本之间的n-gram相似度。
  • Token F1: 多类F1分数,衡量预测的标记集合和真实标记集合之间的关系。
  • 精确匹配: 重构输出完全匹配原始文本的百分比。
  • 余弦相似度: 原始嵌入向量和重构文本嵌入向量之间的相似度。

Vec2Text在这些指标上都显示出了优越的性能,特别是在使用GTR-base模型时,经过50步迭代修正后,对于32个标记的输入,BLEU分数达到了97.3,并且能够精确恢复92%的示例。

BEIR基准上的表现

Vec2Text在BEIR基准的15个数据集上进行了评估,这些数据集覆盖了不同的领域和文本类型。模型展示了对不同长度输入的适应性,并且在所有数据集上都取得了以下最低恢复性能:

  • Token F1分数: 至少41%,表明模型能够准确预测大部分的标记。
  • 余弦相似度: 至少0.95,表明重构的嵌入向量与真实嵌入向量在向量空间中非常接近。

这些结果表明,即使在未见过的文本数据上,Vec2Text也能够有效地恢复文本内容,从而证实了文本嵌入可能带来的隐私风险。

MIMIC-III临床笔记

在MIMIC-III临床笔记数据库上,Vec2Text能够恢复大部分的个人信息,包括:

  • 94%的名(first names)
  • 95%的姓(last names)
  • 89%的全名(full names)

这些结果进一步强调了在处理敏感数据时,需要特别注意保护文本嵌入的隐私。

论文链接:http://arxiv.org/pdf/2310.06816

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

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

相关文章

TCP 协议

TCP协议段格式 源/目的端口号:表示数据是从哪个进程来,到哪个进程去。 序号:发送数据的序号。 确认序号:应答报文的序号,用来回复发送方的。 4 位首部长度:一个 TCP 报头,长度是可变的&#xff…

Spring Boot使用Logback将某些日志输出到单独的文件

缘起 重构了某个接口&#xff0c;想监控下新接口各个处理过程的时间&#xff0c;从而评估和监控日常性能。监控使用Spring自带的StopWatch&#xff0c;日志使用Logback 配置 先拷贝一份infoAppender配置过来改个名 <!-- 监控日志 --><appender name"monitorAp…

简化Transformer模型,以更少的参数实现更快的训练速度

在深度学习领域&#xff0c;Transformer模型因其卓越的性能而广受欢迎&#xff0c;但其复杂的架构也带来了训练时间长和参数数量多的挑战。ETH Zurich的研究人员Bobby He和Thomas Hofmann在最新研究中提出了一种简化的Transformer模型&#xff0c;通过移除一些非必要的组件&…

【VueUse】超越基本功能的高级 Vue 元素操作

在vue开发中我们经常需要操作DOM元素&#xff0c;从简单的添加类到动态创建元素&#xff0c;这些操作都是不可避免的。而在VueUse库中&#xff0c;Elements相关API函数为我们提供了一系列强大而灵活的工具&#xff0c;帮助我们更轻松地处理DOM元素。无论是优雅地处理元素、动态…

JavaEE技术之MySql高级(索引、索引优化、sql实战、View视图、Mysql日志和锁、多版本并发控制)

文章目录 1. MySQL简介2. MySQL安装2.1 MySQL8新特性2.2 安装MySQL2.2.1 在docker中创建并启动MySQL容器&#xff1a;2.2.2 修改mysql密码2.2.3 重启mysql容器2.2.4 常见问题解决 2.3 字符集问题2.4 远程访问MySQL(用户与权限管理)2.4.0 远程连接问题1、防火墙2、账号不支持远程…

从永远到永远-和弦-挂留和弦

挂留和弦 1.概念2.指型1.Xsus2和弦2.Xsus4和弦 3.应用 1.概念 该篇说下和弦中的“渣男”、“绿茶”&#xff0c;挂留和弦。 挂留&#xff08;suspended&#xff09;和弦是将三和弦的三音替换成大二度或纯四度音形成的&#xff0c;包括挂留二和弦、挂留四和弦两种。 三音是一个…

手撕vector的模拟实现

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇:Solitary_walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”。…

JDK14特性

JDK14 1 概述2 语法层面的变化1_instanceof的模式匹配(预览)2_switch表达式(标准)3_文本块改进(第二次预览)4_Records 记录类型(预览 JEP359) 3 API层面的变化4 关于GC1_G1的NUMA内存分配优化2_弃用SerialCMS,ParNewSerial Old3_删除CMS4_ZGC on macOS and Windows 4 其他变化1…

自学Redis7入门篇一

自学Redis7入门篇一 Redis概述一、Redis是什么&#xff1f;二、Redis能干什么&#xff1f;三、去哪里下四、Redis安装配置五、Redis 10数据类型1.字符串(String)2.列表(List)3.哈希表(Hash)4.集合(Set)5.有序集合(ZSet)6.地理空间(GEO)7.基数统计(HyperLogLog)8.位图(bitmap)9.…

streampetr原版网络nuscenes数据pkl文件中的各字段含义

streampetr原版网络nuscenes数据pkl文件中的各字段含义 每帧数据都包含下列的信息 "token": 该帧数据的标识&#xff0c;具有唯一性 "prev": 该帧数据上一帧数据的token&#xff0c;如果没有就为"" "next": 该帧数据下一帧数据的toke…

计算机毕业设计PHP+vue体检预约管理系统d1yu38

防止在使用不同数据库时&#xff0c;由于底层数据库技术不同造成接口程序紊乱的问题。通过本次系统设计可以提高自己的编程能力&#xff0c;强化对所学知识的理解和运用 本系统是一个服务于医院先关内容的网站&#xff0c;在用户打开网站的第一眼就要明白网站开发的目的&#x…

[报错解决]Starting zookeeper ... already running as process 15400.

报错一 ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper-cluster/zookeeper-1/bin/../conf/zoo.cfg Starting zookeeper ... already running as process 15400.解决 netstat -anp | grep 端口号 # 如果集群没有启动&#xff0c;那么该端口不应该被占…

windows qt sdk 安装

在Windows上安装Qt SDK的步骤如下&#xff1a; 下载Qt SDK安装包&#xff1a; 打开Qt资源下载网站&#xff0c;如http://download.qt.io/。 选择适合您Windows版本和需求的Qt SDK版本进行下载。通常建议选择稳定版本&#xff0c;并确认是否包含所需的组件&#xff0c;如Qt Cre…

深入浅出MySQL-06-【索引的设计和使用】

文章目录 前言1.索引概述2.设计索引的原则3.索引设计的误区4.索引设计的一般步骤5.BTREE索引和HASH索引6.索引在MySQL 8.0中的改进6.1.不可见索引6.2.倒序索引 7.总结 前言 环境&#xff1a; Windows11MySQL-8.0.35 1.索引概述 所有MySQL列类型都可以被索引&#xff0c;对相…

01.本地工作目录、暂存区、本地仓库三者的工作关系

1.持续集成 1.持续集成CI 让产品可以快速迭代&#xff0c;同时还能保持高质量。 简化工作 2.持续交付 交付 3.持续部署 部署 4.持续集成实现的思路 gitjenkins 5.版本控制系统 1.版本控制系统概述2.Git基本概述3.Git基本命令 2.本地工作目录、暂存区、本地仓库三者的工作关系…

【Python 类基础介绍】

文章目录 一、类的基本概念1. 什么是类&#xff1f;2. 类与对象的关系3. 类的优点 二、定义和使用类1. 类的定义2. 类属性和方法类属性实例属性方法 3. 对象的创建和使用 三、类的高级特性1. 继承2. 多态和封装多态封装 3. 特殊方法示例&#xff1a;__str__ 和 __repr__ 一、类…

[数据结构]———归并排序

具体代码&#xff1a;在gitee仓库&#xff1a;登录 - Gitee.com 目录 ​编辑 1.基本思想&#xff1a; 2. 代码解析 1.分析 2.逻辑图 3.运行结果 1.基本思想&#xff1a; 归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分…

个人对行为型设计模式的理解 @by_TWJ

目录 1. 访问者模式2. 迭代器模式3. 观察者模式4. 模板模式5. 状态模式6. 备忘录模式7. 策略模式8. 解释器模式9. 责任链模式10. 命令模式11. 中介者模式 研究了一下&#xff0c;我为了方便理解&#xff0c;对它们进行了分类&#xff1a; 针对请求者与执行者关系方面 1对多 - 责…

695. 岛屿的最大面积

695. 岛屿的最大面积 题目链接&#xff1a;695. 岛屿的最大面积 代码如下&#xff1a; class Solution { public:int maxAreaOfIsland(vector<vector<int>>& grid) {vector<vector<bool>> visited(grid.size(),vector<bool>(grid[0].size…

算法打卡day40

今日任务&#xff1a; 1&#xff09;139.单词拆分 2&#xff09;多重背包理论基础&#xff08;卡码网56携带矿石资源&#xff09; 3&#xff09;背包问题总结 4&#xff09;复习day15 139单词拆分 题目链接&#xff1a;139. 单词拆分 - 力扣&#xff08;LeetCode&#xff09; …