単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類

686 views

Published on

第222回自然言語処理研究会 (SIG-NL) で発表したスライドです。

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
686
On SlideShare
0
From Embeds
0
Number of Embeds
39
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類

  1. 1. 単語分散表現を用いた 多層 Denoising Auto-Encoder による評価極性分類 首都大学東京 システムデザイン研究科 張 培楠,小町 守 2015/07/15
  2. 2. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 研究背景 近年,増加し続けている莫大なウェブデータからのマイニ ングなど,評価極性分類タスクは重要な役割を担っている 2 この映画面白 いよ! この商品めっ ちゃ使いづらい
  3. 3. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 従来手法の課題(1/2) ヒューリスティックに分類ルールを作成したり極性 辞書を使用した分類手法 n  極性辞書を作る必要がある n  日々増加する新語や未知語に対応できない n  人的なコストが大きい n  データスパースネス問題 n  表層の素性だけでは不十分 3 n  フジモリズムはペルー全土に根付いている。 例
  4. 4. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 従来手法の課題(2/2) 素性を設計して機械学習させる 分類手法 n  多くの素性を設計する必要が ある n  専門的な知識が必要となり, 一般化が難しい n  見出す素性の種類に限界があ る n  中川らの手法では13種類もの 素性テンプレートを設計した 4
  5. 5. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 どう克服するか ヒューリスティックに分類ルールを作成したり極性辞書 を使用した分類手法 ➾ 単語の分散表現を使用する n  単語の意味を表現できる密ベクトル n  データスパースネスに頑健 素性を設計して機械学習させる分類手法 ➾ 深層ニューラルネットワーク(多層 Denoising Auto- Encoder)で学習する n  複雑なモデルや素性設計を必要としない n  高い汎化能力を持つ 5
  6. 6. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 本研究の貢献 p 評価極性分類タスクにおいて,大規模コーパスから 学習した単語分散表現を用いることと,多層の Denoising Auto-Encoder(Stacked Denoising Auto-Encoder: SdA)を用いることが分類性能に大 きく寄与することを示した. p 日本語の評価極性分類タスクに対し,複雑なモデル を設計することなく,現時点における世界最高精度 を達成した. 6
  7. 7. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 日本語の文が与えられた時に,その極性をポジティブ・ ネガティブの2値に分類するタスクを考える. 表現学習により得られた単語の分散表現を用いて 文ベクトルを作成し,その文ベクトルを多層 Denoising Auto-Encoder の入力として学習させる. 7 入力文 ・ ・ ・ 単語ベクトル 文ベクトル SdA 極性
  8. 8. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 分散表現 p 1-of-K 表現 n  Bag-of-Words を作る時に用いる伝統的な単語ベクトルの 表現方法 n  単語ベクトルの次元は語彙数と同じ n  各次元がひとつの単語に対応する n  表層的に異なる単語同士は全く別の記号として扱う 8 ペット / として / 飼う / なら / 犬 / と / 猫 / ,/ どっち / が / いい / か / な / . 語彙数: 14! ペット: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]! 犬:   [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]! 猫: [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]!
  9. 9. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 分散表現 p 単語の分散表現 n  単語ベクトルの次元はハイパーパラメータ n  各次元がひとつの単語に対応しない n  表層的に異なる単語でも,出現する文脈が似ていれば同じよう なベクトルになる n  分散表現を学習するタスクは表現学習という 9 語彙数: 14! 次元数: 6! ペット: [0.1, 0.3, 0.5, 0.1, 0.9, 0.6]! 犬:   [0.0, 0.2, 0.4, 0.1, 0.8, 0.7]! 猫: [0.0, 0.2, 0.5, 0.0, 0.8, 0.7]! ペット / として / 飼う / なら / 犬 / と / 猫 / ,/ どっち / が / いい / か / な / .
  10. 10. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 ターゲットとしている k 番目の単語 wk のベクトル 出現する語彙の数:|V| 単語ベクトルの次元:d 1-of-K ベクトル:b 単語ベクトルの集合の行列:L 単語の分散表現 10 ・ ・ ・ ・ ・ ・ ・ ・
  11. 11. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 文の分散表現 コーパスにある |M| 個の文を用いて,文行列 S を作成 する 11 ・ ・ ・ ………… avg avg avg avg i 番目の文ベクトル Si は下式のように average で算出される(右図) 計算された文ベクトルを用いて作成 される文行列 S は以下のようになる
  12. 12. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 Auto-Encoder ニューラルネットワークを使用して入力と同じになる ような出力の中間層での表現を学習する教師なし学習 n  ニューラルネットワークにおいて,層が深くなっていくと 学習に時間がかかったり過学習しやすくなる n  特徴抽出しやすい初期値を持たせる事前学習に使用する 12 encode decode input hidden output d 次元の入力 x と出力 z の差を表す損失関数:
  13. 13. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 Denoising Auto-Encoder 入力に対してランダムなノイズを与えることにより高い 汎化能力を決定する. p  与えられた比率で 1 と 0 の要素を持つ二項分布の乱数を生成 p  これと入力行列の要素積を求める p  ノイズの乗った入力から元の入力を復元することで汎化能力 が高い学習が可能となる 似たような正則化の働きをする手法として DropOut が ある p  中間ノードを一定の確率で無視して学習を行う p  過学習を防ぐ 13
  14. 14. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 Stacked Denoising Auto-Encoder 14 input layer hidden layer hidden layer hidden layer output layer label 1! 0! pre-training pre-training pre-training LogReg fine-tuningfine-tuningfine-tuning dA1 W1 dA2 W2 dA3 W3 fine-tuning W4
  15. 15. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 Stacked Denoising Auto-Encoder dA を積み重ねることで,表現能力を向上させたもので,抽出さ れる特徴は深い層になるに連れて抽象的な表現を獲得できる. SdA による学習は 2 つの段階からなっている p  事前学習(pre-training):ニューラルネットワーク各層を dA と して行う教師なし学習 n 入力ベクトルが各層で特徴抽出がなされる n 抽出された内部表現は次の層の入力として渡される n これを最後の中間層まで繰り返す p  微調整(fine-tuning):ニューラルネットワーク全体で行う教師 あり学習 n 最後の中間層まで事前学習すると,その内部表現を用いてロジスティ クス回帰により分類される n 分類結果のベクトルが出力層に渡される n 出力ベクトルと正解ラベルで誤差逆伝搬により各層で重みを更新して いく 15
  16. 16. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 実験:使用データ n  NTCIR-6 意見分析パイロットタ スクテストコレクション n  文単位に極性 n  ニュートラル極性を取り除いた n  3人のアノテータによりタグ付け n  3人のアノテーション結果の和集 合を使用し,異なる極性が付与 されている場合は常に特定のア ノテータのタグを使用 n  10分割交差検定 16 合計 2,599 ポジティブ 769 ネガティブ 1,830
  17. 17. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 実験:使用ツール 単語分散表現 n  word2vec n  Skip-gram n  window size: 5 n  200 次元 n  Wikipedia(2014.11)で 約 43 万語彙 17 Python で実装 n  version: 2.7.6 MeCab n  version: 0.996 n  IPADic version: 2.7.0 Theano n  version: 0.60 scikit-learn n  version: 0.1.0
  18. 18. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 実験:比較(手法) 比較手法 手法概要 Tree-規則 中川らの評価表現の部分依存構造木の評価極性を,規則により 決定的に決めていく方法 Tree-CRF 中川らの隠れ変数を持つ CRF による手法 MFS データセットの中でもっとも大きい割合の回答 (ここではネガティブ)を常に選ぶベースライン LogRes-BoF 1-of-K の単語ベクトルの average で文ベクトルを作成し,PCA により 200 次元まで次元削減を施した行列を線形分類器(ロジ スティック回帰)で分類 SdA-BoF LogRes-BoF で作成したベクトルを SdA で分類 LogRes-w2v 単語の分散表現で作成した文ベクトルを,線形分類器(ロジス ティック回帰)で分類 SdA-w2v 単語の分散表現で作成した文ベクトルを SdA を用いて分類を行 う提案手法 SdA-w2v-neg Nakagawa らと同様,否定表現に対して処理を施して単語の分 散表現を作成し,SdA を使って分類 18
  19. 19. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 実験:比較(ハイパーパラメータ) 19 ノイズレート 0 % 10 % 20 % 30 % 中間層数 1 2 3 4 5 6 中間ノード次元 100 300 500 700 ノイズレート:0 % vs. 他で denoising の効果を調べる 中間層数:1層 vs. 他で多層の効果を調 べる
  20. 20. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 実験:結果(手法) 20 手法 正解率 Tree-規則 [1] 72.6 % Tree-CRF [1] 78.9 % MFS 70.4 % LogRes-BoF 70.8 % SdA-BoF 76.9 % LogRes-w2v 79.5 % SdA-w2v 81.7 % SdA-w2v-neg 80.9 % [1] 中川ら,隠れ変数を持つ条件付き確率場による依存構造木の評価極性分類,(2010)
  21. 21. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 実験:結果(ハイパーパラメータ) 21 ノイズレート 正解率 0 % 81.1 % 10 % 81.5 % 20 % 81.4 % 30 % 80.9 % 中間層数 正解率 1 80.6 % 2 80.4 % 3 81.1 % 4 81.6 % 5 81.4 % 6 81.1 %中間ノード数 正解率 100 81.1 % 300 81.2 % 500 81.3 % 700 81.2 % 組み合わせ 正解率 10%-4-500 81.7 % SdA-w2v-neg 80.9 %
  22. 22. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 考察:手法 p Bag-of-Features vs. word2vec n  LogRes-BoF(70.8%) vs. LogRes-w2v(79.5%) n  SdA-BoF(76.9%) vs. SdA-w2v(81.7%) n  w2v の方が BoF と比べて 4.8 ∼ 8.7 ポイントの向上 n  単語分散表現の効果が大きい p LogRes vs. SdA n  LogRes-BoF(70.8%) vs. SdA-BoF(76.9%) n  LogRes-w2v(79.5%) vs. SdA-w2v(81.7%) n  SdA の方が LogRes よりも 2.2 ∼ 6.1 ポイントの向上 n  線形分類器よりも断然性能いい p 否定表現処理 vs. 非処理 n  処理していないものと比べて正解率が下がった(-0.8 ポイント) n  少し意外な結果 n  否定表現の数自体多くないため 22
  23. 23. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 考察:パラメータ p  denoising n  全く denoising しないものと比べると,少し denoising した (10%)方がよりよい性能(+0.4 ポイント)を発揮できた n  denoising の効果は発揮できた p  中間層 n  ただの AE(1層)よりも,多層にした方(4層)がより良い 性能(+1.0 ポイント)を発揮した. n  ただの AE だと抽出できないような抽象的な特徴を捉えるこ とができてる p  中間ノード n  あまり大きな変化は見られなかった(200 次元の増減で ±0.1 ポイント) n  顕著な変化を得るためにはさらに増減幅を増やす必要がある 23
  24. 24. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 0.3 0.8 0.8 1.1 0.9 1.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1 2 3 4 5 6 時間[hour] 中間層数 中間層数の学習時間変化 考察:パラメータ p パラメータによっての学習時間変化 24 0.8 3.6 10.2 23.8 0.0 5.0 10.0 15.0 20.0 25.0 100 300 500 700 時間[hour] 中間ノード次元 中間ノード次元の学習時間変化 n  中間層の数を増やしても,学習時間の増加は緩やかである n  それに対し中間ノード次元の場合,学習時間の増加は顕著である n  これは SdA の構造(結合の数)に起因すると考えられる n  また,前掲した正解率からも分かるように正解率の変化は少ないので, 次元を増やすよりも中間層数を増加させたほうが性能の向上につながる
  25. 25. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 考察:事例分析(正答例) 極性 例文 P 同25日の毎日新聞との単独会見では,貧困率などの細かい数字を挙 げて10年間の政権の成果を強調し「フジモリズムはペルー全土に根 付いている」と胸を張った. P 牛で成功したクローン技術を人へ応用するのは難しいことではない. N 世界経済は,好調を続ける米国とは対照的に,日本や欧州では回復へ の足取りが重く,日本も今年上半期まで明確な回復軌道が示されなけ れば,各国が一層の景気回復策を求めてくる可能性がある. 25 n  「フジモリズム」といった造語に対しても,BoF などが苦手とした データスパースネス問題に影響されずに頑健に分類できている. n  線形分類器や1層の AE などで有効な特徴の抽出が困難な二重否定や 長い文に対しても上手く対応できている.
  26. 26. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 考察:事例分析(誤答例) 極性 例文 N もう少し配慮した書き方があったかなとも思う」と反省を口にした. P 教育省の談話は「歴史教科書は歴史の真相を反映すべきであり,そう してこそ若い世代に正しい歴史観をもたせ,悲劇の再演を防止でき る」と批判した. P 同市は圧力に屈せず,この宣言を守り抜いてもらいたい. 26 n  人間でもアノテーションで揺れる傾向がある n  「反省」という単語をポジティブと捉えるかネガティブと捉えるかの境界線 は曖昧 n  「悲劇の再演を防止する」とあるが,最後に「批判した」に続くのでどちら により重みを置くかは人によって異なると考えられる. n  「圧力に屈せず」という極性の反転が起きているが,提案手法では上手く対 処できなかったが,否定処理を施した手法ではこれに正解した.
  27. 27. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 まとめ・展望 本研究では p  評価極性分類タスクにおいて,大規模コーパスから学習し た単語分散表現を用いることと,多層の Denoising Auto- Encoder を用いることが分類性能に大きく寄与することを 示した. p  日本語の評価極性分類タスクに対し,複雑なモデルを設計 することなく,現時点における世界最高精度を達成した. 展望として p  文の分散表現を作成するにあたって,Recurrent Neural Network や Recursive Neural Network で文の大域的な情報 を獲得する試みをしていきたい. 27
  28. 28. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 タスク:評価極性分類 (例)ある記事に対して,様々な評価が存在する 28 牛で成功したクローン技術を人へ応用する のは難しいことではない. 私たちの夢の五輪を汚されてショックを受 けている.
  29. 29. 単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 タスク:評価極性分類 29 牛で成功したクローン技術を人へ応用する のは難しいことではない. 私たちの夢の五輪を汚されてショックを受 けている. (例)評価文を学習し,その極性を予測する Positive Negative

×