大语言模型时代文本水印技术的综述解读

发布于:2025-09-09 ⋅ 阅读:(23) ⋅ 点赞:(0)

本水印算法对于保护文本内容的版权至关重要。从历史角度看,它们的能力和应用场景曾较为有限。然而,大语言模型(LLMs)的近期进展彻底改变了这些技术。大语言模型凭借其先进的能力,不仅增强了文本水印算法,还产生了运用这些算法来保护自身版权或防止潜在滥用的需求。

本研究对文本水印技术的现状进行了全面综述,涵盖四个主要方面:其一,对不同文本水印技术进行概述与对比;其二,介绍文本水印算法的评估方法,包括其可检测性、对文本或大语言模型质量的影响,以及在针对性或非针对性攻击下的鲁棒性;其三,探讨文本水印技术的潜在应用场景;其四,分析文本水印当前面临的挑战以及未来的发展方向。

这篇综述旨在让研究人员充分了解大语言模型时代的文本水印技术,进而推动该技术的进一步发展。可以看出,随着大语言模型的兴起,文本水印技术迎来了新的发展契机,既在技术层面得到了增强,又在应用需求上有了新的拓展,而这篇综述全面梳理相关内容,能为该领域的研究提供有力的参考与指引,助力其不断向前发展。

第一章 引言

文本水印,简单说就是把独特且不易被察觉的标识符(也就是水印)嵌入到文本内容里。这些水印被设计得既扎实可靠,又不惹眼,就是为了在不影响文本可读性或者含义的前提下,确保内容的完整性和所有权能被保留下来。从历史上看,文本水印在好多个领域都发挥过关键作用,像版权保护、文档认证,还有防止剽窃以及未经授权的内容传播这些方面 [41]。随着大语言模型(LLMs)的不断发展,文本水印的技术和应用场景都有了很显著的进步。正如图 1(a)展示的那样,这主要包括利用大语言模型去构建增强版的文本水印算法、把现有的文本水印算法应用到大语言模型上,以及探索在文本生成过程中直接嵌入水印的大语言模型水印技术。大语言模型的蓬勃发展,推动着文本水印领域形成了一片繁荣的研究景象,就如同图 1(b)描绘的。尤其是随着 ChatGPT 的出现,文本水印更是明显地掀起了一股研究热潮。具体来讲,本文就是要探讨大语言模型和文本水印之间的相互作用。

图1

1.1 为何文本水印对大语言模型有益?

近年来,大语言模型(LLMs)在自然语言处理领域取得了显著进展。随着这些大语言模型的参数数量持续增加,它们理解和生成语言的能力也大幅提升。著名的例子有 GPT [80]、BART [50]、T5 [82]、OPT [120]、LaMDA [97]、LLaMA [100] 以及 GPT - 4 [71]。这些大语言模型在各种下游任务中都取得了出色的表现,包括机器翻译 [16, 31, 31, 128]、对话系统 [36, 64, 90, 97] 和代码生成 [69, 70, 103, 111],还有其他任务 [51, 52, 96, 121]。最近的一项研究甚至表明,GPT - 4 是人工智能通用系统的早期(但仍不完整)版本 [10]。然而,大语言模型的使用带来了几个挑战:

  • 大语言模型的滥用:大语言模型可能被恶意用户利用,来制造虚假信息 [13] 或有害内容 [76] 并在互联网上传播。
  • 知识产权问题:功能强大的大语言模型容易受到模型提取攻击,在这种攻击中,攻击者会提取大量数据来训练新的大语言模型 [7]

为大语言模型生成的文本添加水印,能有效缓解这些问题。水印使得大语言模型生成的文本可被追踪和检测,有助于控制潜在的滥用行为。用带有水印的文本训练新的大语言模型,能够将这些水印嵌入其中,从而减轻模型提取攻击的影响。

1.2 为何大语言模型对文本水印有益?

文本水印的一个关键挑战是在嵌入水印时,不能扭曲原始文本的含义或可读性。传统方法往往难以在不改变文本语义的情况下对其进行修改 [4, 63, 98]。算法需要理解并控制文本语义,这一必要性导致了这种困难。不过,大语言模型极大地改变了这一局面。由于它们对语言语义和语境有先进的把握,所以能助力实现复杂的水印方法,这些方法在嵌入水印时对文本固有含义的影响极小 [2, 119]。这种融合带来了更有效且更隐蔽的水印技术,在嵌入必要水印特征的同时,保留了文本的原始意图。

1.3 为何要对大语言模型时代的文本水印进行综述?

