4

ニューラルネットワークをトレーニングし、ベクトル空間で類似の単語を見つけるためのニューラル埋め込みを構築するために word2vec モデルを使用しています。しかし、私の質問は、このhttps://iksinc.wordpress.com/2015/04/13のように、トレーニングの開始時に乱数 (ベクトル) によってそれらを初期化する、単語とコンテキストの埋め込み (行列) の次元についてです。 /words-as-vectors/

{book,paper,notebook,novel} の単語をグラフに表示したいとしましょう。まず、この次元 4x2、4x3、または 4x4 などの行列を作成する必要があります。行列の最初の次元のサイズはわかっています。私たちの語彙 |v|。しかし、行列の 2 番目の次元 (ベクトルの次元の数)、たとえば、これは単語「本」のベクトル [0.3,0.01,0.04] です。これらの数値は何ですか?それらには何らかの意味がありますか?たとえば、関連する 0.3 数値語彙の単語「本」と「紙」の関係に対して、0.01 は本とノートなどの関係です。ちょうど TF-IDF、または各次元 (列) Y が意味を持つ Co-Occurence 行列のように -行 X の単語に関連する単語またはドキュメントです。

4

2 に答える 2

1

word2vec モデルは、ネットワーク アーキテクチャを使用して、入力単語と、関連する可能性が最も高い出力単語を表します。

隠れ層が 1 つあると仮定すると (質問でリンクされている例のように)、導入された 2 つの行列は、ネットワークが入力ベクトルをマッピングする関数の内部表現を計算できるようにする重みとバイアスを表します (たとえば、リンクされた「猫」例) 出力ベクトル (例: "climbed") に変換します。

ネットワークの重みは、入力と出力の間のマッピングのサブシンボリック表現です。単一の重みは、必ずしもそれ自体で意味のあるものを表すとは限りません。ネットワークの関数マッピングの表現を生み出すのは、ネットワーク内のすべてのユニット間の接続の重み (つまり、すべての重みの相互作用) です。これが、ニューラル ネットワークがしばしば「ブラック ボックス」モデルと呼ばれる理由です。なぜ特定の決定を行うのか、どのように学習するのかを解釈することは非常に難しい場合があります。そのため、ベクトル [0.3,0.01,0.04] が正確に何を表しているかを言うのは非常に困難です。

ネットワークの重みは、主に次の 2 つの理由から、伝統的にランダムな値に初期化されます。

  1. トレーニングが始まる前にモデルにバイアスが導入されるのを防ぎます
  2. これにより、ネットワークは初期化後に検索空間内のさまざまなポイントから開始できます (極小値の影響を軽減するのに役立ちます)。

ネットワークの学習能力は、重みが初期化される方法に非常に敏感です。現在、この論文など、重みを初期化するより高度な方法があります (セクション: 重みの初期化スケーリング係数を参照)

重みを初期化する方法と隠れ層の次元は、ハイパーパラメーターと呼ばれることが多く、通常はヒューリスティックと問題空間の事前知識に従って選択されます。

于 2016-07-13T13:42:45.780 に答える
0

私は同じことを疑問に思い、 (1 0 0 0 0 0...) のようなベクトルを入れて、最も近い項を確認しました。答えは、返された結果が特定の意味に集中しているようには見えず、ランダムなものだったということです。これは、Google ニュースでトレーニングされた Mikolov の 300 次元ベクトルを使用していました。個々の次元が特定の人間が把握できる意味を持っているように見えるベクトル空間の NNSE セマンティック ベクトルを検索します。

于 2016-11-29T19:12:29.753 に答える