基于正则化的多任务学习
1.导言
现在多任务学习根据实现方法可以粗略地被分为两种,一个是基于神经网络的多任务学习[1][2][3][4],这种多任务学习在CV和NLP取得了大量的应用。
然而我们最根溯源,其实多任务学习最开始并不是基于神经网络的,而是另一种经典的方法——基于正则表示的多任务学习,我们这篇文章也主要介绍后者。为什么在深度学习称为主流的今天,我们还需要了解过去的传统方法呢?
首先,经典的多任务学习和基于神经网络的多任务学习方法本质上都是基于知识共享的思想,而这种思想其他领域,比如联邦学习中得到了大量的应用(参见我的博客《分布式多任务学习及联邦学习个性化》)。而经典的基于正则表示的多任务学习更容易分布式化,因此大多数联邦多任务学习的论文灵感其实都来源于经典方法。我的研究领域主要是联邦学习,故我们下面主要介绍经典多任务学习。
2、多任务学习简介
2.1 多任务学习:迁移学习和知识表示的延伸
多任务学习(Multi-task Learning, MTL)近年来在CV、NLP、推荐系统等领域都得到了广泛的应用。类似于迁移学习,多任务学习也运用了知识迁移的思想,即在不同任务间泛化知识。但二者的区别在于:
- 迁移学习可能有多个源域;而多任务学习没有源域而只有多个目标域。
- 迁移学习注重提升目标任务性能,并不关心源任务的性能(知识由源任务\(\rightarrow\)目标任务;而多任务学习旨在提高所有任务的性能(知识在所有任务间相互传递)。
下图从知识迁移流的角度来说明迁移学习和多任务学习之间的区别所示:
不严格地说,多任务学习的目标为利用多个彼此相关的学习任务中的有用信息来共同对这些任务进行学习。
2.2 多任务学习目前的两大主要实现方式
现在多任务学习根据数据的收集方式可以粗略地被分为两种,一个是集中化的计算方法,一种是分布式的计算方法,可以参见我的博客《分布式多任务学习及联邦学习个性化》。
3、基于正则化的多任务学习
3.1 基于正则化的多任务学习的形式表述
形式化地说,给定\(t\)个学习任务(我们这里只讨论监督学习)\(\{\mathcal{T}_t\}_{t=1}^T\),每个任务各有一个训练集\(\mathcal{D}_t = {\{(\bm{x}_{ti}, y_{ti})}_{i=1}^{m_t}\}\),其中\(\bm{x_{ti}} \in \mathbb{R}^{d}\),\(y_{ti} \in \mathbb{R}\)。多任务学习的目标是根据\(T\)个任务的训练集学习\(T\)个函数\(\{f_t(\bm{x})\}_{t=1}^{T}\),使得\(f_t(\bm{x}_{ti})\)可以很好的近似\(y_{ti}\)。学习完成后,\(f_t(\cdot)\)将用于对第\(t\)个任务中的新数据样本的标签进行预测。
接下来我们描述多任务学习的目标函数,若第\(t\)个任务的经验风险形式为\(\mathbb{E}_{(\bm{x_{ti}, y_{ti})\sim \mathcal{D}_t}}[L(y_{ti}, f(\bm{x}_{ti};\bm{w}_t))]\)(设\(\bm{w}_t\)为第\(t\)个模型的参数),则一般多任务学习的目标函数形式为
(此处\(\textbf{W}=(\bm{w}_1,\bm{w}_2,...,\bm{w}_T)\)为所有任务参数构成的矩阵)
不过,如果我们直接对各任务的损失函数和\(\sum_{t=1}^{T} [\frac{1}{m_t}\sum_{i=1}^{m_t}L(y_{ti}, f(\bm{x}_{ti}))]\)进行优化,我们发现不同任务的损失函数是解耦(decoupled)的,无法完成我们的多任务学习任务。在多任务学习中一种典型的方法为增加一个正则项[5][6][7]:
这里\(g(\textbf{W})\)编码了任务的相关性(多任务学习的假定)并结合了\(T\)个任务;\(\lambda\)是一个正则化参数,用于控制有多少知识在任务间共享。在许多论文中,都假设了损失函数\(f(\textbf{W})\)是凸的,且是\(L\text{-Lipschitz}\)可导的(对\(L>0\)),然而正则项\(g(\textbf{W})\)虽然常常不满足凸性(比如采用矩阵的核范数),但是我们认为其实接近凸的,可以采用近端梯度算法(proximal gradient methods)[8]来求解。
3.2 基于正则化的多任务学习分类
基于正则化的多任务学习依靠正则化来找到任务之间的相关性,大致可以分为基于特征和基于模型的这两种。
3.2.1 基于特征的多任务学习
a. 特征变换
即通过线性/非线性变换由原始特征构建共享特征表示。这种思想最早可追溯到多任务学习的开山论文——使用多层前馈网络(Caruana, 1997)[9],如下图所示:
该示例中,假设所有任务的输入相同,将多层前馈网络的隐藏层输出视为所有任务共享的特征表示,将输出层的输出视为对\(T\)个任务的预测结果。
如果采用我们采用正则化框架,多任务特征学习(Multi-Task Feature Learning, MTFL)方法[10][11](Argyrious等人,2006、2008)和多任务稀疏编码(Multi-Task Sparse Coding, MTSC)[12]方法(Maurer等, 2013)都通过酉变换\(\hat{\bm{x}}_{ti}= \textbf{U}^T\bm{x}_{ti}\)来为每个任务先构造共享特征表示, 再在此基础上为每个任务学习线性函数\(f_t(\bm{x}_{ti})=\langle \bm{a}_t, \hat{\bm{x}}_{ti} \rangle\)。设每个\(f_t(\bm{x}_{ti})\)的参数为\(\bm{a}_{t}\),设线性函数的参数矩阵为\(\textbf{A}=(\bm{a}_1,...,\bm{a}_T)\)。 该方法定义的优化问题表示如下:
这里\(\mathbf{U} \in \mathbb{R}^{d \times d}\)是酉(正交)矩阵。
与MTFL不同, MTSC方法的目标函数定义为
此时\(\mathbf{U}^T \in \mathbb{R}^{d^{'}\times d}(d^{'}<d)\),除了学习共享特征表示之外,还会起到降维的作用,\(d^{'}\)为降维后的新特征维度,此外我们通过\(l_1\)约束使\(\mathbf{A}\)是稀疏的。
b. 联合特征学习(joint feature learning)
通过特征选择得到原始特征的共享子集(shared feature subset),以做为共享的特征表示。我们常采用的方法是将参数矩阵\(\textbf{W}=(\bm{w}_1,...,\bm{w}_T)\)正则化使其称为行稀疏矩阵,从而去除特定特征对于线性模型预测的影响,只有对所有任务都有用的特征被保留。
所有正则化方法中,最广泛使用的是\(l_{p, q}\)正则化(即采用\(l_{p, q}\)范数做为正则项),其目标函数为:
\(l_{p, q}\)正则化的特例是\(l_{2, 1}\)[13][14](Obozinski等人,2006、2010)和\(l_{\infin}\)无穷正则化[15](Liu等人,2009b)。\(l_{2, 1}\)正则化中采用\(l{2, 1}\)范数\(||\textbf{W}||_{2, 1} = \sum_{i=1}^{d}||\bm{w}^{i}||_2\)(此处\(d\)为特征维度,\(\bm{w}^i\)为\(\textbf{W}\)第\(i\)行),\(l_{\infin,1}\)正则化采用\(l_{\infin, 1}\)范数\(||\mathbf{W}||_{\infin, 1}=\sum_{i=1}^d||\bm{w}^i||_{\infin}= \sum_{i=1}^d\underset{1\leqslant t \leqslant T}{\text{max}}|w_{jt}|\),即先对每一行方向求绝对值最大,然后再沿着行方向求和(注意区分这个和矩阵的\(\infin\)范数,求和与求最大的顺序是不一样的!这里相当于求向量的无穷范数之和))。为了获得对所有特征都有用的更紧凑的子集,Gong等人[16](2013)提出了上限\(l_{p, 1}\)惩罚项\(\sum_{i=1}^{d}\min(||\bm{w}^i||_p, \theta)\),当\(\theta\)足够大时它将退化为\(l_{p, 1}\)正则化。
3.2.2 基于模型的多任务监督学习
a. 共享子空间学习(shared subspace learning)
该方法的假设参数矩阵\(\textbf{W}\)为低秩矩阵,以使相似的任务拥有相似的参数向量(即\(\textbf{W}\)的\(T\)个列向量尽量线性相关),以使\(T\)个任务的模型参数\(\bm{w_t}\)都来自一个共享低秩子空间。Ando和Zhang(2005)[17]提出了一个对\(\bm{w}_t\)的参数化方式,即\(\bm{w}_t = \bm{p}_t + \mathbf{\Theta}^T \bm{q}_t\),其中线性变换\(\mathbf{\Theta}^T\in \mathbb{R}^{d^{'} \times d}(d^{'}<d)\)由于构建任务的共享子空间,\(\bm{p}_t\)是任务特定的参数向量。在正则项设计方面,我们在\(\mathbf{\Theta}\)上使用正交约束\(\mathbf{\Theta}{\Theta}^T = \mathbf{I}\)来消除冗余,此时相应的目标函数为:
Chen等人(2009)[18]通过为\(\mathbf{W}\)增加平方Frobenius正则化推广了这一模型(Frobenius范数表达式为\(||\mathbf{A}||_{F}= (\text{tr}(\mathbf{A}^T\mathbf{A}))^{1/2}=\left(\sum_{i=1}^m\sum_{j=1}^nA_{ij}^2 \right)^{1/2} = \left(\sum_{i=1}^{\min(d, T)}\sigma_i(\mathbf{A})^2\right)^{1/2}\)),并采用松弛技术将问题转换为了凸优化问题。
除此之外,根据优化理论,使用矩阵的核范数(nuclear norm, 有时也称迹范数(trace norm))\(||\mathbf{W}||_{*}= \text{tr}((\mathbf{A}^T\mathbf{A})^{1/2}) = \sum_{i=1}^{\min(d, T)}\sigma_i(\mathbf{W})\)来进行正则化会产生低秩矩阵,所以核范数正则化(pong等人)也在多任务学习中应用广泛,此时目标函数通常为:
核范数是一rank function[19](Fazel等人, 2001)的紧的凸松弛,可以用近端梯度下降法求解。
b. 聚类方法
该方法受聚类方法的启发,基本思想为:将任务分为若个个簇,每个簇内部的任务在模型参数上更相似。
Thrun等人(1996)[20]提出了第一个任务聚类算法,它包含两个阶段。在第一阶段,该方法根据在单任务下单独学习得到的模型来聚类任务,确定不同的任务簇。在第二阶段,聚合同一个任务簇中的所有训练数据,以学习这些任务的模型。这种方法把任务聚类和模型参数学习分为了两个阶段,可能得不到最优解,因此后续工作都采用了同时学习任务聚类和模型参数的方法。
Bakker等人(2003)[21]提出了一个多任务贝叶斯神经网络(multi-task Bayesian neural network),其结构与我们前面所展现的多层神经网络相同,其亮点在于基于连接隐藏层和输出层的权重采用高斯混合模型(Gaussian mixture model)对任务进行分组。若给定数据集\(\mathcal{D} = \{D_t\}, t=1,...,T\),设隐藏层维度为\(h\),输出层维度为\(T\),\(\mathbf{W}\in \mathbb{R}^{T\times (h + 1)}\)代表隐藏层到输出层的权重矩阵(结合了偏置)。我们假定每个任务对应的权重向量\(\mathbf{w}_t\)(\(\mathbf{W}\)的第\(t\)列)关于给定超参数独立同分布,我们假定第\(t\)个任务先验分布如下:
这是一个高斯分布,均值为\(\bm{u} \in \mathbb{R}^{h + 1}\),协方差矩阵\(\mathbf{\Sigma} \in \mathbb{R}^{ (h+1) \times (h+1)}\)。
我们上面的定义其实假定了所有任务属于一个簇,接下来我们假定我们有不同的簇(每个簇由相似的任务组成)。我们设有\(C\)个簇(cluster),则任务\(t\)的权重\(w_t\)为\(C\)个高斯分布的混合分布:
其中,每个高斯分布可以被认为是描述一个任务簇。式\((9)\)中的\(\alpha_c\)代表了任务\(t\)被分为簇\(c\)的先验概率,其中task clustering(如下面左图所示)模型中所有任务对簇\(c\)的加权\(\alpha_c\)都相同;而task-depenent模型(如下面右图所示)中各任务对簇\(c\)的加权\(\alpha_{tc}\)不同,且依赖于各任务特定的向量\(\bm{f}_t\)。
Xue等人(2007)[22]根据模型参数应用Dirichlet过程(一种广泛用于数据聚类的贝叶斯模型)对任务进行分组。
除了依赖贝叶斯模型的方法,还有一些正则化方法也被用于分组任务。如Jocob等人(2008)[23]提出了一个正则化项,将任务簇内部和之间的差异都考虑在内,以帮助学习任务簇,目标函数为:
其中第一个正则项度量所有任务任务平均权重的大小,第二个正则项表示任务簇内部的差异和簇之间的差异。\(\mathbf{\Pi} \in \mathbb{R}^{T \times T}\)表示中心化矩阵,\(\mathbf{A} \preccurlyeq \mathbf{B}\)表示\(\mathbf{B}-\mathbf{A}\)一定是半正定(Positive Semi-Definite, PSD)矩阵。\(\alpha\)、\(\beta\)、\(\gamma\)是三个超参数。注意在问题\((10)\)中,\(\mathbf{\Sigma}\)学习到了任务簇的结构,因此在解决优化问题\((10)\)之后,可以基于最优\(\mathbf{\Sigma}\)来确定任务簇结构。
Kang等人(2011)[24]将式\((3)\)所示的MTFL方法扩展到多个任务簇的情况下,其中每个任务簇中任务的学习模型是MTFL方法,其目标函数为:
这里\(||\cdot||_{*}\)是矩阵的迹范数。\(q_{ct}\in \{0, 1\}\) 是一个二值变量,表示任务\(t\)是否被分入第\(c\)个簇。矩阵\(\mathbf{Q} \in \mathbb{R}^{C\times T}\)以\(q_{ct}\)作为其元素,表示任务的划分情况。\(\mathbf{Q}_c \in \mathbb{R}^{T\times T}\)为第\(c\)个簇对应的对角矩阵,其对角元素为\(q_{ct}\),故对角矩阵\(\mathbf{Q}_c\)可用于识别第\(c\)个聚类的情况。
为了自动确定聚类的数量,Han和Zhang(2015a)[25]提出了先将任务划分为多个层次,然后再分别将各个层次的任务划分为簇。我们假定有\(H\)个任务层次(\(H\)为用户定义的超参数),我们将权重矩阵分解为:
\(\mathbf{W}_h\)用于学习第\(h\)层次的任务簇。\(\mathbf{W}_h = (\bm{w}_{h,1},...,\bm{w}_{h,T})\in \mathbb{R}^{d\times T}\),其中\(\bm{w}_{h, t}\)是在\(h\)层次中任务\(t\)的参数。该论文将最终的正则化的目标函数(论文称之为MeTaG方法)写为
这里\(\lambda_h\)是正的正则化参数,正则项用\(l_2\)范数度量了\(\mathbf{W}_h\)不同列向量之间的两两差异,促使\(\mathbf{W}_h\)中的每对列向量\(\bm{w}_{h, i}\)和\(\bm{w}_{h, j}\)相等(即强制融合每对任务的模型参数),这样在第\(h\)层的第\(i\)个和第\(j\)个任务就同属一个任务簇。\(\lambda_h\)控制了第\(h\)层的任务任务聚类的强度,\(\lambda_h\)越大则意味着在第\(h\)层的任务簇更少。当\(\lambda_h \rightarrow \infin\),\(\mathbf{W}_h\)所有列将趋于相同,即只有一个任务簇。在求解问题\((13)\)之后,通过比较\(\mathbf{W}_h\)矩阵的列就可以识别任务簇的结构并确定任务簇的数量。
Kumar和Daume(2012)[26]以及Barizilai和Crammer(2015)[27]都提出了\(\mathbf{W} = \mathbf{L}\mathbf{S}(\mathbf{W} \in \mathbb{R}^{d\times T}, \mathbf{L} \in \mathbb{R}^{d\times C}, \mathbf{S} \in \mathbb{R}^{C\times T})\)的分解形式,其中\(\textbf{L}\)的列\(\bm{l}_c\)对应任务簇\(c\)的隐(latent)参数,\(\textbf{S}\)的列\(\bm{s}_t\)对应一组线性组合系数(\(\bm{w}_t = \mathbf{L}\mathbf{s}_t\),相当于\(s_t\)对\(\mathbf{L}\)中各列进行线性组合,以得到\(\bm{w}_t\))。这两种方法的目标函数可以统一为
其中\(\mathbf{L}\)由Frobenius范数来进行正则化,但在这两种方法中,\(\mathbf{S}\)由不同的\(h(\cdot)\)函数惩罚。我们想让\(\mathbf{S}\)更稀疏,即让一个任务属于尽量少的任务簇(在本模型每个任务属于多个任务簇是合法的),因此Kumar和Daume(2012)定义了\(h(\mathbf{S}) = ||\mathbf{S}||_1\)(\(\text{Lasso}\))来完成稀疏化,而Barzilai和Crammer(2015)的定义方法更为严格
该正则函数试图为每个任务只指定单一的任务簇,这里\(C\)代表集群的数量,\(\mathbf{S}\)是一个\(C\times T\)的0-1矩阵,\(\bm{s}_t\)代表\(\mathbf{S}\)的第\(t\)列。
综上所述,聚类⽅法的思想可以总结为:将不同任务分为不同的独⽴簇,每个簇存在于⼀个低维空间,每个簇的任务共⽤同⼀个模型。我们可以通过交替迭代学习不同簇的分配权重和每个簇的模型权重。就这种方法而言,任务之间有强的关联性,并行化难度非常大,后面我们在提到如何将基于聚类的方法并行化时再细讲。
我们对基于正则化的多任务学习方法介绍就到此为止,后面我们会介绍如何采用不同的手段对这类方法进行分布式并行。
参考文献
-
[1] Long M, Cao Z, Wang J, et al. Learning multiple tasks with multilinear relationship networks[J]. arXiv preprint arXiv:1506.02117, 2015.
-
[2] Misra I, Shrivastava A, Gupta A, et al. Cross-stitch networks for multi-task learning[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 3994-4003.
-
[3] Hashimoto K, Xiong C, Tsuruoka Y, et al. A joint many-task model: Growing a neural network for multiple nlp tasks[J]. arXiv preprint arXiv:1611.01587, 2016.
-
[4] Kendall A, Gal Y, Cipolla R. Multi-task learning using uncertainty to weigh losses for scene geometry and semantics[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 7482-7491.
-
[5] Evgeniou T, Pontil M. Regularized multi--task learning[C]//Proceedings of the tenth ACM SIGKDD international conference on Knowledge discovery and data mining. 2004: 109-117.
-
[6] Zhou J, Chen J, Ye J. Malsar: Multi-task learning via structural regularization[J]. Arizona State University, 2011, 21.
-
[7] Zhou J, Chen J, Ye J. Clustered multi-task learning via alternating structure optimization[J]. Advances in neural information processing systems, 2011, 2011: 702.
-
[8] Ji S, Ye J. An accelerated gradient method for trace norm minimization[C]//Proceedings of the 26th annual international conference on machine learning. 2009: 457-464.
-
[9] Caruana R. Multitask learning[J]. Machine learning, 1997, 28(1): 41-75
-
[10] Evgeniou A, Pontil M. Multi-task feature learning[J]. Advances in neural information processing systems, 2007, 19: 41.
-
[11] Argyriou A, Evgeniou T, Pontil M. Convex multi-task feature learning[J]. Machine learning, 2008, 73(3): 243-272.
-
[12] Maurer A, Pontil M, Romera-Paredes B. Sparse coding for multitask and transfer learning[C]//International conference on machine learning. PMLR, 2013: 343-351.
-
[13] Obozinski G, Taskar B, Jordan M. Multi-task feature selection[J]. Statistics Department, UC Berkeley, Tech. Rep, 2006, 2(2.2): 2.
-
[14] Obozinski G, Taskar B, Jordan M I. Joint covariate selection and joint subspace selection for multiple classification problems[J]. Statistics and Computing, 2010, 20(2): 231-252.
-
[15] Liu H, Palatucci M, Zhang J. Blockwise coordinate descent procedures for the multi-task lasso, with applications to neural semantic basis discovery[C]//Proceedings of the 26th Annual International Conference on Machine Learning. 2009: 649-656.
-
[16] Gong P, Ye J, Zhang C. Multi-stage multi-task feature learning[J]. arXiv preprint arXiv:1210.5806, 2012.
-
[17] Ando R K, Zhang T, Bartlett P. A framework for learning predictive structures from multiple tasks and unlabeled data[J]. Journal of Machine Learning Research, 2005, 6(11).
-
[18] Chen J, Tang L, Liu J, et al. A convex formulation for learning shared structures from multiple tasks[C]//Proceedings of the 26th Annual International Conference on Machine Learning. 2009: 137-144.
-
[19] Fazel M, Hindi H, Boyd S P. A rank minimization heuristic with application to minimum order system approximation[C]//Proceedings of the 2001 American Control Conference.(Cat. No. 01CH37148). IEEE, 2001, 6: 4734-4739.
-
[20] Thrun S, O'Sullivan J. Discovering structure in multiple learning tasks: The TC algorithm[C]//ICML. 1996, 96: 489-497.
-
[21] Bakker B J, Heskes T M. Task clustering and gating for bayesian multitask learning[J]. 2003.
-
[22] Xue Y, Liao X, Carin L, et al. Multi-task learning for classification with dirichlet process priors[J]. Journal of Machine Learning Research, 2007, 8(1).
-
[23] Zhou J, Chen J, Ye J. Clustered multi-task learning via alternating structure optimization[J]. Advances in neural information processing systems, 2011, 2011: 702.
-
[24] Kang Z, Grauman K, Sha F. Learning with whom to share in multi-task feature learning[C]//ICML. 2011.
-
[25] Han L, Zhang Y. Learning multi-level task groups in multi-task learning[C]//Twenty-Ninth AAAI Conference on Artificial Intelligence. 2015.
-
[26] Kumar A, Daume III H. Learning task grouping and overlap in multi-task learning[J]. arXiv preprint arXiv:1206.6417, 2012.
-
[27] Barzilai A, Crammer K. Convex multi-task learning by clustering[C]//Artificial Intelligence and Statistics. PMLR, 2015: 65-73.
-
[28] 杨强等. 迁移学习[M].机械工业出版社, 2020.