韩家炜课题组重磅发文:文本分类只需标签名称,不须要任何标注数据! - 知乎

2021年09月15日 阅读数:2
这篇文章主要向大家介绍韩家炜课题组重磅发文:文本分类只需标签名称,不须要任何标注数据! - 知乎,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

做者:JayLou娄杰,本文首发于个人公众号《高能AI》,你们必定要关注哦~git

文本分类的一个大型“真香现场”来了:昨天JayJay的推文《 超强文本半监督MixText》中告诉你们不要浪费没有标注过的数据,但仍是须要标注数据的!但今天介绍的paper,文本分类竟然不须要任何标注数据啦!哇,真香!

当前的文本分类任务须要利用众多标注数据,标注成本是昂贵的。而半监督文本分类虽然减小了对标注数据的依赖,但仍是须要领域专家手动进行标注,特别是在类别数目很大的状况下。github

试想一下,咱们人类是如何对新闻文本进行分类的?其实,咱们不要任何标注样本,只须要利用和分类类别相关的少数单词就能够啦,这些单词也就是咱们常说的关键词。微信

BUT!咱们以前获取分类关键词的方式,大多仍是须要人工标注数据、或者人工积累关键词的;而就算积累了某些关键词,关键词在不一样上下文中也会表明不一样类别。工具

那么,有没有一种方式,能够让文本分类再也不须要任何标注数据呢性能

本文JayJay就介绍一篇来自「伊利诺伊大学香槟分校韩家炜老师课题组」的EMNLP20论文《Text Classification Using Label Names Only: A Language Model Self-Training Approach》。学习

这篇论文的最大亮点就是:不须要任何标注数据,只需利用标签名称就在四个分类数据上得到了近90%的准确率!编码

为此,论文提出一种LOTClass模型,即Label-name-Only Text Classification,LOTClass模型的主要亮点有:url

  1. 不须要任何标注数据,只须要标签名称! 只依赖预训练语言模型(LM),不须要其余依赖!
  2. 提出了类别指示词汇获取方法基于上下文的单词类别预测任务,通过如此训练的LM进一步对未标注语料进行自训练后,能够很好泛化!
  3. 在四个分类数据集上,LOTClass明显优于各弱监督模型,并具备与强半监督和监督模型至关的性能。

论文下载:https://arxiv.org/pdf/2010.07245.pdf spa

代码开源:https://github.com/yumeng5/LOTClass.net

本文的组织结构为:

LOTClass整体流程

LOTClass将BERT做为其backbone模型,其整体实施流程分为如下三个步骤:

  1. 标签名称替换:利用并理解标签名称,经过MLM生成类别词汇;
  2. 类别预测:经过MLM获取类别指示词聚集合,并构建基于上下文的单词类别预测任务,训练LM模型;
  3. 自训练:基于上述LM模型,进一步对未标注语料进行自训练后,以更好泛化!

下面咱们就详细介绍上述过程。

第一步:标签名称替换

在作文本分类的时候,咱们能够根据标签名称联想到与之相关联的其余关键词,这些关键词表明系统类别。固然,这就须要咱们从一个蕴含常识的模型去理解每一个标签的语义。很明显,BERT等预训练模型就是一个首选!

论文采起的方法很直接:对于含标签名称的文本,经过MLM来预测其能够替换的其余词汇。

如上图,展现了AG新闻语料中,体育新闻在不一样的上下文中,标签名称“sports”经过MLM预测出的能够替换「sports」的词汇。

具体地,每个标签名称位置经过MLM预测TOP50最类似的替换词,而后对于每个类别的标签名称(Label Name)根据词频大小、结合停用词共选取TOP-100,最终构建类型词汇表(Category Vocabulary)。

经过上述方式找出了AG新闻语料每个类别-标签名称对应的类别词汇表,如上图所示。

第二步:类别预测

