SlideShare a Scribd company logo
1 of 18
Download to read offline
Enriching Word Vectors with
Subword Information
Piotr Bojanowski, Edouard Grave, Armand Joulin,
and Tomas Mikolov
TACL2017
読む⼈:⾼瀬翔
http://www.kecl.ntt.co.jp/icl/lirg/members/takase/
117/09/16 第9回最先端NLP勉強会
実験結果の表は[Bojanowski+ 17]から引⽤
なぜこの論⽂を選んだか?
•  最先端NLP勉強会論⽂投票で1位なので
– 得票数:13(2位が7票,ほぼダブルスコア)
– TACLの論⽂で次点は5票
– 論⽂選択締め切り⽇にまだ空いていた
– ⼤⼈気論⽂だし読んでおくか〜という気持ち
17/09/16 第9回最先端NLP勉強会 2
最先端?
•  初稿がarXivに投稿されたのは1年以上前
(2016/7/15)
– 引⽤数は既に86件(2017/9/13現在)
•  最初期の実装も同時期に公開
– https://github.com/facebookresearch/fastText
•  解説記事もちらほら
– http://qiita.com/search?q=fasttext
17/09/16 第9回最先端NLP勉強会 3
論⽂の概要
•  ⽬標:単語のベクトル表現の質の向上
–  未知語,低頻度語に頑健なベクトル表現の獲得
•  単語をcharacter n-gramの集合で表現
–  開始/終了を表す記号(<,>)を単語に付与
–  3-gramの場合:where → <wh, whe, her, ere, re>
•  単語のベクトル=character n-gramのベクトルの和
–  3-gramの場合:vwhere = v<wh + vwhe + vher + vere + vre>
–  似た⽂字列を持つ → 似たベクトルとなる
•  活⽤形の吸収:go, goes, goneは <go を持つ
–  単語間で共有する⽂字列の情報を上⼿く利⽤できる
•  低頻度語に対しても質の⾼いベクトルを構築可能
•  未知語のベクトルも計算可能
•  単語間の類似度評価,analogyで性能向上
•  実装はfastText
17/09/16 第9回最先端NLP勉強会 4
準備:word embedding
•  単語の特徴を低次元のベクトルで表現
–  単語間の類似性をベクトルの類似度で計算
•  どのように得るか?
–  次元圧縮(e.g., 単語共起⾏列をSVD)
–  コーパスから学習(e.g., word2vec)
•  今回はコーパスから学習する⼿法をベースにする
5
peach penguin medicinedrug
17/09/16 第9回最先端NLP勉強会
未知語・低頻度語問題
•  語彙に含まれない単語=ベクトルがない
– コーパス中に出現しない単語に対応できない
– 実⽤上は頻度5回以上の単語で語彙をつくる,
などするため,ごく低頻度の単語は扱えない
•  低頻度語のベクトルは質が低くなりがち
– 頻度が低い=学習事例が少ない
→⼗分な学習ができない
17/09/16 第9回最先端NLP勉強会 6
解決策:単語を⼩さな単位に分割
•  エクストリームな姿勢:語彙は⽂字のみ
–  ⽂字のベクトルから単語ベクトルを計算
•  Character-Aware Neural Language Models [Kim+ 15]
•  Mimicking Word Embeddings using Subword RNNs [Pinter+ 17]
•  単語を適度なサイズの⽂字列に分ける
–  形態素で分割 [Luong+ 13]
•  unfortunately → un + fortunate + ly
–  Byte Pair Encoding(BPE)の使⽤ [Sennrich+ 16]
•  ⾔語⽣成(特に翻訳)の⽂脈で⾒ることが多い
•  ⾼頻度語は単語のまま,低頻度語は⽂字で表現
•  コーパスから語彙(部分⽂字列)を決定
–  本研究:character n-gramを使⽤
•  3-gramの場合:where → <wh, whe, her, ere, re>
•  他に [Wieting+ 16] もcharacter n-gramの有⽤性を⽰している
17/09/16 第9回最先端NLP勉強会 7
⼿法
817/09/16 第9回最先端NLP勉強会
•  Skip-gramモデル(word2vec)[Mikolov+ 13]
•  ⽬的関数:単語wtから周辺語wt+jの予測確率を最⼤化
–  周辺単語のベクトルに類似,それ以外と⾮類似となるよう学習
9
J = logP(wt+j | wt )
−c≤j≤c, j≠0
∑
t=1
T
∑
⽂中の単語数
⽂脈の範囲
logP(wt+j | wt ) ≈ logσ (vwt
⋅uwt+j
)+ Εz~Pn (w)
i=1
k
∑ [logσ (−vwt
⋅uz )]
σ:シグモイド関数 負例単語 z を k 回サンプリング
単語のEmbeddingの学習
… passive smoking cause lung cancer …
周辺単語を予測
vwt
uwt+1
uwt+1
uw−1uw−2
17/09/16 第9回最先端NLP勉強会
10
提案⼿法:character n-gramの利⽤
… passive smoking cause lung cancer …
周辺単語を予測
(Skip-gramと同様の学習)
vwt
uwt+1
uwt+1
uw−1uw−2
17/09/16 第9回最先端NLP勉強会
Σ
<ca cau aus use se>
 
