原文: Yue Zhu, James T. Kwok, Zhi-Hua Zhou, Multi-Label Learning with Global and Local Label Correlation, IEEE Transactions on Knowledge and Data Engineering, 2018 (30), 1081–1094.
目录
1.原文摘要理解
简单来说, 现在的多标签方法中存在一些可能的问题:
- 标签相关性可能是基于局部的但是忽略全局, 或者多标签的相关性过分基于全局而忽略局部
- 在标签缺失情况下难以对于标签相关性进行判断
面对这些问题从而提出一种具有全局和局部标签相关性的多标签学习. (Multi-Label Learning with Global and Local Label Correlation)
采用的模型是类似于Funk-SVD矩阵分解但是不局限于此, 因为单纯的矩阵分解只能用于补齐缺失标签但是无法去进行预测, 因此这篇算法的矩阵分解过程中还混入了线性模型. 而每个子矩阵中的各种隐因子暗藏着相关性.
本文的全局性体现在模型的拟合具有全局性, 对于某些矩阵的正则惩罚也具有全局性.
本文的局部性体现在对于局部矩阵拟合后的预测矩阵的正则惩罚
局部矩阵\(X_i\)是原\(X\)通过分簇得到的, 每个局部矩阵享用全局矩阵类似的拟合手段
2.基本符号
符号 | 维度 | 含义 |
\(n\) | 对象个数 | |
\(l\) | 标签个数 | |
\(k\) | 隐含的标签个数 | |
\(X\) | \(d \times n\) | 数据矩阵 |
\(Y\) | \(l \times n\) | 标签矩阵 |
\(U\) | \(l \times k\) | 从隐含标签向真实标签的映射 |
\(V\) | \(k \times n\) | 从对象向隐含标签的映射 |
\(W\) | \(d \times k\) | 权值矩阵 |
这里的隐含标签个数又叫做隐含因子, 是矩阵分解中常见的参数, 也是此论文中用于描述标签相关性的一种信息.
这篇论文中的矩阵维度描述有些反常规方式, 是默认转置存放的
矩阵\(U\)描述单个标签对应的隐含参数信息, 我任意取出一个数据行\(i\)\((0 \leq i < l)\)有向量\(\vec{\mathbf{u}_{i}} = \{u_{i1}, u_{i2}, \dots , u_{ik}\}\), 其中描述了标签\(i\)可能关联了\(k\)个可能的含义及其值, 且这个值非0(这个特质是本方法消灭缺失标签, 降低标签矩阵稀疏度的关键). 当然, 这属于强行解释, 机器学习也许不管语义如何, 但是这些值确实可以人为理解为这样的含义.
矩阵\(V\)与\(W\)可以进行类似解释.
\(U\),\(V\),\(W\)都将作为拟合的目标, 拟合成功的这三个矩阵可以作为预测的模型, 这点是矩阵分解的特点.
\(k\)小于\(l\)之后能实现降维, 我猜想这样是否还可以总结为特征提取? (待确定)
3.学习模型
3.1 理论可能
首先通过对\(W^{T}\)矩阵的拟合, 得到以\(W^{T}X\)为计算结果的矩阵\(V\), 这是线性模型, 若这时\(k\)退化为\(l\), 那么\(V\)其实就是目标矩阵\(Y\)了. 但是实际不然, 我们得到仍然是包含隐因子的\(k\)行矩阵\(V\), 是" 隐含标签 " 矩阵, " 潜在标签 " 矩阵. 同时隐含标签彼此之前也没有建立任何联系, 因为当你展开这个矩阵乘法后, 任何的\(\vec{\mathbf{w}_{i}}\)(\(W\)的任意一列, 即\(W^T\)的任意一列)都是服务于某个\(i\)号隐因子\((0 \leq i < k)\), 并且作用于\(n\)个数据项, 体现这个隐因子对于所有数据项的分析. 而每个因子之间没有关联, 无标签相关性——这是线性模型的不足
![](https://img-blog.csdnimg.cn/f9691c02b0784ea09f32a86e9dfa4466.png)
第二步再通过同时拟合\(U\)与\(V\)得到最终的\(Y\). 因为两个矩阵都不可确定, 因此这个过程很类似与Funk-QVD矩阵分解的手法, 即通过一个更低维的\(k\)去分解高维\(l\). Funk-QVD矩阵分解可以补齐原\(Y\)中的缺失矩阵, 这个手法经常出现在推荐系统或者一些粗糙的预测中.
在拟合\(V\)的过程中, 通过之前\(W^T\)与\(X\)的拟合可以粗略认为\(V\)的某一行值已经蕴含了当初隐因子\(\vec{\mathbf{w}_{i}}\)对于\(n\)个数据项的全部信息. 自然\(V\)的每个行都包含了不同隐因子的类似信息. 之后\(U\)任意取出一行与\(V\)的列做矩阵惩罚就自然把每个隐因子都考虑到了, 这就体现了隐因子的相关性. 再由隐因子与标签之前的映射不难得出标签的相关性.
(上述推断有误欢迎指正, 这都是我对于论文给出的公式去试着揣度其表现的标签相关性的一些可能性)
3.2 公式模型
首先确定一点, 只要能拟合出\(\mathbf{U},\mathbf{V}, \mathbf{W}\), 那么可以通过\(\mathbf{U W}^{\mathrm{T}} \mathbf{x}\)预测出某个标签列的全部情况. (\(\mathbf{x}\)是\(\mathbf{X}\)的某列)
首先, 确定拟合的两个回合得到基本部分:\[\min _{\mathbf{U}, \mathbf{V}, \mathbf{w}}\left\|\Pi_{\Omega}(\mathbf{Y}-\mathbf{U V})\right\|_{F}^{2}+\lambda\left\|\mathbf{V}-\mathbf{W}^{\mathrm{T}} \mathbf{X}\right\|_{F}^{2}\]前者是矩阵分解的拟合, 因为矩阵分解拟合过程中不对原\(Y\)缺失部分进行惩罚, 因而用算式\(\Pi_{\Omega}\)特别修饰了这个过程. 后者是拟合\(W^T\), 拟合目标是\(V\), 这里拟合的对象与材料都是实值, 故无修饰.
再附加对于拟合的矩阵进行相应的惩罚的正则项, 从而得到:\[\min _{\boldsymbol{U}, \boldsymbol{V}, \boldsymbol{W}}\left\|\Pi_{\Omega}(\boldsymbol{Y}-\boldsymbol{U} \boldsymbol{V})\right\|_{F}^{2}+\lambda\left\|\boldsymbol{V}-\boldsymbol{W}^{\top} \boldsymbol{X}\right\|_{F}^{2}+\lambda_{2} \mathcal{R}(\boldsymbol{U}, \boldsymbol{V}, \boldsymbol{W}) \tag{1}\] 正则惩罚手段有很多, 比如可以用一范数表示(在后续梯度下降时, 一范数好求导)
其实原作者在文中也解释了, 这里对于拟合目标的均差二范其实并不是严格的, 完全可以用其他任何的损失函数(可能是二范平方用于作为拟合的损失函数来求导比较经典吧?我猜测的)
若要预测的话, 定义\(\boldsymbol{f}(\boldsymbol{x})=\boldsymbol{U} \boldsymbol{W}^{\top} \boldsymbol{x}\) , 实际上一列\(\boldsymbol{x}\)只能预测得到对应\(f_j\), 即\(f_{j}(\boldsymbol{x})\)表示了对的第\(j\)个标签的\(\boldsymbol{x}\)预测值. 若令预测全体\(\boldsymbol{f}=\left[f_{1}, \cdots, f_{l}\right]^{\top}\), 可得\(\forall \boldsymbol{x} \in \boldsymbol{X}\) 有针对全局(Global)的预测矩阵\(F_0\) : \(F_{0}=\left[\boldsymbol{f}\left(\boldsymbol{x}_{1}\right), \cdots, \boldsymbol{f}\left(\boldsymbol{x}_{n}\right)\right]=\boldsymbol{U} \boldsymbol{W}^{\top} \boldsymbol{X}\)
得到了预测矩阵\(F\)之后, 文章进一步去利用了这个特性, 描述了子矩阵(Local)的通过相同手段拟合+预测得到的\(F_1, F_2, \dots ,F_m, \dots ,F_g\).
GLOCAL算法在刚刚的算式1中描述了全局性的兼容标签相关的多标签方案, 但是若想体现对于局部部分的约束, 就需要依靠这些\(F_m\). 首先我们将数据集\(X\)按照一些分簇手段分为\(g\)簇, 也就构成\(g\)个同长不同宽的子矩阵, 这些矩阵运用类似于全局的拟合方案得到预测矩阵集\(F_1, F_2, \dots ,F_m, \dots ,F_g\). 于是将这些预测结果也纳入了总损失函数的约束设置中:\[\min _{\boldsymbol{U}, \boldsymbol{V}, \boldsymbol{W}}\left\|\Pi_{\Omega}(\boldsymbol{Y}-\boldsymbol{U} \boldsymbol{V})\right\|_{F}^{2}+\lambda\left\|\boldsymbol{V}-\boldsymbol{W}^{\top} \boldsymbol{X}\right\|_{F}^{2}+\lambda_{2} \mathcal{R}(\boldsymbol{U}, \boldsymbol{V}, \boldsymbol{W})+\lambda_{3} \operatorname{tr}\left(\boldsymbol{F}_{0}^{\top} \boldsymbol{L}_{0} \boldsymbol{F}_{0}\right)+\sum_{m=1}^{g} \lambda_{4} \operatorname{tr}\left(\boldsymbol{F}_{m}^{\top} \boldsymbol{L}_{m} \boldsymbol{F}_{m}\right)\tag{2}\] 最后补上了两项, 分别是关于全局预测矩阵\(F_0\)与\(g\)个局部预测矩阵\(F_m\)的迹.
这两个惩罚其实是改造后的结果, 这两个每个的原式应当类似于\[\sum_{i, j} S_{i j}\left\|\boldsymbol{f}_{i,:}-\boldsymbol{f}_{j,:}\right\|_{2}^{2}\] (这里向量的二范数其实就是这两个\(f\)之间的欧式距离)这个惩罚式是来自一个考虑: 如果两个标签的正相关性越大, 那么相应的分类器输出就越接近(Intuitively, the more positively correlated two labels are,the closer are the corresponding classifier outputs, and vice versa.)
此考虑出自: S. Melacci and M. Belkin. Laplacian Support Vector Machines Trained in the Primal. Journal of Machine Learning Research, 12:1149–1184, 2011.
这个正则项被称之为" The manifold regularizer "这里的\(S_{ij}\)表示一个\(l \times l\)的全局标签相关性矩阵\(S_0\)中的一个点, 翻译过来就是\(i\)标签与\(j\)标签的相关程度, 标签相关程度\(S_{ij}\)是确定的, 当\(S_{ij}\)比较大时, 我们希望输出的\(f\)之间要足够小, 因为这才符合相似标签的输出特性(两个标签相似, 那么对于某个图像, A标签变得活跃后, 自然B标签也应该响应活跃, 这就是标签相关性, 体现在数值上这两个标签列应当距离较近). 所以当\(f\)彼此的欧式距离大了的话就会进行惩罚. 当\(S_{ij}\)比较小时, 因为整体乘了之后值并不大, 算法不会对这部分相关性不大的内容进行考量.
全局的The manifold regularizer可以等效写为\(\operatorname{tr}\left(\boldsymbol{F}_{0}^{\top} \boldsymbol{L}_{0} \boldsymbol{F}_{0}\right)\)(局部的部分将0换成对应的簇号就好了). 首先, 为什么要等效写? 因为原式计算量过大, 等效后计算量低, 好求导. 其次, 为什么等效? 这里有些数学渊源在里面, 总之经过相关论文测试, 这样的等效代替效果损失是可以接受的, 详情可见:
The manifold regularizer的等效代替为矩阵迹的原因: D. Luo, C. Ding, H. Huang, and T. Li. Non-negative laplacian embedding. In Proceedings of the 9th IEEE International Conference on Data Mining, pages 337–346, 2009.
最后, \(L_0\)是什么? \(S_0\)的Laplacian 矩阵, 它的使用弥补了原等效代替中\(S_0\)的功效, manifold regularizer的成功与否取决于是否有好的\(S_0\)(等效于是否有个好的\(L_0\)). 原因与推导见上论文.
\(L\)在实际拟合预测时又再度将其分为\(Z_m\), 并且因为\(L\)是正定的, 因此有\(\boldsymbol{L}_{m} = \boldsymbol{Z}_{m} \boldsymbol{Z}_{m}^{\top}\) 所以最终编程时其实我们需要拟合4个矩阵\(\boldsymbol{U}, \boldsymbol{V}, \boldsymbol{W}, \mathcal{Z}\) (注意! \(F\)是预测矩阵, 不是拟合目标)
4.代码思路方向
GLOCAL的算法采用的是交替最小化学习, 即在一次循环中固定其中三个矩阵, 然后更新另外一个. 这其中关于\( \mathcal{Z}_m \)的拟合是最先完成并且需要通过\(g\)次子矩阵拟合来完成.
详细的solving见原文.
(后续待之后进一步阅读来完善本篇, 有误欢迎指正)
简单总结
这篇将矩阵分解的思路引入到了多标签中, 解决了子空间的缺失值. 而且相比很多多标签算法, 它做到了全局与局部的兼容, 并且还保证了标签相关性. 这些特性可以作为以后我在研究过程中可以参考的地方, 当然这里讲到的manifold regularizer正则惩罚似乎是一个挺热门的方案, 有关多标签算法LSML也采用了类似的方案, 感觉好久可以专门了解下manifold regularizer这种手法. 此外通过这篇论文也在慢慢体会正则惩罚的使用思路.