• 论文笔记: 极限多标签学习之 FastXML


    摘要: 分享对论文的理解, 原文见 Yashoteja Prabhu and Manik Varma, FastXML: A Fast, Accurate and Stable Tree-classifier for eXtreme Multi-label Learning.

    1. 论文贡献

    2. 相关工作

    符号含义说明
    N N N对象数
    D D D属性数
    L L L标签数
    { ( x i , y i ) i = 1 N } \{(\mathbf{x}_i, \mathbf{y}_i)_{i=1}^N\} {(xi,yi)i=1N}数据集
    O ( D ^ ) O(\hat{D}) O(D^)数据稀疏度
    y ^ \hat{y} y^新空间的标签减少标签数量
    P ∈ R L ^ × L \mathbf{P} \in \mathbb{R}^{\hat{L} \times L} PRL^×L标签映射矩阵
    x ^ = R x \hat{x} = \mathbf{Rx} x^=Rx映射后的数据也是 L ^ \hat{L} L^

    2.1 1-vs-All 复杂度分析

    使用线性分类器, 每个标签的训练复杂度为 O ( N D ^ ) O(N \hat{D}) O(ND^); 其中 D ^ \hat{D} D^ 看作正标签的数量.
    所有标签的训练复杂度为 O ( L N D ^ ) O(L N \hat{D}) O(LND^).
    所有标签的预测复杂度为 O ( L D ^ ) O(L \hat{D}) O(LD^).
    但这种 baseline 方案的效果并不差.

    2.2 嵌入方法

    由于数据矩阵与标签矩阵都是稀疏、低轶的, 使用矩阵, 将它们映射到低维空间.
    使用 D × D ^ D \times \hat{D} D×D^ 矩阵映射数据矩阵; L × L ^ L \times \hat{L} L×L^ 矩阵映射标签矩阵.
    对于标签矩阵而言, 预测后使用相同的矩阵进行逆映射即可.

    2.3 基于树的方法

    Label Partitioning by Sub-linear Ranking (LPSR) 训练一个基础分类器, 再构建一棵标签树.
    Multi-label Random Forest (MLRF) 使用树的集成.

    3. FastXML

    3.1 总体方案

    利用属性对样本进行聚类与分割.
    Algorithm 1 只是一般性的对象划分, 以及叶节点的建立. 但它需要建立 T T T 棵树, 有随机森林的感觉.

    3.2 学习节点 (数据子集) 划分

    • 直接优化 nDCG

    k k k 个标签的下标
    r a n k k ( y ) = [ i 1 d e s c , … , i k d e s c ] T (1) \mathrm{rank}_k(\mathbf{y}) = [i_1^{\mathrm{desc}}, \dots, i_k^{\mathrm{desc}}]^{\mathsf{T}} \tag{1} rankk(y)=[i1desc,,ikdesc]T(1)
    给定一个排列 r \mathbf{r} r (即预测的顺序), 相应的 DCG 值为
    L D C G @ k ( r , y ) = ∑ l = 1 k y r l log ⁡ ( 1 + l ) \mathcal{L}_{\mathrm{DCG@}k}(\mathbf{r}, \mathbf{y}) = \sum_{l = 1}^k \frac{y_{r_l}}{\log(1 + l)} LDCG@k(r,y)=l=1klog(1+l)yrl
    对于前 k k k 个预测值, y r l = 1 y_{r_l} = 1 yrl=1 表示预测正确, y r l = 0 y_{r_l} = 0 yrl=0 表示预测错误,
    nDCG 的讨论见 论文笔记: 极限多标签学习的基本理解

    • 优化目标
      min ⁡ ∥ w ∥ 1 + ∑ i C δ ( δ i ) log ⁡ ( 1 + e − δ i w T x i ) − C r ∑ i 1 2 ( 1 + δ i ) L n D C G @ L ( r + , y i ) − C r ∑ i 1 2 ( 1 − δ i ) L n D C G @ L ( r − , y i ) (5) \min \|\mathbf{w}\|_1 + \sum_{i} C_\delta(\delta_i) \log(1 + e^{-\delta_i \mathbf{w}^{\mathsf{T} \mathbf{x}_i}}) - C_r \sum_i \frac{1}{2}(1 + \delta_i) \mathcal{L}_{\mathrm{nDCG@}_L} (\mathbf{r}^+, \mathbf{y_i}) - C_r \sum_i \frac{1}{2}(1 - \delta_i) \mathcal{L}_{\mathrm{nDCG@}_L} (\mathbf{r}^-, \mathbf{y_i}) \tag{5} minw1+iCδ(δi)log(1+eδiwTxi)Cri21(1+δi)LnDCG@L(r+,yi)Cri21(1δi)LnDCG@L(r,yi)(5)
      其中 w ∈ R D \mathbf{w} \in \mathcal{R}^D wRD, δ ∈ { − 1 , + 1 } L \mathbf{\delta} \in \{-1, +1\}^L δ{1,+1}L, r + , r − ∈ Π ( 1 , L ) \mathbf{r}^+, \mathbf{r}^- \in \Pi(1, L) r+,rΠ(1,L) 1 1 1 L L L 的排列. C δ C_\delta Cδ C r C_r Cr 是用户定义的重要度权值.
      各部分解释如下:
    • 第一部分使用 l 1 \mathcal{l}_1 l1 范数保证线性分类器权值的稀疏性;
    • 第二部分是分类导致的损失项. 其中 w T x i \mathbf{w}^{\mathsf{T}}\mathbf{x}_i wTxi 是线性分类器对 x i \mathbf{x}_i xi 的预测. 在前面乘以 − δ i -\delta_i δi 使得正确分类的函数值为负, 自然指数值更小, loss 也更小.
    • 第三部分是对 nDCG 的评估, 该值越大损失函数值越小. 当 δ i = − 1 \delta_i = -1 δi=1 的时候对当前分类没有贡献, 相应值为 0. 这里考虑了所有的标签排序 ( L L L 个), 而不仅仅是 k k k 个.
    • 第四部分与第三部分同理.

    另外需要注意:

    • 使用 L L L 个标签避免在根结点做太重要的决定, 导致大量信息丢失.
    • 一个标签可能在正负簇里面同时出现.
    • δ \mathbf{\delta} δ r \mathbf{r} r 独立写出来是为了易于高效地优化.

    3.3 预测

    r ( x ) = r a n k k ( 1 T ∑ t = 1 T P t l e a f ( x ) ) (6) \mathbf{r}(\mathbf{x}) = \mathrm{rank}_k \left(\frac{1}{T} \sum_{t=1}^T \mathbf{P}_t^{\mathrm{leaf}}(\mathbf{x})\right) \tag{6} r(x)=rankk(T1t=1TPtleaf(x))(6)

    4. 优化算法

    与平常的梯度下降不同,设计了专门的优化算法:

    • 初始化 w = 0 \mathbf{w} = \mathbf{0} w=0, δ i \delta_i δi 根据均匀分布取 ± 1 \pm 1 ±1 (即概率各为 0.5 0.5 0.5);
    • 保持 w \mathbf{w} w δ \mathbf{\delta} δ, 优化 r + \mathbf{r}^+ r+ r − \mathbf{r}^- r, 以此来对相应簇的标签进行排序;
    • 保持 w \mathbf{w} w r ± \mathbf{r}^{\pm} r±, 优化 δ \mathbf{\delta} δ;
    • 保持 δ \mathbf{\delta} δ r ± \mathbf{r}^{\pm} r±, 优化 w \mathbf{w} w, 只有在前两步无法减小损失的时候做.

    5. 小结

    任重道远.

  • 相关阅读:
    史上最难618,TCL夺得电视行业京东和天猫份额双第一
    Java项目论文+PPT+源码等]S2SH+mysql的报刊订阅系统
    常用的基本命令(必掌握)
    java计算机毕业设计旅游管理系统源码+mysql数据库+系统+lw文档+部署
    解决爬虫在重定向(Redirect)情况下,URL没有变化的方法
    优化代码,提升代码性能
    每日一题·对原型和原型链的理解(12/1)
    SQL Server 阻止了对组件 ‘Ole Automation Procedures‘ 的 过程‘sys.sp_OACreate‘ 的访问
    STM32之HAL开发——CubeMX配置串行Flash文件系统
    Linux安装DMETL4
  • 原文地址:https://blog.csdn.net/minfanphd/article/details/126793499