文本水印知识总结

文本水印知识总结

论文引用:

  1. Liu A, Pan L, Lu Y, et al. A survey of text watermarking in the era of large language models[J]. ACM Computing Surveys, 2024, 57(2): 1-36.
  2. Liang Y, Xiao J, Gan W, et al. Watermarking techniques for large language models: A survey[J]. arXiv preprint arXiv:2409.00089, 2024.

论文1总结了四个主要方面:

(1)不同文本水印技术的概述和比较;

(2)文本水印算法的评价方法,包括可检测性、对文本的影响或LLM质量的影响、目标攻击的鲁棒性或非目标攻击;

(3)文本水印技术的潜在应用场景;

(4)文本水印的当前挑战和未来方向。

大语言模型(large language models,LLMs)的迅速发展,产生了一下问题:
(1)LLM 的误用:恶意用户可以利用 LLM 来创建错误信息 [13] 或有害内容 [76] 并在互联网上传播。(2)知识产权问题:强大的 LLM 容易受到模型提取攻击,攻击者提取大量数据来训练新的 LLM [7]。

文本水印算法的定义:

文本水印算法通常包含两个组件:水印生成器 A A A 和水印检测器 D D D

  • 水印生成器 A A A 以文本 x x x 和水印信息 𝑤 𝑤 w 为输入,生成加水印的文本 t t t,表示为 A ( x , 𝑤 ) = t A(x, 𝑤) = t A(x,w)=t
  • 加水印的文本 t t t 可以是语义等价的修改文本(见第3节),也可以是针对文本 x x x 的新生成文本(见第4节),例如 LLM 的输出。

水印信息 𝑤 𝑤 w 可以是:

  • 零比特水印(仅表示有无水印)
  • 多比特水印(嵌入具体信息),称为“水印负载”。

水印检测器 D D D 以任意文本 t t t 为输入,输出检测出的水印信息,即 D ( t ) = 𝑤 D(t) = 𝑤 D(t)=w。若输出为 None,表示该文本不含水印。

文本水印算法的关键特性

  • 对文本质量的低影响:加水印后文本质量不能显著下降。设 A ( x , ∅ ) A(x, ∅) A(x,) 表示无水印生成的文本,若加入水印后文本质量评估函数 R R R 的差值小于阈值 δ δ δ,则认为质量未明显下降:
    ∀ 𝑤 𝑖 , R ( A ( x , ∅ ) , A ( x , 𝑤 𝑖 ) ) < δ ∀𝑤𝑖,R(A(x,∅),A(x,𝑤𝑖))<δ wi,R(A(x,),A(x,wi))<δ

  • 对水印移除攻击的鲁棒性:即使文本被修改(如使用攻击操作 U U U),仍能检测出原水印。若检测器 D D D 在修改后的文本中仍能正确恢复水印的概率大于阈值 β β β,则该算法具有鲁棒性:
    ∀ 𝑤 𝑖 , ∀ t = A ( x , 𝑤 𝑖 ) , P ( D ( U ( t ) ) = 𝑤 𝑖 ) > β ∀𝑤𝑖,∀t=A(x,𝑤𝑖),P(D(U(t))=𝑤𝑖)>β wi,t=A(x,wi),P(D(U(t))=wi)>β

文本水印算法分类:

文本水印方法可分为两类:

  1. 已有文本水印:通过语义等价的后处理技术嵌入水印。
  2. 大模型水印:在LLM训练或推理阶段嵌入水印,使生成文本自带水印。

已有文本水印:按修改粒度分为四类

  • 基于格式的水印(Format-based watermarking,§3.1):通过改变文本的格式而非内容来嵌入水印

    1. Brassil 等人 [9] 提出了行移位编码词移位编码,通过垂直或水平地调整文本行和单词的位置来嵌入水印。水印检测过程则通过测量文本行轮廓或单词列轮廓之间的距离来识别这些偏移。然而,这种方法仅适用于图像格式的文本,并不能将水印嵌入实际的文本字符串中。
    2. Por 等人 [79] 提出了 UniSpach 方法,利用不同类型的 Unicode 空格字符插入到文本间隙中。
    3. Rizzo 等人 [85] 提出了一种 Unicode 同形异码替换法,即使用视觉上相似但编码不同的字符来替换文本内容(例如,‘C’ 的 U+0043 和 U+216D,‘L’ 的 U+004C 和 U+216C)。
    4. EasyMark [89],包括以下几种类型:
    • WhiteMark:将普通空格(U+0020)替换为其他 Unicode 空格码点(如 U+2004)。
    • VariantMark:利用 Unicode 变体选择器对 CJK 文本进行水印嵌入。
    • PrintMark:使用 ligatures 或略有不同的空格长度将水印消息嵌入到打印文本中。

    基于格式的水印检测通常是通过查找这些特定插入的 Unicode 编码点来完成的。尽管基于格式的水印方法可以在不改变文本内容的情况下嵌入大量水印信息,但其格式上的改变可能会被察觉。

    Por 等人 [79] 指出,DASH 攻击可以揭示这些格式差异,从而暴露水印的存在。

    因此,这些方法容易受到标准化处理(canonicalization)的攻击,例如重置行距或替换特定编码字符,从而导致水印被移除。
    此外,这些明显的格式特征也可能被伪造利用
    ,进一步降低水印检测的可靠性。

