据我所知,使用 gensim 创建的 word2vec 只有 3 层。我想知道我们可以自定义 word2vec NN 并创建超过 3 层的 word2vec NN 来使用 tensorflow 进行实验吗?
我们可以使用 tensorflow 制作超过 3 层的 word2vec NN 吗?
数据挖掘
张量流
word2vec
词嵌入
2022-02-28 09:04:35
1个回答
从技术上讲,任何 Word2vec 都基于编码器-解码器神经网络架构,具有一个学习词嵌入的隐藏层。理论上,在 TensorFlow 中实现一个“更深”的 word2vec 模型是完全可行的。
不过,你会发现一些实际问题。词向量超长(对于一个小型语料库,我们的数量级是数千)。如果没有适当的基础设施,训练一个具有 10.000 个输入节点的深度网络实际上是不可行的。
为了克服这个问题,word2vec 库(例如 gensim)递归到负采样。word2vec 的发明者(Mikolov 等人)发现,训练一个简单的 word2vec 模型的结果可以通过一系列逻辑回归来近似。您可以在此处和 Google上找到更多关于负采样的信息。
但是如果你让网络更深,逻辑模型(因此负采样)就不能再工作了,这使得这个任务对于普通计算机来说计算量太大了。
换句话说:是的,你可以创建一个超过 3 层的 word2vec 神经网络,但是所需的计算能力使得单个研究人员几乎不可能使用通用硬件。