SlideShare a Scribd company logo
1 of 28
Download to read offline
Character Level CNN
About Me
・大学/大学院では理論物理学の研究をしてました。
  超弦理論(量子論 /素粒子論と一般相対性理論の統一を目指す学問)の研究
   →10次元時空に飲み込まれそうだったので現実世界( 4次元時空)に逃げてきました。
・シルバーエッグ テクノロジーに所属
  レコメンドアルゴリズムの R&Dをやってる。
        (入社時はWeb Developer)
http://members.wolfram.com/jeffb/visualization/stringtheory.shtml
・趣味:プログラミングと情報幾何学
・好きな言語: Python
・GitHub: https://github.com/Tdual
誤字脱字・タイポ・変換ミスをした
ことない人居ますか?
Q:なぜ人はそこまで必死に確認しない
のか?
A: 読めてしまうから
私はパーテーに参かするたmeに家を早くく出まし
た。
意味わかりますよね?
しかし、自然言語処理において誤字脱
字は大敵
適切な分かち書きができない
むしろ、本質的に単語分割が必要では
ないところでは、無理に単語に分割しな
くてもいいのでは?
例えば、テキスト分類問題
問題設定
ネガポジ判定器を作る
Amazonのカスタマーレビューを読んでそれがポジティブな内容かネガティブな内容か
判断(感情解析)
  
判定器
レビュー
この商品は最高です! 「ポジティブ」です。
★★★★★
5つ星のうち5.0
データセット
Amazonのカスタマーレビュー
レビューと5段階評価
言語:日本語
合計:18052本のレビュー
5つ星 = ポジティブ 9026本
1つ星と2つ星 = ネガティブ 9026本
Character Level CNN
・テキスト分類をCNNでやってる。
・文書の文字(Character)の並びしか見てない。(最小単位が文字)
・オリジナル論文 
 Xiang Zhang, Junbo Zhao, Yann LeCun: Character-level Convolutional Networks for Text
Classification (https://arxiv.org/abs/1509.01626)
だが、オリジナルのアーキテクチャでは上手くいかなかったので別のアーキテクチャ
を試した。
Joshua Saxe, Konstantin Berlin: eXpose:A Character-Level
Convolutional Neural Network with Embeddings For Detecting Malicious
URLs, File Paths and Registry Keys(https://arxiv.org/abs/1702.08568)
最小単位が文字のメリット/デメリット
メリット
・前処理は文字に分割するだけ(日 本 語 の 様 な 分 か ち 書 き が 必 要 な い )
・どんな言語(英語・日本語・中国など)にもそのまま対応できる
・誤字脱字・タイポ・変換ミスが多い文書でも有効(レビュー ,チャットなど)
・文書じゃない物にも適応できる( URL, Tex, プログラミングコードなど)
・データが多くても単語の語彙の様に次元が大きくなることはない
デメリット
・単語に比べて粒度が小さいので学習に時間がかかる
処理の流れ
①文字を低次元に埋め込む
②カーネルサイズが違う複数のCNNに入れて特徴を出力
③特徴を一つに結合
④全結合層に通して分類
①文字を埋め込みむ(2)
・one-hotベクトルじゃなくて、埋め込み表現(分散表現)にしたいよね。
・埋め込み方は?
 それもニューラルネットワークに学習させよう。
・埋め込み層を用意する 。
a
b
c
文字数 × 埋め込み次元 行列
埋め込み
対応する文字の行ベクトルを選んで更新する。
②カーネルサイズが違う複数のCNNに入れて特徴を出力(1)
filter数:256
カーネルサイズ:
1×2, 1×3, 1×4, 1×5
(stride 横1,縦1)
②カーネルサイズが違う複数のCNNに入れて特徴を出力(2)
this is a pen. → t h i s i s a p e n .
1×2
1×3
1×4
1×5
解釈
様々なWindowで文字のCooccurrence(共起性)を学習してる
③特徴を一つに結合 & ④全結合層に通して分類
TensorFlowで実装
アーキテクチャ図
tf.nn.embedding_lookup
結果
Accuracy 0.921
他のモデルとの比較
Random Forest Logistic Regression CNN LSTM
Char Level 0.861 0.903 0.921 0.900
Word Level 0.882 0.902 0.917 0.918
accuracy
使用したコードはここ
https://github.com/Tdual/char_level_cnn
もっと誤字が多い場合は?
実験方法
サイコーです!今まで多くの類似商品を買っ
てきましたが、これほど良いものには出会った
ことありません。
これからも使い続けたいと思います (*゚▽゚*)
テストデータの文章中の文字をランダムな文字に入れ替えて精度がどれくらい落ちるか検証
サイコーで★!今まで多くの ●似商品を買っ
*きましたが、これほど良$ものには出会った
ことあ@ません。
これからも使▽続けたいと思います (*゚▽゚*)
誤字・脱字に対する強さ
変えた文字数と精度
100文字変えても精度
が0.8以上
word level CNNで同じことをやる
変えた文字の数と精度
50文字ですでに精度が 0.5
character level
まとめ
・Character level CNNは誤字脱字・タイポ・変換ミスに強い
   → SNSメッセージ、チャット、レビューなど最適
  (しかも分かち書き不要)
・なんでもかんでもMeCabなどで分かち書きをするのではなくて、
別の方法も検討してみる価値あり
Thank you!

More Related Content

What's hot

Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Yoshitaka Ushiku
 
[DL Hacks]Self-Attention Generative Adversarial Networks
[DL Hacks]Self-Attention Generative Adversarial Networks[DL Hacks]Self-Attention Generative Adversarial Networks
[DL Hacks]Self-Attention Generative Adversarial NetworksDeep Learning JP
 
【2017年度】勉強会資料_学習に関するテクニック
【2017年度】勉強会資料_学習に関するテクニック【2017年度】勉強会資料_学習に関するテクニック
【2017年度】勉強会資料_学習に関するテクニックRyosuke Tanno
 
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)Yamato OKAMOTO
 
[DL輪読会]Control as Inferenceと発展
[DL輪読会]Control as Inferenceと発展[DL輪読会]Control as Inferenceと発展
[DL輪読会]Control as Inferenceと発展Deep Learning JP
 
機械学習の未解決課題
機械学習の未解決課題機械学習の未解決課題
機械学習の未解決課題Hiroyuki Masuda
 
[DL輪読会]Deep Face Recognition: A Survey
[DL輪読会]Deep Face Recognition: A Survey[DL輪読会]Deep Face Recognition: A Survey
[DL輪読会]Deep Face Recognition: A SurveyDeep Learning JP
 
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜SSII
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)Masahiro Suzuki
 