単語ベクトル=単語を構成するcharacter n-gramのベクトルの和
(上はcharacter 3-gramの場合)
実験
1117/09/16 第9回最先端NLP勉強会
実験
•  設定
–  次元数:300
–  character n-gram:3, 4, 5, 6-gramを使⽤
•  ⽬的:単語ベクトルの質がcharacter n-gramの利⽤によって
向上するか検証
•  評価
–  単語間の類似度
–  analogy
•  与えられた単語間と同じ関係の単語を予測
•  (man, king, woman, ?)で ?=queenと答えられるか?
17/09/16 第9回最先端NLP勉強会 12
単語1 単語2 ⼈⼿で付与した類似度 単語ベクトル間のコサイン類似度
tiger cat 7 0.8
stock egg 2 0.3
……
スピアマンの順位相関係数
を計算
単語間の類似度
17/09/16 第9回最先端NLP勉強会 13
アラビア語
ドイツ語
英語
スペイン語
フランス語
ルーマニア語
ロシア語
Skipgram
Continuous
Bag of words
Character n-gramを使⽤
訓練に含まれない単語を
考慮しない/する
Character
n-gramを使うことで
性能(⼈との相関)
が向上
Analogy task
17/09/16 第9回最先端NLP勉強会 14
チェコ語
ドイツ語
英語
イタリア語
Character
n-gramを使うことで
Syntacticの
正解率が向上
n-gramのnを適切に
設定すれば
Semanticの性能は
もっと良いと主張
(例えば5-gramのみなら
EN Semanticの正解率80)
形態素から単語ベクトルを

計算する⼿法と⽐較
•  単語間の類似度データセットで評価
17/09/16 第9回最先端NLP勉強会 15
学習データに対する性能
•  単語間の類似度データセットで評価
– 少量の学習データでも⾼い性能
17/09/16 第9回最先端NLP勉強会 16
n-gramの n に対する性能
•  [i:j]-gramを使⽤
–  2⾏4列⽬:2, 3, 4-gramを使⽤
•  nを⼤きく取ったほうが良い
–  単語にすると性能が下がるのは何故?
→(おそらく)部分的な特徴(部分⽂字列)を共有できないから
17/09/16 第9回最先端NLP勉強会 17
まとめ
•  単語をcharacter n-gramの集合で表現
– 単語ベクトル=character n-gramベクトル和
•  未知語・低頻度語問題に有効
•  共有できるものは共有すると性能向上
– 最近流⾏のテクニック(?)
– ⾔語モデル:Embeddingと最終層を共有
[Inan+ 17, Press+ 17]
– 翻訳:subword化 + 原⾔語と対象⾔語で
embeddingを共有 [Vaswani+ 17]
17/09/16 第9回最先端NLP勉強会 18

More Related Content

What's hot

TensorFlowで逆強化学習
TensorFlowで逆強化学習TensorFlowで逆強化学習
TensorFlowで逆強化学習Mitsuhisa Ohta
 
ゼロから始める自然言語処理 【FIT2016チュートリアル】
ゼロから始める自然言語処理 【FIT2016チュートリアル】ゼロから始める自然言語処理 【FIT2016チュートリアル】
ゼロから始める自然言語処理 【FIT2016チュートリアル】Yuki Arase
 
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...Yuya Unno
 
言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクールYuya Unno
 
ピーFIの研究開発現場
ピーFIの研究開発現場ピーFIの研究開発現場
ピーFIの研究開発現場Yuya Unno
 
子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得Yuya Unno
 
NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」Yuya Unno
 
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門Tatsuya Tojima
 
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 Yuki Arase
 
Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用Yuya Unno
 
