Machine learning 在培训CNN进行文本分类时,如何微调word2vec?
我有3个关于微调词向量的问题。请帮帮我。我会非常感激的!非常感谢Machine learning 在培训CNN进行文本分类时,如何微调word2vec?,machine-learning,nlp,artificial-intelligence,deep-learning,Machine Learning,Nlp,Artificial Intelligence,Deep Learning,我有3个关于微调词向量的问题。请帮帮我。我会非常感激的!非常感谢 当我训练自己的CNN进行文本分类时,我使用Word2vec来初始化单词,然后我只使用这些预先训练的向量作为我的输入特征来训练CNN,因此如果我没有嵌入层,它肯定无法通过反向传播进行任何微调。我的问题是,如果我想进行微调,这是否意味着要创建一个嵌入层?以及如何创建它 当我们训练Word2vec时,我们使用无监督训练,对吗?在我的例子中,我使用skip-gram模型来获得预先训练好的word2vec;但是,当我使用vec.bin并在文
embedding_layer = Embedding(nb_words + 1,
EMBEDDING_DIM,
weights=[embedding_matrix],
input_length=MAX_SEQUENCE_LENGTH,
trainable=True)
2) w2v只是用于嵌入层初始化,与要使用的CNN结构无关。将只更新内存中的权重。回答第一个问题- 当您在
嵌入
构造函数中设置trainable=True
时。您的预训练嵌入设置为该嵌入层的权重
。现在,在这些权重上发生的任何微调都与w2v(CBOW或SG)
无关。如果您想微调,您必须使用以下任何一种技术微调您的w2v
模型
答复2-
对嵌入层的权重
进行任何微调都不会影响您的vec.bin
。这些更新的权重
与模型一起保存,尽管理论上您可以将其取出
答复3-
gensim
仅实现这两种方法(SG
和CBOW
)。然而,有多种新方法被用于训练词向量,如MLM
(蒙蔽语言建模)。
globe
尝试对单词的共现概率进行建模
如果您想使用自己的自定义方法进行微调。您只需指定一个任务(如文本分类
),然后保存更新的嵌入层权重。您必须适当注意索引,以便为每个单词指定相应的向量。非常感谢!我明白了。还有一个问题:当我用CBOW模型训练我的w2v时,这有关系吗?(因为我认为w2v可以用skip gram或CBOW训练我的单词的首字母)@PrinceofPersia,这取决于。对我来说,300维的skip-gram总是比300维的CBOW好。如