在最新的博文中,Google公布了一个新的NLP模型,可以在文本分类任务上达到BERT级别的性能,但参数量仅为BERT的1/300。近十年来,深度神经网络从根本上革新了自然语言处理(NLP)领域的发展,但移动端有限的内存和处理能力对模型提出了更高的要求。人们希望他们可以在不牺牲性能的情况下变得更小。去年,谷歌发布了一种名为PRADO的神经架构,当时在许多参数少于200K的文本分类问题上取得了最先进的性能。大多数模型为每个标记使用固定数量的参数,而PRADO模型使用的网络结构只需要几个参数来学习与任务最相关或最有用的标记。论文链接:https://www.aclweb.org/anthology/D19-1506.pdf在最新的博文中,谷歌研究人员宣布他们改进了PRADO,并将改进后的模型称为pQRNN。新模型以最小的模型尺寸实现了NLP任务的最新技术水平。pQRNN的新颖之处在于它将简单的投影操作与准RNN编码器相结合,以实现快速并行处理。研究表明,pQRNN模型在文本分类任务上可以达到BERT级别的性能,但参数数量仅为其1/300。PRADO的工作原理一年前开发该模型时,PRADO利用特定领域的NLP知识进行文本分割,以减小模型大小并提高模型性能。通常,输入到NLP模型的文本首先被处理成适合神经网络的形式,方法是将文本分割成与预定义通用词典中的值对应的标记。然后神经网络使用可训练的参数向量(包括嵌入表)来唯一标识每个文本片段。然而,文本的分割方式对模型性能、大小和延迟有重大影响。下图显示了NLP社区使用的各种文本分割方法及其相应的优缺点:由于文本分割的数量是影响模型性能和压缩的重要参数,因此引出了一个问题,即NLP模型是否需要能够清楚地识别每个可能的文本片段。为了回答这个问题,研究人员探索了NLP任务的内在复杂性。只有少数NLP任务,例如语言建模和机器翻译,需要了解文本片段之间的细微差别,因此可能需要对所有可能的文本片段进行唯一识别。大多数其他任务可以通过仅了解这些文本片段的一个子集来解决。此外,与任务相关的文本片段的子集不一定是最常见的部分,因为很大一部分可能是专用文章,例如a、an和the,这些对于许多任务并不重要。因此,允许网络为给定任务决定最相关的部分可以带来更好的性能。而且,网络不需要唯一标识这些文本片段,它只需要识别文本片段的聚类。例如,情感分类器只需要学习对文本中与情感密切相关的片段进行聚类。基于此,PRADO旨在从单词而不是单词片段或字符中学习文本片段的聚类,这使其能够在低复杂度的NLP任务中取得良好的性能。由于词单元更有意义,而且与大多数任务最相关的词并不多,因此学习相关词簇的简化子集所需的模型参数要少得多。改进的PRADO谷歌研究人员开发了一个更强大的NLP模型——基于PRADO的pQRNN。该模型由三个构建块组成——一个将文本中的标记转换为三元向量序列的投影算子、一个密集的瓶颈层和几个QRNN编码器。pQRNN中投影层的实现与PRADO中使用的一致,有助于模型学习最相关的token,但没有固定的参数集来定义这些token。它首先识别文本中的标记,然后使用简单的映射函数将它们转换为三元组特征向量。这会生成一个三元素向量序列,该向量具有表示文本的平衡对称分布。这种表示没有直接用途,因为它不包含解决感兴趣的任务所需的任何信息,并且网络无法控制这种表示。研究人员将其与密集的瓶颈层相结合,使网络能够学习与手头任务相关的逐字表示。瓶颈层产生的表示仍然没有考虑单词上下文。因此,我们使用多个双向QRNN编码器学习上下文表示。这导致网络仅从文本输入中学习上下文表示,而无需任何预处理。pQRNN的性能研究人员在civil_comments数据集上评估了pQRNN,并将其与执行相同任务的BERT模型进行了比较。模型的大小与其参数数量成正比,因此pQRNN比BERT小得多。另外,pQRNN也进行了量化,因此模型尺寸进一步缩小到原来的1/4。公开训练的BERT在本文的任务中表现不佳,因此用于对比的BERT实际上是在几个不同的相关多语言数据源上进行预训练以达到最佳性能。在实验中,研究人员获得了两种模型的AUC信息。在没有任何预训练的情况下,仅在监督数据上进行训练,pQRNN的AUC为0.963,使用130万个量化(8位)参数。在对多个不同数据源进行预训练并对监督数据进行微调后,BERT模型使用1.1亿个浮点参数实现了0.976的AUC。为了鼓励社区基于谷歌的研究成果做出进一步的改进,谷歌还开源了PRADO模型。项目地址:https://github.com/tensorflow/models/tree/master/research/sequence_projection
