不讲武德,只用标签名就能做文本分类

文 | 谁动了我的炼丹炉
编 | 兔子酱

今天给大家介绍一篇微软研究院在EMNLP2020上发表的论文,主题是弱监督文本分类。看到标题的你可能会和我刚开始一样震惊,只是知道标签名怎么给文本分类呢?是的,虽然听起来不可思议,但看完下面的解读你会发现论文的思路是如此简单和精妙。

论文题目:
Text Classification Using Label Names Only: A Language Model Self-Training Approach

论文链接:
https://arxiv.org/pdf/2010.07245

Github:
https://github.com/yumeng5/LOTClass

Arxiv访问慢的小伙伴也可以在 【夕小瑶的卖萌屋】订阅号后台回复关键词 【0120】 下载论文PDF~

方法

首先,概括一下这篇论文的核心思想,简单来说,就是先通过人的先验知识来为每个类别设定几个代表性的关键词,也就是论文中说的Label Names,你没看错,只需要知道有哪些类别和每个类别有哪些关键词,而不需要知道每条样本的标签!!然后通过基于预训练模型的方法来筛选掉一些低质量的语料,用剩余的精挑细选的语料来支撑后面的语言模型任务;最后通过自训练的方法充分利用大量不含关键词的样本,提高模型性能。下面我们再详细介绍这种方法的各个步骤。

设定关键词

事先给每一个类别选一些你认为对目标类别重要的一些代表性的关键词。比如通过文本判断描述的是什么动物,对于目标类别“鼠”,我们可以提出一系列关键词,“耗子”、“老鼠”。通过关键词匹配,我们可能会得到下面的语料。(1) 老鼠是哺乳纲、啮齿目的动物。(2) 耗子的体型较小,体型小,繁殖快。(3) 年轻人耗子尾汁。这一步在论文中并没有特别强调,但其实这是至关重要的一步,因为正是这一步为后面提供了一批粗糙的数据。

筛选正确的样本

可以看到,经过关键词匹配的样本中可能包含大量的错误样本,比如上面的(3),那怎么过滤掉这种样本呢?作者提出了一种方法,流程如下:首先创建一个类别词库,即根据每一个类别的类别名选出该类别的关键词表。建立类别词库要用到预训练语言模型BERT,利用关键词位置的上下文embedding向量预测整个词库各个单词的概率分布。

对于(2)中关键词“耗子”,可能排在前面的是“耗子”、“鼠科”、“老鼠”。但对于(3)中关键词“耗子”,排在前面的就可能是“武德”、“大力士”、“大E”。

很显然,(3)的目标类别就不是“鼠”,但这种词也是少数,毕竟我们在选关键词的时候肯定会选择能代表目标类别的词。如果文本中出现类别名,利于预训练模型的通用知识预测该类别名位置的可能出现的词,选出概率最高的top50的词作为候选词,然后选择频次排名前100的词来组成该类别的关键词库(注意这其中不能有停止词,也不能有同时属于多个类别的词)。

构建好了类别词库之后,我们就能用它来筛选掉一些含关键词的错误样本,做法也很简单。如图所示,对于样本中某个关键词,将其上下文embedding向量传进MLM head,得到预测出来的单词分布,如果top50里有20个以上的单词出现在类别词库中,就算是正确样本(这里的超参可以根据酌情调整,来控制约束力度)。

我们对(3)使用这种方法,发现top50的关联词里一个出现在类别词库的词都没有,因此(3)不是属于目标类别的样本;文中把能指代目标类别含义的关键词称为类别提示词(category-indicative)

Masked Category Prediction

通过上一步,我们已经得到了一批精挑细选的带类别提示词的样本,如何利用这些样本呢?本文提出了一个MCP任务用于 fine tuning 我们的模型。

如图所示,这里跟前面预测单词分布一样,将类别提示词的上下文embedding向量传进MCP head(全连接+softmax),来预测类别提示词的目标类别。注意,这里需要先Mask掉类别提示词然后进行预测。为什么这里需要Mask但前面却不用呢?道理很简单。如果不Mask掉类别提示词那么任务就太简单了,而我们希望模型能学习到更多的上下文信息。前面在构建类别词库的时候不需要Mask,是因为那只是一个预测过程,只用关注预测结果的正确性。

自训练

我们很容易能发现,被关键词匹配到的样本毕竟还是少数,大量无关键词的样本也不能就这样浪费啊。因此作者还使用自训练的方法在无关键词样本上训练,自训练的目标函数可以用KL散度来表示。

K代表类别数量,这里的q是类别概率的目标分布,p是预测分布。q的取值有两种选择:(1) Hard Labeling:概率最大的类别取1,其他为0;(2) Soft Labeling :

