虽然迁移学习/微调最近的语言模型,例如 BERT 和 XLNET,是迄今为止非常普遍的做法,但这对 GloVe 来说如何?
基本上,当使用 GloVe 获得下游 NN 可以使用的密集向量表示时,我看到了两个选项。
1) 微调 GloVe 嵌入(在 pytorch 术语中,启用渐变)
2) 只使用没有梯度的嵌入。
例如,给定 GloVe 的嵌入矩阵,我会
embed = nn.Embedding.from_pretrained(torch.tensor(embedding_matrix, dtype=torch.float))
...
dense = nn.Linear(...)
最好的做法是单独使用 GloVe 来获得向量表示(并且只训练密集层和可能的其他层),还是也可以微调嵌入矩阵?