Topic-Based Watermarks for Large Language Models¶
会议: ACL 2026 Findings
arXiv: 2404.02138
代码: GitHub
领域: AI安全 / 文本水印
关键词: 文本水印, 主题对齐, 语义分区, 释义鲁棒性, 轻量检测
一句话总结¶
本文提出基于主题的轻量水印方案 TBW,将词表按语义主题聚类为"绿色列表"(而非随机分区),根据输入提示选择语义对齐的主题列表进行 logit 偏置,在保持与无水印文本相当的困惑度的同时,显著提升了对释义和词汇扰动攻击的鲁棒性。
研究背景与动机¶
领域现状:LLM 生成的文本几乎与人类写作无法区分,带来了错误信息传播、版权侵权和模型坍缩(AI 训练 AI)等风险。水印技术通过在生成过程中嵌入可检测签名来标识 AI 生成文本。主流方法 KGW 将词表随机划分为"绿色"/"红色"列表,偏置采样倾向绿色 token。
现有痛点:(1) 随机分区的脆弱性:KGW 的随机划分使绿色列表中的 token 与当前语义上下文无关,攻击者通过释义即可大幅降低绿色 token 比例;(2) 质量-鲁棒性权衡:计算密集的方法(EXP-Edit、ITS-Edit)通过多次解码提升鲁棒性但严重增加延迟;SynthID 等轻量方法虽然高效但抗释义能力弱;(3) 语义水印方案的部署障碍:SIR 等引入语义信息的方法需要解码器修改或提示访问,阻碍了在大规模商业 LLM 中的部署。
核心矛盾:现有方法在鲁棒性、文本质量和计算效率三者之间难以兼顾——轻量方法抗攻击弱,鲁棒方法计算贵且降低文本质量。
本文目标:设计一种轻量的语义感知水印方案,在不增加显著计算开销的前提下,同时提升鲁棒性和文本质量。
切入角度:将语义信息引入词表分区——不再随机划分绿/红列表,而是按预定义主题对 token 进行语义聚类。释义后同义替换的 token 大概率仍属于同一主题列表,因此水印信号更难被破坏。
核心 idea:主题对齐的词表分区天然具有"语义内聚性"——同一主题下的 token 互为同义/近义词,释义攻击中的词汇替换大概率落在同一绿色列表内,从而保留水印信号。
方法详解¶
整体框架¶
TBW 包含三个阶段:(1) 离线词表分区——将所有 token 按语义相似度分配到 \(K\) 个主题列表;(2) 在线水印嵌入——从输入提示中提取主题,选择对应的绿色列表,在生成时对绿色 token 施加 logit 偏置 \(\delta\);(3) 水印检测——使用 \(z\)-score 统计检验判断文本是否被水印标记,支持三种检测方案。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
subgraph S1["主题对齐的词表分区(离线)"]
direction TB
A["词表 + K 个预定义主题"] --> B["句嵌入算 token↔主题余弦相似度<br/>sim>τ 划入对应绿色列表"]
B --> C["未过阈值的残余 token<br/>round-robin 均摊到各列表"]
end
S1 --> G["K 个语义内聚的绿色列表"]
subgraph S2["基于主题的水印嵌入(在线)"]
direction TB
D["输入提示"] --> E["KeyBERT 抽主题<br/>命中选对应列表,否则 k-means 兜底"]
E --> F["对选定列表内 token logit +δ 后 softmax 采样"]
end
G --> E
F --> H["带水印文本"]
subgraph S3["三级水印检测(z-score 统计检验)"]
direction TB
I["待检文本"]
I -->|严格匹配 / 滑动窗口| J["从文本提取主题选列表"]
I -->|最大 z-score| K["遍历所有列表取 max z<br/>检测率≈100%"]
end
H --> I
关键设计¶
1. 主题对齐的词表分区:让"绿色列表"承载语义,而非随机噪声
KGW 把词表随机切成绿/红两半,导致同一绿色列表里的 token 毫无语义关系,攻击者只要释义换词就能轻易把绿色比例打回随机水平。TBW 反其道而行:先预定义 \(K\) 个高层主题(如 {animals, technology, sports, medicine}),再用句子嵌入模型 all-MiniLM-L6-v2 为每个 token \(v\) 和主题 \(t_i\) 算余弦相似度 \(\text{sim}(v, t_i) = e_v \cdot e_{t_i} / (\|e_v\| \|e_{t_i}\|)\);只要最大相似度超过阈值 \(\tau\),就把该 token 划进对应主题列表 \(G_{t_i}\),没过阈值的残余 token 则用 round-robin 均匀摊到各列表保证词表全覆盖(\(K=4\) 时有效绿色列表占比约 0.25)。
这样切出来的列表有了"语义内聚性":同一主题下的 token 互为同义/近义词。攻击者释义时把某个绿色 token 换成同义词,新词大概率还落在同一个 \(G_{t_i}\) 里,水印信号自然保留下来——这正是随机分区做不到的。
2. 基于主题的水印嵌入:先认出提示的主题,再只偏置对应列表
光有语义分区还不够,生成时得知道"这段文本属于哪个主题"才能选对绿色列表。TBW 给定输入提示 \(x^{\text{prompt}}\) 后用 KeyBERT 抽关键主题:若抽出的主题直接命中预定义主题集,就选对应列表 \(G_{t^*}\);否则对提取主题的嵌入做 \(k\)-means 聚类,挑与质心最近的预定义主题兜底。锁定 \(G_{t^*}\) 后,生成每一步只对 \(v \in G_{t^*}\) 的 logit 加偏置 \(\delta\),再照常 softmax 采样,全程只需一次主题提取加逐步 logit 偏置,不引入任何额外解码或重排序。
因为绿色列表本就和提示主题对齐,模型原本就倾向选这些主题相关的 token,再加偏置时分布扰动很小,所以困惑度能压到接近无水印基线——这是随机分区方案在质量上吃亏的地方。
3. 三级水印检测方案:从依赖主题提取,逐步退化到完全不依赖
检测端的隐患是主题提取可能出错——选错绿色列表,\(z\)-score 就废了。三套方案共享同一统计检验 \(z = (g - \gamma \cdot n) / \sqrt{n \cdot \gamma \cdot (1-\gamma)}\)(\(g\) 为绿色 token 数,\(n\) 为总 token 数),区别在如何确定该用哪个绿色列表:严格主题匹配直接从待检文本提取主题选列表;滑动窗口检测把文本分窗、每窗独立提取主题后多数投票定全局主题;最大 \(z\)-score 检测干脆对每个预定义主题列表都各算一遍 \(z\)-score,取最大值 \(t^* = \arg\max_{t_i} z_i\),彻底绕开主题提取。
最后这个"试遍所有列表取最优"的方案最关键:它让水印信号自己"挑出"正确列表,从根上消除了主题提取失败的风险,实测检测率从严格匹配的 57.4% 直接飙到 99.6%–100%,是最实用的部署方案。
损失函数 / 训练策略¶
TBW 无需训练,仅在推理时进行 logit 偏置。主要超参数:\(K=4\)(主题数),\(\delta=2.0\)(偏置强度,与 KGW 对比时统一),\(\tau=0.7\)(相似度阈值)。
实验关键数据¶
主实验 — 释义攻击鲁棒性(ROC-AUC)¶
| 模型 | 攻击 | TBW | KGW | DiP | Unigram | SynthID | SIR |
|---|---|---|---|---|---|---|---|
| OPT-6.7B | 无攻击 | 1.000 | 1.000 | 0.999 | 1.000 | 0.999 | 0.995 |
| OPT-6.7B | PEGASUS | 0.990 | 0.975 | 0.824 | 0.987 | 0.910 | 0.971 |
| OPT-6.7B | DIPPER | 0.945 | 0.826 | 0.576 | 0.955 | 0.650 | 0.891 |
| Gemma-7B | PEGASUS | 0.981 | 0.983 | 0.836 | 0.985 | 0.912 | 0.952 |
| Gemma-7B | DIPPER | 0.871 | 0.825 | 0.546 | 0.911 | 0.656 | 0.822 |
检测方案对比(OPT-6.7B)¶
| 检测方案 | 检测率 | 平均 z-score | 主题准确率 |
|---|---|---|---|
| 严格 K-means | 54.0% | 6.32±10.80 | 54.2% |
| 严格 Embedding | 57.4% | 7.05±10.68 | 62.4% |
| 滑动窗口 Embedding | 56.6% | 6.91±10.67 | 60.2% |
| 最大 z-score | 99.6% | 15.88±3.03 | 100% |
关键发现¶
- 文本质量:TBW 困惑度接近无水印基线,比 Unigram 改善约 42%(OPT-6.7B)和 48%(Gemma-7B)
- 释义鲁棒性:在 PEGASUS 攻击下 TPR@1%FPR 达 91.0%(OPT-6.7B),远超 KGW 的 57.8%
- 词汇扰动:TBW 在随机和定向扰动下均保持较高的检测分数,Unigram 虽抗释义但对简单扰动反而脆弱
- 最大 z-score 检测方案几乎完美(99.6%/100%),且无需主题提取步骤
- 计算效率:TBW 生成时间与无水印基线几乎相同,而 EXP-Edit 和 SIR 显著增加延迟
- 主题数可扩展:\(K\) 从 4 增加到 32,z-score 从约 11 优雅降至约 7,仍具竞争力
亮点与洞察¶
- 最大 z-score 检测方案的设计极为巧妙:完全绕过了主题提取这一不可靠步骤,让水印信号本身"自动选择"正确的主题列表。这种"试遍所有可能性取最优"的策略简单却有效,检测率从 57.4% 飙升至 99.6%
- 语义内聚性是 TBW 鲁棒性的关键:同义替换后 token 大概率仍在同一主题列表内,这是随机分区方案无法做到的。这一洞察可迁移到其他需要抗编辑鲁棒性的水印场景
- TBW 的实际部署门槛极低:无需修改模型架构、无需多次解码、无需访问解码器参数,仅在 logit 层面加偏置即可
局限与展望¶
- 仅使用四个非常宽泛的主题(animals, technology, sports, medicine),对特定领域文本的主题匹配精度有限
- round-robin 分配残余 token 时引入了随机种子作为私密参数,这增加了安全性但也增加了密钥管理负担
- 在更强的语义攻击(如人工精心改写)下的鲁棒性未测试
- 检测需要知道偏置强度 \(\delta\) 和主题配置等参数,限制了跨提供商的互操作性
- 长文本中的主题漂移问题虽然通过最大 z-score 方案缓解,但更细粒度的段落级检测值得探索
相关工作与启发¶
- vs KGW: KGW 随机分区,语义无关的 token 被强制归入同一列表;TBW 按语义聚类,绿色列表内 token 天然相关,释义后替换词大概率仍在绿色列表内,鲁棒性更强。KGW 的 TPR@1%FPR 在 PEGASUS 攻击下仅 57.8%,TBW 达 91.0%
- vs SynthID-Text: SynthID 使用锦标赛采样确保轻量高效,但抗释义极弱(ROC-AUC 在 DIPPER 下仅 0.650);TBW 同样轻量但抗释义 ROC-AUC 达 0.945
- vs Unigram: Unigram 基于一元统计分配 token,抗释义能力与 TBW 相当,但对简单的词汇扰动反而比 TBW 更脆弱——TBW 在两类攻击下均表现出色
- vs SIR: SIR 引入用户上下文增强鲁棒性但需要修改解码器和访问提示,部署复杂;TBW 无需任何模型修改
评分¶
- 新颖性: ⭐⭐⭐⭐ 将语义主题引入水印分区是自然但有效的改进,最大 z-score 检测方案尤为巧妙
- 实验充分度: ⭐⭐⭐⭐⭐ 覆盖文本质量、释义/扰动鲁棒性、检测方案对比、效率、可扩展性,非常全面
- 写作质量: ⭐⭐⭐⭐ 结构清晰,威胁模型和检测方案层次分明,但部分内容重复
- 价值: ⭐⭐⭐⭐ 实际部署门槛低,为 AI 文本溯源提供了实用方案