论文标题:

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. 干货 | 基于贝叶斯推断的分类模型 机器学习你会遇到的“坑”

    本文转载自公众号"读芯术"(ID:AI_Discovery) 本文3153字,建议阅读8分钟. 本文讲解了在学习基于贝叶斯推断的分类模型中,我们需要的准备和方法. 数学准备 概率: ...

  3. r包调用legend函数_R语言实现基于朴素贝叶斯构造分类模型数据可视化

    本文内容原创,未经作者许可禁止转载! 目录 一.前言 二.摘要 三.关键词 四.算法原理 五.经典应用 六.R建模 1.载入相关包(内含彩蛋): 1.1 library包载入 1.2 pacman包载 ...

  4. 基于贝叶斯推断的分类模型 机器学习你会遇到的“坑”

    链接:贝叶斯推断分类 数学准备 概率:事件不确定性程度的量化,概率越大,表示事件发生的可能性越大. 条件概率:P(A|B),在条件B下,发生A的概率. 联合概率:P(A,B),A事件与B事件同时发生的 ...

  5. 基于卷积神经网络的句子分类模型【经典卷积分类附源码链接】

    https://www.toutiao.com/a6680124799831769603/ 基于卷积神经网络的句子分类模型 题目: Convolutional Neural Networks for ...

  6. 基于keras的CNN图片分类模型的搭建以及参数调试

    基于keras的CNN图片分类模型的搭建与调参 更新一下这篇博客,因为最近在CNN调参方面取得了一些进展,顺便做一下总结. 我的项目目标是搭建一个可以分五类的卷积神经网络,然后我找了一些资料看了一些博 ...

  7. 基于重构误差的同构图分类模型

    摘要 目前深度学习方法应用于图分类模型的重点集中在将卷积神经网络迁移到图数据领域,包括重定义卷积层和池化层.卷积操作泛化到图数据上是有效的方法,但无论是卷积还是池化都存在较大的改进空间,尤其是在提取网 ...

  8. 基于MaixHub的小方舟分类模型学习

    基于MaixHub的小方舟分类模型学习 前言 一.材料准备 二.烧录固件 1.固件下载 2.烧录固件 三.制作数据集 1.收集需要训练的目标的照片 2.转换格式 3.照片分类 四.机器码获取 五.模型 ...

  9. rfm模型的matlab实现,基于客户价值的客户分类模型.docx

    基于客户价值的客户分类模型 华中科技大学博士学位论文基于客户价值的客户分类模型研究姓名:刘朝华申请学位级别:博士专业:管理科学与工程指导教师:蔡淑中科技大学博士学位论文摘要随着经济全球化以及网络技术的 ...

最新文章

  1. pip安装库包遇到错误:TypeError: expected str, bytes or os.PathLike object, not int 的解决方法
  2. brew改源无效问题之一
  3. Mac os x下配置nginx + php
  4. c语言中逐个检索字符的库函数,C语言库函数strstr的实现
  5. Java Swing Mysql学生选课系统
  6. windows安装Composer
  7. 【渝粤教育】国家开放大学2018年秋季 0222-21T模拟电子电路 参考试题
  8. 计算机科学研究算法的局限性,计算机科学中若干难解问题的量子算法的分析.pdf...
  9. CF984A Game
  10. STM32 F103 时钟树详解
  11. 用eviews建立sarima模型_计量经济学第10讲(时间序列计量经济学模型:序列相关性)...
  12. mac 安装消息中间件---ActiveMQ
  13. 局域网打印机共享外网
  14. Google+ about Gmail?
  15. 硬盘分区文件系统成raw格式,无法打开访问
  16. 海马玩安卓模拟器-安装流程详解
  17. 什么是计算机内存?它的用途是什么?
  18. ictclas包 java_Java通过JNI调用ICTCLAS中文分词包的方法
  19. 每日写题分享--优先队列
  20. MSP430-流水灯和key

热门文章

  1. 2.4 程序示例--线性决策边界-机器学习笔记-斯坦福吴恩达教授
  2. STM32 电机教程 20 - 基于ST MC Workbench 无感FOC
  3. STM32 基础系列教程 1- CubeMX+GPIO
  4. uboot中的中断macro宏
  5. android的各种*.img 文件
  6. 【发布】温度监测报警器v1.3a稳定版!
  7. 计算机等级考试初级网络工程师,计算机等级网络工程师考试内容
  8. SteamVR追踪技术有多火? 半数开发者来自非游戏行业
  9. 开发常见错误解决(7)连接到SQL Server 2005出错
  10. NHibernate概括