今回の TokyoWebmining はここ最近、特に注目を集めている Deep Learning と word2vec がトピックということで、参加者募集も数分で枠が埋まってしまうほどの大人気っぷりでした。
せっかくなので、(参加したくても参加できなかった方々も多いことかと思いますし)たまにはまとめエントリを、会場内での質問やディスカッションを中心に書いてみようかと思います。
(聞き間違い・勘違いなどがあるかと思いますので、気づかれたかたはツッコミ願います)
深層学習時代の自然言語処理 by @unnonouno さん
Recurrent Neural Network
- p.11 Recurrent Neural Network
- 1 個の単語に対して、1 個の dense ベクトルがある
- 次元数は 100〜1,000 ぐらい
- RNN への入力ベクトルはこれになる
- この単語ベクトルは各層で共有される
- 正則化して sparse にしてみたけど、別によくはならなかった
- 1 個の単語に対して、1 個の dense ベクトルがある
- p.14
- 時間方向に層を重ねることに相当する
- 層が文長に相当する、ここが他の NN と異なる
- 時間方向に層を重ねることに相当する
- p.16
- RNN の学習は、Back Propagation (Through Time) で学習する
- 時間をさかのぼって学習しているように見える
- 図的には、赤が Back propagation になる
- RNN の学習は、Back Propagation (Through Time) で学習する
- p.17
- 誤差が最初の方に伝搬しないという問題がある
- これを解決したのが Long Short-Term Memory という技術
- p.18 Long Short-Term Memory
- 隠れ層のベクトル間でされる演算
- 影響の与えるタイミングと与えないタイミングがあるはず、という考え
- これによりパラメータが増えることになるが、これは学習対象となっている
- 昨年後半からこれが流行ってる
- 機械翻訳や Wikipedia 文章ぽいものの再生成、構文解析などに適用されてる by Google
- 1 個の文がベクトルになって、そこから文が湧き出てくる
Recursive Neural Network
「両方とも RNN って略すのやめろ」
- p.22
- こちらは木構造を学習してつくる
- 文章の構文解析だけでなく、画像の構造推定に使える
- 木構造を作る
- 二つの要素をくっつける順番を学習する
- p.23 評判分析にも使われてる
- こちらは木構造が事前に与えらて、ポジネガを判定している
- 前は feature engineering で頑張って精度を高めていたけど、この RNN を使ったら良くなった
- 文章全体ではなく、一つの文に対して適用される
本題:構文解析
- p.32 Shift-Reduce 法
- ガーデンパス文に弱い
- これが Recurrent Neural Network に近いんじゃないか?
- p.41
- 品詞情報だけだと、構文解析は全然できない
- p.46
- 構文解析はまだルール作りはなんとかなるが、意味解析は膨大過ぎてルール作りは辛い
まとめ
- p.48
- Recurrent が流行っている
- 音声認識、特に G とか MS とかの大手では DNN が使われているんじゃなかろうか?
ディスカッション
- 単語分割、構文解析は精度が出ているが、意味解析とか談話解析はまだまだなので、そのあたりで DNN 使って精度出せるといいね
- そもそもの問題設定があいまいだったりするけど…
- テトリスブロックを回転させたもの同士が同じかどうかを判定するタスクで、DNN はうまくいかないというツッコミを入れた論文があった
- 「言語学者をクビにすればするほど精度が上がる」
ディープラーニング徹底活用 画像認識編 by @atelierhide さん
この発表で一番言いたいこと
- 「学習済みモデルを徹底活用しよう!」
- Convolutional Neural Networks (CNNs) のモデル
- 世界一のモデルを使うことができる
- 1000 次元のベクトルが出力として得られる
Deep learning frameworks
- 選択観点
- 学習済みモデルが提供されているフレームワークを選ぶのがいい
- Caffe よさそう
- Caffe と DeCAF はほとんど違いはない
- OverFeat は使い勝手がよくない
- Caffe
- 画像のリサイズなどは、まあまあフレームワークがよろしくやってくれる
- 横長画像は正方形に変換されてしまうので、その点は注意しないといけない
- Detection と Recognition は別
- DNN が効くのは Recognition のほう
- モデルの学習をする場合は、背景などが写り込んでいないものを選ぶべき
- 分類はその限りではない
- 画像のリサイズなどは、まあまあフレームワークがよろしくやってくれる
学習済みモデルの活用のアイデア
- 特徴抽出器として使う
- CNNs の最後から 2 番目に得られる部分のベクトルを使う
- pre-training 相当になっている
- これを特徴量として、SVM などで分類する
- CNNs の最後から 2 番目に得られる部分のベクトルを使う
- ファインチューニングをする
- 出力層・分類数を入力画像にあわせて変更し、学習済みモデルのパラメータを最適化する
- 物体検出に使う
- PyData 2014 NYC での発表資料
- Selective Search によって領域を検出する
- Detection 用に研究された 200 分類のモデルを利用している
ディスカッション
- みんなが Caffe を使い出していて、いろんな適用例が発表されはじめている
- Caffe に Recurrent / LSTM が入るらしいということで、その手の界隈がざわついている
word2vec のご紹介 by @piroyoung さん
word2vec
- p.31 単語の低次元ベクトル表現
- ウィンドウの大きさを変化させるとどうなるのか?
- 広くすると、経験則的に共起語ばかりになる
- 海野さん
- 短いと、構文的に似てるのが出てくる
- 長いと、意味的に似ているものが出てくる
- ウィンドウの大きさ、5 単語ぐらい
- 実は、近い単語の方が重点的にサンプリングされる実装になっている
- ウィンドウの大きさを変化させるとどうなるのか?
Python で word2vec を使う
- p.36
- gensim を利用する
- Paragraph vector も実装されている
- コーパスをライブラリに喰わせるときに工夫が必要になる
- ナイーブにやるとメモリが足りなくなる
- 1 行読んでスペース区切り文を分割する… の処理をイテレーションさせる
- gensim を利用する
素性のクラスタリング
- word2vec で得られた単語のベクトルをクラスタリング
- わりとよくクラスタリングできてる
QPR の学習
- QPR = Quick purchase report, 消費者購買動向データ
- p.56
- ウィンドウサイズはものすごく大きなサイズにした
- バスケット内の商品は、順番には意味がない
- ただし先ほどの海野さんのツッコミにあるとおり、順番が考慮された結果となってしまった
- ウィンドウサイズはものすごく大きなサイズにした
ディスカッション
- 文章中の助詞などを省いてみたら結果はどうなるの?
- 単語同士の関係性を構成する要素になるので、動詞を入れても動詞が出てこなくなる
- ものにもよるが、助詞を入れた方がいいであろう
- 次元数 200 以外でやってみた?
- 次元を上げて、悪くなることはなかった
- 計算時間はその分かかる
今回の TokyoWebmining の所感
- Deep learning、いまいちちゃんと理解できてなかったけど、雰囲気はだいぶつかめてきた
- 画像の取り扱いにおいては Deep learning を利用するのがもはや当たり前っぽい
- ImageNet の学習済みモデル、応用の幅が広いね!
- 自然言語処理での Deep learning 活用、研究の進展が速いので、常にキャッチアップしていかないと置いて行かれそう…
- とにかく Deep learning 熱の高まりっぷりがはんぱない!