1.2.3 基于深度学习的方法
基于深度学习(Deep Learning)的方法通过构建具有一定“深度”的模型,将特征学习和预测模型融合,通过优化算法使模型自动地学习到好的特征表示,并基于此进行结果预测。基于深度学习的自然语言处理方法的基本流程如图1.5所示。与传统机器学习算法的流程相比,基于深度学习方法的流程简化很多,通常仅包括数据构建、数据预处理和模型学习三个部分。同时,在数据预处理方面也大幅度简化,仅包含非常少量的模块,甚至目前很多基于深度学习的自然语言处理方法可以完全省略数据预处理阶段。例如,对于汉语,直接使用汉字作为输入,不提前进行分词;对于英语,也可以省略词的规范化步骤。
图1.5 基于深度学习的自然语言处理方法的基本流程
深度学习是机器学习的一个子集,通过多层的特征转换,将原始数据转换为更抽象的表示。这些学习到的表示可以在一定程度上完全代替人工设计的特征,这个过程也叫作表示学习(Repre-sentation Learning)。与基于特征工程的方法通常所采用的离散稀疏表示不同,深度学习算法通常使用分布式表示(Distributed Representation),特征表示为低维稠密向量。分布式表示通常需要从底层特征开始,经过多次非线性变换得到。由于深层结构可以增加特征的重用性,从而使得表示能力呈指数级增加,因此,表示学习的关键是构建具有一定深度的多层次特征表示[39]。随着深度学习研究的不断深入和计算能力的快速发展,模型深度也从早期的5~10层增加到现在的数百层。随着模型深度的不断增加,其特征表示能力也在不断增强,从而也使得深度学习模型中的预测部分更加简单,预测也更加容易。
自2018年ELMo模型[28]被提出之后,基于深度学习的自然语言处理范式又进一步演进为预训练微调范式。首先利用自监督任务对模型进行预训练,通过海量的语料学习到更为通用的语言表示,然后根据下游任务对预训练网络进行调整。这种预训练微调范式在几乎所有自然语言处理任务上的表现都非常出色。预训练模型在模型网络结构上可以采用LSTM、Transformer等具有较好序列建模能力的模型,预训练任务可以采用语言模型、掩码语言模型(Masked Language Model)、机器翻译等自监督或有监督的方式,还可以引入知识图谱、多语言、多模态等扩展任务。自2018年以来相关研究非常多,取得了非常好的效果,但仍然面临模型稳健性提升、模型可解释性等诸多问题亟待解决。本书6.4节将对预训练语言模型进行详细介绍。