零样本文本分类——低资源场景下文本分类的利器(1)

简介: 零样本文本分类——低资源场景下文本分类的利器

笔者近期在使用一些开源算法解决低资源场景分类时,发现使用一些在modelscope社区上开源的零样本分类模型可以极大提高分类准确率,因此对零样本文本分类模型进行了梳理,希望对大家有所帮助~

模型传送门:

基于自然语言推理的零样本分类模型:StructBERT零样本分类-中文-base

基于文本生成的零样本分类模型:全任务零样本学习-mT5分类增强版-中文-base

为了更直观地体现零样本分类模型在低资源场景下的优势,下面我们先来看一个实际案例。



实际案例——工单分类

一些在线平台每天都会产生大量的问题工单,产研同学需要对这些工单进行归类和分析,进而定位问题、了解变化趋势并优化产品。由于产品的变化较快,因此产品的分类体系需要灵活调整,人工打标的方式无法满足日常的工单分析需求,费时费力。基于modelscope开源社区开放的领先算法模型,我们针对工单分类的需求,研发了分类算法,旨在帮助产研团队针对工单内容实现自动化归类,进而提升工单处理和产品迭代的效率。

在解决工单分类任务中,遇到的主要难点有:

  • 业务方初期可投入的人力资源有限
  • 有效的标注数据很少,存在平均每个类别只有不到10个样本的情况。
  • 常规的分类算法得到的模型效果非常之差,难以满足基本使用需求。

针对上述难点,我们选择了采用零样本分类模型进行算法的构建。通过零样本文本分类模型高质量建模工单文本与各个标签文本的相关性,再将预测结果进行整合排序,最终得到与工单文本最相关的标签。实验结果如下表所示,在3个低资源的工单分类任务上,该模型相较于普通分类模型均取得了明显的提升,其中:

  • 平台1:整体准确率从0.11提升至0.33,一级类别准确率从0.22提升至0.47,二级类别准确率从0.19提升至0.46
  • 平台2:整体准确率从0.13提升至0.64,一级类别准确率从0.46提升至0.70
  • 平台3:整体准确率从0.15提升至0.69,一级类别准确率从0.53提升至0.75

业务方

共性数据问题

分类模型(StructBERT-base)

零样本分类模型

StructBERT零样本分类-中文-base

云原生-ARMS

样本数量少,类别多,长尾分布占大多数,大量只有少于10个样本的类。

样本数:827

类别数:3层层级分类,铺平131类

效果: 整体acc 0.11,一级acc:0.22,二级acc:0.19

样本数:827

类别数:3层层级分类,铺平131类

效果: 整体acc: 0.33,一级acc: 0.47,二级acc: 0.46

计算平台-dataworks

样本数:612

类别数:2级层级分类,铺平64类

效果: 整体acc 0.13,一级acc 0.46

样本数:612

类别数:2层层级分类,铺平64类

效果: 整体acc: 0.64,一级acc: 0.70

计算平台-maxcompute

样本数:366

类别数:2级层级分类,铺平39类

效果: 整体acc 0.15,一级acc 0.53

样本数:366

类别数:2层层级分类,铺平39类

效果: 整体acc: 0.69,一级acc: 0.75

表1 零样本分类模型在实际业务中的表现

前言

零样本学习(Zero-Shot Learning)是一种机器学习范式,它使用在训练阶段从未学习过的样本和类别标签来测试模型。因此,零样本学习的模型应当具备一定的对从未学习过的分类任务直接进行预测的能力。机器学习(Machine Learning)已经在各个领域取得了广泛的应用,而其中分类是最基础的机器学习任务,它需要分析未分类数据,并确定如何将其归属到已知类别中。通常分类任务需要大量已知类别的数据来构建和训练模型,然而获取任何特定任务、特定领域的已标注数据都是一个非常昂贵且耗时的过程,这使得零样本学习最近变得越来越流行。

文本分类(Text Classification)是自然语言处理(NLP)领域中的一种任务,它指的是将文本数据(如新闻文章、电子邮件或社交媒体帖子)自动分配到一个或多个预定义的类别(如政治、体育、娱乐等)中。这可以通过训练机器学习模型来实现,该模型可以根据文本的词汇、语法等特征来预测它的类别。

零样本文本分类(Zero-Shot Text Classification)是一种文本分类方法,其优势在于它不需要任何预先标记的训练样本来分类文本。 这意味着,即使在缺乏预先标记的数据的情况下,也可以对文本进行分类。传统的文本分类方法需要大量预先标记的训练样本来训练模型,但在实际应用中,很难收集到足够的预先标记的样本。 因此,零样本文本分类可以作为一种替代方案,以便在缺乏预先标记的数据的情况下进行文本分类。图1展示了零样本分类的测试效果,从图中不难发现,零样本分类模型可以支持标签的自定义,从而使得可以对任何文本分类任务进行推理。image.png

图1 零样本分类模型用例测试

常见的零样本分类模型主要可以分为以下两类。

  • 基于自然语言推理的模型
  • 模型特点:在训练阶段仅使用NLI相关数据集进行训练,在进行零样本分类时,需要将样本转换成nli样本形式。
  • 模型优势:进行推理时,在各种分类任务上的表现比较均衡,受到训练数据的影响较小,分类结果稳定。
  • 模型缺点:每次推理时都需要推理n个样本(其中n为标签数量),模型推理时间随标签数量线性增长。
  • 基于文本生成的模型
  • 模型特点:需要设计prompt来结合文本和标签,让模型生成文本对应的标签。
  • 模型优势:推理效率较高,每次推理只需要推理1个样本。
  • 模型缺点:由于是生成模型,生成的结果可能不稳定,即生成的文本不存在与候选标签中。同时该模型在训练时使用了大量文本分类数据集进行训练,因此在不同分类任务上表现出的性能可能存在较大差异。

