<?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 海狸大師部落格</title><link>https://blog.yenslife.top/tags/semantic-watermark/</link><description>Recent content in Semantic Watermark on 海狸大師部落格</description><generator>Hugo -- gohugo.io</generator><language>zh-Hant-TW</language><lastBuildDate>Tue, 22 Sep 2026 11:24:16 +0800</lastBuildDate><atom:link href="https://blog.yenslife.top/tags/semantic-watermark/index.xml" rel="self" type="application/rss+xml"/><item><title>SWAN 論文筆記：Semantic Watermarking with Abstract Meaning Representation</title><link>https://blog.yenslife.top/post/swan-semantic-watermark-paper-note/</link><pubDate>Tue, 22 Sep 2026 11:24:16 +0800</pubDate><guid>https://blog.yenslife.top/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 論文筆記：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;把 watermark 訊號 embed 在 semantic representation，所以相較 token level 的 watermark，這種方法的抗 paraphrasing 能力更好&lt;/li&gt;
&lt;li&gt;用 prompt (AMR template) llm 的方式來產生具有 semantic watermark 訊號的 text output&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;免責聲明&lt;/strong&gt;：這篇是我準備 seminar 報告時整理的個人筆記，主要是幫助自己理解論文，不是嚴謹的論文導讀。內容可能有理解錯誤或不精確的地方，如果發現錯誤歡迎在留言區指正。閱讀時建議搭配&lt;a class="link" href="https://aclanthology.org/2026.acl-long.1681/" target="_blank" rel="noopener"
 &gt;論文原文&lt;/a&gt;一起看。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;現有的 Watermark 方法像是 SynthID-Text (或類似 KGW 的那類 token-level 的方法) 以及 embedding-level 的方法，都很容易受到 paraphrasing 攻擊，就是用另一個 LLM 去改寫原本具有 watermark 訊號的文字，藉此將 watermark 訊號洗掉。不過這篇也不是第一個利用語義來嵌入 watermark 訊號的論文，現有的方法會遇到一個問題是，被改寫的文字可能發生 embedding 被位移的情況，那還是會影響偵測的效能。&lt;/p&gt;
