17
Data Noising as Smoothing in Neural Network Language Models 担当:Quasi_quant2010 ICLR2017読み会 @Dena 1

ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

Embed Size (px)

Citation preview

Page 1: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

Data Noising as Smoothing in Neural Network Language Models

担当:Quasi_quant2010

ICLR2017読み会 @Dena1

Page 2: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

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

Page 3: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

概要- 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と共通点を持っている事を示した

Page 4: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

本論文を読んだ動機- NN系のパラメータ推定方法と汎化性能 -

NN系はアーキテクチャ勝負になっており、推定方法自体にもっと焦点があたってもよいのではないか

パラメータ推定方法 実務で作ったモデルにノイズ分布としてKneser-Neyを使っており経験的に

Perplexity(PP)が低い事が確認出来ている

多くがNegativeSamplingで使用されるunigram経験分布を3/4乗したものをノイズ分布として使っていると思う

そこで、ノイズ分布の選定方法について示唆がないかと

データスパース性 embeddingした言語モデルが古典的なsmoothingより性能が高い事は

よく知られている

個人的にはembeddingが何らかのsmoothing効果をもっていると考えており、それを理解できればと

ICLR2017読み会 @Dena4

Page 5: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

NCEについて補足- MLEは漸近有効だがNCEはそうではない -

Noise-Contrastive Estimation(NCE)とは、分配関数を陽に書き下せるものの数値積分が困難な場合に対処するパラメータ推定方法の事

Key Properties : 理論的にNCEは、一定条件の下、漸近的にMLEと類似した振舞をする

MLEとの類似点

一致性を持つ

漸近正規性を持つ

MLEとの相違点

MLEとNCEの分散が近似的に一致する

分配関数が求まる場合に成立するものの、NCEを使うので現実的にはあり得ません(なので、近似的に成り立つという事

noiseサンプルが十分大きい場合に成立

ICLR2017読み会 @Dena5

本論文ではNCEのように目的関数の定式化がされていない箇所が弱い

Page 6: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

本論文の推定方法概念図①- ノイズ分布をいくつか試している -

ICLR2017読み会 @Dena6

設定

Source : Cij, j=1,…,J(JはContextの長さ)

Target : wi

負例サンプルを工夫する

1. Contextがある分布に従い空白と入れ替える

← Contextとして不適切な単語を削除していることに対応?

← 因みに実務で実施した内容と同じ。ただし、

不適切な単語かどうかを判定するモデルを別途作った

2. Cijがある分布に従い単語と入れ替える

SourceのFeatureに適用するノイズ分布を工夫する

Kneser-Neyで計算した分布

q(x) ∝ N1+(#,x)

Page 7: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

本論文の推定方法概念図②- 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γ:ノイズスムージング後

Page 8: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

アイディア①- SMOOTHING AND NOISING -

言語モデルにおける古典的なスムージングとしてKneser-Ney(KN)が最高性能を発揮していた

RNN系への適用

RNNはカウントベースのモデルではない(隠れ層は実数)ため、何らかの工夫が必要

そこで、 Kneser-Neyで計算した確率をノイズ分布として使った

two simple noising schemes

blank noising

Contextがある分布に従い空白と入れ替える

n-gram noising

Cijがある分布(KN)に従い単語と入れ替える

ICLR2017読み会 @Dena8

Page 9: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

アイディア②- SAMPLING TECHNIQUES -

ノイズ分布を真面目に計算するので、シークエンス入力(Cij)に依存する分布をKN的に作りたい

“and the”

シークエンス入力で多く共通する単語で、重要ではなくノイズ

“Humpty Dumpty”

ハンプティの次ってほぼダンプティだよね

このような現象に着目したのがKNだった

本論文では二つの方法を提案

Absolute Discounting

Kneser-Ney smoothing

ICLR2017読み会 @Dena9

Page 10: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

アイディア③- seq2seq or encoder-decoderへの拡張 -

サンプリング系では通常Targetを正・負例でサンプリングするが入出力を系列として扱うSeq2Seqやencoder-decoderに対応する為、入出力においてサンプリングする

input sequence x_{<t}

output sequence y_{<t}

筆者いわく、この操作に関する解釈や意味は特にない・・・

ICLR2017読み会 @Dena10

Page 11: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

問題設定- 言語モデル -

データ

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

Page 12: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

結果

あんまり違いがないような・・・

PP(Validation)は青>赤になっている

とくに考察はなし

ICLR2017読み会 @Dena12

青:Noiseあり、赤: Noiseなし

Page 13: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

問題設定- 機械翻訳 -

データ

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

Page 14: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

結果

SourceやTargetだけノイズを加えるよりも両方に加えた方がPPLは下がる

PPL(BigramNoise) < PPL(UigramNoise)

ICLR2017読み会 @Dena14

SourceだけNoiseあり

TargetだけNoiseあり

Page 15: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

考察- サンプリング系の利点 - 実験がちょっと足りないような気もする

例えば、言語モデルとかなら、古典的なKNのPPLも見たい

KNでノイズ分布がいい意味でスムージングされるのであればその感応度が変化すると言語モデルのPPLがどの程度変化するかも興味がある

言語モデルのPPL変化 / ノイズ分布のPPL変化とか

モデルパラメータへの感応度

推定パラメータが複数あるので、しっかり要因を分解して何を動かすとPPLがどの程度変わるのかを知りたい

ノイズ分布を上手く作ることが最もPPL向上に寄与するのか

ideaはとても面白い

特にblankと置き換える際の方法を確立するとよいと思う

Contextとして不適切な単語を削除していることに対応しているはずICLR2017読み会 @Dena15

Page 16: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

考察- モデルパラメータ推定方法に関する所感 -

NCEはレアイベント予測(クリック予測)やSparseデータを用いた予測に関する最適化問題を解くことに相性が良い方法なのではないか

目的関数 = 真の分布からのサンプル + ノイズ分布のサンプルと分解しているから

通常、レアイベント予測では観測できるラベルデータが少ないか、偏りが強い(不均衡データ)ためパラメータ推定が困難

訓練データを不均衡データとして扱い、パラメータ学習に使うサンプルをある経験分布に従いサンプルしたり、ある基準で閾値を決めて訓練データ限定したりするヒューリスティックスはよく使う

恐らく、NCEのノイズ分布サンプル = 不均衡データでの経験分布に従うサンプル、という対応がある気がします

ICLR2017読み会 @Dena16

Page 17: ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena

参考文献 [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