概要

自然言語処理における中国語と英語のAdversarial Exampleの違いについて分析し、中国語に対するblack-boxの攻撃手法の「Argot」を提案。Argotは中国語の特徴に基づき、効率的かつ人間にも読みやすい優れた敵対的な中国語の文章を生成することができる。

論文情報

公開日

2020年6月(IJCAI-PRICAI)

著者情報

Zihan Zhang(1),Mingxuan Liu(1),Chao Zhang(1, 2),Yiming Zhang(1),Zhou Li(3),Qi Li(1,2),Haixin Duan(1,2,4),Donghong Sun(1,2)

(1)Tsinghua University
(2)Beijing National Research Center for Information Science and Technology
(3)University of California Irvine
(4)Qi An Xin Group

論文情報・リンク

https://www.researchgate.net/publication/342796518_Argot_Generating_Adversarial_Readable_Chinese_Texts

新規性・差分

既存のNLP分野のAdversarial Exampleの研究のほとんどは英語に焦点が当てられていて、中国語への適用については議論されてこなかった。この論文では英語と中国語の違いを分析し、中国語の大きな特徴である表意文字、文字構成(部首など)、発音に着目した敵対的な文章生成手法Argotを提案する。提案手法であるArgotは人間が読みやすい(理解しやすい)文章を生成することが可能であり、複数の文書分類モデルの精度を落とすことに成功した。

手法

Argotの全体図を以下に示す。

Argot 全体図

Argotは以下のstepにより敵対的な文章を生成する。

  1. 文章の各単語を1つずつマスクした文章を用意する。
  2. 各文章を対象とするモデルに入力し、最も寄与する単語を取得する。
    • とにかく誤分類させたい場合(non-target attack)は、正解クラスに対する 原文の予測確率 - マスクした文の予測確率 が最も高いものが寄与する単語となる。
    • 任意のクラスtに誤分類したい場合(target attack)は クラスtに対するマスクした文の予測確率 - 原文の予測確率 が最も高いものを寄与する単語とする。
  3. 5つの変換手法をランダムに適用する。
  4. モデルに変換後の文章を入力し、誤分類できたときArgotの生成文となる。
  5. 誤分類されなかった場合、次に寄与している単語に対し4を適用する。

次に5つの敵対的変換手法を紹介する。

敵対的変換手法

Synonyms

Synonymsは英語でも用いられる手法で、単語を他の類義語に置換する。類義語は単語ベクトルの類似度ではなく、定義されたものを使用している。

  • 例1 : 嬉しい → 楽しい, 喜ばしい
  • 例2 : AI → 人工知能, アーティフィシャルインテリジェンス

Shuffle

Shuffleも英語で多く用いられる手法で、単語内の文字を入れ替える。

  • 例1 : AIセキュリティ → AキセュIティリ
  • 例2 : 株式会社 → 会社式株

Splitting-character

中国語は表意文字からなる言語で、各文字はへんやつくりから構成されている。Splitting-characterでは以下の図のように構造化された文字を分解する。(日本語でいう、神=ネ+申)

splitting character

これは機械学習のモデル側ではその単語文字を認識できなくなり、人間は少し考えるだけで読むことのできる可読性の高い攻撃手法である。

Glyph

中国語の文字は数が多く、中には似た形の文字も存在する。人間は文字を視覚的に認識するため、以下のように似た形の文字に入れ替わったとしても文章をスムーズに理解することができる。

  • 例1 : ジョーカージョー力一 (右側を平仮名にすると”じょーりきいち”)
  • 例2 : 人間ドッグ入間ドッグ (右側は”いるまどっぐ”)

英語にもこういった形が似た文字に置換する手法が存在するが、英語と比べ文字数の多い中国語のほうが置換候補となる文字が多いため、より有効だと考えられる。以下のstepで形の似た文字を見つける。

  1. 対称となる文字$c$を部首単位に分解する。
  2. 以下の変換を適応し、実際に存在する文字$c_{i}(i=1,2,..n)$を候補として取得。
    • 部首を一つ削除する (動 → 重)
    • 部首を一つほかの部首と入れ替える (動 → 功)
    • 部首を一つ追加 (動 → 働)
  3. 対象となる文字$c$と候補$c_i$を類似度を求め高いのを使用