下面我们将对这两个模型分别进行介绍。



基于自然语言推理的零样本文本分类模型

该系列模型基于StructBERT[1]在xnli_zh数据集(将英文数据集重新翻译得到的中文数据集)上面进行训练得到。

自然语言推理(Natural Language Inference, NLI)是指利用自然语言的语法和语义知识来判断一个给定的文本片段(如两个句子)的关系,例如它们是否是矛盾、是否相关或是否是一个是另一个的后续。而使用预训练的自然语言推理模型来实现零样本分类的方式,如图2所示,是将要分类的文本设置为自然语言推理的前提,然后使用每个标签构建一个假设,接着对每个假设进行推理得到文本所属的标签,即去判断给定文本片段与给定的标签之间的关系。

image.png

图2 基于NLI的零样本分类模型图

相关文章
|
分布式计算 JavaScript 前端开发
超级实用!详解Node.js中的lodash模块和async模块
超级实用!详解Node.js中的lodash模块和async模块
|
11月前
|
人工智能 API 语音技术
WhisperChain:开源 AI 实时语音转文字工具!自动消噪优化文本,效率翻倍
WhisperChain 是一款基于 Whisper.cpp 和 LangChain 的开源语音识别工具,能够实时将语音转换为文本,并自动清理和优化文本内容,适用于会议记录、写作辅助等多种场景。
2950 2
WhisperChain:开源 AI 实时语音转文字工具!自动消噪优化文本,效率翻倍
|
数据采集 机器学习/深度学习 自然语言处理
ModelScope模型库体验之中文StructBERT系列预训练语言模型
StructBERT在BERT的基础上提出改进优化,通过在句子级别和词级别引入两个新的目标函数,打乱句子/词的顺序并使模型对其进行还原的方式,能让机器更好地掌握人类语法,加深对自然语言的理解,使得模型学习到更强的语言结构信息。
48095 0
ModelScope模型库体验之中文StructBERT系列预训练语言模型
|
机器学习/深度学习 存储 人工智能
AI实践:智能工单系统的技术逻辑与应用
智能工单系统是企业服务管理的核心工具,通过多渠道接入、自然语言处理等技术,实现工单自动生成、分类和分配。它优化了客户服务流程,提高了效率与透明度,减少了运营成本,提升了客户满意度。系统还依托知识库和机器学习,持续改进处理策略,助力企业在竞争中脱颖而出。
1308 5
|
人工智能 自然语言处理 搜索推荐
浪潮信息 Yuan-embedding-1.0 模型登顶MTEB榜单第一名
浪潮信息Yuan-Embedding-1.0模型在C-MTEB评测基准中荣获Retrieval任务第一名,推动中文语义向量技术发展
2266 7
浪潮信息 Yuan-embedding-1.0 模型登顶MTEB榜单第一名
|
人工智能 语音技术
Bert-vits2新版本V2.1英文模型本地训练以及中英文混合推理(mix)
中英文混合输出是文本转语音(TTS)项目中很常见的需求场景,尤其在技术文章或者技术视频领域里,其中文文本中一定会夹杂着海量的英文单词,我们当然不希望AI口播只会念中文,Bert-vits2老版本(2.0以下版本)并不支持英文训练和推理,但更新了底模之后,V2.0以上版本支持了中英文混合推理(mix)模式。
Bert-vits2新版本V2.1英文模型本地训练以及中英文混合推理(mix)
|
人工智能 并行计算 监控
深入剖析 Qwen2.5 - 32B 模型在 VLLM 上的单机三卡部署与运行
本文深入探讨了Qwen2.5 - 32B模型在VLLM框架上的部署过程,从模型下载、启动命令、资源占用分析到GPU资源分配及CUDA图应用,详述了大模型运行的挑战与优化策略,强调了硬件资源规划与技术调优的重要性。
7907 2
|
自然语言处理 机器人 Python
ChatGPT使用学习:ChatPaper安装到测试详细教程(一文包会)
ChatPaper是一个基于文本生成技术的智能研究论文工具,能够根据用户输入进行智能回复和互动。它支持快速下载、阅读论文,并通过分析论文的关键信息帮助用户判断是否需要深入了解。用户可以通过命令行或网页界面操作,进行论文搜索、下载、总结等。
414 1
ChatGPT使用学习:ChatPaper安装到测试详细教程(一文包会)
|
机器学习/深度学习 缓存 自然语言处理
世界那么大,我想去看看——探索ModelScope之零样本分类
世界那么大,我想去看看。这句话,是什么类别? 一个有多年算法工作经验的萌新将在本文中跟大家一起探索ModelScope的零样本分类模型。 文章主要包含实验环境准备、模型测试、原理分析等内容。
47434 5
世界那么大,我想去看看——探索ModelScope之零样本分类
【下载问题】下载的文件内容显示[object],[object]
摘要:解决下载文件显示[object],[object]的问题,关键在于文件内容处理。原代码`const temp = [res.data]`未对接口返回的数据进行字符串转换。修改为`const temp = [JSON.stringify(res.data)]`,将数据转化为字符串格式,从而正确显示文件内容。
1230 3

热门文章

最新文章