文本水印技术和大语言模型能有效相互促进。这两项技术的相互关联包含以下几个方面:

  • 为大语言模型生成的文本添加水印:大语言模型生成的文本可借助文本水印算法添加水印 [9, 68, 79, 85, 114, 115, 117]。
  • 通过大语言模型嵌入水印:大语言模型自身可被用来在文本中嵌入水印 [2, 119]。
  • 在文本生成过程中直接集成:水印算法可在大语言模型的文本生成过程中直接整合 [42, 56, 57, 84, 110, 124]。

然而,目前缺乏探索大语言模型时代文本水印的综合性研究。现有的综述主要聚焦于大语言模型出现之前发展的水印技术 [3, 41]。在本研究中,据我们所知,我们呈现了首篇在大语言模型背景下对文本水印算法的综合性综述。

本综述的结构如下。第 2 节介绍文本水印的定义和关键算法属性。第 3 节和第 4 节阐述两类主要的文本水印:针对现有文本的和针对大语言模型生成文本的。第 5 节讨论这些算法的评估指标,包括可检测性、对质量的影响以及在水印攻击下的鲁棒性(鲁棒性(Robustness) 指的是一个系统、算法、模型或程序等,在面对各种干扰、变化、异常情况 时,依然能够保持其性能稳定、可靠运行,并达成预期功能的能力)。第 6 节探索应用场景,即版权保护和人工智能生成文本检测。第 7 节考察文本水印当前存在的挑战以及未来潜在的研究方向。综述在第 8 节总结。

第二章 文本水印的基础知识

为便于后续章节介绍各类文本水印算法及其评估方法,本节给出文本水印算法的定义,并概述一个优秀的文本水印算法应具备的特征。同时,本节也会介绍文本水印算法的分类体系。

图2

针对现有文本的水印(Watermarking for Existing Text)

这部分展示了对已有文本进行水印嵌入的过程。以句子 “The stars shimmered in the velvet night sky.” 为例,通过 “Text Transformation(文本转换)” 并结合 “Watermark Message(水印信息)”,衍生出四种基于不同方式的水印类型:

  • 基于格式的(Format based):如将原句中的 “shimmered” 和 “velvet night sky” 的呈现格式稍作调整(从示例看,可能是对部分词汇的显示样式等进行修改来嵌入水印),得到 “The stars shimmered in the velvet night sky.”(示例中格式类的呈现与原句差异相对细微,侧重格式层面的隐蔽修改)。
  • 基于词汇的(Lexical based):把原句中的 “shimmered” 替换为同义词 “sparkled”,得到 “The stars sparkled in the velvet night sky.”,通过词汇替换来嵌入水印,同时尽量保持文本语义不变。
  • 基于句法的(Syntactic based):调整句子的句法结构,原句是 “The stars shimmered in the velvet night sky.”,转换为 “In the velvet night sky, a shimmer was cast by the stars.”,通过改变句子的语法结构(主动变被动等)来嵌入水印。
  • 基于生成的(Generation based):重新生成语义相近但表述不同的句子,如 “The velvet night embraced as stars shimmered, a celestial ballet.”,通过生成新的文本内容来嵌入水印。

针对大语言模型的水印(Watermarking for LLMs)

这部分又细分为训练时水印(training time watermarking)和推理时水印(inference time watermarking):

  • 训练时水印:在大语言模型训练过程中,结合 “Watermark Message”,训练得到带有水印的大语言模型(Watermarked LLM)。这样,模型生成的文本天然就带有水印特征。
  • 推理时水印:在大语言模型推理生成文本的过程中嵌入水印,又可分为两个环节:
    • 首先是 “Logits Generation” 环节,结合 “Watermark Message” 生成带有水印的下一个词元的对数几率(Watermarked Next Token Logits)。
    • 然后是 “Token Sampling” 环节,依据带有水印的下一个词元对数几率(Next Token Logits)和 “Watermark Message”,进行词元采样,最终生成带有水印的下一个词元(Watermarked Next Token)。

总体而言,这张图清晰地呈现了文本水印技术的两大类别及其具体的实现方式,体现了在现有文本和大语言模型场景下,文本水印嵌入的不同思路与流程,有助于理解文本水印技术在不同应用场景下的多样性与针对性。

2.1 文本水印算法

文本水印算法通常包含两个部分:水印生成器\(\mathcal{A}\)和水印检测器\(\mathcal{D}\)。水印生成器\(\mathcal{A}\)以文本x和水印信息w为输入,输出带水印的文本t,表示为\(\mathcal{A}(x, w) = t\)。

