word2vec改善階層ソフトマックス

第1の階層ソフトマックスはword2vec改善された方法であり、従来のword2vec計算の膨大な量を必要とするので、この方法は、改善の二つの主な点を有しています。

隠れ層への入力層からのマッピングのための1は、活性化機能に加えて、線形変換ニューラルネットワークを取って、代わりの入力ベクトルと平均ワードの全てを合計する簡単な方法を使用していません。

4、入力として3次元ベクトルワード:1 2 3 4 9 6 11 8 5 10 7 12 (1,2,3,4)、 (9,6,11,8)、(5,10,7,12)、その後、単語であることを我々はベクトルマップword2vec後5 6 7 8 ここでは、複数のベクトルから単語への単語ベクトルです。

2.第二の改善は隠れ層から計算された量のソフトマックス出力層への改良です。word2vecは、出力層ソフトマックスに代わり、隠れ層からハフマンツリーマップのサンプリングされ、すべての単語の確率を計算するソフトマックスを回避するために、

そこでここでは3つの部分に分かれ、ハフマン木、階層ソフトマックスCBOWスキップ-gramモデルとモデルベースの階層ソフトマックスを説明しています。

A.ハフマン木

ハフマンツリー構造をステップ:

n個の重みがあると仮定し、ハフマン木は、n個のリーフノードで構成されています。n個の重み値をW1に設定されている、W2、...、建設ルールWN、ハフマンツリーは次のとおりです。


(1)W1は、W2、...、森の木としてnはWN(各ツリーのノードが1つだけです)。


(2)左右のサブツリー内の新しいツリーとしてマージ森林2つの極小重量ツリーのルートノードを選択し、ツリーが新しい左右のサブツリーのルートへの権利のルートでありますノードの重みの合計。


(3)森林から選択される2つのツリーを削除し、新たな森林木の添加。


(4)繰り返し(2)、(3)工程のみ森林木アップハフマン木により得られる木まで。

例:A、B、C、D、E、Fナンバー6を仮定し、値が9,12,6,3,5,15でした

ハフマンツリー構造は、以下に示すように:

 

 

 

 

 

 

 

 

 

 

 

 

ここで1符号化規則左サブツリーを符号、符号化は、左の部分木は右契約が重い重み右サブツリーの重量以上であるが、右サブツリー0です。

II。CBOWの階層ソフトマックスモデルに基づいて、

一方CBOWは階層ソフトマックスを使用して、アルゴリズムは、ハフマン符号化を組み合わせ、各ルートワードwは、それがどの符号化コードパスを形成し、それに沿って固有のパスにツリーのルートからアクセスすることができます。N仮定する(J、W)は、このパス上j番目のノードであり、L(W)は、このパスの長さであり、1つの開始エンコーディングからJ、即ち、N =ルート(1、W)、N(W 、L(W))は、Wは=。コード[J] - j番目のノードについて、レベルとしてソフトマックスは、ラベル1を定義しました。

文脈に応じて適切な大きさの窓を取って、ウィンドウ内の入力層に読み込ま単語、それらのベクトル(次元K、ランダム初期)及びK隠れ層ノードを形成するために一緒に加えました。出力層は、大規模なバイナリツリーのリーフノードは、コーパス内のすべての単語を(| V |リーフノードコーパスは、バイナリツリーがあり、V別々の単語が含まれている)を表しています。そして、この全体の作品構築バイナリツリーアルゴリズムは、ハフマン木です。このように、単語の各リーフノードのために、グローバルに一意のコードが存在するであろう、フォーム「010011」、左サブツリー及び右サブツリーに1を注意したい場合は0です。次に、ノード今隠されます層内の二分木の各ノードは、バイナリツリー内の各ノードにもKエッジを有することになるために、それぞれの側が右の値を持つことになり、エッジに接続されています。

単語を予測するために、例えば、与えられた文脈において、(これは、用語が事前に知られている陽性サンプルとみなされるべきである)、次いで(ロジスティック確率関数を用いて計算された最大のバイナリ符号語の予測確率を聞かせて、)単語が「010001」である場合、例えば、我々は、確率ように第二の場所に1であり、最初のビットがゼロの確率で解きます。現在のネットワーク内の単語の確率は、経路上の単語のルートからの確率の積です。従って差分サンプルを得ることができるパラメーターを解決するため、勾配降下法が続きます。明らかに、ニューラルネットワークは、正および負のサンプルを用いてトレーニングされる勾配降下の方法で出力値と誤差の実際の値、及び各パラメータの再度解決するエッジ重み値を解決し続けます。ここで使用する方法、バイナリツリーは、時間の複雑さを軽減することです

これはCBOW階層ソフトマックス、確率的勾配上昇を使用して反復勾配法に基づくプロセスモデルアルゴリズムを終了します

ステップ:

入力:訓練サンプルCBOWワードベクトルに基づいて寸法サイズコーパスM、コンテキストサイズCBOW 2 C、ステップη

出力:内部ノードハフマンツリーモデルパラメータθは、すべての単語ベクトルW

1.トレーニングコーパスベースのハフマン木サンプルを確立します。

2.ランダムにモデルパラメータのすべてを初期化しますθ、すべての単語ベクトルのw

前記反復勾配上昇手順、各サンプルのトレーニングセットC O N- T E X T W W 次のように処理しました。

   

 

 

 

 

 

 

 

 

三。階層ソフトマックスに基づくモデルグラムスキップ

スキップ・グラムをモデルとモデルが実際にCBOWの変わり目です

隠れ層(投射層)への入力層のため、このステップはCBOWより単純で、1つの単語だけがあるので、ようにX W XWが単語であるWワードベクトルに対応するW。

第二のステップは、私たちの法勾配上昇によって更新され、θ W J - 。1およびX Wここで、注意がX Wの周りに持っている2 Cの後、私たちが予想される場合、単語ベクトルをP X I | X WをI = 1 2 ... 2 Cの最大値。このケースでは、互いに関連するので、所望に注意P X I | X W I = 1 2 2··· C最大にしながら、順番に、我々は期待P X W | X IをI = 1 2 2 ... Cの最大値。だから、の使用であるPX-I| X-のワット良いかPX-wは | X- 私は良いですが、後者のword2vec使用は、そうすることの利点は、反復ウィンドウ内にある、私たちだけではなく更新X-ワットXWの単語をしかし、X I I = 1 2 2 ... C合計 2つのCの単語。これは、よりバランスのとれた全体的な反復となります。この理由のため、スキップグラムモデルは、入力とCBOW反復更新と同じモデルが、ためない 2つのC出力反復更新。

これは確率的勾配反復勾配上昇法を使用して、スキップ・グラム階層ソフトマックスプロセスモデルに基づくアルゴリズムを締結します:

入力:スキップ-グラムのサンプルに基づいてトレーニングコーパス、ベクトル次元ワードサイズMのコンテキストサイズスキップグラム2 C、ステップη

出力:内部ノードハフマンツリーモデルパラメータθは、すべての単語ベクトルW

1.トレーニングコーパスベースのハフマン木サンプルを確立します。

2.すべての確率的モデルパラメータを初期化し、θ、すべての単語ベクトルW

前記反復勾配上昇手順、トレーニングセットの各サンプルについてW C 、O 、N- T E X T W 次のように処理しました。

 

 

 

 

 

 

 

 

 

 

 

 

概要:上記はword2vecモデルの階層ソフトマックスです。

主な参考文献は、以下のリンク:

https://www.cnblogs.com/pinard/p/7243513.html

https://blog.csdn.net/weixin_33842328/article/details/86246017

おすすめ

転載: www.cnblogs.com/r0825/p/10964192.html