<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Semantic Watermark on Yenslife's Blog</title><link>https://blog.yenslife.top/en/tags/semantic-watermark/</link><description>Recent content in Semantic Watermark on Yenslife's Blog</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><lastBuildDate>Tue, 22 Sep 2026 11:24:16 +0800</lastBuildDate><atom:link href="https://blog.yenslife.top/en/tags/semantic-watermark/index.xml" rel="self" type="application/rss+xml"/><item><title>SWAN Paper Notes: Semantic Watermarking with Abstract Meaning Representation</title><link>https://blog.yenslife.top/en/post/swan-semantic-watermark-paper-note/</link><pubDate>Tue, 22 Sep 2026 11:24:16 +0800</pubDate><guid>https://blog.yenslife.top/en/post/swan-semantic-watermark-paper-note/</guid><description>&lt;img src="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/fig2-overview.png" alt="Featured image of post SWAN Paper Notes: Semantic Watermarking with Abstract Meaning Representation" /&gt;&lt;h1 id="swan-semantic-watermarking-with-abstract-meaning-representation"&gt;SWAN: Semantic Watermarking with Abstract Meaning Representation
&lt;/h1&gt;&lt;ul&gt;
&lt;li&gt;ACL 2026 main&lt;/li&gt;
&lt;li&gt;Embeds the watermark signal in the semantic representation, so compared with token-level watermarks this approach is more robust to paraphrasing&lt;/li&gt;
&lt;li&gt;Produces text output carrying a semantic watermark signal by prompting the LLM with an AMR template&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;: These are my personal notes written while preparing a seminar presentation. They exist mainly to help me understand the paper and are not a rigorous paper review. There may be misunderstandings or imprecise statements. If you spot a mistake, feel free to point it out in the comments. I recommend reading this alongside the &lt;a class="link" href="https://aclanthology.org/2026.acl-long.1681/" target="_blank" rel="noopener"
 &gt;original paper&lt;/a&gt;.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;Existing watermarking methods such as SynthID-Text (or KGW-like token-level methods) and embedding-level methods are all vulnerable to paraphrasing attacks, where another LLM rewrites the watermarked text to wash out the watermark signal. This is not the first paper to embed a watermark signal using semantics, though. A problem with existing methods is that the rewritten text may have its embedding shifted, which still hurts detection performance.&lt;/p&gt;
