Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

言語処理における GAN の展開

513 views

Published on

人工知能学会主催・第75回人工知能セミナー(2018.8.27)「画像・音声・テキスト処理におけるGenerative Adversarial

Published in: Engineering

言語処理における GAN の展開

  1. 1. 言語処理における GAN の展開 小町守 <komachi@tmu.ac.jp> 首都大学東京システムデザイン学部 ※図表はそれぞれ紹介する論文からの引用 第75回人工知能セミナー 2018/08/27 「画像・音声・テキスト処理における GAN の応用」
  2. 2. • 2005.03 東京大学教養学部基礎科学科 科学史・科学哲学分科卒業 • 2010.03 奈良先端大・博士後期課程修了 博士(工学) 専門: 自然言語処理 • 2010.04〜2013.03 奈良先端大 助教(松本裕治研究室) • 2013.04〜 首都大学東京 准教授(自然言語処理研究室) • 2020.04〜 東京都立大学(予定) 自己紹介 22018/8/27 言語処理における GAN の展開
  3. 3. 深層学習の登場による 言語生成のパラダイムシフト 言語処理における GAN の展開 3 https://ai.googleblog.com/2016/09/a-neural-network-for-machine.html 2018/8/27
  4. 4. エンコーダ・デコーダモデル によるニューラル機械翻訳 今日 暑い です ね it is todayhot 入力および出力の両方が系列データ →RNN言語モデルを2つ用い、文脈を考慮して1単語ずつ生成 エンコーダ デコーダ アテンション 単語分散表現 2018/8/27 言語処理における GAN の展開 4
  5. 5. ニューラル機械翻訳による 流暢な翻訳の実現 入力 Google ニューラル 機械翻訳 Google フレーズ ベース統計翻訳 私は悲しい映画は 嫌いだ。 I dislike sad movies. I am sad movie hate. 彼は刑事だ。 He is a detective. He is a criminal. 彼が来ようが来ま いが、私は行く。 I will go whether he will come or not. He will Koyo but come Mai, but I go. 彼は目をとしてそ こに座りました。 He sat there with his eyes wide open. He sat there as the eye. 言語処理における GAN の展開 5 OpenNMT-py によるニューラル機械翻訳演習 (https://goo.gl/KmQFLM) 2018/8/27
  6. 6. ニューラル翻訳の弱点: 流暢性が高くても妥当性が低い • 消失 under-translation • 入力: ホームベーカリーの生地作りコースで生地を作 る。 • NMT: Make the dough using the dough setting. • 挿入 over-translation • 入力: 紙に包んで • NMT: Wrap the cake in the cake paper • 重複 repetition • 入力: 2時間程度圧力をかけて炊きましたら、一度、鍋を 開けて中を確認します。 • NMT: If you have time , eave to steam for about 2 hours, and open the pot, and open the pot to make sure they’re done. 言語処理における GAN の展開 62018/8/27
  7. 7. 敵対的学習を行うことで、 ニューラル言語生成を改善 2018/8/27 言語処理における GAN の展開 7
  8. 8. 目次: 言語処理における GAN 1. 系列データと GAN 2. GAN の機械翻訳への応用 3. GAN の対話への応用 4. 自然言語処理における GAN の新展開 5. まとめ 2018/8/27 言語処理における GAN の展開 8
  9. 9. 系列データと GAN 2018/8/27 言語処理における GAN の展開 9
  10. 10. GAN を自然言語の系列データ に適用する際の問題点 問題1: 系列を扱う場合 Generator の出力が離散値 なので、Discriminator の学習が困難 1. 強化学習(policy gradient)を用いて Generator が確率的な方策とみなして学習 2. Generator の出力を近似して、微分可能な形 にして学習 問題2: Discriminator として何を使えばいい? 1. CNN/RNN → より複雑なモデルへ…… 2. 何を敵対的サンプルとするか? 言語処理における GAN の展開 102018/8/27
  11. 11. 系列データと GAN • Yu et al. SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient (AAAI 2017; 初出 arXiv:1609) • Zhang et al. Feature Matching for Text Generation (ICML 2017; textGAN) • Fedus et al. MaskGAN: Better Text Generation via Filling in the ____ (ICLR 2018) 言語処理における GAN の展開 112018/8/27
  12. 12. SeqGAN: 系列データのための GAN の古典的論文 Yu et al. SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient (AAAI 2017) ポイント • 系列を扱う場合 Generator の出力が離散値なの で、Discriminator の学習が困難 →強化学習を用いて Generator を学習 • Discriminator は完全な系列しか評価できない →モンテカルロ探索を行う 言語処理における GAN の展開 122018/8/27
  13. 13. 強化学習とモンテカルロ探索で 離散的な系列データを学習 1. Generator を確率的な方策とみなして強化学 習を用いて学習 2. 各タイムステップでモンテカルロ探索を行う 2018/8/27 言語処理における GAN の展開 13
  14. 14. 将来の出力はロールアウトして モンテカルロ探索で生成・評価 2018/8/27 言語処理における GAN の展開 14
  15. 15. 中国詩(五言絶句)の生成では 事前知識なしに人間に迫る性能 2018/8/27 言語処理における GAN の展開 15
  16. 16. textGAN: 強化学習を用いずに 言語生成のための GAN の学習 Zhang et al. Feature Matching for Text Generation (ICML 2017; textGAN) ポイント • 強化学習ではなく Soft-argmax により微分可能 にして Discriminator を学習 • 離散的な単語ではなく潜在空間で最適化を行う 言語処理における GAN の展開 162018/8/27
  17. 17. 文生成の潜在空間を考慮して mode collapse 問題を回避 1. Generator: 潜在空間を考慮した LSTM 2. Discriminator: CNN 3. Maximum Mean Discrepancy (MMD) の最小化 2018/8/27 言語処理における GAN の展開 17
  18. 18. 潜在空間を考慮した LSTM による 言語生成 • 単語から文を生成する →最初の単語は潜在変数だけから生成 • Soft-argmax: Gumbel Softmax と同様、微分可能 にするためのトリック 2018/8/27 言語処理における GAN の展開 18
  19. 19. Maximum Mean Discrepancy (MMD) の最小化で勾配消失問題の軽減 • 直接𝐿 𝐺𝐴𝑁を最適化するのではなく、𝐿 𝐷と𝐿 𝐺を 交互最適化 2018/8/27 言語処理における GAN の展開 19
  20. 20. SeqGAN より生成の性能が向上し、 新しい文も生成可能 2018/8/27 言語処理における GAN の展開 20
  21. 21. 潜在空間上の2点も textGAN なら 滑らかにつないで生成できる 2018/8/27 言語処理における GAN の展開 21
  22. 22. MaskGAN: 言語生成に適した GAN の学習 Fedus et al. MaskGAN: Better Text Generation via Filling in the ____ (ICLR 2018) ポイント • エンコーダ・デコーダモデルで GAN を使って 生成するには Teacher-Forcing をしたりしないと 学習が安定しない →エンコーダをマスクしてデコード時に未知の 入力から復元できるように学習する 言語処理における GAN の展開 222018/8/27
  23. 23. ノイズが入った文も頑健にデ コードできるように学習 • Generator はエンコーダでマスクされたトーク ンをデコーダで復元するように学習 →未知の入力でも系列が出力できるようになる • Discriminator は REINFORCE アルゴリズムで学習 2018/8/27 言語処理における GAN の展開 23
  24. 24. MaskGAN によってテキストの ための GAN の学習が安定 2018/8/27 言語処理における GAN の展開 24
  25. 25. 系列データと GAN • Yu et al. SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient (AAAI 2017; 初出 arXiv:1609) • Zhang et al. Feature Matching for Text Generation (ICML 2017; textGAN) • Fedus et al. MaskGAN: Better Text Generation via Filling in the ____ (ICLR 2018) 言語処理における GAN の展開 252018/8/27
  26. 26. GAN の機械翻訳 への応用 2018/8/27 言語処理における GAN の展開 26
  27. 27. GAN の機械翻訳への応用 • Yang et al. Improving Neural Machine Translation with Conditional Sequence Generative Adversarial Nets (NAACL 2018; 初出 arXiv:1703) • Cheng et al. Towards Robust Neural Machine Translation (ACL 2018) • Yang et al. Unsupervised Neural Machine Translation with Weight Sharing (ACL 2018) 言語処理における GAN の展開 272018/8/27
  28. 28. CSGAN: GAN のニューラル機械 翻訳への応用の古典的論文 Yang et al. Improving Neural Machine Translation with Conditional Sequence Generative Adversarial Nets (NAACL 2018; 初出 arXiv:1703) ポイント • GAN をニューラル機械翻訳に適用 • Discriminator はシステムによる翻訳か人手によ る翻訳かを識別 • (arXiv のバージョン間でかなり手法が違う) 言語処理における GAN の展開 282018/8/27
  29. 29. BLEU-Reinforced Conditional Sequence GAN (BR-CSGAN) 2018/8/27 言語処理における GAN の展開 29 b: ベースラインのスコア(例: 0.5) Q: MCMC で求めた出力の BLEU スコア
  30. 30. BR-CSGAN: BLEU と discriminator を両方考慮すると性能向上 • λ = 1.0 → 普通の GAN でも効果があった • λ = 0.0 → BLEU を使うだけで discriminator を使 わない(minimum risk training と等価)と、性 能向上は少ない 2018/8/27 言語処理における GAN の展開 30
  31. 31. GAN を用いてニューラル翻訳の エンコーダの頑健性向上 Cheng et al. Towards Robust Neural Machine Translation (ACL 2018) ポイント • Discriminator はノイズが入った文と入っていな い文を識別 • ノイズが入った文からでもロバストにエンコー ドできるように学習 言語処理における GAN の展開 312018/8/27
  32. 32. 入力に摂動 (perturbation) を加え てエンコードして NMT を学習 1. 語彙的ノイズ →ランダムに位置 選択し、cos 類似 度の近い単で置換 2. 素性レベルノイズ →全ての単語の分 散表現にガウシア ンノイズを乗せる 2018/8/27 言語処理における GAN の展開 32
  33. 33. 摂動を加えることで頑健性が増 し、 BLEU スコアが有意に向上 • 同義語 (zhongfang = zhonguo; China) の置換に頑健 2018/8/27 言語処理における GAN の展開 33
  34. 34. エンコーダとデコーダの GAN で 教師なし機械翻訳のモデル改善 Yang et al. Unsupervised Neural Machine Translation with Weight Sharing (ACL 2018) ポイント • Discriminator は以下の2種類 • Local-GAN: 元言語と目的言語のどちらのエンコーダ でエンコードされたかを識別 • Global-GAN: デコーダの出力が翻訳によるものか、 それともオートエンコーダによるものか識別 • どのエンコーダからも同じ潜在空間にマッピン グできるように Generator を学習 言語処理における GAN の展開 342018/8/27
  35. 35. Local-GAN でエンコーダの更新、 Global-GAN で全体の更新 • エンコーダ、デコーダは最後の方の層だけパラ メータを共有する(単語埋め込み層は言語ごと) 2018/8/27 言語処理における GAN の展開 35
  36. 36. 2つの GAN で教師なしニューラル 機械翻訳の精度向上 2018/8/27 言語処理における GAN の展開 36
  37. 37. GAN の機械翻訳への応用 • Yang et al. Improving Neural Machine Translation with Conditional Sequence Generative Adversarial Nets (NAACL 2018; 初出 arXiv:1703) • Cheng et al. Towards Robust Neural Machine Translation (ACL 2018) • Yang et al. Unsupervised Neural Machine Translation with Weight Sharing (ACL 2018) 言語処理における GAN の展開 372018/8/27
  38. 38. GAN の対話への応用 2018/8/27 言語処理における GAN の展開 38
  39. 39. GAN の対話への応用 • Liu et al. Adversarial Learning of Neural Dialogue Generation (EMNLP 2017) • Xu et al. Neural Response Generation via GAN with an Approximate Embedding Layer (EMNLP 2018) • Liu et al. Adversarial Learning of Task-Oriented Neural Dialog Models (SIGDIAL 2018) 言語処理における GAN の展開 392018/8/27
  40. 40. 単語ごとに報酬を変えて 部分的な系列の評価をする Li et al. Adversarial Learning of Neural Dialogue Generation (EMNLP 2017) ポイント • Generator: seq2seq with attention (LSTM) • Discriminator: 階層的エンコーダ(2つの RNN) • 正解と一致する単語を予測したらニュートラル の報酬を与えたい →強化学習とモンテカルロ探索を用いて途中の 結果にも報酬を与える 言語処理における GAN の展開 402018/8/27
  41. 41. Generator の学習が不安定で出力 に多様性がない→Teacher-Forcing 2018/8/27 言語処理における GAN の展開 41
  42. 42. 強化学習で入力に対し特徴的な 生成ができる 2018/8/27 言語処理における GAN の展開 42
  43. 43. 微分可能なモデルを作り 強化学習を用いずに最適化 Xu et al. Neural Response Generation via GAN with an Approximate Embedding Layer (EMNLP 2018) ポイント • Generator: seq2seq without attention (GRU) • Discriminator: CNN • モンテカルロ探索は遅い →近似層を用意することで、サンプリングしな くても微分可能なモデルにして、強化学習を使 わない 言語処理における GAN の展開 432018/8/27
  44. 44. Generator と Discriminator は pre-train したあと GAN で更新 2018/8/27 言語処理における GAN の展開 44
  45. 45. GAN では当たり障りのない出力 より多様性のある出力が出せる 2018/8/27 言語処理における GAN の展開 45
  46. 46. タスク指向の対話モデルを GAN で敵対的に学習 Liu et al. Adversarial Learning of Task-Oriented Neural Dialog Models (SIGDIAL 2018) ポイント • Generator: LSTM による対話エージェント • Discriminator: Bi-LSTM • 強化学習では報酬を設計するのが困難 →報酬を対話から直接学習、比較的少数の学習 事例でも学習できるように 言語処理における GAN の展開 462018/8/27
  47. 47. Generator では対話行為を RNN でモデル化 • ※Discriminator は Max-pooling, Average-pooling, Attention-pooling の3つを提案 2018/8/27 言語処理における GAN の展開 47
  48. 48. GAN で少数の事例からでもタ スク指向の対話が学習できる • 左: 強化学習における報酬の設計方針と性能 • 右: Discriminator の学習に使った事例数と性能 2018/8/27 言語処理における GAN の展開 48
  49. 49. GAN の対話への応用 • Liu et al. Adversarial Learning of Neural Dialogue Generation (EMNLP 2017) • Xu et al. Neural Response Generation via GAN with an Approximate Embedding Layer (EMNLP 2018) • Liu et al. Adversarial Learning of Task-Oriented Neural Dialog Models (SIGDIAL 2018) 言語処理における GAN の展開 492018/8/27
  50. 50. 自然言語処理における GANの新展開 言語処理における GAN の展開 502018/8/27
  51. 51. Discriminator を用いたニューラル 機械翻訳モデルの評価 松村ら. 敵対的生成ネットワークを用いた機械翻 訳評価手法(言語処理学会年次大会 2018) ポイント • Discriminator はシステムの翻訳か人手の翻訳か を識別 → Discriminator の返すスコアで機械翻 訳の評価ができる • 参照訳(人手の翻訳)がなくても機械翻訳の評 価が可能 言語処理における GAN の展開 512018/8/27
  52. 52. Discriminator を用いたニューラル 対話モデルの評価 Kannan et al. Adversarial Evaluation of Dialogue Models (NIPS workshop 2016) ポイント • Discriminator はシステムの生成した応答か人手 の応答かを識別 • Discriminator は必ずしも対話の評価には使えな い(MT と違い対話は人手評価が難しい) • Discriminator のスコア高 = 長い応答、多様性の ある応答。Generator の欠点は捉えている。 言語処理における GAN の展開 522018/8/27
  53. 53. まとめ • Sequence-to-sequence に対する GAN • 強化学習とモンテカルロ探索で学習 • 離散的な出力を近似することで学習 • 言語生成への応用 • 対話生成 • 機械翻訳 • 新しい GAN の展開 • Discriminator を用いた言語生成の評価 • 言語生成と言語選択の間 言語処理における GAN の展開 542018/8/27
  54. 54. 謝辞 • 首都大学東京システムデザイン研究科博士前期 課程2年の尾形朋哉くん、松村雪桜くんに対 話・機械翻訳における GAN の論文の紹介に協 力いただきました。ありがとうございました。 2018/8/27 言語処理における GAN の展開 55

×
Save this presentationTap To Close