Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Let's generate sentences with BERT

36e1fb3501914495b3d3366729d7a787?s=47 payanotty
January 06, 2022
210

Let's generate sentences with BERT

connpassで実施したセミナーの資料になります。

https://studyco.connpass.com/event/234519/

36e1fb3501914495b3d3366729d7a787?s=128

payanotty

January 06, 2022
Tweet

Transcript

  1. BERTで文章生成してみよう
 ~なろう風タイトル生成モデル~
 早野康太


  2. 自己紹介
 • 名前
 ◦ 早野 康太
 • お仕事
 ◦ 自然言語モデルの改善


    • 趣味
 ◦ 猫、犬
 ▪ YouTube
 ◦ ゲーム
 ▪ 音ゲ、ウマ娘、ギャルゲ
 ◦ アニメ
 ▪ 幅広く

  3. アジェンダ
 • BERT紹介
 ◦ 自然言語処理とは
 ◦ Transformer 
 ◦ TransformerからBERTへ


    
 • なろう風タイトル生成モデル

  4. BERT紹介


  5. 自然言語処理
 • 深層学習で「ことば」を処理する
 ◦ 翻訳
 ▪ Google翻訳
 ▪ DeepL
 ◦

    質問応答
 ▪ Alexa
 ◦ 文章生成
 ▪ AIのべりすと
 BERT紹介

  6. 最近のAIはすごい
 • AIのべりすと
 ◦ 入力した文章の続きをAIが
 書いてくれる
 出典: https://ai-novel.com 
 吾輩は猫である。名前はまだない。

    BERT紹介

  7. 最近のAIはすごい
 • AIのべりすと
 ◦ 入力した文章の続きをAIが
 書いてくれる
 
 出典: https://ai-novel.com 


    吾輩は猫である。名前はまだない。 そんな冗談が脳裏をよぎるほど、その日、俺の 気分は沈んでいた。 「……」 時刻は午前十一時。場所は近所の公園だ。休 日なだけあってそれなりに人通りもあるが、遊 具で遊ぶ子供の姿はない。皆一様にベンチに 腰掛けて、何やら物思いに耽っているようだ。 BERT紹介

  8. Transformer 
 • Attention Is All You Need (Łukasz Kaiser

    et al., 2017)
 ◦ 文章の単語同士の関連度を測る (Attention) 機構を組み込むことで
 自然言語処理モデルの性能が大きく向上
 BERT紹介

  9. • Attention Is All You Need (Łukasz Kaiser et al.,

    2017)
 ◦ 文章の単語同士の関連度を測る (Attention) 機構を組み込むことで
 自然言語処理モデルの性能が大きく向上
 Transformer 
 チノ
 ちゃん
 かわいい
 推し
 は
 誰
 ?
 入 力 文
 参考情報
 チノ
 ちゃん
 以外
 ありえん
 BERT紹介

  10. • Attention Is All You Need (Łukasz Kaiser et al.,

    2017)
 ◦ 文章の単語同士の関連度を測る (Attention) 機構を組み込むことで
 自然言語処理モデルの性能が大きく向上
 Transformer 
 チノ
 ちゃん
 かわいい
 推し
 は
 誰
 ?
 入 力 文
 参考情報
 チノ
 ちゃん
 以外
 ありえん
 BERT紹介

  11. • What is 関連度?
 ◦ 単語をベクトルで表した時の内積
 ◦ ベクトルの向いている「方向の近さ」を表す
 Transformer 


    チ ノ 
 かわいい
 θ チノ・かわいい = |チノ||かわいい|cosθ 【Character】チノ - 「ご注文はうさぎですか?」シリーズサイト チノちゃんって誰だよ? BERT紹介

  12. • Attention Is All You Need (Łukasz Kaiser et al.,

    2017)
 ◦ 文章の単語同士の関連度を測る (Attention) 機構を組み込むことで
 自然言語処理モデルの性能が大きく向上
 チノ
 ちゃん
 かわいい
 推し
 は
 誰
 ?
 入 力 文
 参考情報
 チノ
 ちゃん
 以外
 ありえん
 Transformer 
 BERT紹介
 Query
 Target

  13. Transformer 
 BERT紹介
 • Query (Q)は行列
 • Key (K), Value

    (V) はいずれもベクトルを並べて行列にしたもの
 Key, Value: {
 key1: value1,
 key2: value2,
 …
 }

  14. Transformer 
 BERT紹介
 • クエリを元に 辞書から 索引しているイメージ • 特にQ, K,

    Vにすべて同じ値を用 いるSelf-Attention が用いられる 汚い手書きでゴメンナサイ
  15. • Bidirectional Encoder Representations from Transformers
 ◦ BERT: Pre-training of

    Deep Bidirectional Transformers for Language Understanding
 ◦ Transformerによる双方向のエンコード表現
 ▪ Transformerモデルの一部分を利用したモデル
 ◦ Googleが2018年に発表
 • 当時の自然言語処理タスクの最高記録を軒並み塗り替えた
 • 転移学習 (finetuning) により 
 あらゆる自然言語処理タスクに応用可能な汎用性の高さ
 
 TransformerからBERTへ
 BERT紹介

  16. BERTのアーキテクチャ
 BERT紹介
 Embedding
 Attention
 Attention
 Output
 Sentence
 トークナイズされた文章
 固定長のベクトルに埋め込み
 ×12層のSelf-Attention


    固定長のベクトル

  17. BERTのアーキテクチャ
 BERT紹介
 Embedding
 Attention
 Attention
 Output
 Sentence
 トークナイズされた文章
 固定長のベクトルに埋め込み
 ×12層のSelf-Attention


    固定長のベクトル
 ご注文はうさぎですか?
 ご, 注文, は, うさぎ, ですか, ?
 0, 1, 2, 3, 4, 5
 形態素解析
 トークンID化
 E 0 , E 1 , E 2 , E 3 , E 4 , E 5 
 ベクトル化

  18. 双方向の意味
 BERT紹介
 ご
 注文
 は
 うさぎ
 ですか
 ?
 T 1

    双方向の文脈を見て 埋め込みを出力する

  19. 双方向の意味
 BERT紹介
 ご
 注文
 は
 うさぎ
 ですか
 ?
 注文
 の


    多い
 料理
 店
 T 1 T 2 双方向の文脈を見て 埋め込みを出力する

  20. • Masked Languege Model
 ◦ 単語単位での文脈理解
 ◦ ランダムに文章の一部をマスクして学習する 
 BERTの事前学習

    (pretraining)
 チノ
 ちゃん
 かわい
 すぎて
 川
 に
 なった
 [MASK]
 ちゃん
 かわい
 すぎて
 [MASK]
 に
 なった
 [MASK]に入る単語を予測
 BERT紹介

  21. • Masked Languege Model
 ◦ 単語単位での文脈理解
 • Next Sentence Prediction


    ◦ 文章単位での文脈理解 
 BERTの事前学習 (pretraining)
 チノ
 ちゃん
 かわい
 すぎて
 川
 に
 なった
 そう
 は
 ならん
 やろ
 2つの文章が連続するかどうかを予測
 BERT紹介

  22. • 事前学習モデルを、解きたいタスクに合わせてチューニング
 BERTの転移学習 (finetuning)
 Pretrained
 BERT Model
 Question
 Answering
 Named


    Entity
 Recognition
 Sentiment
 Analysis
 Text
 Summarization
 BERT紹介

  23. なろう風タイトル生成モデル


  24. • 文章を入力したら
 なろう風のタイトルを生成してみたい
 ◦ BERTを転移学習(fine-tuning)して文章生成モデルを作ってみる
 
 
 やりたいこと
 BERTで
 あそんでみた


  25. • 「小説家になろう」にありがちなタイトル
 ◦ 異世界転生しがち
 ▪ 無職転生~異世界行ったら本気出す
 
 ◦ 魔王とか勇者とか入りがち
 ▪

    盾の勇者の成り上がり
 ▪ 魔王様、リトライ!
 
 ◦ めっちゃ説明してくれるじゃん
 ▪ (この世界はもう俺が救って富と権力を手に入れたし、女騎士や女 魔王と城で楽しく暮らしてるから、俺以外の勇者は)もう異世界に 来ないでください。
 なろう風とは?
 BERTで
 あそんでみた

  26. • 日本語BERT
 ◦ 東北大の乾研究室が公開している事前学習済みモデル
 ▪ 日本語Wikipediaの約1700万テキストで学習したもの
 ▪ https://huggingface.co/cl-tohoku
 
 


    
 モデル
 BERTで
 あそんでみた
 Encoder
 BERT
 Input
 ご注文は
 うさぎですか?
 Decoder
 BERT
 Output
 うさぎを注文したら
 異世界に
 転生した件について

  27. BERTのアーキテクチャ
 Embedding
 Attention
 Attention
 Output
 Sentence
 トークナイズされた文章
 固定長のベクトルに埋め込み
 固定長のベクトル
 BERTで


    あそんでみた
 ×12層のSelf-Attention

  28. • 「小説家になろう」からAPIで取得したタイトルとあらすじのペア
 ◦ 合計約10万件
 • あらすじを入力として、タイトルをラベルとして使用した
 
 
 
 学習データ


    BERTで
 あそんでみた
 Input
 女の子たちの
 日常を描く
 Model
 Output
 きんいろ
 モザイク
 ご注文は
 うさぎですか?
 Label
 Loss

  29. • 実行環境
 ◦ Windows(WSL2)
 ◦ CPU:
 ▪ AMD Ryzen9 3900


    ▪ メモリ: 32GB
 ◦ GPU:
 ▪ NVIDIA GeForce RTX 3070
 ▪ メモリ: 8GB
 • 16GB以上あった方がいい 
 • 学習時間
 ◦ 50 hour (/13エポック)
 
 実行環境や学習パラメータなど
 BERTで
 あそんでみた
 ハイパーパラメータ
 値
 Epochs
 13
 Learning rate
 5e-5
 Batch size
 4
 Gradient Accumulation Steps
 16
 Scheduler
 Linear
 Warmup fraction
 0.06

  30. タイトル生成してみる
 BERTで
 あそんでみた
 あらすじ
 かつてこの世の全てを手に入れた男、海賊王ゴールド・ロジャー。
 彼が遺した「ひとつなぎの大秘宝(ワンピース)」をめぐり、
 幾多の海賊達が覇権を賭けて争う「大海賊時代」が到来した。
 
 ※Wikipediaより引用

  31. タイトル生成してみる
 BERTで
 あそんでみた
 あらすじ
 かつてこの世の全てを手に入れた男、海賊王ゴールド・ロジャー。
 彼が遺した「ひとつなぎの大秘宝(ワンピース)」をめぐり、
 幾多の海賊達が覇権を賭けて争う「大海賊時代」が到来した。
 
 生成されたタイトル
 ゴールド・オーク


    ~1億年かけてワンピースを作ろうとしたら、
 いつのまにか大海賊時代に巻き込まれました!?~
 ※Wikipediaより引用
  32. タイトル生成してみる
 BERTで
 あそんでみた
 あらすじ
 時は大正。竈門炭治郎は、家族とともに山でつつましくも幸せな日々をおくって いた。ある日、町で炭を売りに出かけた炭治郎が山に戻ると、家族は鬼に襲わ れ血だまりの中で絶命していた。
 
 
 ※Wikipediaより引用

  33. タイトル生成してみる
 BERTで
 あそんでみた
 あらすじ
 時は大正。竈門炭治郎は、家族とともに山でつつましくも幸せな日々をおくって いた。ある日、町で炭を売りに出かけた炭治郎が山に戻ると、家族は鬼に襲わ れ血だまりの中で絶命していた。
 
 
 生成されたタイトル


    炭治郎の異世界血風録(三十と一夜短編第60回)
 ※Wikipediaより引用
  34. タイトル生成してみる
 BERTで
 あそんでみた
 あらすじ
 推理作家の父と元女優の母を持ち、シャーロック・ホームズを敬愛する高校生 探偵工藤新一は、大人顔負けの推理力と洞察力を併せ持ち、「日本警察の救 世主」と言われるまでの活躍をみせていた。
 
 
 ※Wikipediaより引用

  35. タイトル生成してみる
 BERTで
 あそんでみた
 あらすじ
 推理作家の父と元女優の母を持ち、シャーロック・ホームズを敬愛する高校生 探偵工藤新一は、大人顔負けの推理力と洞察力を併せ持ち、「日本警察の救 世主」と言われるまでの活躍をみせていた。
 
 
 生成されたタイトル


    探偵新一郎の事件簿
 ~第一次大戦は狂信的な雰囲気を持っていたので、とりあえず自由に生きよ うと思います!!~
 ※Wikipediaより引用
  36. タイトル生成してみる
 BERTで
 あそんでみた
 タイトル
 名探偵コナン


  37. タイトル生成してみる
 BERTで
 あそんでみた
 タイトル
 名探偵コナン
 生成されたタイトル
 名探偵コナン 第36話「あたらしいバレンタイン」
 ~推理小説を投稿していたらいつのまにか美少女に一目惚れされた件~


  38. タイトル生成してみる
 BERTで
 あそんでみた
 タイトル
 呪術廻戦


  39. タイトル生成してみる
 BERTで
 あそんでみた
 タイトル
 呪術廻戦
 生成されたタイトル
 呪われて廻った魔弾使い(エクスプローラー)【第二次世界大戦編】


  40. タイトル生成してみる
 BERTで
 あそんでみた
 タイトル
 ウマ娘 プリティーダービー


  41. タイトル生成してみる
 BERTで
 あそんでみた
 タイトル
 ウマ娘 プリティーダービー
 生成されたタイトル
 ウマ娘 プリティーダービー
 優勝馬に転生したので、とりあえず競馬で勝つことを目指します!


  42. まとめ
 • BERT
 ◦ 汎用的なタスクに応用可能な事前学習済みモデル
 
 • BERTを利用した「なろう風」タイトル生成
 ◦ 日本語的に自然な文章


    ◦ なろうテイストを反映したタイトルを生成できていた
 ◦ 入力文の文意をあまり解釈できていないことが課題