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

29
単語分散表現を用いた 多層 Denoising Auto-Encoder による評価極性分類 首都大学東京 システムデザイン研究科 張 培楠 ,小町 守 2015/07/15

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

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

単語分散表現を用いた 多層 Denoising Auto-Encoder による評価極性分類 首都大学東京 システムデザイン研究科張 培楠,小町 守

2015/07/15

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

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

研究背景 近年,増加し続けている莫大なウェブデータからのマイニングなど,評価極性分類タスクは重要な役割を担っている

2

この映画面白いよ!

この商品めっちゃ使いづらい

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

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

従来手法の課題(1/2) ヒューリスティックに分類ルールを作成したり極性辞書を使用した分類手法

n  極性辞書を作る必要がある n  日々増加する新語や未知語に対応できない n  人的なコストが大きい n  データスパースネス問題 n  表層の素性だけでは不十分

3

n  フジモリズムはペルー全土に根付いている。 例

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

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

従来手法の課題(2/2) 素性を設計して機械学習させる分類手法

n  多くの素性を設計する必要がある

n  専門的な知識が必要となり,一般化が難しい

n  見出す素性の種類に限界がある

n  中川らの手法では13種類もの素性テンプレートを設計した

4

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

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

どう克服するか ヒューリスティックに分類ルールを作成したり極性辞書を使用した分類手法 ➾ 単語の分散表現を使用する

n  単語の意味を表現できる密ベクトル n  データスパースネスに頑健

素性を設計して機械学習させる分類手法 ➾ 深層ニューラルネットワーク(多層 Denoising Auto-

Encoder)で学習する n  複雑なモデルや素性設計を必要としない n  高い汎化能力を持つ

5

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

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

本研究の貢献

p 評価極性分類タスクにおいて,大規模コーパスから学習した単語分散表現を用いることと,多層の Denoising Auto-Encoder(Stacked Denoising Auto-Encoder: SdA)を用いることが分類性能に大きく寄与することを示した.

p 日本語の評価極性分類タスクに対し,複雑なモデルを設計することなく,現時点における世界最高精度を達成した.

6

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

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

単語分散表現を用いた多層 Denoising Auto-Encoder による評価極性分類 日本語の文が与えられた時に,その極性をポジティブ・ネガティブの2値に分類するタスクを考える. 表現学習により得られた単語の分散表現を用いて 文ベクトルを作成し,その文ベクトルを多層 Denoising Auto-Encoder の入力として学習させる.

7

入力文 ・・・

単語ベクトル 文ベクトル

SdA

極性

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

単語分散表現を用いた多層 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]!

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

単語分散表現を用いた多層 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]!

ペット / として / 飼う / なら / 犬 / と / 猫 / ,/ どっち / が / いい / か / な / .

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

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

ターゲットとしている k 番目の単語 wk のベクトル 出現する語彙の数:|V|

単語ベクトルの次元:d

1-of-K ベクトル:b

単語ベクトルの集合の行列:L

単語の分散表現

10

・・・ ・

・・・・

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

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

文の分散表現 コーパスにある |M| 個の文を用いて,文行列 S を作成する

11

・・・

… …

avg avg avg avg i 番目の文ベクトル Si は下式のように average で算出される(右図)

計算された文ベクトルを用いて作成される文行列 S は以下のようになる

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

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

Auto-Encoderニューラルネットワークを使用して入力と同じになるような出力の中間層での表現を学習する教師なし学習

n  ニューラルネットワークにおいて,層が深くなっていくと学習に時間がかかったり過学習しやすくなる

n  特徴抽出しやすい初期値を持たせる事前学習に使用する

12

encode

decode

input

hidden

output

d 次元の入力 x と出力 z の差を表す損失関数:

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

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

Denoising Auto-Encoder入力に対してランダムなノイズを与えることにより高い汎化能力を決定する.

p  与えられた比率で 1 と 0 の要素を持つ二項分布の乱数を生成 p  これと入力行列の要素積を求める p  ノイズの乗った入力から元の入力を復元することで汎化能力が高い学習が可能となる

似たような正則化の働きをする手法として DropOut がある

p  中間ノードを一定の確率で無視して学習を行う p  過学習を防ぐ

13

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

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

Stacked Denoising Auto-Encoder

14 input

layerhiddenlayer

hiddenlayer

hiddenlayer

outputlayer

label

1 !

0 !

pre-training pre-training pre-training LogReg

fine-tuning fine-tuning fine-tuning

dA1 W1

dA2 W2

dA3 W3

fine-tuning

W4

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

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

Stacked Denoising Auto-EncoderdA を積み重ねることで,表現能力を向上させたもので,抽出される特徴は深い層になるに連れて抽象的な表現を獲得できる. SdA による学習は 2 つの段階からなっている

p  事前学習(pre-training):ニューラルネットワーク各層を dA として行う教師なし学習 n 入力ベクトルが各層で特徴抽出がなされる n 抽出された内部表現は次の層の入力として渡される n これを最後の中間層まで繰り返す

