《大数据》第1期“专题”——大数据机器学习系统研究进展(下)
6 跨平臺(tái)統(tǒng)一大數(shù)據(jù)機(jī)器學(xué)習(xí)系統(tǒng)Octopus的研究設(shè)計(jì)
6.1 Octopus的基本設(shè)計(jì)思想
上述絕大多數(shù)大數(shù)據(jù)機(jī)器學(xué)習(xí)方法和系統(tǒng)都是基于特定平臺(tái)構(gòu)建的,難以集成和兼容現(xiàn)有和未來出現(xiàn)的多種大數(shù)據(jù)處理引擎和平臺(tái)。現(xiàn)實(shí)世界中的各種大數(shù)據(jù)分析處理應(yīng)用通常會(huì)有不同的分析處理需求和特征,例如,有些可能是極大規(guī)模數(shù)據(jù)的離線分析處理,有些可能是要求高實(shí)時(shí)性響應(yīng)的聯(lián)機(jī)分析處理,這些不同的分析需求要求底層有不同特性的大數(shù)據(jù)處理平臺(tái)支持;此外,隨著大數(shù)據(jù)處理技術(shù)和平臺(tái)的不斷發(fā)展,目前和未來不斷有新的大數(shù)據(jù)編程方法和處理平臺(tái)出現(xiàn)。因此,企業(yè)內(nèi)需要將其原有平臺(tái)上已經(jīng)開發(fā)好的機(jī)器學(xué)習(xí)和數(shù)據(jù)分析算法,改寫和移植到新的平臺(tái)上,這將給企業(yè)帶來很大的重復(fù)性勞動(dòng)和開發(fā)負(fù)擔(dān)。
為此,一個(gè)理想的大數(shù)據(jù)機(jī)器學(xué)習(xí)系統(tǒng)還需要擁有能夠支持現(xiàn)有和未來出現(xiàn)的不同大數(shù)據(jù)處理平臺(tái)的能力,實(shí)現(xiàn)跨平臺(tái)大數(shù)據(jù)機(jī)器學(xué)習(xí)和數(shù)據(jù)分析算法的設(shè)計(jì)能力,達(dá)到“WriteOnce,Run Anywhere”的跨平臺(tái)算法設(shè)計(jì)和運(yùn)行目標(biāo)。
針對(duì)大數(shù)據(jù)機(jī)器學(xué)習(xí)系統(tǒng)需要重點(diǎn)研究解決的計(jì)算性能以及可編程性與易用性問題,并考慮上述的跨平臺(tái)需求特性,南京大學(xué)PASA大數(shù)據(jù)實(shí)驗(yàn)室正在研究設(shè)計(jì)一個(gè)跨平臺(tái)大數(shù)據(jù)機(jī)器學(xué)習(xí)的統(tǒng)一編程模型和系統(tǒng)平臺(tái)。該系統(tǒng)基于矩陣編程計(jì)算模型,結(jié)合R編程語言和編程方法,設(shè)計(jì)提供一個(gè)跨平臺(tái)的統(tǒng)一編程計(jì)算框架,最終研究實(shí)現(xiàn)一個(gè)跨平臺(tái)大數(shù)據(jù)機(jī)器學(xué)習(xí)系統(tǒng)Octopus(大章魚)。
分析發(fā)現(xiàn),機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘算法中的主體計(jì)算大多可表示為矩陣或向量運(yùn)算,這通常也是算法中最耗時(shí)的部分。矩陣操作也是機(jī)器學(xué)習(xí)研究者用來描述問題和算法最為自然和常用的方式,基于矩陣可以表示和刻畫大多數(shù)實(shí)際應(yīng)用中涉及的機(jī)器學(xué)習(xí)和數(shù)據(jù)分析算法問題。基于這樣的事實(shí),為了給大數(shù)據(jù)機(jī)器學(xué)習(xí)和數(shù)據(jù)分析提供一種自然和統(tǒng)一的編程計(jì)算模型和編程方法,類似于MapReduce中基于數(shù)據(jù)記錄列表的抽象編程計(jì)算模型,將研究建立一種基于矩陣模型的抽象編程計(jì)算模型,以此作為大數(shù)據(jù)機(jī)器學(xué)習(xí)和數(shù)據(jù)分析算法設(shè)計(jì)的統(tǒng)一編程計(jì)算模型和接口。
Octopus是一個(gè)高層的大數(shù)據(jù)機(jī)器學(xué)習(xí)和數(shù)據(jù)分析統(tǒng)一編程模型和系統(tǒng)平臺(tái),允許數(shù)據(jù)分析和大數(shù)據(jù)應(yīng)用開發(fā)程序員輕松地設(shè)計(jì)和開發(fā)各種大數(shù)據(jù)機(jī)器學(xué)習(xí)和數(shù)據(jù)分析算法與應(yīng)用程序。通過提供基于矩陣的統(tǒng)一編程計(jì)算模型,使用基于R語言的數(shù)據(jù)分析程序設(shè)計(jì)語言和程序設(shè)計(jì)方法,允許用戶方便地編寫和運(yùn)行常規(guī)的R語言程序,而無需了解底層大數(shù)據(jù)平臺(tái)的分布和并行化編程計(jì)算知識(shí),使底層的分布并行計(jì)算框架和大數(shù)據(jù)平臺(tái)對(duì)用戶完全透明;底層平臺(tái)上,通過良好的系統(tǒng)層抽象,可以快速集成Hadoop和Spark等通用大數(shù)據(jù)并行計(jì)算框架和系統(tǒng)平臺(tái),而且程序僅需編寫一次,不需要有任何修改即可根據(jù)需要選擇并平滑運(yùn)行于任何一個(gè)平臺(tái),從而實(shí)現(xiàn)“WriteOnce,Run Anywhere”的跨平臺(tái)特性。
6.2 基于矩陣模型的統(tǒng)一編程和計(jì)算模型
分析發(fā)現(xiàn),一方面,大數(shù)據(jù)機(jī)器學(xué)習(xí)算法中的主體計(jì)算很多可表示為矩陣或向量運(yùn)算(向量可視為退化為1維的特殊矩陣),通常這也是算法中最耗時(shí)的部分;另一方面,矩陣操作通常也是機(jī)器學(xué)習(xí)研究者用來描述問題和算法最為自然和常用的方式。例如,訓(xùn)練樣本特征值的歸一化往往是通過對(duì)矩陣行或列求和后再除以該求和的值;KNN算法(最近鄰算法)的核心操作是矩陣相減和矩陣元素求平方操作;PCA(主成分分析)算法可以通過矩陣相乘或矩陣的SVD分解進(jìn)行求解;最小二乘法的解析法涉及矩陣的相乘和求逆操作;互聯(lián)網(wǎng)企業(yè)推薦系統(tǒng)中,相似性分析的核心是高達(dá)數(shù)億用戶乘以數(shù)億物品的矩陣分解計(jì)算問題;而騰訊Peacock主題模型訓(xùn)練系統(tǒng)則涉及數(shù)十億文檔乘以數(shù)百萬詞匯的巨大矩陣計(jì)算問題;在信息檢索領(lǐng)域,著名的PageRank算法也可以表示成矩陣的迭代相乘;社會(huì)網(wǎng)絡(luò)中可以通過計(jì)算朋友關(guān)系矩陣的冪,從而進(jìn)行基于共同好友的推薦;電子商務(wù)中可以通過對(duì)用戶對(duì)商品的購(gòu)買記錄進(jìn)行矩陣分解,得到商品和用戶的聚類并分析其潛在語義主題模型。很多其他的數(shù)據(jù)分析和大數(shù)據(jù)科學(xué)計(jì)算問題也常常要基于矩陣模型完成問題的描述和分析計(jì)算過程。因此,基于矩陣可以表示和刻畫大多數(shù)實(shí)際應(yīng)用中涉及的機(jī)器學(xué)習(xí)和數(shù)據(jù)分析算法問題。
基于這樣的事實(shí),為了給大數(shù)據(jù)機(jī)器學(xué)習(xí)提供一種統(tǒng)一的編程計(jì)算模型以及編程方法,類似于MapReduce采用了基于數(shù)據(jù)記錄列表的抽象編程計(jì)算模型,研究建立了一種基于矩陣模型的抽象編程計(jì)算模型,以此作為大數(shù)據(jù)機(jī)器學(xué)習(xí)算法設(shè)計(jì)的統(tǒng)一編程計(jì)算模型和接口。
這種抽象矩陣編程計(jì)算模型將成為統(tǒng)一機(jī)器學(xué)習(xí)算法設(shè)計(jì)和編程計(jì)算的核心,它具有如下3個(gè)重要作用。
● 基于機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘算法中主體計(jì)算大多可表示為矩陣或向量運(yùn)算的事實(shí),為數(shù)據(jù)分析用戶提供一種自然和統(tǒng)一化的大數(shù)據(jù)機(jī)器學(xué)習(xí)和數(shù)據(jù)分析算法建模和表示方法。
● 作為一個(gè)隔離和解耦上層數(shù)據(jù)分析算法與下層各種大數(shù)據(jù)平臺(tái)的中間接口,實(shí)現(xiàn)底層平臺(tái)對(duì)上層程序員及其程序的透明性,以此提高統(tǒng)一平臺(tái)對(duì)上層程序員的易用性。
● 為實(shí)現(xiàn)統(tǒng)一大數(shù)據(jù)機(jī)器學(xué)習(xí)系統(tǒng)開放式集成框架提供一種接口標(biāo)準(zhǔn)。針對(duì)任意一個(gè)擬集成使用的底層大數(shù)據(jù)平臺(tái),只要遵照所建立的統(tǒng)一矩陣編程接口,實(shí)現(xiàn)一個(gè)完成該接口程序計(jì)算任務(wù)的適配器或插件,即可以博采眾長(zhǎng)和兼容并蓄的開放式框架,連接和集成使用各種主流的大數(shù)據(jù)平臺(tái),使得上層的機(jī)器學(xué)習(xí)算法具有處理大規(guī)模數(shù)據(jù)的能力。
6.3 Octopus軟件框架和系統(tǒng)設(shè)計(jì)
如圖5所示,Octopus是一種基于良好的系統(tǒng)抽象的層次化系統(tǒng)。其最底層是分布式文件系統(tǒng),如HDFS和分布式內(nèi)存文件系統(tǒng)Tachyon,它們被用來存儲(chǔ)和索引大規(guī)模的矩陣數(shù)據(jù)。在存儲(chǔ)層之上,Octopus可以用多種大數(shù)據(jù)計(jì)算引擎和單機(jī)R引擎來執(zhí)行不同規(guī)模的矩陣操作。Octopus提供給用戶的編程API是基于R語言的高層矩陣計(jì)算接口,基于該接口,用戶不需要了解分布和并行計(jì)算系統(tǒng)知識(shí),就可以很容易地設(shè)計(jì)實(shí)現(xiàn)大數(shù)據(jù)機(jī)器學(xué)習(xí)和數(shù)據(jù)分析算法或應(yīng)用。
圖5 Octopus(大章魚)軟件系統(tǒng)框架
6.4 Octopus系統(tǒng)的技術(shù)特征
Octopus具有以下技術(shù)特征。
(1)易于使用的高層編程API
Octopus提供給用戶一組基于R語言的大規(guī)模矩陣運(yùn)算API,稱為OctMatrix。這些API提供各種大規(guī)模分布式矩陣計(jì)算操作,其形式上與標(biāo)準(zhǔn)R語言中的單機(jī)矩陣/向量操作API很相似。程序員可基于這些矩陣運(yùn)算接口,用R語言快速編寫各種機(jī)器學(xué)習(xí)和數(shù)據(jù)分析算法。除了最常用的大規(guī)模矩陣乘法,Octopus也提供了其他各種矩陣操作,如矩陣與矩陣的加法和減法、矩陣元素級(jí)別的乘法和除法、子矩陣運(yùn)算等。這些API定義了高層矩陣操作符(operator)和操作(operation),因此熟悉R編程語言和編程方法的用戶可以很容易地用其編程實(shí)現(xiàn)大數(shù)據(jù)機(jī)器學(xué)習(xí)和數(shù)據(jù)分析算法,且不需要了解底層大數(shù)據(jù)處理平臺(tái)及其并行化編程方法。
(2)一次編寫,隨處運(yùn)行
用Octopus編寫完成的算法和程序,可以運(yùn)行在不同的底層大數(shù)據(jù)計(jì)算引擎和平臺(tái)上。用OctMatrixAPI實(shí)現(xiàn)的機(jī)器學(xué)習(xí)和數(shù)據(jù)分析算法,用戶可以在單機(jī)R上用小數(shù)據(jù)進(jìn)行測(cè)試,不需要修改代碼就可以用大數(shù)據(jù)在底層的大數(shù)據(jù)計(jì)算引擎和平臺(tái)上執(zhí)行,只需要簡(jiǎn)單切換底層的大數(shù)據(jù)計(jì)算引擎如Spark、HadoopMapReduce或MPI即可。此外,Octopus通過提供通用接口可實(shí)現(xiàn)對(duì)底層不同文件系統(tǒng)的集成,并實(shí)現(xiàn)基于不同文件系統(tǒng)的大規(guī)模矩陣數(shù)據(jù)存儲(chǔ)訪問接口,包括HDFS、Tachyon以及基于單機(jī)本地的文件系統(tǒng)。
(3)無縫融合R生態(tài)系統(tǒng)
Octopus可運(yùn)行于標(biāo)準(zhǔn)的R環(huán)境下,實(shí)現(xiàn)與R環(huán)境的無縫融合,因此可以利用R生態(tài)系統(tǒng)中的豐富資源,比如第三方R包。除了傳統(tǒng)的矩陣/向量函數(shù),Octopus也在OctMatrix中提供apply函數(shù),傳入apply函數(shù)的參數(shù)可以是任意的R函數(shù),包括UDF(userdefined function)。當(dāng)OctMatrix運(yùn)行在分布式環(huán)境中時(shí),函數(shù)參數(shù)可以在集群中被應(yīng)用于OctMatrix的每個(gè)元素、每行或每列,函數(shù)參數(shù)在集群的每個(gè)節(jié)點(diǎn)并行執(zhí)行。
6.5 Octopus中分布式矩陣計(jì)算優(yōu)化
大規(guī)模數(shù)據(jù)通常會(huì)導(dǎo)致整個(gè)數(shù)據(jù)分析計(jì)算時(shí)間過長(zhǎng),難以在可接受的時(shí)間內(nèi)完成分析任務(wù),為此需要借助于分布式和并行化計(jì)算技術(shù)實(shí)現(xiàn)大規(guī)模數(shù)據(jù)分析計(jì)算時(shí)的加速和性能提升,以提高數(shù)據(jù)分析的響應(yīng)時(shí)間。由于采用大規(guī)模矩陣作為大數(shù)據(jù)機(jī)器學(xué)習(xí)和數(shù)據(jù)分析的編程計(jì)算接口,在底層大數(shù)據(jù)平臺(tái)上的大規(guī)模矩陣運(yùn)算的性能將直接關(guān)系到上層算法執(zhí)行的性能。為此,大規(guī)模矩陣計(jì)算性能優(yōu)化是需要重點(diǎn)研究解決的關(guān)鍵技術(shù)問題之一。
在所有矩陣計(jì)算中,矩陣乘法是使用最多且最為耗時(shí)的計(jì)算,許多矩陣的因子分解操作也都可以由矩陣乘法近似實(shí)現(xiàn)。因此,矩陣乘法的優(yōu)化是整個(gè)矩陣計(jì)算優(yōu)化中最為重要的問題。兩個(gè)大規(guī)模矩陣進(jìn)行分布和并行化相乘運(yùn)算時(shí),一個(gè)重要問題是如何合理劃分矩陣數(shù)據(jù),以便利用多個(gè)計(jì)算節(jié)點(diǎn)分布和并行化地完成計(jì)算。不同大小和形狀的矩陣,其劃分方法可能會(huì)造成計(jì)算性能上的差異,例如,方形矩陣與長(zhǎng)條形矩陣需要考慮不同的劃分方法,而一個(gè)大矩陣與一個(gè)小矩陣相乘時(shí),當(dāng)小矩陣可存放在單節(jié)點(diǎn)的內(nèi)存中時(shí),對(duì)小矩陣可不進(jìn)行劃分,而改用廣播方式將小矩陣發(fā)送到每個(gè)計(jì)算節(jié)點(diǎn)上,以此完成兩個(gè)矩陣的運(yùn)算,這樣可以避免大量的網(wǎng)絡(luò)數(shù)據(jù)傳輸。因此,需要根據(jù)矩陣的大小和形狀,合理劃分矩陣,以便以最小的計(jì)算代價(jià)完成乘法運(yùn)算。
除了不同形狀和大小的矩陣劃分策略優(yōu)化外,被劃分后落到每個(gè)計(jì)算節(jié)點(diǎn)上分布處理的子矩陣計(jì)算也需要進(jìn)行優(yōu)化。矩陣乘法是典型的計(jì)算密集型任務(wù)并且存在許多單機(jī)的高性能的線性代數(shù)庫(kù),如BLAS、Lapack和MKL。由于在JVM中執(zhí)行線性代數(shù)計(jì)算性能較低,Octopus將計(jì)算密集的矩陣計(jì)算從JVM中通過JNILoader裝載到本地線性代數(shù)庫(kù)(如BLAS、Lapack)中執(zhí)行,這樣可顯著加速子矩陣的計(jì)算性能。
6.6 Octopus系統(tǒng)的編程使用
圖6顯示了Octopus系統(tǒng)的使用方式。Octopus使用標(biāo)準(zhǔn)的R編程和開發(fā)環(huán)境,允許用戶使用R語言,并基于大規(guī)模矩陣計(jì)算模型編寫各種機(jī)器學(xué)習(xí)和數(shù)據(jù)分析算法。系統(tǒng)可實(shí)現(xiàn)與Spark、HadoopMapReduce和MPI的集成,底層可無縫切換運(yùn)行于不同的大數(shù)據(jù)平臺(tái)上。基于Octopus所設(shè)計(jì)實(shí)現(xiàn)的算法或程序代碼,無需修改即可平滑切換并運(yùn)行于上述任意一個(gè)底層大數(shù)據(jù)計(jì)算引擎和平臺(tái)上,只要簡(jiǎn)單地修改程序代碼中的計(jì)算引擎類型選擇參數(shù)即可。
圖6 基于R語言和Octopus的跨平臺(tái)統(tǒng)一大數(shù)據(jù)機(jī)器學(xué)習(xí)系統(tǒng)
基于R語言和初步研究設(shè)計(jì)的Octopus,設(shè)計(jì)實(shí)現(xiàn)了多個(gè)典型的機(jī)器學(xué)習(xí)算法,包括LR、SVM、聚類、深度學(xué)習(xí)等,以驗(yàn)證研究設(shè)計(jì)的原型系統(tǒng)的有效性。
圖7是基于常規(guī)R語言所實(shí)現(xiàn)的LinearRegression算法與基于Octopus所實(shí)現(xiàn)的Linear Regression算法的示例代碼。由代碼比較可見,兩者在形式上非常接近,僅在有關(guān)矩陣運(yùn)算調(diào)用的API上有微小差異。
圖7 基于Octopus和常規(guī)R語言的Linear Regresssion算法代碼比較
由圖7可見,在R語言中基于矩陣進(jìn)行機(jī)器學(xué)習(xí)的算法設(shè)計(jì)較為簡(jiǎn)潔和方便,LinearRegression代碼僅僅需要20行左右即可實(shí)現(xiàn)完整的算法。
7 結(jié)束語
近幾年來,大數(shù)據(jù)技術(shù)的發(fā)展推動(dòng)了大數(shù)據(jù)機(jī)器學(xué)習(xí)和智能計(jì)算技術(shù)的發(fā)展熱潮。大數(shù)據(jù)機(jī)器學(xué)習(xí)不僅是一個(gè)單純的機(jī)器學(xué)習(xí)問題,更是一個(gè)大規(guī)模的復(fù)雜系統(tǒng)問題;是一個(gè)同時(shí)涉及機(jī)器學(xué)習(xí)和大數(shù)據(jù)處理兩個(gè)領(lǐng)域的交叉研究課題。要實(shí)現(xiàn)有效的大數(shù)據(jù)機(jī)器學(xué)習(xí)處理,需要構(gòu)建一個(gè)能同時(shí)支持機(jī)器學(xué)習(xí)算法設(shè)計(jì)和大規(guī)模數(shù)據(jù)處理的一體化大數(shù)據(jù)機(jī)器學(xué)習(xí)系統(tǒng)。
本文介紹了國(guó)內(nèi)外大數(shù)據(jù)機(jī)器學(xué)習(xí)系統(tǒng)的基本概念、基本研究問題、技術(shù)特征、系統(tǒng)分類以及典型系統(tǒng)。在此基礎(chǔ)上,進(jìn)一步介紹了研究設(shè)計(jì)的跨平臺(tái)統(tǒng)一大數(shù)據(jù)機(jī)器學(xué)習(xí)原型系統(tǒng)Octopus。基于大多數(shù)機(jī)器學(xué)習(xí)和數(shù)據(jù)分析算法可表示為矩陣運(yùn)算的事實(shí),Octopus采用矩陣模型作為大數(shù)據(jù)機(jī)器學(xué)習(xí)和數(shù)據(jù)分析抽象編程計(jì)算模型,提供了一個(gè)基于矩陣的高層編程模型和接口,并基于R語言和開發(fā)環(huán)境向用戶提供了一個(gè)矩陣運(yùn)算R擴(kuò)展包,為用戶提供可擴(kuò)展性好且易于使用的矩陣運(yùn)算操作,允許用戶基于所提供的大規(guī)模矩陣運(yùn)算操作,快速設(shè)計(jì)實(shí)現(xiàn)各種機(jī)器學(xué)習(xí)和數(shù)據(jù)分析算法。Octopus能在底層無縫地集成和使用不同的大數(shù)據(jù)計(jì)算引擎和平臺(tái),完成大數(shù)據(jù)機(jī)器學(xué)習(xí)算法的分布和并行化執(zhí)行,并支持單節(jié)點(diǎn)R環(huán)境以及Spark、HadoopMapReduce和MPI等多種大數(shù)據(jù)計(jì)算引擎和平臺(tái),并能實(shí)現(xiàn)這些平臺(tái)間的無縫切換,實(shí)現(xiàn)“Write Once,Run Anywhere”的跨平臺(tái)特征。就我們所知,Octopus是目前世界上第一個(gè)具有跨平臺(tái)特性,同時(shí)還能實(shí)現(xiàn)底層大數(shù)據(jù)平臺(tái)對(duì)上層程序員透明化的大數(shù)據(jù)機(jī)器學(xué)習(xí)系統(tǒng)研究工作。
正如CCF大數(shù)據(jù)專家委員會(huì)發(fā)布的2014年《中國(guó)大數(shù)據(jù)技術(shù)與產(chǎn)業(yè)發(fā)展白皮書》中所說,目前大數(shù)據(jù)機(jī)器學(xué)習(xí)系統(tǒng)尚處在一個(gè)初期的探索和研究階段,盡管國(guó)內(nèi)外已經(jīng)有不少研究開發(fā)工作,但研究設(shè)計(jì)高效、可擴(kuò)展且易于使用的大數(shù)據(jù)機(jī)器學(xué)習(xí)系統(tǒng)仍面臨諸多的技術(shù)挑戰(zhàn)。因此,大數(shù)據(jù)機(jī)器學(xué)習(xí)系統(tǒng)將是目前和未來幾年的熱點(diǎn)研究領(lǐng)域,工業(yè)界和學(xué)術(shù)界都將持續(xù)地投入相當(dāng)多的資源進(jìn)行深入的研究開發(fā)工作。
同樣,雖然初步研究設(shè)計(jì)了跨平臺(tái)大數(shù)據(jù)機(jī)器學(xué)習(xí)系統(tǒng)Octopus,但其中仍然有大量需要進(jìn)一步深入研究解決和完善的技術(shù)問題,例如大規(guī)模矩陣運(yùn)算的深度優(yōu)化、稀疏矩陣的存儲(chǔ)管理和計(jì)算優(yōu)化、異構(gòu)大數(shù)據(jù)處理平臺(tái)環(huán)境下不同矩陣計(jì)算時(shí)的平臺(tái)自動(dòng)選擇、基于矩陣計(jì)算表達(dá)式和計(jì)算流圖的計(jì)算優(yōu)化等。此外,僅有矩陣計(jì)算模型還不能滿足所有的大數(shù)據(jù)機(jī)器學(xué)習(xí)計(jì)算需求,還需要考慮其他計(jì)算模型,如圖模型和參數(shù)模型(parameterserver)的混合使用,形成一個(gè)能滿足各種大數(shù)據(jù)機(jī)器學(xué)習(xí)算法設(shè)計(jì)需求的綜合系統(tǒng)。
致謝
本文工作受到江蘇省科技支撐計(jì)劃基金項(xiàng)目(No.BE2014131)和江蘇省軟件技術(shù)產(chǎn)業(yè)協(xié)同創(chuàng)新中心的資助。
參考文獻(xiàn)
[1] BankoM, Brill E. Scaling to very largecorpora for natural language disambiguation. Proceedings of the 39thAnnual Meeting on Association for Computational Linguistics (ACL), Toulouse,France, 2001: 26~33
[2] BrantsT, Popat C A, Xu P, et al. Large language models in machinetranslation. Proceedings of the 2007 Joint Conference on Empirical Methods inNatural Language Processing and Computational Language Learning, Prague, CzechRepublic, 2007: 858~867
[3] WangY, Zhao X M, Sun Z L, et al. Peacock: learning long-tail topic features forindustrial applications. ACM Transactions on Intelligent Systems andTechnology, 2014, 9(4)
[4] 中國(guó)計(jì)算機(jī)學(xué)會(huì)大數(shù)據(jù)專家委員會(huì). 2015年中國(guó)大數(shù)據(jù)發(fā)展趨勢(shì)預(yù)測(cè). 中國(guó)計(jì)算機(jī)學(xué)會(huì)通訊, 2015, 11(1): 48~52
CCFTask Force on Big Data. Forecast for the development trend of big data in 2015.Communications of the China Computer Federation (CCCF), 2015, 11(1): 48~52
[5] GonzalezJ E. Emerging systems for large-scale machine learning. Proceedings of Tutorialon International Conference for Machine Learning(ICML) 2014, Beijing, China,2014
[6] 中國(guó)計(jì)算機(jī)學(xué)會(huì)大數(shù)據(jù)專家委員會(huì). 2014年中國(guó)大數(shù)據(jù)技術(shù)與產(chǎn)業(yè)發(fā)展白皮書. 2014中國(guó)大數(shù)據(jù)技術(shù)大會(huì), 北京, 中國(guó), 2014
CCFTask Force on Big Data. White paper of China’s big data technology andindustrial development in 2014. Proceedings of Big Data Conference China,Beijing, China, 2014
[7] BoehmM, Tatikonda S, Reinwald B, et al. Hybrid parallelization strategies for large-scalemachine learning in systemML. Proceedings of the VLDB Endowment, Hangzhou,China, 2014
[8] MarklV. Breaking the chains: on declarative data analysis and data independence inthe big data era. Proceedings of the VLDB Endowment, Hangzhou, China, 2014
[9] KraskaT T. MLbase: a distributed machine-learning system. Proceedings of the 6thConference on Innovative Data Systems Research(CIDR), Asilomar, CA, USA, 2013
[10] FanW F, Geerts F, Neven F. Making queries tractable on big data withpreprocessing: through the eyes of complexity theory. Proceedings of the VLDBEndowment, Trento, Italy, 2013: 685~696
[11] DeanJ, Ghemawat S. MapReduce: simplified data processing on large clusters.Communications of the ACM, 2004, 51(1): 107~113
[12] ZahariaM, Chowdhury M, Das T, et al. Resilient distributed datasets: a fault-tolerantabstraction for in-memory cluster computing. Proceedings of the 9th USENIXConference on Networked Systems Design and Implementation(NSDI), San Jose, CA,USA, 2012: 141~146
[13] Venkataraman S, Bodzsar E, Roy I, et al. Presto: distributed machine learningand graph processing with sparse matrices. Proceedings of the 8th ACM EuropeanConference on Computer Systems(EuroSys), Prague, Czech Republic, 2013: 197~210
[14] Ghoting A, Krishnamurthy R, PednaultE,et al. SystemML: declarative machinelearning on MapReduce. Proceedings of International Conference on DataEngineering (ICDE), Hannover, Germany, 2011: 231~242
[15] BoehmM, Tatikonda S, Reinwald B, et al. Hybrid parallelization strategies for large-scalemachine learning in SystemML. Proceedings of the VLDB Endowment, Hangzhou,China, 2014
[16] LowY, Bickson D, Gonzalez J, et al. Distributed graphLab: a framework for machinelearning and data mining in the cloud. Proceedings of the VLDB Endowment,Istanbul, Turkey, 2012: 716~727
[17] LiM, Andersen G D, Park W J, et al. Scaling distributed machine learning with theparameter server. Proceedings of Operating Systems Design and Implementation(OSDI), Broomfield, CD, USA, 2014: 583~598
[18] HoQ, Cipar J, Cui H, et al. More effective distributed ml via astale synchronous parallel parameter server. Proceedings of Advances in NeuralInformation Processing Systems (NIPS), Nevada, USA, 2013: 1223~1231
了解詳情或下載文章請(qǐng)點(diǎn)擊閱讀原文(安卓用戶請(qǐng)選擇“在瀏覽器中打開”)
總結(jié)
以上是生活随笔為你收集整理的《大数据》第1期“专题”——大数据机器学习系统研究进展(下)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【计算机网络】子网划分步骤
- 下一篇: 增加话务系统功能感想