最近導師讓我做並行多工學習方面的工作,我開始著手閱讀這方面的論文並歸納一個大致的速覽。首先,我們看看什麼是多工學習,然後我們主要聚焦於基於正則化的多工學習方法(這也是目前學術界主要的並行物件),並在此基礎上討論如何分散式並行。
1、多工學習介紹
類似於遷移學習,多工學習也運用了知識遷移的思想,即在不同任務間泛化知識。但二者的區別在於:
- 遷移學習可能有多個源域;而多工學習沒有源域而只有多個目標域。
- 遷移學習注重提升目標任務效能,並不關心源任務的效能(知識由源任務\(\rightarrow\)目標任務;而多工學習旨在提高所有任務的效能(知識在所有任務間相互傳遞)。
下圖從知識遷移流的角度來說明遷移學習和多工學習之間的區別所示:
不嚴格地說,多工學習的目標為利用多個彼此相關的學習任務中的有用資訊來共同對這些任務進行學習(一般會將各任務的損失函式加起來一起優化)。
形式化地,多工學習的定義如下:給定\(T\)個學習任務\(\{\mathcal{T}_t\}_{t=1}^{T}\),其中所有任務或者其中某些任務是相關的但不相同。多工學習旨在利用這\(T\)個任務中的知識來提高所有\(\mathcal{T}_t\)的學習效能。
多工學習按照學習任務性質不同可分為多工監督學習、多工無監督學習、多工主動學習、多工強化學習、多工線上學習等。下面我們僅介紹最常見的多工監督學習。
多工監督學習每個任務都是監督學習,目的是學習樣本到標籤的的對映。 形式化地說,給定\(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)的,無法完成我們的多工學習任務。在多工學習中一種典型的方法為增加一個正則項[1][2][3]:
這裡\(g(\textbf{W})\)編碼了任務的相關性(多工學習的假定)並結合了\(T\)個任務;\(\lambda\)是一個正則化引數,用於控制有多少知識在任務間共享。在許多論文中,都假設了損失函式\(f(\textbf{W})\)是凸的,且是\(L\text{-Lipschitz}\)可導的(對\(L>0\)),然而正則項\(g(\textbf{W})\)雖然常常不滿足凸性(比如採用矩陣的核範數),但是我們認為其實接近凸的,可以採用近端梯度演算法(proximal gradient methods)[4]來求解。
2、多工監督學習
多工監督學習的關鍵是找到任務之間的相關性。根據找到的任務相關性不同,可分為基於特徵的多工監督學習、基於模型的多工監督學習和基於樣本的多工監督學習。下面我們主要介紹基於特徵和基於模型的這兩種。
(1)基於特徵的多工監督學習的分類
a. 特徵變換
即通過線性/非線性變換由原始特徵構建共享特徵表示。這種方法最招可追溯到使用多層前饋網路(Caruana, 1997)[5],如下圖所示:
該示例中,假設所有任務的輸入相同,將多層前饋網路的隱藏層輸出視為所有任務共享的特徵表示,將輸出層的輸出視為對\(T\)個任務的預測結果。
如果採用我們之前所提到的正則化框架,多工特徵學習(Multi-Task Feature Learning, MTFL)方法[6][7](Argyrious等人,2006、2008)和多工稀疏編碼(Multi-Task Sparse Coding, MTSC)[8]方法(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}\)[9][10](Obozinski等人,2006、2010)和\(l_{\infin}\)無窮正則化[11](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等人[12](2013)提出了上限\(l_{p, 1}\)懲罰項\(\sum_{i=1}^{d}\min(||\bm{w}^i||_p, \theta)\),當\(\theta\)足夠大時它將退化為\(l_{p, 1}\)正則化。
(2)基於模型的多工監督學習
a. 共享子空間學習(shared subspace learning)
該方法的假設引數矩陣\(\textbf{W}\)為低秩矩陣,以使相似的任務擁有相似的引數向量(即\(\textbf{W}\)的\(T\)個列向量儘量線性相關),以使\(T\)個任務的模型引數\(\bm{w_t}\)都來自一個共享低秩子空間。Ando和Zhang(2005)[13]提出了一個對\(\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)[14]通過為\(\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[15](Fazel等人, 2001)的緊的凸鬆弛,可以用近端梯度下降法求解。
b. 聚類方法
該方法受聚類方法的啟發,基本思想為:將任務分為若個個簇,每個簇內部的任務在模型引數上更相似。
Thrun等人(1996)[16]提出了第一個任務聚類演算法,它包含兩個階段。在第一階段,該方法根據在單任務下單獨學習得到的模型來聚類任務,確定不同的任務簇。在第二階段,聚合同一個任務簇中的所有訓練資料,以學習這些任務的模型。這種方法把任務聚類和模型引數學習分為了兩個階段,可能得不到最優解,因此後續工作都採用了同時學習任務聚類和模型引數的方法。
Bakker等人(2003)[17]提出了一個多工貝葉斯神經網路(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)[18]根據模型引數應用Dirichlet過程(一種廣泛用於資料聚類的貝葉斯模型)對任務進行分組。
除了依賴貝葉斯模型的方法,還有一些正則化方法也被用於分組任務。如Jocob等人(2008)[19]提出了一個正則化項,將任務簇內部和之間的差異都考慮在內,以幫助學習任務簇,目標函式為:
其中第一個正則項度量所有任務任務平均權重的大小,第二個正則項表示任務簇內部的差異和簇之間的差異。\(\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)[20]將式\((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)[21]提出了先將任務劃分為多個層次,然後再分別將各個層次的任務劃分為簇。我們假定有\(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)[22]以及Barizilai和Crammer(2015)[23]都提出了\(\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] 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.
- [2] Zhou J, Chen J, Ye J. Malsar: Multi-task learning via structural regularization[J]. Arizona State University, 2011, 21.
- [3] Zhou J, Chen J, Ye J. Clustered multi-task learning via alternating structure optimization[J]. Advances in neural information processing systems, 2011, 2011: 702.
- [4] 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.
- [5] Caruana R. Multitask learning[J]. Machine learning, 1997, 28(1): 41-75
- [6] Evgeniou A, Pontil M. Multi-task feature learning[J]. Advances in neural information processing systems, 2007, 19: 41.
- [7] Argyriou A, Evgeniou T, Pontil M. Convex multi-task feature learning[J]. Machine learning, 2008, 73(3): 243-272.
- [8] Maurer A, Pontil M, Romera-Paredes B. Sparse coding for multitask and transfer learning[C]//International conference on machine learning. PMLR, 2013: 343-351.
- [9] Obozinski G, Taskar B, Jordan M. Multi-task feature selection[J]. Statistics Department, UC Berkeley, Tech. Rep, 2006, 2(2.2): 2.
- [10] 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.
- [11] 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.
- [12] Gong P, Ye J, Zhang C. Multi-stage multi-task feature learning[J]. arXiv preprint arXiv:1210.5806, 2012.
- [13] 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).
- [14] 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.
- [15] 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.
- [16] Thrun S, O'Sullivan J. Discovering structure in multiple learning tasks: The TC algorithm[C]//ICML. 1996, 96: 489-497.
- [17] Bakker B J, Heskes T M. Task clustering and gating for bayesian multitask learning[J]. 2003.
- [18] 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).
- [19] Zhou J, Chen J, Ye J. Clustered multi-task learning via alternating structure optimization[J]. Advances in neural information processing systems, 2011, 2011: 702.
- [20] Kang Z, Grauman K, Sha F. Learning with whom to share in multi-task feature learning[C]//ICML. 2011.
- [21] Han L, Zhang Y. Learning multi-level task groups in multi-task learning[C]//Twenty-Ninth AAAI Conference on Artificial Intelligence. 2015.
- [22] Kumar A, Daume III H. Learning task grouping and overlap in multi-task learning[J]. arXiv preprint arXiv:1206.6417, 2012.
- [23] Barzilai A, Crammer K. Convex multi-task learning by clustering[C]//Artificial Intelligence and Statistics. PMLR, 2015: 65-73.
- [24] 楊強等. 遷移學習[M].機械工業出版社, 2020.