带水印的文本t,要么与原始文本x形式不同但语义等价(见第 3 节),要么是响应x而新生成的文本(见第 4 节),尤其是在大语言模型提示词这类场景中。水印信息用w表示,它可以是零比特水印,仅表示水印存在或不存在;也可以是多比特水印,嵌入详细的、定制化的信息。“水印负载” 这个表述指的是w所传递的信息量。

对于水印检测器\(\mathcal{D}\),它的输入是任意文本t,输出是对该文本预测的水印信息,记为\(\mathcal{D}(t) = w\)。如果输出是 None,就意味着该文本不包含任何水印信息。

2.2 与相关概念的联系

为进一步阐明本文所讨论的文本水印的范围,本节将上述文本水印与其他相关概念区分开来:

  • 隐写术:隐写术 [87] 和文本水印都是信息隐藏的重要方法。尽管二者有相似之处,但隐写术通常需要更高的隐藏信息容量,而水印则更注重对文本进一步修改的鲁棒性。
  • 大语言模型水印:大语言模型水印的概念涵盖了添加到大语言模型上的所有形式的水印,比如模型的参数 [102]、输出嵌入 [75] 以及文本 [42]。本文仅聚焦于应用在大语言模型输出文本上的水印。

2.3 文本水印算法的关键特征

为进一步加深对文本水印概念的理解,本节介绍两个关键特征:对文本质量的低影响性以及对水印移除攻击的鲁棒性。

对文本质量的低影响性:添加水印后,文本质量不应大幅下降。设\(\mathcal{A}(x, \emptyset)\)表示未添加水印时生成的文本。当x是目标文本(见第 3 节)时,输出仍是x;对于给大语言模型的提示词(见第 4 节),它表示大语言模型未添加水印的输出。一个有效的水印算法要确保对文本质量的影响最小: \(\forall w_i, \mathcal{R}(\mathcal{A}(x, \emptyset), \mathcal{A}(x, w_i)) < \delta, \tag{1}\) 其中\(\mathcal{R}\)是从多个角度评估文本质量的函数,这会在第 5 节讨论。\(\delta\)代表一个阈值,如果两个文本的评估分数差异小于该阈值,就认为它们质量相近。

对水印移除攻击的鲁棒性:对于文本水印算法来说,带水印的文本在经过一些修改后仍能被检测到,这一点至关重要。我们用操作\(\mathcal{U}\)表示水印移除操作,这会在第 5 节详细说明。如果一个水印算法能抵御水印移除攻击,它应满足以下条件: \(\forall w_i, \forall \mathbf{t} = \mathcal{A}(x, w_i), P(\mathcal{D}(\mathcal{U}(\mathbf{t})) = w_i) > \beta, \tag{2}\) 其中\(\beta\)是一个阈值。如果文本修改后,正确检测带水印文本的概率超过\(\beta\),该算法就被认为具有足够的鲁棒性。

此外,文本水印算法还有其他重要特征,会在第 5 节详细讨论。

2.4 文本水印算法的分类

为便于在第 3 节和第 4 节梳理不同的文本水印算法,本节对我们总结的文本水印算法分类进行概述。图 2 将文本水印方法分为两大主要类型。第一种类型是针对现有文本的水印,通过对已有文本进行后处理来嵌入水印,这在第 3 节会详细阐述。该技术通常利用语义不变的转换来整合水印。第二种类型是针对大语言模型(LLMs)的水印,涉及对大语言模型的修改,第 4 节会进一步详细说明。这种方法要么在大语言模型训练过程中嵌入特定特征,要么改变推理过程,从输入提示生成带水印的文本。图 3 呈现了所有文本水印方法更详细的分类。

第三章 针对现有文本的水印

针对现有文本的水印,是对已生成的文本进行修改以生成带水印的文本(如图 4 所示)。根据修改的粒度,这些方法主要分为四类:基于格式的水印(3.1 节)、基于词汇的水印(3.2 节)、基于句法的水印(3.3 节)和基于生成的水印(3.4 节)。

3.1 基于格式的水印

基于格式的水印受图像水印 [6] 启发,通过改变文本格式而非内容来嵌入水印。例如,Brassil 等人 [9] 引入了行偏移和单词偏移编码,通过垂直和水平调整文本行与单词来实现。检测过程通过测量文本行轮廓或单词列轮廓之间的距离来识别偏移。不过,这种方法仅限于图像格式的文本,无法在文本字符串中嵌入水印。

