step by stepで学ぶ自然言語処理における深層学習の勘所

Post on 21-Apr-2017

1.282 Views

Category:

Engineering

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Step by Step で学ぶ自然言語処理における深層学習の勘所

自己紹介大串 正矢 @SnowGushiGit

ポート株式会社   Web 開発事業部 研究チーム Tech-Circle  運営スタッフ 機械学習/自然言語処理 インフラ自動構築 /並列分散処理 Python

Agenda• 機械学習

• 深層学習(ニューラルネットワーク)• 自然言語処理における深層学習

• 勉強方法

機械学習とは

機械学習とは• 人がルールを教えるのではなくデータからルールを学習する方法

人 ルール

データ ルール学習

機械学習の利点と欠点

機械学習の利点と欠点• 利点

• 欠点 速い 24 時間動作 分野によっては高精度

データ依存 精度が出せる分野が限られる適切なデータの準備

機械学習をどこで使うか

機械学習をどこで使うか• 値の予測

• 分類

商品のレコメンド購入者が好きそうな商品のスコアを計算しレコメンド

迷惑フィルタ無限に近いパターンから迷惑メールとそうでないパターンを分類

機械学習の適用が難しい所

機械学習の適用が難しい所

データの用意が難しい分野法的な問題(プライバシーなど) 少量のデータしかない

人でも分からない問題ミスが許されない分野

機械学習の仕組み

機械学習の仕組み

特徴を抽出・茶色、肌色・丸みがある・ etc

学習データ

学習の仕組み

機械学習の仕組み教師有り学習 教師なし学習 強化学習

特徴データ

女性

特徴 女性

答え

特徴 女性

特徴 男性

特徴データ

特徴

特徴

特徴

特徴空間ゴール

女性の特徴である髪が長いかなどの特徴を軸とした空間で行動して女性を探すように学習させる

どれが良いの???

どれが良いの???• 結論:教師有り学習:人間と同じで良い教師がいた方が良くなります。

• 教師なし学習• データの分析や特徴量の選出に役に立つ• 教師有り学習の前の準備に使用するのがベター

• 強化学習• 特徴量空間の設定とゴールの設定が難しい• 適用分野や適用方法を絞れば効果的• ゲームなど明確にルールが決まった分野では強力

深層学習の学習方法はどれでしょう?

深層学習の学習方法はどれでしょう?教師有り学習 教師なし学習 強化学習

特徴データ

女性

特徴 女性

答え

特徴 女性

特徴 男性

特徴データ

特徴

特徴

特徴

特徴空間

女性の特徴である髪が長いかなどの特徴を軸とした空間で行動して女性を探すように学習させる

ゴール

深層学習の適用分野教師有り学習 教師なし学習 強化学習

特徴データ

女性

特徴 女性

答え

特徴 女性

特徴 男性

特徴データ

特徴

特徴

特徴

特徴空間

女性の特徴である髪が長いかなどの特徴を軸とした空間で行動して女性を探すように学習させる

全部できるよ

ゴール

深層学習が効果を発揮している分野

深層学習が効果を発揮している分野• 画像認識の分野で 2 位以下に圧倒的な精度の差を出す

• 音声認識の分野でも従来手法を上回る精度

なぜ効果を発揮しているか

なぜ効果を発揮しているか• 大量の情報から適切な情報を選択して、それを元に学習している従来手法

人手で特徴量を抽出・茶色、肌色・丸みがある・ etc

従来の機械学習

深層学習

深層学習特徴量の抽出から学習まで行う

非構造化データ

非構造化データ• 非構造化データとは画像、音声、動画、言語など情報の意味づけがされていないデータ

画像

音声

Data Base言語構造化データ非構造化データ

なぜ効果を発揮しているか• 画像、音声には大量の情報を含んだ情報源がある。

エッジ 部分 猫

ピクセル情報

音素 単語 発話

波形情報

低次 高次

なぜ効果を発揮しているか• 低次の情報から高次への情報へ変換する技術が上手く適用されている。

エッジ 部分 猫

ピクセル情報

音素 単語 発話

波形情報

低次 高次

深層学習

非構造化データ• 次ページから画像、音声で成果を出した深層学習が言語においてどのような位置づけか述べます。

画像

音声

Data Base言語構造化データ非構造化データ

自然言語処理の概要の説明