DASH 攻击:DASH 是 “Detection of Anomalous Spaces and Homoglyphs” 的缩写

它主要利用如下两种异常检测方式:

  1. 空格类异常(Spaces):识别非标准空格(如 Unicode 特殊空格 U+2004、U+2009 等);
  2. 同形异码字符(Homoglyphs):识别肉眼看起来相同、但编码不同的字符(如 ‘C’ 可由 U+0043 或 U+216D 表示)。

DASH 攻击的操作步骤通常包括

  1. 扫描文本格式,检测是否存在非标准空格或特殊字符;
  2. 标记异常区域,分析是否属于某种水印编码规则;
  3. 还原格式:将非标准空格替换为普通空格、统一同形异码字符;
  4. 移除水印信息 或 伪造新的水印信息。
  • 基于词汇的水印(Lexical-based watermarking,§3.2):

    上下文无关的同义词替换:

    1. Topkara 等人 [99] 提出了基于同义词替换的方法,使用 WordNet [21] 作为同义词库。水印检测通过逆向规则提取嵌入的信息。
    2. Munyer 和 Zhong [68] 使用预训练的 Word2Vec 模型进行语义建模,将选定词语转换为向量,再寻找最近邻的替代词。他们还使用了基于 BERT 的二分类器和 transformer 模块进行水印检测。

    上下文感知的词汇替换技术:

    1. Yang 等人 [114] 简化了检测流程,将每个词编码为一个随机二进制值,用上下文感知的同义词替代表示 bit-1 的词。由于未嵌入水印的文本通常服从 伯努利分布,而嵌入水印后分布发生变化,因此可通过统计检验来检测水印。
    2. Yang 等人 [115] 提出了基于 BERT 的文本填充模型(infill model),可以根据上下文生成更合适的替代词。对应的水印检测方法通过识别被替换词语并进行逆向替换提取水印。
    3. Yoo 等人 [117] 为增强对删除攻击的鲁棒性,对 BERT-based 填充模型进行了微调,采用保留关键词和保持语法结构的扰动方式进行训练,其鲁棒性优于以往方法。

    词汇级水印方法难以抵抗简单的水印移除手段,如随机同义词替换

  • 基于句法的水印(Syntactic-based watermarking,§3.3):通过修改文本语法结构嵌入水印。

    1. Atallah 等人 [4] 提出了三种典型的语法结构变换方法:附加语移动(Adjunct Movement)到 bit-0分裂句(Clefting)到 bit-1、被动语态(Passivization)到 bit-2;该方法的水印检测,通过原始文本和更改的文本都被转换为语法树,并将它们的结构进行比较以进行消息提取。
    1. Topkara 等人。 [98] 引入了额外的语法转换:主动化(Activization)、主題前置(Topicalization) 。

    特点:

    句法级水印在隐藏性和鲁棒性方面具有优势,但它高度依赖特定语言的语法规则,需要语言定制化,而且频繁的句法调整可能会影响文本的原有风格与流畅性。

  • 基于生成的水印(Generation-based watermarking,§3.4):使用神经网络,将原始文本与水印信息作为输入,输出带水印文本。

    1. Abdelnabi 和 Fritz [2] 提出了 AWT(端到端水印方案),利用Transformer编码器编码句子和水印消息,并将两者嵌入合并后输入到Transformer解码器生成水印文本。检测过程通过编码器层解析出隐藏消息。
    2. Zhang 等人 [119] 进一步提出 REMARK-LLM,解决AWT中稠密水印分布与稀疏一热编码不匹配的问题。该方法使用预训练LLM进行水印嵌入,并采用 Gumbel-Softmax 重参数化产生稀疏分布,同时使用Transformer解码器提取水印信息。相比AWT,REMARK-LLM具备更高的信息嵌入容量,可嵌入双倍水印信息而不影响检测效果。
    3. Lau 等人 [48] 提出 WATERFALL 方法,利用水印版LLM对原文进行语义保留改写,并嵌入水印。它结合了词汇置换与正交扰动技术,实现高可检测性与强鲁棒性。LLM的强大改写能力使得生成文本更自然、流畅。

