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

マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向Koichiro Mori
 
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...joisino
 
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative ModelDeep Learning JP
 
ニューラルチューリングマシン入門
ニューラルチューリングマシン入門ニューラルチューリングマシン入門
ニューラルチューリングマシン入門naoto moriyama
 
【DL輪読会】大量API・ツールの扱いに特化したLLM
【DL輪読会】大量API・ツールの扱いに特化したLLM【DL輪読会】大量API・ツールの扱いに特化したLLM
【DL輪読会】大量API・ツールの扱いに特化したLLMDeep Learning JP
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデルMasahiro Suzuki
 
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法Deep Learning JP
 
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)[論文紹介] LSTM (LONG SHORT-TERM MEMORY)
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)Tomoyuki Hioki
 
自然言語処理に基づく商品情報の整理および構造化
自然言語処理に基づく商品情報の整理および構造化自然言語処理に基づく商品情報の整理および構造化
自然言語処理に基づく商品情報の整理および構造化Rakuten Group, Inc.
 
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings  (EMNLP 2021)【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings  (EMNLP 2021)
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)Deep Learning JP
 
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Modelscvpaper. challenge
 
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化Yusuke Fujimoto
 
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...Deep Learning JP
 
2019年度チュートリアルBPE
2019年度チュートリアルBPE2019年度チュートリアルBPE
2019年度チュートリアルBPE広樹 本間
 
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜SSII
 
Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門Shohei Hido
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Yusuke Uchida
 
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~SSII
 

What's hot (20)

マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向マルチモーダル深層学習の研究動向
マルチモーダル深層学習の研究動向
 
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
Word Tour: One-dimensional Word Embeddings via the Traveling Salesman Problem...
 
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
 
ニューラルチューリングマシン入門
ニューラルチューリングマシン入門ニューラルチューリングマシン入門
ニューラルチューリングマシン入門
 
【DL輪読会】大量API・ツールの扱いに特化したLLM
【DL輪読会】大量API・ツールの扱いに特化したLLM【DL輪読会】大量API・ツールの扱いに特化したLLM
【DL輪読会】大量API・ツールの扱いに特化したLLM
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデル
 
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
 
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)[論文紹介] LSTM (LONG SHORT-TERM MEMORY)
[論文紹介] LSTM (LONG SHORT-TERM MEMORY)
 
自然言語処理に基づく商品情報の整理および構造化
自然言語処理に基づく商品情報の整理および構造化自然言語処理に基づく商品情報の整理および構造化
自然言語処理に基づく商品情報の整理および構造化
 
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings  (EMNLP 2021)【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings  (EMNLP 2021)
【DL輪読会】SimCSE: Simple Contrastive Learning of Sentence Embeddings (EMNLP 2021)
 
【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models【メタサーベイ】基盤モデル / Foundation Models
【メタサーベイ】基盤モデル / Foundation Models
 
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
 
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
 
2019年度チュートリアルBPE
2019年度チュートリアルBPE2019年度チュートリアルBPE
2019年度チュートリアルBPE
 
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
SSII2022 [TS2] 自律移動ロボットのためのロボットビジョン〜 オープンソースの自動運転ソフトAutowareを解説 〜
 
数式からみるWord2Vec
数式からみるWord2Vec数式からみるWord2Vec
数式からみるWord2Vec
 
Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門
 
HiPPO/S4解説
HiPPO/S4解説HiPPO/S4解説
HiPPO/S4解説
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
 
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
 

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