我们可以使用 tensorflow 制作超过 3 层的 word2vec NN 吗?

数据挖掘 张量流 word2vec 词嵌入
2022-02-28 09:04:35

据我所知,使用 gensim 创建的 word2vec 只有 3 层。我想知道我们可以自定义 word2vec NN 并创建超过 3 层的 word2vec NN 来使用 tensorflow 进行实验吗?

1个回答

从技术上讲,任何 Word2vec 都基于编码器-解码器神经网络架构,具有一个学习词嵌入的隐藏层。理论上,在 TensorFlow 中实现一个“更深”的 word2vec 模型是完全可行的。

不过,你会发现一些实际问题。词向量超长(对于一个小型语料库,我们的数量级是数千)。如果没有适当的基础设施,训练一个具有 10.000 个输入节点的深度网络实际上是不可行的。

为了克服这个问题,word2vec 库(例如 gensim)递归到负采样word2vec 的发明者(Mikolov 等人)发现,训练一个简单的 word2vec 模型的结果可以通过一系列逻辑回归来近似。您可以在此处和 Google上找到更多关于负采样的信息。

但是如果你让网络更深,逻辑模型(因此负采样)就不能再工作了,这使得这个任务对于普通计算机来说计算量太大了。

换句话说:是的,你可以创建一个超过 3 层的 word2vec 神经网络,但是所需的计算能力使得单个研究人员几乎不可能使用通用硬件。