为解决这一问题, Unicode 码点插入 / 替换方法应运而生。Por 等人 [79] 开发了 UniSpach,它在各种文本间距中插入 Unicode 空格字符。Rizzo 等人 [85] 提出了一种 Unicode 同形字替换方法,使用视觉上相似但编码不同的文本符号(例如,'C' 用 U+0043 和 U+216d;'L' 用 U+004c 和 U+216c)。最近,一种名为 EasyMark [89] 的简单水印系列被提出。它包括 WhiteMark,将空格(U+0020)替换为另一个空格码点(例如,U+2004);VariantMark,对中日韩(CJK)文本使用 Unicode 变体选择器;以及 PrintMark,利用连字或略有不同的空格长度在打印文本中嵌入水印信息。检测过程涉及搜索特定插入的码点。

尽管基于格式的水印方法能在不改变文本内容的情况下嵌入大量负载,但它们对格式的修改可能较为明显。Por 等人 [79] 指出,DASH 攻击能够凸显这些变化。因此,这些方法容易通过规范化操作(如重置行间距和替换特定码点)[8] 被移除。此外,这些可检测的格式可能被用于水印伪造,从而降低检测效率。

图3

图3分析:这张图是文本水印方法的分类图,清晰地展现了文本水印技术的分类体系,可从以下几个方面分析:

整体结构

图中把文本水印(Text Watermarking)分为两大主要类别:针对现有文本的水印(Watermarking for Existing Text)针对大语言模型(LLMs)的水印(Watermarking for LLMs),每个大类别下又细分出不同的子类别,且每个子类别都列举了相关的研究工作(通过文献引用体现)。

针对现有文本的水印

该类别下又细分为四种基于不同修改粒度的水印类型:

  • 基于格式的水印(Format - Based Watermarking):通过改变文本的格式(而非内容)来嵌入水印,例如行 / 单词偏移编码、UniSpach、Unicode 同形字替换、EasyMark 等方法都属于这一类。
  • 基于词汇的水印(Lexical - Based Watermarking):利用词汇层面的操作(如词汇替换等)来嵌入水印,像 EquiMark、DeepTextMark、二进制编码词汇替换等方法在此范畴。
  • 基于句法的水印(Syntactic - Based Watermarking):借助句法结构的调整来嵌入水印,NLW、WANE、MA - NLW 等是这类方法的代表。
  • 基于生成的水印(Generation - Based Watermarking):通过生成新的文本内容来嵌入水印,AWT、REMARK - LLM、Waterfall 等方法属于此类。

针对大语言模型的水印

该类别下根据水印嵌入的阶段不同,分为三种类型:

  • 在对数几率生成时嵌入水印(Watermarking during Logits Generation):在大语言模型生成对数几率(logits)的过程中嵌入水印,KGW、SWEET、UW、Unigram、GPT - reliability 等方法都采用这种方式。
  • 在词元采样时嵌入水印(Watermarking during Token Sampling):在大语言模型进行词元(token)采样的过程中嵌入水印,不可检测水印、Aar、KTH、SemStamp、k - SemStamp 等方法属于这一类。
  • 在大语言模型训练时嵌入水印(Watermarking during LLM Training):在大语言模型的训练过程中就嵌入水印,Coprotector、CodeMark、水印可学习性、强化水印、Hufu 等方法是这类的典型代表。

意义

这张分类图全面且系统地梳理了文本水印领域的各类方法,有助于研究人员清晰地了解不同文本水印技术的分类、特点以及相关研究进展,为进一步开展文本水印相关的研究、应用和技术对比等工作提供了清晰的框架指引。

图4

3.2 基于词汇的水印

基于格式的水印方法仅修改文本的表面格式,容易被发现,也因此很容易通过重新格式化被移除。这就凸显出研究文本中更深度水印嵌入方法的必要性。有大量研究采用了词级别的修改,也就是在不改变句子句法结构的情况下,将选定的单词替换为它们的同义词 [68, 99, 114, 115, 117]。这些就是所谓的基于词汇的水印方法。Topkara 等人 [99] 引入了一种同义词替换方法,采用 WordNet [21] 作为同义词来源。水印检测会复制嵌入过程,应用逆规则来提取信息。Munyer 和 Zhong [68] 通过使用预训练的 Word2Vec 模型增强了语义建模,将选定的单词转换为向量,并确定最近的 n 个向量作为替换候选。他们使用带有预训练 BERT 模型和 Transformer 块的二元分类器进行水印检测。

前面提到的依赖于与上下文无关的同义词替换(WordNet 和 Word2Vec)的水印方法,往往会忽略目标单词的上下文,可能会损害句子的语义和文本质量。为了解决这个问题,感知上下文的词汇替换已被纳入文本水印中。Yang 等人 [115] 引入了一种基于 BERT 的填充模型,用于生成上下文合适的词汇替换。水印检测算法与生成过程并行,识别带有水印的单词,生成替代词,并应用逆规则来提取信息。在另一项研究中,Yang 等人 [114] 通过用一个随机二进制值对每个单词进行编码,并将表示比特 1 的基于上下文的同义词替换比特 0 的单词,简化了水印检测。由于未加水印的文本遵循伯努利分布,且在加水印时会发生改变,统计测试可以有效地检测水印。Yoo 等人 [117] 通过使用保留关键词且句法不变的干扰对基于 BERT 的填充模型进行微调,增强了对移除攻击的鲁棒性,与早期方法相比,实现了更优的鲁棒性。

