Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
商品レビューのCNNによる
分類
岡山理科大学 総合情報学部 情報科学科
I13I006 井上佳祐
背景
 近年、インターネットの普及やコンピュータの性能の向上のためデータの収集や
その処理などを行うハードルが下がった
 ディープラーニングを含め機械学習を行うための便利なツールやライブラリなど
が容易に利用できるようになった
 収集した...
目的
 本研究では、前スライドの背景にある技術の初歩的な機能である「分類」をおこ
なうことが目的
 分類対象は、楽天市場のレビューデータ
楽天市場の商品レビューデータについて
 2011年7月28日現在のデータ
 レビュー数
 ファイル1
 1297697件
 ファイル2
 1216726件
 ファイルは全部で11ファイル
 使うデータ(スキームは全部で16個あり...
分類
 購入者が投稿したレビュー内容(コメント)をその商品に対する購入者の評価ポイン
ト(星の数)で分類
技術的な概要
 レビュー内容を学習データ、評価ポイントを教師データとして学習させる
 この分類は、ディープラーニングを用いて学習させる
 ディープラーニングのアルゴリズムとしてCNNを用いる
 楽天市場のレビュー内容は加工せずそのまま用...
実行・開発環境
 OS : Linux Ubuntu 16.04 LTS 64bit
 CPU : Core i7 6800K
 RAM : 128GB
 プログラミング言語 : Python 2.7.12
 形態素解析器 : MeC...
3つのCNN
 畳み込み層1ノードモデル
 畳み込み層2ノードモデル
 畳み込み層3ノードモデル
畳み込み層1ノードモデル
畳み込み
層
高:3
コメン
ト
評価値Embed プーリング
層
全結合
層
入力層 出力層
畳み込み層2ノードモデル
畳み込み
層
高:3
コメン
ト
評価値Embed
プーリング
層
全結合
層
入力層 出力層
畳み込み
層
高:4
プーリング
層
畳み込み層3ノードモデル
畳み込み
層
高:3
コメン
ト
評価値Embed
プーリング
層
全結合
層
入力層 出力層
畳み込み
層
高:5
プーリング
層
畳み込み
層
高:4
プーリング
層
入力層へ入力する際の前処理
 学習させるコメント文を数値化
 同じ単語は同じ数字に
 ファイル全体のコメント文において頻度が高い単語ほど番号が若い
とても
よか
った
・
・
・
です
56
3
78
・
・
・
1
埋め込み層(Word Embedding)
 入力形式は、m×n行列
 m:単語のベクトル表現の次元(word embeddingかword2vecで変換)
 n :文章の単語数
 やはり次元を揃える必要がある(足りないとことは0で埋め...
畳み込み層での高さ
 どれだけまとめて畳み込むかを示す
 幅は単語1個分(1単語での次元数文)を指定
0.x 0.y 0.z ・・・ 0.i 0.j 0.k
0.y 0.z 0.x ・・・ 0.k 0.i 0.j
0.z 0.y 0.x ・...
学習させるラベルデータ(教師データ)
 学習用ラベルデータを分類する項目と同じ数の次元にして各要素は、0 or 1 (正解
のラベルだけ1になる)のいわゆるone-hotベクトルで表現する
 0から5の6段階に分類する場合で正解が3の場合
...
出力層について
 活性化関数は、ソフトマックス関数を利用
 目的関数は、交差エントロピーを利用
 ようは、Softmax cross entropy
 出力値は確率
 例)[0.2 0.4 0.1 0.1 0.1 0.1]
 一番左...
結果の比較
 LSTMは、15回学習
 CNNは、5回学習
 Accuracyは学習データと同一のもの(ファイル1)と評価用のデータ(ファイル2)を利
用
LSTM CNN-1 CNN-2 CNN-3
Accuracy1 81.7% 80...
まとめ
 今回はLSTMとCNNを用いて学習を行った
 CNNは畳み込み層のノード数を増やしたりフィルタの高さを変えたりした
 6クラス分類を行った
 学習と同じデータ : 8割程の精度
 学習と全く違うデータ : 6割程の精度
今後の予定
 Accuracyの測定を学習”した”もの”してない”ものを両方をまぜて行う
 7割ぐらいは行ける??
 単語から単語ベクトルへの変換に単語の出現頻度を用いたWordEmbeddingではな
くWord2Vecを用いたものにし...
ご清聴ありがとうございました
Upcoming SlideShare
Loading in …5
×

商品レビューのCNNによる分類

569 views

Published on

学校で発表した資料
CNNを利用して文章の分類を行った

Published in: Data & Analytics
  • Be the first to comment

商品レビューのCNNによる分類

  1. 1. 商品レビューのCNNによる 分類 岡山理科大学 総合情報学部 情報科学科 I13I006 井上佳祐
  2. 2. 背景  近年、インターネットの普及やコンピュータの性能の向上のためデータの収集や その処理などを行うハードルが下がった  ディープラーニングを含め機械学習を行うための便利なツールやライブラリなど が容易に利用できるようになった  収集した情報や機械学習などの技術を用いて自動的に会話文を生成し応答する BOTなどが増えた  商業利用もされてきている 例)りんな、パン田一郎 など
  3. 3. 目的  本研究では、前スライドの背景にある技術の初歩的な機能である「分類」をおこ なうことが目的  分類対象は、楽天市場のレビューデータ
  4. 4. 楽天市場の商品レビューデータについて  2011年7月28日現在のデータ  レビュー数  ファイル1  1297697件  ファイル2  1216726件  ファイルは全部で11ファイル  使うデータ(スキームは全部で16個あり今回は以下のものを利用) ID データ名 説明 13 評価ポイント 0-5の6段階評価スコア 15 レビュー内容 レビューのコメント
  5. 5. 分類  購入者が投稿したレビュー内容(コメント)をその商品に対する購入者の評価ポイン ト(星の数)で分類
  6. 6. 技術的な概要  レビュー内容を学習データ、評価ポイントを教師データとして学習させる  この分類は、ディープラーニングを用いて学習させる  ディープラーニングのアルゴリズムとしてCNNを用いる  楽天市場のレビュー内容は加工せずそのまま用いる  ステミング処理などはしていない
  7. 7. 実行・開発環境  OS : Linux Ubuntu 16.04 LTS 64bit  CPU : Core i7 6800K  RAM : 128GB  プログラミング言語 : Python 2.7.12  形態素解析器 : MeCab0.966 + IPA Neologd 辞書  ディープラーニングライブラリ : Keras  ディープラーニングフレームワーク : TensorFlow  Kerasのバックエンドで動く
  8. 8. 3つのCNN  畳み込み層1ノードモデル  畳み込み層2ノードモデル  畳み込み層3ノードモデル
  9. 9. 畳み込み層1ノードモデル 畳み込み 層 高:3 コメン ト 評価値Embed プーリング 層 全結合 層 入力層 出力層
  10. 10. 畳み込み層2ノードモデル 畳み込み 層 高:3 コメン ト 評価値Embed プーリング 層 全結合 層 入力層 出力層 畳み込み 層 高:4 プーリング 層
  11. 11. 畳み込み層3ノードモデル 畳み込み 層 高:3 コメン ト 評価値Embed プーリング 層 全結合 層 入力層 出力層 畳み込み 層 高:5 プーリング 層 畳み込み 層 高:4 プーリング 層
  12. 12. 入力層へ入力する際の前処理  学習させるコメント文を数値化  同じ単語は同じ数字に  ファイル全体のコメント文において頻度が高い単語ほど番号が若い とても よか った ・ ・ ・ です 56 3 78 ・ ・ ・ 1
  13. 13. 埋め込み層(Word Embedding)  入力形式は、m×n行列  m:単語のベクトル表現の次元(word embeddingかword2vecで変換)  n :文章の単語数  やはり次元を揃える必要がある(足りないとことは0で埋めるとか) とても よか った ・ ・ ・ です 0.x 0.y 0.z ・・・ 0.i 0.j 0.k 0.y 0.z 0.x ・・・ 0.k 0.i 0.j 0.z 0.y 0.x ・・・ 0.i 0.j 0.k ・ ・ ・ 0.y 0.x 0.z ・・・ 0.k 0.i 0.j 56 3 78 ・ ・ ・ 1 入力する際 の前処理 埋め込み層 での処理
  14. 14. 畳み込み層での高さ  どれだけまとめて畳み込むかを示す  幅は単語1個分(1単語での次元数文)を指定 0.x 0.y 0.z ・・・ 0.i 0.j 0.k 0.y 0.z 0.x ・・・ 0.k 0.i 0.j 0.z 0.y 0.x ・・・ 0.i 0.j 0.k 0.x 0.y 0.z ・・・ 0.i 0.j 0.k 0.y 0.z 0.x ・・・ 0.k 0.i 0.j 0.z 0.y 0.x ・・・ 0.i 0.j 0.k ・ ・ ・ 0.y 0.x 0.z ・・・ 0.k 0.i 0.j 高さ4
  15. 15. 学習させるラベルデータ(教師データ)  学習用ラベルデータを分類する項目と同じ数の次元にして各要素は、0 or 1 (正解 のラベルだけ1になる)のいわゆるone-hotベクトルで表現する  0から5の6段階に分類する場合で正解が3の場合 [0 0 0 1 0 0] と6次元のベクトルで表現する
  16. 16. 出力層について  活性化関数は、ソフトマックス関数を利用  目的関数は、交差エントロピーを利用  ようは、Softmax cross entropy  出力値は確率  例)[0.2 0.4 0.1 0.1 0.1 0.1]  一番左が第0要素とすると第1要素の確率が一番大きいので、入力した文はカテゴリ (評価)「1」に分類される
  17. 17. 結果の比較  LSTMは、15回学習  CNNは、5回学習  Accuracyは学習データと同一のもの(ファイル1)と評価用のデータ(ファイル2)を利 用 LSTM CNN-1 CNN-2 CNN-3 Accuracy1 81.7% 80.26% 82.63% 86.40% Accuracy2 N/A 67.20% 67.19% 65.99%
  18. 18. まとめ  今回はLSTMとCNNを用いて学習を行った  CNNは畳み込み層のノード数を増やしたりフィルタの高さを変えたりした  6クラス分類を行った  学習と同じデータ : 8割程の精度  学習と全く違うデータ : 6割程の精度
  19. 19. 今後の予定  Accuracyの測定を学習”した”もの”してない”ものを両方をまぜて行う  7割ぐらいは行ける??  単語から単語ベクトルへの変換に単語の出現頻度を用いたWordEmbeddingではな くWord2Vecを用いたものにしてみる
  20. 20. ご清聴ありがとうございました

×