Upload
keisuke-inoue
View
152
Download
1
Embed Size (px)
Citation preview
1
商品レビューのディープラーニングによる分類岡山理科大学 総合情報学部 情報科学科井上佳祐( I13I006 )
2
アジェンダ1. 背景2. 目的3. データについて4. 分類について5. 技術的な概要6. 学習の評価結果と比較7. まとめ8. 今後の予定
3
背景• 近年、インターネットの普及やコンピュータの性能の向上のためデータの収集やその処理などを行うハードルが下がった• ディープラーニングを含め機械学習を行うための便利なツールやライブラリなどが容易に利用できるようになった• 収集した情報や機械学習などの技術を用いて自動的に会話文を生成し返答する BOT などが増えた
• 商業利用もされてきている
4
目的• 本研究では、前ページの背景にある技術の初歩的な機能である「分類」をおこなうことが目的
• 分類対象は、楽天市場の商品レビューデータ
5
楽天市場の商品レビューデータについて (1/2) 2011 年 7 月 28 日現在のデータ レビュー数 1297697 件 (複数ファイルがあるがとりあえず 1 ファイルで) 17 項目
ID データ名 説明0 投稿者 「 user1 」のようにマスクしたユーザ名1 年齢 10 歳代など2 性別 0 :男 1 :女 2 :不明3 商品コード 店舗コード:商品 id4 商品名5 店舗名6 商品 URL 商品ページの URL のドメイン以降の部分7 商品ジャン
ル ID商品のジャンル ID
6
楽天市場の商品レビューデータについて (2/2)ID データ名 説明8 商品価格 商品購入時の価格9 購入フラグ 0 :購入なし 1 :購入あり10 内容 「実用品・普段使い」などの文字列11 目的 「自分用」などの文字列12 頻度 「はじめて」などの文字列13 評価ポイン
ト0 - 5 の 6 段階評価スコア
14 レビュータイトル
レビューの題名15 レビュー内
容レビューのコメント
16 レビュー登録日時
「 yyyy/mm/dd HH:MM:SS 」
7
分類について• 購入者が投稿したレビューデータのコメントをその商品に対する購入者の評価(星の数)で分類
8
技術的な概要• この分類は、ディープラーニングを用いて学習させる• ディープラーニングのアルゴリズムとして RNN (特に
LSTM )を用いる• 楽天市場のレビューデータは内容的には加工せずそのまま用いる• インターネットに公開してあるサンプルデータでの今回の手法による分類は、 6 割の正確性で分類できている
• 2 クラスへの分類
9
ニューラルネットワーク、ディープラーニングとは? ニューラルネットワークとは、生物の脳の神経ネットワークをモデルとしたコンピュータ処理の仕組み ディープラーニングとは、ニューラルネットワークの延長上にあり、階層を多段階にしたニューラルネットワークを利用したアルゴリズムの総称
入力層 隠れ層 出力層
10
RNN とは?• RNN とは Recurrent Neural Network の略で、可変長のデータを扱えるようにするために、隠れ層に再帰的な構造をもたせたニューラルネットワークを利用したアルゴリズム
入力層 隠れ層 出力層
11
LSTM とは?• LSTM とは Long Short Term Memory の略で、 RNN の一種
• 従来の RNN では学習できない長期依存が学習可能である
LSTMBlock
入力層 隠れ層 出力層
12
LSTM BLOCK について
[ 参考 ] わかる LSTM ~ 最近の動向と共に | Qiita http://qiita.com/t_Signull/items/21b82be280b46f467d1b
13
実行・開発環境• OS : Linux Ubuntu16.04 LTS 64bit• CPU : Corei7 6700• RAM : 32GB• GPU : GTX960 2GB• GPGPU : CUDA7.5• プログラミング言語: Python2.7.12• 形態素解析器: MeCab0.996 + IPA NEologd 辞書• ディープラーニングライブラリ: Keras• ディープラーニングフレームワーク: Tensorflow
• Keras のバックエンドで動く
14
LSTM に文を入力• 文を以下のようなイメージのモデルで学習させたい
• 学習データとして「コメント」、教師データとして「評価値」
LSTMBlock
コメント 評価値
入力層 隠れ層 出力層
15
LSTM に文を単語にして入力• LSTM に文を直接入力できない• 文を形態素解析器で単語に分解し、単語ごとに入力
• 長期依存の学習が可能な LSTM を使うのはそのため• 例
• 文:とてもよかったです• 評価値: 5
• 単語に分解• 文:「とても」「よかっ」「た」「です」
• 単語に ID を付与• 1 「とても」 2 「よかっ」 3 「た」 4 「です」
• 文は以下のようになる• 「 1 」「 2 」「 3 」「 4 」
16
LSTM に文を単語にして入力する図LSTMBlock
LSTMBlock
LSTMBlock
LSTMBlock
単語「 1 」
単語「 2 」
単語「 3 」
単語「 4 」 評価「 5 」 入力層 隠れ層 出力層
17
学習の評価結果と比較手法 正確に分類できた割合TF-IDF+SVM(10000 文 ) 60.55%
TF-IDF+SVM(50000 文 ) 62.94%
TF-IDF+SVM(1297697 文 ) 66.90%
今回の手法( LSTM ) (1297697文 )
1.67%
18
まとめ• 今回は、 LSTM による楽天市場のレビューデータ学習および分類を行った• また、その評価をおこない正確に分類できた割合の算出をし、
TF-IDF による分類での割合と比較した• 学習する文が圧倒的に TF-IDF より多いが、満足いく結果が得られなかったため工夫が必要• サンプルデータでは 6 割の正確性を得られていることから、学習結果(正確性)は、学習させるデータに影響されやすい
19
今後の予定• 形態素解析器を最近流行りの JUMAN++ に変更
• 単語の切り方が変わる• 単語をステミング
• 活用などを考慮するので、学習する単語数が減る• 単語を Word2Vec でベクトル化しそれを LSTM で学習• 単語を Word2Vec でベクトル化しそれを CNN で学習• 商品を購入した人がレビューをする際、コメントから自動的に商品の評価を行えるようにすることが最終的な目標
20
ご静聴ありがとうございました
21
質疑応答