3.3 基于句法的水印

基于词汇的方法旨在通过替换特定单词来嵌入水印,同时保持句子的句法结构。然而,这些方法完全依赖词汇替换,可能无法抵御像随机同义词替换这类直接的水印移除策略。因此,有几项研究探索了以一种能抵御移除的方式嵌入水印,特别是通过修改文本的句法结构。这些方法被称为基于句法的水印方法。Atallah 等人 [4] 引入了三种典型的句法转换 —— 附加语移位、伪拟和被动化 —— 来嵌入水印信息。

每种转换类型被分配一个独特的信息位:附加语移位对应 0,伪拟对应 1,被动化对应 2。在水印检测时,原始文本和经过修改的文本都会被转换为句法树,然后对比它们的结构以提取信息。拓展这一概念,Topkara 等人 [98] 引入了额外的句法转换:主动化和主题化。此外,研究范围超出了英语,Meral 等人 [63] 分析了土耳其语中的 20 种形态句法工具,强调像土耳其语这类具有大量后缀和黏着现象的语言,非常适合基于句法的水印。

虽然基于句法的水印能以隐蔽的方式有效嵌入水印,但它严重依赖语言的语法规则,通常需要针对特定语言进行定制。而且,一些文本中频繁的句法变化也可能改变其原本的风格和流畅度。

3.4 基于生成的水印

前面提到的方法在文本水印领域取得了显著进展。不过,它们往往依赖特定规则,这可能导致不自然的修改,进而可能降低文本质量。要是这些线索被人类攻击者察觉,他们或许会设计水印移除攻击,或者试图伪造水印。一项突破性的进展是直接从原始文本和水印信息生成带水印的文本,随着预训练语言模型的发展,这项技术正逐渐变得可行。

一种方法是设计神经网络,将原始文本和水印信息作为输入,输出带水印的文本。Abdelnabi 和 Fritz [2] 开发了 AWT,这是一种端到端的水印方案,使用 Transformer 编码器对句子进行编码,并融合句子和信息嵌入。然后,由 Transformer 解码器处理这个合成体,生成带水印的文本。在检测时,文本会经过 Transformer 编码器层来提取秘密信息。拓展 AWT,Zhang 等人 [119] 利用 REMARK - LLM 解决了密集带水印文本分布与稀疏独热水印编码之间的差异。这种方法使用预训练的大语言模型(LLM)进行水印插入,并引入了一个使用 Gumbel - Softmax [38] 的参数化步骤,以产生更稀疏的词元分布。基于 Transformer 的解码器从这些嵌入中提取信息。REMARK - LLM 能够在保持检测效率的同时,嵌入两倍于 AWT 的签名,提升了水印负载容量。

随着大语言模型在遵循指令和生成高质量文本方面的能力不断提升,它们正成为自行设计神经网络来嵌入水印的可行替代方案。Lau 等人 [48] 引入了 WATERFALL,它使用带水印的大语言模型对原始文本进行释义,在保留语义内容的同时嵌入水印。这种方法结合了词汇置换和一种新颖的正交水印扰动方法,以实现高可检测性和鲁棒性。大语言模型强大的释义能力增强了生成文本的自然性,使得带水印的内容更流畅、更通顺。

第四章 针对大语言模型的水印

虽然我们已经探讨了针对现有文本的水印(第 3 节),但大语言模型生成内容的兴起,要求在生成过程中采用水印技术。生成过程中的水印往往能产生更自然的文本,类似基于生成的方法(第 3.4 节)。这种方法允许大语言模型直接生成带水印的文本,可定义为: \(\mathcal{A}(x, w) = M_w(x) = \mathbf{t}, \tag{3}\) 其中w是水印信息,x是提示词,\(M_w\)是嵌入了水印的大语言模型。为简单起见,我们假设带水印的文本是由该大语言模型直接生成的。

