[NLP]適応ソフトマックス

1。概要

適応型ソフトマックスアルゴリズムは、アルゴリズムは、ニューラルネットワークのいくつかのために運用効率ソフトマックスの機能を改善するために設計された1つの論文提案のリンク、非常に大規模な語彙を持っています。

| NLPでのタスクのほとんどでは、使用済みのソフトマックスになりますが、非常に大規模な語彙タスクのために、すべての時間は、計算の非常に大きな量は、完全なソフトマックス、非常に時間がかかる(各トークンは、Oを(必要と予測されますV |)時間複雑)。

だから、紙は、ソフトマックスの運用効率を向上させるために、適応型ソフトマックスを提案しています。

1)アルゴリズムを使用することが提案されている単語の不均一な分布の特性(アンバランス単語分布)を形成クラスタの計算時間を減少させる、線形依存ソフトマックスの計算は、語彙サイズを避けるように、。

2)に関連して近代的なアーキテクチャと行列乗算演算の機能、加速度がさらにGPUユニット方法のために、それはより適切なことによって計算されます。

2.はじめに

計算の複雑さを軽減するために2.1一般的な二つの方法ソフトマックス

元の確率分布の近似又はオリジナルサブセットの近似の確率分布:1)元の分布を検討

2)近似モデル構造が、正確な確率分布を生成します。たとえば、次のように階層的なソフトマックス。

(大まかに二つの方法に分けることができ、上述の一確率分布モデルの正確な近似を生成することで、第二は、正確な近似確率分布モデルを生成することです)

この記事へ2.2ポイントの貢献

上記実施の形態(2)紙は、主に、メインドロー階層ソフトマックスといくつかのバリエーションが使用されます。本論文のGPUアクセラレーション特性と併せて、その中の以前の研究とは異なり、計算されました。主要

1.定義を生成することができる同様のレベルのモデルながら、ポリシーをポリシーを行列積演算の計算時間を考慮しましたこの計算は、行列の時間ディメンションではありません、単純な線形の関係です。

このモデルの最近のGPU実証分析2.。提案した最適化アルゴリズムでは、それはまた、実際の計算時間モデルの定義に含まれます。

3.一般的なソフトマックスと比較して、2×10×加速を持っています。これは、同じ制限の下で力のカウントの精度を向上させることと等価です。また、非常に重要なことは、この計算上効率的な方法は、訓練データの所与の量のための多数の方法によって並行して効率、および精度の損失なしと比較して、本論文で提案しました。

3.適応型ソフトマックス 

行列の乗算演算の3.1モデルの計算時間

隠された状態(B×D);ワード表現:(D×K);二度行列の積を計算する:G(K、B)。サイズの隠れ層、k個のベクトルの数:ここで、Bは、バッチサイズ、Dです。

B、Dに固定された(1)の値K G(k)の大きさとの関係を探ります。

実験を行ったK40、M40 GPUモデルの二種類が約$ k_0 \約50 $の範囲のk個に見出される、G(k)は$ K> k_0 $、線形依存した後、一定のレベルです。計算モデル:

同様に、計算時間Bの機能は、このような関係を示します。これは、非常に小さな寸法、行列乗算が非効率的である場合、行列乗算、発現させることができます。

それを理解するには?たとえば、$ K_1 = 2 ^ 2 $、$ K_2について= 2 ^ 4 $、彼らはその後、明らかに$ $ K1のために電力事業者が浪費され、同様の作用時定数の間に完成されています。

これはまた、単語の数の階層を示し、それぞれの子ノードは、(例えば木ハフマン符号化のような)ノードのほんの数を有し、それは準最適です。

のバッチサイズB値g(B)の大きさとの関係を探索する(2):

バッチサイズ$ B $の間の関係を探索する計算時間は、行列乗算演算で見つけたとき同様に、ここで一次元は時間で効率的ではありません。そのためにつながります:

階層内の(I)、準最適な計算効率である(例えば、ハフマンツリーなど)のみ少数の子ノードとして各ノード。