「ヤフー音声検索アプリにおけるキーワードスポッティングの実装」#yjdsw4
「ヤフー音声検索アプリにおけるキーワードスポッティングの実装」#yjdsw4「ヤフー音声検索アプリにおけるキーワードスポッティングの実装」#yjdsw4
「ヤフー音声検索アプリにおけるキーワードスポッティングの実装」#yjdsw4Yahoo!デベロッパーネットワーク
 
深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーションYuya Unno
 
【FIT2016チュートリアル】ここから始める情報処理 ~音声編~ by 東工大・篠崎先生
【FIT2016チュートリアル】ここから始める情報処理 ~音声編~ by 東工大・篠崎先生【FIT2016チュートリアル】ここから始める情報処理 ~音声編~ by 東工大・篠崎先生
【FIT2016チュートリアル】ここから始める情報処理 ~音声編~ by 東工大・篠崎先生Toshihiko Yamasaki
 
全脳アーキテクチャ若手の会20170131
全脳アーキテクチャ若手の会20170131全脳アーキテクチャ若手の会20170131
全脳アーキテクチャ若手の会20170131Hangyo Masatsugu
 
ニューラルチューリングマシン入門
ニューラルチューリングマシン入門ニューラルチューリングマシン入門
ニューラルチューリングマシン入門naoto moriyama
 

What's hot (16)

TensorFlowで逆強化学習
TensorFlowで逆強化学習TensorFlowで逆強化学習
TensorFlowで逆強化学習
 
ゼロから始める自然言語処理 【FIT2016チュートリアル】
ゼロから始める自然言語処理 【FIT2016チュートリアル】ゼロから始める自然言語処理 【FIT2016チュートリアル】
ゼロから始める自然言語処理 【FIT2016チュートリアル】
 
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
 
言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール
 
ピーFIの研究開発現場
ピーFIの研究開発現場ピーFIの研究開発現場
ピーFIの研究開発現場
 
Emnlp読み会資料
Emnlp読み会資料Emnlp読み会資料
Emnlp読み会資料
 
子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得
 
NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」
 
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
 
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
 
Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用
 
「ヤフー音声検索アプリにおけるキーワードスポッティングの実装」#yjdsw4
「ヤフー音声検索アプリにおけるキーワードスポッティングの実装」#yjdsw4「ヤフー音声検索アプリにおけるキーワードスポッティングの実装」#yjdsw4
「ヤフー音声検索アプリにおけるキーワードスポッティングの実装」#yjdsw4
 
深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション
 
【FIT2016チュートリアル】ここから始める情報処理 ~音声編~ by 東工大・篠崎先生
【FIT2016チュートリアル】ここから始める情報処理 ~音声編~ by 東工大・篠崎先生【FIT2016チュートリアル】ここから始める情報処理 ~音声編~ by 東工大・篠崎先生
【FIT2016チュートリアル】ここから始める情報処理 ~音声編~ by 東工大・篠崎先生
 
全脳アーキテクチャ若手の会20170131
全脳アーキテクチャ若手の会20170131全脳アーキテクチャ若手の会20170131
全脳アーキテクチャ若手の会20170131
 
ニューラルチューリングマシン入門
ニューラルチューリングマシン入門ニューラルチューリングマシン入門
ニューラルチューリングマシン入門
 

More from Sho Takase

Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてSho Takase
 
ニューラルネットワークを用いた自然言語処理
ニューラルネットワークを用いた自然言語処理ニューラルネットワークを用いた自然言語処理
ニューラルネットワークを用いた自然言語処理Sho Takase
 
NeurIPS2020参加報告
NeurIPS2020参加報告NeurIPS2020参加報告
NeurIPS2020参加報告Sho Takase
 
STAIR Lab Seminar 202105
STAIR Lab Seminar 202105STAIR Lab Seminar 202105
STAIR Lab Seminar 202105Sho Takase
 
Rethinking Perturbations in Encoder-Decoders for Fast Training
Rethinking Perturbations in Encoder-Decoders for Fast TrainingRethinking Perturbations in Encoder-Decoders for Fast Training
Rethinking Perturbations in Encoder-Decoders for Fast TrainingSho Takase
 
Robust Neural Machine Translation with Doubly Adversarial Inputs
Robust Neural Machine Translation with Doubly Adversarial InputsRobust Neural Machine Translation with Doubly Adversarial Inputs
Robust Neural Machine Translation with Doubly Adversarial InputsSho Takase
 
Breaking the Softmax Bottleneck via Learnable Monotonic Pointwise Non-lineari...
Breaking the Softmax Bottleneck via Learnable Monotonic Pointwise Non-lineari...Breaking the Softmax Bottleneck via Learnable Monotonic Pointwise Non-lineari...
Breaking the Softmax Bottleneck via Learnable Monotonic Pointwise Non-lineari...Sho Takase
 
