SSMix:用于文本分类的基于显著性的广度Mixup

论文链接:https://arxiv.org/pdf/2106.08062.pdficon-default.png?t=M0H8http://SSMix: Saliency-Based Span Mixup for Text Classification论文代码:

https://github.com/clovaai/ssmixicon-default.png?t=M0H8https://github.com/clovaai/ssmix

目录

1、Abstract 

2、SSMix

3、Saliency

4、Mixing text

5、same span length

6、Mixing label

7、Paired sentence tasks


1、Abstract 

在计算机视觉任务中,mixup数据增强已被证明是有效的。但文本是由长度可变的离散标记组成,将mixup应用于NLP任务仍然存在一定障碍。

        这一篇文章提出一种新的混合方法(SSMix),通过在输入文本上进行操作,而不是在隐藏向量上操作。SSMix通过基于广度的mixup保持两个原始文本的局部性,并根据显著性信息保留更多与预测相关的标记。

实验验证在文本分类基准上优于隐藏层混合方法,包括文本蕴涵、情感分类和问题类型分类。

图 1.SSMix示意图

        X^{A}X^{B}分别标记为negativepositive。其中颜色越深表示对相应单词的贡献越大。从X^{A}中选出贡献值最小的单词,并用X^{B}中贡献值最大的单词替换它。输出结果为\hat{X}=mixup(X^{A},X^{B})。同时设置了一个mixup比例\lambda,图1中\lambda设置为0.2,因为序列的总长度为10,替换了两个单词,2/10=0.2。

        SSMix方法具体流程:

        (1)首先,将连续标记的范围替换为另一个文本中的范围来进行合成,以保留混合文本中两个源文本的位置;

        (2)根据显著性信息选择要替换的范围和要替换的范围,以使混合文本包含与输出预测更相关的标记,这在语义上可能很重要。

 2、SSMix

        基于显著性信息将一个文本中的部分段替换为另一个文本中的部分段从而合成一个新的文本。具体示意图如图1所示。

3、Saliency

        显著性度量数据的每个部分(本文为token)如何影响最终的预测,一般是采用基于梯度的方法计算显著性;本文通过计算分类损失L相对于输入嵌入e的梯度,并使用其大小s作为显著性:

s=\left \|\partial\L// \partial e \right \|_{2}

然后使用L2-norm获得梯度向量的大小,然后将梯度向量作为每个token的显著性;

4、Mixing text

        文本数据x^{A}x^{B}是离散的序列,采用显著性得分,x^{A}中长度为l^{A}的最不显著性区域表示为x^{A}_{S},对于x^{B}中长度为l_{B}的最显著性区域表示为x^{B}_{S}。其中\lambda_{0}表示之前的mixup比(混合比);

l_{A}=l_{B}=max(min(\left [ \lambda _{0}\left | x^{A} \right |, \left | x^{B} \right |\right ]),1)

最终的输出为\hat{x}:\left \{ x^{A}_{L} ;x^{B}_{S};x^{A}_{L}\right \},其中x^{A}_{L}x^{A}_{R}是原始文本x^{A}中分别位于x^{A}_{S}的左侧和右侧的token;

5、same span length

        将原始跨度l_{A}和替换跨度l_{B}的长度设置为相同大小,主要是考虑到不同的跨度长度将导致冗余和不明确的混合变化,并且计算不同跨度之间的混合比过于复杂。在跨度长度相同的情况下,本文的方法使得显著性的效果最好;由于SSMix不限制token的位置,可以选择最显著的跨度,并在其他文本上用最不显著的跨度替换它;

6、Mixing label

        将标签的混合比\lambda设置为\lambda =\left | x^{B}_{S} \right |/\left | \hat{x} \right |,这个混合比与之前的\lambda _{0}不同。\tilde{x}的标签设置为\tilde{y}

\tilde{y}=(1-\lambda)y^{A}+\lambda y^{B}

算法1显示了如何利用原始样本计算增强样本的mixup损失;根据每个样本的原始目标标签计算增强输出Logits的交叉损失,并通过加权和将其组合;

应用SSMix与分类数据集的标签总数无关,在任何数据集上,输出标签比例都是通过两个标签的线性组合来计算的。

Mixup损失计算
Mixup损失计算

 7、Paired sentence tasks

对于需要一对文本作为输入的任务,如文本隐含推理和相似性分类。SSMix以成对的方式进行混合,通过聚合每个mixup结果中的标记计数来计算mixup比例。对于给定样本:

x^{A}=(p^{A},q^{A})

x^{B}=(p^{B},q^{B})

合成的新样本为:

\tilde{x}=(\tilde{p},\tilde{q})=(mixup(p^{A},p^{B}),(mixup(q^{A},q^{B})))

其中mixup的混合比为:

\lambda =\left ( \left | ps \right | +\left | qs \right | \right )+\left ( \left | \tilde{p} \right |+\left | \tilde{q} \right | \right )

其中ps和qs为每个mixup操作中的替换片段。

具体过程如下图所示:

 在这个例子中:

  • p^{A} 为 "Fun for only children."
  • q^{A} 为 "Fun for adults and children."
  • p^{B} 为 "Problems in data synthesis."
  • q^{B} 为  "Issues in data synthesis."
  • \lambda =\left ( \left | ps \right | +\left | qs \right | \right )+\left ( \left | \tilde{p} \right |+\left | \tilde{q} \right | \right )=(1+1)/(5+6)=2/11\approx0.18。

 剩下都是实验结果部分,本文就不再赘述,重点关注方法部分。感兴趣的可以看原论文。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kaichu2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值