自然言語処理の概要の説明• 自然言語(人の話す言葉)をコンピューターで処理させるための技術• 主な応用:日本語入力の予測変換、機械翻訳、検索など

予測変換 機械翻訳 検索

自然言語処理の概要の説明• 自然言語処理の方向性

• 言語の構造を明らかにする

• 言語から情報を得ること

対話 検索

分かち書き 構文解析S

NP

VP

NP

Neural networks improve the accuracy

自然言語処理における深層学習の位置づけ

自然言語処理における深層学習の位置づけ

エッジ 部分 猫ピクセル情報

音素 単語 発話波形情報

低次 高次

単語 フレーズ 文表現深層学習

自然言語処理における深層学習の位置づけ低次 高次

単語 フレーズ 文表現

I show am me your you … when are1, 0, 0, 0, 0, 0, … 0, 0I

am

Shota

I show am me your you … when are0, 0, 1, 0, 0, 0, … 0, 0

I show am me your you … when are0, 0, 0, 0, 0, 0, … 0, 0

数万語以上あるがほとんどが使用されないデータ

単語で数万以上…表現だともっと多いのでは

深層学習により単語の空間を圧縮して表現の空間を表します

自然言語処理における深層学習の位置づけ低次 高次

単語 フレーズ 文表現

0.5, 0.0, 1.0, 1.0, 0.3, 0.0I

am

Shota

深層学習により単語の空間を圧縮

深層学習

0.5, 0.0, 1.0, 1.0, 0.0, 0.0

0.5, 0.0, 1.0, 0.5, 0.3, 0.0

データ

自然言語処理における深層学習の位置づけ

圧縮された空間を分散表現と呼びます。

深層学習による自然言語の分散表現

深層学習による自然言語の分散表現

I :0am:0show:1me:0your:0you:0:when:0are:0

I :0am:0show:1me:0your:0you:0:when:0are:0

中間層が分散表現

分散表現の学習方法

分散表現の学習方法• CBOW

• 単語を直接予測• 小規模なデータセットに良い

• Skip-gram

• 単語から周りの単語を予測• 大規模なデータセットに使われる

性能が早く高速なので Skip-Gramが人気

 分散表現の学習方法

I :0am:1show:0me:0your:0you:0:when:0are:0

• CBOW• 例文: I am Ken

I :0am:1show:0me:0your:0you:0:when:0Ken:0

 分散表現の学習方法

I :0am:1show:0me:0your:0you:0:when:0Ken:0

• Skip-Gram• 例文: I am Ken

I :1am:0show:0me:0your:0you:0:when:0Ken:1

分散表現を行うことが可能な深層学習のモデル

分散表現を行うことが可能な深層学習のモデル

• Skip-gram(先ほど説明したモデル)• Recurrent Neural Network (実装で使用しているモデル)• Recursive Neural Network

分散表現を行うことが可能な深層学習のモデル

• Recurrent Neural Network

00001:0

出力層

例文: Show me your hair

yourhair隠れ層

 

me の時の隠れ層

 

 

変換行列

過去の値をコピー

分散表現を行うことが可能な深層学習のモデル

• Skip-gram(先ほど説明したモデル)• Recurrent Neural Network (実装で使用しているモデル)• Recursive Neural Network

分散表現を行うことが可能な深層学習のモデル

• Recursive Neural Network• 合成ベクトルを単語から再帰的に予測するニューラルネットワークを構築

S

Neural単語ベクトル networks単語ベクトル improve単語ベクトル the単語ベクトル accuracy単語ベクトル

合成ベクトル

合成ベクトル合成ベクトル

デモに使用したモデル

デモに使用したモデル

太郎 さん こんにちは

こんにちは<EOS>• Recurrent Neural Network(Seq to Seq)

• 入力側 (Encoder) と出力側 (Decoder) それぞれ RNN を用意• Encoder によって入力系列を中間ノードに変換しその情報をもとに

Decoder が系列を出力

Encoder Decoder

デモに使用したモデル

太郎 さん こんにちは

こんにちは<EOS>• Attention Model• 出力ステップで、その時の隠れ層を使い入力側の隠れ層を加重平均したベクトルを出力で使用

+Encoder

Decoder

システム構成

System Architecture

SQLite

対話破綻コーパス

ファインチューニング用学習データ

プレトレイン WikiPedia タイトルデータ学習

  データ取得  データ出力

