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
36
ベンチャー企業で言葉を扱うロボットの研究開発をする @東京大学 電子情報学特論I
unnonouno
0
27
PFNにおけるセミナー活動 @NLP2018 言語処理研究者・技術者の育成と未来への連携WS
unnonouno
0
7
進化するChainer @JSAI2017
unnonouno
0
12
予測型戦略を知るための機械学習チュートリアル @BigData Conference 2017 Spring
unnonouno
0
5
深層学習フレームワーク Chainerとその進化
unnonouno
0
15
深層学習による機械とのコミュニケーション @DeNA TechCon 2017
unnonouno
0
22
最先端NLP勉強会 “Learning Language Games through Interaction” @第8回最先端NLP勉強会
unnonouno
0
10
Other Decks in Technology
See All in Technology
一人から始めたSREチーム3年の歩み - 求められるスキルの変化とチームのあり方 - / The three-year journey of the SRE team, which started all by myself
vtryo
7
5.7k
CNAPPから考えるAWSガバナンスの実践と最適化
yuobayashi
5
680
レイクハウスとはなんだったのか?
akuwano
15
2k
CNAPPから考えるAWSガバナンスの実践と最適化
nrinetcom
PRO
1
330
現実的なCompose化戦略 ~既存リスト画面の置き換え~
sansantech
PRO
0
170
Redmineの意外と知らない便利機能 (Redmine 6.0対応版)
vividtone
0
190
アクセシブルなマークアップの上に成り立つユーザーファーストなドロップダウンメニューの実装 / 20250127_cloudsign_User1st_FE
bengo4com
2
1.2k
DevSecOps入門:Security Development Lifecycleによる開発プロセスのセキュリティ強化
yuriemori
0
240
エンジニアとしてプロダクトマネジメントに向き合った1年半
sansantech
PRO
0
100
バクラクの組織とアーキテクチャ(要約)2025/01版
shkomine
13
3k
Microsoft Ignite 2024 最新情報!Microsoft 365 Agents SDK 概要 / Microsoft Ignite 2024 latest news Microsoft 365 Agents SDK overview
karamem0
0
190
private spaceについてあれこれ調べてみた
operando
1
170
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Why Our Code Smells
bkeepers
PRO
335
57k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
220
Designing for Performance
lara
604
68k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Facilitating Awesome Meetings
lara
51
6.2k
The Language of Interfaces
destraynor
156
24k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.5k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
3k
The Invisible Side of Design
smashingmag
299
50k
Optimizing for Happiness
mojombo
376
70k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
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