Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
CNNによるテキスト分類
けんご
March 02, 2016
Technology
1
45k
CNNによるテキスト分類
けんご
March 02, 2016
Tweet
Share
More Decks by けんご
See All by けんご
機械学習を始めるための第一歩
tkengo
0
160
レポート化の落とし穴
tkengo
0
85
PHP and sometimes Machine Learning
tkengo
3
880
機械学習と数学とプログラマのための数学勉強会
tkengo
0
470
指数の裏側
tkengo
1
220
architecture-of-highway
tkengo
1
3.9k
数学とプログラミングの世界を楽しもう〜プロジェクトオイラー〜
tkengo
8
5.7k
目に見えるパーセプトロン
tkengo
5
98k
commits in git
tkengo
2
150
Other Decks in Technology
See All in Technology
Cloudflare Workersで動くOG画像生成器
aiji42
1
440
ERC3525 Semi-Fungible token
sbtechnight
0
330
20230121_データ分析系コミュニティ_サテライト企画
doradora09
0
350
Optimizing your Swift code
kateinoigakukun
0
1.3k
データベースの発表には RDBMS 以外もありますよ
maroon1st
0
220
20230117_JAWS-UG_朝会_41_LT資料
tsumita
0
290
OCI DevOps 概要 / OCI DevOps overview
oracle4engineer
PRO
0
470
データサイエンティストとしてどう学んでいくべきか/東京大学講義: データマイニング概論: #10
yp_genzitsu
11
5.9k
Hasuraの本番運用に向けて
nori3tsu
0
260
マネーフォワードクラウドを支える事業者基盤
machisuke
0
220
マイクロサービス宣言から8年 振り返りとこれから / Eight Years After the Microservices Declaration A Look Back and A Look Ahead
eisuke
2
120
MoT/コネヒト/Kanmu が語るプロダクト開発xデータ分析 - 分析から機械学習システムの開発まで一人で複数ロールを担う大変さ
masatakashiwagi
2
540
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
152
13k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
351
21k
Teambox: Starting and Learning
jrom
124
7.9k
A Tale of Four Properties
chriscoyier
149
21k
Designing on Purpose - Digital PM Summit 2013
jponch
108
5.9k
The Art of Programming - Codeland 2020
erikaheidi
35
11k
Done Done
chrislema
178
14k
Principles of Awesome APIs and How to Build Them.
keavy
117
15k
Typedesign – Prime Four
hannesfritz
34
1.5k
The Invisible Customer
myddelton
113
12k
Designing Experiences People Love
moore
130
22k
The MySQL Ecosystem @ GitHub 2015
samlambert
240
11k
Transcript
2016.03.02 @tkengo CNNによる テキスト分類
目次 • 畳み込みニューラルネット(CNN) • CNNのNLPへの適用 • テキスト分類デモ • 参考
畳み込み ニューラルネット
畳み込みニューラルネット • 人間の視覚野をシミュレーション • 画像認識の分野で広く使われる • カーネルをスライドさせて特徴マップを得る
畳み込みニューラルネット • NLPへCNNを適用してうまくいくのか? • そもそもどうやって適用するのか? • NLPでは既にRNNが良く使われているのでは?
畳み込みニューラルネット • NLPへCNNを適用してうまくいくのか? • そもそもどうやって適用するのか? • NLPでは既にRNNが良く使われているのでは? ➜いくつかの実験で良い結果が出ている ➜このあと説明します ➜使われていると思う。現時点ではCNNが全て
において万能だという結論ではないと思う
CNNのNLPへの適用
CNNのNLPへの適用 • テキスト内の単語をベクトル化する必要がある • BoWモデルやWordEmbeddingモデル • BoWは単純だけど各単語間の関連が皆無 • WordEmbeddingは話題のword2vec vector('Paris')
- vector('France') + vector(‘Italy’) vector(‘Roma’) vector('king') - vector('man') + vector(‘woman') vector('queen') ⇡ ⇡
CNNのNLPへの適用 • 分類したいテキストに含まれる単語をベクトル化 • それを並べた行列がそのテキストの表現 • 単語数が一致しない場合はパディングで埋める 犬も猫も好き 犬 も
猫 も 好き ʜ ʜ ʜ ʜ ʜ トトロが好き トトロ が 好き <PAD> <PAD> ʜ ʜ ʜ ʜ ʜ “トトロ”のベクトル “犬”のベクトル
CNNのNLPへの適用 • カーネルの幅は単語ベクトルと同じ幅に固定 • カーネルの高さは2-5くらいの範囲 • 1単語ずつスライドさせて畳み込んでいく
ʜ ʜ ʜ ʜ ʜ ʜ ʜ ʜ ʜ ʜ ʜ ʜ ʜ ʜ ʜ
CNNのNLPへの適用 • 畳み込み層の後にはプーリング層も配置 • 活性化関数ReLUを適用した後に全結合層 • 最後にsoftmax関数を適用
テキスト分類デモ
モチベーション • LINE占い内で悩み相談所というサービスを展開 • 悩み内容にはそれぞれカテゴリが紐付いている • 悩み内容のカテゴリを自動分類できないかな? カテゴリ
単純なNNでテキスト分類 • 最初は隠れ層が1つの単純な順伝播型で実装 • 単語ベクトルにはBoWモデルを使用 • 130,000件のデータを数時間かけて学習 • 65%〜70%程度の精度。もう少し精度ほしい
CNNでテキスト分類 • 全部で5層のディープニューラルネット • 単語ベクトルにはWordEmbeddingモデルを使用 • 130,000件のデータを20時間かけて学習 • 75%〜80%程度の精度
参考
参考 • Convolutional Neural Networks for Sentence Classification • http://arxiv.org/pdf/1408.5882v2.pdf
• word2vec • https://code.google.com/archive/p/word2vec/ • 実装 • https://github.com/tkengo/tf/blob/master/cnn_text_classification/train.py • TensorFlow • https://www.tensorflow.org/