チューニング

  ボット応答

  ユーザーアクション

Word NetWikipedia

Entity Vector

Word NetWikipedia

Entity Vector

Wikipedia Entity Vector と Word Netを用いた話題選定

Wikipedia Entity Vector と Word Netを用いた話題選定

彼氏

パパ

Wikipedia Entity Vector と Word Netを用いた話題選定

• Word Net は何??– 単語に概念を付与してグループ化してくれているデータセット

スコティッシュホールド クロネコ オレンジネコ

ネコ

Wikipedia Entity Vector と Word Netを用いた話題選定

しかし概念数が多い:その数 57,238 概念概念数が多いとデータを用意しづらい

Wikipedia Entity Vector と Word Netを用いた話題選定

同じような概念があるはず:それをまとめたい

Wikipedia Entity Vector と Word Netを用いた話題選定

• Wikipedia Entity Vector は何??– 単語、および Wikipedia で記事となっているエンティティの分散表現ベクトル

Wikipedia Entity Vector と Word Netを用いた話題選定

概念にベクトルが付与できる:つまり計算が可能に(注意:今回は計算量とメモリの関係で 20万単語のみ使用)

Wikipedia Entity Vector と Word Netを用いた話題選定

Word NetとWikipedia Entity Vectorを組み合わせることで概念クラスを分散ベクトル化

Wikipedia Entity Vector と Word Netを用いた話題選定

• Word Net と Wikipedia Entity Vector を組み合わせ1: Word Net の概念クラスを Wikipedia Entity Vector を用いて  サマライズ2: Word Net の未知語を Wikipedia Entity Vector で付与3:概念クラスの平均ベクトルを Wikipedia Entity Vector で  導出4:概念クラスをサマライズ5:概念クラス内の単語の頻度が 1000 以上だけ残す

Wikipedia Entity Vector と Word Netを用いた話題選定

1 : Word Net の概念クラスを Wikipedia Entity Vector を用いてサマライズ ネコ :[0.2, 0.3, 0.4…]

犬 :[0.3, 0.4, 0.5…]Wikipedia

Entity Vector

うさぎ :[0.2, 0.5, 0.4…]

コサイン類似度計算

Wikipedia Entity Vector と Word Netを用いた話題選定

2: Word Net の未知語を Wikipedia Entity Vector で付与

クロネコ白猫:三毛猫:

ネコWikipedia Entity Vector

コサイン類似度近い

未知語なら追加

Wikipedia Entity Vector と Word Netを用いた話題選定

各概念に属する単語数が増えある程度まとまったが:まだ多い

Wikipedia Entity Vector と Word Netを用いた話題選定

3: 概念クラスの平均ベクトルを Wikipedia Entity Vector で導出

クロネコ :[0.2, 0.3, 0.4…]白猫 :[0.1, 0.3, 0.…]:

ネコ

柴犬 :[0.1, 0.3, 0.4…]土佐犬 :[0.1, 0.2, 0.…]:

平均ベクトル

平均ベクトル

Wikipedia Entity Vector と Word Netを用いた話題選定

4: 概念クラスをサマライズ

クロネコ :[0.2, 0.3, 0.4…]白猫 :[0.1, 0.3, 0.…]:

ネコ

柴犬 :[0.1, 0.3, 0.4…]土佐犬 :[0.1, 0.2, 0.…]:

平均ベクトル

平均ベクトルコサイン類似度計算

Wikipedia Entity Vector と Word Netを用いた話題選定

各概念に属する単語数が増えある程度まとまったが:まだ多い( 20000程度)

Wikipedia Entity Vector と Word Netを用いた話題選定

5: 概念クラス内の単語の頻度が 1000 以上だけ残す

クロネコ白猫:

ネコ

柴犬土佐犬:

白鳥アヒル:

トリ

コアラコアラ

Wikipedia Entity Vector と Word Netを用いた話題選定

これで 76概念まで減少:他は概念を与えないことに全てのベクトル使えばもっと良くなるはず・・

Wikipedia Entity Vector と Word Netを用いた話題選定

その 服 可愛いどこ で買ったの?

彼氏イケメンかっこいい:妹可愛い服:パパお金小遣い:

単語の平均一致率計算

Attention Model を用いた言葉へのフォーカス

Attention Model を用いた言葉へのフォーカス私 と仕事のどっちが 大事 ?

