Pri*_*sia 5 nlp artificial-intelligence machine-learning deep-learning
我有 3 个关于微调词向量的问题。请帮帮我。我会很感激的!提前谢谢了!
当我训练自己的 CNN 进行文本分类时,我使用 Word2vec 来初始化单词,然后我只是使用这些预先训练好的向量作为我的输入特征来训练 CNN,所以如果我从来没有嵌入层,它肯定不能做任何事情通过反向传播进行微调。我的问题是如果我想做微调,是否意味着创建一个嵌入层?以及如何创建它?
当我们训练 Word2vec 时,我们使用的是无监督训练,对吗?就我而言,我使用skip-gram 模型来获取我预先训练好的word2vec;但是当我拥有 vec.bin 并在文本分类模型 (CNN) 中使用它作为我的词初始化器时,如果我可以微调 vec.bin 中的词到向量映射,是否意味着我必须拥有与训练 Word2vec 时完全相同的 CNN 网络结构?微调的东西会改变 vec.bin 还是只是微调计算机内存?
skip-gram 模型和 CBOW 模型是否仅用于无监督 Word2vec 训练?或者他们也可以申请其他一般的文本分类任务?Word2vec 无监督训练和监督微调之间的网络有什么不同?
@Franck Dernoncourt 谢谢你提醒我。我在这里很绿,希望能从强大的社区中学到一些东西。有空的时候请看看我的问题,再次感谢!
1)您需要的只是一个使用带有可训练/固定嵌入层的预训练词嵌入的好例子,并在代码中进行以下更改。在 Keras 中,您可以默认更新该层,要将其从训练中排除,您需要将 trainable 设置为 False。
embedding_layer = Embedding(nb_words + 1,
EMBEDDING_DIM,
weights=[embedding_matrix],
input_length=MAX_SEQUENCE_LENGTH,
trainable=True)
Run Code Online (Sandbox Code Playgroud)
2)你的w2v只是用于嵌入层初始化,与你将使用什么CNN结构不再有关系。只会更新内存中的权重。
| 归档时间: |
|
| 查看次数: |
5113 次 |
| 最近记录: |