论文标题:

Description Based Text Classification with Reinforcement Learning

论文作者:

Duo Chai, Wei Wu, Qinghong Han, Fei Wu and Jiwei Li

论文链接:

https://arxiv.org/pdf/2002.03067.pdf

收录情况:

ICML 2020


一般来说,模型越深效果越好。但是同时,模型越深也更难训练——即无法收敛到训练集上一个好的值。

今天,我们给大家介绍近期香侬科技被ICML2020接受的的一篇文章基于类别描述的文本分类模型

该模型的主要思想是:通过显式地引入对分类标签的描述提高文本分类的效果。我们提出了三种方法引入这种描述:

  • 模板法——对每个标签静态地指定一个描述;

  • 抽取法——对每个标签在输入文本中抽取一段文字作为描述;

  • 生成法——动态地根据输入的文本为每个标签生成一段描述。

使用这种技术,我们能够在单标签文本分类、多标签文本分类和多角度情感分析任务的10个数据集上取得显著更好的效果

文本分类中的标签

文本分类是自然语言处理中非常重要的一项任务,它要求模型判断输入文本的类别,如情感、评分、类型等。

从分类数量上说,分为单标签分类和多标签分类,前者指每个文本只有一个标签类,后者指每个文本可以有多个标签类。

从任务类型讲,可以分为文档分类、情感分析等,前者指对整个输入文本分类(可以是单标签或多标签),后者指对文本的多种情感判断类别。

经典的文本分类方法是把待分类标签视为简单的下标。如当前的输入文本是“这个电影真好看”,需要分类的标签是{1:积极,0:消极},模型接受文本之后,输出的是0或者1,代表分类结果。

显然,用这种分类方法,模型完全无视了“积极”和“消极”的语义,对更复杂标签,这无疑是一种“语义浪费”。我们想要把标签提供的信息利用起来。

鉴于此,我们提出在输入文本的同时,也输入对标签本身的描述,比如牛津词典对“positive”的定义(描述)是:“full of hope and confidence, or giving cause for hope and confidence”。

把这个描述和原始文本拼接在一起,送入模型,模型输出一个概率值,代表当前文本具有该标签类的可能性。如此,我们就能充分利用标签本身提供的语义。

但是如果待分类文本的标签数很多(甚至上百个标签),一个一个为他们人工构造描述也是件麻烦的事情,况且人工构造的也不一定“准确”。

为此,我们期望模型能动态地、根据输入句子的不同自动构造出一个描述来。

因而,我们又提出了两种方法:抽取文本中的一段作为描述,和使用一个语言模型从头生成一段描述。这两种方法都可以使用强化学习得以实现。

这三种方法的一个例子如下。对当前输入的文本,我们现在要去判断它是否属于“car”这个标签,而“car”的模板描述、抽取描述和生成描述分别如图所示。

这种基于标签描述的方法有以下好处:

  • 融入了标签语义,而不仅仅是简单的下标,使得模型更好地进行分类;

  • 可以很轻松地进行多分类,只需要一个一个判断标签即可;

  • 得到标签描述具有一定的灵活性,不限于人工定义的标签描述。

用这种方法,我们能够在单标签分类数据集AGNews, 20news, DBPedia, Yahoo, YelpP,IMDB,多标签分类数据集Reuters,AAPD,和多方面情感分析数据集BeerAdvocate,TripAdvisor取得显著更好的效果。

使用强化学习来学习标签描述

下面的问题是:对每个标签和每个输入,如何得到该标签的描述。模板法(Tem.)不必多说,我们简单使用维基百科的定义作为模板。

由于我们没有显式提供每个标签应该抽取或生成怎样的描述,我们自然想到使用强化学习。

 | 抽取式模型(Ext.)

首先我们来看如何从文本中抽取一段作为标签描述。设输入文本是,对每个标签,我们要构造一个描述,这个描述是输入文本中的一段,记为。这就等价于选取一个初始下标和一个终止下标,可以参数化为:

就是对标签,从文本中选取下标作为起始下标的概率;而就是选取为终止下标的概率。这样,把这两个相乘,就得到了选取整个文本段作为描述的概率:

在选取了描述之后,就把描述和文本拼接起来一起送入模型,让模型输出一个概率值,判断文本是否具有该标签,这就可以作为强化学习中的奖励(Reward),记为。如此一来,我们就可以用REINFORCE算法去更新参数:

 | 生成式模型(Abs.)

同样地,生成式模型使用一个序列到序列的模型去从头生成描述,而不是从输入文本中选取下标。

具体地说,对每个标签,我们使用一个公有的序列到序列模型生成它的描述:

对不同的,我们在编码端和解码端的每一步额外添加一个标签表示向量

