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

Let's generate sentences with BERT

payanotty
January 06, 2022
420

Let's generate sentences with BERT

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

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

payanotty

January 06, 2022
Tweet

Transcript

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


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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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


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

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


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

  19. • 実行環境
 ◦ 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

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


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