私はニューラルネットワークの初心者で、現在はword2vecモデルを探索しています。しかし、機能マトリックスが正確に何であるかを理解するのに苦労しています。
最初の行列が特定の単語のワンホットエンコーディングベクトルであることは理解できますが、2番目の行列は何を意味していますか?より具体的には、これらの各値(つまり、17、24、1など)はどういう意味ですか?
私はニューラルネットワークの初心者で、現在はword2vecモデルを探索しています。しかし、機能マトリックスが正確に何であるかを理解するのに苦労しています。
最初の行列が特定の単語のワンホットエンコーディングベクトルであることは理解できますが、2番目の行列は何を意味していますか?より具体的には、これらの各値(つまり、17、24、1など)はどういう意味ですか?
回答:
word2vecの背後にある考え方は、次元dの実数のベクトルで単語を表すことです。したがって、2番目の行列はそれらの単語の表現です。
この行列のi番目の行は、i番目の単語のベクトル表現です。
たとえば、次の5つの単語があるとします。["ライオン"、 "猫"、 "犬"、 "馬"、 "マウス"]最初のベクトル[0,0,0,1,0]は、 「馬」という言葉を考えているので、「馬」の表現は[10、12、19]です。同様に、[17、24、1]は「ライオン」という単語の表現です。
私の知る限りでは、これらの表現のそれぞれの数字に特に「人間の意味」はありません。1つの数字は、単語が動詞かどうか、形容詞かどうかを表していません...最適化問題を解決して単語の表現を学習するために変更する重みです。
このチュートリアルが役立つ場合があります:http : //mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/このリンクからの画像だと思いますが。
:また、あなたがTensorFlowと単語ベクトルを始めるのに役立つ可能性がある、これを確認することができますhttps://www.tensorflow.org/tutorials/word2vec
TL; DR:
最初の行列は、1つのホット形式の入力ベクトルを表します
2番目の行列は、入力層ニューロンから隠れ層ニューロンへのシナプスの重みを表します
より長いバージョン:
「特徴マトリックスとは何か」
表現を正しく理解していないようです。その行列は、特徴行列ではなく、ニューラルネットワークの重み行列です。以下の画像を検討してください。特に、入力レイヤーマトリックスがウェイトマトリックスと乗算される左上隅に注目してください。
右上を見てください。この行列乗算InputLayerは、Weights Transposeでドット積され、右上のニューラルネットワークを表す便利な方法です。
したがって、あなたの質問に答えるために、あなたが投稿した方程式は、Word2Vecアルゴリズムで使用されるニューラルネットワークの数学的表現にすぎません。
最初の部分、[0 0 0 1 0 ... 0]は入力ワードを1つのホットベクトルとして表し、もう1つの行列は各入力層ニューロンと非表示層ニューロンの接続の重みを表します。
Word2Vecがトレーニングを行うと、Word2Vecはこれらの重みに逆伝播し、単語をベクトルとしてより適切に表現するようにそれらを変更します。
トレーニングが完了したら、この重み行列のみを使用し、たとえば「犬」の[0 0 1 0 0 ... 0]を取り、これに改良された重み行列を掛けて、次元の「犬」のベクトル表現を取得します=隠れ層ニューロンはありません。
あなたが提示した図では、隠れ層ニューロンの数は3です。
したがって、右側は基本的に単語ベクトルです。
画像クレジット:http : //www.datasciencecentral.com/profiles/blogs/matrix-multiplication-in-neural-networks