论文标题:Label prompt for multi-label text classification(基于预训练模型对少样本进行文本分类)
发表时间:2021
领域:多标签文本分类
发表期刊:ICANN(顶级会议)
相关代码:无
数据集:无
最近,预先训练过的语言模型在许多基准测试上都取得了非凡的性能。通过从一个大型的训练前语料库中学习一般的语言知识,该语言模型可以在微调阶段以相对少量的标记训练数据来适应特定的下游任务。更值得注意的是,带有175 B参数的GPT-3通过利用自然语言提示和很少的任务演示,在特定的任务中表现良好。受GPT-3成功的启发,我们想知道更小的语言模型是否仍然具有类似的少样本学习能力。不像在之前的少样本学习研究工作中,各种精心设计的任务,我们做得更实际。我们提出了一种基于问答问题的方法,通过将一个与标签相关的问题连接到每个候选句子中,来帮助语言模型更好地理解文本分类任务。通过利用语言模型在预训练阶段学习到的与标签相关的语言知识,我们的QA模型在英语和中文数据集上都优于传统的二进制和多类分类方法。之后,我们通过对多个预先训练过的语言模型进行少样本学习实验来测试我们的QA模型。我们惊讶地发现,即使是DistilBERT,这是我们测试的只有66 M参数的最小语言模型,仍然具有不可否认的少样本学习能力。此外,具有355 M参数的RoBERTa-large在只有100个标记训练数据的情况下,可以显著实现92.18%的高准确率。这个结果给人们提供了一个实用的指导方针,即当需要一个新的标记数据类别时,只需要标记多达100个数据。然后配合适当的预训练模型和分类算法,可以得到可靠的分类结果。即使没有任何标记的训练数据,即在零样本学习设置下,RoBERTa-large仍能达到84.84%的稳定准确率。
随着深度学习的发展,各种预训练的语言模型(PLMs)已被广泛用于解决自然语言处理任务。第一代的PLMs,如Skip-Gram和GloVe,旨在学习无法捕获更高层次语义概念的与上下文无关的词嵌入。第二代plm,如ELMo、BERT和GPT,在上下文中表示单词。通过以自我监督的方式在一个大型语料库上进行预训练,plm只需要对特定下游任务的少量标记数据进行微调。从那时起,训练前和微调范式开始主导NLP。在Brown等人引入的4000亿个代币上训练了1750亿个参数。在2020年,将plm推到了新一个水平。当只提供一个描述和很少的任务例子时,GPT-3模型可以不需要梯度更新而做出准确的预测或微调。尽管已经获得了显著的少样本学习能力,但同样突出的是,GPT-3背后的大量参数使将其应用于现实应用具有挑战性。
作为一个机器学习问题,少样本学习比PLM有更长的历史。人类能够通过利用他们在过去学到的东西来快速学习新的任务。因此,研究人员认为,设计一种高效的少样本学习算法可以让机器达到与人类相同的智力水平。然而,受GPT-3的启发,我们认为少量学习是预先训练的语言模型本身的一种能力,而不是被视为一项任务。毫无疑问,具有少镜头学习能力的语言模型应该有较大的参数,并在较大的语料库上进行预训练。然而,有多大才足够呢?因此,在本研究中,我们通过文本分类实验来探索各种语言模型的少样本学习能力。我们测试的预先训练的语言模型包括DistilBERT 、BERT 和RoBERTa-large ,它们分别有66M、110M和355M的参数。扩展一个常规大小的自动编码器语言模型在文本分类中的少样本学习能力是很有吸引力的:
语言模型的演化可分为统计语言模型、神经语言模型和预训练语言模型三个阶段。统计语言模型从20世纪60年代到20世纪10年代占主导地位,如隐马尔可夫模型和条件随机场。自2010年以来,深度学习模型的出现在文本分类方面取得了显著进展。神经模型,如CNN 和LSTM ,只是数据驱动的,避免做特征工程。然而,他们不能处理少样本学习。
图1。近年来的语言模型(GPT系列为紫色;BERT系列为蓝色;transformer是BERT和GPT的基础,为绿色)。
随着transformer的发展,近年来语言模型出现了预训练(图1)。值得注意的是,类似gpt的自动回归语言模型在精心选择的提示下表现得非常好,而且在许多下游任务中只有几个例子。由于被这些少样本学习能力所吸引,研究人员开始探索类似bert的自动编码器语言模型,并发现它也具有少样本学习能力。
多年来,深度学习在与数据绑定的行业中取得了巨大的成功,但当数据量很少时,它往往是不可行的。因此,在数据不足的情况下训练一个表现良好的模型自然被视为一项具有挑战性的任务。
提出了多种处理少样本学习任务的方法,包括利用可访问数据生成更多样本的数据论证,计算特征之间相似性的孪生神经网络
,以及学习多个数据集学习几个例子的元学习
。这些方法似乎是“机械地”使用这些知识的方法。然而,受GPT系列研究的启发,我们认为少样本应该被认为是语言模型的固有属性。
使用提示来让语言模型做出更好的推断似乎更加“人性化”,在大型语料库上的预训练赋予了语言模型较强的语言技能,因此只需要在特定下游任务的少量标记数据中进行微调。自回归语言模型,如GPTs和CPM ,可以通过生成后续文本来进行预测,并提供上下文中任务的字面定义,称为提示
。在最近的工作中,他们使用一个精细的构造模板来使语言模型完成完成任务,这有助于语言模型理解特定的任务。这似乎是有效的,但模板的局限性使上述方法不能适应任何任务。然而,偏离这些研究,我们关注语言模型本身的少样本学习能力,并提出了一种任务不可知的方法,称为QA分类。
在本文中,我们通过文本分类进行实验(见图2),因为文本分类是语言模型易于学习的下游任务。因此,做文本分类可以使语言模型更容易显示出少样本的学习能力。
图2 我们使用了(a)多类分类、(b)多元分类、©将多类分类转化为问题回答的方法。
然后,我们采用做问题和回答的想法,可以帮助语言模型更好地利用知识,因为我们给模型提供了更多的信息。因此,我们将多类文本分类转换为问答(QA),这为语言模型提供了先验信息,并将任务转化为一个简单的二元分类。
我们用标签空间Y来微调数据集D上的一个BERT M。M接受一个序列 x i n x_{in} xin的输入,并输出该序列的表示。第一个输出总是[CLS],我们把它作为整个序列的表示,并微调M以最小化交叉熵。我们以M‘作为具有全连接层的M的表示,M的输出为P,它由类和 dim § = |Y|对应的概率组成。
二分类 在二值分类中,我们仅仅在M的预测标签概率 y p r e d i c t y_{predict} ypredict的下面添加了一个带有sigmoid激活函数的全连接层。
p ( y ∣ x i n ) = 1 1 + e x p ( − W ⋅ h [ C L S ] ) . . . . . . . . . . . . . . . . . . . . . . . . ( 1 ) p(y|x_{in})=\frac{1}{1+exp(-W·h_{[CLS]})}........................(1) p(y∣xin)=1+exp(−W⋅h[CLS])1........................(1)
其中, h [ C L S ] h_{[CLS]} h[CLS]是[CLS]的隐藏状态,W是任务特殊矩阵。
在二元分类中, d i m ( P ) = 1 dim(P) = 1 dim(P)=1。所以对于每个序列,M’的输出是一个常数。我们使用一个阈值来确定序列属于哪个类别。所以这个类别是:
f ( x ) = { p o s i t i v e , p≥threshold n e g a t i v e , p<threshold f(x)= \begin{cases} positive,& \text{p≥threshold} \\ negative, & \text{p<threshold} \end{cases} f(x)={positive,negative,p≥thresholdp<threshold
多分类 在多类分类中,输入与二值分类相同。不同的是我们在M的顶部放了一个softmax层,标签y的概率是:
p ( y ∣ x i n ) = s o f t m a x ( W ⋅ h [ C L S ] ) p(y|x_{in})=softmax(W·h_{[CLS]}) p(y∣xin)=softmax(W⋅h[CLS])
其中W是一个特定任务矩阵。我们通过最大化正确标签的概率,共同调整来自BERT和W的参数。
基于QA的分类 结果表明,QA分类是一种二元分类。QA分类和二值分类的区别在于输入 x i n x_{in} xin。在QA分类中,输入的 x i n x_{in} xin为:
x q a − i n = [ C L S ] q u e s t i o n [ S E P ] c o n t e n t [ S E P ] x_{qa-in}=[CLS]question[SEP]content[SEP] xqa−in=[CLS]question[SEP]content[SEP]
我们也将[CLS]作为整个序列的表示,分类的过程与二元分类相同。对于问题,我们尽可能简单地手动构建问题,以避免过多的冗余(例如, For one content, we can ask ‘does this sentence contain anger?”还是“contains anger?’'我们选择了一个字母的)。我们将对每个句子问|Y|问题,并使用一个阈值来确定句子的类别。所以在这种情况下,它可以在一个句子中有多个答案,或者根本没有答案。
我们基于QA分类方法进行了少样本文本分类实验。输入与QA分类相同,唯一的区别是我们如何使用数据(见图3)。
图3 用一个例子说明我们如何少学习
在做少样本学习时:
我们对两个任务(表1)、中国情绪分类任务(OCEMOTION)和英语主题分类任务(AG’s News)进行了系统的研究。
表1:统计两个数据集
我们选择的所有数据集都是单句文本分类任务。我们的目标是基于 x i n x_in xin和 x q a − i n x_{qa−in} xqa−in做出预测。任务范围从情绪分析到主题分类,从汉语到英语。
文本分类 我们将 D t r a i n D_{train} Dtrain和 D t e s t D_{test} Dtest分别作为传统分类的训练集和测试集。我们将每个数据集D分割成一个训练集 D t r a i n D_{train} Dtrain和一个测试集 D t e s t D_{test} Dtest或该数据集已经被分割。为了评价分类器的性能,我们选择了分类器的精度(accuracy)、微精度( micro-precision)、微召回率(micro-recall)、微F1(micro-f1)作为性能指标。并根据 D t e s t D_{test} Dtest计算这些指标,作为分类器的性能。
少样本学习 我们分别采用 D t r a i n ′ D'_{train} Dtrain′序列和 D t e s t ′ D'_{test} Dtest′作为QA分类的训练集和测试集。给给少样本分类器的数据在积极样本(目标标签样本)和消极样本之间具有平衡数据。换句话说,我们给少样本分类器的数据集D训练具有相同数量的正样本和负样本。值得一提的是,数据集D序列中的负样本已经被少样本分类器看到。在测试测试集 D t e s t ′ D'_{test} Dtest′的时候,我们选择 D t e s t D_{test} Dtest中所有与目标相关的样本作为积极(目标-标签)样本,而 D t e s t D_{test} Dtest中其他样本的数量与消极样本相同。同时,我们使用恒数的种子S对负样本进行抽样,确保在评估分类器性能时与 D t e s t D_{test} Dtest是相同的。我们以每个目标标签之间的平均精度作为少样本分类器的性能指标。
一般来说,在我们训练分类器的相同方法的条件下,当语言模型变得更大时,f1分数会更高。这反映了大模型可以学习更多的知识。必须指出的是,OCEMOTION
是一个细粒度
的情感分类数据集,而AG’s News是一个新闻分类数据集。因此OCEMOTION
数据集对于预训练语言模型而言学习相对比较困难。同时,我们可以看到表2,在同一模型中,OCEMOTION
的f1得分低于AG的News
。
表2 多二元分类、多类分类和QA分类的结果(精度、查全率和 f1分数)
通过比较不同的语言模型的尺度,我们可以很容易地发现,较大的模型在相同的情况下具有更好的性能。特别是e OCEMOTION
数据集,从DistilBERT到BERT-base,性能平均提高了9.7%。然而,在AG’s News数据集的f1分数非常接近。因此,增加语言模型的规模可以提高分类器的性能,特别是在较硬的数据集上。
此外,在相同的尺度模型条件下,QA分类的性能接近于AG’s News
数据集中的其他两种方法,而在OCEMOTION
数据集中明显优于其他两种方法。此外,当模型变大时,QA模型的f1分数超过了多模型。关于这一现象,我们认为我们提供的先验知识是有效的,因为QA分类的大部分性能都优于二值分类。我们添加到模型中的问题可以帮助他们更好地理解任务,特别是有利于大规模模型和细粒度的任务。
此外,我们还注意到,在大多数QA分类中,召回率的值都高于精度。我们认为造成这种现象的原因是,先验知识有时会混淆QA模型。我们认为造成这种现象的原因是,先验知识有时会混淆QA模型。
我们收集了每个标签的平均准确性(avg- accuracy),作为少样本学习的指标。在表3中,我们认为当acc-avg在50.00%左右时,语言模型不能工作,因为该任务是一个二进制分类。
表3 少样本学习结果
为了比较学习样本的数量,我们可以看到,随着样本数量的增加,少镜头模型的性能更好。显然,提供的样本越多,语言模型可以学习的知识就越多。然而,随着样本数量的增加,这些模型的性能并不呈线性增长。从0个样本提高到10个样本,性能提高了8.91%,但从50个样本提高到100个样本,仅为2.98%。我们认为这是因为我们训练的语言模型可以很容易地学习一些新东西,但不能掌握它们,所以0到10的增量值大于50到100。根据我们的实验,10个标记样本是训练少镜头分类器的最经济有效的数量。
这个实验称之为稀疏性检验实验,验证模型适用于各种比例的数据集。
为了比较模型的尺度,我们可以看到较大的语言模型有更高的分数。我们在第5.1节中已经提到了这一现象。更大的模型可以更好地利用这些提示。特别是RoBERT-large的少样本分类器在AG的新闻数据集中的平均准确率为84.84%,高于DistilBERT和BERT-base的100少样本分类器的平均准确率。它强化了一个更大的模型可以通过利用额外的提示来更好地理解任务的想法。另一方面,这个值意味着RoBERTa-large的分类器实现了少样本学习。它也赞同了我们的观点,当一个语言模型足够强大时,它将实现少样本学习,甚至是零样本学习。
将多类分类与QA分类进行比较,我们发现QA分类的性能略优于多类分类或与多类分类相当。更奇妙的是,QA方法可以帮助语言模型进行少样本学习。为了弄清楚这里的原因,我们将其与注意机制联系起来。
所以在本节中,我们将注意力的可视化来解释问题的工作。如图4所示,我们从AG’s News数据集中随机抽取一个样本,并根据标签生成4个问题。
图4。基于bert基础的微调QA分类器的注意力可视化。其内容是:“Moore will replace banned world champion Torri Edwards in the Olympic 100 and 200 m races”,后者属于体育级别。
正如我们所见,当我们问“运动是什么吗?”,问题中的“体育”一词会注意到内容中的冠军和比赛(在蓝框中),这是代表某些类别的词。然后这个问题可以帮助[CLS]注意到这些关键字,所以我们使用[CLS],因为内容的表示是合乎逻辑的。但当我们问其他问题时,它似乎不太好,这个问题注意到了其他无关紧要的词。有趣的是,这些问题几乎注意到了单词the和单词和(在绿色方框中),这与分类无关。
图5 一个可视化的例子,(a)一个模特从未见过体育课;(b)一个模特刚刚看到了10个体育班的例子;©和(a)是相同的模型,问“是商人吗?”它已经看到了;(d)的一个模型已经看到了50个可视化类的例子。所有的模型都没有看到这些内容。
在图5中,对比(a)和©,©在绿色盒子中更干净。我们可以注意到,(a)的模型会关注“爱德华兹”、“100”和“200”,当我们问一个已经看到的不同问题时,该模型知道它不需要关注任何事情。bussiness其内容与此无关紧要。因此,©中内容的关注权重接近于0是合乎逻辑的。但在(a)中,语言模型猜测了应该注意的单词。在某种程度上,语言模型可以识别和利用提示符。在(b)和(d)中,显著的差异是在蓝色盒子和紫色盒子中。在紫色框中,我们认为更多的训练样本会导致了注意力的变化,问题对内容的关注较少,而对特殊标记的关注较多[SEP]。这一现象需要进一步讨论。
本文提出了一种基于QA的方法,帮助语言模型进行文本分类,探索语言模型的少镜头学习能力,它简单而有效。该方法使语言模型能够展示使用少样本学习能力,仅使用100个标记数据,平均准确率可达到92.18%,有些甚至实现零样本学习。在未来的工作中,我们将关注语言模型本身的少样本能力以及它存在的原因。