使用 RNN 学习词嵌入

数据挖掘 rnn word2vec 词嵌入
2021-10-04 06:53:18

学习词嵌入的常用方法是基于 BOW 和 Skip-gram 模型。

是否可以使用来自大型语料库的随机句子来训练基于 RNN 的架构(如 GRU 或 LSTM)来学习词嵌入?基本上,我们训练一个包含正样本和负样本的网络,然后反向传播到词向量中。这种技术的缺点是什么?

高度赞赏任何对类似作品的参考。

1个回答

是的,可以使用来自大型语料库的随机句子来训练基于 RNN 的架构(如 GRU 或 LSTM)来学习词嵌入。

语料库词的词嵌入可以在训练神经网络完成某些任务(例如情感分类)时学习。在将其呈现给 RNN 之前,首先对每个单词进行编码,以便它由一个唯一的整数表示,例如使用分词器。我们添加一个填充标记以使所有句子的长度相同。

这样做被称为在 LSTM/RNN/GRU 网络模型“前面”构建嵌入层。对于嵌入层,您需要指定:

  1. 序列的最大长度
  2. 每个令牌的嵌入大小。

缺点是使用这种技术,训练需要更多时间,因为你不仅要训练你的预测模型,还要训练你的词嵌入。这是因为与我们使用带有冻结参数的预训练词嵌入的模型相比,可训练参数的总量会更大。

最后,根据您的数据集大小,使用在一些较大的语料库上训练的预训练嵌入将导致比在较小的数据集上训练自己的词嵌入更好的嵌入。

这是使用这两种方法的实验: https ://towardsdatascience.com/machine-learning-word-embedding-sentiment-classification-using-keras-b83c28087456