[Coling2018]SGM: Sequence Geneatin Model for Multi-Label Classificatin

这篇文章是Coling2018年的best paper, 因为之前解决multi-label问题都是用分类的方法,本文提供了一种新思路,用生成的方式解决该问题。觉得还是挺新颖的,记录一下。
一:任务介绍
Multi-label classification(MLC) is to assign multiple labels to each instance in the dataset
就是针对数据集中的实例可以有多个标签。举个例子就是:一个电影,既可以是悬疑片也可以是犯罪片,标签之间可以共存的,与 single-label classification的区别是,实例只能有一个标签,也就是说标签之间是互斥的
二:以往的multi-label的做法
多标签学习算法分为两大类:
1)改造数据适应算法
2)改造算法适应数据
[Coling2018]SGM: Sequence Geneatin Model for Multi-Label Classificatin
以改造数据为例的三种做法
(1)二分类用L个分类器,分别对应L个标签,进行训练。
多个独立的二分类问题,比如一共有m个labels, 针对每个label 进行0/1判断,如果是0,说明该label是instance的一个标签,否则不是该实例的标签。例子:一部电影的标签集合Y = {悬疑片,喜剧片,犯罪片,科幻片} ,那对针对一部电影的标签其实就是训练4个二值分类器,缺点很明显,无法利用标签之间的关联性
(2)标签排序+二分类利用“成对比较”(pairwise comparison),获得L(L-1)/2个分类器,然后利用投票,得到标签的排序。接着,利用二分类,补充标签排序的投票结果,提高准确性。
(3)随机k标签从L个标签随机取得k个标签,重复n次,获得n个分类器。这个过程有点类似随机森林。然后利用多类分类器(multi-class,与multi-label是有区别的),训练数据,最后通过投票,如果对于某一标签,其实际获得的投票数占到最大可能的投票数一半以上,那么就认为当前实例属于该标签。

三:本文做法:
本文考虑的两点:(1) the correlations between labels,例子:一个电影如果是悬疑片,那么是犯罪片的可能性很大,是喜剧片的可能性就会很小。 (2) different parts of the text can contribute differently to predicting different labels,例子:w1w_1w2w3w4w_2w_3w_4w5w6w7w8w_7w_8w9, 红色字体部分对预测该序列是label1label_1的的贡献很大,蓝色字体对预测为labelklabel_k的贡献很大
本文的框架图如下:
[Coling2018]SGM: Sequence Geneatin Model for Multi-Label Classificatin

[Coling2018]SGM: Sequence Geneatin Model for Multi-Label Classificatin
注意到公式 (7) 我觉得是不正确的,应该把ct1c_{t-1}改成ctc_t正确的写法如下:
[Coling2018]SGM: Sequence Geneatin Model for Multi-Label Classificatin
另外涉及到的两个细节是:
(1)在 label sequence的前面加上符号bos符号, 在序列的结尾加上eos符号
(2)training data中label sequence的处理
例子:对一本小说的描述文本,类别是:悬疑,犯罪,科幻,会生成以下几个序列,到底应该选择哪个正确作为gold sequence呢。
bos悬疑喜剧科幻eos
bos喜剧科幻悬疑eos
bos科幻喜剧悬疑eos
bos科幻悬疑喜剧eos
bos悬疑科幻喜剧eos
解决方案:排序,所以的标签Y={y1, y2, …, ym}根据在语料中出现的次数排序,出现次数越多,排序也靠前
然后本文还提到一个概念:exposure bias, 我查了资料后解释如下:
sequence-to-sequence框架的目标序列中,当前时刻t的输入时上一时刻t-1的输出,如果t-1时刻生成的label是错误的,那么后续生成的输出也是错误的,或者是不可信的。由于某一时刻的输出错误导致的偏差,随着序列长度增加,偏差会越来越大。另外本文提到如果exposure bias出现在所有的预测路径中,那么beam search不能根本性的解决exposure bias问题。本文给出了一个解决方案解决此问题:那就是yt1_{t-1} 是(t-1)时刻softmax之后k个label的概率分布, 将此分布经过转换后作为t时刻的一个输入,而不是将(t-1)时刻中概率最大的那个label作为t时刻的输入。
未完待续

参考文献:
https://baijiahao.baidu.com/s?id=1606110272313522266&wfr=spider&for=pc