SHAQ:用影子查询实现向量数据库中的隐私检索
Shadow Queries for Private Retrieval in Vector Databases
SHAQ用影子查询嵌入替换文档嵌入,作者称vec2text下ROUGE-1平均0.2710、最低0.2104。
第三方云端向量库存储 dense retrieval 的预计算文档嵌入。
- 云端向量库的文档嵌入可被 EIA 还原原文。作者认为噪声只能很小,secret scaling 会被向量归一化抵消,需要在保住检索的同时切断嵌入与原文的直接对应。
- SHAQ 用生成模型为每篇文档合成覆盖不同语义侧面的影子查询,再把查询嵌入随机打散后替换库中的文档嵌入,检索时经映射回到原文档。
- 以 vec2text 攻击 10 个 BEIR 数据集的 GTR-T5 嵌入。作者称标准设定 ROUGE-1 平均 0.2710、最低 0.2104,自适应平均 0.3376、最低 0.2083。Table III 中 SHAQ 的 NDCG 变化含 −0.0747。
- 论文未专门讨论局限。覆盖为 BEIR 的 10 个数据集、vec2text 与 32 token 截断,另有 SciFact 上未截断效用和 DPR 效用。论文未报告重复次数,未做人工评估;下游生成被写为超出评测范围。
- 威胁模型
- 第三方云端向量库存储 dense retrieval 的预计算文档嵌入。攻击者为 honest-but-curious,可经内部威胁或数据泄露读取存储嵌入,并以 black-box 方式调用嵌入模型、对任意文本取得嵌入。目标是还原与观测嵌入对应的原始文档。论文称该设定与 vec2text 的 EIA 研究一致。
- 被测模型
- GTR-T5 encoderDPR
- 基准
- BEIRSciFactNatural QuestionsMS MARCONFCorpusHotpotQAFiQAArguAnaQuora Question PairsFEVERCLIMATE-FEVER
- 指标
- NDCG@10MAP@10Recall@10Precision@10AccuracyBLEUROUGE-1ROUGE-2ROUGE-LMETEOR
针对向量数据库嵌入向量易受嵌入向量反演攻击(EIA)的问题,SHAQ 用生成式语言模型为每篇文档生成多角度影子查询,编码后替代原始文档嵌入存储,以分解语义并与原文解耦。在多个 IR 数据集上,其恢复率低至 0.2104,比基线防御多保护最多 19.50% 的 token,MAP@10 最高 0.7967,效用提升最多 5.53%。
深度解读
这篇论文试图解决什么问题?
云端向量库文档嵌入可被 EIA 还原,SHAQ 用影子查询嵌入替换以切断直接映射。
云端向量库中的文档嵌入可被 embedding inversion attack(EIA)还原原文,现有防御难以同时保住检索效用与隐私。
- 场景: RAG 等系统用 dense retriever 与云端向量库(论文举例 Pinecone、Milvus)在推理时接入外部知识。作者认为嵌入仍会泄漏原文,取得库中嵌入的对手可用 EIA 恢复私有文档。
- 现有不足: embedding noise 只能加很小扰动,否则效用难保;secret scaling 用仅用户知道的标量乘查询与文档嵌入,作者称向量归一化即可抵消,实践中无效果。二者都直接改文档嵌入,受嵌入与文本的语义耦合限制。
- 核心观察: 作者认为 EIA 依赖嵌入与底层文本的强耦合,以及由此产生的可逆映射。
- 本文提出: 作者提出 SHAQ(shadow query generation):为每篇文档生成覆盖不同语义侧面的影子查询,用其嵌入替换库中的文档嵌入,做 semantic decomposition 与 embedding decoupling。
- 威胁模型:
- 受害系统: 第三方托管的云端向量库里、为 dense retrieval 预计算并存储的文档嵌入。
- 攻击者: honest-but-curious,可经内部威胁或数据泄露取得这些嵌入。
- 知识: 以 black-box 访问所用嵌入模型,即对任意文本取得嵌入。论文称该设定与 vec2text 的研究一致。
- 目标: 还原与所观测文档嵌入对应的原始文档。主评测假定攻击者不知道 SHAQ。
有哪些相关研究?
相关工作分为 EIA、直接改嵌入的防御,以及面向效用的查询生成。
论文在 Section V 与引言里把相关工作分成攻击、直接改嵌入的防御,以及查询/文档生成。
- Embedding inversion
- Song 与 Raghunathan(2020):指出穷举词表不可行,用梯度下降更新 dummy token 嵌入去逼近目标嵌入。作者称该方法仍要对嵌入模型反向传播,计算开销大;评测未纳入,理由是它并非针对向量库中的文档级恢复。
- Li 等(2023)GEIA:训练 GPT-2,由目标嵌入预测原文。作者称其针对句子级,对大规模语料威胁较小;评测未纳入。
- Morris 等(2023)vec2text:训练基于 T5 的模型,从目标嵌入解码文本,聚焦向量库与文档级嵌入。作者称这是本文要缓解的主要风险,并用作攻击基线,称之为 state-of-the-art。
- 直接修改嵌入的防御
- Morris 等(2023)的 embedding noise:向嵌入注入随机噪声。作者称只能用很小噪声,否则难兼顾效用与隐私。
- Zhuang 等(2024)secret scaling:用仅用户知道的标量乘查询与文档嵌入。作者称向量归一化即可绕过,实践中无效。作者把这两类方法都归为直接改文档嵌入,并称其受语义耦合限制。
- 查询或文档生成
- Nogueira 等(2019)doc2query,以及 docTTTTTquery:由文档生成伪查询并拼回文档以提升检索;后者用预训练 T5。
- Wang 等(2023)query2doc:用预训练 LLM 按查询扩充文档语料,以改善训练泛化。作者称这些工作关注 IR 效用,SHAQ 的生成管线针对文档隐私。
- 基线与基准
- 基线方法: 无防御、embedding noise(实验取 σ=0.01)、secret scaling(作者将其视为等同无防御,结果表未单列)。攻击基线为 vec2text。
- 基准/数据集: BEIR 中保留的 10 个数据集(Table I):SciFact、Natural Questions、MS MARCO、NFCorpus、HotpotQA、FiQA、ArguAna、Quora Question Pairs、FEVER、CLIMATE-FEVER。
作者将 SHAQ 定位为:不再修改文档嵌入,而用影子查询嵌入替换文档嵌入,以 semantic decomposition 与 embedding decoupling 缓解向量库 EIA,并与只改进检索效用的查询生成工作区分。Section V 末句还提到视觉模型与模型验证方面的相关工作,未展开对比。
- Embedding inversion
论文如何解决这个问题?
SHAQ 先生成多样影子查询,再以其嵌入替换文档嵌入并随机打散索引。
SHAQ 分生成与索引两步:用生成式语言模型把每篇文档拆成多条影子查询,再以这些查询的嵌入替换向量库中的文档嵌入。Figure 1 给出总览。
问题设定与形式化
- 嵌入模型 ϕ(·) 把查询和文档映到同一向量空间。论文将 top-k 检索写为 DK=argtop-kd∈ Dsim(ϕ(q),ϕ(d)),即按余弦相似度或点积取前 k 篇。
- 防御不改写在线查询编码。影子查询在检索前一次性离线生成。检索成功的条件是:用户查询在语义上接近某一条影子查询,再经映射回到原文档。
- 库中向量不再编码整篇文档,只编码其中一个语义侧面,从而使 EIA 直接还原到的文本不再是原文档。
影子查询生成
- Algorithm 1:对每篇文档构造提示词,生成模型 f 产出 ng 条候选;K-Means 分成 nk 簇,每簇随机取一条。提示词用于引导不同检索视角;附录 A 给出完整提示词,附录 B 给出生成示例。
- 作者称该步骤借鉴 doc2query,但这里用影子查询嵌入替换文档嵌入,而不是把伪查询拼回文档。
- 实验中 f 为 QwQ-32B(8-bit 量化)。附录 F 因计算资源将 ng 取为 10;在 SciFact 上搜索 nk∈{1, 5, 10} 后,作者称 nk=10 的效用与隐私平衡最好,全文采用 nk=10。
嵌入索引与散射
- Algorithm 2:每条影子查询经 ϕ 编码为 e,映射 S 记录 e 到文档 ID,e 写入向量库 V;全部写入后 RandomShuffle。检索时把命中的影子查询经 S 映回文档。
- 作者称把同一文档的多条影子查询嵌入池成一个向量会因语义互相干扰而降低效用,故不做池化,而保留多条嵌入并随机打散。打散是为了提高自适应攻击按顺序定位同一文档全部影子查询的难度(Section IV-F)。
检索、参数与判定
- 主实验 ϕ 为 GTR-T5 encoder,输出归一化嵌入,相似度用余弦;相似比较用 FAISS。top-k 的 k=10。
- 效用指标为 NDCG、MAP、Recall、Precision、Accuracy。防御效力把还原文本与原文档比较,指标为 BLEU、ROUGE、METEOR,越低表示还原越少。
- 为与 embedding noise 公平比较,作者在 SciFact 上搜索噪声标准差,选取与 nk=10 效用接近的 σ=0.01。下游问答与文本生成被写为超出本次评测范围。
论文做了哪些实验?
在 10 个 BEIR 数据集上,作者称 SHAQ 的 ROUGE-1 恢复率平均 0.2710、最低 0.2104。
实验设置
- 嵌入模型: 主实验为 GTR-T5 encoder。附录 I 另用 DPR(点积相似度)只报告 SciFact 检索效用。主实验把文档截断为 32 token,以对齐 vec2text 的训练长度,避免更长文本更难还原而使防御方占优。
- 攻击模型: vec2text,基于 T5,输入嵌入并生成文本;作者聚焦在 GTR-T5 嵌入上训练的攻击模型。论文写其训练对来自 NQ 或 MS MARCO 的训练集,未写明本次报告用的是哪一个。OpenAI text-embeddings-ada-002 设定因成本排除。Song 等与 GEIA 未纳入评测。
- 数据: BEIR 中 10 个数据集的 development 或 test split,各随机抽 100 条查询;纳入全部相关文档,再用 BM25 的 top-100 补不相关文档。抽样文档数为 3,242–9,968(Table I)。排除非二值相关、每查询相关文档过多或非标准 IR 的数据集(附录 E、Table V)。
- 对照: 无防御;embedding noise,σ=0.01;secret scaling 被作者视为无防御,表中不单列。同一随机种子。论文未报告重复次数,也未报告 vec2text 的迭代次数或查询次数。
- 判定: 效用为 k=10。隐私无 LLM 裁判。防御评测每个条件抽 100 条嵌入:无防御与噪声抽文档嵌入;SHAQ 抽 100 条分属不同文档的影子查询嵌入。还原结果一律与原文档比,不与影子查询文本比。标准评测假定攻击者不知道 SHAQ。
- 生成模型: QwQ-32B,8-bit。影子查询候选数 ng=10,每文档保留 nk=10。
主结果
下表只列 8 个数据集。Δ 是相对无防御的变化。据 Table III、Table IV;GTR-T5;文档截断 32 token;k=10。省略 NQ 与 CLIMATE-FEVER:无防御 R-1 为 0.9664 与 0.9582,SHAQ 的 ΔR-1 为 −0.6514 与 −0.6881,ΔNDCG 为 +0.0091 与 −0.0058。
表格较宽,可左右滑动
数据集 无防御 R-1 噪声 ΔR-1 SHAQ ΔR-1 无防御 NDCG SHAQ ΔNDCG ArguAna 0.9317 −0.5264 −0.7213 0.4118 −0.0747 Quora 0.6854 −0.3127 −0.4176 0.9146 −0.0622 HotpotQA 0.9794 −0.5842 −0.6767 0.5590 −0.0141 FiQA 0.8542 −0.4619 −0.6371 0.2610 −0.0153 MS MARCO 0.9081 −0.5103 −0.6391 0.4437 −0.0302 SciFact 0.9354 −0.5723 −0.6583 0.2428 +0.0382 FEVER 0.9622 −0.5536 −0.6364 0.6407 −0.0026 NFCorpus 0.9375 −0.5722 −0.6822 0.2113 −0.0024 - 作者称无防御时 R-1 为 0.6854–0.9794,原文可被大量还原;加噪声后重构下降,但仍有较多内容可恢复。作者称 SHAQ 在所有指标和数据集上重构分数最低,相对噪声最高优于 −0.0548(BLEU)、−0.1949(R-1)、−0.0718(R-2)、−0.1004(R-L)、−0.1689(METEOR),Section IV-D 未点名对应数据集。
- 引言称标准攻击下 ROUGE-1 恢复率平均 0.2710、最低 0.2104;相对既有防御,恢复 token 平均少 12.43%、最多少 19.50%。摘要则写最多多防御 19.50% 的 token。这些汇总数未按数据集列在表中。
- 效用上,作者称两种防御都与无防御接近。Section IV-C 给出 SHAQ 相对无防御的变化:NDCG −0.0747 至 +0.0382,MAP −0.0778 至 +0.0390,Recall −0.1100 至 +0.0640,Precision −0.0110 至 +0.0110,Accuracy −0.1100 至 +0.0600。Table III 中 NDCG 降幅最大为 ArguAna 的 −0.0747,MAP 降幅最大为 Quora 的 −0.0778。作者称 SHAQ 的 NDCG 最高 0.8524(引言)、MAP@10 最高 0.7967,相对基线防御效用最高提升 5.53%(摘要),均未点名数据集。Section IV-C 对 embedding noise 的 Precision 与 Recall 区间写反了,以 Table III 为准。
语义分解与嵌入解耦
- Table II 用拼接后的影子查询与单条影子查询,分别看语义是否保住、词面是否脱钩。拼接嵌入与文档嵌入的余弦相似度,HotpotQA 为 0.9162,Quora 为 0.7841;Document Coverage 从 FiQA 的 0.4846 到 Quora 的 0.7980。
- 单条影子查询与文档嵌入的平均余弦相似度,Quora 为 0.8310,FiQA 为 0.7496。词面重叠最低为 ArguAna 的 BLEU 0.0023、R-1 0.1949;Quora 的 BLEU 为 0.0527、R-1 为 0.3341,是该表词面重叠最高的一行。
- 作者称高拼接相似度与 token coverage 说明集合保住了文档语义;单条查询词面重叠低,说明还原一条影子查询不会露出全文。
自适应攻击
- 附录 J:攻击者知道防御机制与 nk,能使用生成影子查询的同一 LLM,并知道库中嵌入是影子查询。策略是对一条观测嵌入找余弦相似度最高的另外 nk−1 条,逐条用 vec2text 还原,再用该 LLM 试图拼回原文档。附录 J 给出完整提示词。
- Table IX 的 SHAQ 结果:BLEU 0.0151–0.1446,R-1 0.2083–0.4517,R-2 0.0511–0.2192,R-L 0.1665–0.3530,METEOR 0.1822–0.3807。R-1 最低为 Quora 0.2083,最高为 HotpotQA 0.4517。
- 作者称自适应攻击提高了攻击效力,但总体恢复仍然较低,并归因于同一文档的影子查询覆盖不同侧面、语义并不总相近,且索引时随机打散。引言称该设定 ROUGE-1 平均 0.3376、最低 0.2083。
其他消融与分析
- 未截断 SciFact(Table VII):无防御 NDCG 从截断时的 0.2428 到 0.5916;SHAQ 相对无防御的 ΔNDCG 为 +0.0578。作者称相对其截断版本,SHAQ 的 NDCG +0.3684、MAP +0.3556、Recall +0.3934、Precision +0.0430、Accuracy +0.4000。攻击模型不能处理变长输入,故未评防御效力。
- DPR 替换 GTR-T5(Table VIII,SciFact):无防御 NDCG 0.0897、MAP 0.0702、Recall 0.1483;SHAQ 的 ΔNDCG 为 +0.0441、ΔMAP 为 +0.0478。作者认为三者都低于 GTR-T5,主因是 DPR 的语义嵌入能力较差,但三者彼此仍接近。
- nk 搜索(Table VI,SciFact 子样本):nk=1/5/10 的 NDCG 为 0.1740/0.2338/0.2810,R-1 为 0.2744/0.2865/0.2771。噪声 σ=0.01 时 NDCG 0.2297、R-1 0.3631;σ=0.02 时 NDCG 0.2062、R-1 0.2198。正文写 σ 的搜索集合为 {0.001, 0.01, 0.2},Table VI 列为 0、0.001、0.01、0.02。
- 作者称把同一文档的影子查询嵌入池成单一向量会降低效用,未给出池化设定的数值。
有什么可以进一步探索的点?
论文未专门讨论局限,Conclusion 只重述贡献。
作者指出的局限与后续方向
论文未专门讨论局限。Section VI 的 Conclusion 只重述贡献与作者对范式的定位;附录未把未做事项写成局限或后续工作。
实验覆盖范围
- 主实验嵌入模型为 GTR-T5 encoder;附录 I、Table VIII 另报告 DPR 在 SciFact 上的检索效用。
- 攻击评测使用 vec2text。Song 等(2020)与 GEIA 被作者排除,理由是不针对向量库中的文档级恢复。OpenAI text-embeddings-ada-002 的攻击设定因使用成本排除。
- 数据为 BEIR 中 10 个数据集,各 100 条抽样查询,使用 development 或 test split;主实验文档截断为 32 token。附录 H、Table VII 只在 SciFact 上比较未截断文档的检索效用。
- 防御对照为 embedding noise(σ=0.01)和被视作无防御的 secret scaling。标准攻击每个条件抽 100 条嵌入;自适应攻击见附录 J、Table IX。nk 与 σ 的搜索在 SciFact 子样本上完成,ng 在附录 F 取 10。
- 论文未报告实验重复次数、vec2text 用的是 NQ 还是 MS MARCO 训练对、攻击迭代次数或查询次数,以及评审与人工的一致性;隐私与效用均用自动指标,无人工评估。下游问答与生成在 Section IV-A2 被写为超出本次评测范围。
总结一下论文的主要内容
SHAQ 用影子查询嵌入替换文档嵌入;作者称可降低 vec2text 的文档恢复并保持检索。
SHAQ 是面向云端向量库 EIA 的防御:不直接改文档嵌入,而用影子查询嵌入替换它们。
- 问题: dense retrieval 与 RAG 把预计算文档嵌入放在第三方向量库。honest-but-curious 对手可以 black-box 调用嵌入模型,并用 EIA 还原原文。作者认为噪声只能很小,secret scaling 会被向量归一化抵消。
- 方法: QwQ-32B 为每篇文档生成 ng=10 条候选,经 K-Means 保留 nk=10 条影子查询;GTR-T5 编码后随机打散写入库,并用嵌入到文档 ID 的映射做 top-10 检索。标准评测假定攻击者不知道该替换。
- 隐私: 在 10 个 BEIR 数据集、文档截断 32 token、vec2text 的设定下,作者称 ROUGE-1 恢复率平均 0.2710、最低 0.2104。Table IV 中无防御 R-1 为 0.6854–0.9794;作者称 SHAQ 的重构分数低于 embedding noise,R-1 上最高优于 −0.1949。引言称相对既有防御,恢复 token 平均少 12.43%、最多少 19.50%。
- 效用与自适应: 作者称检索与无防御相当,NDCG 最高 0.8524;Table III 中 SHAQ 的 NDCG 变化为 −0.0747 至 +0.0382,ArguAna 为 −0.0747。知道防御时,Table IX 的 R-1 为 0.2083–0.4517;引言称平均 0.3376、最低 0.2083。
- 作者结论: 作者认为,从直接扰动嵌入转到语义分解与嵌入解耦,可以在保持检索的同时降低文档重构风险;并称该流程可接入现有 dense retriever,在未截断文档和 DPR 上检索效用仍与对应无防御接近。