(ii)は、ワード周波数分割クラスタによれば、クラスタがのみ珍しい単語、Pのために選択される確率が含まれ、また、バッチサイズ$ P Bが$に低減される、上記行列積の非効率的な動作も発生することができ問題。

(3)計算モデルは、本明細書に記載しました

そのため、紙kとBを考える上で、以下の計算モデルを提示:


適応型ソフトマックスのために、核となるアイデアは、単語頻度のサイズに基づいて異なるクラスタに分割異なる単語の単語の周波数範囲、ワード頻度の高い優先度のアクセスの原理によれば、その後、全体として各クラスタへの訪問の各単語をクラスタ化します、ソフトマックス操作。

まあ最初の二つのクラスタ内の紙へのすべての、例えば、モデルを説明するために、その後、複数のクラスタの一般的な場合に拡張。


3.2二クラスタケース

単語のジップの法則、ペンツリーバンクの20%によると、一般的な文書は、単語の87%に登場上書きすることができます。

直感的に、$ $ Vの単語の辞書は$ V_h $、$ V_T $二つの部分に分割することができます。前記V_h $ $ワードセットは周波数(ヘッド)を表し、$ V_T $ワードセットは、低周波(テール)を表しています。一般的には、$ | V_h | << | V_T | $、$ P(V_h)>> P(V_T)$。

組織の(1)クラスタ

これら二つのクラスタのための直感的考えは、2つの方法で編成されている:(I)は、2つのクラスターの二層のツリー構造は、ツリー構造の二階の保存された、尾部の短いリストと(ii)の頭部です。より好ましくは、方法は、その計算効率と精度と比較することができます。

精度の面では、(i)が(ii)は、一般的に5〜10%の減少と比較します。次の理由の場合:

各単語の確率は$ W $の$ C $をクラスタに属しているために次のように計算されます。 

| * P(W | C、H)$ $ P(H C):(i)の使用

(II)を使用する場合:高頻度語のヘッド部に直接計算$ Pによって得ることができる|(H w)は単純である$を、導きます。

したがって、(I)との間に非常に大きな違いは、時間を計算する(II)が存在しない限り、そうでない場合は、組織の(II)を選択します。

(2)計算時間を短縮

 

図の模式図。2. 2つのクラスター

2、$ k_h = | V_h |、K_T = K - k_h、P_T = 1 - P_H $

(I)第一層:入力Bのバッチサイズのために、ベクター$ k_h $高周波単語の先頭ならびにクラスタの床部(斜線部)、$ k_h + 1 $番目の合計ベクトル、ソフトマックスのか、

$単語P_Hこのような会計文書の$基本的に確定することができますが、セクションヘッドの短いリストで対応する単語を見つけます。

その値が大きいソフトマックスであればする部分が予測される単語、第2層の単語の低周波数部分を示す陰影。

$ $ G(k_h + 1、B):第一層のコストを計算します

$ P_H×ショートリストのB $、予測された単語を決定するために、尾部に継続するB $入力ソフトマックス必要P_T残り$の内容を決定する(ii)の後。

第2層は$ K_T $ソフトマックスベクターを作製するために必要とされます。

第2層のコストを計算する:$グラム(K_T、PB)$

要約すると、総計算オーバーヘッド:$$ C = G(k_h + 1、B)+ G(K_T、P_T B)$$

SoftMaxが元に比べ、分母が辞書における各単語のベクトルの必要が一つずつ計算され、適応型ソフトマックスは、プロセスは2つの部分に分割されるように使用することが、単語の一部のみを含むベクターの各部分でありますこれは、計算することができ、計算時間が短縮されます。

図2に示すにおける論文は、$ k_h $の合理的な分割のために、最大値はソフトマックスの完全5倍スピードアップと比較して達成することができます。

(3)分類の異なるクラスタの異なる機能

各クラスタは、実質的に独立して算出されるので、それらは同じ能力(容量)を必要としません。

一般的には、高頻度語のクラスタのためのより多くの容量とすることができ、適切な単語頻度語の能力クラスタを減少させることができます。容量を削減し、非常に全体的なパフォーマンスに影響を与えることは適切ではありませんので、低頻度語はほとんど、文書には表示されませんので。

