PMark: Towards Robust and Distortion-free Semantic-level Watermarking with Channel Constraints¶
会议: ICLR 2026
arXiv: 2509.21057
代码: 即将发布
领域: AI安全 / 水印
关键词: LLM水印, 语义级水印, 无失真, 多通道约束, 鲁棒性理论
一句话总结¶
提出PMark,一种理论上无失真且对改写攻击鲁棒的LLM语义级水印方法:通过多通道正交pivot向量对候选句子进行级联二分过滤,结合中位数采样保证无失真,多通道增加水印证据密度提升鲁棒性。在改写攻击下TP@FP1%达95%+,比此前SWM方法提升14.8%。
研究背景与动机¶
领域现状:LLM水印分为token级(如Green-Red水印)和语义级(SWM)。SWM通过在句子语义空间嵌入水印信号来增强对改写攻击的鲁棒性。
现有痛点: - 现有SWM方法(SemStamp/k-SemStamp)使用拒绝采样,引入分布失真 - 单通道水印证据密度稀疏,改写攻击轻易破坏检测 - 缺乏严格的理论框架分析水印性质(无失真条件、鲁棒性界)
核心矛盾:无失真性(生成质量不变)与鲁棒性(抵抗改写攻击)之间的trade-off
本文目标:同时实现理论上的无失真保证和实际上对改写攻击的强鲁棒性
切入角度:多通道正交pivot向量 = 每句话嵌入多个独立水印bit → 证据密度成倍增加
核心 idea:无失真中位数采样 + 多正交通道级联过滤 = 高密度水印证据 → 鲁棒
方法详解¶
整体框架¶
PMark 要同时拿到两样在水印里通常此消彼长的东西:生成质量完全不变(无失真),以及对改写攻击的鲁棒。它把水印做在句子的语义空间,而不是 token 上。生成一个句子时,先让 LLM 采样出 N 个候选句,再用代理函数(proxy function,把每个候选映射成与 pivot 向量的余弦相似度标量)配合 b 个相互正交的 pivot 向量对这批候选做级联二分过滤——每个 pivot 都按中位数把候选切两半、按密钥保留指定的一半,过滤完后在剩下的候选里均匀采样得到最终输出。检测时反向操作:对每个句子重采样 N 个候选重建出当时的过滤边界(中位数),再用 soft z-test 统计检验水印信号。离线版进一步省掉检测时的重采样,直接拿零当作中位数先验。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
IN["输入上下文<br/>LLM 采样 N 个候选句"] --> PROXY["代理函数<br/>每个候选映射成标量<br/>(与 pivot 的余弦相似度)"]
PROXY --> MULTI["多通道级联过滤<br/>b 个正交 pivot 逐通道<br/>按中位数二分·按密钥留一半<br/>候选收缩到 N/2^b"]
MULTI --> SINGLE["单通道无失真采样<br/>在剩余候选里均匀采样<br/>每候选被选概率恒为 1/N"]
SINGLE --> OUT["输出含水印句子<br/>携带 b 个独立密钥 bit"]
OUT --> DET{"检测端<br/>重建 b 条中位数边界"}
DET -->|"Online: 重采样 N 个候选估计"| Z["soft z-test<br/>统计检验水印信号"]
DET -->|"Offline: 中位数≈0 先验·免重采样"| Z
Z --> VERDICT["判定是否含水印"]
关键设计¶
1. 代理函数(Proxy Function)理论框架:把语义水印的"无失真"写成一个可证的条件
在 PMark 之前,语义级水印缺一个统一的理论工具来分析它到底有没有引入失真。本文先定义代理函数——把每个候选句 \(s\) 映射成一个标量(如它与 pivot 的相似度),再把候选按代理值离散成 \(M\) 个桶,得到分布 \(q(u)\)。基于此可以严格证明:水印分布相对原分布无失真,当且仅当 \(q(u) = 1/M\),即代理值在各桶上均匀分布。这个条件在实践中很难自然满足,但它的价值正在于此——它精确指出了 SemStamp / k-SemStamp 这类拒绝采样方法失真的来源(它们的 \(q(u)\) 并不均匀),也成为后面设计无失真采样器的标尺。
2. 单通道无失真采样:靠"中位数二分 + 均匀采样"让每个候选被选概率恒为 \(1/N\)
有了上面的标尺,单通道采样要做到不引入任何分布偏移。给定一个 pivot 向量 \(v\),对 N 个候选句计算余弦相似度 \(\langle v, \mathcal{T}(s) \rangle\),按这个值找中位数,把候选切成相似度高/低两半;再用密钥 bit 决定保留哪一半,并在保留的那半里均匀采样。关键在于:无论密钥指向哪半,每个候选最终被选中的概率都恰好是 \(1/N\),于是 \(P_M^w(s|\pi) = P_M(s|\pi)\),水印分布和原分布逐点相等。这就是 Theorem 3 给出的严格无失真保证,也是它和拒绝采样的本质区别——拒绝采样会改变各候选的相对概率,而中位数二分只是给候选贴了一个不影响采样权重的标签。
3. 多通道级联过滤(Online PMark):用 b 个正交 pivot 把每句的水印证据从 1 bit 提到 b bits
单通道虽然无失真,但每个句子只埋了 1 bit 证据,改写攻击很容易把这一点信号抹掉。PMark 的核心提升是叠通道:通过 QR 分解生成 b 个相互正交的 pivot 向量,对同一批 N 个候选逐通道做中位数二分,每过一个通道就按对应密钥 bit 保留一半,候选集逐级收缩 \(V^{(0)} \to V^{(1)} \to \cdots \to V^{(b)}\),最终在只剩 \(N/2^b\) 个候选的 \(V^{(b)}\) 里均匀采样。因为各 pivot 正交,b 个 bit 相互独立,相当于每句话埋了 b 个独立水印证据,证据密度成倍增加。这种冗余直接换来鲁棒性:Theorem 7 给出,若攻击以概率 \(\epsilon\) 破坏每个通道的证据,检测信噪比
随通道数 \(b\) 和句子数 \(T\) 一起增长——通道越多、文本越长,水印越难被改写抹掉。
4. 离线 PMark(简化版):用高维空间的"准正交性"把中位数近似成零,省掉检测时的重采样
Online 版在检测时要重采样 N 个候选来重建当时的中位数,开销不小。离线版利用一个高维几何事实:在高维语义空间里随机向量几乎两两正交,于是代理函数值高度集中在 \([-\epsilon, \epsilon]\) 这个窄区间,中位数本身就贴近零。既然如此,干脆直接拿零当作先验中位数来切分,检测时不必再重采样估计。代价是引入一点点失真,但 Theorem 8 把它界住了:总变差距离 \(\delta_{TV} \leq \epsilon\),而实测中 \(\epsilon \leq 0.08\),几乎可以忽略。
一个完整示例:N=16、b=3 时一个句子怎么被采出来¶
取 N=16 个候选、b=3 个正交通道。第一个 pivot \(v^{(1)}\) 给 16 个候选算相似度、找中位数,密钥 bit 说"留高的一半",候选 16 → 8;第二个 pivot \(v^{(2)}\) 在这 8 个里再按它自己的中位数二分,留一半,8 → 4;第三个 pivot \(v^{(3)}\) 再砍一刀,4 → 2;最后在剩下的 2 个候选里均匀采样输出 1 个句子。这一句话因此同时携带了 3 个独立密钥 bit。检测端反过来:把句子重采样 16 个候选,逐通道重建那三条中位数边界,看输出句子是否落在密钥指定的那一侧——三条都对上才算强证据。即便改写攻击破坏掉其中一条通道,另外两条仍能提供信号,这正是多通道相比单通道(只有 1 bit、被破坏即失效)鲁棒得多的原因。
损失函数 / 训练策略¶
PMark 是纯采样算法,不需要任何训练。生成时每句需要 N 次采样(N=16–64),检测时 Online 版需重采样估计中位数,离线版省去这一步。
实验关键数据¶
主实验:改写攻击下的TP@FP1%¶
| 方法 | 无攻击 | Doc-P(GPT改写) | 提升 |
|---|---|---|---|
| SemStamp(C4/Mistral) | ~99% | 73.5% | — |
| k-SemStamp | 100% | ~80% | — |
| PMark Online | 100% | 97.8% | +24.3% |
| PMark Offline | 99.7% | 92.6% | +19.1% |
消融:通道数b和采样数N¶
| N\b | b=1 | b=2 | b=3 | b=4 |
|---|---|---|---|---|
| N=8(Online) | 81.0 | 97.0 | 98.0 | — |
| N=16 | 84.0 | 100.0 | 100.0 | 100.0 |
| N=64 | 99.0 | 100.0 | 100.0 | 100.0 |
关键发现¶
- 多通道是核心:从b=1到b=2,检测率从81%跳升到97%
- 文本质量不降反升:PMark的PPL(4.37)低于k-SemStamp(~5.0),因为无失真采样不引入分布偏移
- 对GPT级改写鲁棒:即使用GPT做重度改写(Doc-P),TP@FP1%仍达95%+
亮点与洞察¶
- 理论与实践的优雅统一:严格证明无失真条件+SNR随 \(\sqrt{bT}\) 增长的鲁棒性界,这在水印领域罕见。理论驱动方法设计
- 多通道证据密度的核心直觉:类似纠错编码的冗余思想——每句话嵌入多个独立bit,即使部分被攻击破坏,整体信号仍可恢复
- 离线版本的简化极其聪明:利用高维空间的"准正交性"将中位数近似为零,消除了检测时重采样的开销
局限与展望¶
- 采样开销:每句需N次采样(N=16-64),对实时应用有延迟影响
- 依赖语义编码器:使用固定编码器(如Roberta),编码器质量影响水印效果
- 仅在句子级嵌入:无法对短文本(< 10句)可靠检测
- 改进思路:可结合token级水印做混合方案——短文本用token级,长文本用PMark
相关工作与启发¶
- vs SemStamp/k-SemStamp:这些用拒绝采样引入失真,PMark用中位数采样实现严格无失真;鲁棒性提升14.8%
- vs Green-Red token级水印:token级对改写脆弱(每个token替换都是信息丢失),PMark在语义级嵌入,对同义改写鲁棒
- vs UPV(token级最佳):PMark在改写鲁棒性上提升44.6%
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 理论框架+多通道无失真设计都是重要贡献
- 实验充分度: ⭐⭐⭐⭐ 多模型多数据集多攻击类型,但缺少更多LLM规模实验
- 写作质量: ⭐⭐⭐⭐⭐ 理论推导严谨,方法描述清晰
- 价值: ⭐⭐⭐⭐⭐ 解决了语义水印的两个核心难题(失真+鲁棒),理论和实用价值双高