像人类如何进行分类同样,一种直接的方法是:利用上述获得的类型词汇表,而后统计语料中类别词汇出现的次数。但这种方式存在2个缺陷:

  1. 不一样词汇在不一样的上下文中表明不一样意思,不是全部在语料中出现的类型词汇都指示该类型。在第一幅图中,咱们就能够清晰发现:单词「sports」在第2个句子并不表明体育主题。
  2. 类型词汇表的覆盖范围有限:在特定上下文中,某些词汇与类别关键字具备类似的含义,但不包含在类别词汇表中。

为了解决上述缺陷,论文构建了一个新的MCP任务——基于遮蔽的类别预测任务(Masked Category Prediction,MCP),以下图所示:

MCP任务共分为两步:

  1. 获取类别指示词:上述已经提到,类别词汇表中不一样的词汇在不一样上下文会指代不一样类别。论文创建了一种查找词汇指示类别的方法(如上图左边所示):对于当前词汇,首先经过BERT的MLM任务预测当前词汇可替代的TOP50类似词,而后TOP50类似词与每一个类别词汇表进行比对,若是有超过20个词在当前类别词汇表中,则选取当前词汇做为该类别下的「类别指示词」。
  2. 进行遮蔽类别预测:经过上一步,遍历语料中的每个词汇,咱们就可获得类别指示词集合和词汇所对应的标签。对于类别指示词集合中每个单词,咱们将其替换为「MASK」而后对当前位置进行标签分类训练。

值得注意的是:MASK类别指示词进行类别预测相当重要,由于这会迫使模型根据单词上下文来推断类别,而不是简单地记住无上下文的类别关键字。经过MCP任务,BERT将更好编码类别判断信息。

第三步:自训练

论文将经过MCP任务训练好的BERT模型,又对未标注语料进行了自训练。这样作的缘由为:

  • 仍有大规模语料未被MCP任务利用,毕竟不是每个语料样本含有类别指示词。
  • MCP任务进行类别预测不是在「CLS」位置,「CLS」位置更利于编码全局信息并进行分类任务。

论文采起的自训练方式很简单,如上图所示,每50个batch经过软标签方式更新一次标签类别。

LOTClass表现如何?

为了验证LOTClass的效果,论文在4个分类数据集上与监督、半监督和弱监督进行了对比。

对于弱监督方法,则将整个训练集做为无标注数据;对于半监督方法,每一个类别选举10个样本做为标注数据;对于监督方法,则所有训练集就是标注数据。

如上图所示,没有自训练的LOTClass方法就超过了一众弱监督方法,而利用自训练方法后LOTClass甚至在AG-News上能够与半监督学习的SOTA——谷歌提出的UDA相媲美了,与有监督的char-CNN方法也相差很少啦!自训练self-trainng为什么如此强大?咱们将在接下来的推文中会进一步介绍。

也许你还会问:LOTClass至关于使用多少标注数据呢

如上图,论文给出了答案,那就是:LOTClass效果至关于 每一个类别使用48个标注文档的有监督BERT模型

总结与展望:利用标签名称,真香!

首先对本文总结一下:本文提出的LOTClass模型仅仅利用标签名称,无需任务标注数据!在四个分类数据上得到了近90%的准确率,与相关半监督、有监督方法相媲美!LOTClass模型整体实施流程分三个步骤:标签名称替换MASK类别预测自训练

本文提出的LOTClass模型只是基于BERT,并无采起更NB的LM模型,每一个类别最多使用3个单词做为标签名称,没有依赖其余工具(如回译方式)。咱们能够预测:随着LM模型的升级,数据加强技术的使用,指标性能会更好!

利用标签名称,咱们是否是还能够畅想一些“真香现场”呢?例如:

  • 应用于NER任务:发现实体类别下的更多指示词,如「PERSON」类别;嗯嗯,再好好想象怎么把那套MCP任务嵌入到NER任务中吧。
  • 与半监督学习更好协做:1)没有标注数据时,能够经过LOTClass构建初始标注数据再进行半监督流程;2)将MCP任务设为半监督任务的辅助任务。

JayJay不说再见,欢迎关注个人公众号《高能AI》,那里是首发哦~(图片不全,可直接到微信搜一搜高能AI)