3の2つの文字の類似度の計算にはsiamese network(文献)を用いた。
Siamese netoworkの概要を以下に示す。

siamese networkの概要図

同じCNNモデルに入力した文字画像の特徴量表現の差が小さいときに類似性が高いと判断される。

Pinyin (発音)

中国語は文字入力の際、日本語と同じように発音をもとに入力するため、タイプミスをすると発音の似たような文字となることが多い。そのため以下のように類似した発音の文字に入れ替わっても、glyph同様に文章をスムーズに理解することができる。

Pinyin
  • 日本語例 : 返信お待ちしております → 変身お待ちしております

また発音による変換は表意文字を扱う言語特有のものであり、敵対的な文章の生成にも有効である。

実験

提案手法であるArgotの評価のために、以下の2つの文書分類タスクで評価を行った。

  • ポジティブとネガティブの二値を分類する感情分類タスク(non-target attack)
  • ニュースのカテゴリーを分類するカテゴリー分類タスク(target attack)

攻撃対象のモデルには文字レベルと単語レベルのCNNベース, LSTMベースの4つのモデルを使用した。

結果

以下に感情分類モデル(non target attack)の結果を示す。

non-target attackの結果

評価にはモデルを誤分類させた成功率(S)、変更箇所(摂動を加えた部分)の平均割合(P)、1文字の変更にかかった時間(T)を用いた。Argotは1割程度の変更でほとんど誤分類させることができている。

次にカテゴリー分類(target attack)についての結果を以下に示す。

target attackの結果

それぞれほとんど100%の確率で誤分類させることができている。2つの結果から単語レベルのモデルよりも、文字レベルのほうが変更箇所が多くなっていることがわかる。これは単語レベルだと1文字の変更で単語が認識されなくなるのに対し、文字レベルだと変更後の文字も認識できることが理由だと考えられる。

貢献度の分析

本論文の提案手法のArgotの根本となる5つの敵対的変換手法に対して、貢献度の分析を行った。以下に各モデルと各タスクに対する貢献率を示す。

各敵対的変換手法の貢献度

各モデルに対してpinyin(発音)の変換手法が貢献度が高くなっている。これはpinyinによる変換は文字の意味を全く考慮しないものであるためだと考えられる。文字レベルのモデルでglyphやsplitting-characterの貢献率が低いのは、形状の似た文字、つまり表意文字の似た意味の文字に置換しているため、モデルが意味の理解できたからだと考えられる。

生成文の評価

生成文に対して、文章が読みやすいか、文章のラベル、文章の意味的スコア(0~5)の3つの観点で人手による評価を行った。結果は84%が生成文を読みやすいと考え、91%が原文と同じラベルだと判断し、平均的な文章の意味スコアは4.6となった。Argotによって生成された文章が読みやすく、意味も理解しやすいことがわかる。

防御手法

Argotの攻撃に対して2つの手法による防御を推奨してる。

  • 発音ベースの埋め込み表現を用いたモデル(文献)
    • 発音の情報を単語埋め込みの学習に用いることで発音の似た単語に近い表現を与えることができる。
    • Pinyinに対して有効な対策となる。
  • 文字の形状から埋め込み表現をえるモデル(文献)
    • 文字を画像として扱い、画像からCNNを用いて特徴抽出を行うことで、文字の見た目の微小の変化にロバストになる。
    • Glyphやsplitting-characterに対して有効な対策となる。

議論

今回は中国語の特徴を解析し、中国語に特化した敵対的攻撃手法のArgotを紹介した。日本語は中国語と同じように表意文字である漢字を扱っているため、Argotはそのまま日本語にも適応可能であると考えられる。

こういったNLP分野の分類モデルに対しての敵対的攻撃手法は、SNSなどの誹謗中傷する文章フィルタリングなどに対して行われることが多いと思われる。近年は誹謗中傷による社会問題も多くなっているため、こういった攻撃手法に対してもロバストなモデルができることを期待している。