CoCoA:大規模機器學習的分散式最佳化通用框架

李亞洲發表於2017-08-27

去年,Michael I. Jordan 實驗室發表論文《CoCoA: A General Framework for Communication-Efficient Distributed Optimization》提出了一種用於機器學習的分散式最佳化的通用框架 CoCoA。機器之心技術顧問 Yanchen Wang 對該研究進行了深度解讀。


引言

在做深度學習時,現代資料集的規模必需高效的設計和開發,而且理論上演算法也要進行分散式最佳化。分散式系統可以實現可擴充套件性——不管是垂直擴充套件還是水平擴充套件,提升計算和儲存能力;但同時也讓演算法設計者面臨著一些獨特的難題。其中一個尤其關鍵的難題是在機器學習負載的背景下,開發能有效地協調機器之間的通訊的方法。對大多數生產叢集而言,網路通訊確實比單臺工作機器上的本地記憶體存取要慢得多;但是,擴充套件單臺機器顯然不可行。這個問題還可以更加複雜,本地計算和遠端通訊之間的最優平衡取決於資料集的特定屬性(比如維度、資料點的數量、稀疏度、偏度等)、分散式系統的特定屬性(比如資料儲存格式、分散式方案和資料存取模式等邏輯方面的設計,以及網路層次結構、頻寬、計算例項規範等物理方面的條件)和負載的特定屬性(比如簡單的 ETL 過程肯定不同於 logistic 迴歸的迭代式擬合)。因此,演算法設計者必須要讓他們的最佳化/機器學習演算法具有足夠的靈活性,從而在保證快速收斂的前提下實現特定分散式系統的「計算-通訊」的最優平衡。

CoCoA 是加州大學伯克利分校 Michael I. Jordan 的實驗室最近提出的一個框架,透過對多種多樣的最佳化問題的智慧分解而實現了上述目標。透過自由選擇原始或對偶的目標來解決,該框架成功利用了凸對偶性(convex duality),從而可將全域性問題分解成一攬子可在工作機器上有效並行求解的子問題,並且可以將區域性更新組合起來以一種可證明的方式確保快速全域性收斂。CoCoA 有兩個顯著優勢:1)在每臺工作機器上都可以最有效地執行任意本地求解器;2)計算-通訊的權衡可以作為形式化問題的一部分進行調節,因此可以對每個不同的問題和資料集進行有效的調節。

根據資料在分散式叢集上的分佈情況(不管是根據特徵還是根據資料點),CoCoA 可以將全域性問題分解成近似的區域性子問題,推薦應求解原始目標或是對偶目標。每個子問題都使用當前最佳的現成單臺機器求解器解決,然後在單一一步 REDUCE 步驟中將來自每次迭代的區域性更新組合起來(REDUCE 這個術語借用自 MAP-REDUCE)。實驗表明 CoCoA 可以在 SVM、線性/logistic 迴歸和 lasso 演算法上實現最高 50 倍的加速。

在這篇報告中,我們將瞭解 CoCoA 的核心思想和最重要的結論,感興趣的讀者可以在參考文獻中找到詳細論證和更多實驗。本報告的目標是啟發我們分散式機器學習領域的讀者以及邀請更多人加入到我們的討論中,與我們交流知識以及為我們的技術社群做出貢獻。

問題設定

CoCoA 的目標是解決機器學習演算法中普遍存在的下面一類最佳化問題:


CoCoA:大規模機器學習的分散式最佳化通用框架

其中 l 和 r 是向量變數 u 的凸函式。在機器學習領域,l 通常是一個單獨的函式,表示所有資料點的經驗損失(empirical loss)的總和CoCoA:大規模機器學習的分散式最佳化通用框架;而CoCoA:大規模機器學習的分散式最佳化通用框架,表示 p 範數的正則化項。SVM、線性/logistic 迴歸、lasso 和稀疏 logistic 迴歸都屬於這個類別。這個問題通常是在原始空間或對偶空間解決的。在我們的討論中,我們將這種原始/對偶問題抽象成了下面的 Fenchel-Rockafeller 對偶形式:

CoCoA:大規模機器學習的分散式最佳化通用框架

其中 α 和 w 是原始/對偶變數,A 是包含資料點列向量的資料矩陣,而 f* 和 g* 則是 f 和 g 的凸共軛。非負的對偶間隙(duality gap)CoCoA:大規模機器學習的分散式最佳化通用框架,其中 w(α)=∇f(Aα),為原始或對偶的次優性(suboptimality)提供了一個可計算的上限,並且可以在強凸性下在最優解點減少到零。它可以用於驗證解的質量和用作是否收斂的標誌。根據 l 的平滑度和 r 的強凸性,我們可以將目標 l(u)+r(u) 對映到 OA 或 OB:


CoCoA:大規模機器學習的分散式最佳化通用框架

每種情況的典型案例有:彈性網路迴歸是 Case I,lasso 是 Case II,SVM 是 Case III。這裡省略了推倒過程。

CoCoA 框架

要在資料分佈在 K 臺機器上時最小化目標 OA,我們需要將計算分配給 K 個區域性子樣本並在每次全域性迭代過程中將 K 個區域性更新組合起來。首先將資料矩陣 A 的列分成 K 個資料分割槽CoCoA:大規模機器學習的分散式最佳化通用框架。對於每個工作機器 k,定義CoCoA:大規模機器學習的分散式最佳化通用框架,其中當 i∈Pk 時,CoCoA:大規模機器學習的分散式最佳化通用框架,否則CoCoA:大規模機器學習的分散式最佳化通用框架。注意這種表示方式與資料的分佈方式無關——資料矩陣CoCoA:大規模機器學習的分散式最佳化通用框架的維度 n 和 d 各自都可以表示特徵的數量或資料點的數量。這種可互換性是 CoCoA 的一個顯著優勢——提供了靈活的資料分割槽方式,透過特徵或資料點都可以,這取決於哪個更大以及使用了哪種演算法。

分佈 g(α) 很簡單,因為它是可分的CoCoA:大規模機器學習的分散式最佳化通用框架 ;但要分佈 f(Aα),我們需要最小化它的二次近似。我們定義了以下僅讀取區域性資料子樣本的區域性二次子問題:


CoCoA:大規模機器學習的分散式最佳化通用框架

表示機器 k 上的一組列,類似於 CoCoA:大規模機器學習的分散式最佳化通用框架是來自前一次迭代的共享向量,CoCoA:大規模機器學習的分散式最佳化通用框架表示區域性變數αi 在所有 i∈Pk 上的變化,而且在 i∉Pk 時為零。這個子問題是圍繞固定的 v 的臨近區域 f 的線性化,可以透過大多數有效的二次最佳化求解器解出。可以直觀地看到,CoCoA:大規模機器學習的分散式最佳化通用框架試圖隨區域性CoCoA:大規模機器學習的分散式最佳化通用框架變化而非常近地近似全域性目標 OA。如果每個區域性子問題都可以得到最優解,那麼 REDUCE K 個更新可以被解讀成一個獨立於資料的、與資料塊無關的近似 OA 的 f 部分的步驟。但是,和傳統的近似方法不同,CoCoA 並不需要完美的區域性解。相反,它容許區域性次優性(定義為與最優的期望絕對偏差),並且會將其整合進自己的收斂邊界中,下面就可以看到。有些實踐者想複用已有的針對特定問題、資料集和機器配置最佳化的單個求解器,對於他們而言,這是一個巨大的優勢。

完整演算法如下:

CoCoA:大規模機器學習的分散式最佳化通用框架

其中有兩個可調節的超引數:γ 控制了工作機器的更新的組合方式,σ' 則表示資料分割槽的難度。實際上,對於一個給定的 γ∈(0,1],我們設 σ':=γK。γ=1 且 σ'=K 能保證最快的收斂速度,儘管理論上任何CoCoA:大規模機器學習的分散式最佳化通用框架都應該是足夠的。詳細證明請參閱原論文。

CoCoA 的原始-對偶靈活性是一大主要優勢。儘管事實上我們一直都在求解 OA,但我們可以自由地把它看作是CoCoA:大規模機器學習的分散式最佳化通用框架的原始或對偶——如果我們將這個原始問題對映成了 OA,那麼 OA 就是原始;如果我們將其對映成了 OB,那麼 OA 就是對偶。將 OA 看作原始讓我們可以求解 lasso 這樣的非強凸性正則化項,通常這是當資料按特徵分佈,而不是按資料點分佈的時候。這能很好地適用於 lasso、稀疏 logistic 迴歸或其它類似 L1 的誘導稀疏性的先驗(sparsity-inducing priors)。求解 CoCoA 的這種原始變體每次全域性迭代的通訊成本為 O(資料點的數量)。另一方面,將 OA 看作對偶讓我們可以考慮非平滑損失,比如 SVM 的 hinge loss 或絕對偏差損失,而且當資料是按資料點而非特徵分佈時效果最好。這種變體每次全域性迭代的通訊成本為 O(特徵數量)。下面是對這兩種 CoCoA 變體的總結:


CoCoA:大規模機器學習的分散式最佳化通用框架

複用上面的表格,我們現在得到:

CoCoA:大規模機器學習的分散式最佳化通用框架

下表給出了在 CoCoA 框架中構建的常見模型的例子:

 CoCoA:大規模機器學習的分散式最佳化通用框架

在原始的設定(演算法 2)中,區域性子問題CoCoA:大規模機器學習的分散式最佳化通用框架變成了在區域性資料塊上的二次問題,其中僅有區域性的CoCoA:大規模機器學習的分散式最佳化通用框架是正則化的。在對偶的設定(演算法 3)中,經驗損失僅應用於區域性CoCoA:大規模機器學習的分散式最佳化通用框架,這使用了由一個二次項近似的正則化項。

收斂分析

關於收斂的詳細論證過於技術,會把我們的討論弄得比較混亂,為了避免這種情況,我們這裡僅給出了關鍵結果。感興趣的讀者可以檢視原始論文詳細瞭解。

為了簡化我們的演示,這裡給出了我們的三個主要假設:

  1. 資料在 K 臺機器上均等分配;
  2. 資料矩陣 A 的列滿足 ||xi||≤1;
  3. 我們僅考慮 γ=1 且 σ'=K 的情況,這能保證收斂,而且在分散式環境中的收斂速度也最快。

我們的第一個收斂結果涉及到使用一般凸性的 gi 或 L-Lipschitz 的CoCoA:大規模機器學習的分散式最佳化通用框架(這兩個條件是等價的)


CoCoA:大規模機器學習的分散式最佳化通用框架

其中 L-bounded support 和CoCoA:大規模機器學習的分散式最佳化通用框架 -smooth 的定義可以在原論文找到。這個定理涵蓋了帶有非強凸性正則化項(比如 lasso 和稀疏 logistic 迴歸)的模型或帶有非平滑損失(比如 SVM 的 hinge loss)的模型。

我們還可以證明在強凸性的 gi 或平滑的CoCoA:大規模機器學習的分散式最佳化通用框架(這兩個條件也是等價的)上有更快的線性收斂速度,這涵蓋了彈性網路迴歸和 logistic 迴歸:


CoCoA:大規模機器學習的分散式最佳化通用框架

類似地,μ-strong convexity 的定義也可以在原論文找到。

這兩個定理都參考了下列假設作為區域性解 Θ 的質量的定義。

CoCoA:大規模機器學習的分散式最佳化通用框架

這個假設基本上將 Θ 定義成了區域性二次問題的經驗絕對偏差之前的相乘的常數。實際情況下,並行地分配到區域性計算的時間應該差不多等於池化所有 K 個工作機器的更新的全部通訊時間成本。

將這些收斂定理與我們前面的類別關聯起來:

CoCoA:大規模機器學習的分散式最佳化通用框架

實驗

我們將 CoCoA 與幾種適用於 lasso、彈性網路迴歸和 SVM 的當前最佳的通用大規模分散式最佳化演算法進行了比較:

  1. MB-SGD:minibatch 隨機梯度下降。對於 lasso,我們在 L1-prox 上與 MB-SGD 進行了比較。我們在 Apache Spark MLlib v1.5.0 中進行了實現和最佳化。
  2. GD:完全梯度下降。對於 lasso,我們使用了近似版本 PROX-GD。我們在 Apache Spark MLlib v1.5.0 中進行了實現和最佳化。
  3. L-BFGS:有限記憶體擬牛頓法。對於 lasso,我們使用了 OWL-QN(orthant-wise limited quasi-Newton method)。我們在 Apache Spark MLlib v1.5.0 中進行了實現和最佳化。
  4. ADMM:交替方向乘子法。對於 lasso,我們使用了共軛梯度;對於 SVM,我們使用了 SDCA(隨機對偶座標上升)。
  5. MB-CD:minibatch 並行化的座標下降。對於 SVM,我們使用了 MB-SDCA。

為了避免麻煩,這些不談每種參與比較的方法的調參細節。感興趣的讀者可以參考原論文,以便重現論文的結果。對於 CoCoA,所有的實驗在單機上都使用了隨機座標下降作為區域性求解器。如果使用更加複雜的求解器,當然有可能進一步提升表現水平。這個開放性的實踐就留給感興趣的讀者探索吧。

我們比較的指標是離原始最優(primal optimality)的距離。為此我們為所有方法都執行了大量迭代次數,直到觀察不到明顯的進展為止,然後選擇其中最小的原始值。使用的資料集是:

CoCoA:大規模機器學習的分散式最佳化通用框架

所有程式碼都是用 Apache Spark 編寫的,並且都執行在 Amazon EC2 m3.xlarge 例項上(每臺機器一個核)。程式碼已釋出到 GitHub:www.github.com/gingsmith/proxcocoa

在原始的設定中,我們應用 CoCoA 在上述每個資料集上擬合 lasso 模型,其中使用了隨機座標下降作為區域性求解器,而總迭代次數 H 調節了區域性解的質量 Θ。我們也包括了多核 SHOTGUN 作為極端案例。對於 MB-CD、SHOTGUN 和原始 CoCoA,資料集是按特徵分佈的;而對於 MB-SGD、PROX-GD、OWL-QN 和 ADMM,資料集則是按資料點分佈的。以秒為單位繪製原始次優性,我們得到:

CoCoA:大規模機器學習的分散式最佳化通用框架

很顯然,就算與比較中最好的方法 OWL-QN 相比,CoCoA 的收斂速度也快了 50 多倍,而且在有大量特徵的資料集上表現最好,而這也正是 lasso 常常應用的領域。

在對偶的設定中,我們考慮的是擬合 SVM。CoCoA 使用隨機對偶座標上升作為區域性求解器。所有方法都按資料點分佈資料。顯然,CoCoA 的表現又超出了其它方法一大截。

CoCoA:大規模機器學習的分散式最佳化通用框架

為了理解 CoCoA 的原始-對偶互換性,我們讓其兩種變體都擬合了彈性網路迴歸模型,並使用了座標下降作為區域性求解器。

CoCoA:大規模機器學習的分散式最佳化通用框架

當資料集有大量特徵而非資料點時,原始 CoCoA 的表現更好,而且對強凸性的退化(deterioration)是穩健的。另一方面,當資料集有大量資料點而非特徵時,對偶 CoCoA 的表現更好,在針對強凸性的損失的穩健性方面不夠好。這提醒實踐者在面臨不同的問題設定時,應該使用不同的 CoCoA 變體——演算法 2 或演算法 3.

原論文還報告了更多有趣的發現,比如原始 CoCoA 可以保留區域性稀疏性,並會將其最終傳遞為全域性稀疏性;調節控制 Θ 的 H 允許機器學習系統設計者一路探索「計算-通訊」權衡曲線,以確定他們當前系統的最佳平衡所在。

總結

CoCoA 是一個通用分散式最佳化框架,可以在分散式叢集中實現通訊高效的原始-對偶最佳化。它的方式是利用對偶性將全域性目標分解成區域性二次近似子問題,而這些子問題可以使用架構師選擇的任意當前最佳的單機求解器並行地求解到任意準確度。CoCoA 的靈活性允許機器學習系統設計者和演算法開發者輕鬆探索分散式系統的「計算-通訊」權衡曲線,併為他們的特定硬體配置和計算負載選擇最優的平衡。在實驗中,CoCoA 將這種選擇總結歸納成了單個可調的超引數 H(迭代的總次數),它間接等效的 Θ(區域性解的質量)進入了關於原始和對偶 CoCoA 的收斂速度的兩個重要理論證明。實證結果表明 CoCoA 的表現可以以最高 50 倍的差距超越當前最佳的分散式最佳化方法。

參考文獻

[1] CoCoA: A General Framework for Communication-Efficient Distributed Optimization, V. Smith, S. Forte, C. Ma, M. Takac, M. I. Jordan, M. Jaggi, https://arxiv.org/abs/1611.02189

[2] Distributed Optimization with Arbitrary Local Solvers, C. Ma, J. Konecny, M. Jaggi, V. Smith, M. I. Jordan, P. Richtarik, M. Takac, Optimization Methods and Software, 2017, http://www.tandfonline.com/doi/full/10.1080/10556788.2016.1278445

[3] Adding vs. Averaging in Distributed Primal-Dual Optimization, C. Ma*, V. Smith*, M. Jaggi, M. I. Jordan, P. Richtarik, M. Takac, International Conference on Machine Learning (ICML '15), http://proceedings.mlr.press/v37/mab15.pdf

[4] Communication-Efficient Distributed Dual Coordinate Ascent, M. Jaggi*, V. Smith*, M. Takac, J. Terhorst, S. Krishnan, T. Hofmann, M. I. Jordan, Neural Information Processing Systems (NIPS '14), https://people.eecs.berkeley.edu/~vsmith/docs/cocoa.pdf

[5] L1-Regularized Distributed Optimization: A Communication-Efficient Primal-Dual Framework, V. Smith, S. Forte, M. I. Jordan, M. Jaggi, ML Systems Workshop at International Conference on Machine Learning (ICML '16), http://arxiv.org/abs/1512.04011 

相關文章