Everything K-culture — comebacks to K-beauty, straight to your inboxGet it in your inbox

METAL MEDIA

Stability-Aware Feature Design for Robust Watermark Detection in Machine-Generated Text

arXiv:2608.181022026-08-20

A watermark-detection method that survives repeated paraphrasing of AI-written text

Text generated by large language models can carry a hidden statistical watermark, but when the text is paraphrased multiple times, existing detectors quickly lose accuracy. This paper introduces Pattern Stability Score (PSS), which looks at the watermark signal in small local windows across the text and measures how stable that signal stays even after up to eight rounds of paraphrasing. The result is a detector that keeps working well even under heavy paraphrasing, where prior methods fail.

METAL MEDIA explanatory visual

A watermark-detection method that survives repeated paraphrasing of AI-written text

  1. 01Greenlist watermarking nudges a language model to prefer words from a hidden 'green list,' and standard detectors compress the whole text into one global z-score, which gets diluted when only part of the text is edited by paraphrasing
  2. 02The authors slide a window across the text to compute 20 local statistical features (mean, variance, autocorrelation, run-length patterns, etc.), then introduce PSS, which measures how stable these local signals remain across up to eight rounds of paraphrasing of the same passage
  3. 03Tested on three datasets (PG-19, CNN/DailyMail, WikiText) with multiple generator models (Llama-3-8B, Qwen2-7B) and paraphrasers (Mistral, Qwen2, Gemma), PSS plus static features reached 91.2% AUC (area under the ROC curve) at depth 8 with 1,500-token texts, while deep-learning baselines (DeepTextMark, Binoculars, RADAR) collapsed to 41-44%
  4. 04A single universal classifier, trained without knowing the exact model, paraphraser, or dataset used at test time, still generalized above 87.8% AUC across different combinations, and the method also held up better than baselines on short texts as short as 300 tokens
  5. 05Performance still drops when texts are both very short and paraphrased very deeply, and against an attack specifically trained to erase the watermark signal, though PSS degrades far less than the standard global z-score baseline in that case too
An explanatory diagram made by METAL MEDIA, not a figure supplied by the paper's authors.

What they did

  1. Greenlist watermarking nudges a language model to prefer words from a hidden 'green list,' and standard detectors compress the whole text into one global z-score, which gets diluted when only part of the text is edited by paraphrasing
  2. The authors slide a window across the text to compute 20 local statistical features (mean, variance, autocorrelation, run-length patterns, etc.), then introduce PSS, which measures how stable these local signals remain across up to eight rounds of paraphrasing of the same passage
  3. Tested on three datasets (PG-19, CNN/DailyMail, WikiText) with multiple generator models (Llama-3-8B, Qwen2-7B) and paraphrasers (Mistral, Qwen2, Gemma), PSS plus static features reached 91.2% AUC (area under the ROC curve) at depth 8 with 1,500-token texts, while deep-learning baselines (DeepTextMark, Binoculars, RADAR) collapsed to 41-44%
  4. A single universal classifier, trained without knowing the exact model, paraphraser, or dataset used at test time, still generalized above 87.8% AUC across different combinations, and the method also held up better than baselines on short texts as short as 300 tokens
  5. Performance still drops when texts are both very short and paraphrased very deeply, and against an attack specifically trained to erase the watermark signal, though PSS degrades far less than the standard global z-score baseline in that case too