Introduction to A3C model
Introduction to A3C modelIntroduction to A3C model
Introduction to A3C modelWEBFARMER. ltd.
 
[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video Processing (NeRF...
[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video  Processing (NeRF...[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video  Processing (NeRF...
[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video Processing (NeRF...Deep Learning JP
 
ドメイン適応の原理と応用
ドメイン適応の原理と応用ドメイン適応の原理と応用
ドメイン適応の原理と応用Yoshitaka Ushiku
 
Deep Learningによる超解像の進歩
Deep Learningによる超解像の進歩Deep Learningによる超解像の進歩
Deep Learningによる超解像の進歩Hiroto Honda
 
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法Deep Learning JP
 
Structured Light 技術俯瞰
Structured Light 技術俯瞰Structured Light 技術俯瞰
Structured Light 技術俯瞰Teppei Kurita
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方joisino
 
DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜Jun Okumura
 
Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)Shohei Taniguchi
 
Triplet Loss 徹底解説
Triplet Loss 徹底解説Triplet Loss 徹底解説
Triplet Loss 徹底解説tancoro
 
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)Masaya Kaneko
 

What's hot (20)

Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
 
[DL Hacks]Self-Attention Generative Adversarial Networks
[DL Hacks]Self-Attention Generative Adversarial Networks[DL Hacks]Self-Attention Generative Adversarial Networks
[DL Hacks]Self-Attention Generative Adversarial Networks
 
【2017年度】勉強会資料_学習に関するテクニック
【2017年度】勉強会資料_学習に関するテクニック【2017年度】勉強会資料_学習に関するテクニック
【2017年度】勉強会資料_学習に関するテクニック
 
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)
 
[DL輪読会]Control as Inferenceと発展
[DL輪読会]Control as Inferenceと発展[DL輪読会]Control as Inferenceと発展
[DL輪読会]Control as Inferenceと発展
 
機械学習の未解決課題
機械学習の未解決課題機械学習の未解決課題
機械学習の未解決課題
 
[DL輪読会]Deep Face Recognition: A Survey
[DL輪読会]Deep Face Recognition: A Survey[DL輪読会]Deep Face Recognition: A Survey
[DL輪読会]Deep Face Recognition: A Survey
 
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
SSII2022 [TS1] Transformerの最前線〜 畳込みニューラルネットワークの先へ 〜
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)
 
Introduction to A3C model
Introduction to A3C modelIntroduction to A3C model
Introduction to A3C model
 
[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video Processing (NeRF...
[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video  Processing (NeRF...[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video  Processing (NeRF...
[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video Processing (NeRF...
 
ドメイン適応の原理と応用
ドメイン適応の原理と応用ドメイン適応の原理と応用
ドメイン適応の原理と応用
 
Deep Learningによる超解像の進歩
Deep Learningによる超解像の進歩Deep Learningによる超解像の進歩
Deep Learningによる超解像の進歩
 
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
 
Structured Light 技術俯瞰
Structured Light 技術俯瞰Structured Light 技術俯瞰
Structured Light 技術俯瞰
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜
 
Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)Control as Inference (強化学習とベイズ統計)
Control as Inference (強化学習とベイズ統計)
 
Triplet Loss 徹底解説
Triplet Loss 徹底解説Triplet Loss 徹底解説
Triplet Loss 徹底解説
 
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
 

Character level CNN [CNNで自然言語処理]