跳转至

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 文本溯源提供了实用方案