为了更好地理解如何给大语言模型添加水印,我们首先概述使用大语言模型生成文本的过程。具体来说,这涉及三个步骤 —— 大语言模型训练、对数几率生成和词元采样:

  • 步骤 1—— 大语言模型训练:这一步是用数据集D训练大语言模型M。训练目标因应用而异,最常见的是下一个词元预测 [81]。
  • 步骤 2—— 对数几率生成:对于训练好的大语言模型M,给定提示词x和之前的词元序列\(\mathbf{t}^{0:(i - 1)}\),大语言模型会预测词汇表\(\mathcal{V}\)中下一个词元\(t^{(i)}\)的概率分布,以对数几率\(\mathbf{l}^{(i)}\)表示: \(\mathbf{l}^{(i)} = M(x, \mathbf{t}^{0:(i - 1)}). \tag{4}\)
  • 步骤 3—— 词元采样:下一个词元\(t^{(i)}\)从\(\mathbf{l}^{(i)}\)中选取,采用如核采样 [32]、贪心解码或束搜索等方法。采样过程表示为: \(t^{(i)} = S(\text{softmax}(\mathbf{l}^{(i)})). \tag{5}\)

通过这些步骤,大语言模型M生成一个词元\(t^{(i)}\)。对于多个词元,对数几率生成和词元采样会迭代重复。

与使用大语言模型生成文本的三个关键阶段相对应,针对大语言模型的水印技术也被类似地分为三种不同类型。它们分别是在大语言模型训练时、对数几率生成时和词元采样时添加水印。这些水印方法的详细讨论分别在第 4.3 节、第 4.1 节和第 4.2 节中呈现。

图5

4.1 对数几率生成时的水印

对数几率生成时的水印指的是将水印信息w插入到大语言模型生成的对数几率中。这种技术不需要修改大语言模型的参数,相比训练时水印方法,更具通用性且成本效益更高。

在这种情况下,水印算法\(\mathcal{A}\)会修改大语言模型的对数几率,以融入水印信息w。修改后的对数几率\(\widetilde{\mathbf{l}}^{(i)}\)可计算如下: \(\widetilde{\mathbf{l}}^{(i)} = \mathcal{A}(M(\mathbf{x}, \mathbf{t}^{0:(i - 1)}), w) = M_w(\mathbf{x}, \mathbf{t}^{0:(i - 1)}), \tag{6}\) 其中,假设\(\widetilde{\mathbf{l}}^{(i)}\)是由带水印的大语言模型\(M_w\)生成的。

Kirchenbauer 等人 [42] 引入了第一种基于对数几率修改的大语言模型水印技术 KGW(图 5)。这种方法将词汇表划分为红名单(R)和绿名单(G),每个词元位置的划分由一个依赖于前一个词元的哈希函数决定。对于由\(M_w\)生成的第i个词元,会对 G 中词元的对数几率施加偏差\(\delta\)。词元\(v_j\)在位置i处调整后的对数几率值\(\widetilde{l}_j^{(i)}\)计算如下:
\(\widetilde{l}_j^{(i)} = M_w(\mathbf{x}, \mathbf{t}^{0:(i - 1)}) = \begin{cases} M(\mathbf{x}, \mathbf{t}^{0:(i - 1)})[j] + \delta, & v_j \in G \\ M(\mathbf{x}, \mathbf{t}^{0:(i - 1)})[j], & v_j \in R \end{cases} \tag{7}\)

该算法会偏向绿词元,使得带水印文本中绿词元的比例更高。检测器使用哈希函数将每个词元分类为红或绿,并使用z - 度量计算绿词元比例,z - 度量定义为:
\(z = (|s|_G - \gamma T) / \sqrt{T\gamma(1 - \gamma)}, \tag{8}\)

其中( T )是文本长度,( \gamma )是绿名单的比例。绿词元比例超过某一阈值的文本会被视为带有水印。

KGW的检测方法在测试中表现出较低的假阳性(< ( 3 \times 10^{-3}%))和假阴性(< 1%)率。然而,实际应用中的挑战需要进一步的优化和设计。以下概述了五个优化目标,以及每个目标下水印算法的改进和探索。本节的分类如图6所示。

4.1.1 增强水印可检测性

尽管KGW报告了较高的检测性能,但在更严格的检测条件下仍显露出不足,需要针对z - 分数计算进行有针对性的优化。

一个关键问题是,当理论假阳性率极低(例如,低于( 10^{-6}))时,理论与实际假阳性率之间存在差异。这是因为KGW假设z - 分数遵循高斯分布,但这仅在词元长度趋近于无穷大时才成立,因此在实际中往往不准确。为解决这个问题,Fernandez等人[22]开发了一种非渐近统计检验,采用精确的二项分布,并据此修正z - 分数计算,使低假阳性率场景下的理论与实际假阳性率一致。

