Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
深層学習による自然言語処理の
研究動向
進藤 裕之
奈良先端科学技術大学院大学
2016-04-28
第一回ステアラボAIセミナー
1
• 進藤 裕之 (Hiroyuki Shindo)
• 所属: 奈良先端科学技術大学院大学
自然言語処理学研究室 助教
• 専門: 構文解析,意味解析
• @haplotyper (twitter), @hshindo (Github)
本日のデモ
2
深層学習による言語解析(簡易版)
https://github.com/hshindo/Merlin.jl にリンクがあります
NAISTの取り組み1: 論文解析CREST
3
知識データベース
・・・・・・・・・・・・・・
・・・・・・・・・・・・・・
・・・・・・・・・・・・・・
・・・・・・・・・・・・・・
・・・・・・・・・・・・・・
Document
Section
Paragraph
Sentence
係Dependency
・・・・・・・・・・・・・・
Word
・・・・・・・・・・・・・・
・・・・・・・・・・・・・・
・・・・・・・・・・・・・・
・・・・・・・・・・・・・・
・・・・・・・・・・・・・・
L
科学技術論文
User Interface / Document Visualization
膨大な科学技術論文からの知識獲得・編集・検索
stress sensor
Aグループ
Bグループ
Stability
Mood
Quality
Success
Rate
Speed
Aグループ
Bグループ
Pulse
ESR
BPM
impulsivity
(衝動性)
Empathy
(共感性)
Twitter
Facebook
social type
fMRI
予測
NAISTの取り組み2: 社会脳CREST
脳活動と言語情報から個人の社会的態度を予測する
最近の研究テーマ
5
• 複合表現(MWE)の解析,コーパス構築
• Ex. a number of ~, not only ... but ...
• 言語の意味解析,コーパス構築
• 自然言語処理,深層学習ツールキットの開発
自然言語処理
6
機械翻訳
Hello
こんにち
は
自動要約
Today’s news
・株価 ○○
・通常国会
・東京都、、
自動誤り訂正
He have a pen.
has?
Summary
テキストデータ
(英語,日本語,etc)
解析,編集,生成
7
Audio Image Text
離散連続連続
言語データの特徴
From: https://www.tensorflow.org/
8
• 離散シンボルの系列である
• 系列長がサンプルごとに異なる
• 階層的,再帰的な構造を有する(文字,単語,句,文)
言語データの特徴
John loves Mary .
9
構造学習としての自然言語処理
1. 系列 → 系列
• 形態素解析
• 機械翻訳,自動要約
• 質問応答,対話bot
2. 系列 → 木構造
• 構文解析
3. 系列 → グラフ構造
• 意味解析
深層学習
10
深い構造を持つニューラルネットワーク(NN)
ベクトル,行列,テンソル
微分可能な関数
入力 特徴ベクトル
深層学習とは
11
関数 f の例
• 線形関数
• 活性化関数
• Sigmoid
• Tanh
• Rectifier Linear Unit
• 畳み込み関数(Convolution)
• プーリング関数(Pooling)
etc...
言語処理における深層学習の効果
12
1. データから特徴量を自動的に学習できるようになっ
た.(他分野と同様)
2. 従来よりも広い文脈情報が扱えるようになった.
3. モデルの最適な出力の探索が簡単になった.
(貪欲法でもそこそこ精度が高い)
4. 画像・音声などを扱うモデルとの親和性が高くなり,マ
ルチモーダルなモデル構築が容易になった.
系列モデリング
13
リカレントニューラルネットワーク(RNN)
14
入力
特徴ベクトル...
LSTM, GRUなどと
組み合わせるのが主流
Long-Short Term Memory (LSTM)
15
• ゲートによって情報を選択的に通す
• メモリセルによって長期記憶を実現
• メモリセル
• 入力ゲート
• 忘却ゲート
• 出力ゲート
Gated Recurrent Unit
もよく使われる
系列モデリングに基づく言語処理
16
• 形態素解析(単語分割,品詞タギング)
• 固有表現認識
• 機械翻訳
• 自動要約
17
従来のアプローチ
品詞タグ付けタスク
DT CD JJ NNVNN
The auto maker sold 1000 cars last year.入力
出力
品詞タグ(45種類)
• DT: 限定詞 (the, a, an, ...)
• N: 名詞
• V: 動詞
• CD: 数字
• JJ: 形容詞
18
従来のアプローチ
品詞タグ付けタスク
特徴ベクトル: 高次元,スパース,バイナリ
The auto maker sold ...
1
0
0
1
...
0
1
w0 = ‘maker’
w1 = ‘sold’
W-1 = ‘auto’
w-1 w0 w1
特徴量
• w0, w1, w-1
• w0 の文字n-gram
• w0 && 文字n-gram
• w1 && 文字n-gram
• w2 && 文字n-gram
• 先頭が大文字か
• 文内での単語位置
Etc…
106~ 109
19
単語埋め込み
ベクトル
VB
The auto maker sold ...
w-1 w0 w1
ニューラルネットワーク
ニューラルネットワーク
品詞タグ付けタスク
特徴量を自動的に学習
20
ニューラルネットワーク
品詞タグ付けタスク
特徴ベクトル: 低次元,密
The auto maker sold ...
w-1 w0 w1
特徴量
ランダムに初期化
101~ 102
1.1
-0.5
-0.1
...
3.7
-2.1 自動的に学習
機械翻訳
21
(従来法) フレーズベース統計的機械翻訳
• 【学習】 フレーズのアライメント(対応関係)と翻訳モデルの
スコアを決定する.
• 【デコード】 翻訳モデルのスコアと言語モデルのスコアを考
慮して最適な翻訳を決定する.
3.2 1.45.1
明日は 英語を 学びます
? ? ?
22
RNNによる機械翻訳のモデル化
A B C D X Y Z
A B C D <eos> X Y Z
<eos>X Y Z
機械翻訳
Sutskever et al., “Sequence to Sequence Learning with Neural Networks”, Arxiv, 2014
23
アテンションに基づくRNN
A B C D <eos> X Y Z
<eos>X Y Z
どこに「注意」して翻訳するかを学習する
機械翻訳
Bahdanau et al., “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR,
2015
24
アテンションに基づくRNN
A B C D <eos> X Y Z
<eos>X Y Z
どこに「注意」して翻訳するかを学習する
機械翻訳
Bahdanau et al., “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR,
2015
25
アテンションに基づくRNN
A B C D <eos> X Y Z
<eos>X Y Z
どこに「注意」して翻訳するかを学習する
機械翻訳
Bahdanau et al., “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR,
2015
26
アテンションに基づくRNN
A B C D <eos> X Y Z
<eos>X Y Z
どこに「注意」して翻訳するかを学習する
機械翻訳
Bahdanau et al., “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR,
2015
機械翻訳
27
自動的に学習されたアテンションの例
アテンションのモデル化によっ
て,
単語と単語の対応関係(アライメ
ント)を明示的に与える必要がな
くなった.
Bahdanau et al., “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR,
2015
自動要約
28
アテンション型RNNに基づく要約
Rush et al., “A Neural Attention Model for Sentence Summarization”, EMNLP, 2015
russian defense minister ivanov called sunday for the
creation of a joint front for combating global terrorism
russia calls for joint front against terrorism
入力(原文)
出力(要約)
• 概ね機械翻訳と同じ.
• ビーム探索によって最適な要約を生成している.
言語モデル
29
<s> A cat sofa
A cat
…
…is </s>
• 文(単語列)の尤もらしさをスコア
化するモデル
• これまでの単語列から,次の単
語を予測させる.
→ 観測データに高いスコアを割
り当てるように学習させる
• RNN (with LSTM, GRU) が主流
Softmax問題
30
単語を出力する系列モデルは出力層の計算が大変
次元数:~105(=語彙数)
~105次元
~102次元
Softmax関数
入力層
中間層
出力層
Softmax問題
31
単語を出力する系列モデルは出力層の計算が大変
• 階層的Softmaxを使う手法 [Morin+ 2005]
• サンプリングに基づく手法 [Ji+ 2016]
• Softmax関数と似た別の関数を使う手法
• Sparsemax [Martins+ 2016]
• Spherical softmax [Vincent+ 2015]
• Self-normalization [Andreas and Klein 2015]
計算量を減らす or
タスク精度を上げる
ために・・・
Softmax問題(Vincentらの手法)
32
Vincent et al., “Efficient Exact Gradient Update for training Deep Networks with Very Large
Sparse Targets”, Arxiv, 2014
Wを明示的に管理しない
WD
d
D: 語彙数
Softmax問題(Vincentらの手法)
33
Vincent et al., “Efficient Exact Gradient Update for training Deep Networks with Very Large
Sparse Targets”, Arxiv, 2014
数百倍の高速化が実現できる
Softmax問題 まとめ
34
• 階層的Softmaxを使う手法 [Morin+ 2005]
• サンプリングに基づく手法 [Ji+ 2016]
• Softmax関数と似た別の関数を使う手法
• Spherical softmax [Vincent+ 2015]
• Self-normalization [Andreas and Klein 2015]
• 基本的には,学習時の計算量を減らす手法.
• テスト時の計算量を減らす手法は今後の課題.
Lateral Network
35
浅く広いネットワーク構造を使って言語モデルを高速化
Devlin et al., “Pre-Computable Multi-Layer Neural Network Language Models”, EMNLP, 2015
通常のネットワーク Lateral Network
Lateral Network
36
浅く広いネットワーク構造を使って言語モデルを高速化
Devlin et al., “Pre-Computable Multi-Layer Neural Network Language Models”, EMNLP, 2015
• 事前に行列積の計算を
行ってしまい,結果を記憶
しておく.(pre-
computation)
• 学習時にはパラメータが更
新されるため使えないが,
テスト時には大幅な高速化
となる.
画像からテキストを生成
37
Generates Image Description with RNN
Karpathy et al., “Deep Visual-Semantic Alignments for Generating Image Descriptions”, CVPR,
2015
• 画像から領域CNN(RCNN)
で領域の特徴量を学習.
• 画像の記述文はRNNで生
成.
系列モデリング: まとめ
38
• 多くの言語処理タスクは,系列モデリングの問題として解くこと
ができる.
• 現在のところ,RNN + LSTM + Attention を用いる手法がスタン
ダードになっている.
• 出力層の次元が大きいとき,Softmaxの計算をどのように効率
化するかは今度の課題.
木構造モデリング
39
再帰型ニューラルネットワーク
40
loves MaryJohn
構文木とネットワーク構造
が対応している.
特徴ベクトル
構文解析(依存構造)
41
Chen and Manning, “A Fast and Accurate Dependency Parser using Neural Networks”, ACL, 2014
フィードフォーワードネットワークによるShift-reduce解析
• Shift-reduce解析の各アクションに対するスコア計算をNNで行
う.
• 解析アルゴリズムは従来と同じだが,組み合わせ特徴量の設
計が不要になる.
構文解析(依存構造)
42
Pei et al., “An Effective Neural Network Model for Graph-based Dependency Parsing”, ACL, 2015
動的計画法に基づく解析(Eisnerアルゴリズム)
• Eisnerアルゴリズム(次スラ
イド)のスコア計算をNNで
行う.
• SHift-reduceのときと同様
に,アルゴリズムは従来と
同じだが,組み合わせ特徴
量の設計が不要となる.
(参考)Eisner’s Algorithm
43
She read a short novel.
0 1 2 3 4
Initialization
(参考)Eisner’s Algorithm
44
She read a short novel.
[0, 1, comp] + [1, 2, comp] → [0, 2, incomp]
0 1 2 3 4
(参考)Eisner’s Algorithm
45
She read a short novel.
[0, 1, comp] + [1, 2, comp] → [0, 2, incomp]
0 1 2 3 4
(参考)Eisner’s Algorithm
46
She read a short novel.
0 1 2 3 4
[0, 1, comp] + [1, 2, comp] → [0, 2, incomp]
[0, 1, comp] + [1, 2, incomp] → [0, 2, comp]
(参考)Eisner’s Algorithm
47
She read a short novel.
0 1 2 3 4
[0, 1, comp] + [1, 2, comp] → [0, 2, incomp]
[0, 1, comp] + [1, 2, incomp] → [0, 2, comp]
(参考)Eisner’s Algorithm
48
She read a short novel.
0 1 2 3 4
(参考)Eisner’s Algorithm
49
She read a short novel.
0 1 2 3 4
(参考)Eisner’s Algorithm
50
She read a short novel.
0 1 2 3 4
(参考)Eisner’s Algorithm
51
She read a short novel.
0 1 2 3 4
(参考)Eisner’s Algorithm
52
She read a short novel.
0 1 2 3 4
(参考)Eisner’s Algorithm
53
She read a short novel.
0 1 2 3 4
(参考)Eisner’s Algorithm
54
She read a short novel.
0 1 2 3 4
(参考)Eisner’s Algorithm
55
She read a short novel.
0 1 2 3 4
(参考)Eisner’s Algorithm
56
She read a short novel.
0 1 2 3 4
(参考)Eisner’s Algorithm
57
She read a short novel.
0 1 2 3 4
(参考)Eisner’s Algorithm
58
She read a short novel.
0 1 2 3 4
(参考)Eisner’s Algorithm
59
She read a short novel.
0 1 2 3 4
(参考)Eisner’s Algorithm
60
She read a short novel.
0 1 2 3 4
構文解析(句構造)
61
Dyer et al., “Recurrent Neural Network Grammars”, arXiv, 2016
LSTMによるShift-reduce解析
• トップダウンに句構造木を生成するLSTMモデルを提案
• 英語WSJでF値92.4(state-of-the-art)
構文解析(句構造)
62
木構造の線形化(linearization)
Vinyals et al., “Grammar as a Foreign Language”, Arxiv, 2015
• 木構造を推定する問題を系列モデリング(3層LSTM)で解く
• 品詞タグを使わない方が精度が高かった(!)(1pt)
(従来手法では,品詞タグの情報が無いと精度は大きく低下)
構文解析(句構造)
63
木構造の線形化(linearization)
Vinyals et al., “Grammar as a Foreign Language”, Arxiv, 2015
• モデルが不正な木構造を出力する割合は1.5%(意外と少ない)
• Attentionを入れないと精度が大きく低下
• 最終的に従来手法とほぼ同等の結果
木構造モデリング:まとめ
64
• 言語の構文解析では木構造を出力することが目的
• 従来の動的計画法,Shift-reduce法に基づくアルゴリ
ズムの場合,スコア関数をニューラルネットワークに変
える.
→ (組み合わせ)特徴量の設計が不要になる.
• 木構造の線形化によって,系列モデリングの技術をそ
のまま使う手法や,従来と同様に木構造の学習を直
接行う手法などがある.
質問応答(QA)・言語理解
65
66
質問応答
Hermann et al., “Teaching Machines to Read and Comprehend”, Arxiv, 2015
読解問題の自動回答
• CNNからデータ収集
• Bi-directional LSTM
67
質問応答
Hermann et al., “Teaching Machines to Read and Comprehend”, Arxiv, 2015
• アテンションの例
読解問題の自動回答
68
Facebook bAbi Task
• Facebookの開発した質問応答タスク
• Task 1 から Task 20 まである
• 機械が言語理解をできているか評価するためのデータセット
(人間は100%正解できることが期待される)
Weston et al., “Towards AI-Complete Question Answering: A Set of Prerequisite Toy Tasks”, arXiv,
2015
69
Facebook bAbi Task
Weston et al., “Towards AI-Complete Question Answering: A Set of Prerequisite Toy Tasks”, arXiv,
2015
• 最も難しいタスク
70
Dynamic Memory Networks
Kumar et al., “Ask Me Anything: Dynamic Memory Networks for Natural Language Processing”,
arXiv, 2015
• 入力モジュール:
入力文(または文章)をベクトル
へ変換する.
• 質問モジュール:
質問文をベクトルへ変換する.
• エピソード記憶モジュール:
入力文(と質問文)を順番に見ながら,入力のどの部分に注目する
か(アテンション)を決定し,記憶ベクトルを生成していく.これを何回
か繰り返す.
• 回答モジュール: 回答を生成する.
71
Dynamic Memory Networks
Kumar et al., “Ask Me Anything: Dynamic Memory Networks for Natural Language Processing”,
arXiv, 2015
72
Dynamic Memory Networks
Kumar et al., “Ask Me Anything: Dynamic Memory Networks for Natural Language Processing”,
arXiv, 2015
• 17: Positional Reasoning,
19: Path Finding は難しい
• 概ね正解できている
→ もう少し難しい問題が必要
(外部知識が必要なもの)
73
Xiong et al., “Dynamic Memory Networks for Visual and Textual Question Answering”, arXiv,
2016
Dynamic Memory Networks
DMN for Visual QA
畳み込みネットワーク(CNN)で画像から
特徴ベクトルを作る
74
意味解析+Visual QA
Andreas et al., “Learning to Compose Neural Networks for Question Answering”, NAACL, 2016
(Best Paper Award)
Visual QA
75
意味解析+Visual QA
Andreas et al., “Learning to Compose Neural Networks for Question Answering”, NAACL, 2016
(Best Paper Award)
1. 質問文を解析
2. 対応するニューラル
ネットワークに変換
3. 知識データベースへ
回答を問い合わせる
Visual QA
深層学習の実装
76
77
計算グラフ
計算グラフ
A, B: パラメータ行列
x, y: データベクトル
Merlin.jlによる実装例
>> x = Var()
>> y = Var()
>> A = Var(rand(8,5))
>> B = Var(rand(8,5))
>> z = A*x + B*y
>> f = Graph(z)
>> fx = f(rand(8,3),rand(8,3))
>> backward!(fx)
78
計算グラフの最適化
• 中間オブジェクトを作らずに,一度に計算した方が速い.
gemm!
BLASによるin-place演算
79
計算グラフの最適化
• キャッシング(pre-computation):
パラメータが固定されているテスト時のみ有効
W
単語
embeddings
The auto maker ...
X
concat
x1
W
1
x2
W
2
一度計算したら記憶しておく
別々に計算して
キャッシュする
80
科学技術計算に適した高速なプログラミング言語
function fib(n::Int)
if n < 2
1
else
fib(n-1) + fib(n-2)
end
end
• 動的言語だが,必要な部分(高速に処理
したい部分)には型を付けられる.
• 多次元配列,線形代数がbuilt-in
• C, pythonの関数を呼べる
• 強力なマクロ
Julia言語
本日のデモ
81
深層学習による言語解析(簡易版)
https://github.com/hshindo/Merlin.jl にリンクがあります
82
Julia言語による深層学習ライブラリ
Deep Learning: https://github.com/hshindo/Merlin.jl
NLP: https://github.com/hshindo/Jukai.jl
それぞれJulia100行程度で書けます
デモの中身:
1. 文分割
2. トークナイズ(単語分割)
3. 品詞タグ付け
83
in getting their money back
... ... ... ...
g e t t i n gi n b a c k
... ...
... ... ... ...
文字レベル
CNN
特徴ベクトル
単語レベル
CNN
CNN based POS-Tagging [Santos+ 14]
g e t t i n g
10 dim.
<s> <e>
CNN based POS-Tagging [Santos+ 14]
g e t t i g
... ... ... ...
max-pooling
10 dim.
max
n<s> <e>
文字列から重要な
特徴を抽出
CNN based POS-Tagging [Santos+ 14]
86
ミニバッチ化
• 言語データは,系列長が可変長.
• モデルによっては,ミニバッチ化(複数サンプルを
まとめて処理して高速化)が困難なケースもある.
• 先ほどの品詞タガーでは,文字レベルのCNNと単
語レベルのCNNが階層的に結合されており,ミニ
バッチ化が難しい
• CPUの実装では実行速度に差が出る.
実験結果
87
Method タグ付け精度
単語CNNのみ 96.83
単語CNN + 文字CNN 97.28
• 学習データ: WSJ newswire text, 40k sentences
• テストデータ: WSJ newswire text, 2k sentences
実験結果
88
0
200
400
600
800
1000
1 2 4 8 16 32 64
実行時間[sec]
バッチサイズ [文]
Merlin.jl
Theano
Chainer
学習時間の計測結果(CPU)
進藤ら, “Julia言語による深層学習ライブラリの実装と評価”, 人工知能学会全国大会, 2016
実験結果
89
テスト時間の計測結果(CPU)
(1文ずつ処理した場合)
進藤ら, “Julia言語による深層学習ライブラリの実装と評価”, 人工知能学会全国大会, 2016
※ミニバッチサイズを大きくすれば差は縮まっていく.
90
まとめ
• 深層学習の最近の論文について紹介した.
• 深層学習の手法も大事だが,データセットの開発・公
開も同様に重要.
• テキストの意味理解は今後の大きな課題.
• マルチモーダル(画像,音声)との同時モデルが今後
発展していくことが期待される.

More Related Content

深層学習による自然言語処理の研究動向