本明細書において、我々は、入力のサイズを追加することにより、分類子マッピングマトリクス状を減少、隠された層を共有し、異なるクラスタを取っています。一般に、マッピング行列テール部は、$ D $ $ d_t = D / 4 $寸法より寸法の大きさに縮小します。

3.3一般的な状況

例えば、二分割されるクラスタで3.2、それは処理モードが複数のクラスタに分割することができる、すなわち、一般的な場合に拡張される場合、整理する方法について説明した適応ソフトマックスを計算しました。

全体辞書はそこで、単語の頻度及びワードクラスタ部Jの頭部部分に分割されると仮定する。

V_hで$$ = \カップV_1 ... V_j、V_I \キャップV_j = \ファイ$$

図3に示すように、第1層、残りは第二層である、請求$ $ V_h。

$ K_I =用ベクター内の各クラスタにおける単語の数| V_I | $、ワード$ W $確率のクラスタに属する:$ P_I = \ sum_ {V_Iで\ W} P(W)$。

まあ、

時間のコスト計算は、ヘッド部分である:$ C_H = G(J + k_h、B)$

層クラスタは、各時間のオーバーヘッドのために計算されている。$ \ forall_i、C_I = G(K_I、P_I B)$

次いで、総時間コストは:$ C = G(J + k_h、B)+ \ sum_i G(K_I、P_I B)\ tag8 $

 

式(7)を想起。

$$ G(K、B)= MAX(C + \ラムダk_0 B_0、C + \ラムダのk B)\ tag7 $$

二つの部分、$ C + \ラムダk_0 B_0 $、A線形変換部$ C + \ラムダK B $の一定の部分があります。

3.1によっては、活用されていないGPUの計算部における力の定数を理解し、従って回避されるべきである区間内に入ります。その後、満たすために必要があります。

$ KB \ GEQ k_0B_0 $、最大を求めているときにすることを、第二の部分を利用することができるより。

(7)へ(8)は、第2の部分を有します。

 

その後、次のターゲットは、オーバーヘッド時間Cを最小にするために(10)に基づいています 

(10)では、$ J、B $が固定されている、我々は$ \ sum_i p_ik_i $と$ k_h $に集中することができます。

(1)$ \ $ sum_i p_ik_i

$ P_を想定{I + J} = P_I + p_j $、その後$ p_jk_j =(P_ {I + J} - P_I)k_j $

$ P_ik_i + = p_jk_j P_I(K_I - k_j)+ P_ {I + J} k_j \タグ{11} $  

仮定次に$ K_I> k_j、P_ {I + J} $、$ k_j $固定されている、(11)のみを変数$ $ P_I、(11)$ $ P_Iを低減手段によって低減されることができます。=> $ K_I> k_j $と$ P_I $できるだけ小さく、クラスタ小さな確率を複数の単語が含まれていること。

(2)$ k_h $

$ k_h $軽減することができる(10)が減少しています。=>クラスタは少数の単語を含む場合、高頻度語を作ることができるされています。

要約すると、Jのクラスタ番号、及びバッチサイズBが与えられると、小さい方が大きな時間オーバーヘッド割り当てクラスタCの確率を低減することができます


所与J、$ $ K_Iのサイズを分割した後、さらに紙は、動的プログラミングの方法を挙げることができます。

クラスタ$ J $の数を割ます。紙実験において異なるJの計算時間をもたらす異なる使用。図に示した。図4。$ 10 $ 15の効果は、その後$最高のが、の範囲が> $ 5促進効果は非常に明白ではありません。これは、紙2-5クラスタをお勧めします。

比較PPLによって、3つのデータセットで行わtext8、europarl、10億のワードにおける主な実験適応ソフトマックスPPLは依然として低いままであり、元のモデルと比較して、見つかった2倍の10倍の速度を有します。

  

参考リンク:

GPUのための1.効率的なソフトマックス近似:  https://arxiv.org/pdf/1609.04309.pdf

おすすめ

転載: www.cnblogs.com/shiyublog/p/11316465.html