和抽取式模型不同,生成式模型每次的 行为(Action) 是从词表中选取一个词,而词表往往非常大,这就可能导致方差变大,使得训练不稳定。

为此,我们使用REGS——Reward for Every Generation Step去缓解这个问题。

在REINFORCE里,一个句子的reward在生成结束之后才能得到,换句话说,对解码端的每一步,它们收到的reward是相同的。

而在REGS里,我们使用一个判别器,对每一步赋予不同的reward:

序列到序列模型使用标签模板初始化(即将文本作为输入,将标签模板作为输出)。

实验

为了验证该方法的有效性,我们在三类文本分类任务上实验:单标签分类、多标签分类和多方面情感分析。

  • 单标签分类指每个输入文本只有一个标签。数据集有AGNews, 20newsgroups, DBPedia, YahooAnswers, YelpReviewPolarity, IMDB。

  • 多标签分类指每个输入文本可能有多个标签。数据集有Reuters, AAPD。

  • 多方面情感分析指输入文本可能涉及多个方面,每个方面需要分类各自的标签。数据集有BeerAdvocate和TripAdvisor。

我们的基线模型主要有LSTM和BERT-base。我们同样使用BERT-base作为主干模型。

下表是在单标签分类任务上的结果(错误率,越小越好)。首先可以看到,基于标签描述的方法都优于BERT-base;其次,抽取式和生成式的描述生成方法平均优于基于模板的方法。

下表是多标签分类任务上的结果,基于标签描述的方法具有显著更小的F1错误率。

然后是多方面情感分析任务的结果。和BERT-base相比,我们的方法可以取得大幅度的提高,这是因为我们能从若干的情感方面中针对每个不同的方面,从文本中提取关于它的最重要信息,而不是一次性考虑所有的方面。

接下来看看如果我们把模板法中的模板替换会有怎样的变化。

具体地,我们尝试了四种不同的模板:下标(类似最传统的方法,把每个标签视为一个字符串似的数字,如"one","two")、关键词(把每个标签描述为单个关键词)、关键词拓展(把每个标签用多个近义的关键词描述)和维基百科定义(本文的方法)。

结果如下表所示:

显然,下标模板和传统方法没有区别,而其他方法都有所提升;多个关键词好于单个关键词,而更完备的描述(如维基百科定义)会提供更丰富的标签语义信息,故得到最好的效果。

下面再来看看文本长度、训练集大小和收敛速度的影响。如下图所示,我们不难得到以下结论:

  • 随着文本长度的增加,原始方法(BERT)的效果迅速下降,而使用标签描述的方法由于标签本身具有的语义,模型的效果比BERT显著更好;

  • 训练集越小,各模型效果越差,但相比BERT,基于标签描述的方法具有更好的小样本表现,这说明基于标签描述的方法在小样本上有更好的泛化能力;

  • 模板法由于提供的是静态的标签描述,故模型能够快速收敛,相比之下,生成式模型需要去学习如何生成标签描述,故开始训练时效果并不好,但随着训练的进行,它最终也能够收敛并取得更好的结果。

最后来探究不同初始化方法的影响。众所周知,强化学习难以训练和收敛,所以一个号的初始化可以极大加快收敛。

我们在Yahoo和AAPD两个数据集上,对抽取式和生成式模型进行不同的初始化,然后用强化学习训练。

对抽取式(Ext),我们探究三种初始化方法:dummy Init是以选择dummy token的方法初始化模型,ROUGE-L Init是选择和模板描述相比得到最大的ROUGE-L得分的文段,random Init是随机初始化。

对生成式(Abs),template Init是用模板作为要生成的描述去初始化模型。结果如下图所示。

可以看到,几种初始化方法对抽取式而言差别不是很大,即使是随机初始化也可以实现可以接受的准确率,但是对生成式而言,随机初始化无法使模型收敛。

这是因为抽取式模型的搜索空间更小,因为它只需要选择文段,而生成式模型的搜索空间是所有可能的句子,随机初始化无法导致收敛。

小结

我们提出了基于标签描述的文本分类方法,该方法为每个标签提供一段文本描述,或是由模板得到,或是文本中的一段,或者是动态生成的一个句子。

我们使用强化学习训练标签描述生成模型,然后把生成的标签和文本拼接在一起,让模型判断文本是否具有该标签。

实验表明,这种方法能够在单标签分类、多标签分类和多方面情感分析任务上取得显著的效果,尤其是对复杂的标签(如多方面情感分析)体系,该方法具有突出的优势。

实际上,这种方法可以看作是一种广义的问答(QA),Question就是标签描述,Document就是输入文本,Answer就是输出概率。从这个角度讲,其他许多任务都可以统一到这种框架下。

????

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

