iclr2017読み会 data noising as smoothing in neural network language models @dena
TRANSCRIPT
Data Noising as Smoothing in Neural Network Language Models
担当:Quasi_quant2010
ICLR2017読み会 @Dena1
Authers Insistence and Reviewer’s Summary
Authers
Data Nosing is data augmentation as another regularization methods
Reviwers
{Rating_6:2人, Rating_8:1人}
Strengths
data noising as a regularization technique for LM
Weeknesses
Main concern is that the proposed method is too simple and sounds ad hoc
there are no comparisons between the noising/smoothing idea and more conventional regularizers
ICLR2017読み会 @Dena2
引用 : goo.gl/ZKRyjr
概要- Noise Samplingが正則化と同値なことを経験的に検証した -
ICLR2017読み会 @Dena3
先行研究ではパラメータや隠れ層に関する工夫が多い
L2 正則化 w.r.t. model parameters
Dropout w.r.t. hidden activations
Gradient Norm Clipping
WeightMatrixの固有値を1に近づける(こんなのあったのか)
一方で入力データを制限する研究は少ない
ここはとても共感できる箇所
そこで、入力データをNegative Sampleからも取得することで汎化性能が高まらないかを検証した
またNoising Schemesが古典的な言語モデルにおけるsmoothingと共通点を持っている事を示した
本論文を読んだ動機- NN系のパラメータ推定方法と汎化性能 -
NN系はアーキテクチャ勝負になっており、推定方法自体にもっと焦点があたってもよいのではないか
パラメータ推定方法 実務で作ったモデルにノイズ分布としてKneser-Neyを使っており経験的に
Perplexity(PP)が低い事が確認出来ている
多くがNegativeSamplingで使用されるunigram経験分布を3/4乗したものをノイズ分布として使っていると思う
そこで、ノイズ分布の選定方法について示唆がないかと
データスパース性 embeddingした言語モデルが古典的なsmoothingより性能が高い事は
よく知られている
個人的にはembeddingが何らかのsmoothing効果をもっていると考えており、それを理解できればと
ICLR2017読み会 @Dena4
NCEについて補足- MLEは漸近有効だがNCEはそうではない -
Noise-Contrastive Estimation(NCE)とは、分配関数を陽に書き下せるものの数値積分が困難な場合に対処するパラメータ推定方法の事
Key Properties : 理論的にNCEは、一定条件の下、漸近的にMLEと類似した振舞をする
MLEとの類似点
一致性を持つ
漸近正規性を持つ
MLEとの相違点
MLEとNCEの分散が近似的に一致する
分配関数が求まる場合に成立するものの、NCEを使うので現実的にはあり得ません(なので、近似的に成り立つという事
noiseサンプルが十分大きい場合に成立
ICLR2017読み会 @Dena5
本論文ではNCEのように目的関数の定式化がされていない箇所が弱い
本論文の推定方法概念図①- ノイズ分布をいくつか試している -
ICLR2017読み会 @Dena6
設定
Source : Cij, j=1,…,J(JはContextの長さ)
Target : wi
負例サンプルを工夫する
1. Contextがある分布に従い空白と入れ替える
← Contextとして不適切な単語を削除していることに対応?
← 因みに実務で実施した内容と同じ。ただし、
不適切な単語かどうかを判定するモデルを別途作った
2. Cijがある分布に従い単語と入れ替える
SourceのFeatureに適用するノイズ分布を工夫する
Kneser-Neyで計算した分布
q(x) ∝ N1+(#,x)
本論文の推定方法概念図②- Noising SchemesとSmoothingの共通点-
簡単なBlankNoiseで説明
一般に、 E[ξ] = E[E[ξ|η]] = Σi Pi * E[ξ|ηi]
p(xt|x<t)(= E[ξ|η]) を言語確率、π(|J|)=(Pi)をSwapする確率とみれば
pγ (スムージング後)はPiによって線形結合されている
これは古典的な言語モデルでいう線形補間と同値
pγ(x3|x1,x2)の例は以下;
7
P:ノイズスムージング前 Pγ:ノイズスムージング後
アイディア①- SMOOTHING AND NOISING -
言語モデルにおける古典的なスムージングとしてKneser-Ney(KN)が最高性能を発揮していた
RNN系への適用
RNNはカウントベースのモデルではない(隠れ層は実数)ため、何らかの工夫が必要
そこで、 Kneser-Neyで計算した確率をノイズ分布として使った
two simple noising schemes
blank noising
Contextがある分布に従い空白と入れ替える
n-gram noising
Cijがある分布(KN)に従い単語と入れ替える
ICLR2017読み会 @Dena8
アイディア②- SAMPLING TECHNIQUES -
ノイズ分布を真面目に計算するので、シークエンス入力(Cij)に依存する分布をKN的に作りたい
“and the”
シークエンス入力で多く共通する単語で、重要ではなくノイズ
“Humpty Dumpty”
ハンプティの次ってほぼダンプティだよね
このような現象に着目したのがKNだった
本論文では二つの方法を提案
Absolute Discounting
Kneser-Ney smoothing
ICLR2017読み会 @Dena9
アイディア③- seq2seq or encoder-decoderへの拡張 -
サンプリング系では通常Targetを正・負例でサンプリングするが入出力を系列として扱うSeq2Seqやencoder-decoderに対応する為、入出力においてサンプリングする
input sequence x_{<t}
output sequence y_{<t}
筆者いわく、この操作に関する解釈や意味は特にない・・・
ICLR2017読み会 @Dena10
問題設定- 言語モデル -
データ
Penn Treebank・ Text8
LSTM
two hidden layers(hidden sizes of 512 and 1500)
Train
SGD
initial learning rate : 1.0
scheduling : 訓練フェーズにおいて、クロスエントロピーが下がらなくなったら、学習率を更新(1/2倍)する
clipping : Max-Clipping(max norm is 5)
正則化
Dropout
dropout with noising schemesICLR2017読み会 @Dena11
結果
あんまり違いがないような・・・
PP(Validation)は青>赤になっている
とくに考察はなし
ICLR2017読み会 @Dena12
青:Noiseあり、赤: Noiseなし
問題設定- 機械翻訳 -
データ
IWSLT 2015 corpus(English-German)
two-layer LSTM encoder-decoder
hidden sizes of 512
Decoderにはattentionを使う
Train
SGD
initial learning rate : 1.0
scheduling :連続する二回のPerplexityの差が1%以下になったら、学習率を更新(1/2倍)する
clipping : Max-Clipping(max norm is 5)
正則化
DropoutICLR2017読み会 @Dena13
結果
SourceやTargetだけノイズを加えるよりも両方に加えた方がPPLは下がる
PPL(BigramNoise) < PPL(UigramNoise)
ICLR2017読み会 @Dena14
SourceだけNoiseあり
TargetだけNoiseあり
考察- サンプリング系の利点 - 実験がちょっと足りないような気もする
例えば、言語モデルとかなら、古典的なKNのPPLも見たい
KNでノイズ分布がいい意味でスムージングされるのであればその感応度が変化すると言語モデルのPPLがどの程度変化するかも興味がある
言語モデルのPPL変化 / ノイズ分布のPPL変化とか
モデルパラメータへの感応度
推定パラメータが複数あるので、しっかり要因を分解して何を動かすとPPLがどの程度変わるのかを知りたい
ノイズ分布を上手く作ることが最もPPL向上に寄与するのか
ideaはとても面白い
特にblankと置き換える際の方法を確立するとよいと思う
Contextとして不適切な単語を削除していることに対応しているはずICLR2017読み会 @Dena15
考察- モデルパラメータ推定方法に関する所感 -
NCEはレアイベント予測(クリック予測)やSparseデータを用いた予測に関する最適化問題を解くことに相性が良い方法なのではないか
目的関数 = 真の分布からのサンプル + ノイズ分布のサンプルと分解しているから
通常、レアイベント予測では観測できるラベルデータが少ないか、偏りが強い(不均衡データ)ためパラメータ推定が困難
訓練データを不均衡データとして扱い、パラメータ学習に使うサンプルをある経験分布に従いサンプルしたり、ある基準で閾値を決めて訓練データ限定したりするヒューリスティックスはよく使う
恐らく、NCEのノイズ分布サンプル = 不均衡データでの経験分布に従うサンプル、という対応がある気がします
ICLR2017読み会 @Dena16
参考文献 [Ziang Xie, etc] Data Noising as Smoothing in Neural Network
Language Models ICLR17
[M.U.Gutmann, etc] Noise-Contrastive Estimation of UnnormalizedStatistical Models, with Applications to Natural Image Statistics, JMLR, 13, 307-361, 2012
[M.U.Gutmann, etc] Likelihood-Free Inference via Classification, Statistics and Computing17
[Mnih, etc] Learning word embeddings efficiently with noise-contrastive estimation, Advances in Neural Information Processing Systems 26, NIPS, 2013
[Tianxing He, etc] On Training Bi-directional Neural Network Language Model with Noise Contrastive Estimation arxiv16
[松林優一郎, etc]ニューラルネットワークによる日本語述語項構造解析の素性の汎化, 言語処理学会17
[Quasi_quant2010] Noise Contrastive Estimationについて, goo.gl/c9tw7r
ICLR2017読み会 @Dena17