p  微調整(fine-tuning):ニューラルネットワーク全体で行う教師あり学習 n 最後の中間層まで事前学習すると,その内部表現を用いてロジスティクス回帰により分類される

n 分類結果のベクトルが出力層に渡される n 出力ベクトルと正解ラベルで誤差逆伝搬により各層で重みを更新していく 15

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

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

実験:使用データ

n  NTCIR-6 意見分析パイロットタスクテストコレクション

n  文単位に極性n  ニュートラル極性を取り除いた n  3人のアノテータによりタグ付け n  3人のアノテーション結果の和集合を使用し,異なる極性が付与されている場合は常に特定のアノテータのタグを使用

n  10分割交差検定

16

合計 2,599

ポジティブ 769

ネガティブ 1,830

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

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

実験:使用ツール 単語分散表現

n  word2vecn  Skip-gramn  window size: 5n  200 次元n  Wikipedia(2014.11)で約 43 万語彙

17

Python で実装n  version: 2.7.6

MeCabn  version: 0.996n  IPADic version: 2.7.0

Theanon  version: 0.60

scikit-learnn  version: 0.1.0

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

単語分散表現を用いた多層 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

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

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

実験:比較(ハイパーパラメータ)

19

ノイズレート

0 %

10 %

20 %

30 % 中間層数

1

2

3

4

5

6

中間ノード次元

100

300

500

700

ノイズレート:0 % vs. 他で denoising の効果を調べる 中間層数:1層 vs. 他で多層の効果を調べる

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

単語分散表現を用いた多層 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)

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

単語分散表現を用いた多層 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 %

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

単語分散表現を用いた多層 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. SdAn  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

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

単語分散表現を用いた多層 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

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

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

0.3

0.8 0.8

1.10.9

1.2

0.00.20.40.60.81.01.21.4

1 2 3 4 5 6

時間

[hou

r]

中間層数

中間層数の学習時間変化

考察:パラメータ p パラメータによっての学習時間変化

24

0.83.6

10.2

23.8

0.0

5.0

10.0

15.0

20.0

25.0

100 300 500 700時間

[hou

r]中間ノード次元

中間ノード次元の学習時間変化

n  中間層の数を増やしても,学習時間の増加は緩やかである n  それに対し中間ノード次元の場合,学習時間の増加は顕著である n  これは SdA の構造(結合の数)に起因すると考えられる n  また,前掲した正解率からも分かるように正解率の変化は少ないので,次元を増やすよりも中間層数を増加させたほうが性能の向上につながる

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

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

考察:事例分析(正答例) 極性 例文

P 同25日の毎日新聞との単独会見では,貧困率などの細かい数字を挙げて10年間の政権の成果を強調し「フジモリズムはペルー全土に根付いている」と胸を張った.

P 牛で成功したクローン技術を人へ応用するのは難しいことではない.

N 世界経済は,好調を続ける米国とは対照的に,日本や欧州では回復への足取りが重く,日本も今年上半期まで明確な回復軌道が示されなければ,各国が一層の景気回復策を求めてくる可能性がある.

25

n  「フジモリズム」といった造語に対しても,BoF などが苦手としたデータスパースネス問題に影響されずに頑健に分類できている.

n  線形分類器や1層の AE などで有効な特徴の抽出が困難な二重否定や長い文に対しても上手く対応できている.

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

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

考察:事例分析(誤答例) 極性 例文

N もう少し配慮した書き方があったかなとも思う」と反省を口にした.

P 教育省の談話は「歴史教科書は歴史の真相を反映すべきであり,そうしてこそ若い世代に正しい歴史観をもたせ,悲劇の再演を防止できる」と批判した.

P 同市は圧力に屈せず,この宣言を守り抜いてもらいたい.

26

n  人間でもアノテーションで揺れる傾向があるn  「反省」という単語をポジティブと捉えるかネガティブと捉えるかの境界線は曖昧

n  「悲劇の再演を防止する」とあるが,最後に「批判した」に続くのでどちらにより重みを置くかは人によって異なると考えられる.

n  「圧力に屈せず」という極性の反転が起きているが,提案手法では上手く対処できなかったが,否定処理を施した手法ではこれに正解した.

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

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

まとめ・展望 本研究では

p  評価極性分類タスクにおいて,大規模コーパスから学習した単語分散表現を用いることと,多層の Denoising Auto-Encoder を用いることが分類性能に大きく寄与することを示した.

p  日本語の評価極性分類タスクに対し,複雑なモデルを設計することなく,現時点における世界最高精度を達成した.

展望として p  文の分散表現を作成するにあたって,Recurrent Neural

Network や Recursive Neural Network で文の大域的な情報を獲得する試みをしていきたい.

27

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

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

タスク:評価極性分類 (例)ある記事に対して,様々な評価が存在する

28

牛で成功したクローン技術を人へ応用するのは難しいことではない.

私たちの夢の五輪を汚されてショックを受けている.

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

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

タスク:評価極性分類

29

牛で成功したクローン技術を人へ応用するのは難しいことではない.

私たちの夢の五輪を汚されてショックを受けている.

(例)評価文を学習し,その極性を予測する

Positive

Negative