「深層学習による自然言語処理」読書会 第4章4.3
ʮਂֶशʹΑΔࣗવݴޠॲཧʯಡॻձୈষ⽩⼟ 慧株式会社レトリバ© 2017 Retrieva, Inc.
View Slide
ࣗݾհ• 名前:⽩⼟ 慧• 年齢:33歳• 所属:株式会社レトリバ(2016年4⽉〜)• 職業:エンジニア• ⾃然⾔語処理:⼤学の授業レベル。• 深層学習:⼊社してから少しだけ案件で。© 2017 Retrieva, Inc. 2
ൣғ• 4.3. 出⼒層の⾼速化• 4.3.1 巨⼤なソフトマックス関数の課題• 4.3.2 重点サンプリング• 4.3.3 雑⾳対照推定(NCE)• 4.3.4 負例サンプリング• 4.3.5 ブラックアウト• 4.3.6 階層的ソフトマックス• 4.3.7 ⾼速化⼿法の⽐較© 2017 Retrieva, Inc. 3
ग़ྗͷߴԽ• これまで、⽬的関数として交差エントロピー損失関数を⽤いてきた。• 3.2 ⾔語モデル、3.3 埋め込みベクトル、3.4 系列変換モデル• 交差エントロピー損失関数は、全語彙集合に対するソフトマックス関数の対数を計算する。• 語彙が⼤きいとき(数万〜100万)計算が重くなる。• 本節では、ソフトマックス関数による損失関数処理の効率化技術を解説する。© 2017 Retrieva, Inc. 4
ڊେͳιϑτϚοΫεؔͷ՝• 交差エントロピー損失関数"#$%&'() , = −exp ("(, ))∑ exp ("(, 9));9∈=• Y は全語彙集合なので、分⺟の計算は膨⼤になる• 式(4.36)に誤植 = ∑ exp ( 9 );9∈=• xとθを省略して、以下のように書く = ", , = A (9);9∈="#$%&'() , = − + • Zを分配関数と呼ぶ© 2017 Retrieva, Inc. 5
ڊେͳιϑτϚοΫεؔͷ՝• () = DEF # ;G =(?)• 最適化のため、損失関数をθで微分する∇"#$%&'() , = − + • 変形すると、"#$%&'() , = −J + L[′()]• LJ はsの勾配の期待値• ⽅針:Zに関する計算をやりたくない© 2017 Retrieva, Inc. 6
ॏαϯϓϦϯά• LJ は期待値計算なので、少数の標本を利⽤して近似計算する。• モンテカルロ法で抽出できるが、単語の出現確率は分配関数Zを計算しなければ求まらない。• 重点サンプリング• 元の確率分布とは異なる分布での標本を利⽤して期待値を近似する⼿法LJ ≈ =Q~SJ (J)(J)=1A ′(WX)(WX)(WX)YWZ[• ⼀様分布などのようなqからの分布で抽出できる© 2017 Retrieva, Inc. 7
ॏαϯϓϦϯά• ′(WX) L(;\)S(;\)の計算において、依然(WX)の計算にZ(Y)の計算が必要。• Zの代わりにqからの標本に対する総和Z^を利⽤して近似する = ||_exp ≈1Aexp WX WXYWZ[= a• 最終的(式4.49)に、pに依存した標本もp()の計算も含まないようにでき、語彙数に依存した計算を取り除いた© 2017 Retrieva, Inc. 8
ࡶԻରরਪఆʢ/$&ʣ• 重点サンプリングではZの近似を考えていたが、Zも未知のパラメータとして推定する• 訓練データyに対して、ノイズ分布qからのk個の標本Dを抽出し、このk+1個の事例に対するDの負の対数尤度を最⼩化する"bcd = − + − A f f + f;f∈gX© 2017 Retrieva, Inc. 9
ࡶԻରরਪఆʢ/$&ʣ• () = DEF (# ; )G(=)の計算に時間がかかるのが問題だったので、新たなパラメータcを導⼊し、これも学習する() = exp exp ()• ⽂献[109]で、cをおかずにZ(Y)=1としても問題ないことが発⾒された"bcd = −exp ( )exp ( ) + − A fexp ( f ) + f;f∈gX• NCEのこの性質は、⾃⼰正規化とも呼ばれる。(?)© 2017 Retrieva, Inc. 10
ෛྫαϯϓϦϯά• NCEをより単純化させたものが負例サンプリング"bi = −log {( )} − A log {1 − ( f )};f∈gX• NCEに、k=|Y|, q(y)=1/|Y| としたものとほぼ同じ式• qとして、⼀様分布や出現頻度に⽐例した分布(ユニグラム確率)も使える• ユニグラム確率の3/4乗を利⽤すると良い• 「利⽤するノイズの標本D⾃体は何かしらの分布qからの標本で、⼀様分布からではない点で異なります」(?)© 2017 Retrieva, Inc. 11
ϒϥοΫΞτ• 重み付きソフトマックス9を使う"rs(tu$_& = −log 9() − A log (1 − 9 f );f∈gX• 9は1/qで重み付けしている• qはユニグラム確率のα乗を使うのが良い• 9は、重点サンプリングによって近似計算された勾配を積分して、確率値を復元した関数と⾔える• NCEでのノイズ分布の確率密度関数としてpを使うように設計したものとみなせる• 分配関数Zがキャンセルされるように設計している© 2017 Retrieva, Inc. 12
֊తιϑτϚοΫε• 通常のソフトマックス=全語彙集合から1つを選ぶ• 階層的ソフトマックス=⼆値分類を⽊構造で繰り返す• 全語彙数の対数程度の分類回数で済む• ⽊を単語の出現頻度によるハフマン符号化などで構成しておく• ⽊構造に依存して結果が変わることに注意© 2017 Retrieva, Inc. 13
ߴԽख๏ͷൺֱ• 重点サンプリング• 元々の⽬的関数の⽅針を変えず、近似によって軽くしている• NCE、負例サンプリング、ブラックアウト• 元々の最尤推定とは⼤きく異なる、新しい⽬的関数で推定する• 上記4つの⼿法は、少数の無作為抽出結果だけを利⽤することで計算量を落とす• 時間計算量は語彙数|V|でなく、標本数に依存する• 無作為抽出については7.3.2、7.3.3を参照• 階層的ソフトマックス• 巨⼤なソフトマックス関数を⼩さなソフトマックス関数の積で表現する• モデルそのものが⼤きく変わっている© 2017 Retrieva, Inc. 14
<એ>• WEB+DB PRESS Vol.100 に、弊社のメンバーが特集記事を書きました。• 特集1 作って学ぶ⼈⼯知能• 第1章 ⼈⼯知能とはどんな技術なのか?• 第2章 ⾃然⾔語処理• 第3章 機械学習• 第4章 深層学習とニューラルネットワーク• 明⽇ 8/24 発売!© 2017 Retrieva, Inc. 15