その 服 可愛いどこ で買ったの?

パパ 小遣い 頂戴

彼氏

パパ

デモに使用したモデル

太郎 さん こんにちは

こんにちは<EOS>• Attention Model

+

Attention Model を用いた言葉へのフォーカス

• Attention Model

• 詳しくは下記のスライドでhttp://www.slideshare.net/yutakikuchi927/deep-learning-nlp-attention

深層学習を実際に適用するには

深層学習を実際に適用するには

データの用意が難しい分野法的な問題(プライバシーなど) 少量の教師データしかない

人でも分からない問題ミスが許されない分野

深層学習を実際に適用するには

データの用意が難しい分野法的な問題(プライバシーなど)

人でも分からない問題ミスが許されない分野

少量の教師データしかない

深層学習を実際に適用するには• データの問題

• 法的な問題• ・・・

• 少量の教師データしかない問題• 既にある資源の有効活用

• Wikipedia• WordNet• etc

• 転移学習• 事前に他のデータで学習したモデルの重みを使用

• バイトを雇う。外注(クラウドワークス)• 教師データを作成してもらう。

深層学習を実際に適用するには

データの用意が難しい分野法的な問題(プライバシーなど)

人でも分からない問題ミスが許されない分野

少量の教師データしかない

深層学習を実際に適用するには• ミスが許されない分野

• 人と機械学習のハイブリッド• 機械学習で効率化+人で最終チェック

+

深層学習を実際に適用するには

データの用意が難しい分野法的な問題(プライバシーなど)

人でも分からない問題ミスが許されない分野

少量の教師データしかない

深層学習を実際に適用するには• 人でも分からない問題

• 哲学的なものは厳しい(人はなぜ生きるのかなど)• フィーリングと勘でやっていて言葉にできない。(営業など)

• 難しい・・けどコミュニケーションを取れば何らかの傾向や細分化できる部分があるはず。その部分のみ解決することは可能

勉強方法

勉強方法• 王道

• 時間の使い方を変える• 付き合う人を変える• 環境を変える

• 独学コース• 勉強会を主催して、発表することが一番早いと思います!!

勉強方法• 勉強のための教材• Coursera

• https://www.coursera.org/learn/machine-learning/home/info

• Stanford University CNN• http://cs231n.stanford.edu/

Conclusion

Conclusion• 機械学習• 深層学習(ニューラルネットワーク)• 自然言語処理における深層学習• 勉強方法• Githubに Starをくれるとやる気が加速します!!

– githubを“ Chainer Slack Twitter”で検索

Reference

Reference• Chainer で学習した対話用のボットを Slack で使用 +Twitter から学習データを取得してファインチューニング

– http://qiita.com/GushiSnow/items/79ca7deeb976f50126d7• WordNet

– http://nlpwww.nict.go.jp/wn-ja/• 日本語 Wikipedia エンティティベクトル

– http://www.cl.ecei.tohoku.ac.jp/~m-suzuki/jawiki_vector/• PAKUTASO

– https://www.pakutaso.com/• A Neural Attention Model for Sentence Summarization

– http://www.aclweb.org/anthology/D15-1044• 猫の画像( 10 ページ)

• http://photobucket.com/images/gif%20pixel%20cat%20kitten%20black%20cat%20cute• 構文解析

• http://qiita.com/laco0416/items/b75dc8689cf4f08b21f6

Reference• 分かち書き画像

• http://www.dinf.ne.jp/doc/japanese/access/daisy/seminar20090211/session1_1.html

• 波形の画像( 10 ページ)• http://www.maroon.dti.ne.jp/koten-kairo/works/fft/intro1.html

• Large Scale Visual Recognition Challenge 2012• http://image-net.org/challenges/LSVRC/2012/results.html

• 音声認識技術 - 大規模テキストアーカイブ研究分野 - 京都大学• http://www.ar.media.kyoto-u.ac.jp/lab/project/paper/KAW-

IEICEK15.pdf• iconfinder

• https://www.iconfinder.com/search/?q=Program&price=free• Machine learningbootstrap For Business

• http://www.slideshare.net/takahirokubo7792/machine-learningbootstrap-for-business

• A Neural Attention Model for Sentence Summarization [Rush+2015] (Slide Share)– http://www.slideshare.net/yutakikuchi927/a-neural-attention-model-for-sentence-

summarization

top related