驯服Transformer:百万级别文本分类新方法

4 阅读5分钟

驯服Transformer:百万级别文本分类新方法

新方法在保持模型规模可控的同时,实现了最先进的分类效果。

在自然语言理解领域,文本分类是最基础的任务。例如,用户向某智能助手发出的请求需要按领域进行分类,如天气、音乐、智能家居、信息查询等。同时,许多自然语言处理应用也依赖于词性标注解析器。

对于类别数量较少的任务,性能最佳的文本分类系统通常使用预训练的Transformer模型,如BERT、XLNet和RoBERTa。然而,基于Transformer的模型,其计算复杂度随输入序列长度呈平方级增长,随类别数量呈线性增长。对于拥有数十万甚至数百万类别的大规模任务(即“极端分类”),这类模型会变得庞大到不切实际。

在即将于今年举行的计算机协会知识发现与数据挖掘年度会议(KDD)上发表的论文中,研究团队描述了一种将基于Transformer的模型应用于大规模文本分类(即极端分类)的新方法。该模型在类别数量增加时,规模增长合理。实验表明,在为给定输入选择相关类别的任务中,该方法在四个不同数据集上的表现均优于现有最先进系统。

爆炸式增长的分类器

通常,对于自然语言处理任务,基于Transformer的模型会在大型通用文本语料库上进行预训练,学习语言的词嵌入或向量表示,使得相关词汇在向量空间中聚集在一起。这些嵌入随后作为输入,输入到针对特定任务训练的新分类器中。

无论任务如何,Transformer模型本身的大小是固定的,通常在3.5亿个参数左右(参数指神经网络中单个连接边的权重)。研究中考虑了通用语言理解评估(GLUE)基准的一个组成部分——多类型自然语言推理(MLNI)语料库,该语料库包含具有三种可能逻辑关系(蕴涵、矛盾或中立)的句子对。训练一个识别这三种关系的分类器,仅为模型增加约2000个参数,影响微乎其微。

同时,研究也考虑了一个内部系统,该系统根据商品标题为某电商平台新增商品推荐可能的关键词。该系统涉及约一百万个商品类别。训练一个将商品名称分类到这百万个类别的分类器,会给模型增加超过十亿个参数,使其规模扩大近四倍,训练和部署效率大大降低。

为解决此问题,研究团队训练基于Transformer的模型将每个输入分配到一个类别簇,而非单个类别。然后,使用一个简单的线性分类器从该簇中选出最终的具体类别。这种方法在保持分类精度的同时,显著减小了基于Transformer的模型的规模。

为了在保留Transformer优势的同时实现合理规模扩展,该方法使用Transformer模型将每个输入分配到一个标签簇,然后通过一个更简单的线性分类器从簇中选出最终标签。

研究团队实验了两种不同的类别聚类方法。一种方法使用预训练的XLNet模型产生的嵌入,将向量空间中彼此接近的类别名称聚类在一起。对于由多个词组成的类别名称,则通过对其组成词的嵌入取平均来表示。另一种方法则嵌入每个类别的样本输入,而不仅仅是类别名称。同样,通过对输入文本中各个词的嵌入取平均,得到每个输入文本的单一嵌入;然后对属于同一类别的所有输入文本的嵌入取平均,为该类别生成一个嵌入。实验表明,结合这两种方法进行类别聚类,效果优于单独使用任何一种。但模型本身并不依赖于特定的类别聚类技术。

为了从类别簇中选出最终类别,模型采用了一对其余分类器。对于簇内的每个类别,该分类器学习在嵌入空间中将其成员与非成员分开。每个类别的分类边界可能不够精确,但多个分类边界相交的区域可以精确地定位到单个类别。

负例构建

学习分类边界既需要正例也需要负例。研究采用两种不同的方法构建负例。首先,对于簇内的每个类别,从同一簇内的其他类别中抽取负例。由于同一簇内的类别在语义上相关,这能确保负例具有挑战性,因此对分类器的信息量比简单负例更大。其次,利用基于Transformer的聚类模型来识别具有挑战性的负例。对于每个输入,基于Transformer的模型会生成一个按概率排序的候选簇列表。对于特定类别的正训练样本,找出模型持续以高概率预测的错误簇。然后,以这些簇为基础,根据概率得分加权,构建额外的负例。

在实验中,研究团队将该系统与九个基准系统在四个不同的数据集上进行了比较。在识别给定输入的最佳单一分类标签的任务中,该系统在所有数据集上均实现了最高的准确率。与排名第二的最新系统AttentionXML相比,领先幅度约为1%。在一个数据集上,对于识别前三和前五标签的任务,AttentionXML的准确率略高。但值得注意的是,AttentionXML采用的某些技术与本系统的方法是互补的,未来探索结合这两种方法,有望进一步提升性能。FINISHED