emnlp2014読み会 徳永

20
A Fast and Accurate Dependency Parser using Neural Networks Danqi Chen and Christopher Manning 2014/11/22 EMNLP2014読み会@PFI 読む人:徳永拓之

Upload: hiroyuki-tokunaga

Post on 12-Jul-2015

310 views

Category:

Science


4 download

TRANSCRIPT

Page 1: EMNLP2014読み会 徳永

A Fast and Accurate DependencyParser using Neural Networks

Danqi Chen and Christopher Manning

2014/11/22 EMNLP2014読み会@PFI

読む人:徳永拓之

Page 2: EMNLP2014読み会 徳永

自己紹介:徳永拓之

● twitter: @tkng● Preferred Infrastructure勤務(この会場)

● オンライン機械学習という本が出ます○ 海野, 岡野原, 得居, 徳永の4人で執筆中

Page 3: EMNLP2014読み会 徳永

もしCRFがわからない人は…

CRF, viterbi, forward-backwardなど載ってます

電子書籍版が出ます

Page 4: EMNLP2014読み会 徳永

A Fast and Accurate DependencyParser using Neural Networks

● 係り受け解析の話● Transition based parserの分類器をニューラル

ネットにしたら性能が3%ぐらい上がった

Page 5: EMNLP2014読み会 徳永

Transition based vs Graph based

● Transition based: 速いが性能がちょっと悪い● Graph based: 遅いが性能がちょっといい

Page 6: EMNLP2014読み会 徳永

Transition based parsingのやり方

● スタックに単語を積み、分類器で次にどうするかを決める○ Shift: バッファからスタックに単語をひとつ積む○ Arc: スタックから単語を取り出してArcを張る

■ Left-Arc, Right-Arcの2種類がある● スタックのどこから単語を取り出すかが変わる

● 詳しくは著者のスライドで

Page 7: EMNLP2014読み会 徳永

既存のTransition based parserの課題

● 素性がスパースである

○ 似た単語、似た品詞がまったく違う表現になる

● 手作業で作った素性は不完全である

○ エキスパートが作った素性にも見落としがある

● 計算コストが高い

○ feature stringを作ってハッシュテーブルをlookupしない

といけない

○ 正直、ここは実装の問題じゃないかと思う

Page 8: EMNLP2014読み会 徳永

本論文の手法

● 分類器をNNで置き換える○ これまではSVMとかを使うのがメジャー

● 前ページの問題を解決するためにいくつか工夫がある

Page 9: EMNLP2014読み会 徳永

分類用NNの構成

● 3層のニューラルネット○ 1層:単語の分散表現○ 2層:hidden layer○ 3層:softmax

● 学習はback propagation, 学習率はAdaGradで調整○ 第1層はあらかじめword2vecで学習させておく

Page 10: EMNLP2014読み会 徳永

ポイント

● 入力は文ではなく文脈なので可変長の入力を

扱う必要はない

● 単語だけではなく、品詞、依存ラベルもd次元の

低次元密ベクトルに変換する○ 似てる品詞とかの情報を使える

Page 11: EMNLP2014読み会 徳永

ポイント2: cube activation function

● 隠れ層のactivation functionにcube activation functionを使う

● cube: f(x) = x^3● 説明を読んでも発想が理解できない…

○ どっから考えついたのか謎

Page 12: EMNLP2014読み会 徳永

ポイント3: キャッシュ

● ある単語がコンテキストに出現した場合に、第2層(隠れ層)に対する入力がどうなるかは事前に計算できる○ 単語の数は上限があるのでキャッシュ可能○ 8〜10倍ぐらいの高速化

● ACL2014のベストペーパーも同様のテクニックを用いていた

Page 13: EMNLP2014読み会 徳永

実験結果:他手法との比較

Page 14: EMNLP2014読み会 徳永

実験結果:cube activation

0.8〜1.2%ぐらい性能が向上している

Page 15: EMNLP2014読み会 徳永

実験結果:word2vec vs random

第1層をword2vecで初期化すると0.7〜1.7%の性能向上

Page 16: EMNLP2014読み会 徳永

実験結果:POS embedding

CTBだと10%ぐらい性能向上

Page 17: EMNLP2014読み会 徳永

POS embeddingの視覚化

Page 18: EMNLP2014読み会 徳永

まとめ

● Shift-reduce型の係り受け解析器で分類器をNNにすると性能が上がる

● MSTパーサーと同じぐらい精度がよくて、速度は100倍ぐらい速い

● cube activationは簡単だし、1%とか性能上がるみたいなのでおいしいかも

● POS embeddingは使える時が限られそうだがよく効く

Page 19: EMNLP2014読み会 徳永

ネット上からの感想

● キャッシュなしだと5倍ぐらい遅くなっているので、速くなったというのはアンフェア○ http://nlpers.blogspot.jp/2014/11/emnlp-2015-paper-list-with-mini-

reviews.html

● 密ベクトルにすることで、今後はGPUでの高速化が期待できる○ https://twitter.com/yoavgo/status/528625970752667648

Page 20: EMNLP2014読み会 徳永

感想

● 第1層をword2vecで初期化するのは、言われてみれば当たり前だが、他の論文で見たことがなかったので感心した○ 単にpretrainだよねというとまぁそうなんだけど

● 結局、Deep Learningではない● 小難しいことをしてないのが好印象