nlp中使用预训练的词向量和随机初始化的词向量的区别在哪里?
当你训练数据不充足的时候,可以直接使用别人已经预训练好的词向量,也可以根据自己的训练数据微调(fine-tuning)预训练词向量,也可以把词向量和整个模型一块训练,但是通常预训练的词向量我们不会再在训练的过程中进行更新。
当你的训练数据比较充足的时候,并且想让词向量能更好的捕捉自己的训练数据的语义信息时,应该使用随机初始化的词向量。当然,随机初始化的词向量必须要在训练网络的过程中不断进行更新,就和神经网络的权重参数一样进行训练。
例子:
1.直观展示
1 | import torch |
1 | Parameter containing: |
2.n-gram
1 | self.embedding = nn.Embedding.from_pretrained(config.embedding_pretrained, freeze=False) |
参考
nlp中使用预训练的词向量和随机初始化的词向量的区别在哪里?