【多标签文本分类】Balancing Methods for Multi-label Text Classification with Long-Tailed Class Distribution

简介: 【多标签文本分类】Balancing Methods for Multi-label Text Classification with Long-Tailed Class Distribution

·阅读摘要:

 本文更像是对多标签文本分类的损失函数的综述,文中提到的几个损失函数(包括为了解决长尾问题的损失函数)都是前人已经提出的。

·参考文献:

 [1] Balancing Methods for Multi-label Text Classification with Long-Tailed Class Distribution

[1] Loss Functions


image.png

image.png

 这种朴素的 BCE 非常容易收到标签不平衡的影响,因为头部样本比较多,可能所有头部样本的损失总和为 100,尾部所有样本的损失加起来都不超过 10。下面,我们介绍三种替代方法解决多标签文本分类中长尾数据的类别不均衡问题。这些平衡方法主要思想是重新加权 BCE,使罕见的样本 - 标签对得到合理的 “关注”

[2] Focal Loss (FL)


image.png

[3] Class-balanced focal loss (CB)


  通过估计有效样本数,CB Loss 进一步重新加权 Focal Loss 以捕捉数据的边际递减效应,减少了头部样本的冗余信息。对于多标签任务,我们首先计算出每种类别的频率image.png,那么对于每个类别来说,都有其平衡项image.png

image.png

image.png

[4] Distribution-balanced loss (DB)


  通过整合再平衡权重以及头部样本容忍正则化(negative tolerant regularization, NTR),Distribution-balanced Loss 首先减少了标签共现的冗余信息(这在多标签分类的情况下是很关键的),然后对 “容易分类的” 样本(头部样本)分配较低的权重

image.png

image.png

image.png

[5] 实验结果


  使用的模型为 SVM,对比不同损失函数的效果

image.png



相关文章
|
机器学习/深度学习 自然语言处理 数据挖掘
【文本分类】Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification
【文本分类】Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification
103 0
【文本分类】Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification
|
2月前
|
JSON JavaScript 前端开发
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
42 0
|
2月前
|
编译器 C语言
c语言中long的作用类型
c语言中long的作用类型
29 0
|
7月前
|
Java
【面试题精讲】Java超过long类型的数据如何表示
【面试题精讲】Java超过long类型的数据如何表示
|
2月前
|
存储
TS 自定义结构Long与number类型相互转换
TS 自定义结构Long与number类型相互转换
|
3月前
|
Oracle 关系型数据库 数据库
Flink Sink to Oracle 存在字段CLOB类型,如何处理错误”ORA-01461: 仅能绑定要插入LONG的LONG值“
做Flink CDC同步数据过程中,目标是Oracle数据库,其中某个字段较大被设置为CLOB类型,其中会遇到异常,”ORA-01461: 仅能绑定要插入LONG的LONG值“
|
4月前
|
存储 前端开发 JavaScript
由Long类型引发的生产事故
由Long类型引发的生产事故
|
4月前
|
缓存
Long包装类型的享元模式注意事项
昨天修复订单接口的bug
30 0
|
4月前
|
存储 自然语言处理 安全
【C++11保姆级教程】空指针(nullptr),long long类型,char16_t和char32_t类型
【C++11保姆级教程】空指针(nullptr),long long类型,char16_t和char32_t类型
【C++11保姆级教程】空指针(nullptr),long long类型,char16_t和char32_t类型
|
5月前
|
JSON 前端开发 Java
JAVA后端向前端传递Long类型数据,导致数据不一致
JAVA后端向前端传递Long类型数据,导致数据不一致
97 0