KGW面临的另一个挑战是在低熵场景下的性能,例如代码生成和机器翻译。在这些情况下,对数几率向量通常呈现不均匀分布,降低了对绿词元的偏差影响,进而降低了水印检测的敏感性。EWD [60]方法通过在检测过程中根据词元的熵为其分配权重来解决这个问题,在z - 分数计算中强调高熵词元,从而增强敏感性。

此外,当带水印文本与大量无水印文本混合时,KGW的效果会大打折扣,水印强度被稀释,影响z - 分数计算。为缓解这一问题,WinMax [43]基于滑动窗口的方法在文本内不同窗口大小上计算z - 分数,并选择最大的z - 分数作为最终值,提高了检测准确率。

4.1.2 减轻对文本质量的影响

水印可能会通过引入不自然的词汇选择或模式来影响文本质量,降低可读性、连贯性和文本实用性。减轻这种影响的一个优化思路是确保带水印内容的文本分布与大语言模型的原始输出分布保持一致。具体来说,这意味着带水印对数几率的期望等于原始大语言模型的对数几率:
\(\underset{k \sim K}{\mathbb{E}} \left[ M_w(\mathbf{x}, \mathbf{t}^{0:(i - 1)}) \right] = M(\mathbf{x}, \mathbf{t}^{0:(i - 1)}), \tag{9}\)

其中每个密钥( k )代表唯一的红 - 绿名单划分。这确保了从期望来看,水印不会对文本质量产生负面影响。

Hu 等人 [35] 指出,KGW 算法 [42] 在对数几率修改时引入了偏差,改变了文本分布。KGW 中的偏差源于对绿名单词元应用统一的\(\delta\),这会不成比例地影响低概率词元,进而导致整体偏差。为解决这一问题,Hu 等人 [35] 引入了两种无偏重加权方法:\(\delta\) - 重加权,从原始对数几率中采样独热分布;以及\(\gamma\) - 重加权,将概率分布范围减半,从而使剩余词元的概率加倍。类似地,Wu 等人 [110] 提出了\(\alpha\) - 重加权方法,舍弃概率低于\(\alpha\)的词元,并调整其余词元。这些方法在理论上是无偏的,能保留原始文本分布,因此也维持了文本质量。

上述优化方法相对偏理论性。从更实用的角度来看,重点在于减轻对文本实用性的影响。一类方法是有选择地对词元应用水印,避开合适词元稀疏的位置。熵已被提议作为水印应用的标准,以绕过低熵位置 [49, 59, 105]。Wouters [107] 更进一步,不仅考虑熵,还考虑红名单和绿名单的概率分布,当红词元的概率过高时,就不进行水印嵌入。另一类方法是通过降低合适词汇被排除的可能性来维持文本实用性。例如,Chen 等人 [54] 提议对红 - 绿分区使用互斥规则,旨在使红名单和绿名单之间语义相似的词汇均匀分布。这种方法旨在防止所有合适词汇都被分配到红名单的情况。此外,Fu 等人 [23] 建议采用感知语义的水印技术,包括将与上下文更相关的词汇加入绿名单,从而增加合适词元被选中的可能性。再者,Guan 等人 [27] 建议对合适词元增加额外的偏差,降低它们被排除的概率。

注记:

咱们用更通俗的例子,结合做 “水果拼盘”(类比文本生成,每个水果类比词元,选水果的概率类比对数几率)来理解:

原来的 KGW 做法(有偏差,影响 “拼盘质量”)

假设要做一份 “水果拼盘”(生成文本),选水果(词元)的概率原本是自然的:比如选苹果(高概率词元)的概率是 60%,选山竹(低概率词元,因为山竹本身在果盘中不常见)的概率是 5%。 按照 KGW 原来的方法,要给 “绿名单水果”(类比绿名单词元)统一加个 “偏爱值”\(\delta\)(比如让选绿名单水果的概率都提高一点)。现在山竹属于绿名单,那它的选中概率就从 5% 变成 \(5\% + \delta\);苹果如果也在绿名单,就从 60% 变成 \(60\% + \delta\)。 但问题来了:山竹原本概率低,加\(\delta\)后,它的概率相对提升幅度比苹果大很多(比如\(\delta\)是 10%,山竹变成 15%,是原来的 3 倍;苹果变成 70%,只比原来高约 17%)。这样一来,最终拼盘中山竹出现的次数可能会异常增多,整个拼盘的 “水果搭配比例”(文本分布)就乱了,吃起来(读起来)也不自然了。

Hu 等人的无偏重加权改进(让 “拼盘” 更自然)

① \(\delta\) - 重加权(类比 “按原比例精准选水果”)

