Share
Embed
東京大学深層学習(Deep Learning基礎講座2022)深層学習と自然言語処理
東京大学深層学習(Deep Learning基礎講座2022)https://deeplearning.jp/lectures/dlb2022/
「深層学習と自然言語処理」の講義資料です。
Hitomi Yanaka
June 02, 2022
Transcript
78 slides
-
自己紹介 • 東京大学大学院 情報理工学系研究科 コンピュータ科学専攻 谷中研究室 講師(卓越研究員) • 研究分野:自然言語処理、計算言語学 • 研究キーワード: 自然言語処理と理論言語学の融合、
深層学習と記号論理の融合による推論技術 修士・博士課程進学・共同研究者募集 • 経歴: 2018-2021 理化学研究所革新知能統合研究センター 特別研究員 2015-2018 東京大学大学院工学系研究科システム創成学専攻 博士(工学) 2013-2015 野村総合研究所にて特許検索システムの開発に従事 2011-2013 東京大学工学系研究科化学システム工学専攻 修士課程修了 2 -
今回の講義の目標 • 自然言語処理(Natural Language Processing, NLP) の概観を理解する • 深層学習によるNLPの基本を理解する
◦ Word embedding ◦ Encoder-Decoder ◦ Attention • 深層学習によるNLPの課題と、最近の研究動向を理解する 3 -
自然言語処理をもっと学びたい人に:参考資料 Stanford大学の講義資料 Natural Language Processing with Deep Learning 動画・演習のソースコードも充実 http://web.stanford.edu/class/cs224n/
Speech and Language Processing Dan Jurafsky and James H. Martin https://web.stanford.edu/~jurafsky/slp3/ 東工大岡崎先生の講義資料 https://chokkan.github.io/deeplearning/ 最新の研究は、Twitterも情報源 (NLPerの多くはTwitterにいる:ハッシュタグは#NLProc) 4 -
自然言語処理をもっと学びたい人に:参考図書 1. 深層学習による自然言語処理 (機械学習プロフェッショナルシリーズ) 著・坪井祐太/海野裕也/鈴木潤 通称:出た本 本講義もかなり参考にしています 2.
自然言語処理 (放送大学教材) 著・黒橋禎夫 自然言語処理の基礎から網羅的に学べます 5 -
質問:自然言語処理というと、何を連想しますか? 身近な自然言語処理の例
・AIアシスタント ・機械翻訳 ・情報検索 8 -
質問:自然言語処理というと、何を連想しますか? 自然言語をコンピュータで処理するための技術: 自然言語処理 (Natural Language Processing, NLP)
・AIアシスタント ・機械翻訳 ・情報検索 9 -
もう少し具体的に自然言語処理という処理を考える 次のような特性をもつ可変長の記号列=自然言語を、 目的のタスクという単位で処理すること 言語の特性やタスクに応じた前処理が結構大事(沼が深い) • 新しい言語表現がいくらでも生まれる(生産性) 例:ずっしょ、親ガチャ • 一定の文法規則に基づいて構成される(構成性)
例:英語の文型はSVO、日本語の文型はSOV • 前後の言語表現によって意味が定まる(文脈) 例:「締め切りがやばい」「俳優の演技力がやばい」 10 -
さまざまな言語処理のタスク 11 基礎 応用 機械翻訳 質問応答 情報検索 意味解析 構文解析 形態素解析
談話解析 対話 照応解析 文書分類 固有表現抽出 情報抽出 浅い (表層的) 深い (意味的) 11 -
• 以前の言語処理では、部分問題ごとにモデルを学習し解析 深層学習以前の言語処理と深層学習による言語処理 12 質問応答 意味解析 例.述語項構造解析 構文解析 例.係り受け解析 入力:質問文
出力:回答文の候補 品詞タグ付け 質問応答 訓練データ 意味解析 訓練データ 構文解析 訓練データ 品詞タグ 付け 訓練データ 学習 学習 学習 学習 以前 -
• 以前の言語処理では、部分問題ごとにモデルを学習し解析 • 深層学習では、部分問題を隠れ層での学習に置き換えることで、応 用タスク用の学習データからend-to-endで学習可能に • タスクによっては従来の手法と同程度または上回る性能 • 反面、出力の解釈が難しいなどの問題がある(最後に説明) 深層学習以前の言語処理と深層学習による言語処理
13 質問応答 意味解析 例.述語項構造解析 構文解析 例.係り受け解析 入力:質問文 出力:回答文の候補 品詞タグ付け 質問応答 訓練データ 隠れ層 隠れ層 隠れ層 隠れ層 入力:質問文 出力:回答文の候補 意味解析 訓練データ 構文解析 訓練データ 品詞タグ 付け 訓練データ 学習 学習 学習 学習 学習 以前 深層学習 -
• 応用タスクの多く(機械翻訳、質問応答、対話など)は、 文を入力として文を出力(予測)する問題 深層学習による言語処理 15 応用タスク 訓練データ 隠れ層 隠れ層 隠れ層
隠れ層 入力:文 出力:文 学習 どうやって自然言語文を ベクトルで表すか? -
分布仮説(distributional hypothesis)[Harris+, 1954] 単語の意味はその周囲の単語から形成されるという仮説
天気という単語は今日という単語と同時に出現しやすい(共起) →単語の意味を周囲の単語との共起頻度で表現できそう 19 今日の天気は晴れである。 今日の1時間ごとの天気、気温、降水量を掲載します。 あなたが知りたい天気予報をお伝えします。 今日は天気が良いので布団を干した。 -
どうやって単語の意味を表すか(1)共起行列 単語の前後の語(文脈:context)との共起頻度を表した行列 前後1語の共起行列の例:
20 今日 は 晴れ て いる 今日 0 1 0 0 0 は 1 0 1 0 0 晴れ 0 1 0 1 0 て 0 0 1 0 1 いる 0 0 0 1 0 単語 文脈(前後1語に出現する単語) 文脈として扱う 前後の語の数を ウインドウサイズ という 「今日」を表す 単語ベクトルは (0,1,0,0,0) -
どうやって単語の意味を表すか(2)one-hotベクトル 文を単語分割し、各単語にID(次元)を振り、1-of-K表現でone-hot(局 所表現)ベクトルにする 今日 (1,0,0,0,0,0,0) 今日 (1,0,0,0,0,0,0)
は (0,1,0,0,0,0,0) は (0,1,0,0,0,0,0) 晴れ (0,0,1,0,0,0,0) 休み (0,0,0,0,0,1,0) て (0,0,0,1,0,0,0) だ (0,0,0,0,0,0,1) いる (0,0,0,0,1,0,0) 今日 は 晴れ て いる 1 2 3 4 5 今日 は 休み だ 1 2 6 7 21 単語 ID -
単語の分散表現 (単語埋め込み: word embedding) 密なベクトル はone-hotベクトル に⾏列 をかけて得られる
- の次元は語彙数 の次元は埋め込みたい数(ハイパーパラメータ) - は重みを表す埋め込み行列(embedding matrix) - 行列 において単語ID番目の列を抽出すると単語埋め込みベクト ルが得られる。つまり、 は単語IDをルックアップして単語埋め込 みベクトルに変換する⾏列ともいえる 23 -
分布仮説再掲 周囲の単語から、( )には「天気」が入りそうと推測できる
分布仮説を、周囲の単語が与えられたときにどんな単語が出現するか を推測する問題に帰着させた言語モデル:Word2Vec 24 今日の( )は晴れである。 1時間ごとの( )、気温、降水量を掲載します。 あなたが知りたい( )予報をお伝えします。 ( )が悪いと外に出かける気にならない。 今日は( )が良いので布団を干した。 -
• 分布仮説に基づき、埋め込み行列 を学習する言語モデル • 周辺の単語から中心の単語を予測するCBOW (Continuous Bag of Wo モデル(左)と、 ある単語が与えられた時にその周辺の単語を予測する Skip-Gramモデル(右)から構成される
Word2Vec [Micolov+,2013] 入力 V次元 隠れ層 N次元 出力 V次元 入力 V次元 隠れ層 N次元 出力 V次元 V×N 次元 N×V 次元 N×V 次元 V×N 次元 25 -
Skip-Gram 単語 からその周辺の語(文脈語) が予測される確率 について、次の目的関数を最大化する :コーパスに出現する全語彙集合
次の損失関数が最小となるように誤差逆伝播法で学習し、 確率 をモデル化 今日 は 晴れ て いる softmax関数 で正規化 26 -
Skip-Gram 単語 からその周辺の語(文脈語) が予測される確率 について、次の目的関数を最大化する :コーパスに出現する全語彙集合
negative sampling:全語彙について計算すると分母の計算量が大きくな るため、文脈語では確率が高くなるように、文脈語以外からランダムに 選ばれた語彙(擬似負例)では確率が低くなるように学習する 今日 は 晴れ て いる 27 -
単語埋め込みベクトルの性質:加法構成性 単語埋め込みベクトルは、低次元で計算効率が上がるだけでなく ベクトルの足し算・引き算で語の意味の足し算・引き算が できるという加法構成性の性質があることが知られている 有名な例: vec(king) - vec(man) +
vec(woman) = vec(queen) 単語埋め込みベクトルをうまく合成して文の意味を表現できる? →Encoder-Decoderモデル 30 -
系列変換タスク(生成タスク) 応用タスクの多くは、系列変換・生成タスクと捉えられる 対話:発話文に対して応答文を生成する 要約:入力文に対して要約文を生成する 機械翻訳:ある言語の文に対して別の言語の文を生成する 32 今日 は
晴れ 。 It is sunny today . 日本語 英語 -
系列から別の系列に変換する確率をモデル化したもの 系列変換(sequence-to-sequence)モデルとも呼ばれる EncoderとDecoderから構成される Encoder: 系列(単語列)Xを固定長ベクトルZに変換するモデル Decoder: 固定長ベクトルZから系列Yを出力するモデル Encoder-Decoderモデル
Encoder Decoder 今日 は 晴れ <BOS> It is today It is sunny today <EOS> 33 X sunny Z Y <BOS>は文頭、<EOS>は文末を表す -
h 2 Encoderモデル 1. 符号化器埋め込み層(encoder embedding layer) 入力文中のi番目の単語のone-hotベクトルを埋め込みベクトルx i に
変換(前述の単語埋め込みと同じ処理) 2. 符号化器再帰層(encoder recurrent layer) i番目の埋め込みベクトルx i を隠れ状態ベクトルh i に変換 34 今日 は 晴れ i = 1 2 X 3 encoder embedding layer encoder recurrent layer h 1 h 3 -
Encoderモデル 1. 符号化器埋め込み層(encoder embedding layer) 入力文中のi番目の単語のone-hotベクトルを埋め込みベクトルx i に 変換(前述の単語埋め込みと同じ処理)
35 今日 は 晴れ X i = 1 2 3 encoder embedding layer -
h 2 Encoderモデル 1. 符号化器埋め込み層(encoder embedding layer) 入力文中のi番目の単語のone-hotベクトルを埋め込みベクトルx i に
変換(前述の単語埋め込みと同じ処理) 2. 符号化器再帰層(encoder recurrent layer) i番目の埋め込みベクトルx i を隠れ状態ベクトルh i に変換 36 今日 は 晴れ i = 1 2 X 3 encoder embedding layer encoder recurrent layer h 1 h 3 -
h 2 Encoderモデル 1. 符号化器埋め込み層(encoder embedding layer) 入力文中のi番目の単語のone-hotベクトルを埋め込みベクトルx i に
変換(前述の単語埋め込みと同じ処理) 2. 符号化器再帰層(encoder recurrent layer) i番目の埋め込みベクトルx i を隠れ状態ベクトルh i に変換 37 今日 は 晴れ i = 1 2 X 3 encoder embedding layer encoder recurrent layer h 1 h 3 ・関数の種類はLSTM, GRU, CNN何でも良い ・単方向・双方向や層数などのモデル構成も変更できる -
Decoderモデル 1. 復号化器埋め込み層 (decoder embedding layer) 復号化器出力層のj-1番目の出力を埋め込みベクトルy j に変換 2.
復号化器再帰層(decoder recurrent layer) 埋め込みベクトルy j を隠れ状態ベクトルh j に変換 3. 復号化器出力層(decoder output layer) 隠れ状態ベクトルh j からj番目の単語の生成確率を計算 38 <BOS> It is today It is sunny today <EOS> sunny Y decoder embedding layer decoder recurrent layer decoder output layer j = 1 2 4 5 h 1 h 2 h 3 h 4 3 -
Decoderモデル 1. 復号化器埋め込み層 (decoder embedding layer) 復号化器出力層のj-1番目の出力を埋め込みベクトルy j に変換 位置jの処理に位置j-1の処理結果(自身の一つ前の出力単語)を考
慮して変換する構造になっていることに注意 39 <BOS> It is today is sunny today <EOS> sunny Y decoder embedding layer j = 1 2 3 4 5 It -
Decoderモデル 1. 復号化器埋め込み層 (decoder embedding layer) 復号化器出力層のj-1番目の出力を埋め込みベクトルy j に変換 2.
復号化器再帰層(decoder recurrent layer) 埋め込みベクトルy j を隠れ状態ベクトルh j に変換 ニューラルネットの種類はLSTM, GRU, CNN何でも良い 40 <BOS> It is today It is sunny today <EOS> sunny Y decoder embedding layer decoder recurrent layer j = 1 2 4 5 h 1 h 2 h 3 h 4 3 -
Decoderモデル 1. 復号化器埋め込み層 (decoder embedding layer) 復号化器出力層のj-1番目の出力を埋め込みベクトルy j に変換 2.
復号化器再帰層(decoder recurrent layer) 埋め込みベクトルy j を隠れ状態ベクトルh j に変換 41 <BOS> It is today It is sunny today <EOS> sunny Y decoder embedding layer decoder recurrent layer j = 1 2 4 5 h 1 h 2 h 3 h 4 3 h 0 h 0 はEncoderの符号化器再帰層の最後の位置の隠れ状態ベクトルZ -
Decoderモデル 1. 復号化器埋め込み層 (decoder embedding layer) 復号化器出力層のj-1番目の出力を埋め込みベクトルy j に変換 2.
復号化器再帰層(decoder recurrent layer) 埋め込みベクトルy j を隠れ状態ベクトルh j に変換 3. 復号化器出力層(decoder output layer) 隠れ状態ベクトルh j からj番目の単語の生成確率を計算 42 <BOS> It is today It is sunny today <EOS> sunny Y decoder embedding layer decoder recurrent layer decoder output layer j = 1 2 4 5 h 1 h 2 h 3 h 4 3 -
系列から別の系列に変換する確率をモデル化したもの 系列変換(sequence-to-sequence)モデルとも呼ばれる EncoderとDecoderから構成される Encoder: 入力(単語列)をベクトルに変換するモデル Decoder: 1単語ずつ生成するモデル(先を見ることはできない) Encoder-Decoderモデルまとめ
Encoder Decoder 今日 は 晴れ <BOS> It is today It is sunny today <EOS> 43 X sunny Z Y <BOS>は文頭、<EOS>は文末を表す -
RNNs, CNNによる文の意味表現 RNNs (Recurrent Neural Networks) Pros: ・系列の位置情報を捉えられる Cons: ・並列化が難しい
CNN (Convolutional Neural Network) Pros: ・局所的な位置情報を捉えられる ・並列化しやすく高速 Cons: ・大局的な位置情報が失われる 44 -
RNNs, CNNによる文の意味表現 RNNs (Recurrent Neural Networks) Pros: ・系列の位置情報を捉えられる Cons: ・並列化が難しい
CNN (Convolutional Neural Network) Pros: ・局所的な位置情報を捉えられる ・並列化しやすく高速 Cons: ・大局的な位置情報が失われる 45 RNNs, CNNの両方の良い点を採用できないか?→Attention -
各位置のEncoderの隠れ層のベクトルと、位置jのDecoderの隠れ層の ベクトル間の類似度を計算 AttentionつきEncoder-Decoderモデル Decoder 今日 は 晴れ <BOS> It
is today It is sunny today <EOS> 47 sunny softmax 関数で正規化 Encoder -
各位置のEncoderの隠れ層のベクトルと、位置jのDecoderの隠れ層の ベクトル間の類似度を計算 この類似度からEncoderの隠れ層のベクトルの加重平均を求める 位置jでの変換に必要な文脈情報を抽出している: Soft attention AttentionつきEncoder-Decoderモデル Decoder 今日 は
晴れ <BOS> It is today It is sunny today <EOS> 48 sunny Encoder -
各位置のEncoderの隠れ層のベクトルと、位置jのDecoderの隠れ層の ベクトル間の類似度を計算 この類似度からEncoderの隠れ層のベクトルの加重平均を求め、 最終的な位置jのDecoderの隠れ層のベクトルを計算 AttentionつきEncoder-Decoderモデル Decoder 今日 は 晴れ <BOS>
It is today It is sunny today <EOS> 49 sunny Encoder -
Attentionを用いた代表的なモデル:Transformer [Vaswani+ 2017] 50 Encoder • RNNやCNNを用いず、 Attentionのみを使用したEncoder-Decoder モデル
• Attentionは3箇所、 キモはSelf-Attention ◦ Encoder-Decoder Attention ◦ Encoder Self-Attention ◦ Decoder Masked Self-Attention • N=6層のEncoderとDecoder Decoder -
Transformerで使われているAttention Source-Target-Attention Decode時にEncoderの隠れ層の情報を参照 Self-Attention (Encoder/Decoderどちらにも使える) 自身(Self)の下の隠れ層の全ての位置を参照
52 Key Value ( ) Query σ Key Value ( ) Query σ Decoder Encoder Self Self 並列処理できる 単語間距離によらず 依存関係を学習できる -
BERT (Bidirectional Encoder Representations from Transformers)[Devlin+ 2019] 24層の双方向Transformerをベースとした、 1. 大規模コーパスによる事前学習
2. タスクに応じたファインチューニング によって様々なタスク・言語に応用できる汎用言語モデル 57 -
[CLS] 今日 の [MASK] は 雨 だ [SEP] 傘 を 持っ て [SEP] BERTの事前学習 2つの事前学習タスクによって双方向Transformerの学習を実現 1. Masked Language Model 入力データの一部を[MASK]でマスキングし、前後の単語ではなくマスキ ングされた単語を予測するタスクで双方向の情報を考慮 2.
Next Sentence Prediction 文のペア(A, B)が入力として与えられた時、文Bが文Aの次に続くか否か を予測する 58 … 文B 文A is_next 天気 -
1年以内に…BERTの改良モデルが続々と登場 • XLNet[Zhilin+2019] マスキングに用いられる特殊記号[MASK]はfine-tuning時には出現 しないためバイアスとなる問題に対して、 単語の並び替え(Permutation Language Model)を採用 • RoBERTa[Yinhan+2019]
マスキングの位置を動的に変えることで効率的な学習を実現 • ALBERT[Lan+2019] BERTで使われているパラメータ数を減らし軽量化 • T5[Raffel+2019] Text-to-Text Transfer Transformerの略。 分類・翻訳・質問応答などの全タスクで入力と出力をテキストフォー マットに統一し転移学習することで、高精度を実現 60 -
GPT-3:Few-shot/One-shot/Zero-shot learning [Brown+, 2020] 前身のGPT-1、GPT-2と同様、自己回帰言語モデル タスクの説明もテキストと同じ入力とみなしマルチタスクを実現 ファインチューニングの問題点: ・タスクによっては十分な教師ありデータを用意するのは大変 ・ファインチューニング用の学習データを過学習してしまい、
汎化性能に影響を与える可能性 →GPT-3:少数のデータ実例に基づく転移学習 Few-shot:学習後はパラメータを更新せず、推論時にタスク説明と少数(10から 100)のデータ実例を与える One-shot:タスク説明と1つのデータ実例を与える Zero-shot:タスク説明のみ与え、全くデータ実例を与えない 61 -
汎用言語モデルの評価ベンチマーク General Language Understanding Evaluation Benchmark (GLUE)[Wang+2019] https://gluebenchmark.com/ ・文単位の理解(文法性評価、感情分析) ・文間の理解(質問応答、類似度、言い換え、推論、照応)
を問う9種類のデータセットを組み合わせている SuperGLUE[Wang+2020] https://super.gluebenchmark.com/ ・GLUEの後続。共参照などGLUEよりもハードなタスクを追加 63 -
GLUE/SuperGLUE Leaderboard Top5 (2021/05/17時点) GLUE ERNIE:90.9 ALBERT+:90.6 〜 人間:87.1 〜
BERT:82.0 SuperGLUE T5:90.4 人間:89.8 〜 BERT:69.5 64 〜 -
汎用言語モデルを実装してみよう huggingfaceのtransformers: デモやドキュメントも充実 https://github.com/huggingface/transformers 日本語だけでも168のモデルがある! https://huggingface.co/models?search=japanese Allen Institute for
AIのAllenNLP: 柔軟にカスタマイズできる https://github.com/allenai/allennlp 65 https://huggingface.co/bert-base-uncased -
汎用言語モデルは言語を理解しているか? ブラックボックスの問題 入力から予測結果に至った判断がブラックボックス化されていて本当 に言語を理解しているのか説明が難しい 自然言語推論 (Natural Language Inference, NLI)
前提文が仮説文の意味を含むか否かを判定する言語理解タスク 含意関係認識(Recognizing Textual Entailment, RTE) 前提文 子供が走っている猫を見ている 仮説文 猫が走っている 含意 前提文 子供が走っている猫を見ている 仮説文 子供が走っている 非含意 -
HANS (Heuristic Analysis for NLI Systems) [McCoy+ 2019] モデルが人のように単語の意味と文構造に従って文の意味を構成的に 理解しているか評価する目的で構築された、英語NLIデータセット
• モデルが陥りやすい3つのヒューリスティクスを定義 ◦ ヒューリスティクスに従うと非含意のケースを含意と誤判定 68 -
言語モデル・データセットの多言語化 これまでの言語処理技術は英語中心だったが、英語だけでなく多言語 でも頑健に動く言語モデルやデータセットの研究が活発に 日本語敵対的推論データセットJaNLI[Yanaka&Mineshima,2021] HANSを参考に、モデルがだまされやすいヒューリスティクスごとに日本語の言 語現象に基づく推論データセットを構築 69 subsequence 男の子
が 眠っている 女の子 を 見ている 男の子 が 眠っている 非含意 constituent ひょっとしたら 子供 が 眠っている 子供 が 眠っている 非含意 full-overlap ライダー が サーファー を 助け出した ライダー を サーファー が 助け出した 非含意 https://github.com/verypluming/JaNLI -
深層学習と自然言語処理のその他の最近の課題 汎用言語モデルの登場により、自然言語処理の研究がさらに加速 1. 入力から出力までの過程を解釈できる、説明できるモデル 解釈性(interpretability) 説明性(explainability) 公正性(fairness) 2. 言語の様々な意味を表現し、推論できるモデル 記号推論(symbolic
reasoning) 常識推論(commonsense reasoning) 多言語(multilingual) 3. マルチモーダル(画像・音声)情報との統合 human-robot-interaction 4. 少数データや計算時間など、処理効率を考慮したモデル SustaiNLP、few-shot/zero-shot learning、モデル圧縮、知識蒸留 71 -
記号推論が可能なDNNに向けて(2)モデル AdaLoGN: Adaptive Logic Graph Network[Li+, ACL2022] neural reasoningとsymbolic reasoningを行き来してテキスト中の論理関
係を表したグラフを構築し、ReClor[Yu+,2020]やLogiQA[Liu+,2020]といっ た論理的な文書読解タスクを解く 74 LogiQAの例 -
An Interpretable Neuro-Symbolic Reasoning Framework for Task-Oriented Dialogue Generation[Yang+,ACL2022] 知識ベースと照合して複数の仮説を生成し検証した上で応答文を返す
ことでタスク指向対話システムの解釈可能性を向上 77 判断根拠を生成可能なDNNに向けて(2)モデル -
78 まとめ:深層学習と自然言語処理の最近の課題 (再掲) 汎用言語モデルの登場によって自然言語処理の研究がさらに加速 まだまだ課題は山積、ぜひ一緒に研究を進めましょう! 1. 入力から出力までの過程を解釈できる、説明できるモデル 2. 言語の様々な意味を表現し、推論できるモデル 3.
マルチモーダル(画像・音声・動画)情報との統合 4. 少数データや計算時間など、処理効率を考慮したモデル 宣伝:秋学期に情報理工・大学院講義「自然言語処理応用」を 開講します。ぜひ受講してください! 自然言語処理の理論を俯瞰し、自然言語処理を用いた技術開発および 実社会応用を学びます。論文紹介・プロダクト開発のグループワークを 通して、実社会で自ら自然言語処理を用いて課題を解決することができ る知識と技術の習得を目指します。