nlp任务中微调的含义

数据挖掘 nlp word2vec 词嵌入 迁移学习 伯特
2021-09-24 20:24:57

有两种类型的迁移学习模型。一种是特征提取,在实际任务中训练时预训练模型的权重不会改变,另一种是可以改变预训练模型的权重。

根据这些分类,像 word2vec 这样的静态词向量是一种特征提取模型,其中每个向量都对词的含义进行编码。

这个词的意思改变了上下文。例如,“河岸”与“银行作为金融机构”。这些 word2vec 向量不区分这些含义。

像 Bert 这样的当前模型会考虑上下文。Bert 是一种语言表示模型。这意味着,它在内部可以通过上下文词向量来表示词。

默认情况下,Bert 是一个微调模型。这就是我对微调的想象开始崩溃的地方。比方说,在 Bert 模型之上,我们创建了一些特定于任务的层。现在,如果我们进行微调,根据定义,较低级别(语言表示层)的权重将至少发生一点变化,这意味着单词的向量也会发生变化(如果我们比较微调之前和之后)。这意味着由于新任务,该词的含义会有所改变。如果我的上述解释是正确的,我无法理解这种现象,例如任务情感分析的词向量与任务问答的词向量(同一个词)是不同的。有谁能够帮我?

如果上面有任何错误,请纠正我。谢谢

3个回答

据我了解,当您对任何任务进行微调时,您会使用额外的数据(在预训练期间未使用),这些示例将更改较低级别的权重,以便您的模型为您将使用的上下文做好更好的准备它。一个很好的例子是 Twitter 情绪分类器。

当您说:

任务情感分析的词向量与任务问答的词向量不同

每个任务都有一个特定的域,单词在不同的域中具有不同的表示。

在食谱中谈论“Apple”与在公司评论中谈论“Apple”不同。

BERT 的预训练基于书籍和维基百科。但是一些微调任务不是基于这些来源。单词可能有不同的含义。这就是对 BERT 进行微调的原因:根据您的特定领域“更新”单词的含义。

基于特征与微调

在基于特征的情况下,您可以通过运行不同的模型然后在不同的任务上使用这些特征(即词向量)来训练词嵌入。

微调时,您可以使用完全相同的模型并在不同的任务上运行它。有时在微调时,您可以保持模型权重固定,只需添加一个您将训练的新层。其他时候,您可以一次缓慢地解冻一层。您还可以在预训练时使用未标记的数据,方法是屏蔽单词并尝试预测哪个单词被屏蔽。

在

例如,在上图中,我们尝试预测“朋友”这个词。这使您的模型能够掌握数据的整体结构,并帮助模型学习句子单词中的一些关系。