&lt;p&gt;不過其實我也沒看過 embedding-level 的 watermark 論文，剛剛問了一下 ChatGPT，大意就是把句子的 embedding 當作 watermark 訊號，可以想成 sample 的精細度不同，不是逐 token 的。&lt;/p&gt;
&lt;p&gt;不過這篇用 AMR 來表示句子，他有辦法表示程式碼或者 JSON 之類的特殊格式嗎？不知道他有沒有考慮到這個問題。以及不同語言的問題，這個我們拭目以待 (TODO: 看完回來回答這邊)&lt;/p&gt;
&lt;h2 id="background"&gt;Background
&lt;/h2&gt;&lt;p&gt;這邊只記錄一些我沒看過的部分&lt;/p&gt;
&lt;h3 id="abstract-meaning-representation-amr"&gt;Abstract Meaning Representation (AMR)
&lt;/h3&gt;&lt;p&gt;AMR 是一種以圖 (Graph) 去表示抽象過後的句子的方式，目的是抽象掉句子的語法 (syntactic) 與詞彙 (lexical) 差異。直接舉例子比較好懂，以下四個句子的組合方式完全不同，但是 AMR 卻是相同的：&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.
可以想成都是：「boy wants (girl believes boy)」&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;AMR 表示如 figure 1 所示，這邊 node 表示各種 concepts，edges 則是語意關聯：
&lt;img alt="figure 1 AMR graph 可視化" 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;文字浮水印主要可以根據粒度 (granularity) 的不同，分成以下三類&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;token-level：在 decoding 過程對 sampling distribution 施加輕微的 bias，把統計訊號嵌入進去。傳統的 KGW 和更進階的 &lt;a class="link" href="https://blog.yenslife.top/post/synthid-text-paper-note/" &gt;SynthID-Text&lt;/a&gt; 都屬於這類。這種方法對 paraphrasing 和字面上的文字修改沒轍。&lt;/li&gt;
&lt;li&gt;sentence-level：為了提高抗改寫能力，把 watermark 訊號 encode 在語意空間，類似的方法有 SemStamp 和 k-SemStamp (之後一定要找來看一下)。&lt;/li&gt;
&lt;li&gt;paragraph-level：大概又可以分成兩種「在 paragraph level 嵌入浮水印」以及「在文字生成後，以 black-box 的方式注入浮水印 (post-hoc)」。像 PostMark 就是其中之一，他會先對段落的語意進行 encoding，然後從一個 embedding table 選出特定的 watermark words，再讓一個 instruction-following LLM 編入原本的文字中。這樣的方式就屬於黑箱的，因為不需要取得 Target Model 的權重甚至是 sampling algorithm&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;至於這篇的 SWAN 呢？作者說不同於上述三種，他直接將 watermark 嵌入句子的語意結構中。&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;作者用 MASSIVE-AMR 資料集，有大約 84000 個 AMR graph 涵蓋 1685 種 資料查詢型語句&lt;/p&gt;
&lt;p&gt;然後把原始 AMR 抽象成 template AMR，像是把名詞替換成通用的 placeholder，像是 Alice 可能會被變成 NE (Name Entity)。之所以要用 template AMRs 有兩個優點&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generality：少量的 template AMR 就可以對應到大量不同的句子&lt;/li&gt;
&lt;li&gt;Robustness：透過替換掉實體的名稱，可以降低詞彙修改破壞浮水印的可能性&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;那他們怎麼選的呢？為了建立 AMR bank，作者把 MASSIVE-AMR 走訪完畢，只保留符合以下兩種條件的 AMR graph：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;頻率出現在 3 ~ 20 次 (排除太特別的和太制式化的)&lt;/li&gt;
&lt;li&gt;必須至少出現 3 個 concept nodes (不希望 AMR 太簡單)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這邊的 Secret Bank &lt;span class="math math-inline"&gt;$\mathcal{B}$&lt;/span&gt; 就等同於這個 watermark 的 Key 的概念，會在 Injection 以及 Detection 的時候用到。&lt;/p&gt;
&lt;h3 id="watermark-injection"&gt;Watermark Injection
&lt;/h3&gt;&lt;p&gt;要生成一句話之前，會從 AMR bank 抽出一個 template &lt;span class="math math-inline"&gt;$g$&lt;/span&gt;，然後提供 LLM 兩個輸入：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;先前已生成句子累積的 Context，用來維持 discourse coherence。&lt;/li&gt;
&lt;li&gt;template &lt;span class="math math-inline"&gt;$g$&lt;/span&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;然後指示 LLM 生成符合該 template 語意結構的文字，整個 Prompt 長這樣 (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;然後這個 LLM 產生的輸出，會經過一個 AMR Parser 解析回一個 AMR Graph &lt;span class="math math-inline"&gt;$\hat{g}$&lt;/span&gt;。對每一個生成出的 graph &lt;span class="math math-inline"&gt;$\hat{g}$&lt;/span&gt; 我們都會計算 S2MATCH：&lt;span class="math math-inline"&gt;$S2MATCH(\hat{g},g)$&lt;/span&gt;，即它與 AMR template &lt;span class="math math-inline"&gt;$g$&lt;/span&gt; 的相似度。這邊作者描述 S2MATCH 是一個 lightweight metric，會參考 node-level 和 edge-level 的 F1 score，然後輸出 0 ~ 1 的數值。也就是說只有在 &lt;span class="math math-inline"&gt;$S2MATCH(\hat{g},g)&amp;gt;\theta_{accept}$&lt;/span&gt; 這句話才會被接受，否則就重新生成一次。&lt;/p&gt;
&lt;p&gt;又因為受到 context 影響，LLM 的輸出不會每次都這麼剛好符合 template，所以他會設定一個小的 resampling 次數上限，如果到達上限還沒成功就放棄目前的 template 從 bank 再選一個出來生成。(Adaptive Target Switching)&lt;/p&gt;
&lt;p&gt;完整的 Algorithm 可以參考下圖：&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 透過三個步驟來偵測一段文字&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;使用現成的 AMR Parser 將句子的每一句話轉成 AMR Graph&lt;/li&gt;
&lt;li&gt;對某一句子 parse 得到的 &lt;span class="math math-inline"&gt;$\hat{g}$&lt;/span&gt; ，它會把 secret bank 的所有 templates 進行比較 (S2MATCH)，然後取最大值。如果最高相似度超過閾值，那就將它標記為 green sentence。&lt;/li&gt;
&lt;li&gt;一個 paragraph 可能有 n 句，所以還需要 one-proportion z-test 來檢定。若有 k 句被標記為 green sentence，計算 &lt;span class="math math-inline"&gt;$z = \frac{k-\lambda n}{\sqrt{n \lambda (1- \lambda)}}$&lt;/span&gt; ，其中 &lt;span class="math math-inline"&gt;$\lambda$&lt;/span&gt; 是 expected hit-rate。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;這邊虛無假設 &lt;span class="math math-inline"&gt;$H_0$&lt;/span&gt; 為「這段文字是在不知道 secret bank 的情況寫出來的」&lt;/p&gt;
&lt;p&gt;以下是 Paragraph-Level 的 detection 演算法
&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;實驗沿用 SemStamp baseline 的設定，在 C4 corpus 的 REALNEWS subset，這是一個 Google 開源的新聞索引資料集，專業撰寫的新聞文章組成。取 subset 的前 250 個句子作為 evaluation set。&lt;/p&gt;
&lt;p&gt;然後是 AMR bank 的大小，要小心設定，因為這個在 injection 和 detection 都會用到，尤其是 detection 要掃過所有 template。這邊他們設定 &lt;span class="math math-inline"&gt;$|\mathcal{B}| = 50$&lt;/span&gt;。&lt;/p&gt;
&lt;p&gt;所有的 watermark injection model 都使用 &lt;code&gt;DeepSeek-R1-Distill-Qwen-14B&lt;/code&gt;，演算法的次數是最多嘗試 &lt;span class="math math-inline"&gt;$M=5$&lt;/span&gt; 次，每一句最多換 &lt;span class="math math-inline"&gt;$T=10$&lt;/span&gt; 個不同的 AMR template。相較之下 SemStamp 每一句最多是 100 次嘗試，這邊只有 50 次。&lt;/p&gt;
&lt;p&gt;偵測的部分，用 &lt;code&gt;parse_xfm_bar_large&lt;/code&gt;，這是一個模型，接著才做 S2MATCH。&lt;/p&gt;
&lt;p&gt;改寫攻擊 (paraphrasing) 的部分，用 Pegasus (專門用來改寫)、Parrot (T5-based model，表示很會抽換詞)、Claude 3.7 Sonnet 來製造改寫攻擊，文字品質的部分則採用 Claude 3.7 Sonnet 以 Zero-shot 的方式來評估 Coherence、Fluency、Diversity，就是 LLM-as-a-Judge。&lt;/p&gt;
&lt;p&gt;評估指標可以分為 watermark 的效果，以及是否影響文字品質兩個。&lt;/p&gt;
&lt;h3 id="detection-result"&gt;Detection Result
&lt;/h3&gt;&lt;p&gt;Table 1 這邊顯示的是在完全沒 rewrite 的情況下，paragraph-level 的偵測結果，結果&amp;hellip;也沒有比較好呀？作者還是有硬凹一下的，就是 raw detectability 和其他的差不多，所以也還好啦，至少遠好於 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 則是受到攻擊後的表現，這邊才展現了 SWAN 的優勢，因為這 SWAN 的浮水印訊號是這句話本身的 AMR 結構，即使改寫了也不會差太多。其他純語意的方式就可能受到改寫而偏掉。&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;直覺去想，如果 bank size 大，那就可以涵蓋更多種語意的 pattern，但同樣的這樣 false positive 也可能更高，因為有可能只是 LLM 偶然生成和 secret bank template 相似的 AMR 結構而已。這邊做實驗發現 800 和 50 差不多，所以也不能說 bank 越高 AUC 越高，作者說在設定 size 的時候應該考慮效能比較重要。但老實說我覺得挺沒道理的，為啥會這樣啊？&lt;/p&gt;
&lt;p&gt;&lt;img alt="Table 3 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;然後是 Claude 對這幾種方法產生的文字去打分數，作者說 SWAN 和其他 watermark 方法其實是品質相當的。作者說在更強的抗改寫能力情況，還能和他們相當，很棒棒喔。
&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;質性分析&lt;/p&gt;
&lt;p&gt;SWAN 的 high 那句，雖然被判定 High 但還是有重複的「Vote for &amp;hellip; Vote for &amp;hellip;」。然而 Low 就更爛了，一堆 John 是怎樣。SemStamp 的 Low 就是看起來有點不自然，k-SemStamp 則是有重複資訊，奇怪的標點。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Table 5 這些方法生成的實際範例，質性分析" 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;如同其他 sentence-level algorithm，SWAN 也依賴 rejection sampling。算了 &lt;span class="math math-inline"&gt;$250 \times 5 = 1250$&lt;/span&gt; 個 sentence 最後得出平均要 17.7 trials 的結論。相較之下 SemStamp 平均只需要 13.8 次。圖三可以看到完整分佈，42% 的句子會在 10 次嘗試內被接受，54% 的句子在 15 次內被接受。46 ~ 50 的高峰，對應到那些幾乎耗盡 sampling budget 的句子 (就是不可能符合 AMR template 的句子，如果是 Agent 的情況我覺得就是工具呼叫那些輸出)&lt;/p&gt;
&lt;p&gt;作者說未來可以做 context-aware template selection 而不是這樣 random 選，或許也可以降低 inference 次數。
&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. 作者提出 SWAN 一種新的 semantic watermarking framework，可以將訊號嵌入 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. 實驗上，SWAN 的抗改寫攻擊是最卓越的&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一些限制&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AMR Parser 本身會出錯&lt;/li&gt;
&lt;li&gt;如何安全管理 Secret Bank？&lt;/li&gt;
&lt;li&gt;只有英文新聞有用&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="我的想法"&gt;我的想法
&lt;/h2&gt;&lt;p&gt;針對程式碼、JSON 輸出，這類的好像沒有辦法很好涵蓋呀？以及 Agent 的情境更不適合了。還有 inference 次數也是個問題，一次 LLM forward 的成本可以接受但多次就不行了。&lt;/p&gt;
&lt;p&gt;在 Related Work 作者有提到早期的語言隱寫術 (linguistic steganography) 也是透過語法樹的方式來隱藏訊息，和 SWAN 的概念很像。我應該也可以好好利用這個東東，感覺 Agentic System 跨檔案之間一定有什麼關聯，是我可以藏資訊用的。&lt;/p&gt;</description></item></channel></rss>