&lt;p&gt;Actually, I have not read any embedding-level watermark papers, so I just asked ChatGPT. The gist is that the sentence embedding is used as the watermark signal; you can think of it as a different sampling granularity, not token by token.&lt;/p&gt;
&lt;p&gt;This paper uses AMR to represent sentences, but can it represent special formats like code or JSON? I wonder whether they considered this problem. And what about different languages? Let&amp;rsquo;s wait and see (TODO: come back and answer this after finishing the paper)&lt;/p&gt;
&lt;h2 id="background"&gt;Background
&lt;/h2&gt;&lt;p&gt;I only record the parts I had not seen before&lt;/p&gt;
&lt;h3 id="abstract-meaning-representation-amr"&gt;Abstract Meaning Representation (AMR)
&lt;/h3&gt;&lt;p&gt;AMR is a way of representing an abstracted sentence as a Graph, with the goal of abstracting away syntactic and lexical differences between sentences. An example makes it easier to understand. The following four sentences are constructed completely differently, yet their AMR is the same:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The boy desires the girl to believe him.&lt;/li&gt;
&lt;li&gt;The boy desires to be believed by the girl.&lt;/li&gt;
&lt;li&gt;The boy has a desire to be believed by the girl.&lt;/li&gt;
&lt;li&gt;The boy’s desire is for the girl to believe him.
You can think of all of them as: &amp;ldquo;boy wants (girl believes boy)&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="math math-block"&gt;$$\begin{align*}
1 \quad &amp;amp; (w \ / \ \text{want-01} \\
2 \quad &amp;amp; \quad :\text{ARG0} \ (b \ / \ \text{boy}) \\
3 \quad &amp;amp; \quad :\text{ARG1} \ (b2 \ / \ \text{believe-01} \\
4 \quad &amp;amp; \qquad\qquad :\text{ARG0} \ (g \ / \ \text{girl}) \\
5 \quad &amp;amp; \qquad\qquad :\text{ARG1} \ b))
\end{align*}$$&lt;/div&gt;&lt;p&gt;The AMR representation is shown in figure 1, where nodes are concepts and edges are semantic relations:
&lt;img alt="figure 1 AMR graph visualization" class="gallery-image" data-flex-basis="223px" data-flex-grow="93" height="1016" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/fig1-amr-graph.png" srcset="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/fig1-amr-graph_hu_834b939f85098e34.png 800w, https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/fig1-amr-graph.png 946w" width="946"&gt;&lt;/p&gt;
&lt;h3 id="text-watermarking"&gt;Text Watermarking
&lt;/h3&gt;&lt;p&gt;Text watermarking can be divided into the following three categories by granularity&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;token-level: apply a slight bias to the sampling distribution during decoding to embed a statistical signal. The classic KGW and the more advanced &lt;a class="link" href="https://blog.yenslife.top/en/post/synthid-text-paper-note/" &gt;SynthID-Text&lt;/a&gt; both belong here. These methods are helpless against paraphrasing and surface-level text edits.&lt;/li&gt;
&lt;li&gt;sentence-level: to improve paraphrase robustness, the watermark signal is encoded in semantic space. Similar methods include SemStamp and k-SemStamp (I definitely need to look these up later).&lt;/li&gt;
&lt;li&gt;paragraph-level: roughly two kinds, &amp;ldquo;embedding the watermark at the paragraph level&amp;rdquo; and &amp;ldquo;injecting the watermark in a black-box manner after the text is generated (post-hoc)&amp;rdquo;. PostMark is one example: it first encodes the semantics of the paragraph, selects specific watermark words from an embedding table, then has an instruction-following LLM weave them into the original text. This approach is black-box because it needs neither the Target Model&amp;rsquo;s weights nor its sampling algorithm&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And SWAN in this paper? The authors say that unlike the three above, it embeds the watermark directly into the semantic structure of the sentence.&lt;/p&gt;
&lt;h2 id="overview-of-the-framework"&gt;Overview of the Framework
&lt;/h2&gt;&lt;p&gt;&lt;img alt="figure2 Overview" class="gallery-image" data-flex-basis="384px" data-flex-grow="160" height="1482" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/fig2-overview.png" srcset="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/fig2-overview_hu_9ea2ce78f1f929b1.png 800w, https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/fig2-overview_hu_7ecc005cedf0b577.png 1600w, https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/fig2-overview.png 2372w" width="2372"&gt;&lt;/p&gt;
&lt;h3 id="amr-bank-creation"&gt;AMR Bank Creation
&lt;/h3&gt;&lt;p&gt;The authors use the MASSIVE-AMR dataset, which has about 84000 AMR graphs covering 1685 types of data query utterances&lt;/p&gt;
&lt;p&gt;The raw AMRs are then abstracted into template AMRs, for example by replacing nouns with generic placeholders; Alice might become NE (Named Entity). There are two advantages to using template AMRs&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generality: a small number of template AMRs can map to a large number of different sentences&lt;/li&gt;
&lt;li&gt;Robustness: replacing entity names reduces the chance that lexical edits destroy the watermark&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So how did they select them? To build the AMR bank, the authors go through all of MASSIVE-AMR and keep only the AMR graphs satisfying both of the following conditions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Frequency between 3 and 20 occurrences (excluding ones that are too unusual and ones that are too formulaic)&lt;/li&gt;
&lt;li&gt;At least 3 concept nodes (they do not want the AMR to be too simple)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Secret Bank &lt;span class="math math-inline"&gt;$\mathcal{B}$&lt;/span&gt; here is equivalent to the concept of the watermark&amp;rsquo;s Key, used in both Injection and Detection.&lt;/p&gt;
&lt;h3 id="watermark-injection"&gt;Watermark Injection
&lt;/h3&gt;&lt;p&gt;Before generating a sentence, a template &lt;span class="math math-inline"&gt;$g$&lt;/span&gt; is drawn from the AMR bank, and the LLM is given two inputs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Context accumulated from previously generated sentences, to maintain discourse coherence.&lt;/li&gt;
&lt;li&gt;The template &lt;span class="math math-inline"&gt;$g$&lt;/span&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The LLM is then instructed to generate text that matches the semantic structure of that template. The whole Prompt looks like this (from appendix A.1)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-plain" data-lang="plain"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;AMR (Abstract Meaning Representation) is a graph-based representation of a sentence&amp;#39;s meaning. Each node is a concept and edges represent semantic roles or relationships.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Below are some examples of template AMRs and corresponding sentences:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;{example_text}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;In the provided AMR, there are placeholders:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- &amp;#34;NE&amp;#34; for named entities (e.g., &amp;#34;Alice&amp;#34;, &amp;#34;France&amp;#34;, &amp;#34;Google&amp;#34;).
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- &amp;#34;N&amp;#34; for generic nouns (e.g., &amp;#34;a device&amp;#34;, &amp;#34;an object&amp;#34;).
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- &amp;#34;X&amp;#34; for unspecified concepts (e.g., &amp;#34;something&amp;#34;, &amp;#34;an idea&amp;#34;).
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Instructions:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- Do not write &amp;#34;NE&amp;#34;, &amp;#34;N&amp;#34;, or &amp;#34;X&amp;#34; literally. Instead, replace them with appropriate English words to form a natural, meaningful sentence.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- Ensure the generated sentence aligns with both the AMR structure and the given context.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- Do not produce multiple sentences or lists.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;- Produce exactly one coherent sentence.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;AMR:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;{chosen_template}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Context: {context}
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Please output only that one sentence.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The LLM&amp;rsquo;s output is then parsed back into an AMR Graph &lt;span class="math math-inline"&gt;$\hat{g}$&lt;/span&gt; by an AMR Parser. For every generated graph &lt;span class="math math-inline"&gt;$\hat{g}$&lt;/span&gt; we compute S2MATCH: &lt;span class="math math-inline"&gt;$S2MATCH(\hat{g},g)$&lt;/span&gt;, its similarity to the AMR template &lt;span class="math math-inline"&gt;$g$&lt;/span&gt;. The authors describe S2MATCH as a lightweight metric that takes node-level and edge-level F1 scores into account and outputs a value between 0 and 1. That is, the sentence is only accepted when &lt;span class="math math-inline"&gt;$S2MATCH(\hat{g},g)&amp;gt;\theta_{accept}$&lt;/span&gt;; otherwise it is regenerated.&lt;/p&gt;
&lt;p&gt;Because the output is influenced by the context, the LLM does not always match the template so neatly, so they set a small upper limit on the number of resampling attempts. If the limit is reached without success, the current template is abandoned and another one is drawn from the bank for generation. (Adaptive Target Switching)&lt;/p&gt;
&lt;p&gt;The full Algorithm is shown below:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Algorithm 1" class="gallery-image" data-flex-basis="145px" data-flex-grow="60" height="1228" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/algorithm1-injection.png" width="742"&gt;&lt;/p&gt;
&lt;h3 id="watermark-detection"&gt;Watermark Detection
&lt;/h3&gt;&lt;p&gt;SWAN detects a piece of text in three steps&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use an off-the-shelf AMR Parser to convert each sentence into an AMR Graph&lt;/li&gt;
&lt;li&gt;For the &lt;span class="math math-inline"&gt;$\hat{g}$&lt;/span&gt; parsed from a given sentence, compare it against all templates in the secret bank (S2MATCH) and take the maximum. If the highest similarity exceeds the threshold, mark it as a green sentence.&lt;/li&gt;
&lt;li&gt;A paragraph may have n sentences, so a one-proportion z-test is also needed. If k sentences are marked as green sentences, compute &lt;span class="math math-inline"&gt;$z = \frac{k-\lambda n}{\sqrt{n \lambda (1- \lambda)}}$&lt;/span&gt;, where &lt;span class="math math-inline"&gt;$\lambda$&lt;/span&gt; is the expected hit-rate.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The null hypothesis &lt;span class="math math-inline"&gt;$H_0$&lt;/span&gt; here is &amp;ldquo;this text was written without knowledge of the secret bank&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Below is the Paragraph-Level detection algorithm
&lt;img alt="algorithm 2" class="gallery-image" data-flex-basis="191px" data-flex-grow="79" height="1532" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/algorithm2-detection.png" srcset="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/algorithm2-detection_hu_24f6fb388d0035dc.png 800w, https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/algorithm2-detection.png 1222w" width="1222"&gt;&lt;/p&gt;
&lt;h2 id="experiments"&gt;Experiments
&lt;/h2&gt;&lt;p&gt;The experiments follow the SemStamp baseline setup on the REALNEWS subset of the C4 corpus, a Google open-source news index dataset composed of professionally written news articles. The first 250 sentences of the subset are taken as the evaluation set.&lt;/p&gt;
&lt;p&gt;Then there is the AMR bank size, which must be set carefully because it is used in both injection and detection, especially detection, which has to scan through all templates. Here they set &lt;span class="math math-inline"&gt;$|\mathcal{B}| = 50$&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;All watermark injection models use &lt;code&gt;DeepSeek-R1-Distill-Qwen-14B&lt;/code&gt;. The algorithm tries at most &lt;span class="math math-inline"&gt;$M=5$&lt;/span&gt; times and switches through at most &lt;span class="math math-inline"&gt;$T=10$&lt;/span&gt; different AMR templates per sentence. By comparison, SemStamp allows up to 100 attempts per sentence, whereas here it is only 50.&lt;/p&gt;
&lt;p&gt;For detection, they use &lt;code&gt;parse_xfm_bar_large&lt;/code&gt;, which is a model, and only then run S2MATCH.&lt;/p&gt;
&lt;p&gt;For paraphrasing attacks, they use Pegasus (dedicated to paraphrasing), Parrot (a T5-based model, meaning it is good at swapping words), and Claude 3.7 Sonnet to create the attacks. For text quality, Claude 3.7 Sonnet is used in a Zero-shot manner to evaluate Coherence, Fluency, and Diversity, i.e. LLM-as-a-Judge.&lt;/p&gt;
&lt;p&gt;The evaluation metrics can be divided into two groups: watermark effectiveness and whether text quality is affected.&lt;/p&gt;
&lt;h3 id="detection-result"&gt;Detection Result
&lt;/h3&gt;&lt;p&gt;Table 1 shows paragraph-level detection results with no rewriting at all, and the result&amp;hellip; is not actually better? The authors still spin it a bit: raw detectability is about the same as the others, so it is fine, and at least far better than SynthID.&lt;/p&gt;
&lt;p&gt;&lt;img alt="table 1 detection accuracy" class="gallery-image" data-flex-basis="280px" data-flex-grow="116" height="960" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table1-detection-accuracy.png" srcset="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table1-detection-accuracy_hu_6a3c0caeeceee7d3.png 800w, https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table1-detection-accuracy.png 1120w" width="1120"&gt;&lt;/p&gt;
&lt;p&gt;Table 2 shows performance under attack, and this is where SWAN&amp;rsquo;s advantage shows, because SWAN&amp;rsquo;s watermark signal is the AMR structure of the sentence itself, so even after rewriting it does not change much. Other purely semantic approaches may drift under rewriting.&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="951px" data-flex-grow="396" height="578" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table2-paraphrase-robustness.png" srcset="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table2-paraphrase-robustness_hu_62cab405ae63b1c9.png 800w, https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table2-paraphrase-robustness_hu_339d2faee7900a32.png 1600w, https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table2-paraphrase-robustness.png 2292w" width="2292"&gt;&lt;/p&gt;
&lt;h3 id="effect-of-amr-bank-size"&gt;Effect of AMR-Bank Size
&lt;/h3&gt;&lt;p&gt;Intuitively, a larger bank size covers more semantic patterns, but false positives could likewise be higher, because the LLM might just happen to generate an AMR structure similar to a secret bank template. Experiments here found that 800 and 50 are about the same, so you cannot say a bigger bank means higher AUC. The authors say performance should be the main consideration when setting the size. But honestly I find this rather puzzling. Why would that be?&lt;/p&gt;
&lt;p&gt;&lt;img alt="Table 3 effect of AMR-bank size" class="gallery-image" data-flex-basis="347px" data-flex-grow="144" height="780" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table3-amr-bank-size.png" srcset="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table3-amr-bank-size_hu_bdbff065819f206b.png 800w, https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table3-amr-bank-size.png 1128w" width="1128"&gt;&lt;/p&gt;
&lt;h3 id="text-quality-evaluation"&gt;Text Quality Evaluation
&lt;/h3&gt;&lt;p&gt;Then Claude scores the text produced by these methods, and the authors say SWAN is actually on par in quality with the other watermarking methods. The authors say that being on par while having much stronger paraphrase robustness is great.
&lt;img class="gallery-image" data-flex-basis="884px" data-flex-grow="368" height="622" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table4-text-quality.png" srcset="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table4-text-quality_hu_76d42e2116e168e8.png 800w, https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table4-text-quality_hu_e990405a22084f75.png 1600w, https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table4-text-quality.png 2292w" width="2292"&gt;&lt;/p&gt;
&lt;h3 id="qualitative-examples"&gt;Qualitative Examples
&lt;/h3&gt;&lt;p&gt;Qualitative analysis&lt;/p&gt;
&lt;p&gt;SWAN&amp;rsquo;s high example, although judged High, still has the repeated &amp;ldquo;Vote for &amp;hellip; Vote for &amp;hellip;&amp;rdquo;. The Low one is even worse, what is with all the Johns. SemStamp&amp;rsquo;s Low just looks a bit unnatural, while k-SemStamp has repeated information and odd punctuation.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Table 5 actual examples generated by these methods, qualitative analysis" class="gallery-image" data-flex-basis="352px" data-flex-grow="146" height="1556" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table5-qualitative-examples.png" srcset="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table5-qualitative-examples_hu_832e6559fb11d856.png 800w, https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table5-qualitative-examples_hu_252ebb1f685965d0.png 1600w, https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/table5-qualitative-examples.png 2286w" width="2286"&gt;&lt;/p&gt;
&lt;h3 id="sampling-efficiency"&gt;Sampling Efficiency
&lt;/h3&gt;&lt;p&gt;Like other sentence-level algorithms, SWAN also relies on rejection sampling. Computing &lt;span class="math math-inline"&gt;$250 \times 5 = 1250$&lt;/span&gt; sentences, they conclude that 17.7 trials are needed on average. By comparison, SemStamp needs only 13.8 on average. Figure 3 shows the full distribution: 42% of sentences are accepted within 10 attempts, and 54% within 15. The peak at 46 to 50 corresponds to sentences that nearly exhaust the sampling budget (sentences that cannot possibly match the AMR template; in an Agent setting I think these would be tool-call outputs)&lt;/p&gt;
&lt;p&gt;The authors say future work could do context-aware template selection instead of random selection, which might also reduce the number of inferences.
&lt;img alt="Figure 3 rejection sampling trials" class="gallery-image" data-flex-basis="342px" data-flex-grow="142" height="780" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/fig3-rejection-sampling-trials.png" srcset="https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/fig3-rejection-sampling-trials_hu_dbe68035fe6fc8c8.png 800w, https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/fig3-rejection-sampling-trials.png 1112w" width="1112"&gt;&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;We introduced SWAN, a novel semantic watermarking framework that embeds robust, paraphrase-resistant signals into AMR representations. The authors propose SWAN, a new semantic watermarking framework that embeds signals into the AMR representation.&lt;/li&gt;
&lt;li&gt;Empirically, it outperforms token-level and embedding-based watermark baselines in paraphrase robustness, while maintaining strong text fluency and naturalness. Empirically, SWAN&amp;rsquo;s paraphrase robustness is the best.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some limitations&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The AMR Parser itself makes mistakes&lt;/li&gt;
&lt;li&gt;How to securely manage the Secret Bank?&lt;/li&gt;
&lt;li&gt;Only works for English news&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="my-thoughts"&gt;My Thoughts
&lt;/h2&gt;&lt;p&gt;For code or JSON output, this does not seem to be covered well, right? And it is even less suitable for Agent scenarios. The number of inferences is also a problem: the cost of one LLM forward pass is acceptable, but many is not.&lt;/p&gt;
&lt;p&gt;In Related Work the authors mention that early linguistic steganography also hid information via syntax trees, which is very similar to SWAN&amp;rsquo;s concept. I should be able to make good use of this. I feel there must be some relationship across files in an Agentic System that I could use to hide information.&lt;/p&gt;</description></item></channel></rss>