Harnessing Deep Neural Networks with Logic Rules
Harnessing Deep Neural Networks with Logic RulesHarnessing Deep Neural Networks with Logic Rules
Harnessing Deep Neural Networks with Logic RulesSho Takase
 
Learning Composition Models for Phrase Embeddings
Learning Composition Models for Phrase EmbeddingsLearning Composition Models for Phrase Embeddings
Learning Composition Models for Phrase EmbeddingsSho Takase
 
Retrofitting Word Vectors to Semantic Lexicons
Retrofitting Word Vectors to Semantic LexiconsRetrofitting Word Vectors to Semantic Lexicons
Retrofitting Word Vectors to Semantic LexiconsSho Takase
 
NLP2015 構成性に基づく関係パタンの意味計算
NLP2015 構成性に基づく関係パタンの意味計算NLP2015 構成性に基づく関係パタンの意味計算
NLP2015 構成性に基づく関係パタンの意味計算Sho Takase
 
Lexical Inference over Multi-Word Predicates
Lexical Inference over Multi-Word PredicatesLexical Inference over Multi-Word Predicates
Lexical Inference over Multi-Word PredicatesSho Takase
 
dont_count_predict_in_acl2014
dont_count_predict_in_acl2014dont_count_predict_in_acl2014
dont_count_predict_in_acl2014Sho Takase
 

More from Sho Takase (14)

Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
 
ニューラルネットワークを用いた自然言語処理
ニューラルネットワークを用いた自然言語処理ニューラルネットワークを用いた自然言語処理
ニューラルネットワークを用いた自然言語処理
 
NeurIPS2020参加報告
NeurIPS2020参加報告NeurIPS2020参加報告
NeurIPS2020参加報告
 
STAIR Lab Seminar 202105
STAIR Lab Seminar 202105STAIR Lab Seminar 202105
STAIR Lab Seminar 202105
 
Rethinking Perturbations in Encoder-Decoders for Fast Training
Rethinking Perturbations in Encoder-Decoders for Fast TrainingRethinking Perturbations in Encoder-Decoders for Fast Training
Rethinking Perturbations in Encoder-Decoders for Fast Training
 
Robust Neural Machine Translation with Doubly Adversarial Inputs
Robust Neural Machine Translation with Doubly Adversarial InputsRobust Neural Machine Translation with Doubly Adversarial Inputs
Robust Neural Machine Translation with Doubly Adversarial Inputs
 
Breaking the Softmax Bottleneck via Learnable Monotonic Pointwise Non-lineari...
Breaking the Softmax Bottleneck via Learnable Monotonic Pointwise Non-lineari...Breaking the Softmax Bottleneck via Learnable Monotonic Pointwise Non-lineari...
Breaking the Softmax Bottleneck via Learnable Monotonic Pointwise Non-lineari...
 
Harnessing Deep Neural Networks with Logic Rules
Harnessing Deep Neural Networks with Logic RulesHarnessing Deep Neural Networks with Logic Rules
Harnessing Deep Neural Networks with Logic Rules
 
4thNLPDL
4thNLPDL4thNLPDL
4thNLPDL
 
Learning Composition Models for Phrase Embeddings
Learning Composition Models for Phrase EmbeddingsLearning Composition Models for Phrase Embeddings
Learning Composition Models for Phrase Embeddings
 
Retrofitting Word Vectors to Semantic Lexicons
Retrofitting Word Vectors to Semantic LexiconsRetrofitting Word Vectors to Semantic Lexicons
Retrofitting Word Vectors to Semantic Lexicons
 
NLP2015 構成性に基づく関係パタンの意味計算
NLP2015 構成性に基づく関係パタンの意味計算NLP2015 構成性に基づく関係パタンの意味計算
NLP2015 構成性に基づく関係パタンの意味計算
 
Lexical Inference over Multi-Word Predicates
Lexical Inference over Multi-Word PredicatesLexical Inference over Multi-Word Predicates
Lexical Inference over Multi-Word Predicates
 
dont_count_predict_in_acl2014
dont_count_predict_in_acl2014dont_count_predict_in_acl2014
dont_count_predict_in_acl2014
 

Enriching Word Vectors with Subword Information

Editor's Notes

  1. 実装を見てみた(更新部分だけ)けど,targetの単語を分解していることはなかった(入力単語だけcharacter n-gramで表現),つまり,この図であっているハズ