多标签分类问题在现实生活中是一个普遍存在的问题,比如电影分类问题,电影的类别有多种如:科幻、喜剧、动作和剧情等等,一部电影可以同时拥有多个类别,而且绝大多数电影都是拥有多个类别的。针对这样的问题,在应用研究中人们已经开始使用计算机来进行多标签分类问题的研究,在文本分类中,可以将一篇文章分类到多个话题中,如:社会、科学、体育和娱乐等。
一、多标签分类与单标签分类的区别
针对语料库中每一个实例都可以有多个标签(或者说多个类别),如一部电影,既可以是悬疑片也可以是犯罪片,标签之间是可以共存的。
与 single-label classification的区别: 单标签分类是每个实例有且仅有一个标签。比如情感分析任务,针对一条微博分析其情感属性,其可能的类别要么是正性,负性或者中性,只能是三个类别中一种,也就是说一条微博只能分配一个标签,单标签分类问题中标签之间是互斥的。
二、以往解决方法
目前,多标签分类问题的算法分为两大类:
(1)改造数据适应算法(问题转换):这种方法的核心是“改造样本数据使其适应现有“的学习算法,也就是将多标记学习问题转换为现有的学习问题进行求解。
以改造数据为例的三种做法:
① 转化为二分类问题,用L个分类器,分别对应L个标签,进行训练。
多个独立的二分类问题,比如一共有m个labels, 针对每个label 进行0/1判断,如果是0,说明该label是instance的一个标签,否则不是
例子:一部电影
Y = {悬疑片,喜剧片,犯罪片,科幻片} ,其实就是训练4个二值分类器,缺点很明显,无法利用标签之间的关联性
② 标签排序+二分类利用“成对比较”(pairwise comparison),获得L(L-1)/2个分类器,然后利用投票,得到标签的排序。接着,利用二分类,补充标签排序的投票结果,提高准确性。
③ 随机k标签从L个标签随机取得k个标签,重复n次,获得n个分类器。这个过程有点类似随机森林。然后利用多类分类器(multi-class,与multi-label是有区别的),训练数据,最后通过投票,如果对于某一标签,其实际获得的投票数占到最大可能的投票数一半以上,那么就认为当前实例属于该标签。
2)改造算法适应数据:该类算法的核心是“改造现有的单标记学习算法使其适应多标记数据”。该类方法的基本思想是通过对传统的机器学习方法的改进,使其能够解决多标记问题。
总而言之,之前的多标签任务的做法都是用分类的方法解决此问题,本文创新性地用了生成的方法做此任务。
三、本论文提出的end-to-end的生成方法
针对多标签分类问题,本文的创新点:
(1) 考虑了标签之间的关联性
例子:一个电影如果是悬疑片,那么是犯罪片的可能性很大,是喜剧片的可能性就会很小,如果一部电影被定类为悬疑片,那么“悬疑片”这个类别对判断该影片是犯罪片是有贡献的。
(2) 不同的类别不同的文本贡献不同
different parts of the text can contribute differently to predicting different labels
例子:w1w2w3w4w5w6w7w8w9
红色字体部分对预测该序列是label1的贡献很大,蓝色字体对预测为labelk的贡献很大,所以在预测不同标签时应该分别利用文本中不同的部分。
本文的解决方案:用attention的编码方式生成的label sequence
(3)global embedding
避免在某次解码错误导致错误爆炸,本文用global embedding解决。
在sequence-to-sequence的框架下生成目标序列时,当前时刻的解码需要上一时刻的输出,但是如果上一时刻的输出是错误的,那么后续生成的label序列也是不可信的。由于某一时刻输出错误导致的偏差,由于随着序列的长度增加,偏差会越来越大,也就是exposure bias. 解决此问题可以使用beam search, 但是该方法不能根本性解决问题。本文提出了一种新的解码结构,即用global embedding = g(yt-1) 来表示(y-1)时刻的所有标签的概率分布。
本文的框架图如下:
四、小细节处理
(1)在 label sequence的前面加上符号bos, 在序列的结尾加上eos标签
(2)training data中label sequence的处理
例子:对一本小说的描述文本,类别是:悬疑,犯罪,科幻
bos悬疑犯罪科幻eos
bos犯罪科幻悬疑eos
bos犯罪悬疑科幻eos
bos科幻犯罪悬疑eos
bos科幻悬疑犯罪eos
bos悬疑科幻犯罪eos
(为什么选这个作为标准标注,依据这三个类型在训练语料中出现的次数)解决方案:排序,所以的标签Y={y1, y2, …, ym}根据在语料中出现的次数排序,出现次数越多,排序也靠前
五、实验结果
在RCV1-V2和AAPD两个数据集上做了对比实验,Table 1列出了两个数据集的基本情况,分别是:数据集名称,总体实例的个数,标签集的个数,平均句长,每个实例平均标签个数。
Table 2给出了本文模型与其他模型在两个数据集上的实验对比, 第一列是参与对比的七个模型,前五个模型是分类算法,后两个模型是本文提出的生成方法,后两个模型的区别是一个模型用了global embedding(+GE), 另一个模型没有用global embedding。另外实验中用了两个评测的标准,一个是Hamming-loss,数字越小表示模型越好,另一个是Micro-F1,数值越大说明模型越好。通过对比实验可以看到在两个数据集上,与前五个模型相比,SGM模型的HL数值是比较小的,而加了global embedding的模型HL值是最小的,也印证了global embedding的有效性。在两个数据集的F1值上,生成方法SGM模型已经比前五个分类模型效果好,而加了global embedding的模型进一步提升了效果。