Figure 2: AUC vs. paraphrase depth at 1,500 tokens. Mean AUC (solid lines) with ±1 SD bands (shaded) over 30 runs with random 70/30 splits for four methods—Global z threshold, Local z (20) + classifiers, Static features + classifiers, and PSS + Static—all using XGBoost. Local statistics improve robustness relative to the global threshold, and adding PSS further flattens the AUC decline from D​3–D​8.
Figure 2: AUC vs. paraphrase depth at 1,500 tokens. Mean AUC (solid lines) with ±1 SD bands (shaded) over 30 runs with random 70/30 splits for four methods—Global z threshold, Local z (20) + classifiers, Static features + classifiers, and PSS + Static—all using XGBoost. Local statistics improve robustness relative to the global threshold, and adding PSS further flattens the AUC decline from D​3–D​8.
Table 1: Comparison with prior detectors on PG-19 at 1,500 tokens. AUC (%) across paraphrase depths. PSS + Static outperforms statistical baselines (Global z-score, WinMax) by 14–19 percentage points an, the global z-score by 22–24 percentage points, and deep-learning detectors (DeepTextMark, Binoculars, RADAR) by 30–50 percentage points across D​1–D​8.
MethodD1D3D5D8
Global z-score74.270.068.066.8
WinMax (Kirchenbauer et al., 2024)82.176.574.472.3
Static features (20-D)88.183.280.278.6
DeepTextMark (Munyer et al., 2024)65.851.247.543.9
Binoculars (Hans et al., 2024)62.748.644.941.9
RADAR (Hu et al., 2023)58.447.243.740.8
PSS + Static96.193.992.691.2
Figure 3: Window/stride sensitivity (1,500 tokens) for PSS + static. Numbers show mean AUC (%) across depths D​1–D​8.
Figure 3: Window/stride sensitivity (1,500 tokens) for PSS + static. Numbers show mean AUC (%) across depths D​1–D​8.
Table 2: Cross-Domain Transfer. AUC (%) when training on one dataset and testing on another. PSS generalizes effectively while deep learning methods collapse.
Train → TestMethodD1D3D5D8
PG-19 → CNN/DMDeepTextMark46.338.534.232.1
Binoculars44.136.833.130.9
RADAR41.835.131.529.4
PSS + Static88.685.884.783.8
CNN/DM → WikiTextDeepTextMark50.841.237.535.2
Binoculars48.939.836.234.0
RADAR46.738.234.832.6
PSS + Static93.191.290.489.7
WikiText → CNN/DMDeepTextMark43.235.431.328.9
Binoculars41.533.929.827.6
RADAR39.432.128.126.2
PSS + Static88.685.784.683.7
Figure 4: Shorter texts. Mean AUC (solid) with ±1 SD bands (shaded) over 30 random 70/30 splits. Top-left to bottom-left: AUC vs. paraphrase depth for 1,000/500/300 tokens; bottom-right: AUC vs. token length at D​7. All methods degrade with less text, but local/static features mitigate the drop and PSS + Static maintains the strongest performance across depths and lengths, including at D​7.
Figure 4: Shorter texts. Mean AUC (solid) with ±1 SD bands (shaded) over 30 random 70/30 splits. Top-left to bottom-left: AUC vs. paraphrase depth for 1,000/500/300 tokens; bottom-right: AUC vs. token length at D​7. All methods degrade with less text, but local/static features mitigate the drop and PSS + Static maintains the strongest performance across depths and lengths, including at D​7.
Table 3: Universal Classifier Performance. AUC (%) for a single classifier trained on Llama-3 + Mistral + PG-19 + D1-D3, evaluated across varied configurations.
Test ConfigurationChangedD1D3D5D8
Llama-3 + Mistral + PG-19Baseline96.193.992.691.2
Qwen2 + Mistral + PG-19LLM94.291.890.989.6
Llama-3 + Gemma + PG-19Paraphraser89.182.780.680.0
Llama-3 + Mistral + CNNDomain88.685.884.783.8
Qwen2 + Qwen2 + WikiTextALL92.690.589.287.8
Figure 5: Mix paraphrasing (Mistral ↔ Qwen), 1,500 tokens. AUC vs. depth under alternating paraphrasers.
Figure 5: Mix paraphrasing (Mistral ↔ Qwen), 1,500 tokens. AUC vs. depth under alternating paraphrasers.
Table 4: Gemma-7B-IT paraphrasing: AUC (%) vs. depth (D​1–D​8). All classifier entries use XGBoost; values are mean ± std over 30 runs.
MethodD1D2D3D4D5D6D7D8
Global z-score threshold56.50 ± 0.0054.35 ± 0.0053.75 ± 0.0053.55 ± 0.0053.25 ± 0.0053.30 ± 0.0053.05 ± 0.0053.00 ± 0.00
Local z-score (20)66.07 ± 1.4259.03 ± 1.6658.92 ± 1.9957.52 ± 2.2057.81 ± 1.6357.32 ± 1.4057.55 ± 1.5557.80 ± 1.41
Static features72.75 ± 1.8768.95 ± 1.8767.02 ± 1.2968.10 ± 1.3567.48 ± 1.7667.10 ± 1.8366.82 ± 1.5865.16 ± 1.87
PSS + Static83.51 ± 1.4377.85 ± 1.6375.98 ± 1.4576.54 ± 1.2173.69 ± 1.4973.33 ± 1.2372.92 ± 2.03
Table 5: Qwen2-7B-Instruct paraphrasing: AUC (%) vs. depth (D​1–D​8). All classifier entries use XGBoost; values are mean ± std over 30 runs.
MethodD1D2D3D4D5D6D7D8
Global z-score threshold73.25 ± 0.0069.90 ± 0.0069.00 ± 0.0068.40 ± 0.0067.90 ± 0.0067.70 ± 0.0067.35 ± 0.0066.80 ± 0.00
Local z-score (20)58.90 ± 1.6158.15 ± 1.6955.03 ± 1.7155.48 ± 1.6455.86 ± 1.6655.19 ± 1.6454.27 ± 1.6355.27 ± 1.66
Static features82.08 ± 1.4578.64 ± 1.5577.15 ± 1.5177.89 ± 1.4877.47 ± 1.5278.37 ± 1.5078.77 ± 1.4976.36 ± 1.47
PSS + Static94.67 ± 0.6892.68 ± 0.7992.38 ± 0.8292.63 ± 0.7891.90 ± 0.9190.57 ± 0.9890.47 ± 1.02
Table 6: Feature-group ablation. AUC (%) on PG-19 at 1,500 tokens. Components are added incrementally to a global z-score baseline. Every group contributes measurably and PSS provides the largest single jump, confirming that each component captures a distinct, non-redundant aspect of the watermark signal.
Feature SetD1D3D5D8
Global z-score (baseline)74.270.068.066.8
Z-score moments (6-D)83.276.574.172.0
+ Autocorrelations (8-D)85.079.376.074.4
+ Run-length stats (14-D)87.383.279.877.2
+ Run-frequency (full 20-D)88.183.280.278.6
+ PSS (full PSS + Static)96.193.992.691.2
Table 7: PSS with Different Watermarking Schemes. AUC (%) with varying greenlist ratios.
Watermark ConfigD1D3D5D8
Standard (γ=0.25)96.193.992.691.2
Stronger (γ=0.50)97.696.495.594.2
Table 8: Within-domain: Train on CNN/DailyMail (70%) → Test on CNN/DailyMail (30%). AUC (%) across paraphrase depths. All classifier entries use XGBoost; values are mean ± std over 30 runs.
MethodD1D2D3D4D5D6D7D8
Global z-score threshold74.20 ± 0.0070.45 ± 0.0069.60 ± 0.0068.85 ± 0.0068.20 ± 0.0067.70 ± 0.0067.30 ± 0.0066.80 ± 0.00
Local z-score (20)59.80 ± 1.7858.65 ± 1.8256.40 ± 1.7555.50 ± 1.7754.90 ± 1.8054.35 ± 1.8353.80 ± 1.8553.25 ± 1.88
Static features84.30 ± 1.5882.50 ± 1.6278.05 ± 1.6077.65 ± 1.6577.05 ± 1.6876.45 ± 1.7275.85 ± 1.7575.25 ± 1.78
PSS + Static95.30 ± 0.8593.50 ± 0.9292.75 ± 0.9892.35 ± 1.0591.70 ± 1.1291.15 ± 1.1890.60 ± 1.2590.05 ± 1.32
Table 9: Within-domain: Train on WikiText (70%) → Test on WikiText (30%). AUC (%) across paraphrase depths. All classifier entries use XGBoost; values are mean ± std over 30 runs.
MethodD1D2D3D4D5D6D7D8
Global z-score threshold79.85 ± 0.0077.15 ± 0.0076.45 ± 0.0075.90 ± 0.0075.45 ± 0.0075.10 ± 0.0074.80 ± 0.0074.55 ± 0.00
Local z-score (20)65.70 ± 1.5564.90 ± 1.5863.40 ± 1.6262.85 ± 1.6062.50 ± 1.6362.20 ± 1.6561.90 ± 1.6761.65 ± 1.68
Static features88.85 ± 1.4888.10 ± 1.5085.80 ± 1.4685.45 ± 1.4885.15 ± 1.5084.85 ± 1.5284.55 ± 1.5484.30 ± 1.55
PSS + Static98.45 ± 0.5597.25 ± 0.6296.85 ± 0.6896.50 ± 0.7296.15 ± 0.7895.85 ± 0.8295.55 ± 0.8595.30 ± 0.88
Table 10: Cross-domain: Train on WikiText (70%) → Test on CNN/DailyMail (30%). AUC (%) across paraphrase depths. All classifier entries use XGBoost; values are mean ± std over 30 runs.
MethodD1D2D3D4D5D6D7D8
Global z-score threshold59.80 ± 0.0057.20 ± 0.0055.95 ± 0.0055.05 ± 0.0054.40 ± 0.0053.95 ± 0.0053.60 ± 0.0053.30 ± 0.00
Local z-score (20)54.85 ± 2.0253.55 ± 2.1052.10 ± 2.1851.30 ± 2.2450.75 ± 2.2850.30 ± 2.3249.95 ± 2.3549.65 ± 2.38
Static features76.15 ± 1.8274.20 ± 1.9072.75 ± 1.9872.00 ± 2.0571.40 ± 2.1070.95 ± 2.1570.55 ± 2.1870.25 ± 2.20
PSS + Static88.60 ± 1.1287.15 ± 1.2285.70 ± 1.3085.15 ± 1.3884.60 ± 1.4584.15 ± 1.5283.90 ± 1.5883.70 ± 1.65
Table 11: Cross-domain: Train on CNN/DailyMail (70%) → Test on WikiText (30%). AUC (%) across paraphrase depths. All classifier entries use XGBoost; values are mean ± std over 30 runs.
MethodD1D2D3D4D5D6D7D8
Global z-score threshold65.55 ± 0.0063.40 ± 0.0062.40 ± 0.0061.70 ± 0.0061.20 ± 0.0060.80 ± 0.0060.50 ± 0.0060.25 ± 0.00
Local z-score (20)59.35 ± 1.7258.15 ± 1.7856.80 ± 1.8556.10 ± 1.9055.55 ± 1.9455.10 ± 1.9754.70 ± 2.0054.40 ± 2.02
Static features81.45 ± 1.5579.80 ± 1.6278.50 ± 1.6877.90 ± 1.7277.40 ± 1.7577.00 ± 1.7876.65 ± 1.8076.40 ± 1.82
PSS + Static93.10 ± 0.8592.15 ± 0.9291.20 ± 0.9890.80 ± 1.0590.40 ± 1.1290.10 ± 1.1889.85 ± 1.2589.70 ± 1.30
Table 12: Comprehensive Experimental Coverage. Performance across different datasets, LLMs, paraphrasers, and watermark settings.
DatasetLLMParaphraserSettingD1D3D5D8
PG-19Llama-3-8BMistral-7Bγ=0.2596.1%93.9%92.6%91.2%
PG-19Qwen2-7BMistral-7Bγ=0.2594.2%91.8%90.9%89.6%
CNN/DailyMailLlama-3-8BMistral-7Bγ=0.2595.3%93.2%92.3%90.7%
WikiTextLlama-3-8BQwen2-7Bγ=0.2597.5%96.2%95.8%94.8%
PG-19Llama-3-8BMistral-7Bγ=0.5097.6%96.4%95.5%94.2%
Table 13: True Positive Rate at Fixed False Positive Rates. Critical operating points for practical deployment.
FPRMethodD1D2D3D4D5D6D7D8
1%Global z-score0.420.380.350.320.300.280.260.24
Local z-score (20)0.480.440.400.370.350.330.310.29
Static features0.650.600.550.520.490.470.450.43
PSS + Static0.840.800.760.730.700.680.660.64
5%Global z-score0.580.520.470.430.400.370.350.33
Local z-score (20)0.620.570.520.480.450.420.400.38
Static features0.780.730.680.640.610.580.560.54
PSS + Static0.920.890.860.830.810.790.770.75
Table 14: Semantic Preservation and Performance. BERT similarity decreases with depth; PSS remains robust across all depths. All detection values are AUC (%).
DepthBERT Sim.PSS+StaticGlobal zDeepTextMark
D10.9296.1%74.2%58.4%
D20.8994.8%71.5%53.1%
D30.8593.9%68.7%47.6%
D40.8293.2%67.8%45.8%
D50.8092.6%66.8%43.9%
D60.7692.1%66.2%42.8%
D70.7291.6%65.8%42.0%
D80.6891.2%65.3%41.2%
Table 15: Performance Under Realistic Attacks. AUC (%) across various attack scenarios. PSS maintains robust performance.
Attack TypePSS+StaticGlobal zDeepTextMark
1-2 paraphrases (D1-D2 avg)95.4%72.8%54.6%
Manual edits (20% modified)91.8%62.7%46.3%
Manual edits (30% modified)88.9%56.4%40.2%
Chain paraphrasing (Mixed)90.6%67.1%49.1%
Table 16: Computation Time Breakdown (seconds). Mean ± std over 100 runs. PSS detection is highly efficient.
Component300 tok500 tok1000 tok1500 tok
Binary sequence extraction0.12±0.010.18±0.010.28±0.020.41±0.02
Rolling-window features0.35±0.030.58±0.040.95±0.061.45±0.08
Stability score computation0.28±0.020.46±0.030.78±0.051.18±0.07
XGBoost classification0.05±0.010.08±0.010.09±0.010.16±0.02
Feature extraction and classification0.80±0.041.30±0.052.10±0.083.20±0.11
Table 17: Deployment Trade-offs. Practical configurations balancing accuracy and latency.
ConfigurationParaphrasesInference TimeD8 AUCUse Case
Static features only00.8–3.2s83–85%High-throughput screening
PSS (minimal)120–35s89–91%Balanced deployment
PSS (full)72–4 min91–96%High-stakes verification
Baselines
Global z-score0<0.1s62–66%
DeepTextMark02–5s41–44%
Table 18: Performance under the adaptive attack of Diaa et al. (2025). AUC (%) on PG-19 at 1,500 tokens, comparing naive Mistral paraphrasing at D​1 to the DPO-optimized adaptive attack at D​1 and D​2. The adaptive paraphraser is fine-tuned to minimize the global z-score and effectively defeats it. In contrast, PSS + Static maintains >80% AUC, retaining a 30+ percentage point advantage.
NaiveAdaptive (Diaa et al.)
MethodD1D1D2
Global z-score74.252.153.6
PSS + Static96.183.280.6

