2016-08-03 8 views
0

私はword2vecの仕組みを理解しています。word2vecはどのように埋め込みベクトルから1つのホットワードベクトルを与えますか?

RNNの入力としてword2vec(skip-gram)を使いたいです。入力は単語ベクトルを埋め込みます。出力は、RNNによって生成された単語ベクトルも埋め込みます。

ここに質問があります!出力ベクトルを1つのホットワードベクトルに変換するにはどうすればよいですか?私は埋め込みの逆行列が必要ですが、私は持っていません!

答えて

0

RNNの出力は埋め込みではありません。 RNNセルの最後のレイヤからの出力を、適切な行列を掛けてvocabulary_sizeのベクトルに変換します。

もっと良いアイデアを得るには、PTB Language Modelの例を見てください。具体的には、133〜136行目をご覧ください。

softmax_w = tf.get_variable("softmax_w", [size, vocab_size], dtype=data_type()) 
softmax_b = tf.get_variable("softmax_b", [vocab_size], dtype=data_type()) 
logits = tf.matmul(output, softmax_w) + softmax_b 

上記の操作でロギングが行われます。このロジットはあなたのボキャブラリーの確率分布です。 numpy.random.choiceこれらのログを使用して予測を行うのに役立ちます。

関連する問題