2017-02-16 14 views
2

私が理解しているように、Word2Vecは、訓練コーパスに基づいて単語辞書(または、語彙)を構築し、辞書内の各単語に対してK-dimベクトルを出力する。私の質問は、正確にはそれらのK-Dimベクターのソースは何ですか?私は、各ベクトルが、入力と隠れ層の間の重み行列の1つ、または隠れた出力層のいずれかであると仮定しています。しかし、私はこれをバックアップするソースを見つけることができませんでした。プログラミング言語では、ソースコードを調べて自分自身で把握しています。このトピックの明確な注釈は非常に高く評価されるでしょう!Word2Vec出力ベクトル

答えて

1

正確にはこれらのK-Dimベクターの元は何ですか?私は、各ベクトルが、入力と隠れ層の間の重み行列の1つ、または隠れた出力層のいずれかであると仮定しています。

word2vecモデル(CBOW、Skip-gram)では、単語の特徴行列を出力します。この行列は、入力層と投影層の間の最初の重み行列です(word2vecモデルでは隠れ層がなく、その中に活性化関数はありません)。コンテキスト(CBOWモデル)で単語を訓練するとき、この重み行列を更新します(投影 - 出力レイヤ間のマトリックスも更新されますが、使用されません)。

最初の行列では、語彙とコラムは単語の特徴(K次元)を意味します。

あなたはより多くの情報が必要な場合、それは

http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/

0

word2vecは、単語表現を得るために、機械学習を使用しています探ります。その文脈(CBOW)またはその逆(スキップグラム)を使用して単語を予測します。

機械学習では、モデルのエラーを表す損失関数があります。このエラーは、モデルのパラメータによって異なります。 モデルのトレーニングは、モデルのパラメータに関するエラーを最小限にすることを意味します。

word2vecでは、これらの埋め込み行列は、トレーニング中に更新されるモデルのパラメータです。彼らがどこから来たのか理解するのに役立ちます。実際には、最初にランダムに初期化され、トレーニングプロセス中に変更されます。

あなたはthis paperからこの絵を見てみることができます: simple word2vec

そのk次元のベクトルとマップW」行列に入力ワンホットワード表現をマップW行列出力に対するk次元表現は、トレーニング中に最適化するモデルのパラメータの両方です。

関連する問題