Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
深層学習時代の⾃然言語処理 @TokyoWebmining
Search
Yuya Unno
January 25, 2015
Technology
0
14
深層学習時代の⾃然言語処理 @TokyoWebmining
Yuya Unno
January 25, 2015
Tweet
Share
More Decks by Yuya Unno
See All by Yuya Unno
深層学習で切り拓くパーソナルロボットの未来 @東京大学 先端技術セミナー 工学最前線
unnonouno
0
13
深層学習時代の自然言語処理ビジネス @DLLAB 言語・音声ナイト
unnonouno
0
34
ベンチャー企業で言葉を扱うロボットの研究開発をする @東京大学 電子情報学特論I
unnonouno
0
25
PFNにおけるセミナー活動 @NLP2018 言語処理研究者・技術者の育成と未来への連携WS
unnonouno
0
7
進化するChainer @JSAI2017
unnonouno
0
12
予測型戦略を知るための機械学習チュートリアル @BigData Conference 2017 Spring
unnonouno
0
5
深層学習フレームワーク Chainerとその進化
unnonouno
0
13
深層学習による機械とのコミュニケーション @DeNA TechCon 2017
unnonouno
0
21
最先端NLP勉強会 “Learning Language Games through Interaction” @第8回最先端NLP勉強会
unnonouno
0
10
Other Decks in Technology
See All in Technology
20241220_S3 tablesの使い方を検証してみた
handy
3
380
KnowledgeBaseDocuments APIでベクトルインデックス管理を自動化する
iidaxs
1
260
OpenAIの蒸留機能(Model Distillation)を使用して運用中のLLMのコストを削減する取り組み
pharma_x_tech
4
550
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
150
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
280
TSKaigi 2024 の登壇から広がったコミュニティ活動について
tsukuha
0
160
kargoの魅力について伝える
magisystem0408
0
200
ガバメントクラウドのセキュリティ対策事例について
fujisawaryohei
0
530
How to be an AWS Community Builder | 君もAWS Community Builderになろう!〜2024 冬 CB募集直前対策編?!〜
coosuke
PRO
2
2.8k
MLOps の現場から
asei
6
640
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
120
祝!Iceberg祭開幕!re:Invent 2024データレイク関連アップデート10分総ざらい
kniino
2
260
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
97
The Pragmatic Product Professional
lauravandoore
32
6.3k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
For a Future-Friendly Web
brad_frost
175
9.4k
A better future with KSS
kneath
238
17k
Building Adaptive Systems
keathley
38
2.3k
Gamification - CAS2011
davidbonilla
80
5.1k
A designer walks into a library…
pauljervisheath
204
24k
Transcript
深層学習時代の⾃自然⾔言語処理理 (株)Preferred Infrastructure 海野 裕也(@unnonouno)
⾃自⼰己紹介 海野 裕也 l (株)プリファードインフラストラクチャー l ⾃自然⾔言語処理理、情報検索索、機械学習、テキストマイニングなど の研究開発 l 研究開発系案件、コンサルティング
l Jubatusの開発など NLP若若⼿手の会共同委員⻑⾧長(2014-) 2
宣伝:NLP若若⼿手の会(YANS) l YANSシンポジウム(9⽉月) l 若若⼿手研究者(40歳未満くらい)の若若⼿手研究者が、⾃自 ⾝身の研究を進めるための集まり l 学⽣生やエンジニアの参加も歓迎 l 今年年も合宿をやる予定です
l スポンサーも募集する予定です l YANS懇(3⽉月) l ⾔言語処理理学会全国⼤大会期間中に懇親会をします l 単なる飲み会です J 3
今⽇日のはなし l ⾔言語処理理系でよくみる深層学習系の話のざっくりまとめ l 既存の⾔言語処理理技術との関係性について議論論(←こっち がメイン) 4
おすすめ資料料 l 渡邉陽太郎郎さんのチュートリアルがよくまとまっている l http://ibisml.org/archive/ibis2013/pdfs/ibis2013-watanabe.pdf 5
⾔言語処理理固有(?)の問題 1. ⼊入⼒力力はシーケンス 2. シーケンスの各要素の異異なり数は膨⼤大(単語) 3. 極めて規則的に各要素が選ばれる(⽂文法) 6
⾔言語処理理に於ける深層学習を観るポイント l シーケンスをどう扱うか⼿手法毎に違う l 1つの単語は1つのベクトルで表す l ⽂文法的な規則が学習できると信じる 7
⾔言語処理理でよくみる深層(表現)学習3種 l Recurrent Neural Network l Recursive Neural Network l
Skip-gram 8
⾔言語処理理でよくみる深層(表現)学習3種 l Recurrent Neural Network l Recursive Neural Network l
Skip-gram 9 Skip-gramは このあと@piroyoungさんが 説明してくれる!
l Recurrent Neural Network l Recursive Neural Network 10
Recurrent Neural Network (RNN) l 系列列に対するネットワーク l 隠れ層をコピーして、次の⼊入 ⼒力力に使うところがポイント l
必ずしも予測は必要ない 11 ⽂文字、単語 時刻 t-‐‑‒1 の隠れ層 隠れ層 予測 コピー
詳しいことは得居さんの資料料を⾒見見て下さい http://www.slideshare.net/beam2d/pfi-seminar-20141030rnn 12 オススメ
つなげて書くと・・・ 13 ⽂文字1 時刻 0 の隠れ層 隠れ層 時刻1の 予測 ⽂文字2
時刻2の 予測 ⽂文字3 時刻3の 予測
ふつうのニューラルネットとの関係 l 横⽅方向に並べて書くと・・・ 14 ここだけみると、⽂文 ⻑⾧長と同じ⻑⾧長さのニュー ラルネットワーク
Recurrent Neural Network Language Model (RNNLM) [Mikolov+10] l RNNを使った⾔言語モデル l
次の単語を予測する l 隠れ層に⽂文脈情報が埋め込ま れていくイメージ 15 ⽂文字、単語 時刻 t-‐‑‒1 の隠れ層 隠れ層 次の⼊入⼒力力 の予測 コピー
Back Propagation Through Time (BPTT)で学習 l 展開した状態で誤差逆伝搬(Back Propagation)する と、時間をさかのぼって学習しているように⾒見見える 16
深いネットワークと同様の問題が発⽣生する l 何度度も掛け算が発⽣生するので、重みが爆発したり、勾配 が消失する問題が発⽣生する l そのため、⻑⾧長期依存を学習できない 17
Long Short-Term Memory l 勾配が消えないようにエラーを内部に貯めこむ構造に なっている l ⼊入出⼒力力のゲートを作って、情報を選択的に流流すようにす る(流流すタイミングを学習するイメージ) 18
情報が貯 まる 出⼒力力タイ ミング ⼊入⼒力力タイ ミング
昨年年後半からLSTMが流流⾏行行(?) l Sequence to sequenceのLSTMで機械翻訳 [Sutskever +14] l 原⽂文を全部⾷食わせてベクトルを作って、そこから翻訳⽂文を⽣生成 する
l 同じ⽅方法を構⽂文解析に適⽤用 [Vinyals+15] l いずれもGoogle 19
l Recurrent Neural Network l Recursive Neural Network 20
Recursive Neural Network (RNN) l 2つの単語の表現ベクトルを組合せて、フレーズ の表現ベクトルを構成する l 再帰的に繰り返すことで、⽂文全体の表現ベクト ルを作る
21
RNNによる構⽂文解析 [Socher+11] l 隣隣接単語からフレーズを 構成する l 構成を繰り返すことで、 ⽊木ができる l 画像の構造推定にも使え
る 22
RNNによる評判分析 [Socher+13] l 構⽂文⽊木に沿ってベクトルを再帰的に構築して、分類する l 各フレーズ単位でもpos/negの判定ができる 23
RecurrentはRecursiveの⼀一種? l Recursiveでは、普通は⽊木構造(構⽂文⽊木)に沿ってベク トルを再帰的に構築する l Recurrentは、⽊木ではなくてシーケンスに沿って構築し ていると⾒見見ると、Recursiveの特殊ケースに思える・・ 24 x 1
x 2 x 3 x 4 h 1 h 2 h 3
議論論:Recursive Neural NetworkとConvolutional Neural Network (CNN) の関係? l いずれも隣隣接要素から新しいベクトルを構成している点 で似ている
l CNNはどのような構造があるか仮定を置いていない点、 繰り返しの回数が予め決まっている点、層毎に重みが違 う点で異異なる 25
Recurrent vs Recursive いずれも⼊入⼒力力(シーケンス)に対して単⼀一のベク トルが作られる l Recurrentは前から順番にベクトルを構成する l Recursiveは⽊木構造に沿ってベクトルを構成する 26
ここからが本題 27
今⽇日の議論論 l ⾃自然⾔言語処理理において深層学習のアプローチは 何が嬉しいのか考えてみる 28
構⽂文解析のことを考える・・・ l 構⽂文解析とは⽂文の構造を推定するタスク l 「構造」は、ふつう句句構造か係り受け構造 l もっとも標準的な⾃自然⾔言語処理理のタスク 29 ⽂文 私は
りんごを ⾷食べた 動詞句句 私は りんごを ⾷食べた
余談:プログラミング⾔言語の構⽂文解析の場合 ⾃自然⾔言語と違って・・・ l 曖昧性がない(2通りの解釈は許されない) l 線形の計算量量で解析できる(CKY法はO(n3)時 間) ことが強く要請される 30
構⽂文解析⼿手法(特に係り受け)の2⼤大派閥 l Transition-based(局所最適型) l ⽂文を前から順番に読んで、スタックに積んでいく l Shift-Reduce法 l Graph-based(⼤大域最適型) l
全ての構造の候補からスコアの最⼤大となる⽊木を効率率率 的に選ぶ l MST法、Eisner法、CKYアルゴリズム 31
Shift-Reduce法(1/2) l 単語を前から順番に読み込んで、スタックに積みながら ⽊木を構築していく l 普通は単語を読むたびに決定的に「操作」を⾏行行うため、 ⽂文⻑⾧長に対して線形時間で解析できる 32
Shift-Reduce法(2/2) l ⽂文を前から読んで、スタックに積む(Shift)か消す (Reduce)の分類を繰り返す l 操作のたびにスタックの中⾝身は変化する l スタックの中⾝身と、⽂文中の単語からいずれの操作をする か判断する 33
時間変化
スタックの操作の仕⽅方で⼿手法が変わる l 前から順番に読むのは同じだが、スタックに対 する操作の⽅方法で亜種が沢⼭山ある l Arc-Eager / Arc-Standardなど l どういう操作体系にするかが性能にも影響を与
える 34
RecurrentとShift-Reduce法の類似性 l 前から順番に読んでいく l 内部状態(隠れベクトル or スタック)を次々に更更新し ていく 35 内部状態
RNNの隠れ状態の中にスタック相当の情報が埋め込 まれている??? 36 ? いい感じのスタック操作になるように学習している?
⽂文脈⾃自由⽂文法(context free grammar, CFG) l チョムスキー階層の3番⽬目 l 書き換え規則の左辺は1つの⾮非終端記号し か現れない 37
X à Y Z X à α
確率率率的⽂文脈⾃自由⽂文法(PCFG)による構⽂文解析 l ⽂文脈⾃自由⽂文法の各規則にスコア(確率率率)をつけて、スコ アの総和が最⼤大になる⽊木を探索索する l データに基づいてスコアは決められる 38 名詞句句 ⾚赤い りんごの
⽊木 名詞句句 名詞句句 ⾚赤い りんごの ⽊木 名詞句句 >
CKYアルゴリズム l 局所的な規則の総和が最⼤大となる⽊木を探すのは、動的計 画法によりO(n3)時間で求められる(CKY) 39 区間 [i, j) の最⼤大スコアは s(i,
j) = max k s(i, k) + s(k, j) + t(i, j, k) i k j
RecursiveとPCFGとの類似性 l いずれも、⼊入⼒力力列列に対して構造を再帰的に構築 している l そもそもRecursiveは構⽂文⽊木をつかっているし、 そもそも構⽂文解析タスクも解いてる・・・ 40
品詞の粒粒度度では⾜足りない l 同じ品詞でも振る舞いは異異なる l ⾃自動詞、他動詞、⽬目的語の数、補語の有無 etc. l 時制や⼈人称などの細かい規則が表現しきれない l 無限に品詞を増やすことになる・・・?
41
語彙ごとに振る舞いが異異なる l どの語を使っているかという情報が構⽂文解析に 有効であることがわかっている l 例例えばgoなら、toがつきやすいなど l 単語⾃自体を特徴として学習することは有効 l しかし、頻度度の低い単語の学習ができな
い・・・ 42
品詞 vs 語 43 品詞 語 • 数が少ない • 表現力不足
• 数が多すぎる • 表現力は十分 この辺にいいのがあるは ず・・・
品詞以上語以下の表現を獲得する歴史 l HPSGやCCGといった、語彙情報に統語的な振る舞いを 記述する⽂文法 l PCFGに隠れ変数を持たせて、振る舞いの似ている単語 をまとめる⼿手法 l こうした情報を単語ベクトルの中で表現されるのでは? (深層学習系アプローチ)
44
主辞駆動句句構造⽂文法(HPSG) l それぞれの語に対して、⽂文法的な振る舞い(感覚的には ルール)を記述する l 振る舞いに応じて構造を推定できる 45 語彙項目
Recursiveでこうした語彙項⽬目相当の情報が獲得で きている??? 46 ?
⾔言語処理理における深層学習に期待すること l ⽂文法(規則)によるアプローチは構⽂文解析で有 効だった l 複雑な⽂文法に相当するような情報をベクトル空 間の中に埋め込んでくれる? l 構⽂文解析以外のタスクでも複雑な規則相当の情 報を学習してくれたら嬉しい?
47
まとめ l ⾃自然⾔言語処理理でよく⾒見見られる深層学習を紹介した l Recurrent Neural Networkは状態をもって前から順に読む l Recursive Neural
Networkは構造に沿ってベクトルを構築する l RecurrentはShift-Reduceパーザーの状態を埋め込んで いるようにみえる l RecursiveはHPSGパーザーの語彙項⽬目相当の情報を埋め 込んでいるように⾒見見える l いずれも⾮非⾃自明な規則を学習によって獲得してくれてい る・・・のかな・・? 48