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

深層学習による自然言語処理

 深層学習による自然言語処理

Faisal Ibrahim Hadiputra

September 29, 2021
Tweet

Other Decks in Technology

Transcript

  1. 深 層 学 習 に よ る ⾃ 然 ⾔ 語 処 理
    株式会社電通国際情報サービス
    ファイサル・ハディプトラ
    2021/09/29

    View Slide

  2. ⾃⼰紹介
    所属
    電通国際情報サービス クロスイノベーション本部
    AIトランスフォーメーションセンター(AITC)
    製品開発グループ
    業務
    ⾃然⾔語処理の研究開発、⾃社のAIソフトウェアの開発、ソフトウェア
    アーキテクチャー設計、情報検索ソリューションの開発、
    Pytorch/Tensorflowで深層学習モデル構築。
    その他
    クラウド技術(Azure、AWS)、コンテナー技術(Docker, Kubernetes)、
    Javascript(Vue.js, React)
    ファイサル ハディプトラ
    (FAISAL HADIPUTRA)
    @faisal_putra
    2

    View Slide

  3. アジェンダ
    1. はじめに
    • 自然言語処理の概要
    • 自然言語処理の難しさ
    • 最新のトレンド
    2. ⾃然⾔語処理におけるアプローチ
    3. 深層学習による⾃然⾔語処理
    4. TexAIntelligence
    5. まとめ

    View Slide

  4. はじめに

    View Slide

  5. ⾃然⾔語処理(Natural Language Processing)
    8|⽉|24|⽇|に|開幕|する|東京|パラリンピック|は|、無|観客|で|の|開催|と|なる|。
    ⾃然⾔語(⽇本語、英語など)をコンピュータに処理・理解させる技術。
    基礎解析
    [⽇付表現] [----イベント名-----]
    機械翻訳 情報検索 対話システム
    ・・・
    応⽤
    5

    View Slide

  6. • 違う表現で、同じ意味(=同義)が表されることがある
    • 東京⼤学 = 東⼤、購⼊ = 買う、渡⽶ = アメリカに⾏く
    • 同じ表現が、違う意味(=多義)を表すこともある
    • マック: マックドナルド or マッキントッシュ
    • かける: (橋を)かける or (ソースを)かける ...
    • 階層的な系列をどう扱うか、考える必要がある
    • ⽂字 → 単語 → ⽂ → ⽂章
    • そもそも計算機が⾔語を理解することはどういうことなのか︖
    ⾃然⾔語処理の難しさ
    6

    View Slide

  7. ⾃然⾔語処理の進化
    現在、Deep Learning(深層学習)が前提となっている。
    https://mobilus.co.jp/lab/chat-support/nlp/ 7

    View Slide

  8. GLUE(⾔語理解タスク)[Wang+ 18]
    モデルの性能を計るため、英語の⾔語理解タスクのデータセットが⽤意されている。
    8
    https://gluebenchmark.com/leaderboard

    View Slide

  9. GLUE(⾔語理解タスク)[Wang+ 18]
    ポジネガ判定
    [positive]
    itʼs charming and often affecting journey.
    [negative]
    a sometimes tedious film.
    2⽂が同じ意味かどうか
    [同じ]
    The bird is bathing in the sink.
    Birdie is washing itself in the water basin.
    [異なる]
    The black dog is running through the snow.
    A race car driver is driving his car through the mud.
    https://gluebenchmark.com/leaderboard
    モデルの性能を計るため、英語の⾔語理解タスクのデータセットが⽤意されている。
    9

    View Slide

  10. • ⽇本語は、GLUEのようなベンチマークが存在しないが、2020年には、AI王と
    いう質問応答コンペが開催された。
    • URL: https://www.nlp.ecei.tohoku.ac.jp/projects/aio/
    AI王 〜クイズAI⽇本⼀決定戦〜(1/2)
    質問例
    選択肢/
    回答例
    童謡『たなばた さま』の歌詞で,「さ らさら」と歌われる 植物は何の葉?
    1:"サ サ",
    2:"チシマザサ",
    3:"クマザサ",
    4:"ア ダ ン", 5:"チ ガ ヤ",
    ...
    20:"オオウバユリ"
    10

    View Slide

  11. AI王 〜クイズAI⽇本⼀決定戦〜 (2/2)
    https://www.nlp.ecei.tohoku.ac.jp/projects/AIP-
    LB/task/aio
    AI王に参加したメンバーのリーダーボード。
    11

    View Slide

  12. ⾃然⾔語処理
    におけるアプローチ
    1. ルールベースの⾃然⾔語処理
    2. 古典的機械学習による⾃然⾔語処理
    3. 深層学習による⾃然⾔語処理

    View Slide

  13. • パターン照合や構⽂解析によって欲しい
    情報を抽出。
    • 代表的⼿法
    • 正規表現
    • ⽂脈⾃由⽂法(Context-free Grammar)
    • 利点
    • 場合によって特定のユースケースで精度が⾼い
    • 適合率が⾼い
    • 学習データが不要
    • 説明性が⾼い
    • ⽋点
    • ルール数が多ければ多いほど、計算コストが⾼くなる
    • 再現率が低い
    • ルールを作成するに⼿間がかかる
    ルールベースの⾃然⾔語処理
    [start] => [users] $1
    [users] => my friend friends(me)
    [users] => friends of [users] friends($1)
    [users] => {user} $1
    [start] => [photos] $1
    [photos] => photos of [users] photos($1)
    https://engineering.fb.com/2013/04/29/web/under-the-hood-the-
    natural-language-interface-of-graph-search/
    2013年にFacebookグラフ検索で使った⽂脈⾃由⽂法
    ⼊⼒ 出⼒
    基礎解析
    タスク特有
    ルール

    13

    View Slide

  14. • 基本的な流れ
    • 最初に、⽣⽂章に対して基礎解析(形態素解析、構
    ⽂解析、意味解析)を事前に⾏う
    • 基礎解析の結果から特徴ベクトルを作成
    • 古典的機械学習アルゴリズム(SVM、NaiveBayes
    、RandomForestなど)を⽤いて、モデル学習
    • 利点
    • 推論時、計算コストは学習データ数に依存しない(
    スケーラブル)
    • データから学習できる
    • データがあれば、開発速度が速い
    • ルールベースと⽐べて再現率が⾼い
    • ある程度まで説明できる
    • ⽋点
    • 学習データが必要
    • デバッグが難しい
    • 特徴量抽出を考える必要がある
    古典的機械学習による⾃然⾔語処理
    ⼊⼒ 特徴 出⼒
    特徴抽出
    (基礎解析)
    モデル
    学習
    特徴量抽出のために基礎解析を⾏う
    14

    View Slide

  15. • 古典的機械学習と異なる部分
    • 特徴量ベクトルも学習される(表現学習)
    • 基礎解析は不要(トークナイザーだけ)
    • 利点
    • スケーラブル
    • データから学習できる
    • データがあれば開発速度が速い
    • 古典的機械学習に⽐べて、精度が⾼い
    • 特徴量抽出が不要
    • ⽋点
    • デバッグが難しい
    • ⼤規模な学習データが必要
    • 説明性が低い
    深層学習による⾃然⾔語処理
    ⼊⼒ 出⼒
    表現学習
    モデル
    学習

    https://mobilus.co.jp/lab/chat-support/nlp/
    ⾃然⾔語処理における深層学習モデル
    15

    View Slide

  16. 深層学習による
    ⾃然⾔語処理
    1. 単語のベクトル表現
    2. ⾔語モデル
    3. Encoder-decoderモデル
    4. BERT(事前学習・ファインチューニング)
    5. GPT-3(Few shot learning)

    View Slide

  17. 単語ベクトル表現

    View Slide

  18. • 分布仮説 [Firth+ 1957]
    • 単語の意味はその単語の⽂脈によって特徴つけられる
    • =似た⽂脈で出現する単語は意味が似ている
    • 共起に基づくベクトル表現 [Lin 2002]
    古典的な単語表現についてのアイデア
    昨⽇、りんごを⾷べた。
    りんごジュースを飲んだ。
    りんごの⽪を剥いた
    昨⽇、オレンジを⾷べた。
    オレンジジュースを買った。
    オレンジの⽪を剥いた
    昨⽇、⾞に乗った。
    ⾞のタイヤを交換した。
    ⾞を買った。
    りんご
    オレンジ

    (0 0 1 0 0 0 0 1 0 0 0 … … … …)
    (0 0 1 0 0 0 0 1 0 0 0 … … … …)
    (0 0 0 0 0 0 0 0 0 0 1 … … … …)
    ⾷べる ジュース タイヤ
    似ている
    似ていない
    「りんご」と
    「⾷べる」が
    テキスト中のある⽂
    で共起
    数万〜数⼗万次元の疎なベクトル
    18

    View Slide

  19. • ニューラルネットワークで対象の単語
    から周囲単語(⽂脈語)を予測するタ
    スク
    • 低次元(例えば300次元)で、要素は
    実数値
    • word embeddingまたは分散表現と呼
    ばれる
    • 特徴
    • 単語の「意味」をベクトル表現で学習できる
    • 単純な⼿法で⼤規模な⽂書(コーパス)でも少ない
    時間で学習が可能
    • 同義語が定量的に表現できる
    • 多義語が同じベクトルで表現されてしまう → これ
    は、次に説明する⾔語モデルで解決できる。
    ニューラルネットワークを使った単語表現
    りんご
    オレンジ

    (0.82 -1.18 0.74 …)
    (0.86 -1.23 0.54 …)
    (0.15 1.18 -0.34 …)
    似ている
    似ていない
    数百次元の密なベクトル
    昨⽇

    ⾷べた
    0.82
    1.21

    -1.51
    0
    1
    0
    0
    0
    0

    0
    0
    1

    0
    0
    1

    0

    0
    1

    0 0
    1

    0
    word2vec [Mikolov+ 13]
    19

    View Slide

  20. ⾔語モデル

    View Slide

  21. • ある⽂が出現する確率を表現したもの
    • P(”佐藤さんはご飯を⾷べた”)>P(”ご飯は佐藤さんを⾷べた”)
    • P(”佐藤さんはご飯を⾷べた”)>P(”佐藤さんはご飯を飲んだ”)
    • 確率の連鎖律 → 次の単語を予測するタスク
    • P(“佐藤さんはご飯を⾷べた”)= P(”⾷べた”|”佐藤さんはご飯を”)・P(“を”|”佐藤さんはご飯”)
    ・P(“ご飯”|”佐藤さんは”) ・P(“は”|”佐藤さん”) ・P(”佐藤さん”)
    • 確率の推定⽅法
    • 古典的な⼿法だと、頻度ベースのn-gramなどが使⽤されたが、最近ニューラルネットワークが使⽤されている。
    • 応⽤例
    • 検索エンジン(クエリの⾃動補完)
    • ⽂の⾃動⽣成
    • 機械翻訳
    21
    ⾔語モデル(Language Model)とは︖

    View Slide

  22. • RNN(Recurent Neural Network)再起的ニューラルネットワーク。
    • 次の単語を予測するタスク(Next Word Prediction)
    • 次々と単語を予測していくことで、最終的に⽂を⽣成する
    22
    RNN⾔語モデル
    私 は 学⽣
    は 学⽣ です
    「私 は」の
    ベクトル
    U U U
    W W W
    0.1 ... 0.2 ...
    P(学⽣|私, は)
    ⼤規模なラベルなし
    テキストから学習

    View Slide

  23. • ⾔語モデルタスクを学習することで、⽂脈付き単語ベクトル及び⽂書ベクトルを習得させる
    • ⽂脈付きベクトルを習得することで、多義語の問題を解決できる。
    23
    RNN⾔語モデル: ⽂脈付き単語ベクトル
    私 は 学⽣
    W W W
    です
    W
    ⽂脈付き「学⽣」のベクトル
    「私は学⽣です」の⽂書ベクトル
    「今⽇のお昼ご飯はマックのフライポテトです。」
    「WWDC 2020で発表された新しいマックを買いました。」
    「マック」 の
    ⽂脈付きベクトルが異なる

    View Slide

  24. • ⽂脈を拡張するという意味で、後⽅向⾔語モデルを採⽤する。
    • 前⽅向⾔語モデル + 後⽅向⾔語モデル = 双⽅向⾔語モデル
    24
    RNN⾔語モデル: 前⽅向⾔語モデル、後⽅向⾔語モデル
    私 は 学⽣
    は 学⽣ です
    U U U
    W W W
    は 学⽣ です
    私 は 学⽣
    U U U
    W W
    ⽂脈付き「学⽣」のベクトル
    後⽅向⾔語モデル
    前⽅向⾔語モデル
    W

    View Slide

  25. Encoder-Decoder
    モデル

    View Slide

  26. • 機械翻訳タスクから⽣まれたモデル
    • 基本的な流れ
    • Encoderは⼊⼒⽂を⽂書ベクトルに変換し、
    Decoderに渡す。
    • Decoderは⽂書ベクトルを元に、1単語ずつ⽂書を
    ⽣成する。
    • 最初はRNN⾔語モデルが使われた
    • Encoder = 双⽅向⾔語モデル
    • Decoder = 前⽅向⾔語モデル
    • 最近は、RNNの代わりにTransformers
    が採⽤される。
    Encoder-Decoderモデルの概要
    私は学⽣です。
    I am a student.
    エンコーダー
    (Encoder)
    デコーダー
    (Decoder)
    ⽂書ベクトル
    両⽅とも⾔語モデル
    26

    View Slide

  27. 27
    Encoder-Decoderモデルのイメージ
    https://jalammar.github.io/illustrated-transformer/
    Encoding Step Decoding Step

    View Slide

  28. • Transformersでは、RNNの代わりに
    Multi-headed Self-attentionを使⽤す

    • “Attention is all you need”というタイ
    トルで有名
    • 特徴
    • RNN系とは違い、並列処理が可能になる
    • Attention機構は、単語の順番を無視しているので、
    距離の遠い単語でも考慮できる
    • パラメータ数が多く、計算コストが⾼い
    28
    Transformer
    私は学⽣です。
    I am a student.
    エンコーダー
    (Encoder)
    Multi-headed Self-
    attention
    デコーダー
    (Decoder)
    Multi-headed Self-
    attention
    ⽂書ベクトル
    https://papers.nips.cc/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf

    View Slide

  29. I
    Attention機構は、動的にDecoderが単語を出⼒するときに⼊⼒⽂の中でどの単
    語ベクトルを重視するかを学習する。
    29
    Attention機構
    私 は 学⽣ です I am a student
    エンコーダー
    (Encoder)
    デコーダー
    (Decoder)
    am
    ⼊⼒⽂の単語ベクトル

    View Slide

  30. 単語の⽂脈付きベクトルを計算するときに、⼊⼒⽂の中でどれを重視しているか
    を学習する。双⽅向⾔語モデルと捉えることもできる。
    30
    Self-Attention
    私 は 学⽣ です
    エンコーダー
    (Encoder)
    ⼊⼒⽂の単語のベクトル

    View Slide

  31. 複数のSelf-Attention機構を組み合わせる。
    これによって、様々な観点で⽂脈付きベクトルが学習される。
    31
    Multi-headed Self-Attention
    私 は 学⽣ です
    エンコーダー
    (Encoder)
    ⼊⼒⽂の単語のベクトル

    View Slide

  32. BERT

    View Slide

  33. • TransformersのEncoderを複数組み
    ⽴てる
    • 基本的な流れ
    • Encoderは⽂書ベクトルを抽出する
    • ⽂書ベクトルを⽤いてタスク特有モデルが学習す

    • 転移学習を有効にする
    • Wikipediaで⾃⼰教師あり学習
    • 特定なタスクでファインチューニング
    BERT
    素晴らしい映画
    だった。
    positive
    複数のエンコーダー
    (MultipleEncoder)
    タスク特有の
    モデル
    線形モデルなど
    ⽂書ベクトル
    33

    View Slide

  34. 1. Wikipediaで⾃⼰教師あり学習(Next Sentence Prediction, Masked⾔語モデル)
    2. Encoderの部分のみ再利⽤して、特定のタスクでファインチューニングする
    BERTの転移学習
    (事前学習+ファインチューニング)
    複数のエンコーダー
    (MultipleEncoder)
    MLM分類器
    NSP分類器
    複数のエンコーダー
    (MultipleEncoder)
    分類器
    ⾃⼰教師あり学習
    (事前学習)
    ファインチューニング
    Wikipediaデータ 対象データ
    Encoderのみ
    再利⽤
    34

    View Slide

  35. GPT-3

    View Slide

  36. • GPT(Generative Pre-Training)
    • TransformersのDecoderのみを複数組
    み⽴てる。ハイパーパラメーターを⼤
    きくする。
    • 極端に⼤規模な⾔語モデル
    • GPT-1: 1.3Bパラメーター
    • GPT-2: 13B パラメーター
    • GPT-3: 175B パラメーター
    GPT-3
    デコーダー
    (Decoder)
    Multi-headed Self-attention
    I am a
    am a student
    36

    View Slide

  37. GPT-3: Few Shot Learningの有効性
    • モデル重みを更新せず、少数の例をあげるだけで回答が返ってくる。
    37

    View Slide

  38. 38
    ⾃然⾔語処理において深層学習が変えたこと
    • 単語の意味を定量的に表現できる(分散表現)
    • ⾔語モデルにより、系列の扱いは良くなった
    • 単語ベクトル表現 → ⽂書ベクトル表現
    • End-to-endの学習
    • ⼊⼒と出⼒例だけを⽤意して、直接モデルに学習させる
    • システムをモジュールに分割する必要がなくなる
    • 転移学習(事前学習 + ファインチューニング)は主な⼿段になった
    • 事前学習モデルやライブラリの整備は進んだ
    • ⽇本語のBERTモデルの公開(NICT、京都⼤学、東北⼤学)
    • ユーザーが各コードがかなり少なくなった
    • BERTで基本的なタスクを解く場合、コマンドを動かすだけで実⾏できる
    • 代表ライブラリ: HuggingfaceのTransformers

    View Slide

  39. TexAIntelligence

    View Slide

  40. ⽂書活⽤AIソリューション: TexAIntelligence
    ⽂章⾃動分類
    (教師あり分類)
    意味的類似検索
    ⽂章要約
    (教師なし分類×要約)
    https://isid-ai.jp/products/texa.html
    • 深層学習による⾃然⾔語処理を利⽤したサー
    ビスを開発している。
    • BERT、GPT等の深層学習モデルは巨⼤で、
    実際に運⽤するのは⼤変という課題があった。
    • BERTの軽量版であるISID-BERTを開発した。
    • ISID-BERTの特徴
    • 標準のBERTに⽐べて、2倍ほど⻑い⽂章が扱
    える。
    • 標準のBERTに⽐べて、モデルサイズが10分
    の1圧縮されている。
    • トークナイザーで使っている辞書は⽐較的新
    しい。
    40

    View Slide

  41. 41
    ニュース分類タスクにより性能評価
    ※記事タイトルを使⽤しない
    モデル accuracy 学習時間
    (1枚K80)
    推論時間
    (1500件)
    alinear-corp/albert-japanese 89.27% 57分 3分50秒
    yoheikikuta/bert-japanese 94.16% 1時間20分 4分10秒
    cl-tohoku/bert-base-japanese-whole-
    word-masking
    93.21% 1時間20分 4分15秒
    albert-sudachi(ISIDオリジナル) 94.30% 1時間5分 4分3秒
    ISID-BERT
    • ⽇本語で有名なLivedoorニュースの分類タスクに適⽤
    した結果

    View Slide

  42. まとめ

    View Slide

  43. • ⾃然⾔語処理におけるアプローチ
    • ルールーベース、古典的機械学習、深層学習
    • 深層学習による⾃然⾔語処理
    • Word2vec、Transformer、BERT、GPT-3
    • ISID-BERTの紹介
    • ISID-BERTではBERT軽量版(ALBERT)を使⽤。
    • 精度を⾼めるために、ALBERTモデルを改良。
    • TexAIntelligenceの検索機能で教師なしのアプローチを有効化するためにさらに改良。
    まとめ
    43

    View Slide

  44. CONFIDENTIAL

    View Slide