大模型水印:在生成阶段添加水印,往往可以生成更自然的文本

三步流程:

  • LLM训练阶段:训练模型 M M M,使其学会根据上下文预测下一个词。
  • Logits预测阶段:模型根据 prompt 和前面的词,输出下一个词的概率分布(logits):
    l ( i ) = M ( x , t 0 : ( i − 1 ) ) l(i)=M(x,t0:(i−1)) l(i)=M(x,t0:(i1))
  • 采样输出token阶段:根据 logits 选出一个具体的 token:
    t ( i ) = S ( s o f t m a x ( l ( i ) ) ) t(i)=S(softmax(l(i))) t(i)=S(softmax(l(i)))

在LLM训练阶段添加水印4.3

对于开源 LLMs,水印必须在模型训练阶段嵌入到模型参数中

训练时水印方法可分为两类:基于触发器(trigger-based)的水印,其仅对特定输入有效;以及全局水印(global watermark),旨在对所有输入都生效。

基于触发器(trigger-based)的水印:
基于触发器的水印是一种后门式水印方法,通过在 LLM 中植入特定的触发器(trigger),使模型在接收到这些触发器输入时,产生特定的行为(如特定格式或输出)。这类水印可以由数据集提供者添加,以保护数据集版权,也可由模型提供者添加,以保护 LLM 的版权。

Sun 等人 [92] 提出了用于代码生成任务的 CoProtector,使用词级或句子级的代码修改作为触发器,促使模型生成功能错误的代码以植入水印。

随后,Sun 等人 [91] 又提出了 CodeMark,该方法使用语义不变的代码转换作为触发器,保证代码功能正确的同时嵌入水印,对模型性能影响最小。

Xu 等人 [112] 提出了 Hufu 水印。该方法不依赖具体的输入触发器,而是利用一种特定的输入格式作为触发器。它利用 Transformer 的排列等变性(permutation equivariance)特性,使模型通过训练识别特定排列作为水印标识。

  • CoProtector:通过词句级修改引发错误代码生成。
  • CodeMark:采用语义不变的代码改写,嵌入水印且不影响代码功能。
  • Hufu 水印:利用特定输入格式和 Transformer 的排列等变性特性识别水印。

全局水印:可在所有模型输出中嵌入可检测信息,用于内容追踪。

尽管基于触发器的文本水印在许多场景中有效,但其仅在触发器出现时才起作用,无法适用于所有输入。相比之下,全局水印能在 LLM 生成的所有内容中嵌入可检测标记,从而实现内容追踪。

Gu 等人 [26] 探讨了水印的可学习性,研究 LLM 是否可以直接学习生成带水印的文本。他们提出了两种学习方式:基于采样的水印蒸馏基于 logits 的水印蒸馏,使推理阶段的水印嵌入转化为模型参数的一部分。

  • 水印蒸馏方法(采样/Logit 基础):使模型学习生成水印文本。
  • 强化学习水印方法:通过水印检测器反馈优化模型嵌入水印,提升水印检测率和鲁棒性。

在logits生成阶段添加水印4.1:

什么是logits生成?

Logits 是模型输出的 未归一化的概率分数向量。它表示模型对每一个词元(token)在当前上下文下“有多大可能”会成为下一个词元的“打分”。因为 logits 是 原始的实数分值(可以是正也可以是负),它还没有经过 softmax 函数进行归一化,所以不能直接当成概率使用。

    水印算法𝐴 会修改来自大语言模型(LLM)输出的 logits,以将水印信息𝑤融入生成过程。这种技术不需要修改LLM参数,比训练时间水印方法更通用、更具成本效益。

被修改后的 logits(即每个词元的概率得分)表示为:

l   ( i ) = A ( M ( x , t 0 : ( i − 1 ) ) , w ) = M w ( x , t 0 : ( i − 1 ) ) l~(i)=A(M(x,t0:(i−1)),w)=Mw(x,t0:(i−1)) l (i)=A(M(x,t0:(i1)),w)=Mw(x,t0:(i1))

其中:
在这里插入图片描述

Kirchenbauer et al.[42]提出的KGW(logits偏移水印)方法,是第一种基于 logits 修改的 LLM 水印技术。核心思路如下:

  • 将词表 划分为红名单(R)和绿名单(G)
  • 每一个 token 位置,通过 hash 函数(依赖前一个 token)动态划分;
  • 对处于绿名单(G)中的词元 logits 添加偏移量 δ δ δ,以提高这些词被选中的概率。

在这里插入图片描述

其中:

在这里插入图片描述