ICML 2020 | 基于类别描述的文本分类模型相关推荐

  1. 文本基线怎样去掉_ICML 2020 | 基于类别描述的文本分类模型

    论文标题: Description Based Text Classification with Reinforcement Learning 论文作者: Duo Chai, Wei Wu, Qing ...

  2. 综述:基于深度学习的文本分类 --《Deep Learning Based Text Classification: A Comprehensive Review》总结(一)

    文章目录 综述:基于深度学习的文本分类 <Deep Learning Based Text Classification: A Comprehensive Review>论文总结(一) 总 ...

  3. Datawhale NLP入门:Task5 基于深度学习的文本分类2

    Task5 基于深度学习的文本分类2 在上一章节,我们通过FastText快速实现了基于深度学习的文本分类模型,但是这个模型并不是最优的.在本章我们将继续深入. 基于深度学习的文本分类 本章将继续学习 ...

  4. Task5 基于深度学习的文本分类2

    Task5 基于深度学习的文本分类2 在上一章节,我们通过FastText快速实现了基于深度学习的文本分类模型,但是这个模型并不是最优的.在本章我们将继续深入. 基于深度学习的文本分类 本章将继续学习 ...

  5. Datawhale零基础入门NLP赛事 - Task5 基于深度学习的文本分类2

    在上一章节,我们通过FastText快速实现了基于深度学习的文本分类模型,但是这个模型并不是最优的.在本章我们将继续深入. 基于深度学习的文本分类 本章将继续学习基于深度学习的文本分类. 学习目标 学 ...

  6. 新闻文本分类--任务5 基于深度学习的文本分类2

    Task5 基于深度学习的文本分类2 在上一章节,我们通过FastText快速实现了基于深度学习的文本分类模型,但是这个模型并不是最优的.在本章我们将继续深入. 基于深度学习的文本分类 本章将继续学习 ...

  7. 基于Prompt的MLM文本分类

    简介 常规NLP做文本分类时常用Transfer Learning的方式,在预训练bert上加一个分类层,哪个输出节点概率最大则划分到哪一类别.而基于Prompt的MLM文本分类是将文本分类任务转化为 ...

  8. PaddleNLP创新思路:基于检索实现层次化文本分类

    基于检索的多层次文本分类 1.项目说明 以前的分类任务中,标签信息作为无实际意义,独立存在的one-hot编码形式存在,这种做法会潜在的丢失标签的语义信息,本方案把文本分类任务中的标签信息转换成含有语 ...

  9. 基于Keras搭建CNN、TextCNN文本分类模型

    基于Keras搭建CNN.TextCNN文本分类模型 一.CNN 1.1 数据读取分词 1.2.数据编码 1.3 数据序列标准化 1.4 构建模型 1.5 模型验证 二.TextCNN文本分类 2.1 ...

最新文章

  1. java axis2 开发_基于Apache axis2开发Java Web服务
  2. 前端开发学习笔记(二)
  3. 踩坑 :vue2 ajax异步请求数据,层数太多,页面无法渲染
  4. Java学习总结(二十)——JSON解析:官方解析,GSON解析,FastJSON解析,
  5. [python] LDA处理文档主题分布代码入门笔记
  6. c语言自动按键脚本,C语言键盘控制走迷宫小游戏
  7. 手机支付:电信运营商会被边缘化吗?!
  8. 多元线性回归模型-数学建模类-matlab详解
  9. NVIDIA Control Panel 闪退(英伟达控制面板闪退)
  10. .NET简谈分层架构思想(彻底分离每个层)
  11. 优秀软件测试工程师必读书籍推荐
  12. 精品餐饮业奢华西餐专业PPT模板
  13. 0926 - 微商的动力
  14. 关于IOS由于Dropbox被封,https请求不好用的解决办法
  15. 获取windows硬件、软件信息的方法
  16. 计算机一级office软件,计算机一级office
  17. 交通安全评价方法简介
  18. 渗压计工作原理及基准值确定方法
  19. 干货!TPAUC指标的end-to-end 优化方法
  20. 【软考网络管理员】2023年软考网管初级常见知识考点(2)- 数据通信技术

热门文章

  1. python顺序结构实验设计_实验二 顺序结构程序设计(验证性实验)
  2. jquery实现checkbox的单选和全选
  3. 使用java 自带的webservice
  4. 一位小小码蚁工作2年多感想
  5. TypeScript 入门
  6. 判定一个点是否在三角形内
  7. Android应用开发提高系列(4)——Android动态加载(上)——加载未安装APK中的类...
  8. 认识并测量Typed DataSet
  9. java 动态规划视频_157-动态规划算法解决背包问题1
  10. python pipeline框架_介绍Python的Django框架中的静态资源管理器django-pipeline