针对多标签(Multi-label)任务的经典算法

Posted by Lucius on June 5, 2024

多标签(Multi-label)任务是分类任务的扩展版,即每个样本不再仅属于一个类别,而是可以同时属于多个类别(标签)。因此与经典的分类任务不同,多标签问题需要预测一组标签,而不是一个单一的标签。

本篇文章记录了一些经典的处理多标签(Multi-label)任务的算法。

Binary Relevance (BR)

此类方法非常直接,训练原理为:将多标签问题分解为多个独立的二分类问题,每个标签独立训练一个分类器。随后在预测时,使用每个分类器预测相应标签即可。

此类方法非常直观,将每个标签独立进行考虑,但同时也忽略了标签之间的关联性。

Classifier Chains (CC)

不同于 Binary Relevance (BR) 方法,此类算法将多个二分类器串联起来,具体来说:

  • 首先制定一个 label chain,例如标签链 $A \rightarrow B\rightarrow C$;

  • 随后第一个分类器 $h_A$ 只使用原始特征,训练针对标签 $A$ 的二分类模型;

  • 第二个分类器 $h_B$ 则在原始特征上拼接第一个分类器的输出,训练针对标签 $B$ 的二分类模型;

  • 第三个分类器 $h_C$ 则在原始特征上拼接第一个和第二个分类器的输出,训练针对标签 $C$ 的二分类模型。

在预测时,依然按照顺序预测每个标签即可。此类算法对标签顺序比较敏感,且必须串行实现,计算复杂度较高。

Label Powerset (LP)

不同于先前两类方法,LP 方法将不同的标签组合视为一个新的标签,随即将多标签任务转化为多分类任务进行处理。

举例来说,假设每个样本有两个可能的标签:$A$ 和 $B$,则标签组合和新对应的标签为:

  • $(A) \rightarrow (1)$

  • $(B) \rightarrow (2)$

  • $(A, B) \rightarrow (3)$

基于上述对应关系,即可以将多标签的数据集转化为多类别的数据集,进而使用常见的多分类算法处理此类任务即可。

此类算法考虑了标签组合之间的关系,但标签组合的数目会随标签数量指数增长,不适宜处理标签数过多的问题。

Random k-Labelsets (RAkEL) [1]

RAkEL 是对于 LP 方法的一种优化,其从所有标签中采样 $m$ 个大小为 $k$ 的标签子集,即有 $m$ 个标签子集,每个标签子集中包含 $k$ 个标签。

这 $k$ 个标签子集之间可以相交或不相交,但需要覆盖所有的标签。

针对每个标签子集训练一个 LP 模型,对于新的样本,将每个模型在其对应标签子集上的输出集成,即可得到最终的模型预测结果。

此类方法缓解了 LP 方法组合爆炸的问题,但需要选择合适的子集大小和子分类器数量。

参考文献