恒源云(GPUSHARE)_长尾分布的多标签文本分类平衡方法(论文学习笔记)

文章来源 | 恒源云社区

原文地址 | https://bbs.gpushare.com/topic/709/%E9%95%BF%E5%B0%BE%E5%88%86%E5%B8%83%E7%9A%84%E5%A4%9A%E6%A0%87%E7%AD%BE%E6%96%87%E6%9C%AC%E5%88%86%E7%B1%BB%E5%B9%B3%E8%A1%A1%E6%96%B9%E6%B3%95?_=1637562252462

原文作者 | Mathor


长尾分布各位肯定并不陌生,指的是少数几个类别却有大量样本,而大部分类别都只有少量样本的情况,如下图所示

通常我们讨论长尾分布或者是文本分类的时候只考虑单标签,即一个样本只对应一个标签,但实际上多标签在实际应用中也非常常见,例如个人爱好的集合一共有6个元素:运动、旅游、读书、工作、睡觉、美食,一般情况下,一个人的爱好有这其中的一个或多个,这就是典型的多标签分类任务

EMNLP2021上有一篇名为Balancing Methods for Multi-label Text Classification with Long-Tailed Class Distribution的论文详细探讨了各种平衡损失函数对于多标签分类问题的效果,从最初的BCE Loss到Focal Loss等,感觉这篇文章更像是平衡损失函数的综述。源码在Roche/BalancedLossNLP

LOSS FUNCTIONS

在NLP领域,二值化交叉熵损失(Binary Cross Entropy Loss)常被用来处理多标签文本分类问题,给定一个含有N个样本的训练集{(x^1,y^1),…,(x^N,y^N)},其中y^k = [y_1^k,…,y_C^k]\in {0,1}^CC是类别数量,假设模型对于某个样本的输出为z^k = [z_1^k,…,z_C^k]\in \mathbb{R},则BCE损失的定义如下:

其中,p_i^k = \sigma(z_i^k),对于多标签分类问题来说我们需要将模型的输出值压缩到[0,1]之间,所以需要用到sigmoid函数

原本单标签问题,真实值y^k相当于一个onehot向量,而对于多标签来说,真实值y^k相当于一个onehot向量中多了一些1,例如[0,1,0,1],表示该样本同时是第1类和第3类

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

Focal Loss (FL)

通过在BCE上乘一个可调整的聚焦参数\gamma \ge 0,Focal Loss将更高的损失权重放在"难分类"的样本上,这些样本对其真实值的预测概率很低。对于多标签分类任务,Focal Loss定义如下:

实际上论文关于Focal Loss的介绍只有这么多,如果想了解Focal Loss更详细的参数介绍,可以看我的这篇文章Focal Loss详解

Class-balanced focal loss (CB)

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

其中,\beta \in [0,1)控制着有效样本数量的增长速度,损失函数变为

Distribution-balanced loss (DB)

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

首先,为了重新平衡权重,在单标签的情况下,一个样本可以通过采样概率P_i^C = \frac{1}{C}\frac{1}{n_i}来加权,但是在多标签的情况下,如果采用同样的策略,一个具有多标签的样本会被过度采样,概率是P^I = \frac{1}{c}\sum_{y_i^k=1}\frac{1}{n_i}。因此,我们需要结合两者重新平衡权重

我们可以将上述权重变得更光滑一些(有界)

此时,\hat{r}_{\text{DB}}的值域为[\alpha ,\alpha + 1]。rebalanced-FL (R-FL) 损失函数为

然后,NTR对同一标签头部和尾部样本进行不同的处理,引入一个比例因子\lambda和一个内在的特定类别偏差v_i以降低尾部类别的阈值,避免过度抑制

对于尾部样本来说,q^k_i = \sigma(z_i^k - v_i);对于头部样本来说,q_i^k = \sigma(\lambda(z_i^k - v_i))v_i可以在训练开始时最小化损失函数来估计,其比例系数为κ\kappaκ,类别先验信息p_i = n_i/N,则

最终,通过整合再平衡权重以及NTR,Distribution-balanced Loss为

RESULT

作者实验的两个数据集如下

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

个人总结

这篇论文,创新了但又没创新,所有的损失函数都是别人提出来的,自己的工作只是在多标签数据集上跑了一遍做了个对比。最后,纯爱战士表示很淦

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,492评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,048评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,927评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,293评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,309评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,024评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,638评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,546评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,073评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,188评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,321评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,998评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,678评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,186评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,303评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,663评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,330评论 2 358

推荐阅读更多精彩内容