Word2Vec - CBOW 和 Skip-Grams

数据挖掘 神经网络 nlp
2021-10-15 07:32:33

我想知道 Word2Vec 是如何构建的。

我读过的教程只是简单地说明我们可以训练一个skipgram神经网络模型并使用作为词向量训练的权重。

但是,我也看过这张照片:

在此处输入图像描述

如果正确阅读此图:

1) CBOW 和 Skip Grams 模型都经过了一些输入的训练

2)CBOW的输出作为中间神经网络的输入

3)skipgrams的输出被用作中间神经网络的输出。

CBOW 的输出是给定上下文对中心词的预测,skipgram 的输出是对周围中心词的预测。

然后将这些输出用于训练另一组神经网络。

因此我们首先训练 CBOW 和 Skip-gram 神经网络,然后再训练中间神经网络?中间神经网络的输入是热编码的。

上述解释正确吗?

3个回答

在 word2vec 中只有一个神经网络可以训练。CBOW、continuous-bag-of-words' 和 skip-gram 是构建神经网络训练数据的两种不同方法。你必须选择两种训练方法中的一种。

要准确了解word2vec模型是如何定义和训练的,查看基于本教程的代码可能会有所帮助:

https://github.com/tensorflow/tensorflow/blob/r1.3/tensorflow/examples/tutorials/word2vec/word2vec_basic.py

CBOW 和 Skipgram 是替代模型选择,唯一的区别是损失函数。

如果您愿意,可以将其称为神经网络,但这两个模型实际上只是一个非常简单的损失函数,涉及两个可训练参数矩阵(每个矩阵每个单词都有一个向量)。一旦经过训练,通常会丢弃一个矩阵,而另一个会给出“词嵌入”。

当然没有多个神经网络。图表的顶部是文本的预处理。