还是做水果拼盘,现在要给绿名单水果加 “偏爱”,但得按原始概率来。比如原始选苹果概率 60%,山竹 5%,其他水果各有概率。 \(\delta\) - 重加权的做法是:先看原始所有水果的概率分布(原始对数几率),然后只从这个分布里 “选一个水果”(采样独热分布,独热就像只有一个水果被选中,概率 100%,其他 0)。这样,虽然最终只选了一个,但整体是符合原始概率规律的。 比如这次选了苹果,那它就是按原始 60% 的概率被选中的;下次可能选山竹,是按 5% 的概率。这样多次选下来,水果的整体比例和原始分布一致,拼盘(文本)就自然了。

② \(\gamma\) - 重加权(类比 “缩小选择范围,再等比例放大概率”)

把所有水果的概率范围减半,比如原来苹果 60%、山竹 5%、香蕉 20%、橙子 15%,现在把这些概率都除以 2,变成苹果 30%、山竹 2.5%、香蕉 10%、橙子 7.5%。然后把剩下的 50% 概率,平均(或按规律)加到这些水果上,让总概率又回到 100%。 这样调整后,山竹原本低的概率,和其他水果一样是 “等比例缩放再放大”,不会出现它的概率突然冒高的情况,拼盘的整体比例还是和原来一致,吃起来自然。

③ Wu 等人的 \(\alpha\) - 重加权(类比 “筛掉冷门水果,再调整热门的”)

设定一个 “冷门阈值”\(\alpha\)(比如概率低于 10% 的水果算冷门),山竹概率 5% 低于\(\alpha\),就把山竹从选择列表里去掉。然后把原来山竹的 5% 概率,按比例分给苹果(60%)、香蕉(20%)、橙子(15%)这些热门水果。 这样一来,选的都是相对热门的水果,且它们的概率是在原始热门比例基础上调整的,拼盘里热门水果的搭配还是符合原本的 “受欢迎规律”,自然度也能保持。

总结

这些改进方法,核心就是让 “选水果(词元)的概率调整” 更符合原始的 “水果受欢迎程度(文本分布规律)”,这样最终的 “水果拼盘(生成的文本)” 就不会因为强行加 “偏爱” 而变得不自然,也就维持了文本质量。

4.1.3 扩展水印容量

KGW 水印算法 [42] 只能验证水印是否存在,属于零比特水印。然而,许多应用需要水印传递额外信息,如版权详情、时间戳或标识符,这就需要能够提取有意义数据的多比特水印。

一种可能的解决方案是采用细粒度的词汇划分,从二元的红 - 绿划分扩展到多色划分 [22]。为了编码b比特信息,词汇表需要被划分为\(2^b\)个组,不同的组带有反映不同组词元偏好的水印信息。另一种解决方案是使用细粒度的水印负载分配 [105],将文本划分为多个块,每个块编码一部分比特信息。不过,如果这些方法中的任何一种划分过于精细,编码强度可能不足,导致水印提取准确率下降。为缓解这一问题,Yoo 等人 [118] 尝试结合这两种方法,在避免任何类型过度精细划分的同时,确保足够的水印容量,并旨在通过实验找到粒度的最优平衡。

4.1.4 提高对移除攻击的鲁棒性

如第 2 节所述,有效的水印算法必须能抵御移除攻击,确保水印仍可被检测到。这些攻击通常会在不改变文本语义内容的情况下修改文本。虽然 KGW 算法 [42] 在实验中表现出一定的鲁棒性,但仍有改进空间。

一种优化方法是采用更鲁棒的词汇划分方案。原始的 KGW [42] 算法利用前文中窗口内的所有词元信息映射为哈希值,用于红 - 绿划分。Kirchenbauer 等人 [43] 进一步阐述了更鲁棒的划分策略,比如仅使用前文中窗口内最小的词元标识进行哈希,这对文本编辑更具抵抗力。此外,Zhao 等人 [124] 证明,固定的全局红 - 绿列表划分对移除攻击有更强的抵抗力。

由于水印移除攻击通常会保留文本的语义内容,一些研究已经开发出将语义信息整合到水印算法设计中的方法。例如,Liu 等人 [57] 训练了一个带水印的大语言模型(LLM),该模型直接将文本语义转换为红 - 绿划分,确保相似的文本语义产生相似的划分结果,从而实现鲁棒性。He 等人 [30] 通过添加约束条件来改进带水印的大语言模型,确保语义相似的词元落入同一颜色列表,从而进一步增强鲁棒性。Ren 等人 [84] 通过加权嵌入池化将语义嵌入转换为语义值,然后使用 NE - Ring 进行离散化,再根据这些语义值将词汇表划分为红名单和绿名单。


网站公告

今日签到

点亮在社区的每一天
去签到