实验下来(2)的效果更好。由于自训练是通过[CLS]的embedding向量来进行预测的,因此它不仅让大量的无关键词数据得到利用,还弥补了MCP任务没有用到[CLS]进行训练的短板。

实验结果

从表中我们可以看到,本文提出的方法在四个数据集上相比其他弱监督方法有很大的提升,并且自训练的作用看来也是非常显著,比不使用自训练提升了约5个点。并且论文的第5节还提到,所用的方法还有进一步提升的手段。包括使用更先进的预训练模型,为每个类别设置更多关键词(文中每个类别对应3个关键词),以及使用数据增强。

思考和小结

看完上面的文字,明白了作者提出的方法是属于弱监督学习中的不准确监督学习,使用BERT预训练模型构建类别词库的方法来找出错误样本。同时还用到了自训练的方法利用无标注样本,让模型的性能得到进一步提升。整套流程还是很系统的,有参考的价值。

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

 

[1]Y Meng,Y Zhang,J Huang,C Xiong,J Han. 2020. Text Classification Using Label Names Only: A Language Model Self-Training Approach. In Proceedings of EMNLP.

[2]Junyuan Xie, Ross B. Girshick, and Ali Farhadi. 2016. Unsupervised deep embedding for clustering analysis. In ICML.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android官方开发文档Training系列课程中文版:分享简单数据之发送简单数据给其它APP

原文地址:http://android.xsoftlab.net/training/building-content-sharing.html 引言 Android应用程序有一项伟大的事情就是它们有可以与其它应用程序交流及整合。为什么不重新使用已经存在于其它APP中的非核心功能呢? 这节课覆盖了一些共同的方式&a…

美团点评技术年货:一本覆盖各技术领域、1200+页的电子书

春节已近,年味渐浓。 又到了我们献上技术年货的时候。 不久前,我们已经给大家分享了技术沙龙大套餐,汇集了过去一年我们线上线下技术沙龙99位讲师,85个演讲,70小时分享。 今天出场的,同样重磅——技术博客2…

论文浅尝 | 基于文本关联的知识图谱的无监督嵌入增强

来源:IJCAI2019论文链接: https://www.ijcai.org/proceedings/2019/0725.pdf概述知识图谱嵌入是从多关系数据中提取数据的工具,最近的嵌入模型对从现有数据库中推断新事实具有很高的效率。然而,这种精确结构的数据通常在数量和范围…

ICLR2021 Oral |9行代码提高少样本学习泛化能力

文 | 杨朔知乎本文已获作者授权,禁止二次转载介绍一篇我们刚刚发表在ICLR2021 Oral上的一篇少样本学习工作,简单有效。题目:Free Lunch for Few-shot Learning: Distribution Calibration链接:https://openreview.net/forum?idJW…

Android官方开发文档Training系列课程中文版:分享简单数据之从其它APP接收简单数据

原文地址:http://android.xsoftlab.net/training/sharing/receive.html 正如你的程序可以发送数据给其它程序,那么你也可以轻松的接收数据。想象一下用户如何与你的程序交互,以及你想从其它应用程序接收的数据类型。举个例子,一个…

腾讯-视频打标签算法探讨

腾讯-视频打标签算法探讨:https://cloud.tencent.com/developer/article/1191746

LeetCode 106. 已知中序后序 求二叉树

文章目录1. 题目2. 解题2.1 递归2.2 循环1. 题目 类似题目LeetCode 105. 已知前序&中序 求二叉树 2. 解题 2.1 递归 递归法&#xff0c;后序最后一个是根节点 class Solution { public:TreeNode* buildTree(vector<int>& inorder, vector<int>& p…

React Native工程中TSLint静态检查工具的探索之路

背景 建立的代码规范没人遵守&#xff0c;项目中遍地风格迥异的代码&#xff0c;你会不会抓狂&#xff1f; 通过测试用例的程序还会出现Bug&#xff0c;而原因仅仅是自己犯下的低级错误&#xff0c;你会不会抓狂&#xff1f; 某种代码写法存在问题导致崩溃时&#xff0c;只能全…

做一个好的搜索引擎有多难

文&#xff5c;见鹿知乎本文已获作者授权&#xff0c;禁止二次转载前言搜索引擎是个极其复杂的系统工程&#xff0c;搜索引擎上并不会大力出奇迹&#xff0c;需要一点点打磨。在搜索引擎上&#xff0c;q-u相关性计算是基础&#xff0c;但仍需要考虑其他很多因素&#xff0c;其中…

