ニューラルネットワークを⽤いた
⾃然⾔語処理
⾼瀬 翔
東京⼯業⼤学
2021/12/17
1
略歴
• 2008-2017︓東北⼤学(学⼠-博⼠)
• 2017-2018︓NTT CS研(ポスドク)
• 2018-2020︓東⼯⼤(研究員)
• 2020- ︓東⼯⼤(助教)
• ⾃然⾔語処理の研究に従事
– 特に系列変換タスクに取り組む
• 機械翻訳・要約⽣成など
– 有名な機械翻訳のベンチマークで世界1位
» 2位がFacebook, 3位がGoogle
– 要約のベンチマークでも世界1位
– 最近は効率的なニューラルモデルの研究に従事
2
⾃然⾔語処理とは
• ⼈の⽤いる⾔葉(⾃然⾔語)を計算機で処理する
– 翻訳,要約,情報検索,情報抽出,…
3
ウンベルト・エーコの新作,『バウドリーノ』
は農⺠の⼦バウドリーノがバルバロッサとも呼
ばれる神聖ローマ皇帝フリードリヒ1世に寵愛
され,⼗字軍に随⾏する物語.前半は史実を元
にした展開となっているが,物語が進むにつれ
て,史実からは⼤きく外れ,想像⼒に富んだ
エーコの筆致が……
エーコの新作,
史実と想像⼒のまじわる冒険物語
Baudolino, a new novel by
Umberto Eco, is the story of
a peasant boy Baudolino
who is favored by the Holy
Roman Emperor Friedrich I,
also known as Barbarossa,
and accompanies him on
the 3rd crusade ……
作品名 バウドリーノ
著者 ウンベルト・エーコ
… …
情報抽出
要約
翻訳
近年の⾃然⾔語処理
ニューラルネットを⽤いた⼀貫処理
• 複数モデルの組み合わせからオールインワンのモデルへ
• 従来の翻訳︓翻訳モデルと⾔語モデルの組み合わせ
– P( ⽇ | 英 ) ≃ P( 英 | ⽇ ) P( ⽇ )
• 2015年辺りからの翻訳︓ニューラルモデルで出⼒を直に⽣成
– P( ⽇ | 英 ) をニューラル翻訳モデルで計算
• 複数モデルの組み合わせによるエラー伝播を解消
4
Where is my cat?
私 猫 どこ ︖
私の 猫は どこ ︖
私 猫は どれ ︖
…
私の猫はどこ︖
翻訳モデル
P( 英 | ⽇ )
⾔語モデル
P( ⽇ )
Where is my cat? 私の猫はどこ︖
ニューラル翻訳
モデル
すべてのタスクを⾏うモデルも
• ⼤規模コーパスで⾔語モデルを学習
• 応⽤タスクでの学習なしに適⽤可能に
– 問題の説明 + 問題を⼊⼒
5
ウンベルト・エー
コの新作,『バウ
ドリーノ』は農⺠
の⼦が……
Baudolino, a new
novel by Umberto
Eco, is the story of
a peasant boy ……
⼤量の⽂書で
⾔語モデルを学習
English to Japanese:
Where is my cat?
私の猫はどこですか︖
Summarization:
ウンベルト・エーコの新作,『バウドリーノ』は農⺠
の⼦バウドリーノがバルバロッサとも呼ばれる……
エーコの新作,
史実と想像⼒のまじわる冒険物語
今⽇の話題
• ニューラルネットワークの基本構造
• ⾃然⾔語処理のためのニューラルモデル
• 学習⽅法
• 最近の話題
– 事前学習モデル
– 効率的なモデル
6
ニューラルネットワークの基本構造
• ⾏列積と⾮線形変換の組み合わせ
• 例︓1層のニューラルネットを考える
– ⼊⼒⽂に動物を含む確率を出⼒するネットワーク
• 例えば以下のような出⼒が欲しい
– ⽝が草原を⾛っている → 1
– 草原に⽯が転がっている → 0
7
⼊⼒︓
⽂中の名詞
重み︓
判定への寄与度
⾮線形変換︓
シグモイドで確率化
⽝
草原
⽯
ネットワーク構成
1 / (1 + e-x)
2.8
0.0
-3.1
ニューラルネットワークの基本構造
• ⾏列積と⾮線形変換の組み合わせ
• 例︓1層のニューラルネットを考える
– ⼊⼒⽂に動物を含む確率を出⼒するネットワーク
• 例えば以下のような出⼒が欲しい
– ⽝が草原を⾛っている → 1
– 草原に⽯が転がっている → 0
8
⽝
草原
⽯
1 / (1 + e-x)
2.8
0.0
-3.1
⽝
草原
⽯
1 / (1 + e-x)
2.8
0.0
-3.1
「⽝が草原を⾛っている」の場合
1.0
1.0
0.0
「草原に⽯が転がっている」の場合
重み付き和
0.0
1.0
1.0
2.8 -3.1
0.94 0.04
重み付き和
内積を⽤いて表現してみる
• 先の 1層ニューラルネットは内積で書ける
9
⼊⼒︓
⽂中の名詞
重み︓
判定への寄与度
⾮線形変換︓
シグモイドで確率化
⽝
草原
⽯
1 / (1 + e-x)
2.8
0.0
-3.1
[2.8 0.0 -3.1]
x1
x2
x3
x1
x2
x3
[
]
= 2.8 × x1 + 0.0 × x2 -3.1 × x3
重み・⼊⼒を w,x ベクトルとすると w・x(内積)
シグモイド関数を
適⽤する直前までを
数式で表すと
複数出⼒・多層への拡張
• 複数次元のベクトルを出⼒する
– 重みベクトルを重み⾏列にする
• 3次元ベクトル → 2次元ベクトル︓2 × 3次元の重み⾏列
• 多層にする
– 複数の重み⾏列を⽤意する
– ⾏列積 → 活性化関数(⾮線形変換)→ ⾏列積 → …
• 複雑なネットワークでも基本は同じ
10
w11 w12 w13
w21 w22 w23
x1
x2
x3
[
]
w11 × x1 + w12 × x2 + w13 × x3
w21 × x1 + w22 × x2 + w23 × x3
=
2 × 3 の⾏列
[ ]
今⽇の話題
• ニューラルネットワークの基本構造
• ⾃然⾔語処理のためのニューラルモデル
• 学習⽅法
• 最近の話題
– 事前学習モデル
– 効率的なモデル
11
⾃然⾔語処理に適⽤したい
• 問題点︓⽂をどう⼊⼒するか︖
– ニューラルネットワークの⼊⼒はベクトル
– ⾃然⾔語の⽂はベクトルではない
• どのようにベクトル化するか︖
• 単純な解決法︓Bag-of-Wordsベクトルで表現
– 単語の出現頻度を要素としたベクトル
• Where is my cat →
12
[0 0 1 … 1 … 1 … 1 … 0 0 0]
a the is my cat
where
Bag-of-Words での問題点
• 問題点1︓語の類似性を扱えない
– 私は⽝を飼っている
– 私は猫を飼っている
• 問題点2︓語順の違いを扱えない
– 歩きが好きだが今⽇は⾞で来た
– ⾞が好きだが今⽇は歩いて来た
13
意味は異なるが
同じ表現
表現は異なるが
似た意味
問題点の解決法
• 問題点1︓語の類似性を扱えない
– 私は⽝を飼っている
– 私は猫を飼っている
• 解決法︓埋め込み表現を使⽤
• 問題点2︓語順の違いを扱えない
– 歩きが好きだが今⽇は⾞で来た
– ⾞が好きだが今⽇は歩いて来た
• 解決法︓系列を扱うネットワークを使⽤
14
意味は異なるが
同じ表現
表現は異なるが
似た意味
問題点の解決法
• 問題点1︓語の類似性を扱えない
– 私は⽝を飼っている
– 私は猫を飼っている
• 解決法︓埋め込み表現を使⽤
• 問題点2︓語順の違いを扱えない
– 歩きが好きだが今⽇は⾞で来た
– ⾞が好きだが今⽇は歩いて来た
• 解決法︓系列を扱うネットワークを使⽤
15
意味は異なるが
同じ表現
表現は異なるが
似た意味
埋め込み表現︓
単語の実数ベクトルによる表現
• 埋め込み表現︓各単語に対応した実数ベクトル
– ベクトル空間上で各単語の特徴を共有
– 似た単語は似た埋め込みに
• ランダムな値で初期化,学習を通じて特徴を反映
16
0.64 -1.46 0.03 … 0.28
似た単語=似た埋め込み
異なる単語は遠いベクトル
0.78 -1.22 0.15 … 1.25
dog:
cat:
train: -1.53 1.08 0.07 … -0.43
単語の数だけベクトルを⽤意
2次元で
表現すると…
dog
cat
train
bike
埋め込みを⼊⼒として使う
• 単語の数だけ埋め込み表現を⽤意
– 埋め込みベクトルの次元数 × 単語数の⾏列
17
17
ニューラル機械翻訳器
Where is my cat
私の猫はどこですか︖
各単語に対応する
埋め込み表現
(列ベクトル)を
⾏列から抜き出して
⼊⼒する
問題点の解決法
• 問題点1︓語の類似性を扱えない
– 私は⽝を飼っている
– 私は猫を飼っている
• 解決法︓埋め込み表現を使⽤
• 問題点2︓語順の違いを扱えない
– 歩きが好きだが今⽇は⾞で来た
– ⾞が好きだが今⽇は歩いて来た
• 解決法︓系列を扱うネットワークを使⽤
18
意味は異なるが
同じ表現
表現は異なるが
似た意味
系列を扱う代表的なネットワーク
• Recurrent Neural Network (RNN)
– RNN の発展型
• Long Short-Term Memory (LSTM)
• Gated Recurrent Unit (GRU)
– 系列変換タスクのための⼯夫︓アテンション
• Transformer
19
系列を扱う代表的なネットワーク
• Recurrent Neural Network (RNN)
– RNN の発展型
• Long Short-Term Memory (LSTM)
• Gated Recurrent Unit (GRU)
– 系列変換タスクのための⼯夫︓アテンション
• Transformer
20
Recurrent Neural Network (RNN)
• 埋め込み(またはベクトル)と⾃⾝の出⼒を⼊⼒
– 原型は1980年代に提案される
• 様々な発展型が存在
21
RNN
Where is my cat
RNN RNN RNN
出⼒を次のタイムステップ
の⼊⼒としても使⽤
時刻 t の埋め込みを et 出⼒を ht
活性化関数を f とし
重み⾏列を W, U とすると
ht = f (W et + U ht-1)
語順が変わると違う結果に
• ⼊⼒が where is の場合
– where を⼊⼒︓h0 = f (W ewhere)
– is を⼊⼒︓ h1 = f (W eis + U h0)
= f (W eis + U f (W ewhere))
• ⼊⼒が is where の場合
– is を⼊⼒︓h0 = f (W eis)
– where を⼊⼒︓h1 = f (W ewhere + U h0)
= f (W ewhere + U f (W eis))
22
RNNの問題点
• 情報を⻑期間保持できない
– 式︓ht = f (W et + U ht-1)
– 活性化関数 f は多くの場合 tanh
• tanh︓値域は -1 から 1
• 値域が⼤きい活性化関数を使うと発散する危険がある
• 過去の⼊⼒に何度も tanh が適⽤される
– ht = f (W et + U ht-1)
= f (W et + U f (W et-1 + U ht-2))
= f (W et + U f (W et-1 + U f (W et-2 + U ht-3))) = …
– tanh を繰り返す → 値が減少 → 過去の情報が消失
23
改善モデル︓LSTM
• RNNの問題点︓過去の情報が消失
– tanh を繰り返すことで値が減衰していく
• 解決法︓値を保持する部分を⽤意する
– メモリセル︓ct ,ゲート︓
24
Ct
LSTM
活性化関数として
シグモイド(σ)を使⽤
閾値が 0 から 1 のベクトル
it
ft
ot
ft = σ (Wf et + Uf ht-1)
it = σ (Wi et + Ui ht-1)
ot = σ (Wo et + Uo ht-1)
It = tanh(WI et + UI ht-1)
ct = ft × ct-1 + it × It
ht = ot × tanh(ct)
LSTMの挙動
• ゲートの全要素が常に 1 の場合
– メモリセルに過去の全ての情報 It が⾜される
– ct = ft × ct-1 + it × It = ct-1 + It
= ct-2 + It-1 + It = ct-3 + It-2 + It-1 + It = …
→ 過去の全ての情報が保持される
= 単純なRNNよりも⻑期間情報を保持可能
• 実際には各ゲートの値で情報を調整する
– ⼊⼒ゲート it ︓⼊⼒する情報の量を調整
– 忘却ゲート ft ︓メモリセルから情報を消す調整
– 出⼒ゲート ot ︓出⼒する情報の量を調整
25
それでも⻑過ぎる系列は難しい
• 英-⽇翻訳で考えると
– I started reading Baudolino, written by Umberto Eco,
because I found it at the library yesterday. を訳す
• 最初の情報を最後まで格納しなければならない
– 理論的には可能だが難しい
• 例えば f の値が常に 0.9 だとしても 20 ステップ後には 0.1
• 20 ステップ前の⼊⼒の情報は失われる
– 実際にはもう少し複雑
26
LSTM
I started reading 昨⽇ 読み 始めた
… …
LSTM LSTM LSTM
… LSTM LSTM
…
情報伝達の経路を短くする
• アテンションを使う
– 翻訳では対応する語の間に経路をつくる
• 実際には各ノードの重み(対応する確率)を計算して接続
27
LSTM
I started reading 昨⽇ 読み 始めた
… …
LSTM LSTM LSTM
… LSTM LSTM
…
アテンション
o1
o2
…
[
]
[ ot ]
a1
a2
…
[
]
ot へのアテンション︓
出⼒ ot 間の
内積から確率を計算
アテンションを使った接続
対応する確率の重み付き和
各出⼒間の
内積計算
計算結果の
確率化
softmax 関数
を使⽤
実⽤例︓系列変換タスク
• 系列変換タスク︓翻訳,要約,⾳声認識など様々
• エンコーダ・デコーダモデルを使⽤
– エンコーダ,デコーダを⽤意
– アテンション︓デコーダからエンコーダをつなぐ
28
LSTM
I started yesterday 昨⽇ 図書館
… …
LSTM LSTM LSTM
… LSTM …
アテン
ション
アテン
ション
図書館 で
出⼒単語を
次の⼊⼒に
エンコーダの重み付き和と
組み合わせて出⼒を計算
RNN・LSTM の問題
• 系列を計算し終えるまでが遅い
– 時間に依存するので並列計算ができない
– RNN: ht = f (W et + U ht-1)
– LSTM: It = tanh(WI et + UI ht-1)
29
LSTM
I started
LSTM
started の時点の⼊⼒は I を⼊⼒した計算結果
さらなる発展︓Transformer
• 系列の各時刻について並列計算を可能に
– 並列計算により RNN・LSTM より速い
– アテンションで計算を⾏う
• ⼊⼒も含めたアテンション︓セルフアテンション
30
I started reading
Transformer Transformer Transformer
…
…
詳細な Transformer の構造
31
Layer Norm
Attention
FFN
Layer Norm
Layer Norm
Attention
FFN
Layer Norm
Layer Norm
Attention
× N
× N
Attention
Layer Norm
Layer Norm
Attention
Layer Norm
Layer Norm
FFN
Attention
Layer Norm
× N
× N
FFN
Layer Norm
(a) Post-LN (b) Pre-LN
(1)
(3)
(2)
(4)
(5)
Layer Normalization: 出⼒のベクトルを平均 0,
分散1 にして発散を防ぐ
Feed Forward Net: 重み⾏列 + 活性化関数
セルフアテンション
Residual Connection: 勾配消失を防ぐ
系列を扱うネットワークまとめ
• RNN︓系列を扱う単純なモデル
– ⾃⾝の出⼒を⼊⼒
– ⻑距離の情報の保存は難しい
• LSTM︓RNNの拡張
– メモリセルを⽤いることで情報の保持が可能
• 単純なRNNよりも⻑い系列を扱える
– ⻑過ぎる系列はやはり難しい
• アテンション︓新しく経路を設ける⼿法
– ⼊⼒に新たな経路を設ける
• 必要な情報までの経路を短くする
• Transformer︓並列処理で⾼速にしたモデル
– RNN系は前の時刻の処理が終わるまで計算不可能
– 各時刻の計算を独⽴に可能にすることで並列化
• ⼊⼒⾃⾝へのアテンション︓セルフアテンションで実現
32
今⽇の話題
• ニューラルネットワークの基本構造
• ⾃然⾔語処理のためのニューラルモデル
• 学習⽅法
• 最近の話題
– 事前学習モデル
– 効率的なモデル
33
パラメータの学習
• パラメータ(重み⾏列)はランダムに初期化
– 初期は出⼒もランダム
– 良い出⼒のニューラルネットをどう得るか︖
• 学習︓訓練データを再現するパラメータを求める
– 正確には訓練事例との誤差を最⼩化する
– 翻訳の場合︓対訳の⽂対が訓練データ
• 数⼗万以上の⽂対が必要
34
英-⽇翻訳の訓練データ
I have a dog
I have read the book
…
⽝を飼ってます
その本は読み終わった
…
データ数が多いほど性能も良い
• 訓練データが⼤きいほど性能向上
– 翻訳の訓練に使⽤する対訳⽂数を変えると……
35
Because 30 years
ago, I'm from New
Jersey, and I was six,
and I lived there in my
parents' house in a
town called Livingston,
and this was my
childhood bedroom.
30年前 私は
ジャージー出⾝で
6歳でした 両親の
家にはLiventとい
う町に住んでいま
した これは ⼦ど
もの寝室でした
30 年前 私は
ニュージャージー
出⾝で6歳でした
両親の住むリビン
グトンという町に
住んでいました こ
れは⼦供の頃の寝
室です
およそ30年前
スズズズズズズ
ズズで 私の頃
です
翻訳元の英⽂
1万 10万 20万
(確率的)勾配降下法
• 学習の⽬的︓訓練事例との誤差を最⼩化
• まずは⽬的関数(誤差)E を定義
– 翻訳の場合︓正解の単語を出⼒する確率を最⼤化
• 確率 p の最⼤化=負の対数尤度 - log p の最⼩化
• E を最⼩に近づけていく
– 値が⼩さくなる点(極⼩点)を探す
– モデルの勾配を計算 → 下げる⽅向にパラメータ w を動かす
36
確率的勾配降下法の⼿続き
1. 訓練事例から少数の事例をサンプル
2. E を計算
3. 勾配計算
4. パラメータの更新
5. 1. に戻る
勾配 を計算
減少させる側に動かす
⾏きたい点
誤差逆伝播
• 中間層の勾配の計算法
– 微分の連鎖律(合成関数の微分)を適⽤して求める
– 上の層の勾配が下に伝わっていく
37
出⼒ E
重み W1 中間層 u 重み W2
⼊⼒ e
勾配
下の層の勾配計算に上の層の勾配を使⽤
今⽇の話題
• ニューラルネットワークの基本構造
• ⾃然⾔語処理のためのニューラルモデル
• 学習⽅法
• 最近の話題
– 事前学習モデル
– 効率的なモデル
38
事前学習モデルとは
• 事前学習モデル︓ELMo, BERT, GPT, …
– ⼤量の⽂書でモデルを学習
– 対象タスクでパラメータを調整(ファインチューニング)
• 対象タスクが翻訳の場合
39
ウンベルト・エー
コの新作,『バウ
ドリーノ』は農⺠
の⼦が……
Baudolino, a new
novel by Umberto
Eco, is the story of
a peasant boy ……
対訳⽂でパラメータを調整
Where is my cat?
私の猫はどこですか︖
ウンベルト・エー
コの新作,『バウ
ドリーノ』は農⺠
の⼦が……
Baudolino, a new
novel by Umberto
Eco, is the story of
a peasant boy ……
⼤量の⽂書で
⾔語モデルを学習
事前学習モデルとは
• 事前学習モデル︓ELMo, BERT, GPT, …
– ⼤量の⽂書でモデルを学習
– 対象タスクでパラメータを調整(ファインチューニング)
• 対象タスクが翻訳の場合
40
ウンベルト・エー
コの新作,『バウ
ドリーノ』は農⺠
の⼦が……
Baudolino, a new
novel by Umberto
Eco, is the story of
a peasant boy ……
対訳⽂でパラメータを調整
Where is my cat?
私の猫はどこですか︖
ウンベルト・エー
コの新作,『バウ
ドリーノ』は農⺠
の⼦が……
Baudolino, a new
novel by Umberto
Eco, is the story of
a peasant boy ……
⼤量の⽂書で
⾔語モデルを学習 なぜ⾔語モデルを
学習すると良い︖
おさらい︓データ数が多いほど性能も良い
• 訓練データが⼤きいほど性能向上
– 翻訳の訓練に使⽤する対訳⽂数を変えると……
41
Because 30 years
ago, I'm from New
Jersey, and I was six,
and I lived there in my
parents' house in a
town called Livingston,
and this was my
childhood bedroom.
30年前 私は
ジャージー出⾝で
6歳でした 両親の
家にはLiventとい
う町に住んでいま
した これは ⼦ど
もの寝室でした
30 年前 私は
ニュージャージー
出⾝で6歳でした
両親の住むリビン
グトンという町に
住んでいました こ
れは⼦供の頃の寝
室です
およそ30年前
スズズズズズズ
ズズで 私の頃
です
翻訳元の英⽂
1万 10万 20万
訓練データを無数につくれるか︖
• 時間・⾦銭的な⾯で難しい
– 例えば翻訳では……
• 訓練データとしてある⾔語の⽂の対訳が必要
• 新聞記事の⽇ → 英翻訳︓約1300円 / ⽂
• ニューラルモデル学習には100万⽂対以上欲しい=13億円!?
• 解決策︓既にあるデータを活⽤
– 例えば翻訳では……
• 同⼀内容について複数⾔語で書かれている記事を利⽤
42
ある事柄について
⽇本語,英語の
Wikipediaから
対訳⽂を抽出
⾔語モデルの訓練データは構築が容易
• ⾔語モデル︓⾃然⾔語としての確からしさを計算
– 同時確率を条件付き確率の積で計算
• ⾔語モデルの学習︓各⽂脈(単語列)の次に出現する単語を予測
• 任意の(⾃然⾔語の)⽂書=⾔語モデルの訓練データ
– Wikipediaの⽂書がそのまま(追加でタグ付けなどなしに)使える︕
43
Encoder-Decoder
RNN Encoder-Decoder
P(I have a dream) > P(a have I dream) > P(fuga spam hoge)
:
•  RNN
• 
P(I have a dream)
= P(I)P(have | I)P(a | I have)P(dream | I have a)
I have a dream
何らかのニューラルネット
I have a
I have a dream
<BOS>
I have a
dream that
one day …
44
何らかのニューラルネット
I have a
I have a dream
<BOS>
何らかのニューラルネット
MASK MASK a
I have
<BOS>
マスクド⾔語モデル(BERT系)
⼊⼒の⼀部をマスクし,その単語を予測
⼊⼒系列 X について次を最⼤化
マスクする単語を
ランダムに選択
マスクされた
単語を予測
⾔語モデル(GPT系)
与えられた⽂脈に対し次の単語を予測
⼊⼒系列 X について次を最⼤化
k-1から1つ前までの
単語を⽂脈とする
⽂脈の次の
単語を予測
• 学習⽅法で 2種に⼤別
– 構造は主に Transformer
有名な事前学習モデル
問題︓必要な計算資源の増加
• 事前学習モデルのパラメータ数増加が著しい
– パラメータ数が増えると性能も上がる
• 性能はパラメータ数に対数⽐例(Scaling law)
• 学習パラメータが多い=多量の計算資源が必要
– モデルの圧縮や軽量化(パラメータ削減)が課題
45
117M
110M
1.5B
8.3B
17B
175B
1年で1000倍以上に
膨れ上がっている
ここまでのまとめ
• 訓練データが増える=性能向上
– ⾔語モデルの訓練データは構築が容易
• 任意の⽂書がそのまま⾔語モデルの訓練データ
• 質の良い⾔語モデルは応⽤タスクに有⽤
– 事前学習モデルの隆盛(BERT,GPT)
1. ⼤規模コーパスで⾔語モデルを学習
2. タスク⽤の訓練データでパラメータを調整
• 問題︓必要な計算資源が増加している
– 性能はパラメータ数に対数⽐例
→ パラメータ数の著しい増加
46
パラメータ数削減の戦略
• 蒸留(Distillation)
– 学習済みモデルの出⼒を⼩規模モデルで再現
• モデル圧縮
– 学習済みモデル内の不要なパラメータを削除
• 不要︓予測への貢献が⼩さいパラメータ
• 軽量なモデルの設計
– 最初から少数のパラメータで学習
• 最近の⾼瀬の研究対象
47
蒸留(Distillation)
• 学習済みモデルの出⼒を⼩規模モデルで再現
– ⾔語モデルの学習を例に
• 系列変換タスク⽤の⼿法は次スライドで
48
Baudolino, a new
novel by Umberto
Eco, is the story of
a peasant boy ……
元となるモデル
(教師モデル)
の学習
⼩さなモデル
(⽣徒モデル)
の学習
Baudolino, a new
novel by Umberto
Eco, is the story of
a peasant boy ……
Baudolino, a new
Baudolino, a new
novel
⽂脈を⼊⼒し,
次の単語を予測
Baudolino, a new
novel 教師モデルの
出⼒を再現する
ように学習
通常の学習
(次の単語
を予測)
系列変換タスクでの蒸留
• 教師モデルの⽣成した系列で⽣徒モデルを学習
– 経験的に性能が良く,実装も楽
49
1. 通常の訓練データで
教師モデルを学習
ウンベルト・エー
コの新作,『バウ
ドリーノ』は農⺠
の⼦が……
Baudolino, a new
novel by Umberto
Eco, is the story of
a peasant boy ……
『バウドリーノ』
(ウンベルト・
エーコの新作)は
農⺠の⼦が…
Baudolino, a new
novel by Umberto
Eco, is the story of
a peasant boy ……
2. 教師モデルで
訓練データを再⽣成
Baudolino, a new
novel by Umberto
Eco, is the story of
a peasant boy ……
『バウドリーノ』
(ウンベルト・
エーコの新作)は
農⺠の⼦が…
3. 教師モデルの
⽣成した訓練データで
⽣徒モデルを学習
モデル圧縮
• 学習済みモデル内の不要なパラメータを削除
– 不要︓予測への貢献が⼩さいパラメータ
– 基本戦略︓パラメータの値の絶対値で判断
• 絶対値の⼩さいパラメータをゼロに
• 近年の発展︓Lottery Ticket Hypothesis
– パラメータ削除に関する妥当性と戦略の議論
50
Lottery Ticket Hypothesis とは
• ニューラルモデルは同等の性能を達成可能な部分ネット
(subnetwork)を持つ
– ニューラルモデルは⾼い性能を達成可能な当選クジを含む
• ⼤量のパラメータ︓抽選クジ
• 良い部分ネット︓当選クジ
• どのように良い部分ネットを発⾒するか︖
– 学習とパラメータ削除を繰り返す
51
学習
寄与の⼩さい
パラメータを
削除
残りの
パラメータを
初期値に戻す
再度学習
パラメータ数削減の戦略
• 蒸留(Distillation)
– 学習済みモデルの出⼒を⼩規模モデルで再現
• モデル圧縮
– 学習済みモデル内の不要なパラメータを削除
• 不要︓予測への貢献が⼩さいパラメータ
• 軽量なモデルの設計
– 最初から少数のパラメータで学習
• 最近の⾼瀬の研究対象
52
⾃然⾔語処理のニューラルモデルの構造
と⾼瀬の最近の研究
• 埋め込み︓各単語を表すベクトル表現
• 中間層︓ニューラルモデルの埋め込み以外
– Transformer が最近のスタンダード
53
ニューラル⾔語モデル
I have a
P(I) P(have | I) P(a | I have) P(dream | I have a)
<BOS>
0.83 -1.56 0.37 … -0.42
I
埋め込み表現
を⼊⼒
Layer Norm
Attention
FFN
Layer Norm
Laye
Att
Laye
Laye
Att
× N
(a) Post-LN
(1)
(3)
(2)
(4)
(5)
中間層
(Transformer)
軽量な埋め込み(NeurIPS 20)
学習時間効率の良い正則化(NAACL 21)
共有によるパラメータ効率化(ArXiv)
Layer Norm の⾒直しで効率化
⾃然⾔語処理のニューラルモデルの構造
と⾼瀬の最近の研究
• 埋め込み︓各単語を表すベクトル表現
• 中間層︓ニューラルモデルの埋め込み以外
– Transformer が最近のスタンダード
54
ニューラル⾔語モデル
I have a
P(I) P(have | I) P(a | I have) P(dream | I have a)
<BOS>
0.83 -1.56 0.37 … -0.42
I
埋め込み表現
を⼊⼒
Layer Norm
Attention
FFN
Layer Norm
Laye
Att
Laye
Laye
Att
× N
(a) Post-LN
(1)
(3)
(2)
(4)
(5)
中間層
(Transformer)
軽量な埋め込み(NeurIPS 20)
学習時間効率の良い正則化(NAACL 21)
共有によるパラメータ効率化(ArXiv)
Layer Norm の⾒直しで効率化
おさらい︓埋め込み表現とは
• 埋め込み︓各単語に対応した実数ベクトル
– ニューラルネットには埋め込みを⼊⼒
– 各単語に固有=次元数(De ) × 語彙数(V )の⾏列
55
何らかの(M層)ニューラルネット
I have a
P(I) P(have | I) P(a | I have) P(dream | I have a)
<BOS>
0.83 -1.56 0.37 … -0.42
I
単語を埋め込み表現に変換し,
ニューラルネットに⼊⼒
V
De
0.83
…
-0.42
埋め込み表現の⾏列から
単語に対応する埋め込みを抽出
語彙数は数万〜数⼗万
→ 埋め込み⾏列はニューラルモデルの
重み⾏列の中で最⼤の⾏列
(英-独翻訳の Transformer では
全パラメータの 1/4)
従来の軽量化︓⾏列分解的な⼿法
• 埋め込み⾏列を複数の⾏列に分解
– ⼩さな次元数 × 語彙数の⾏列を⾏列演算で拡張
• 2 つに分解する [Lan+ 20]
• より複雑な分解 [Mehta+ 20]
• 問題点︓語彙数に依存した⾏列は必要
– 語彙数は数万〜数⼗万=巨⼤な⾏列が存在
• 語彙数に依存した学習パラメータを撤廃できないか︖
56
次元数×語彙数 ×
=
次元数×語彙数
×
=
× 結合
語彙数に依存した学習パラメータを撤廃
• 従来︓各語に固有の埋め込み表現を⽤意
• 本研究︓各語に固有のランダムベクトルを⽤意
– ランダムベクトルと共有パラメータから埋め込みを構築
• ランダムベクトルをどう構築するか︖
– 素朴には次元数 × 語彙数
– もっとメモリ効率の良い⼿法はないか︖
57
o
mw
FFN
ew
学習パラメータは
o と FFN のみ
→ 学習パラメータが
語彙数に⾮依存
ランダムベクトル
(各語に固有)
共有の埋め込み 各語の埋め込み
ランダムベクトル mw の構築
• M 個のランダムベクトルを組み合わせる
• 組み合わせが完全に衝突することはほぼない
– 確率は 1 - exp(-V2 / 2(cM))
– 例えば翻訳(c = 64, M = 8, V = 37K)では 1.0 × 10-6 で衝突
58
ランダム⾏列
,… + …
+
各単語に対してランダムに列ベクトルを割り当て,組み合わせる
mw
Do
c M
ランダムベクトルの組み合わせで mw を構築
Do × c × M < De × V
おまけ︓語彙を減らす
• 語彙 V が⼤きすぎるならば V を減らせば︖
– 単純には⽂字を使う
• 英語なら数⼗万 → 数百(52 + 数字 + 記号)
– 英語アルファベット 26 ⽂字の⼤⽂字・⼩⽂字を区別
– ⽂字では情報が少なすぎる
• ⽂字と単語の折衷の表現を使う
– サブワード︓⾼頻度な⽂字列をまとめて語彙とする
• 単語が途中で切れている場合には特殊⽂字(@)を使⽤
• Because 30 years ago, this …
→ Be@ cause 30 year@ s a@ go , th@ is …
– サブワードの構築⼿法
• Byte Pair Encoding (BPE)
• Unigram language model
• 実⽤的にはサブワードで語彙を 2 - 3万程度にする
59
@ を消すと元に戻る
今⽇のまとめ
• ニューラルネットの基本構造︓⾏列積 + ⾮線形変換
• ニューラルネットの⾃然⾔語処理への適⽤
– 埋め込み表現で⼊⼒をベクトル化
– 系列を扱うモデル︓RNN, LSTM, Transformer
• 事前学習モデルの隆盛
– ⾔語モデルを学習 → ⽬的のタスクで調整
– 問題︓必要な計算資源の指数的な増加
• 効率的なモデルが必要
– 蒸留,圧縮,軽量なモデルの設計
60
雑談︓研究って何︖
• 未知の(有⽤な)知⾒を得ること
– 例えば…
• 便利な(速い,省メモリ,性能が良い)⼿法を提案
• モデルの挙動に論理的な説明を与える
• 有⽤な知⾒を世間に広めること
– どうやって広める︖ → 論⽂で広める
61
雑談︓論⽂って何︖
• 査読あり/なしで⼤別
– 査読︓論⽂の主張が正確かどうか複数⼈で判断
• 主張の良さ(知⾒の嬉しさ)を判断することも
– 論⽂誌や国際会議論⽂は基本的に査読あり
• 論⽂誌と国際会議のどちらを重要視するかは分野次第
• トップ論⽂誌/国際会議に出すことが重要
– 多くの⼈が読む → 研究の知⾒が広く伝わる
– トップに通っている → 良い論⽂ではない
• 良い研究 → トップに通る可能性が⾼いはおそらく真
62
雑談︓研究の進め⽅
• 達成すると嬉しいことを考える
– 嬉しさが⼤きい問題はとても難しいことが多い
– 難度と嬉しさでバランスの良い点を探る
• 仮説 → 検証を何度も繰り返す
– たいていの仮説は誤っている
– 仮説があってそう → 詳細な検証を⾏う
• 論⽂にまとめる
• 仮説 → 検証のプロセスが主
– 検証の速度と発想を⾒直す柔軟さ,タフさが必要
63

ニューラルネットワークを用いた自然言語処理