Why it matters

For AI-text watermarking to be useful in practice, it has to survive normal editing like paraphrasing, and this work shows that improving the detector side alone, without touching how the watermark is generated, can close much of that gap. That makes it directly relevant to education, journalism, and content-provenance settings that need to verify whether text was AI-generated even after it has been reworded.

Terms in this paper

  • watermarking · embedding a hidden, statistically detectable pattern into AI-generated text without changing its readability
  • greenlist watermarking · a method that biases word generation toward a secretly chosen subset of the vocabulary ('green list') at each step
  • z-score · a statistic measuring how far an observation deviates from what's expected by chance, used as the classic watermark-detection signal
  • paraphrasing · rewriting text with different words while keeping the same meaning, a common way to try to remove a watermark
  • AUC (area under the ROC curve) · a score measuring how well a detector distinguishes two classes, closer to 1 means better detection

Figures we cannot republish

  • Figure 1: End-to-end PSS pipeline. Human and AI-watermarked texts undergo up to eight paraphrasing rounds, with binary sequences extracted at each iteration (D0–D8). Watermarked text maintains stable patterns across iterations while human text shows random variation. An XGBoost classifier uses these stability features alongside static features for final classification.
See the figures in the original paper →

Original abstract (English)

The widespread adoption of large language models (LLMs) has intensified the demand for principled methods to distinguish human from machine-generated text. Watermarking provides a promising avenue, yet existing detectors exhibit sharp performance deterioration under multiple paraphrasing and when applied to shorter texts. We introduce Pattern Stability Score (PSS), a novel detection framework that leverages local statistical features and stability dynamics across paraphrased variants. Specifically, the proposed method combines global and local z-score features with higher-order statistics of run-length patterns, enriched by autocorrelation signals and stability scores computed over paraphrase depth. Numerical evaluations are performed on three benchmark datasets (PG-19, CNN/DailyMail, and WikiText) using multiple LLMs (Llama-3-8B, Qwen2-7B) and paraphrasers (Mistral-7B, Qwen2-7B, Gemma-7B), systematically stress-testing robustness under up to eight rounds of paraphrasing. Compared to prior z-score thresholding baselines and some state-of-the-art deep learning methods, our approach improves detection AUC (area under the receiver operating characteristic curve) by over 10-15 percentage points across different token lengths. Additionally, extensive cross-domain experiments demonstrate that a single universal classifier generalizes across different LLMs, paraphrasers, and text domains without retraining, maintaining above 87.8% AUC even when all components differ from training.

Authors · Sina Mansouri, Mohit Marvania, Abolfazl Safikhani

Read on arXiv

Latest papers

All papers →

Latest from METAL MEDIA

Figures: Sina Mansouri et al., arXiv:2608.18102, CC BY 4.0