Slide 1

Slide 1 text

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


Slide 2

Slide 2 text

自己紹介
 ● 名前
 ○ 早野 康太
 ● お仕事
 ○ 自然言語モデルの改善
 ● 趣味
 ○ 猫、犬
 ■ YouTube
 ○ ゲーム
 ■ 音ゲ、ウマ娘、ギャルゲ
 ○ アニメ
 ■ 幅広く


Slide 3

Slide 3 text

アジェンダ
 ● BERT紹介
 ○ 自然言語処理とは
 ○ Transformer 
 ○ TransformerからBERTへ
 
 ● なろう風タイトル生成モデル


Slide 4

Slide 4 text

BERT紹介


Slide 5

Slide 5 text

自然言語処理
 ● 深層学習で「ことば」を処理する
 ○ 翻訳
 ■ Google翻訳
 ■ DeepL
 ○ 質問応答
 ■ Alexa
 ○ 文章生成
 ■ AIのべりすと
 BERT紹介


Slide 6

Slide 6 text

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


Slide 7

Slide 7 text

最近のAIはすごい
 ● AIのべりすと
 ○ 入力した文章の続きをAIが
 書いてくれる
 
 出典: https://ai-novel.com 
 吾輩は猫である。名前はまだない。 そんな冗談が脳裏をよぎるほど、その日、俺の 気分は沈んでいた。 「……」 時刻は午前十一時。場所は近所の公園だ。休 日なだけあってそれなりに人通りもあるが、遊 具で遊ぶ子供の姿はない。皆一様にベンチに 腰掛けて、何やら物思いに耽っているようだ。 BERT紹介


Slide 8

Slide 8 text

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


Slide 9

Slide 9 text

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


Slide 10

Slide 10 text

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


Slide 11

Slide 11 text

● What is 関連度?
 ○ 単語をベクトルで表した時の内積
 ○ ベクトルの向いている「方向の近さ」を表す
 Transformer 
 チ ノ 
 かわいい
 θ チノ・かわいい = |チノ||かわいい|cosθ 【Character】チノ - 「ご注文はうさぎですか?」シリーズサイト チノちゃんって誰だよ? BERT紹介


Slide 12

Slide 12 text

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


Slide 13

Slide 13 text

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


Slide 14

Slide 14 text

Transformer 
 BERT紹介
 ● クエリを元に 辞書から 索引しているイメージ ● 特にQ, K, Vにすべて同じ値を用 いるSelf-Attention が用いられる 汚い手書きでゴメンナサイ

Slide 15

Slide 15 text

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


Slide 16

Slide 16 text

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


Slide 17

Slide 17 text

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 
 ベクトル化


Slide 18

Slide 18 text

双方向の意味
 BERT紹介
 ご
 注文
 は
 うさぎ
 ですか
 ?
 T 1 双方向の文脈を見て 埋め込みを出力する


Slide 19

Slide 19 text

双方向の意味
 BERT紹介
 ご
 注文
 は
 うさぎ
 ですか
 ?
 注文
 の
 多い
 料理
 店
 T 1 T 2 双方向の文脈を見て 埋め込みを出力する


Slide 20

Slide 20 text

● Masked Languege Model
 ○ 単語単位での文脈理解
 ○ ランダムに文章の一部をマスクして学習する 
 BERTの事前学習 (pretraining)
 チノ
 ちゃん
 かわい
 すぎて
 川
 に
 なった
 [MASK]
 ちゃん
 かわい
 すぎて
 [MASK]
 に
 なった
 [MASK]に入る単語を予測
 BERT紹介


Slide 21

Slide 21 text

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


Slide 22

Slide 22 text

● 事前学習モデルを、解きたいタスクに合わせてチューニング
 BERTの転移学習 (finetuning)
 Pretrained
 BERT Model
 Question
 Answering
 Named
 Entity
 Recognition
 Sentiment
 Analysis
 Text
 Summarization
 BERT紹介


Slide 23

Slide 23 text

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


Slide 24

Slide 24 text

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


Slide 25

Slide 25 text

● 「小説家になろう」にありがちなタイトル
 ○ 異世界転生しがち
 ■ 無職転生~異世界行ったら本気出す
 
 ○ 魔王とか勇者とか入りがち
 ■ 盾の勇者の成り上がり
 ■ 魔王様、リトライ!
 
 ○ めっちゃ説明してくれるじゃん
 ■ (この世界はもう俺が救って富と権力を手に入れたし、女騎士や女 魔王と城で楽しく暮らしてるから、俺以外の勇者は)もう異世界に 来ないでください。
 なろう風とは?
 BERTで
 あそんでみた


Slide 26

Slide 26 text

● 日本語BERT
 ○ 東北大の乾研究室が公開している事前学習済みモデル
 ■ 日本語Wikipediaの約1700万テキストで学習したもの
 ■ https://huggingface.co/cl-tohoku
 
 
 
 モデル
 BERTで
 あそんでみた
 Encoder
 BERT
 Input
 ご注文は
 うさぎですか?
 Decoder
 BERT
 Output
 うさぎを注文したら
 異世界に
 転生した件について


Slide 27

Slide 27 text

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


Slide 28

Slide 28 text

● 「小説家になろう」からAPIで取得したタイトルとあらすじのペア
 ○ 合計約10万件
 ● あらすじを入力として、タイトルをラベルとして使用した
 
 
 
 学習データ
 BERTで
 あそんでみた
 Input
 女の子たちの
 日常を描く
 Model
 Output
 きんいろ
 モザイク
 ご注文は
 うさぎですか?
 Label
 Loss


Slide 29

Slide 29 text

● 実行環境
 ○ 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


Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

タイトル生成してみる
 BERTで
 あそんでみた
 あらすじ
 時は大正。竈門炭治郎は、家族とともに山でつつましくも幸せな日々をおくって いた。ある日、町で炭を売りに出かけた炭治郎が山に戻ると、家族は鬼に襲わ れ血だまりの中で絶命していた。
 
 
 生成されたタイトル
 炭治郎の異世界血風録(三十と一夜短編第60回)
 ※Wikipediaより引用

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

タイトル生成してみる
 BERTで
 あそんでみた
 あらすじ
 推理作家の父と元女優の母を持ち、シャーロック・ホームズを敬愛する高校生 探偵工藤新一は、大人顔負けの推理力と洞察力を併せ持ち、「日本警察の救 世主」と言われるまでの活躍をみせていた。
 
 
 生成されたタイトル
 探偵新一郎の事件簿
 ~第一次大戦は狂信的な雰囲気を持っていたので、とりあえず自由に生きよ うと思います!!~
 ※Wikipediaより引用

Slide 36

Slide 36 text

タイトル生成してみる
 BERTで
 あそんでみた
 タイトル
 名探偵コナン


Slide 37

Slide 37 text

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


Slide 38

Slide 38 text

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


Slide 39

Slide 39 text

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


Slide 40

Slide 40 text

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


Slide 41

Slide 41 text

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


Slide 42

Slide 42 text

まとめ
 ● BERT
 ○ 汎用的なタスクに応用可能な事前学習済みモデル
 
 ● BERTを利用した「なろう風」タイトル生成
 ○ 日本語的に自然な文章
 ○ なろうテイストを反映したタイトルを生成できていた
 ○ 入力文の文意をあまり解釈できていないことが課題