自然语言处理NLP是当代人工智能的关键领域,包含文本识别、智能问答等多个方向任务,通过监督学习方式一般需要大量带标签数据,而对某些特定任务,获取带标签数据成本非常高。GPT通过大量的未标记文本数据来学习一个通用预训练(generative pre-training)的语言模型,并通过语言模型可以学习到内在语义信息,之后针对特定任务只需要用少量的标签数据进行fine-tuning,而不需要对模型结构进行较大改变。其通过一系列实验表明,通用预训练(generative pre-training)的语言模型确实可以学习到潜在语义信息,并在多个不同NLP任务中都取得非常好的效果。
半监督的学习方法在NLP领域并不少见,早期通过无监督word2vec学习词的embedding向量,然后输入给特定任务的模型进行监督训练,但都必须要求足够的标签数据。GPT想要通过通用预训练(generative pre-training)的语言模型来学习到更为深层次的语义信息,为达成目标,这里包含了两个问题:如何去学习更为深层次的语义信息表达?所学习的语义信息能否有效的帮助目标任务?
GPT采用了两阶段的训练方式:通过大量未标记的文本数据进行非监督学习,再用结合特定任务用少量标记数据进行fine-tuning。
1. 训练目标
A. 非监督的预训练
通用预训练(generative pre-training)语言模型的目标是预测下一文本的概率,假设存在一段训练文本{u1,u2,...,un},其中u表示文本序列中的词元,预训练的损失函数为: