多标签学习-RankSVM方法

A kernel method for multi-labelled classification

2002 NIPS

Andre Elisseeff and Jason Weston

介绍

在Schapire和Singer关于Boostexter的工作中(R.E. Schapire and Y. Singer. Boostexter: A boosting-based system for text categorization. Machine Learning, 39(2/3):135–168, 2000.),Boostexter是唯一一个通用的多标签排名系统,他们观察到过度拟合发生在相对较小的学习集上,他们得出结论,控制整个学习系统的复杂性是一个重要的研究方法。本文的目的是提供一种控制这种复杂性的方法,同时具有小的经验误差。为此,我们仅考虑基于线性模型的架构,并遵循与支持向量机的定义相同的推理,定义多标签模型定义成本函数和不同线性模型的边距,我们主要关注基于排名方法的方法,该方法结合了集合大小的预测器。

基于排名的系统

训练线性模型

该算法的基本思想是采用“最大化间隔(maximum margin)”策略,定义一组线性分类器以最小化下文所示的 ranking loss 评价指标,并通过引入“核技巧(kernel trick)”处理非线性分类问题。

rloss S ( h ) = 1 p i = 1 p 1 Y i Y i { ( y , y ) f ( x i , y ) f ( x i , y ) , ( y , y ) Y i × Y i } \operatorname { rloss } _ { \mathcal { S } } ( h ) = \frac { 1 } { p } \sum _ { i = 1 } ^ { p } \frac { 1 } { \left| Y _ { i } \right| \left| \overline { Y } _ { i } \right| } \left| \left\{ \left( y ^ { \prime } , y ^ { \prime \prime } \right) | f \left( \boldsymbol { x } _ { i } , y ^ { \prime } \right) \leq f \left( \boldsymbol { x } _ { i } , y ^ { \prime \prime } \right) , \left( y ^ { \prime } , y ^ { \prime \prime } \right) \in Y _ { i } \times \overline { Y } _ { i } \right\} \right|
其中, Y \overline { Y } 为集合 在标记空间 中的“补集(complementary set)”。该评价指标用于考察在样本的类别标记排序序列中出现排序错误的情况,即无关标记在排序序列中位于相关标记之前。该指标取值越小则系统性能越优,其最优值为 r loss S ( h ) = 0 r \operatorname { loss } _ { \mathcal { S } } ( h ) = 0 _ { \circ }

设学习系统由 q q 个线性分类器 W = { ( w j , b j ) 1 j q } \mathbf { W } = \left\{ \left( \boldsymbol { w } _ { j } , b _ { j } \right) | 1 \leq j \leq q \right\} 组成,其中 ω j R d \omega _ { j } \in \mathbb { R } ^ { d } 为与第 j j 类对应的“权值向量(weight vector)”,而 b j R b _ { j } \in \mathbb { R } 为第 j j 类对应的“偏置(bias)”。令 f ( x , y j ) = w j , x + b j f \left( \boldsymbol { x } , y _ { j } \right) = \left\langle \boldsymbol { w } _ { j } , \boldsymbol { x } \right\rangle + b _ { j } ,算子 $\left\langle \cdot \right\rangle $返回向量内积。给定多标记训练集 D = { ( x i , Y i ) 1 i m } \mathcal { D } = \left\{ \left( \boldsymbol { x } _ { i } , Y _ { i } \right) | 1 \leq i \leq m \right\} ,Rank-SVM 算法首先按如下方式定义学习系统在样本 ( x i , Y i ) \left( \boldsymbol { x } _ { i } , Y _ { i } \right) 上的分类间隔:
min ( y i , y k ) Y i × Y i w j w k , x i + b j b k w j w k \min _ { \left( y _ { i } , y _ { k } \right) \in Y _ { i } \times \overline { Y } _ { i } } \frac { \left\langle \boldsymbol { w } _ { j } - \boldsymbol { w } _ { k } , \boldsymbol { x } _ { i } \right\rangle + b _ { j } - b _ { k } } { \left\| \boldsymbol { w } _ { j } - \boldsymbol { w } _ { k } \right\| }

其中,对于相关标记 y j y_j 以及无关标记 y k y_k 而言,其对应的分类超平面为 w j w k , x + b j b k = 0 \left\langle \boldsymbol { w } _ { j } - \boldsymbol { w } _ { k } , \boldsymbol { x } \right\rangle + b _ { j } - b _ { k } = 0 ,因此上式考察样本 ( x i , Y i ) \left( \boldsymbol { x } _ { i } , Y _ { i } \right) 在各“相关-无关”标记配对情况下至分类超平面的距离,将其最小值定义为样本的分类间隔。基于此,学习系统在训练集 D D 上的分类间隔对应于:
min ( x i , Y i ) D min ( y j , y k ) Y i × Y i w j w k , x i + b j b k w j w k \min _ { \left( x _ { i } , Y _ { i } \right) \in \mathcal { D } } \min _ { \left( y _ { j } , y _ { k } \right) \in Y _ { i } \times \overline { Y } _ { i } } \frac { \left\langle \boldsymbol { w } _ { j } - \boldsymbol { w } _ { k } , \boldsymbol { x } _ { i } \right\rangle + b _ { j } - b _ { k } } { \left\| \boldsymbol { w } _ { j } - \boldsymbol { w } _ { k } \right\| }

理想情况下,假设上式定义的训练集分类间隔取值为正,即 w j w k , x i + b j b k > 0 ( 1 i m , ( y j , y k ) Y i × Y i ) \left\langle \boldsymbol { w } _ { j } - \boldsymbol { w } _ { k } , \boldsymbol { x } _ { i } \right\rangle + b _ { j } - b _ { k } > 0 ( 1 \leq i \leq m ,\left( y _ { j } , y _ { k } \right) \in Y _ { i } \times \overline { Y } _ { i } ) 成立,进一步地,通过对线性分类器 W = { ( w j , b j ) 1 j q } \mathbf { W } = \left\{ \left( \boldsymbol { w } _ { j } , b _ { j } \right) | 1 \leq j \leq q \right\} 的参数进行适当的缩放,从而使 w j w k , x i + b j b k 1 ( 1 i m , ( y j , y k ) Y i × Y i ) \left\langle \boldsymbol { w } _ { j } - \boldsymbol { w } _ { k } , \boldsymbol { x } _ { i } \right\rangle + b _ { j } - b _ { k } \geq 1 \left( 1 \leq i \leq m , \left( y _ { j } , y _ { k } \right) \in Y _ { i } \times \overline { Y } _ { i } \right) 成立,且存在样本 ( x , Y ) D X ( y j , y k ) Y × Y \left( \boldsymbol { x } ^ { * } , Y ^ { * } \right) \in \mathcal { D } \overline { X } \left( y _ { j ^ { * } } , y _ { k ^ { * } } \right) \in Y ^ { * } \times \overline { Y } ^ { * } 使该式取等号。此时,最大化式上式所示的训练集分类间隔可表述为如下优化问题:
max W min ( x i , Y i ) D ( y i , y k ) Y i × Y i 1 w j w k 2  subject to :  w j w k , x i + b j b k 1 ( 1 i m , ( y j , y k ) Y i × Y i ) \begin{array} { c } { \max _ { \mathbf { W } } \min _ { \left( \boldsymbol { x } _ { i } , Y _ { i } \right) \in \mathcal { D } \left( y _ { i } , y _ { k } \right) \in Y _ { i } \times \overline { Y } _ { i } } \frac { 1 } { \left\| \boldsymbol { w } _ { j } - \boldsymbol { w } _ { k } \right\| ^ { 2 } } } \\ { \text { subject to : } \quad \left\langle \boldsymbol { w } _ { j } - \boldsymbol { w } _ { k } , \boldsymbol { x } _ { i } \right\rangle + b _ { j } - b _ { k } \geq 1 \quad \left( 1 \leq i \leq m , \left( y _ { j } , y _ { k } \right) \in Y _ { i } \times \overline { Y } _ { i } \right) } \end{array}

设训练样本足够充分,即对于所有类别标记 y j , y k ( y j y k ) y _ { j } , y _ { k } \left( y _ { j } \neq y _ { k } \right) ,存在 ( x , Y ) D ( \boldsymbol { x } , Y ) \in \mathcal { D } 使得 ( y j , y k ) Y × Y \left( y _ { j } , y _ { k } \right) \in Y \times \overline { Y } 。此时,上式的优化目标即对应于 max W min 1 j < k q 1 w j w k 2 \max _ { \mathbf { W } } \min _ { 1 \leq j < k \leq q } \frac { 1 } { \left\| \boldsymbol { w } _ { j } - \boldsymbol { w } _ { k } \right\| ^ { 2 } } ,相应的优化问题转化为:
min W max 1 j < k q w j w k 2  subject to :  w j w k , x i + b j b k 1 ( 1 i m , ( y j , y k ) Y i × Y i ) \begin{array} { c } { \min _ { \mathbf { W } } \max _ { 1 \leq j < k \leq q } \left\| \boldsymbol { w } _ { j } - \boldsymbol { w } _ { k } \right\| ^ { 2 } } \\ { \text { subject to : } \quad \left\langle \boldsymbol { w } _ { j } - \boldsymbol { w } _ { k } , \boldsymbol { x } _ { i } \right\rangle + b _ { j } - b _ { k } \geq 1 \quad \left( 1 \leq i \leq m , \left( y _ { j } , y _ { k } \right) \in Y _ { i } \times \overline { Y } _ { i } \right) } \end{array}

为了克服上式中的max算子对优化造成的困难,Rank-SVM 算法将该算法子用求和算子加以近似,进一步地将上述优化问题转化为:
min w j = 1 q w j 2  subject to :  w j w k , x i + b j b k 1 ( 1 i m , ( y j , y k ) Y i × Y i ) \begin{array} { c } { \min _ { \mathbf { w } } \sum _ { j = 1 } ^ { q } \left\| \boldsymbol { w } _ { j } \right\| ^ { 2 } } \\ { \text { subject to : } \left\langle \boldsymbol { w } _ { j } - \boldsymbol { w } _ { k } , \boldsymbol { x } _ { i } \right\rangle + b _ { j } - b _ { k } \geq 1 \quad \left( 1 \leq i \leq m , \left( y _ { j } , y _ { k } \right) \in Y _ { i } \times \overline { Y } _ { i } \right) } \end{array}

为了反映真实情况下上式所示的约束无法完全满足的情况,可引入“松弛变量(slack variables)” 改写算法对应的优化问题:
min { W , Ξ } j = 1 q w j 2 + C i = 1 m 1 Y i Y i ( y i , y k ) Y i × Y i ξ i j k  subject to :  w j w k , x i + b j b k 1 ξ i j k ξ i j k 0 ( 1 i m , ( y j , y k ) Y i × Y i ) \begin{array} { c } { \min _ { \{ \mathbf { W } , \Xi \} } \sum _ { j = 1 } ^ { q } \left\| \boldsymbol { w } _ { j } \right\| ^ { 2 } + C \sum _ { i = 1 } ^ { m } \frac { 1 } { \left| Y _ { i } \right| \left| \overline { Y } _ { i } \right| } \sum _ { \left( y _ { i } , y _ { k } \right) \in Y _ { i } \times \overline { Y } _ { i } } \xi _ { i j k } } \\ { \text { subject to : } \left\langle \boldsymbol { w } _ { j } - \boldsymbol { w } _ { k } , \boldsymbol { x } _ { i } \right\rangle + b _ { j } - b _ { k } \geq 1 - \xi _ { i j k } } \\ { \xi _ { i j k } \geq 0 \quad \left( 1 \leq i \leq m , \left( y _ { j } , y _ { k } \right) \in Y _ { i } \times \overline { Y } _ { i } \right) } \end{array}

其中, Ξ = { ξ i j k 1 i m , ( y j , y k ) Y i × Y i } \Xi = \left\{ \xi _ { i j k } | 1 \leq i \leq m , \left( y _ { j } , y _ { k } \right) \in Y _ { i } \times \overline { Y } _ { i } \right\} 为松弛变量集合。由上可见,上式中所示的目标函数由两个求和项组成。其中,第一项对应于学习系统在训练集上的分类间隔(model complexity),第二项对应于学习系统在训练集上的经验误差(ranking loss),参数 C 用于平衡上述两项对目标函数的影响。

值得注意的是,上式对应于一个具有凸目标函数和线性约束条件的“二次规划(quadraticprogramming)”问题,但仅仅假设了线性模型用于样本分类。为了使得系统具有非线性分类能力,可以通过引入核技巧将式子转化成其“对偶形式(dual form)”求解,具体细节可参见文献(Elisseeff A, Weston J. Kernel methods for multi-labelled classification and categorical regression problems. Technical Report, BIOwulf Technologies, 2001)。

训练阈值函数

Rank-SVM 算法还采用了特殊的方式确定阈值函数 t ( ) t ( \cdot ) 。具体来说,设 t ( x ) = w , f ( x ) + b t ( \boldsymbol { x } ) = \left\langle \boldsymbol { w } ^ { * } , \boldsymbol { f } ^ { * } ( \boldsymbol { x } ) \right\rangle + b ^ { * } 为线性函数。其中, f ( x ) = ( f ( x , y 1 ) ,   , f ( x , y q ) ) T R q f ^ { * } ( x ) = \left( f \left( x , y _ { 1 } \right) , \cdots , f \left( x , y _ { q } \right) \right) ^ { \mathrm { T } } \in \mathbb { R } ^ { q } 为 q 维属性向量,其分量对应于分类系统在各类别标记上的输出。相应地, w R q \boldsymbol { w } ^ { * } \in \mathbb { R } ^ { q } 为 q 维权值向量, b R q \boldsymbol { b } ^ { * } \in \mathbb { R } ^ { q } 为偏置。给定训练集 D = { ( x i , Y i ) 1 i m } \mathcal { D } = \left\{ \left( \boldsymbol { x } _ { i } , Y _ { i } \right) | 1 \leq i \leq m \right\} ,Rank-SVM 使用线性最小二乘法求解相应参数:
min { w , b } i = 1 m ( w , f ( x i ) + b s ( x i ) ) 2 \min _ { \left\{ \boldsymbol { w } ^ { * } , b ^ { * } \right\} } \sum _ { i = 1 } ^ { m } \left( \left\langle \boldsymbol { w } ^ { * } , \boldsymbol { f } ^ { * } \left( \boldsymbol { x } _ { i } \right) \right\rangle + b ^ { * } - s \left( \boldsymbol { x } _ { i } \right) \right) ^ { 2 }
 where  s ( x i ) = arg min a R ( { y j y j Y i , f ( x i , y j ) a } + { y k y k Y i , f ( x i , y k ) a } ) \text { where } s \left( \boldsymbol { x } _ { i } \right) = \arg \min _ { a \in \mathbb { R } } \left( \left| \left\{ y _ { j } | y _ { j } \in Y _ { i } , f \left( \boldsymbol { x } _ { i } , y _ { j } \right) \leq a \right\} \right| + \left| \left\{ y _ { k } | y _ { k } \in \overline { Y } _ { i } , f \left( \boldsymbol { x } _ { i } , y _ { k } \right) \geq a \right\} \right| \right)

通常, 可能的取值对应于一个实数区间,算法取该区间的中值用以最小化上式。最终,基于线性模型和阈值函数的解,则可得到所需的多标记分类器:
h ( x ) = { y j w j , x + b j > w , f ( x ) + b , 1 j q } h ( \boldsymbol { x } ) = \left\{ y _ { j } | \left\langle \boldsymbol { w } _ { j } , \boldsymbol { x } \right\rangle + b _ { j } > \left\langle \boldsymbol { w } ^ { * } , \boldsymbol { f } ^ { * } ( \boldsymbol { x } ) \right\rangle + b ^ { * } , 1 \leq j \leq q \right\}

代码实现

东南大学张敏灵老师主页:matlab代码实现http://cse.seu.edu.cn/people/zhangml/files/RankSVM.rar

猜你喜欢

转载自blog.csdn.net/csdn_47/article/details/83662256
今日推荐