Android官方开发文档Training系列课程中文版:分享简单数据之添加简单的分享行为

原文地址&#xff1a;http://android.xsoftlab.net/training/sharing/shareaction.html 从Android4.0开始&#xff0c;使用ActionProvider可以更方便的在ActionBar上实现一个有效的、用户友好的分享按钮。一个ActionProvider一旦依附到了ActionBar的菜单条目上&#xff0c;它会…

开源开放 | OpenKG组织发布第二批并更新近十个新冠知识图谱开放数据集

2020年2月11日&#xff0c;世界卫生组织宣布了新型冠状病毒肺炎官方正式命名为 COVID-19&#xff0c;21日国家卫健委决定与世界卫生组织保持一致&#xff0c;中文名称不变。随着关于新型冠状病毒病毒疫情的不断发展&#xff0c;有关疫情的各类信息也在不断更新。OpenKG 紧随疫情…

事件抽取中的“门面技术”:事件名称生成浅谈

6月10日&#xff0c;“网信中国”微信公众号发布消息称&#xff1a;微博热搜榜、热门话题榜暂停更新一周&#xff0c;这使得很多热榜平台都受到波及&#xff0c;而在吃瓜之余&#xff0c;我们更进一步地思考热点榜单以及热点名称生成背后的技术&#xff0c;并发出两连问&#x…

保障IDC安全:分布式HIDS集群架构设计

背景 近年来&#xff0c;互联网上安全事件频发&#xff0c;企业信息安全越来越受到重视&#xff0c;而IDC服务器安全又是纵深防御体系中的重要一环。保障IDC安全&#xff0c;常用的是基于主机型入侵检测系统Host-based Intrusion Detection System&#xff0c;即HIDS。在HIDS面…

LeetCode 1154. 一年中的第几天

1. 题目 给你一个按 YYYY-MM-DD 格式表示日期的字符串 date&#xff0c;请你计算并返回该日期是当年的第几天。 通常情况下&#xff0c;我们认为 1 月 1 日是每年的第 1 天&#xff0c;1 月 2 日是每年的第 2 天&#xff0c;依此类推。每个月的天数与现行公元纪年法&#xff…

数据有偏差,照样能学对!20年前就有这么强的算法了?

文 | 白鹡鸰给小铁比了个心编 | 小轶背景“每个人都依赖自己的知识和认知&#xff0c;同时又为之束缚&#xff0c;还将此称为现实&#xff1b;但知识和认识是非常暧昧的东西&#xff0c;现实也许不过是镜花水月——人们都是活在偏见之中的&#xff0c;你不这样认为吗&#xff1…

Android官方开发文档Training系列课程中文版:分享文件之配置文件共享

原文地址&#xff1a;http://android.xsoftlab.net/training/secure-file-sharing/index.html 导言 APP经常需要给其它的APP提供一个或多个文件。举个例子&#xff0c;相册APP可能需要提供文件以供编辑&#xff0c;或者一个文件管理的APP可能希望用户在外部存储器中的两个区域…

论文浅尝 | 基于图卷积网络的跨语言图谱实体对齐

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士生&#xff0c;研究兴趣&#xff1a;知识图谱问答本文提出了一种基于图卷积网络的跨语言实体对齐方法&#xff0c;通过设计一种属性 embedding 用于 GCN 的训练&#xff0c;发现GCN能同时学习到特征 embedding 和属性 e…

面向中文自然语言处理的60余类系统开源实践项目与工业探索索引

项目介绍 面向中文自然语言处理的六十余类实践项目及学习索引&#xff0c;涵盖语言资源构建、社会计算、自然语言处理组件、知识图谱、事理图谱、知识抽取、情感分析、深度学习等几个学习主题。包括作者个人简介、学习心得、语言资源、工业落地系统等&#xff0c;是供自然语言处…

Android官方开发文档Training系列课程中文版:分享文件之分享一个文件

原文地址&#xff1a;http://android.xsoftlab.net/training/secure-file-sharing/share-file.html 一旦APP设置通过URI的方式共享文件&#xff0c;你需要响应其它APP请求这些文件的请求。响应这些请求的一种方式是&#xff0c;在服务端APP上提供一个文件选择接口&#xff0c;…

大众点评搜索基于知识图谱的深度学习排序实践

1. 引言 挑战与思路 搜索是大众点评App上用户进行信息查找的最大入口&#xff0c;是连接用户和信息的重要纽带。而用户搜索的方式和场景非常多样&#xff0c;并且由于对接业务种类多&#xff0c;流量差异大&#xff0c;为大众点评搜索&#xff08;下文简称点评搜索&#xff09;…