问题标签 [word-embedding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
deep-learning - 文本数据的向量嵌入:LSTM 将所有输出值推至 1
我正在使用深度学习/神经语言模型将文本字符串编码到向量空间中。模型架构由一系列卷积层组成,这些卷积层将信息输入 LSTM 编码器/解码器层。这不是我写的代码,但可以在这里看到:https ://github.com/soroushv/Tweet2Vec 。代码是用 Theano 编写的。
我已经训练了模型(学习了编码参数),现在在尝试编码新数据(特别是推文)时遇到了麻烦。问题:LSTM 编码层将每条推文编码为 1 的向量
通过检查 theano.scan 的输出可以理解这个问题,它不仅方便地返回最终的 LSTM 隐藏状态输出,而且还返回 256 个步骤中的每一个之后的每个输出。见下文:
步骤 0
]]
步骤1
]]
]]
第 3 步
]]
...并通过第 15 步:第 15 步
我已经验证了最后一个卷积层的输出是合法的。看起来像:
并且形状正确。
所以我希望对正在发生的事情以及如何解决它有一些了解。这是来自 LSTM 类的代码。据我所知,上面的卷积输出作为输入提供给下面的 calc_output。所有这些代码(以及其余代码)都在链接的 github 中。谢谢
machine-learning - 张量流中的大词嵌入矩阵更新
最近我正在使用 CNN 进行文本分类,在http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/中有描述。
我的数据集非常大,词汇量超过 100 万个单词。当词汇量变大时,我的训练算法会变得更慢。有一条警告消息说“....tensorflow/python/ops/gradients.py:87: UserWarning: Converting sparse IndexedSlices to a dense Tensor with 145017088 elements。这可能会消耗大量内存。”
我认为这可能是由嵌入矩阵上的密集梯度更新引起的。有人对此有任何想法吗?Tensorflow 中有一篇文章仅更新部分词嵌入矩阵,讨论了类似的问题。最佳答案指出 tensorflow 仅更新特定行。为什么我的情况发生了变化?
谢谢!
nlp - token的词向量应该是什么,,,在发送到 RNN 之前?
在词嵌入中,start_tokens _PAD、_UNKNOWN、_GO、_EOS 的良好向量表示应该是什么?
python - Tensorflow:“GraphDef 不能大于 2GB。” 分配变量后保存模型时出错
我想用一个预训练的模型来热情地启动另一个略有不同的模型。简单地说,我创建了一个新模型,并为具有相同名称的变量分配了预训练的模型权重。但是,保存模型时,出现错误。
Traceback (most recent call last):
File "tf_test.py", line 23, in <module>
save_path = saver.save(sess, "./model.ckpt")
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py", line 1308, in save
self.export_meta_graph(meta_graph_filename)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/saver.py", line 1331, in export_meta_graph
graph_def=ops.get_default_graph().as_graph_def(add_shapes=True),
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2268, in as_graph_def
result, _ = self._as_graph_def(from_version, add_shapes)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2231, in _as_graph_def
raise ValueError("GraphDef cannot be larger than 2GB.")
ValueError: GraphDef cannot be larger than 2GB.
示例代码如下:
neural-network - 关于词嵌入的问题(word2vec)
我正在尝试了解 word2vec(word embedding) 架构,对此我有几个问题:
- 首先,为什么 word2vec 模型被认为是对数线性模型?是因为它在输出层使用了软最大值吗?
- 二、word2vec为什么要去掉隐藏层?仅仅是因为计算复杂吗?
- 三、word2vec为什么不用激活函数?(与 NNLM(神经网络语言模型)相比。
word2vec - 在哪里可以找到 50 维 word2vec 格式的预训练词嵌入(英语)?
最好它应该是 txt 文件而不是二进制文件。我在 300 多个维度中找到的所有预训练词嵌入。
谢谢
python - 产品合并层与用于 Word2Vec 模型的 Keras 函数 API
我正在尝试使用 Keras 实现带有负采样的 Word2Vec CBOW,遵循此处找到的代码:
但是,在合并部分出现错误,因为嵌入层是 3D 张量,而 cbow 只有 2 维。我假设我需要将嵌入(即 [?, 1, 100])重塑为 [1, 100] 但我找不到如何使用功能 API 重塑。我正在使用 TensorFlow 后端。
此外,如果有人可以使用 Keras(Gensim 免费)指出 CBOW 的其他实现,我很想看看它!
谢谢!
编辑:这是错误
neural-network - 为什么 word2vec 优于其他神经网络方法?
为什么 word2vec 优于其他神经网络方法?
Word2vec 比其他神经网络方法(NNLM、RNNLM 等)更浅。
可以解释吗?
而且我想知道它是否因为word2vec模型不包含隐藏层(激活函数如sigmoid等)而遭受任何缺点?
machine-learning - Caffe 嵌入层输入
Caffe 中的 Embed 层采用什么类型的输入?它是否需要已经以一种热门形式编码的单词?
假设,N = 输入句子中的单词数;M = 词汇量
那么单个句子的一个热向量将是 N x M 阶
这是否意味着输入的 dim 参数将为 N?
最后应该以什么格式保存句子,以便 Caffe 嵌入层可以正确读取?
word2vec - word2vec 单词到颜色关联?
我正在尝试像这样获得颜色关联:
使用 GoogleNews-vectors-negative300.bin 向量,我第一次尝试
其中颜色是原色,例如“红色”、“黄色”、“蓝色”等。
与水果“橙色”始终是最高的颜色联想,可能是因为它将颜色和水果混为一谈。当我删除橙色时,结果仍然很奇怪:
所以显然“紫罗兰色”与“苹果”和“樱桃”沿其他维度对齐(也许它们是植物?)。
我试着把它作为一个类比。这适用于某些对象,但不能很好地概括:
我还尝试了 facebook fasttext 嵌入,但结果更糟。我应该如何解决这个问题并隔离“对象的常见颜色”的向量?