Word2Vecのスキップグラムモデルはどのように出力ベクトルを生成しますか?


11

Word2Vecアルゴリズムのスキップグラムモデルを理解できません。

連続する単語のバッグでは、基本的にワンホットエンコーディング表現と入力行列Wを乗算した後にそれらを平均化するため、ニューラルネットワークでコンテキストワードがどのように「適合する」かを簡単に確認できます。

ただし、スキップグラムの場合、ワンホットエンコーディングと入力行列を乗算して入力ワードベクトルを取得するだけで、コンテキストワードのC(=ウィンドウサイズ)ベクトル表現を乗算して、出力行列W 'を使用した入力ベクトル表現。

つまり、サイズボキャブラリとサイズエンコーディング、入力行列、およびエンコーディングがあります。出力行列として。ワード所与ワンホットエンコーディングとコンテキスト言葉ではと(ワンホット担当者が有する及びあなたが乗算場合)、入力行列によってあなたが得る、これからスコアベクトルをどのように生成しますか?VNWRV×NWRN×VwixiwjwhxjxhxiWh:=xiTW=W(i,)RNC

回答:


7

私はそれを理解する同じ問題を抱えていました。出力スコアベクトルはすべてのC項で同じになるようです。ただし、各ワンホット表現ベクトルとの誤差の違いは異なります。したがって、誤差ベクトルは、重みを更新するために逆伝播で使用されます。

私が間違っているなら、私を訂正してください。

ソース:https : //iksinc.wordpress.com/tag/skip-gram-model/


そう ?WRN×(VC)
Fabich

0

どちらのモデルでも、出力スコアは、使用するスコア関数によって異なります。2つのスコア関数のソフトマックスまたは負のサンプリングがあります。したがって、softmaxスコア関数を使用します。N * Dのスコア関数サイズを取得します。ここで、Dは単語ベクトルの次元です。Nは例の数です。各単語は、ニューラルネットアーキテクチャのクラスのようなものです。


0

スキップグラムモデルでは、ワンホットエンコードされた単語が2層の浅いニューラルネットに送られます。入力はワンホットエンコードされているため、非表示レイヤーには入力非表示の重み行列の1行しか含まれていません(行は入力ベクトルの行なので、行としましょう)。kthkth

各単語のスコアは次の式で計算されます。

u=WTh

ここで、hは非表示層のベクトルで、は非表示の出力重み行列です。計算した後にここで、多項分布が計算されるウィンドウ・サイズです。分布は次の式で計算されます。Wu CC

p(wc,j=wO,c|wI)=expuc,jj=1Vexpuj

ご覧のとおり、すべての分布は異なります。(詳細については、https//arxiv.org/pdf/1411.2738.pdf)。実際、次の図のようなものを使用すると、より明確になります。C

要約すると、ソースベクトルは1つだけです。ただし、異なる分布は、softmax関数を使用して計算されます。uC

References:

  • Xin Rong、Word2Vecパラメータ学習の説明

したがって、W行列は基本的に単語ベクトル(アルゴリズムの出力)であり、W 'は完全に異なる行列であり、破棄しますか?
Nadav B 2017

W 'も同様に良い単語ベクトルです。
user3108764 2017年

1
これは間違っています。Xin Rongによる式(26)を参照してください。Word2Vecパラメータ学習の説明。実際、。出力スコアベクトルは、すべてのC項で同じになります。p(wc,j=wO,c|wI)=expuc,jj=1Vexpuj=expujj=1Vexpuj
siulkilulki
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.