传统的神经网络(Neural Network)模型主要学习的是数据点(向量)到数据点(向量)变换,而循环神经网络(Recurrent Neural Network)则学习的是数据点序列(Sequence)到数据点序列的变换,近年来比较常用的模型有门控循环单元(Gate Recurrent Unit)、长短期记忆(Long-Short Term Memory)以及Transformer模型。其中Transformer模型可以理解为循环神经网络模型中的“变形金刚”,在许多应用场景(例如机器翻译、自然语言处理)中都取得了很好的效果,成为了目前研究领域的新主流。但不管当前研究人员的观点如何以及是否偏颇,我们作为普通的吃瓜群众而言,对于优秀的东西都是要不断学习的。本文会以电影评论分类的代码为例子,对其进行简要的探讨与总结。
Transformer模型的核心思想
Transformer模型最开始应用于机器翻译的应用场景,它试图避免循环神经网络递归运算,从而使得并行计算成为可能,即极大的缩短的训练和测试的时间,以便应用于对时间要求较高的自动化系统。同时,它可以捕获序列内部长距离的依赖关系,从而避免了输入序列过长而造成的性能损失。Transformer模型的核心思想是自注意力机制(Self-Attention),即能注意输入序列的不同位置以计算该序列的特征表达的能力。Transformer 模型由多个自注意力层(self-attentionlayers)堆叠而成,下图显示了按比缩放的点积注意力(Scaled Dot-Product Attention)子模块和多头注意力(Multi-Head Attention)层的设计。