这样使得该算法偏向于绿色标记,导致水印文本的比例更高。检测器使用哈希函数将每个标记分类为红色或绿色,并使用 z 度量计算绿色标记比率。

在这里插入图片描述

其中:

在这里插入图片描述

KGW的优化目标:
在这里插入图片描述

  • 增强水印可检测性、 减轻对文本质量的影响 、扩展水印容量 、提高对删除攻击的鲁棒性、实现公共可验证水印

在词元采样阶段添加水印4.2:该方法不改变logits本身,而是利用水印信息来引导采样过程

什么是词元采样?

词元采样 是指:在大语言模型生成文本时,模型会根据当前上下文预测下一个词(或子词)的概率分布,然后从中“选择”一个具体的词元(token)作为下一步输出。
虽然模型会给出所有可能词元的概率(比如 “我”:30%、“你”:25%、“他”:10%……),但最终只能输出一个词元,这一步“如何选”就是采样策略决定的。

在这里插入图片描述

词元级采样水印(Token-level Sampling Watermarking):在每个词元的采样过程中嵌入水印;

词元级采样水印,可以使用一个固定的随机种子来引入水印,通过伪随机数生成器(PRNG)生成一串伪随机数,用来引导每个词元的采样

在水印检测时,仅需评估文本中词元的选择与伪随机数的匹配程度,具体来说,就是判断文本中每个词元的选择是否与相应位置上的伪随机数值相符

Christ 等人 [15] 提出了一种适用于一个玩具模型(toy LLM)的水印算法,其词汇表仅包含数字 0 和 1,伪随机数是一系列落在区间 u ∈ [0, 1] 中的数值。如果某个位置上模型预测出的概率大于对应的伪随机数,那么就采样 1,否则采样 0在水印检测时,只需判断在生成的二进制文本中,值为1的位置的伪随机数是否整体显著高于值为0的位置的伪随机数

Aaronson 和 Kirchner 扩展了上述方法,适用于真实的 LLM。词汇量 |𝑉 |,在位置 i i i输出一个概率向量𝑝𝑖 = (𝑝𝑖1, …, 𝑝𝑖 |𝑉 | )位置 𝑖处的伪随机序列也从单个数字(0或1)转换为伪随机向量 𝑟𝑖 = (𝑟𝑖1, …, 𝑟𝑖 |𝑉 | ).采用exp-minimum来选择Token 𝑗 使得 𝑟 1 / 𝑝 𝑖 𝑗 𝑖 𝑗 𝑟 1/𝑝𝑖 𝑗𝑖 𝑗 r1/pijij 最大化.

在这里插入图片描述

句子级采样水印(Sentence-level Sampling Watermarking):

SemStamp 将语义嵌入空间划分为“水印区域”和“非水印区域”,通过句子级拒绝采样确保生成句子落入水印区域,但使用局部敏感哈希(LSH)划分区域可能导致语义相近的句子被分到不同区域,降低鲁棒性。

为此,k-SemStamp 改用 k-means 聚类划分区域,使语义相似句子落入相同区域,从而提升对语义不变攻击的鲁棒性。

评估指标

文本水印评估指标一览表

评估维度指标名称指标说明常见论文示例
检测性能Precision / Recall / F1-score检测是否准确识别带水印文本[Kirchenbauer et al., 2023], [Zhao et al., 2023]
TPR / FPR真阳性率 / 假阳性率同上
AUC / ROC 曲线综合评价水印检测性能同上
鲁棒性改写攻击后的检测准确率在面对语义改写、回译等扰动下的水印可检测性[k-SemStamp, 2023], [CodeMark, 2024]
Attack Success Rate攻击成功绕过水印检测的比例(越低越好)同上
隐蔽性 / 自然性Perplexity (PPL)文本流畅性指标,值越低越自然[Kirchenbauer et al., 2023]
BLEU / ROUGE / METEOR表层文本相似度(与原文对比)[SemStamp, 2023]
BERTScore / Semantic Similarity语义相似度指标,值越高表示语义未被破坏[k-SemStamp, 2023]
人工评估(可读性、自然度)主观评价文本质量多数论文均包含
水印容量bits per token / bits per sample每个 token 中可嵌入的信息量[Kirchenbauer et al., 2023], [Gu et al., 2023]
编码效率Rejection Sampling 次数生成带水印文本所需的采样成本[SemStamp, 2023]
泛化能力跨任务 / 跨模型检测表现水印是否能在不同任务/模型上泛化[Gu et al., 2023]
抗微调能力Fine-tuning Robustness模型微调后水印是否仍可被检测[Xu et al., 2023 - Hufu]
误报率控制False Positive Rate (FPR)非水印文本被误判为水印的概率[Kirchenbauer et al., 2023]

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值