SWAN: Semantic Watermarking with Abstract Meaning Representation¶
会议: ACL2026
arXiv: 2605.04305
代码: 无
领域: LLM安全 / 文本水印 / 语义表示
关键词: 语义水印, AMR, paraphrase robustness, S2match, 文本溯源
一句话总结¶
SWAN 用 Abstract Meaning Representation 模板把水印嵌入句子的语义图结构,而不是 token 或 embedding 区域,因此在保持原意的 paraphrase 后仍能通过 AMR 解析、模板匹配和比例 z 检验检测出水印。
研究背景与动机¶
领域现状:LLM 生成文本越来越自然,文本水印成为识别 AI 生成内容、追踪内容来源和缓解大规模误导信息的重要技术路线。
现有痛点:主流 token-level watermark 通过改变生成时的 token 采样偏好,把更多 token 推向 secret green list。这类方法实现简单、检测方便,但遇到 paraphrase、同义替换或轻微重写时很容易丢失信号。
核心矛盾:水印既要隐蔽、可检测,又要能经受保持语义的改写。token 级信号太表层,embedding 级语义水印虽然更稳,但如果 paraphrase 把句向量推到另一个语义区域,检测仍会下降。
本文目标:作者希望把水印锚定到比 token 和 sentence embedding 更稳定的层级:句子的抽象语义结构。只要改写没有改变“谁对谁做了什么”这类核心语义关系,水印就应该保留。
切入角度:Abstract Meaning Representation 用图表示句子语义,节点代表概念或事件,边代表语义角色。多种表层不同的 paraphrase 可以映射到同一个或高度相似的 AMR 图,这天然适合做 paraphrase-robust watermark。
核心 idea:构建一个私有 AMR template bank,生成时让每个句子匹配随机抽取的 AMR 模板,检测时解析文本 AMR 并统计与私有模板匹配的句子比例。
方法详解¶
SWAN 的核心是把“水印 key”从词表哈希或 embedding 分区,换成一个私有的 AMR 模板库。
它是 training-free 的:不训练水印模型,不需要访问目标 LLM logits,而是通过 prompt guidance 和 rejection sampling 让句子落入目标语义结构。
整体框架¶
系统先从 MASSIVE-AMR 构造 template AMR bank。
MASSIVE-AMR 提供约 84K 个 AMR graphs,对应 1,685 个信息查询类 utterances。
作者把原始 AMR 进一步抽象成模板,例如把具体 named entities 替换为 NE,把普通名词替换为 N,把不指定概念替换为 X。
模板库只保留频率在 3 到 20 之间、且至少包含 3 个 concept nodes 的 AMR pattern。
生成阶段中,每生成一句话,就从私有模板库随机抽取一个 template AMR,并把当前上下文和模板一起放入 LLM prompt。
LLM 需要生成一个上下文连贯、满足用户原始意图、并尽量符合模板语义结构的句子。
生成后,系统用 AMR parser 把候选句解析成 AMR graph,再用 S2match 与目标模板计算相似度。
如果相似度超过注入阈值,就接受该句;否则重采样。
若某个模板在当前上下文中多次失败,系统会换一个模板,避免在不兼容的语义结构上无限重试。
检测阶段中,系统把候选段落切句,解析每句 AMR,计算它与私有 bank 中所有模板的最大 S2match。
若得分超过检测阈值,该句被计为 watermarked;最后对段落中 watermarked sentences 的比例做 one-proportion z-test。
关键设计¶
-
私有 AMR 模板库:
- 功能:作为水印密钥,定义哪些抽象语义结构属于“绿色区域”。
- 核心思路:从 MASSIVE-AMR 中抽取图结构,去掉具体实体和词汇细节,保留谓词、语义角色和概念关系。模板频率过低会太稀有、难生成;频率过高会太常见、增加误报,所以作者保留中等频率模板。
- 设计动机:token-level 方法的 key 是词表划分,embedding-level 方法的 key 是向量区域,而 SWAN 的 key 是语义图结构。只要 bank 保密,检测者可以验证结构匹配,攻击者难以知道应该避开哪些 AMR pattern。
-
AMR 引导的拒绝采样注入:
- 功能:在不改模型参数、不接触 logits 的情况下,把生成句子推向目标语义结构。
- 核心思路:LLM prompt 同时给出历史上下文和目标 AMR template,要求生成自然句子并实例化 NE/N/X 等占位概念。每个候选句被 AMR parser 解析后,与目标模板计算 S2match;只有当 \(S2match(\hat{g}, g) \geq \theta_{accept}\) 时才接受。
- 设计动机:直接强行插入关键词会破坏流畅性,也容易被删除。让模型围绕 AMR 模板生成,可以把水印藏在谓词-论元结构里,表层文字仍然自然。
-
段落级 z-test 检测:
- 功能:把句级模板匹配累积成段落级 provenance 判断。
- 核心思路:对段落中每个句子,计算它与 bank 的最大模板相似度;超过 \(\theta_{detect}\) 就计入 \(k\)。给定段落总句数 \(n\) 和 null hypothesis 下随机命中率 \(\lambda\),用 \(z=(k-\lambda n)/\sqrt{n\lambda(1-\lambda)}\) 判断命中比例是否异常高。
- 设计动机:单句 AMR 解析可能有噪声,单句误报也不可避免;段落级统计能把弱信号聚合起来,类似 token watermark 中的 z-score detector。
损失函数 / 训练策略¶
SWAN 没有训练损失,关键超参来自生成和检测流程。
AMR bank 默认大小为 50,作者也测试了 100、500、800 的设置。
水印生成使用 DeepSeek-R1-Distill-Qwen-14B,temperature 0.6,top_p 0.9。
每句最多尝试 50 次:最多 10 个模板,每个模板最多 5 次生成尝试。
检测使用 amrlib 的 parse_xfm_bart_large pipeline,它是基于 BART-large、在 AMR-3 上训练的解析器。
paraphrase attack 使用 Pegasus、Parrot 和 Claude 3.7 Sonnet。
文本质量用 Claude 3.7 从 coherence、fluency、diversity 三个维度进行 reference-free 评分。
实验关键数据¶
主实验¶
无 paraphrase 场景下,SWAN 的 raw detectability 与强 sentence-level baselines 接近,并优于 token-level SynthID 的低 FPR 指标。
| 方法 | AUC↑ | TPR@1%↑ | TPR@5%↑ |
|---|---|---|---|
| SynthID | 97.0 | 64.8 | 84.8 |
| SemStamp | 99.4 | 96.8 | 100.0 |
| k-SemStamp | 99.1 | 96.8 | 96.4 |
| SWAN | 99.1 | 91.6 | 97.6 |
在最关键的 paraphrase robustness 上,SWAN 在三类攻击下 AUC 都最高,尤其对 Claude 3.7 这种强 LLM 改写优势明显。
| 方法 | Pegasus AUC/TPR@1%/TPR@5% | Parrot AUC/TPR@1%/TPR@5% | Claude AUC/TPR@1%/TPR@5% |
|---|---|---|---|
| SemStamp | 97.6 / 87.2 / 97.6 | 94.8 / 69.2 / 97.6 | 84.4 / 36.8 / 84.8 |
| k-SemStamp | 97.3 / 88.8 / 88.4 | 92.8 / 68.0 / 66.8 | 87.6 / 53.6 / 53.2 |
| SWAN | 98.1 / 81.2 / 92.8 | 97.5 / 82.0 / 92.4 | 98.3 / 86.0 / 95.2 |
这个表直接体现 AMR 语义锚定的价值:Claude 改写会显著削弱 SemStamp 和 k-SemStamp,但 SWAN 的 AUC 反而保持在 98.3。
消融实验¶
AMR bank size 对 AUC 的影响较小,说明方法对模板库规模不敏感。
| AMR bank size | AUC↑ |
|---|---|
| 50 | 99.1 |
| 100 | 98.7 |
| 500 | 98.4 |
| 800 | 99.3 |
采样效率方面,SWAN 比 SemStamp 更慢一些,但大多数句子很快收敛。
| 指标 | SWAN | 对比 / 说明 |
|---|---|---|
| 平均接受尝试次数 | 17.7 | SemStamp 为 13.8 |
| 10 次内接受比例 | 42% | 说明相当多模板容易满足 |
| 15 次内接受比例 | 54% | 超半数句子在较低预算内成功 |
| 最大预算附近 spike | 46-50 trials | 表示部分模板与上下文语义不兼容 |
| 生成规模 | 1,250 句 | 250 samples × 每段 5 句 |
关键发现¶
- SWAN 在原文未改写场景不牺牲 detectability,AUC 与 SemStamp/k-SemStamp 基本同档。
- paraphrase 后差距显著扩大,尤其 Claude 改写下 SWAN AUC 98.3,而 SemStamp 只有 84.4,k-SemStamp 为 87.6。
- AMR bank 从 50 扩到 800 后 AUC 仍保持 98+,说明模板覆盖和误报之间的平衡比较稳。
- 拒绝采样开销存在,但 42% 句子 10 次内成功,整体 overhead 可以接受;真正难点在 context-aware template selection。
- 文本质量评估显示所有水印方法都会造成轻微质量下降,但 SWAN 与 sentence-level baselines 相近,没有为鲁棒性付出额外明显质量代价。
亮点与洞察¶
- SWAN 最有价值的洞察是“paraphrase 保留 meaning,因此水印应写进 meaning representation”。这比在 token 或 embedding 上追着 paraphrase 跑更自然。
- AMR 模板库把水印变成可解释的结构信号。检测失败时可以分析是哪类谓词-论元结构没解析出来,而不是只得到一个 opaque embedding hash。
- training-free 和 black-box generation 使方法更容易接入闭源或 API 模型,因为它不需要 logits access,也不需要改模型权重。
- 段落级 z-test 继承了传统 watermark detector 的统计思想,同时把 token 命中换成语义模板命中,是一个很干净的抽象迁移。
局限与展望¶
- 检测高度依赖 AMR parser 质量,解析错误会导致漏检或误报。在低资源语言、专业术语密集文本或非新闻体裁中,AMR 解析可能不稳定。
- AMR bank 是私有 key,如果攻击者猜到或泄露模板库,就可以刻意改写语义结构避开检测。
- 当前方法主要评估英文 RealNews,领域和语言覆盖有限。
- 拒绝采样仍有成本,部分模板与上下文不兼容时会反复失败;需要更智能的 template-context matching。
- SWAN 关注句级 AMR,面对合并句子、拆分句子、跨句改写等攻击时,水印结构可能被重组。未来可探索 paragraph-level AMR 或 AMR subgraph watermark。
相关工作与启发¶
- vs SynthID / token-level watermark: SynthID 依靠 token 分布扰动,低 FPR 检测有效但对 paraphrase 脆弱。SWAN 不改 token 偏好,而是约束语义结构,因此更抗表层重写。
- vs SemStamp: SemStamp 把句向量空间划为 green buckets,具备一定 paraphrase robustness,但强改写会移动 embedding。SWAN 用 AMR 图匹配,能在语义等价改写下保持结构信号。
- vs k-SemStamp: k-SemStamp 用聚类改进语义区域划分,但仍是连续 embedding 区域。SWAN 的离散图结构更可解释,也更贴近“含义不变”的定义。
- vs PostMark / post-hoc watermark: PostMark 通过段落语义和 watermark words 注入信号,实用但可能留下词汇痕迹。SWAN 不依赖固定词表,信号藏在语义角色组合中。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 用 AMR 图结构做文本水印非常新颖,和 token/embedding 水印路线差异明显。
- 实验充分度: ⭐⭐⭐⭐☆ 检测、paraphrase、bank size、采样效率和质量评估都覆盖了,语言与领域范围仍偏窄。
- 写作质量: ⭐⭐⭐⭐☆ 方法解释清楚,实验表直接,但 AMR 解析误差与阈值选择还可展开更多。
- 价值: ⭐⭐⭐⭐⭐ 对鲁棒文本水印和 AI 生成内容溯源都有实际启发,尤其适合研究语义级 provenance。