在我们的现实生活中, 对象往往具有丰富的含义. 例如, 一篇报道可由多个段落或章节组成, 在对其按内容进行分类时, 可将其归为“体育”、“科技”等多个类别. 如果把报道的每个段落或章节看成一个示例, 把其所属的类别看成一个标记, 那么, 只用一个示例和一个标记来表示这篇报道则太过笼统, 表示出的对象也具有概念歧义性和语义歧义性[1]. 为了同时考察这两方面的歧义性, 多示例多标记(Multi-Instance Multi-Label, MIML)[2]学习框架应运而生. 多示例多标记学习框架已经成功应用于图像分类、文本分类、网页分类、基因序列编码[2]等问题. 解决MIML问题的基本方法是采用退化策略, 将MIML问题转化为单示例多标记或者多示例单标记, 最终将原问题变成经典的单示例单标记问题. 但是, 使用退化策略会造成标记之间联系信息的缺失, 从而影响分类的质量和效率.
针对这一问题, 文章提出了加入了标记相关性影响因子的MIMLSVM- LOC算法来对MIML问题进行求解. 改进后的算法采用混合Hausdorff距离进行聚类并将标记的局部相关性运用到MIMLSVM算法中之中, 提高了算法的分类准确率, 对原算法在退化策略实现过程中, 丢失标记之间关联信息的问题实现了优化. 具体来说, ML-LOC算法[3]是Huang和周志华在研究多标记学习问题时首先提出来的, 考察的是标记的局部相关性. 其基本思想是: 若示例集合可以被分成若干组, 则同组中的示例都有一个相同的标记相关性子集. 这种方法, 可以充分的利用标记之间的联系信息来提高分类准确率, 同时减少过大的输出空间, 达到较好的分类效果.
本文的组织结构如下: 第1节介绍相关工作, 第2节具体说明算法及原理, 第3节给出实验数据进行论证, 第4节内容是总结全文, 并综合评价提出的算法.
1 相关工作相较于以前的单示例单标记学习算法、多示例学习[4]算法和多标记学习[5]算法, 多示例多标记学习算法可以说是一种优化与改进.
目前, 在MIML框架下解决问题的方式主要有两种: 一种是以退化策略为理论依据, 通过进行多示例学习或多标记学习的转换, 使原MIML问题简化为一系列二类分类问题, 这些二类分类问题与标记空间每个类别一一对应. MIMLBOOST、MIMLSVM和MIMLSVM+等算法都是基于退化策略解决MIML问题的算法. 另一种是直接在MIML样本的环境下进行求解, 如D-MIMLSVM算法和M3MIML算法等.
周志华和Zhang提出了MIMLBOOST和MIMLSVM算法来解决MIML问题, 两者都是在退化策略的基础上进行的[6]. MIMLBOOST算法先将MIML问题转化为多示例单标记问题, 然后利用多示例学习算法MIBOOSTING[7] 进行后面的计算. MIMLSVM算法则是应用K-medoids[8]聚类算法将MIML问题转化为单示例多标记问题. 由于两者都没有考虑到实际分类中标记之间的联系信息, 使得分类的准确率下降.
Li在进行对果蝇基因进行标注的实验时, 使MIMLSVM+ 和E-MIMLSVM+算法[9]的基本概念出现了雏形. MIMLSVM+算法将MIML问题简化成单示例多标记问题进行求解, 并通过SVM分类器将标记独立出来. E-MIMLSVM+算法是在MIMLSVM+算法的基础上优化改进的算法, 应用多任务技术[10–12]使SVM分类器中考虑了标记之间的联系信息. E-MIMLSVM+算法的分类质量明显较高, 随之付出的代价是训练时间增多, 并且存储空间加大.
D-MIMLSVM[2]算法和M3MIML[13]算法是由周志华和Zhang提出的基于正则化机制及最大化间隔策略的算法, 皆为直接对MIML问题进行求解的典型算法. D-MIMLSVM算法假设相同样本的标记之间有一定的信息关系, 基于正则化机制对MIML问题进行求解. M3MIML算法是基于最大化间隔策略得到一个二次规划问题, 若分类系统包含
ML-LOC算法[3]是Huang和周志华在研究多标记学习问题时首先提出来的, 考察的是标记的局部相关性. ML-LOC算法在每一个示例中添加了一个蕴含标记相关性的向量作为LOC编码, 拓展了原始的特征向量. 其原理是因为相似的示例具有相似的标记相关性子集, 因此相似示例的LOC编码也就越相似. 因此本文首先对MIMLSVM算法中的聚类算法进行了改进, 之后结合ML-LOC算法对改进聚类方式后的MIMLSVM算法进行训练求解.
2 改进的算法 2.1 改进的MIMLSVM算法MIMLSVM算法[1]是一种退化算法, 该算法将MIML问题退化为单示例多标记问题进行求解. 给定MIML训练样本集
${d_h}\left( {A,B} \right) = \max \left\{ {{}_{a \in A}^{\max }{}_{b \in B}^{\min }\left\| {a - b} \right\|,{}_{b \in B}^{\max }{}_{a \in A}^{\min }\left\| {a - b} \right\|} \right\}$ | (1) |
其中,
${d_h}\left( {A,B} \right) = mixH(A,B) = \frac{{\sum\limits_{a \in A} {\mathop {\min }\limits_{b \in B} \left\| {a - b} \right\| + \sum\limits_{b \in B} {\mathop {\min }\limits_{a \in A} \left\| {b - a} \right\|} } }}{{\left| A \right| + \left| B \right|}}$ | (2) |
其中,
上述聚类过程完成后, 示例空间
在多示例多标记样本集向单示例多标记样本集转化完成后, MIMLSVM算法使用多标记学习中的MLSVM算法[13]对样本集进行训练. MLSVM算法将多标记问题分解为
在为每个标记建立完分类器后, 对于一个未知标记的样本, 根据T-criterion[15]方法, 由该样本在标记的分类器上的所得值决定该样本的标记所属类别.
2.2 ML-LOC算法ML-LOC算法是由Huang S.J.和Zhou Z.H.提出并命名的, 是对多标记学习算法的改进, 旨在对标记局部相关性进行考察. 其主要思想是将示例样本集划分成若干组, 并且同一组内的示例具有一致的标记相关性子集. 同时减少过大的输出空间, 将ML-LOC算法与改进的MIMLSVM算法结合后, 不仅可以使标记的作用信息更加完全的发挥作用, 使分类更加精准高效, 同时能够精简输出量, 优化空间存储[6].
首先给定一个训练样本集D, 令D表示为
${f_l}\left( {x,c} \right) = \left\langle {{w_l},\left[ {\Phi \left( x \right),c} \right]} \right\rangle = \left\langle {w_l^x,\Phi \left( x \right)} \right\rangle + \left\langle {w_l^c,c} \right\rangle $ | (3) |
在这里,
${}_{f,c}^{\min }\sum\limits_{i = 1}^n {V\left( {{x_i},{c_i},{y_i},f} \right) + {\lambda _1}\Omega \left( f \right) + {\lambda _2}Z\left( C \right)} $ | (4) |
其中,
$V\left( {{x_i},{c_i},{y_i},f} \right) = \sum\limits_{i = 1}^L {loss\left( {{x_i},{c_i},{y_{il}},{f_l}} \right)} $ | (5) |
其中,
$\Omega \left( f \right) = {\sum\limits_{l = 1}^L {\left\| {{w_l}} \right\|} ^2}$ | (6) |
式(4)中的
使用k-means聚类函数把训练样本集划分成
${p_j} = \frac{1}{{\left| {{C_i}} \right|}}\sum\nolimits_{{x_k} \in {G_i}} {{y_k}} $ | (7) |
任意一个示例
$Z(c) = \sum\limits_{i = 1}^n {\sum\limits_{j = 1}^m {{c_{ij}}{{\left\| {{y_i} - {p_i}} \right\|}^2}} } $ | (8) |
那么最终可以得出ML-LOC算法模型为:
$\begin{gathered} Z(c) = \sum\limits_{i = 1}^n {\sum\limits_{j = 1}^m {{c_{ij}}{{\left\| {{y_i} - {p_i}} \right\|}^2}} } \\ {\rm{ s.t.}}\;\;{y_{il}}\left\langle {{w_i}} \right.,\left. {\left[ {\varphi (x),{c_i}} \right]} \right\rangle \geqslant 1 - {\xi _{il}} \\ {\xi _{il}} \geqslant 0, \;\;{\forall i} \in \left\{ {1,2, \cdots, n} \right\} \\ \sum\limits_{j = 1}^m {{c_{ij}} = 1, \;\;{\forall i} \in \left\{ {1,2, \cdots,n} \right\}} \\ 0 \leqslant {c_{ij}} \leqslant 1, \;\;{\forall i} \in \left\{ {1,2, \cdots,n} \right\},\;j \in \left\{ {1,2, \cdots,m} \right\} \\ \end{gathered} $ | (9) |
可以看到,
MIMLSVM-LOC算法是基于退化策略的多示例多标记SVM算法. 该算法首先使用改进的k-medoids聚类算法得到聚类中心
将每一个包看作是原子对象, 则示例空间可划分为
(1) 在
1) 随机选取
2) 采用公式(2)中的混合Hausdorff 距离
3) 重新计算聚类中心.
${M_t} = {}_{A \in \Gamma }^{\arg \min }\sum\limits_{B \in \Gamma } {{d_M}\left( {A,B} \right)\left( {t = 1,2, \cdots,K} \right)} $ |
4) 重复2)和3)的过程,直至
(2) 得到每个包
(3) 对于标记
1) 通过k-means聚类[8]将
2) 使用交替优化方法求解式(9), 即固定其中的两个变量不变, 优化剩余的一个变量. 由于式(9)是下界有界的, 它将收敛达到最低限度.
3) 建立
(4) 对于未知标记的样本集
(5) 使用训练出来的分类函数进行预测:
$\begin{gathered} {Y^*} = \left\{ {{}_{y \in L}^{\arg \max }{f_y}\left( {{Z^*}} \right)|{f_y}\left( {{z^*}} \right) < 0,\forall y \in L} \right\} \\ \cup \left\{ {y|{f_y}\left( {{z^*}} \right) \geqslant 0,y \in L} \right\}\end{gathered} $ |
本文实验所用电脑配置Windows 7操作系统, Intel酷睿i7处理器, 4 G运行内存和128 G固态硬盘, 运行环境为Matlab R2014b.
3.1 数据集本文实验数据来自南京大学周志华等人提供的图像数据集与文本数据集[19]. 这两个数据集中的样本都是MIML样本, 即数据集中的每个样本由多个示例表示其概念, 并且由多个标记来标识其所属语义范畴.
图像数据集包含2000个场景图像, 每个图像都被分配一组标记. 共预定义5个类别, 分别是日落、沙漠、树、山以及海洋, 其中, 单标记样本数目约占77%左右, 双标记样本约占22%左右, 三标记样本数约占0.75%左右. 在该数据集中, 每幅图片所对应的MIML样本的示例数为9, 每一个示例用一个15维的特征向量表示.
文本数据集主要包括常见的七大类别. 该数据集从Reuters中移除无类别或无正文的文本和单类别文本, 随机选取部分样本, 获得2000个文档. 利用滑动窗口技术[14]将每篇文档表示为一个示例包, 包中的每个示例对应文档中的大小为50的滑动窗口所包围的一段文本片段. 包中的示例采取基于词频的词袋模型进行表示, 利用降维的方式, 将词频为前2%的词汇予以保留, 最终包中的所有示例都可以用243维的特征向量进行表示. 表1总结了图像样本集(Scene)和文本样本集(Reuters)的特征.
3.2 评价指标
本文采用多示例多标记领域的五个评价指标hamming loss、one-error、coverage、ranking loss和average precision进行评价. 设数据集
(1) hamming loss, 定义如下:
$hlos{s_s}(h) = \frac{1}{n}\sum\limits_{i = 1}^n {\frac{1}{{\left| y \right|}}\left| {h({X_i})\Delta {Y_i}} \right|} $ | (10) |
其中,
(2) one-error, 定义如下:
$ one - erro{r_s}(h) = \frac{1}{n}\sum\limits_{i = 1}^n {\left\{ {\left[ {\arg {{\max }_{y \in Y}}h({X_i},y) \notin {Y_i}} \right]} \right\}} $ | (11) |
其评价的主要内容是, 统计所考察样本的标记序列中, 最前端的标记不属于样本集合的情况, 同样的, 结果值小说明算法表现更优.
(3) coverage, 定义如下:
$ \operatorname{cov} erag{e_s}(h) = \frac{1}{n}\sum\limits_{i = 1}^n {{{\max }_{y \in {Y_i}}}ran{k^h}({X_i},y) - 1} $ | (12) |
coverage用于评价样本的标记集中, 覆盖某样本所有标记所用的搜索深度, 结果值小, 对应的算法效果更优.
(4) ranking loss, 定义如下:
$rlos{s_s}\left( h \right) = \frac{1}{n}\sum\limits_{i = 1}^n {\frac{1}{{\left| {{Y_i}} \right|}}\left| {{R_i}} \right|} $ | (13) |
其评价的内容是标记序列发生误排序的情况, 同以上四种标准, 结果值小则算法效果越好.
(5) average precision, 定义如下:
$avgpr{e_s}\left( h \right) = \frac{1}{n}\sum\limits_{i = 1}^n {\frac{1}{{\left| {{Y_i}} \right|}}\frac{{\left| {{P_i}} \right|}}{{ran{k^h}\left( {{X_i},l} \right)}}} $ | (14) |
其中,
本文将提出的MIMLSVM-LOC算法与MIMLSVM+算法、MIMLBOOST算法和MIMLSVM算法进行对比. 这三个算法都是基于退化策略的算法, 其中, MIMLSVM算法和MIMLSVM+算法将MIML问题转化为单示例多标记问题, 即为每一个标记建立一个SVM分类器进行求解, MIMLBOOST算法将MIML问题多示例简化成单标记问题, 最终利用多示例学习算法MIBOOSTING[7]解决问题.
MIMLBOOST和MIMLSVM算法的参数根据文献[10]的实验设置为它们的最佳值, 即将MIMLBOOST的boosting rounds的值设为25, MIMLSVM的高斯核为
表2和表3分别显示了四种不同的MIML算法在图像数据集、文本数据集上的实验数据值. 在表3和表4中, 黑体部分是MIMLSVM-LOC算法的实验结 果. 从表中数据可以分析, MIMLSVM算法的性能总体上优于MIMLBOOST算法, 这是由于训练集中具有两个以上类别标记的样本较少, 使得MIMLBOOST在从MIML样本简化为多示例单标记样本的过程中出现类别不平衡的问题, 影响了分类效果. MIMLSVM+算法的性能总体上优于MIMLSVM算法, MIMLSVM-LOC算法的性能总体上优于MIMLSVM+算法, 可见, 增加了标记之间的关联关系可以提高分类的效果. 因此, MIMLSVM-LOC算法在两种多示例多标记学习任务中的总体表现要优于其它MIML分类算法.
表4列举了四种算法在两个数据集上所用时间值观察表4可知, 黑体部分MIMLSVM-LOC算法耗时比MIMLSVM+算法略多, 与MIMLSVM算法基本持平, 远远小于MIMLBOOST算法, 因此MIMLSVM+算法耗时最短, MIMLSVM-LOC和MIMLSVM算法总体耗时相差不大, 但是分类效果却优于MIMLSVM算法. 而MIMLBOOST在文本样本集耗时虽较图像样本集有所减少, 但仍远远高于其他算法. 综上所述, MIMLSVM-LOC算法在图像和文本数据集上, 整体表现优异, 比较适用于解决多示例多标记问题.
4 总结针对退化策略中具有的标记关联信息丢失的问题, 本文提出了改进的MIMLSVM算法并将改进的算法与ML-LOC算法相结合, 提出MIMLSVM-LOC. 该算法采用混合Hausdorff距离进行聚类并借鉴ML-LOC算法的思想, 将示例样本集划分成若干组, 并且同一组内的示例具有一致的标记相关性子集, 减少过大的输出空间. 改进后的MIMLSVM-LOC算法, 不仅考虑到示例的几何关系同时也考虑到了标记的作用信息, 使分类更加精准高效, 同时能够精简输出量, 优化空间存储.
实验数据说明MIMLSVM-LOC算法的表现优于其它MIML分类算法, 比较适合应用于多示例多标记问题. 但是, 提出的方法仍存在待改进的地方:
(1) 参数取值问题. 本文中, 参数选取的值多为经验参数, 缺乏理论的指导. 参数的取值对于实验结果具有一定的影响, 因此, 如何使参数取值更加恰当是一个亟待解决的问题.
(2) 核函数选取问题. 本文实验中选用多示例核函数, 在实际应用中, 由于样本的不同, 核函数的选取也会影响实验的结果. 因此, 如何动态选取核函数, 仍是值得研究的方向.
[1] |
Zhou ZH, Zhang ML, Huang SJ, et al. MIML: A framework for learning with ambiguous objects. arXiv: 0808.3231, 2012.
|
[2] |
Zhou ZH, Zhang ML, Huang SJ, et al. Multi-instance multi-label learning. Artificial Intelligence, 2012, 176(1): 2291-2320. DOI:10.1016/j.artint.2011.10.002 |
[3] |
Huang SJ, Zhou ZH. Multi-label learning by exploiting label correlations locally. Proceedings of the 26th AAAI Conference on Artificial Intelligence. Toronto, ON, Canada. 2012. 949–955.
|
[4] |
Zhou ZH, Zhang ML. Solving multi-instance problems with classifier ensemble based on constructive clustering. Knowledge and Information Systems, 2007, 11(2): 155-170. DOI:10.1007/s10115-006-0029-3 |
[5] |
Osojnik A, Panov P, Džeroski S. Multi-label classification via multi-target regression on data streams. Machine Learning, 2017, 106(6): 745-770. DOI:10.1007/s10994-016-5613-5 |
[6] |
谢红薇, 李晓亮. 基于多示例的K-means聚类学习算法. 计算机工程, 2009, 35(22): 179-181. DOI:10.3969/j.issn.1000-3428.2009.22.061 |
[7] |
Wang JZ. Semi-supervised learning using ensembles of multiple 1D-embedding-based label boosting. International Journal of Wavelets, Multiresolution and Information Processing, 2016, 14(2): 1640001. DOI:10.1142/S0219691316400014 |
[8] |
Arora P, Dr D, Varshney S. Analysis of K-means and K-medoids algorithm for big data. Procedia Computer Science, 2016, 78: 507-512. DOI:10.1016/j.procs.2016.02.095 |
[9] |
Li YX, Ji SW, Kumar S, et al. Drosophila gene expression pattern annotation through multi-instance multi-label learning. IEEE/ACM Transactions on Computational Biology and Bioinformatics, 2012, 9(1): 98-112. DOI:10.1109/TCBB.2011.73 |
[10] |
Zhou ZH, Zhang ML. Multi-instance multi-label learning with application to scene classification. Proceedings of the 19th International Conference on Neural Information Processing Systems. Canada. 2007. 1609–1616.
|
[11] |
Su C, Yang F, Zhang SL, et al. Multi-task learning with low rank attribute embedding for person Re-identification. Proceedings of 2015 IEEE International Conference on Computer Vision. Santiago, Chile. 2015. 3739–3747.
|
[12] |
Evgeniou T, Micchelli C A, Pontil M. Learning multiple tasks with kernel methods. The Journal of Machine Learning Research, 2005, 6: 615–637.
|
[13] |
Boutell MR, Luo JB, Shen XP, et al. Learning multi-label scene classification. Pattern Recognition, 2004, 37(9): 1757-1771. DOI:10.1016/j.patcog.2004.03.009 |
[14] |
Andrews S, Tsochantaridis I, Hofmann T. Support vector machines for multiple-instance learning. Advances in Neural Information Processing Systems, 2003, 15(2): 561-568. |
[15] |
Tong S, Koller D. Support vector machine active learning with applications to text classification. The Journal of Machine Learning Research, 2002, 2: 45-66. |
[16] |
Teisseyre P. CCnet: Joint multi-label classification and feature selection using classifier chains and elastic net regularization. Neurocomputing, 2017, 235: 98-111. DOI:10.1016/j.neucom.2017.01.004 |
[17] |
Li CH, Zhang YL, Lu L. An MIMLSVM algorithm based on ECC. Applied Intelligence, 2015, 42(3): 537-543. DOI:10.1007/s10489-014-0608-z |
[18] |
Briggs F, Fern XZ, Raich R. Context-aware MIML instance annotation: Exploiting label correlations with classifier chains. Knowledge and Information Systems, 2015, 43(1): 53-79. DOI:10.1007/s10115-014-0781-8 |
[19] |
Sebastiani F. Machine learning in automated text categorization. ACM Computing Surveys, 2002, 34(1): 1-47. DOI:10.1145/505282.505283 |