深度学习与反思结构的多标签分类
摘要
多标签分类(MLC)是一类重要的机器学习问题,涉及广泛的应用程序,每个应用程序都可能要求不同的评估标准。在解决MLC问题时,我们通常希望学习算法能够考虑到标签之间隐藏的相关性来提高预测性能,提取标签之间隐藏的相关性通常是一项艰巨的任务。在这项工作中,我们提出了一种新颖的深度学习框架,以借助递归神经网络中的内存结构更好地提取隐藏的相关性。存储器将临时猜测存储在标签上,并有效地使框架能够在做出最终预测之前重新考虑猜测的优劣和相关性。 此外,通过重新考虑(Rethinking)过程,可以轻松地适应不同的评估标准,以满足实际应用的需求。 特别是,可以针对任何给定的MLC评估标准以端到端的方式训练此框架。端到端设计可以与其他深度学习技术无缝结合,以解决诸如图像标记之类的具有挑战性的MLC问题。 在许多真实数据集上的实验结果证明,反思(Rethinking)框架确实在不同的评估标准下提高了MLC的性能,并且优越的性能超过最先进的MLC算法。
1、介绍
人类通过反复研究和思考同一个问题来掌握解决特定问题的技能。当一个难题出现在我们面前时,我们的脑海中会出现多次尝试来模拟不同的可能性。在这段时间里,我们对问题的理解加深了,这使得我们最终能够提出更好的解决方案。更深层次的理解来自于我们记忆中的一块巩固的知识,它记录了我们在“反思”尝试过程中如何通过处理和预测来构建问题环境。以上的人反思模型启发我们设计一种新的机器反思深度学习模型,该模型配备了一个记忆结构,以更好地解决多标签分类(MLC)问题。MLC问题的目标是同时将多个相关标签附加到一个输入实例中,并匹配各种应用场景,例如用情感子集标记歌曲或用对象标记图像。MLC应用程序通常带有一个重要的属性,称为标签相关性,例如,当给歌曲贴上情绪标签时,“愤怒”与“快乐”呈负相关;当标记图像时,桌面计算机的存在可能意味着键盘和鼠标的共存(计算机桌面含有的东西),许多现有的MLC工作隐式或显式地将标签相关性考虑在内,以更好地解决MLC问题。
在解决MLC问题时,标签相关性对人类也很重要,例如,在进入一个新房间解决图像标记任务时,我们可能会在第一眼看到一些更明显的物体,比如沙发,餐桌,木地板,这样的物件组合让我们联想到一个客厅,让我们更好地认识到沙发上的“鹅”是毛绒玩具,而不是真的鹅。从沙发到客厅再到毛绒玩具的识别路线需要逐步重新思考预测的相关性。我们提出的机器反思模型模拟了这种人的再思考过程,以消化标签相关性,更准确地解决MLC问题。
接下来,我们介绍一些有代表性的MLC算法,然后将它们与我们提出的机器再思考模型联系起来。二进制相关性(BR) 是一种基本的MLC算法,不考虑标签相关性。对于每个标签,BR学习一个二值分类器来独立预测标签的相关性。分类器链(CC) 通过考虑一些标签相关性扩展了BR。CC将二进制分类器链接为一个链,并将早期分类器的预测作为特性提供给后一个分类器。因此,后面的分类器因此可以利用较早的预测(与之相关)来形成更好的预测。
分类器链介绍:分类器链中的第一个分类器只在输入数据上进行训练,然后每个分类器都在输入空间和链上的所有之前的分类器上进行训练,例如在下面给出的数据集里,我们将X作为输入空间,而Y作为标签。
在分类器链中,将多标签问题将被转换成4个不同的标签问题,就像下面所示。黄色部分是输入空间,白色部分代表目标变量
CC(分类器链)的设计可以看作是一种存储早期分类器的标签预测的内存机制。卷积神经网络递归神经网络(CNNRNN) 和带视觉注意力的无顺序神经网络(Att-RNN)算法通过更复杂的基于记忆的模型递归神经网络(RNN)取代机制,对CC进行了扩展。此外,采用RNN可以使算法通过与其他深度学习架构(如CNN-RNN中的卷积神经网络)进行端到端训练,更有效地解决图像标记等任务。
据报道,上述利用标签相关性的CC系列算法比BR具有更好的性能。但是,由于预测是在链内顺序进行的,因此这些算法通常会遇到标签排序问题。特别是,位于链的不同位置的分类器接收不同级别的信息,最后一个分类器使用来自其他分类器的所有信息进行预测,而第一个分类器的标签预测不使用其他信息。Att-RNN(论文是 Order-free RNN with visual attention for multi-label classification)通过波束搜索近似标签的最优排序解决了这个问题,而基于动态规划的分类器链(CC-DP) (论文是 On the optimality of classifier chain for multi-label classification)通过动态规划搜索最优排序。Att-RNN和CC-DP在搜索最优排序时都很耗时,即使确定了一个很好的排序,在预测过程中标签相关信息仍然不能平均共享。
我们提出的深度学习模型,称为RethinkNet,通过以不同的方式查看CC来解决标签排序问题。将cc族算法作为基于早期分类器的部分预测的再思考模型,我们建议在再思考过程中完全记住所有分类器的临时预测。也就是说,我们不是形成一个二进制分类器链,而是形成一个多标签分类器链,作为一个重新思考的序列。RethinkNet学会在链的早期分类器中形成初步的猜测,将这些猜测存储在内存中,然后在后面的分类器中使用标签相关性纠正这些猜测。与CNN-RNN和Att-RNN相似,RethinkNet采用RNN进行基于内存的顺序预测。我们为RethinkNet设计了一个全局内存来存储关于标签相关性的信息,该全局内存允许所有分类器共享相同的信息,而不受标签排序问题的影响。
RethinkNet的另一个优势是解决现实世界中对成本敏感的多标签分类(CSMLC)的重要需求。(论文对应:Condensed filter tree for cost-sensitive multi-label
classification) 特别是,不同的MLC应用程序通常需要不同的评估标准。 为了在广泛的应用范围内得到广泛的应用,因此设计CSMLC算法是很重要的,该算法在学习过程中考虑了标准(成本),从而能够轻松适应不同的成本。最先进的CSMLC算法包括压缩滤波树(CFT) 和概率分类链(PCC),PCC通过根据准则进行贝叶斯最优预测,将CC扩展到CSMLC,CFT也是由CC扩展而来,但在CC内训练每个二分类器时,通过将准则转换为重要度权值实现了代价敏感性。CFT中的转换步骤通常需要了解所有分类器的预测,这些预测已轻松存储在内存或RethinkNet中。 因此,RethinkNet可以轻松地与CFT中的重要性加权概念相结合,以实现成本敏感性.
在真实世界的数据集上进行的广泛实验验证了RethinkNet确实在不同的评估标准下提高了MLC的性能,并且优于目前最先进的MLC和CSMLC算法。此外,在图像标记方面,实验结果表明RethinkNet的性能优于CNN-RNN和Att-RNN。结果证明了RethinkNet的有效性。
2、准备工作
在多标签分类(MLC)问题中,目标是将多个标签附加到一个特征向量
x ∈ X ⊆ R d x \in \mathcal{X}\subseteq \Bbb{R}^{d} x∈X⊆Rd,其中 x x x为 d d d维向量。假设总共有 K K K个标签,标签由标签向量表示 y ∈ Y ⊆ { 0 , 1 } K y\in \mathcal{Y}\subseteq\{0,1\}^{K} y∈Y⊆{
0,1}K,当且仅当第 k k k个标签与 x x x相关时,第 k k k位 y [ k ] = 1 y[k] = 1 y[k]=1,我们分别称 X \mathcal{X} X和 Y \mathcal{Y} Y为特征空间和标签空间.
训练时,MLC算法取训练数据集 D = ( x n , y n ) n = 1 N \mathcal{D}={(x_{n},y_{n})}_{n=1}^{N} D=(xn,yn)n=1N,数据集中包含 N N N个例子, x n ∈ X , y n ∈ Y x_{n}\in\mathcal{X},y_{n}\in\mathcal{Y} xn∈X,yn∈Y来学习一个分类器: f : X → Y f:\mathcal{X}\rightarrow\mathcal{Y} f:X→Y,分类器将一个特征向量 x ∈ X x \in \mathcal{X} x∈X映射到其在 Y \mathcal{Y} Y中的预测标签向量。从生成训练数据集 D \mathcal{D} D的同一分布中提取 N ˉ \bar{N} Nˉ个测试示例 { ( x n ˉ , y n ˉ , ) } n = 1 N ˉ \{(\bar{x_{n}},\bar{y_{n}},)\}_{n=1}^{\bar{N}} {
(xnˉ,ynˉ,)}n=1Nˉ,MLC算法的目标是学习一个分类器 f f f,使预测的向量 { y ^ n } n = 1 N ˉ = { f ( x n ˉ ) } n = 1 N ˉ \{\hat{y}_{n}\}_{n=1}^{\bar{N}}=\{f(\bar{x_{n}})\}_{n=1}^{\bar{N}} {
y^n}n=1Nˉ={
f(xnˉ)}n=1Nˉ使得 { y ^ n } n = 1 N ˉ \{\hat{y}_{n}\}_{n=1}^{\bar{N}} {