如何利用word2vec嵌入设计wordRNN模型的输出层

2024-05-17 05:04:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着建立一个单词RNN的等价物Char RNN,网络应该生成一个句子中的下一个单词。在

训练成200字的隐藏矢量,使用的是尺寸为200的隐藏矢量。我的主要问题是输出层,它应该如何设计?在

在char-rnn中,输出的是具有字符概率分布(softmax)的词汇表大小(唯一字符数)向量。所以生成下一个字符只是从这个分布中取样。 但是当我的单词词汇量超过300k时使用word2vec这种方法是不可行的。在

如果我的输出生成100维向量,那么我应该使用gensim similar_by_vector function找到最近的相似单词

你能提供一些好的、易于理解的python和tensorflow实现,一些到github或出版物的链接。在

我找到了一个similar question,但它不能回答我的问题:


Tags: 词汇表网络尺寸矢量字符单词向量句子
1条回答
网友
1楼 · 发布于 2024-05-17 05:04:00

您可以输出一个单词的索引(每个例子),从而避免一个热词表示(这确实非常大)。使用^{}

Weighted cross-entropy loss for a sequence of logits (per example).

  • logits: List of 2D Tensors of shape [batch_size x num_decoder_symbols].
  • targets: List of 1D batch-sized int32 Tensors of the same length as logits.
  • weights: List of 1D batch-sized float-Tensors of the same length as logits.

请注意,它不会减小模型的大小,但是它通过计算稀疏编码标签的损失来节省大量内存。word rnn实现的完整示例可以在here中找到,他们正是使用这种方法。在

相关问题 更多 >