• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)研究進展

    2015-04-06 08:24:40黃宜華
    大數(shù)據(jù) 2015年1期
    關(guān)鍵詞:模型系統(tǒng)設(shè)計

    黃宜華

    1.南京大學(xué)計算機軟件新技術(shù)國家重點實驗室 南京 210023;2.南京大學(xué)PASA大數(shù)據(jù)技術(shù)實驗室 南京 210023

    大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)研究進展

    黃宜華1,2

    1.南京大學(xué)計算機軟件新技術(shù)國家重點實驗室 南京 210023;2.南京大學(xué)PASA大數(shù)據(jù)技術(shù)實驗室 南京 210023

    要實現(xiàn)高效的大數(shù)據(jù)機器學(xué)習(xí),需要構(gòu)建一個能同時支持機器學(xué)習(xí)算法設(shè)計和大規(guī)模數(shù)據(jù)處理的一體化大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)。研究設(shè)計高效、可擴展且易于使用的大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)面臨諸多技術(shù)挑戰(zhàn)。近年來,大數(shù)據(jù)浪潮的興起,推動了大數(shù)據(jù)機器學(xué)習(xí)的迅猛發(fā)展,使大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)成為大數(shù)據(jù)領(lǐng)域的一個熱點研究問題。介紹了國內(nèi)外大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)的基本概念、基本研究問題、技術(shù)特征、系統(tǒng)分類以及典型系統(tǒng);在此基礎(chǔ)上,進一步介紹了本實驗室研究設(shè)計的一個跨平臺統(tǒng)一大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)——Octopus(大章魚)。

    大數(shù)據(jù);機器學(xué)習(xí);分布并行計算;大數(shù)據(jù)處理平臺

    1 大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)研究背景

    近年來,大數(shù)據(jù)技術(shù)在全球發(fā)展迅猛,掀起了巨大的研究熱潮,引起全球業(yè)界、學(xué)術(shù)界和各國政府的高度關(guān)注。隨著計算機和信息技術(shù)的迅猛發(fā)展和普及應(yīng)用,行業(yè)應(yīng)用數(shù)據(jù)呈爆炸性增長。動輒達到數(shù)百TB甚至數(shù)PB規(guī)模的行業(yè)/企業(yè)大數(shù)據(jù)已經(jīng)遠遠超出了傳統(tǒng)計算技術(shù)和信息系統(tǒng)的處理能力。與此同時,大數(shù)據(jù)往往隱含著很多在小數(shù)據(jù)量時不具備的深度知識和價值,大數(shù)據(jù)智能化分析挖掘?qū)樾袠I(yè)/企業(yè)帶來巨大的商業(yè)價值,實現(xiàn)多種高附加值的增值服務(wù),從而提升行業(yè)/企業(yè)生產(chǎn)管理決策水平和經(jīng)濟效益。

    大數(shù)據(jù)分析挖掘處理主要分為簡單分析和智能化復(fù)雜分析兩大類。簡單分析主要采用類似于傳統(tǒng)數(shù)據(jù)庫OLAP的處理技術(shù)和方法,用SQL完成各種常規(guī)的查詢統(tǒng)計分析;而大數(shù)據(jù)的深度價值僅通過簡單分析是難以發(fā)現(xiàn)的,通常需要使用基于機器學(xué)習(xí)和數(shù)據(jù)挖掘的智能化復(fù)雜分析才能實現(xiàn)。

    機器學(xué)習(xí)和數(shù)據(jù)分析是將大數(shù)據(jù)轉(zhuǎn)換成有用知識的關(guān)鍵技術(shù),并且有研究表明,在很多情況下,處理的數(shù)據(jù)規(guī)模越大,機器學(xué)習(xí)模型的效果會越好[1~3]。目前,國內(nèi)外業(yè)界和學(xué)術(shù)界專家普遍認同的觀點是,越來越多的海量數(shù)據(jù)資源加上越來越強大的計算能力,已經(jīng)成為推動大數(shù)據(jù)時代人工智能技術(shù)和應(yīng)用發(fā)展的動力,將基于大數(shù)據(jù)的機器學(xué)習(xí)和人工智能推上了新一輪發(fā)展浪潮,讓大數(shù)據(jù)機器學(xué)習(xí)(big data machine learning)成為全球業(yè)界和學(xué)術(shù)界高度關(guān)注的熱點研究領(lǐng)域。隨著大數(shù)據(jù)時代的來臨,Google、Facebook、微軟、百度、騰訊等國內(nèi)外著名企業(yè)均紛紛成立專門的基于大數(shù)據(jù)的機器學(xué)習(xí)與人工智能研發(fā)機構(gòu),深入系統(tǒng)地研究基于大數(shù)據(jù)的機器學(xué)習(xí)和智能化計算技術(shù)。

    由于大數(shù)據(jù)機器學(xué)習(xí)和數(shù)據(jù)挖掘等智能計算技術(shù)在大數(shù)據(jù)智能化分析處理應(yīng)用中具有極其重要的作用,在2014年12月中國計算機學(xué)會(CCF)大數(shù)據(jù)專家委員會上百位大數(shù)據(jù)相關(guān)領(lǐng)域?qū)W者和技術(shù)專家投票推選出的“2015年大數(shù)據(jù)十大熱點技術(shù)與發(fā)展趨勢”中,結(jié)合機器學(xué)習(xí)等智能計算技術(shù)的大數(shù)據(jù)分析技術(shù)被推選為大數(shù)據(jù)領(lǐng)域第一大研究熱點和發(fā)展趨勢[4]。

    由于大數(shù)據(jù)機器學(xué)習(xí)在具體實現(xiàn)時通常需要使用分布式和并行化大數(shù)據(jù)處理技術(shù)方法,也有人將大數(shù)據(jù)機器學(xué)習(xí)稱為“分布式機器學(xué)習(xí)”(distributed machine learning)或“大規(guī)模機器學(xué)習(xí)”(largescale machine learning)。

    大數(shù)據(jù)機器學(xué)習(xí),不僅是機器學(xué)習(xí)和算法設(shè)計問題,還是一個大規(guī)模系統(tǒng)問題。它既不是單純的機器學(xué)習(xí),也不是單純的大數(shù)據(jù)處理技術(shù)所能解決的問題,而是一個同時涉及機器學(xué)習(xí)和大數(shù)據(jù)處理兩個主要方面的交叉性研究課題。一方面,它仍然需要繼續(xù)關(guān)注機器學(xué)習(xí)的方法和算法本身,即需要繼續(xù)研究新的或改進的學(xué)習(xí)模型和學(xué)習(xí)方法,以不斷提升分析預(yù)測結(jié)果的準確性;與此同時,由于數(shù)據(jù)規(guī)模巨大,大數(shù)據(jù)機器學(xué)習(xí)會使幾乎所有的傳統(tǒng)串行化機器學(xué)習(xí)算法難以在可接受的時間內(nèi)完成計算,從而使得算法在實際應(yīng)用場景中失效。因此,大數(shù)據(jù)機器學(xué)習(xí)在關(guān)注機器學(xué)習(xí)方法和算法研究的同時,還要關(guān)注如何結(jié)合分布式和并行化的大數(shù)據(jù)處理技術(shù),以便在可接受的時間內(nèi)完成計算。為了能有效完成大數(shù)據(jù)機器學(xué)習(xí)過程,需要研究并構(gòu)建兼具機器學(xué)習(xí)和大規(guī)模分布并行計算處理能力的一體化系統(tǒng)。

    因此,領(lǐng)域內(nèi)出現(xiàn)了“大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)”或者“分布式學(xué)習(xí)系統(tǒng)”的概念,并進行了諸多大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)的研究與開發(fā)工作。

    2 大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)的技術(shù)特征

    [5,6]專門介紹了大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)的技術(shù)特征。

    如圖1所示,一個大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)會同時涉及機器學(xué)習(xí)和大數(shù)據(jù)處理兩方面的諸多復(fù)雜技術(shù)問題,包括機器學(xué)習(xí)方面的模型、訓(xùn)練、精度問題以及大數(shù)據(jù)處理方面的分布式存儲、并行化計算、網(wǎng)絡(luò)通信、局部性計算、任務(wù)調(diào)度、容錯等諸多因素。這些因素互相影響,交織在一起,大大增加了系統(tǒng)設(shè)計的復(fù)雜性。因此,大數(shù)據(jù)機器學(xué)習(xí)已經(jīng)不僅僅是一個算法研究問題,而是需要針對大數(shù)據(jù)集,考慮從底層的大數(shù)據(jù)分布存儲到中層的大數(shù)據(jù)并行化計算,再到上層的機器學(xué)習(xí)算法,設(shè)計一種一體化的支撐系統(tǒng),形成易于為數(shù)據(jù)分析程序員和機器學(xué)習(xí)研究者使用的、完整的大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)。

    一個理想的大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)通常需要具備以下幾個方面的技術(shù)要素和特征[5~7]。

    ● 應(yīng)當從整個學(xué)習(xí)的生命周期/流水線來考慮,包括訓(xùn)練數(shù)據(jù)和特征的提取、并行學(xué)習(xí)算法的設(shè)計、訓(xùn)練模型和參數(shù)的查詢管理、分布式訓(xùn)練計算過程,都應(yīng)在一個一體化的學(xué)習(xí)系統(tǒng)平臺上完成。

    ● 應(yīng)提供多種并行訓(xùn)練模式,支持不同的機器學(xué)習(xí)模型和算法。

    ● 需要提供對底層系統(tǒng)的抽象,以實現(xiàn)對底層通用大數(shù)據(jù)處理引擎的支持,并提供數(shù)據(jù)科學(xué)中常用的編程語言接口(API)。

    ● 應(yīng)該擁有開放和豐富的生態(tài)、廣泛的應(yīng)用和快速的進化能力。

    在上述技術(shù)特征中,一個非常重要的思路是,要通過系統(tǒng)抽象來降低系統(tǒng)設(shè)計的復(fù)雜性。如圖2所示,一個設(shè)計良好的大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng),應(yīng)當通過定義特定的機器學(xué)習(xí)編程計算和系統(tǒng)抽象接口,將上層機器學(xué)習(xí)和底層分布式系統(tǒng)解耦開來,將機器學(xué)習(xí)實現(xiàn)在現(xiàn)有的大數(shù)據(jù)計算平臺之上,而不需要考慮底層系統(tǒng)層面的因素,以此實現(xiàn)底層大數(shù)據(jù)處理平臺對上層用戶的透明化,讓上層用戶從諸多底層的分布和并行化大數(shù)據(jù)編程計算細節(jié)中解放出來,以便他們致力于上層的機器學(xué)習(xí)模型和算法的設(shè)計實現(xiàn)。通過編程計算和系統(tǒng)抽象層API,向上提供各種機器學(xué)習(xí)編程計算接口以及學(xué)習(xí)模型和訓(xùn)練數(shù)據(jù)的表示,向下由底層分布式系統(tǒng)負責處理并提供高效的分布和并行化計算實現(xiàn)。

    圖1 大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)所涉及的復(fù)雜因素[5]

    圖2 大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)抽象

    3 大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)的主要研究問題

    知名的Apache Flink大數(shù)據(jù)分析系統(tǒng)研究者在2014年VLDB會議主題報告和論文中[8],從數(shù)據(jù)分析的復(fù)雜程度和數(shù)據(jù)規(guī)模的維度,考察了現(xiàn)有的相關(guān)研究工作和系統(tǒng),如圖3所示?,F(xiàn)有的系統(tǒng)要么主要用于小規(guī)模復(fù)雜分析,要么主要用于大規(guī)模的簡單統(tǒng)計分析,缺少既具有復(fù)雜數(shù)據(jù)分析能力又具有強大的大數(shù)據(jù)處理能力的大數(shù)據(jù)分析系統(tǒng);文章作者甚至認為,對于行業(yè)大數(shù)據(jù)分析人員而言,現(xiàn)有的工具還處于“石器時代”[8]。

    與此同時,著名的UC Berkeley AMPLab在研究基于Spark的機器學(xué)習(xí)庫MLBase[9]時,從計算性能和系統(tǒng)易用性兩個重要維度,考察了現(xiàn)有的大數(shù)據(jù)機器學(xué)習(xí)研究工作和系統(tǒng),如圖4所示。面向機器學(xué)習(xí)和數(shù)據(jù)分析時,目前已有的工作和系統(tǒng),絕大多數(shù)都未能同時具備大規(guī)模分析處理能力和良好的系統(tǒng)易用性。

    因此,大數(shù)據(jù)機器學(xué)習(xí)除了需要繼續(xù)關(guān)注和研究傳統(tǒng)意義上的學(xué)習(xí)方法和算法問題,以不斷提高學(xué)習(xí)精度外,還需要重點關(guān)注和研究解決大數(shù)據(jù)場景下所特有的兩大技術(shù)問題:一是大數(shù)據(jù)復(fù)雜分析時的計算性能問題;二是大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)的可編程性和易用性問題。

    (1)大數(shù)據(jù)復(fù)雜分析時的計算性能問題

    圖3 研究者Apache Flink提出的分析維度和研究現(xiàn)狀[8]

    在計算性能方面,大規(guī)模數(shù)據(jù)集給很多傳統(tǒng)串行的機器學(xué)習(xí)和數(shù)據(jù)分析挖掘算法帶來很大的挑戰(zhàn),需要研究解決面向大數(shù)據(jù)機器學(xué)習(xí)和數(shù)據(jù)分析的高效計算方法和系統(tǒng)。在數(shù)據(jù)集較小時,很多復(fù)雜度在O(n log n)、O(n2)甚至O(n3)的傳統(tǒng)串行化機器學(xué)習(xí)算法都可以有效工作;但當數(shù)據(jù)規(guī)模增長到極大尺度時,現(xiàn)有的串行化算法將花費難以接受的時間開銷,使得算法在實際應(yīng)用場景中失效,這給業(yè)界大量實際的大數(shù)據(jù)復(fù)雜分析應(yīng)用帶來很多新的挑戰(zhàn)和問題[10]。正如微軟全球副總裁陸奇博士在2012年指出的,“大數(shù)據(jù)使得現(xiàn)有的大多數(shù)機器學(xué)習(xí)算法失效,面向大數(shù)據(jù)處理時這些算法都需要重寫”1http://www. china-cloud. com/zt/2012i COME/。

    圖4 Spark系統(tǒng)研究者提出的分析維度和研究現(xiàn)狀[9]

    在大型互聯(lián)網(wǎng)企業(yè),大規(guī)模機器學(xué)習(xí)算法經(jīng)常用于處理十億至千億級別的樣本以及一億至數(shù)十億數(shù)據(jù)特征的大規(guī)模數(shù)據(jù)集。例如,Google著名的Seti太空搜索項目需要進行高達千億樣本、十億特征數(shù)據(jù)的大規(guī)模機器學(xué)習(xí)2http://google research. blogspot.com/ 2010/04/ lessonslearneddevelopingpractical.html,騰訊Peacock主題模型分析系統(tǒng)需要進行高達十億文檔、百萬詞匯、百萬主題的主題模型訓(xùn)練,而僅一個百萬詞匯乘以百萬主題的矩陣,其數(shù)據(jù)存儲量即高達3 TB,如果再考慮十億文檔乘以百萬主題的矩陣,其數(shù)據(jù)量更是高達3 PB[3]。如此大量的訓(xùn)練樣本,加上機器學(xué)習(xí)算法本身的復(fù)雜性,導(dǎo)致難以在傳統(tǒng)的串行化計算平臺上、在可接受的時間內(nèi)完成如此巨大的復(fù)雜分析計算任務(wù),因而帶來了十分突出的計算性能問題。因此,大數(shù)據(jù)機器學(xué)習(xí)算法和系統(tǒng)需要研究解決大規(guī)模場景下高效的分布式和并行化算法設(shè)計以及計算問題,以保證算法和系統(tǒng)可以在可接受的時間內(nèi)完成大規(guī)模數(shù)據(jù)的學(xué)習(xí)和訓(xùn)練。

    (2)大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)的可編程性和易用性問題

    為了滿足急劇增長的大數(shù)據(jù)處理需求,過去幾年來,全球推出了Hadoop[11]和Spark[12]等多種主流大數(shù)據(jù)處理技術(shù)和系統(tǒng)平臺。這些主流技術(shù)和平臺的出現(xiàn)為大數(shù)據(jù)的處理提供了良好的技術(shù)手段和方法。Hadoop的出現(xiàn)使得大數(shù)據(jù)處理技術(shù)和平臺從無到有,而基于內(nèi)存計算的Spark系統(tǒng)的出現(xiàn)使得大數(shù)據(jù)分析計算從慢到快。然而,現(xiàn)有的大數(shù)據(jù)處理技術(shù)和系統(tǒng)平臺都存在很大的易用性問題,難以為普通的程序員掌握和使用,尤其是面向復(fù)雜的大規(guī)模機器學(xué)習(xí)和數(shù)據(jù)分析時,這個問題更為突出。

    大數(shù)據(jù)機器學(xué)習(xí)和數(shù)據(jù)分析的并行化程序設(shè)計,比傳統(tǒng)的串行化算法設(shè)計復(fù)雜很多、對程序員的技術(shù)要求更高。對于普通的數(shù)據(jù)分析程序員或機器學(xué)習(xí)研究者來說,在特定的大數(shù)據(jù)編程模型和平臺下進行并行化機器學(xué)習(xí)和數(shù)據(jù)分析算法設(shè)計,需要掌握很多分布式系統(tǒng)背景知識和并行程序設(shè)計技巧,這對他們來說難度較大,經(jīng)常要把實際工作的大部分時間花費在底層復(fù)雜的并行化和分布式編程和調(diào)試上,給上層數(shù)據(jù)分析和算法設(shè)計工作帶來很大的不便和困難,導(dǎo)致普通程序員與現(xiàn)有的各種大數(shù)據(jù)處理平臺之間存在一個難以逾越的鴻溝[8,9,13~15]。

    另一方面,即使對于諸如Google、百度等具有強大技術(shù)力量的互聯(lián)網(wǎng)企業(yè)程序員來說,隨著多種大數(shù)據(jù)處理與編程平臺的出現(xiàn)以及各種分析應(yīng)用問題需求的不同,他們也常常需要針對不同平臺,重復(fù)編寫和測試各種并行化機器學(xué)習(xí)和數(shù)據(jù)分析算法,這種在多個大數(shù)據(jù)平臺上重復(fù)編寫和嘗試數(shù)以百計的機器學(xué)習(xí)算法的工作負擔也很重。正如阿里巴巴集團副總裁、高級研究員章文嵩博士在中國計算機學(xué)會第一屆大數(shù)據(jù)學(xué)術(shù)會議上所指出的,“淘寶內(nèi)部需要使用的并行化機器學(xué)習(xí)算法很多,隨著新型的并行化計算框架的逐步出現(xiàn),需要將其逐個實現(xiàn)到MPI、MapReduce、Spark等并行計算框架上;如果后面出現(xiàn)更先進的框架,又面臨著將這些算法重新實現(xiàn)一遍的負擔”。

    針對大數(shù)據(jù)的機器學(xué)習(xí)和數(shù)據(jù)分析,現(xiàn)有的大數(shù)據(jù)處理技術(shù)和平臺存在很大的可編程性和易用性問題,導(dǎo)致普通程序員和常規(guī)的程序設(shè)計方法與現(xiàn)有的大數(shù)據(jù)分析處理編程技術(shù)之間存在著一個很大的鴻溝。正如CCF大數(shù)據(jù)專家委員會《2015年大數(shù)據(jù)發(fā)展趨勢預(yù)測報告》指出的那樣,“由于現(xiàn)有的大數(shù)據(jù)平臺易用性差,而垂直應(yīng)用行業(yè)的數(shù)據(jù)分析又涉及領(lǐng)域?qū)<抑R和領(lǐng)域建模,目前在大數(shù)據(jù)行業(yè)分析應(yīng)用與通用的大數(shù)據(jù)技術(shù)之間存在很大的鴻溝,缺少相互的交叉融合”[4]。

    因此,大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)要解決的一個重要問題是,讓不易使用的大數(shù)據(jù)處理技術(shù)和平臺變得易于使用,要填平普通程序員和常規(guī)程序設(shè)計方法與現(xiàn)有的大數(shù)據(jù)處理技術(shù)之間的鴻溝,盡可能讓普通程序員用常規(guī)程序設(shè)計方法便能有效完成大數(shù)據(jù)的復(fù)雜分析處理。

    根據(jù)Google Seti項目研究人員在開發(fā)實際的大型機器學(xué)習(xí)系統(tǒng)上的經(jīng)驗,在面向大數(shù)據(jù)時,考慮到用戶開發(fā)效率問題,系統(tǒng)易用性與提高機器學(xué)習(xí)精度幾乎同等重要,有時甚至比精度問題更為重要,“也許過去學(xué)術(shù)界很少關(guān)心設(shè)計一個精度稍差、但有更好易用性和系統(tǒng)可靠性的學(xué)習(xí)算法,但在實際應(yīng)用中,這會體現(xiàn)出非常重要的價值”。

    4 大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)的分類

    近幾年來,隨著大數(shù)據(jù)的來臨,基于大數(shù)據(jù)的機器學(xué)習(xí)方法和系統(tǒng)成為業(yè)界和學(xué)術(shù)界普遍關(guān)注的研究熱點。為了提供有效的大數(shù)據(jù)機器學(xué)習(xí)和數(shù)據(jù)分析手段,業(yè)界和學(xué)術(shù)界在嘗試多種途徑和方法,在不同的并行計算模型和平臺下,在實際的數(shù)據(jù)分析挖掘中得到應(yīng)用。

    較早出現(xiàn)以及現(xiàn)有的一些大數(shù)據(jù)機器學(xué)習(xí)算法和系統(tǒng)大多采用較為低層的緊耦合、定制化方法構(gòu)建。這些算法和系統(tǒng)大都針對特定的應(yīng)用,選擇特定的平臺和模型,針對特定的機器學(xué)習(xí)模型和特定的計算模式,從串行算法和原型到分布并行化算法和原型,自底層向上進行緊耦合和定制化的開發(fā)和優(yōu)化。盡管這可以最大化利用系統(tǒng)資源以達到最佳的性能,但這種低層的緊耦合定制化實現(xiàn)方法,將學(xué)習(xí)和系統(tǒng)混雜在一起,實現(xiàn)難度大,算法和系統(tǒng)也難以調(diào)試和維護[5,6]。

    從前述的大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)特征來看,一個設(shè)計良好的大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)應(yīng)當考慮高層的系統(tǒng)層抽象,向上為程序員提供易于使用的高層機器學(xué)習(xí)算法編程接口,向下基于現(xiàn)有的通用化大數(shù)據(jù)處理平臺提供大規(guī)模數(shù)據(jù)的分布和并行化計算能力。為此,近年來已經(jīng)開始出現(xiàn)基于各種高層編程計算和系統(tǒng)抽象設(shè)計大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)的研究工作。

    在高層編程計算和系統(tǒng)抽象上,目前的大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)大致可分為3種主要的編程計算和系統(tǒng)抽象方法,分別是基于矩陣模型的抽象、基于圖模型的抽象以及基于參數(shù)模型的抽象。

    (1)基于矩陣模型的抽象

    基于矩陣模型的抽象基于這樣一個事實:大多數(shù)機器學(xué)習(xí)和數(shù)據(jù)分析算法都可以表示為矩陣或向量代數(shù)計算,因此可以構(gòu)建一個基于矩陣計算模型的機器學(xué)習(xí)系統(tǒng),允許程序員直接基于矩陣計算快速構(gòu)建機器學(xué)習(xí)和數(shù)據(jù)分析算法。最典型的基于矩陣模型的大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)尚不多見,UC Berkeley AMP Lab推出的Spark MLlib是一個試圖基于矩陣計算模型構(gòu)建上層各種機器學(xué)習(xí)算法的系統(tǒng)3https://spark. apache.org/docs/ 1.2.0/mllib-guide. html;最近Spark系統(tǒng)提出了一個DataFrame的數(shù)據(jù)抽象機制,允許基于矩陣和表等數(shù)據(jù)結(jié)構(gòu),設(shè)計各種機器學(xué)習(xí)和數(shù)據(jù)分析算法。此外,國內(nèi)由南京大學(xué)PASA大數(shù)據(jù)實驗室研究開發(fā)的“Octopus(大章魚)”系統(tǒng)是一個以大規(guī)模矩陣模型為中心的跨平臺大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)4http://pasabigdata.nju. edu.cn/octopus/。

    (2)基于圖模型的抽象

    雖然矩陣可以表示大多數(shù)機器學(xué)習(xí)和數(shù)據(jù)分析算法,但對于一些基于圖模型的社會網(wǎng)絡(luò)分析問題,基于矩陣模型進行計算并非最有效的方法(雖然圖和矩陣表示具有理論上的等價性)。矩陣模型對于圖數(shù)據(jù)的表達不如圖模型,且通常會面臨稀疏性的問題。因此,一些社會網(wǎng)絡(luò)分析類的實際應(yīng)用需要基于更為高效的圖模型的學(xué)習(xí)和分析方法,為此出現(xiàn)了相應(yīng)的基于圖模型的大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)。最典型的基于圖模型的系統(tǒng)是美國卡耐基梅隆大學(xué)(CMU)推出的GraphLab系統(tǒng)[16]以及基于Spark構(gòu)建的GraphX系統(tǒng)。

    (3)基于參數(shù)模型的抽象

    基于矩陣模型和圖模型的系統(tǒng)主要是從數(shù)據(jù)表示模型的角度來構(gòu)建系統(tǒng),這兩種方法的特點是更接近于實際學(xué)習(xí)問題中自然化的數(shù)據(jù)表示和計算模型,因此對于數(shù)據(jù)分析人員方便快速地構(gòu)建機器學(xué)習(xí)和數(shù)據(jù)分析算法比較自然和直觀。但是,大數(shù)據(jù)機器學(xué)習(xí)常常還需要涉及大規(guī)模模型,例如,近幾年發(fā)展迅猛的深度神經(jīng)網(wǎng)絡(luò)算法,常常需要通過對大量模型參數(shù)的調(diào)優(yōu)來提高學(xué)習(xí)精度,在這種情況下,上述兩種方法會缺少靈活性,難以讓算法設(shè)計者通過控制模型參數(shù)進行算法優(yōu)化。為此,有研究者提出了一種基于模型參數(shù)的抽象方法,即把所有機器學(xué)習(xí)算法抽象為對學(xué)習(xí)過程中一組模型參數(shù)的管理和控制,并提供對大規(guī)模場景下大量模型參數(shù)的有效管理和訪問。目前參數(shù)模型最典型的方法是最初由美國卡耐基梅隆大學(xué)的Li Mu等人提出的、后在很多系統(tǒng)中得到進一步應(yīng)用的Parameter Server[17,18]。

    實際的系統(tǒng)也可能會是一種兼有上述多種類型的混合系統(tǒng)。此外,也有不少系統(tǒng)從并行模式角度來區(qū)分,分為數(shù)據(jù)并行和模型并行兩種方式,且一些系統(tǒng)只提供數(shù)據(jù)并行方式,另一些系統(tǒng)會同時提供數(shù)據(jù)并行和模型并行兩種方式。

    5 典型大數(shù)據(jù)學(xué)習(xí)方法和系統(tǒng)介紹

    5.1 基于特定平臺的定制式并行化機器學(xué)習(xí)算法與算法庫

    隨著Hadoop MapReduce[11]和Spark[12]大數(shù)據(jù)并行計算與編程平臺的出現(xiàn)和成熟應(yīng)用,Hadoop和Spark已經(jīng)成為目前大數(shù)據(jù)分析處理的主流平臺。為了解決大規(guī)模機器學(xué)習(xí)問題,有大量的研究工作致力于基于Hadoop MapReduce和Spark以及傳統(tǒng)的MPI并行計算框架,完成各種并行化機器學(xué)習(xí)和數(shù)據(jù)挖掘算法的設(shè)計。在諸如TPDS、JPDC、IPDPS、ICPP、ICPADS、IEEE BigData等大數(shù)據(jù)和分布并行計算領(lǐng)域的知名期刊和國際會議上,這些并行化算法研究工作不勝枚舉。由于需要同時顧及上層機器學(xué)習(xí)算法設(shè)計和底層分布并行化大數(shù)據(jù)處理系統(tǒng)層細節(jié),總體而言,基于上述不同的并行化編程方法和平臺進行并行化機器學(xué)習(xí)算法設(shè)計,仍屬于一種專業(yè)性較強、技術(shù)要求較高、過程較為繁瑣的工作,難以為缺少分布式和并行計算知識背景的普通程序員使用。

    為了讓普通數(shù)據(jù)分析程序員能夠直接使用并行化機器學(xué)習(xí)算法,目前普遍的一種做法是,在不同的并行化計算平臺上,由專業(yè)的機器學(xué)習(xí)算法設(shè)計者實現(xiàn)并行化機器學(xué)習(xí)算法,提供一個機器學(xué)習(xí)和數(shù)據(jù)挖掘工具包以供一般的數(shù)據(jù)分析和應(yīng)用開發(fā)程序員直接使用,如Hadoop下的Mahout5http://mahout. apache.org/以及Spark環(huán)境下的MLlib。

    Mahout的主要任務(wù)是設(shè)計并提供一些基于MapReduce的可擴展的機器學(xué)習(xí)領(lǐng)域經(jīng)典算法庫,包括聚類、分類、推薦過濾、頻繁項集挖掘等。這些并行化算法都是基于Hadoop MapReduce平臺完成的,用戶可直接調(diào)用Mahout算法庫實現(xiàn)好的算法。然而,Mahout提供的并行化機器學(xué)習(xí)算法數(shù)量有限,而且作為標準的軟件包,其所提供的算法幾乎都是標準的,在算法精度和性能上不一定能滿足用戶的需要。進一步,MapReduce的設(shè)計目標是解決數(shù)據(jù)密集但計算邏輯相對簡單的批處理問題。然而,大多數(shù)機器學(xué)習(xí)算法的計算流程都比較復(fù)雜,模型的訓(xùn)練過程往往需要多次迭代計算(如梯度下降算法)、有中間數(shù)據(jù)集需要共享等。MapReduce模型處理這類問題時,額外的調(diào)度和初始化開銷導(dǎo)致其處理性能偏低。

    為了克服MapReduce在計算性能上的缺陷,不斷地有新的并行化計算模型和框架出現(xiàn),UC Berkeley AMP實驗室推出的、目前已成為Apache開源項目的Spark[12]系統(tǒng)是目前最有影響力的大數(shù)據(jù)處理平臺之一。Spark使用基于內(nèi)存計算的并行化計算模型RDD(resilient distributed dataset)[12],提供了一個強大的分布式內(nèi)存并行計算引擎,實現(xiàn)了優(yōu)異的計算性能,同時還保持與Hadoop平臺在底層分布式數(shù)據(jù)存儲上的兼容性。在Spark執(zhí)行引擎上,AMP實驗室實現(xiàn)了很多機器學(xué)習(xí)算法,并逐步整理成Spark下的一個機器學(xué)習(xí)算法庫項目MLlib。MLlib目前也包含一些矩陣操作,并希望基于矩陣的表示設(shè)計開發(fā)一些統(tǒng)計包和機器學(xué)習(xí)算法庫。為了加速上層計算,MLlib底層通過Breeze使用了BLAS(basic linear algebra subprogram)單機的矩陣函數(shù)庫。BLAS是很多更高層的數(shù)學(xué)函數(shù)庫和數(shù)學(xué)編程語言(如LAPACK和MATLAB等)的基本構(gòu)成單元。BLAS和LAPACK是當下普遍使用的線性代數(shù)函數(shù)庫,主要定義了一些線性代數(shù)中常用的運算操作和方程求解、矩陣分解的函數(shù)。此外,基于MLlib的工作基礎(chǔ),UC Berkeley還計劃研發(fā)MLBase[9]項目,該項目增加了機器學(xué)習(xí)模型自動選擇和參數(shù)自動優(yōu)化等功能,提供了以目標為導(dǎo)向的高層機器學(xué)習(xí)方法接口。

    提供機器學(xué)習(xí)算法庫在一定程度上減輕了程序員進行機器學(xué)習(xí)算法設(shè)計的負擔。但即使如此,程序員編寫程序時仍然需要熟悉具體的并行編程計算模型和平臺,而且由于實際數(shù)據(jù)分析應(yīng)用的需求不同,很多時候工具包所提供的通用算法在學(xué)習(xí)精度和計算性能上可能不能滿足需求,需要程序員定制和改進某個并行化機器學(xué)習(xí)算法或者開發(fā)新的算法,這對普通數(shù)據(jù)分析程序員仍然是很大的挑戰(zhàn)。

    5.2 結(jié)合傳統(tǒng)數(shù)據(jù)分析平臺的大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)

    雖然有了基于大數(shù)據(jù)處理平臺的機器學(xué)習(xí)算法設(shè)計方法,能夠較好地解決一體化的大數(shù)據(jù)存儲、計算以及并行化算法設(shè)計問題,但僅有機器學(xué)習(xí)系統(tǒng)仍然不能很好地解決各個平臺對終端用戶存在的可編程性和易用性不夠的問題。為此,還需要進一步研究解決這些問題。

    從可編程性和易用性角度來說,對于行業(yè)數(shù)據(jù)分析師,最熟悉使用的分析語言和環(huán)境通常是R、Python、MATLAB等系統(tǒng)。R是目前在數(shù)據(jù)分析應(yīng)用領(lǐng)域最廣為使用的數(shù)據(jù)分析、統(tǒng)計計算及制圖的開源軟件系統(tǒng),提供了大量的專業(yè)模塊和實用工具。為了盡可能縮小R語言環(huán)境與現(xiàn)有大數(shù)據(jù)平臺間的鴻溝,工業(yè)界和研究界已經(jīng)嘗試在R中利用分布式并行計算引擎來處理大數(shù)據(jù)。最早的工作和系統(tǒng)RHadoop6https://github.com/ Revolution Analytics/ RHadoop,是由Revolution Analytics發(fā)起的一個開源項目,其目標是將統(tǒng)計語言R與Hadoop結(jié)合起來,目前該項目包括3個R package(包),分別為支持用R語言編寫MapReduce應(yīng)用的rmr、用于R語言訪問HDFS的rhdfs以及用于R語言訪問HBase的rhbase。其中,Hadoop主要用來存儲和處理底層的海量數(shù)據(jù),用R語言替代Java語言完成MapReduce算法的設(shè)計實現(xiàn)。

    類似地,UC Berkeley AMP實驗室在2014年1月也推出了一個稱為SparkR的項目7S park R. https:// github.com/ amplab-extras/ SparkR-pkg。SparkR也是作為一個R的擴展包,為R用戶提供一個輕量級的、在R環(huán)境里使用Spark RDD API編寫程序的接口。它允許用戶在R的shell環(huán)境里交互式地向Spark集群提交運行作業(yè)。

    然而,目前的RHadoop和SparkR都還存在一個同樣的問題:仍要求用戶熟悉MapReduce或Spark RDD的編程框架和程序結(jié)構(gòu),然后將自己的MapReduce或Spark程序?qū)崿F(xiàn)到基于R的編程接口上,這和在Hadoop或Spark上寫應(yīng)用程序沒有太大的區(qū)別,只是編程接口用R語言封裝了一下。此外,這些工作都是基于單一平臺,無法解決跨平臺統(tǒng)一大數(shù)據(jù)機器學(xué)習(xí)算法設(shè)計的問題。

    5.3 基于特定平臺的大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)

    為了克服前述做法的缺陷,近年來,學(xué)術(shù)界和業(yè)界開始嘗試總結(jié)機器學(xué)習(xí)算法設(shè)計的共同特性,結(jié)合大規(guī)模學(xué)習(xí)時所需要考慮的底層分布式數(shù)據(jù)存儲和并行化計算等系統(tǒng)問題,專門研究能同時兼顧并支持大數(shù)據(jù)機器學(xué)習(xí)和大數(shù)據(jù)分布并行處理的一體化大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)。

    在國內(nèi)外的機器學(xué)習(xí)和大數(shù)據(jù)技術(shù)方面的會議中,已經(jīng)頻繁出現(xiàn)大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)相關(guān)的研究工作,如Spark MLlib、IBM的SystemML、Apache Flink、GraphLab、Parameter Server、Petuum等;此外,騰訊、百度等國內(nèi)著名互聯(lián)網(wǎng)企業(yè)也推出了不同的面向大數(shù)據(jù)的分布式機器學(xué)習(xí)系統(tǒng),如騰訊的Peacock和Mariana大規(guī)模機器學(xué)習(xí)系統(tǒng)、百度的ELF和百度機器學(xué)習(xí)云平臺BML。

    (1)Spark MLlib

    MLLib與Spark環(huán)境整合后可完整解決大數(shù)據(jù)的分布式存儲、并行化計算以及上層的機器學(xué)習(xí)算法設(shè)計和使用問題,因此,可將其視為一個基本的機器學(xué)習(xí)系統(tǒng)。目前其已經(jīng)向上層提供多種優(yōu)化方法、分類算法、回歸算法、推薦算法、聚類算法。但其算法數(shù)目和接口有限,難以完全滿足用戶各種各樣的需求,且作為一個算法庫,用戶難以對內(nèi)部算法進行深層定制優(yōu)化。因此,其在靈活性方面仍然存在不足。

    (2)SystemML

    SystemML[14,15]是由IBM Waston Research Center 和IBM Almaden Research Center聯(lián)合研發(fā)的一款大數(shù)據(jù)學(xué)習(xí)系統(tǒng)。對用戶提供了一個類似于R語言的高層聲明式語言,基于這種語言編寫的程序可以被自動編譯轉(zhuǎn)化為MapReduce作業(yè)在Hadoop集群上運行。這種高層語言提供了大量的監(jiān)督和非監(jiān)督的機器學(xué)習(xí)算法所需要的線性代數(shù)操作算子,包括高層算子HOP(high-level operator)和底層算子LOP(low-level operator)。SystemML最大的優(yōu)勢是其具有較好的可編程性和易用性,用戶不需要具備任何分布式系統(tǒng)的概念或編程經(jīng)驗,即可利用其寫出可擴展的機器學(xué)習(xí)算法;其最大的缺點在于底層計算平臺單一,只采用了MapReduce作為底層分布式執(zhí)行平臺,而底層的MapReduce作業(yè)本身執(zhí)行性能并不高,近年來涌現(xiàn)出的高效分布式計算框架如Spark、Flink等,在眾多性能指標上遠遠高于MapReduce。

    (3)Apache Flink

    Apache Flink[19]是由歐洲的多名研究者和多家資助單位(如EIT1 ICT Labs、DFG2、IBM、Oracle、HP等)聯(lián)合研發(fā)的一款開源的并行化數(shù)據(jù)分析軟件棧,項目早期的名稱是Stratosphere。經(jīng)過一段時間的發(fā)展,目前已經(jīng)成為Apache開源項目。Flink同樣意識到,數(shù)據(jù)分析人員在分布式系統(tǒng)上編寫大數(shù)據(jù)分析算法時,需要有大量的精力耗費在分布式程序調(diào)試以及底層調(diào)優(yōu)上。為了使數(shù)據(jù)分析人員能夠在無需顧及各種并行化優(yōu)化問題的情況下就可以進行深度數(shù)據(jù)分析,F(xiàn)link提供了一款數(shù)據(jù)分析棧式軟件。它向用戶提供了一種專用的腳本式語言MeteorScript,并且會自動將基于該語言開發(fā)的程序轉(zhuǎn)換到底層的分布式計算平臺Nephele上[20]。由于其專用性語言不夠普及,目前系統(tǒng)對語言接口又做了更多的擴充,支持Java、Scala等語言。Flink項目的優(yōu)勢在于其從上到下提供了一整套完整的棧式解決方案,試圖為用戶提供易于使用的數(shù)據(jù)分析系統(tǒng),同時通過一些編譯優(yōu)化手段盡可能地提升程序執(zhí)行的性能;其缺點在于其底層是專用的單一化計算平臺,與目前普遍使用的主流大數(shù)據(jù)平臺Hadoop和Spark尚未能集成使用,且上層的語言接口層也沒有包含現(xiàn)在數(shù)據(jù)分析師廣為使用的R、Python等語言接口。

    (4)GraphLab

    GraphLab[16]是CMU開發(fā)的一個以頂點為計算單元的大規(guī)模圖處理系統(tǒng),是一個基于圖模型抽象的機器學(xué)習(xí)系統(tǒng)。設(shè)計初衷主要是解決具有以下特點的機器學(xué)習(xí)問題:有局部依賴的稀疏數(shù)據(jù)集、迭代可收斂、異步執(zhí)行。為了實現(xiàn)這個目標,GraphLab把數(shù)據(jù)之間的依賴關(guān)系抽象成Graph結(jié)構(gòu),以頂點為計算單元,將算法的執(zhí)行過程抽象成每個頂點上的GAS(gather、apply、scatter)過程,其并行的核心思想是多個頂點同時執(zhí)行。GraphLab的優(yōu)點是能夠高效地處理大規(guī)模圖算法問題或者可歸結(jié)為圖問題的機器學(xué)習(xí)和數(shù)據(jù)挖掘算法問題;其缺點在于提供的接口細節(jié)比較復(fù)雜,對于普通的數(shù)據(jù)分析程序員而言,有較大的使用難度。

    (5)Parameter Server與Petuum

    很多機器學(xué)習(xí)算法常常要解決學(xué)習(xí)訓(xùn)練過程中模型參數(shù)的高效存儲與更新問題。為了有效應(yīng)對和滿足大數(shù)據(jù)場景下這類機器學(xué)習(xí)算法的需要,研究者提出了一種稱為Parameter Server的框架[17],提供了一個分布式全局模型參數(shù)存儲和訪問接口,模型參數(shù)存儲在多臺服務(wù)器(server)中,工作節(jié)點(worker)可以通過網(wǎng)絡(luò)訪問 API方便地讀取全局參數(shù)。

    Li Mu等人開發(fā)了一套基于Parameter Server框架的分布式機器學(xué)習(xí)系統(tǒng)[17],該系統(tǒng)由一個服務(wù)器組(server group)和多個工作組(worker group)構(gòu)成。其中,服務(wù)器組中包括一個服務(wù)器管理(server manager)節(jié)點和多個服務(wù)器節(jié)點。每個服務(wù)器節(jié)點存儲部分全局共享參數(shù);服務(wù)器管理節(jié)點用來存儲服務(wù)器節(jié)點的元信息,并通過心跳機制管理所有服務(wù)器。在該系統(tǒng)中,每個工作組包含一個任務(wù)調(diào)度器(task scheduler)和多個工作節(jié)點,工作節(jié)點只與服務(wù)器節(jié)點通信獲取全局參數(shù)以及推送局部更新,不同的工作組可以同時運行不同的應(yīng)用。Parameter Server的優(yōu)點是為大規(guī)模機器學(xué)習(xí)提供了非常靈活的模型參數(shù)調(diào)優(yōu)和控制機制;缺點是缺少對大規(guī)模機器學(xué)習(xí)時的數(shù)據(jù)及編程計算模型的高層抽象,使用較為繁瑣,通常比較適合于機器學(xué)習(xí)算法研究者或者需要通過調(diào)整參數(shù)深度優(yōu)化機器學(xué)習(xí)算法的數(shù)據(jù)分析程序員使用。

    國際著名的機器學(xué)習(xí)專家、美國卡耐基梅隆大學(xué)機器學(xué)習(xí)系Eric Xing教授是大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)的倡導(dǎo)者。他認為,傳統(tǒng)的機器學(xué)習(xí)研究過于簡化機器學(xué)習(xí)算法本身的問題以及大規(guī)模數(shù)據(jù)機器學(xué)習(xí)存在的系統(tǒng)問題[21]。由于大規(guī)模機器學(xué)習(xí)存在很多新的挑戰(zhàn),近幾年來主要致力于大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)的研究,并領(lǐng)導(dǎo)其SAILING 實驗室研究實現(xiàn)了大數(shù)據(jù)學(xué)習(xí)系統(tǒng)Petuum[18,21]。Petuum也是一個基于Parameter Server框架的系統(tǒng),關(guān)鍵組件包括Parameter Server和調(diào)度器。Petuum的Parameter Server中使用SSP(stale synchronous parallel)一致性模型,允許計算速度慢的節(jié)點從本機緩存中讀取陳舊的參數(shù)值,以此大大節(jié)省網(wǎng)絡(luò)開銷和網(wǎng)絡(luò)等待時間,使得慢機器的大部分時間用在計算而不是等待上。Petuum在使用上需要算法設(shè)計者對分布式系統(tǒng)概念和系統(tǒng)有一定了解,其易用性仍有一定的限制,且其底層數(shù)據(jù)存儲和并行計算框架與上層的學(xué)習(xí)算法層以緊耦合的方式全部自己實現(xiàn),系統(tǒng)實現(xiàn)復(fù)雜性和代價較大。

    (6)騰訊Peacock與Mariana深度學(xué)習(xí)平臺

    Peacock[3]是騰訊公司研發(fā)的一個大規(guī)模LDA主題模型訓(xùn)練系統(tǒng)。該系統(tǒng)通過并行計算可對10億×1億級別的大規(guī)模矩陣進行分解,從而從海量文檔樣本數(shù)據(jù)中學(xué)習(xí)10萬~100萬量級的隱含語義。為了完成大規(guī)模處理,Peacock基于吉布斯采樣的LDA訓(xùn)練算法進行了并行化設(shè)計,并設(shè)計實現(xiàn)了一個完整的具有大規(guī)模樣本數(shù)據(jù)處理能力的訓(xùn)練系統(tǒng)。Peacock已廣泛應(yīng)用在騰訊的文本語義理解、QQ群推薦、用戶商業(yè)興趣挖掘、相似用戶擴展、廣告點擊率轉(zhuǎn)化率預(yù)估等多個業(yè)務(wù)數(shù)據(jù)中,是一個專為LDA并行化計算而定制的大規(guī)模訓(xùn)練系統(tǒng),不是一個通用化的大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)。

    為了提供更為廣泛的大規(guī)模并行化機器學(xué)習(xí)處理能力,騰訊研究構(gòu)建了一個稱為Mariana的深度學(xué)習(xí)平臺[22],該平臺由3套大規(guī)模深度學(xué)習(xí)系統(tǒng)構(gòu)成,包括基于多GPU的深度神經(jīng)網(wǎng)絡(luò)并行計算系統(tǒng)Mariana DNN、基于多GPU的深度卷積神經(jīng)網(wǎng)絡(luò)并行計算系統(tǒng)Mariana CNN以及基于CPU集群的深度神經(jīng)網(wǎng)絡(luò)并行計算系統(tǒng)Mariana Cluster。Mariana可提供數(shù)據(jù)并行和模型并行計算,基于GPU和CPU集群提升模型規(guī)模,加速訓(xùn)練性能。其中,Mariana DNN在騰訊內(nèi)部用于微信語音識別聲學(xué)模型訓(xùn)練,可訓(xùn)練超過1萬小時的語音數(shù)據(jù)、超過40億的數(shù)據(jù)樣本以及超過5 000萬的參數(shù),相對于單GPU而言,6GPU可實現(xiàn)4.6倍的加速比;而Mariana CNN用于微信圖像識別,可訓(xùn)練2 000個以上的分類、300萬以上的數(shù)據(jù)樣本以及超過6 000萬的參數(shù),相對于單GPU而言,4GPU可實現(xiàn)2.5倍的加速比,在圖文類效果廣告點擊率提升方面也取得初步應(yīng)用;Mariana Cluster實現(xiàn)了一個基于Parameter Server模型的大規(guī)模通用化機器學(xué)習(xí)和訓(xùn)練系統(tǒng),主要用于進行大規(guī)模廣告并行化訓(xùn)練,完成廣告點擊率預(yù)估模型訓(xùn)練和廣告點擊性能優(yōu)化。

    (7)百度ELF與百度機器學(xué)習(xí)云平臺BML

    百度公司研發(fā)了一個大規(guī)模分布式機器學(xué)習(xí)框架和系統(tǒng)ELF(essential learning framework)[23]。ELF是一個基于Parameter Server模型的通用化大規(guī)模機器學(xué)習(xí)系統(tǒng),可允許用戶方便快速地設(shè)計實現(xiàn)大數(shù)據(jù)機器學(xué)習(xí)算法,在系統(tǒng)設(shè)計上吸收了Hadoop、Spark和MPI等大數(shù)據(jù)平臺的優(yōu)點,用類似于Spark的全內(nèi)存DAG計算引擎,可基于數(shù)據(jù)流的編程模式,通過高度抽象的編程接口,讓用戶方便地完成各種機器學(xué)習(xí)算法的并行化設(shè)計和快速計算。

    在ELF的基礎(chǔ)上,百度進一步開發(fā)了一個機器學(xué)習(xí)云平臺BML(Baidu machine learning),該平臺支持豐富的機器學(xué)習(xí)算法,可支持20多種大規(guī)模并行機器學(xué)習(xí)算法,提供包括數(shù)據(jù)預(yù)處理算法、分類算法、聚類算法、主題模型、推薦算法、深度學(xué)習(xí)、序列模型、在線學(xué)習(xí)在內(nèi)的各種機器學(xué)習(xí)算法支持,并通過分布和并行化計算實現(xiàn)優(yōu)異的計算性能。BML在百度內(nèi)部的業(yè)務(wù)系統(tǒng)中經(jīng)歷了線上大規(guī)模使用部署考驗,承載公司內(nèi)各種重要的在線業(yè)務(wù)線應(yīng)用,包括鳳巢廣告CTR 預(yù)估、搜索LTR排名等。

    6 跨平臺統(tǒng)一大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)Octopus的研究設(shè)計

    6.1 Octopus的基本設(shè)計思想

    上述絕大多數(shù)大數(shù)據(jù)機器學(xué)習(xí)方法和系統(tǒng)都是基于特定平臺構(gòu)建的,難以集成和兼容現(xiàn)有和未來出現(xiàn)的多種大數(shù)據(jù)處理引擎和平臺。現(xiàn)實世界中的各種大數(shù)據(jù)分析處理應(yīng)用通常會有不同的分析處理需求和特征,例如,有些可能是極大規(guī)模數(shù)據(jù)的離線分析處理,有些可能是要求高實時性響應(yīng)的聯(lián)機分析處理,這些不同的分析需求要求底層有不同特性的大數(shù)據(jù)處理平臺支持;此外,隨著大數(shù)據(jù)處理技術(shù)和平臺的不斷發(fā)展,目前和未來不斷有新的大數(shù)據(jù)編程方法和處理平臺出現(xiàn)。因此,企業(yè)內(nèi)需要將其原有平臺上已經(jīng)開發(fā)好的機器學(xué)習(xí)和數(shù)據(jù)分析算法,改寫和移植到新的平臺上,這將給企業(yè)帶來很大的重復(fù)性勞動和開發(fā)負擔。

    為此,一個理想的大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)還需要擁有能夠支持現(xiàn)有和未來出現(xiàn)的不同大數(shù)據(jù)處理平臺的能力,實現(xiàn)跨平臺大數(shù)據(jù)機器學(xué)習(xí)和數(shù)據(jù)分析算法的設(shè)計能力,達到“Write Once,Run Anywhere”的跨平臺算法設(shè)計和運行目標。

    針對大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)需要重點研究解決的計算性能以及可編程性與易用性問題,并考慮上述的跨平臺需求特性,南京大學(xué)PASA大數(shù)據(jù)實驗室正在研究設(shè)計一個跨平臺大數(shù)據(jù)機器學(xué)習(xí)的統(tǒng)一編程模型和系統(tǒng)平臺。該系統(tǒng)基于矩陣編程計算模型,結(jié)合R編程語言和編程方法,設(shè)計提供一個跨平臺的統(tǒng)一編程計算框架,最終研究實現(xiàn)一個跨平臺大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)Octopus(大章魚)。

    分析發(fā)現(xiàn),機器學(xué)習(xí)和數(shù)據(jù)挖掘算法中的主體計算大多可表示為矩陣或向量運算,這通常也是算法中最耗時的部分。矩陣操作也是機器學(xué)習(xí)研究者用來描述問題和算法最為自然和常用的方式,基于矩陣可以表示和刻畫大多數(shù)實際應(yīng)用中涉及的機器學(xué)習(xí)和數(shù)據(jù)分析算法問題?;谶@樣的事實,為了給大數(shù)據(jù)機器學(xué)習(xí)和數(shù)據(jù)分析提供一種自然和統(tǒng)一的編程計算模型和編程方法,類似于MapReduce中基于數(shù)據(jù)記錄列表的抽象編程計算模型,將研究建立一種基于矩陣模型的抽象編程計算模型,以此作為大數(shù)據(jù)機器學(xué)習(xí)和數(shù)據(jù)分析算法設(shè)計的統(tǒng)一編程計算模型和接口。

    Octopus是一個高層的大數(shù)據(jù)機器學(xué)習(xí)和數(shù)據(jù)分析統(tǒng)一編程模型和系統(tǒng)平臺,允許數(shù)據(jù)分析和大數(shù)據(jù)應(yīng)用開發(fā)程序員輕松地設(shè)計和開發(fā)各種大數(shù)據(jù)機器學(xué)習(xí)和數(shù)據(jù)分析算法與應(yīng)用程序。通過提供基于矩陣的統(tǒng)一編程計算模型,使用基于R語言的數(shù)據(jù)分析程序設(shè)計語言和程序設(shè)計方法,允許用戶方便地編寫和運行常規(guī)的R語言程序,而無需了解底層大數(shù)據(jù)平臺的分布和并行化編程計算知識,使底層的分布并行計算框架和大數(shù)據(jù)平臺對用戶完全透明;底層平臺上,通過良好的系統(tǒng)層抽象,可以快速集成Hadoop和Spark等通用大數(shù)據(jù)并行計算框架和系統(tǒng)平臺,而且程序僅需編寫一次,不需要有任何修改即可根據(jù)需要選擇并平滑運行于任何一個平臺,從而實現(xiàn)“Write Once,Run Anywhere”的跨平臺特性。

    6.2 基于矩陣模型的統(tǒng)一編程和計算模型

    分析發(fā)現(xiàn),一方面,大數(shù)據(jù)機器學(xué)習(xí)算法中的主體計算很多可表示為矩陣或向量運算(向量可視為退化為1維的特殊矩陣),通常這也是算法中最耗時的部分;另一方面,矩陣操作通常也是機器學(xué)習(xí)研究者用來描述問題和算法最為自然和常用的方式。例如,訓(xùn)練樣本特征值的歸一化往往是通過對矩陣行或列求和后再除以該求和的值;KNN算法(最近鄰算法)的核心操作是矩陣相減和矩陣元素求平方操作;PCA(主成分分析)算法可以通過矩陣相乘或矩陣的SVD分解進行求解;最小二乘法的解析法涉及矩陣的相乘和求逆操作;互聯(lián)網(wǎng)企業(yè)推薦系統(tǒng)中,相似性分析的核心是高達數(shù)億用戶乘以數(shù)億物品的矩陣分解計算問題;而騰訊Peacock主題模型訓(xùn)練系統(tǒng)則涉及數(shù)十億文檔乘以數(shù)百萬詞匯的巨大矩陣計算問題;在信息檢索領(lǐng)域,著名的PageRank算法也可以表示成矩陣的迭代相乘;社會網(wǎng)絡(luò)中可以通過計算朋友關(guān)系矩陣的冪,從而進行基于共同好友的推薦;電子商務(wù)中可以通過對用戶對商品的購買記錄進行矩陣分解,得到商品和用戶的聚類并分析其潛在語義主題模型。很多其他的數(shù)據(jù)分析和大數(shù)據(jù)科學(xué)計算問題也常常要基于矩陣模型完成問題的描述和分析計算過程。因此,基于矩陣可以表示和刻畫大多數(shù)實際應(yīng)用中涉及的機器學(xué)習(xí)和數(shù)據(jù)分析算法問題。

    基于這樣的事實,為了給大數(shù)據(jù)機器學(xué)習(xí)提供一種統(tǒng)一的編程計算模型以及編程方法,類似于MapReduce采用了基于數(shù)據(jù)記錄列表的抽象編程計算模型,研究建立了一種基于矩陣模型的抽象編程計算模型,以此作為大數(shù)據(jù)機器學(xué)習(xí)算法設(shè)計的統(tǒng)一編程計算模型和接口。

    這種抽象矩陣編程計算模型將成為統(tǒng)一機器學(xué)習(xí)算法設(shè)計和編程計算的核心,它具有如下3個重要作用。

    ● 基于機器學(xué)習(xí)和數(shù)據(jù)挖掘算法中主體計算大多可表示為矩陣或向量運算的事實,為數(shù)據(jù)分析用戶提供一種自然和統(tǒng)一化的大數(shù)據(jù)機器學(xué)習(xí)和數(shù)據(jù)分析算法建模和表示方法。

    ● 作為一個隔離和解耦上層數(shù)據(jù)分析算法與下層各種大數(shù)據(jù)平臺的中間接口,實現(xiàn)底層平臺對上層程序員及其程序的透明性,以此提高統(tǒng)一平臺對上層程序員的易用性。

    ● 為實現(xiàn)統(tǒng)一大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)開放式集成框架提供一種接口標準。針對任意一個擬集成使用的底層大數(shù)據(jù)平臺,只要遵照所建立的統(tǒng)一矩陣編程接口,實現(xiàn)一個完成該接口程序計算任務(wù)的適配器或插件,即可以博采眾長和兼容并蓄的開放式框架,連接和集成使用各種主流的大數(shù)據(jù)平臺,使得上層的機器學(xué)習(xí)算法具有處理大規(guī)模數(shù)據(jù)的能力。

    6.3 Octopus軟件框架和系統(tǒng)設(shè)計

    如圖5所示,Octopus是一種基于良好的系統(tǒng)抽象的層次化系統(tǒng)。其最底層是分布式文件系統(tǒng),如HDFS和分布式內(nèi)存文件系統(tǒng)Tachyon,它們被用來存儲和索引大規(guī)模的矩陣數(shù)據(jù)。在存儲層之上,Octopus可以用多種大數(shù)據(jù)計算引擎和單機R引擎來執(zhí)行不同規(guī)模的矩陣操作。Octopus提供給用戶的編程API是基于R語言的高層矩陣計算接口,基于該接口,用戶不需要了解分布和并行計算系統(tǒng)知識,就可以很容易地設(shè)計實現(xiàn)大數(shù)據(jù)機器學(xué)習(xí)和數(shù)據(jù)分析算法或應(yīng)用。

    6.4 Octopus系統(tǒng)的技術(shù)特征

    圖5 Octopus(大章魚)軟件系統(tǒng)框架

    Octopus具有以下技術(shù)特征。

    (1)易于使用的高層編程API

    Octopus提供給用戶一組基于R語言的大規(guī)模矩陣運算API,稱為OctMatrix。這些API提供各種大規(guī)模分布式矩陣計算操作,其形式上與標準R語言中的單機矩陣/向量操作API很相似。程序員可基于這些矩陣運算接口,用R語言快速編寫各種機器學(xué)習(xí)和數(shù)據(jù)分析算法。除了最常用的大規(guī)模矩陣乘法,Octopus也提供了其他各種矩陣操作,如矩陣與矩陣的加法和減法、矩陣元素級別的乘法和除法、子矩陣運算等。這些API定義了高層矩陣操作符(operator)和操作(operation),因此熟悉R編程語言和編程方法的用戶可以很容易地用其編程實現(xiàn)大數(shù)據(jù)機器學(xué)習(xí)和數(shù)據(jù)分析算法,且不需要了解底層大數(shù)據(jù)處理平臺及其并行化編程方法。

    (2)一次編寫,隨處運行

    用Octopus編寫完成的算法和程序,可以運行在不同的底層大數(shù)據(jù)計算引擎和平臺上。用OctMatrix API實現(xiàn)的機器學(xué)習(xí)和數(shù)據(jù)分析算法,用戶可以在單機R上用小數(shù)據(jù)進行測試,不需要修改代碼就可以用大數(shù)據(jù)在底層的大數(shù)據(jù)計算引擎和平臺上執(zhí)行,只需要簡單切換底層的大數(shù)據(jù)計算引擎如Spark、Hadoop MapReduce或MPI即可。此外,Octopus通過提供通用接口可實現(xiàn)對底層不同文件系統(tǒng)的集成,并實現(xiàn)基于不同文件系統(tǒng)的大規(guī)模矩陣數(shù)據(jù)存儲訪問接口,包括HDFS、Tachyon以及基于單機本地的文件系統(tǒng)。

    (3)無縫融合R生態(tài)系統(tǒng)

    Octopus可運行于標準的R環(huán)境下,實現(xiàn)與R環(huán)境的無縫融合,因此可以利用R生態(tài)系統(tǒng)中的豐富資源,比如第三方R包。除了傳統(tǒng)的矩陣/向量函數(shù),Octopus也在OctMatrix中提供apply函數(shù),傳入apply函數(shù)的參數(shù)可以是任意的R函數(shù),包括UDF(user defined function)。當OctMatrix運行在分布式環(huán)境中時,函數(shù)參數(shù)可以在集群中被應(yīng)用于OctMatrix的每個元素、每行或每列,函數(shù)參數(shù)在集群的每個節(jié)點并行執(zhí)行。

    6.5 Octopus中分布式矩陣計算優(yōu)化

    大規(guī)模數(shù)據(jù)通常會導(dǎo)致整個數(shù)據(jù)分析計算時間過長,難以在可接受的時間內(nèi)完成分析任務(wù),為此需要借助于分布式和并行化計算技術(shù)實現(xiàn)大規(guī)模數(shù)據(jù)分析計算時的加速和性能提升,以提高數(shù)據(jù)分析的響應(yīng)時間。由于采用大規(guī)模矩陣作為大數(shù)據(jù)機器學(xué)習(xí)和數(shù)據(jù)分析的編程計算接口,在底層大數(shù)據(jù)平臺上的大規(guī)模矩陣運算的性能將直接關(guān)系到上層算法執(zhí)行的性能。為此,大規(guī)模矩陣計算性能優(yōu)化是需要重點研究解決的關(guān)鍵技術(shù)問題之一。

    在所有矩陣計算中,矩陣乘法是使用最多且最為耗時的計算,許多矩陣的因子分解操作也都可以由矩陣乘法近似實現(xiàn)。因此,矩陣乘法的優(yōu)化是整個矩陣計算優(yōu)化中最為重要的問題。兩個大規(guī)模矩陣進行分布和并行化相乘運算時,一個重要問題是如何合理劃分矩陣數(shù)據(jù),以便利用多個計算節(jié)點分布和并行化地完成計算。不同大小和形狀的矩陣,其劃分方法可能會造成計算性能上的差異,例如,方形矩陣與長條形矩陣需要考慮不同的劃分方法,而一個大矩陣與一個小矩陣相乘時,當小矩陣可存放在單節(jié)點的內(nèi)存中時,對小矩陣可不進行劃分,而改用廣播方式將小矩陣發(fā)送到每個計算節(jié)點上,以此完成兩個矩陣的運算,這樣可以避免大量的網(wǎng)絡(luò)數(shù)據(jù)傳輸。因此,需要根據(jù)矩陣的大小和形狀,合理劃分矩陣,以便以最小的計算代價完成乘法運算。

    除了不同形狀和大小的矩陣劃分策略優(yōu)化外,被劃分后落到每個計算節(jié)點上分布處理的子矩陣計算也需要進行優(yōu)化。矩陣乘法是典型的計算密集型任務(wù)并且存在許多單機的高性能的線性代數(shù)庫,如BLAS、Lapack和MKL。由于在JVM中執(zhí)行線性代數(shù)計算性能較低,Octopus將計算密集的矩陣計算從JVM中通過JNILoader裝載到本地線性代數(shù)庫(如BLAS、Lapack)中執(zhí)行,這樣可顯著加速子矩陣的計算性能。

    圖6 基于R語言和Octopus的跨平臺統(tǒng)一大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)

    6.6 Octopus系統(tǒng)的編程使用

    圖6顯示了Octopus系統(tǒng)的使用方式。Octopus使用標準的R編程和開發(fā)環(huán)境,允許用戶使用R語言,并基于大規(guī)模矩陣計算模型編寫各種機器學(xué)習(xí)和數(shù)據(jù)分析算法。系統(tǒng)可實現(xiàn)與Spark、Hadoop MapReduce和MPI的集成,底層可無縫切換運行于不同的大數(shù)據(jù)平臺上。基于Octopus所設(shè)計實現(xiàn)的算法或程序代碼,無需修改即可平滑切換并運行于上述任意一個底層大數(shù)據(jù)計算引擎和平臺上,只要簡單地修改程序代碼中的計算引擎類型選擇參數(shù)即可。

    基于R語言和初步研究設(shè)計的Octopus,設(shè)計實現(xiàn)了多個典型的機器學(xué)習(xí)算法,包括LR、SVM、聚類、深度學(xué)習(xí)等,以驗證研究設(shè)計的原型系統(tǒng)的有效性。

    圖7是基于常規(guī)R語言所實現(xiàn)的Linear Regression算法與基于Octopus所實現(xiàn)的Linear Regression算法的示例代碼。由代碼比較可見,兩者在形式上非常接近,僅在有關(guān)矩陣運算調(diào)用的API上有微小差異。

    由圖7可見,在R語言中基于矩陣進行機器學(xué)習(xí)的算法設(shè)計較為簡潔和方便,Linear Regression代碼僅僅需要20行左右即可實現(xiàn)完整的算法。

    圖7 基于Octopus和常規(guī)R語言的Linear Regresssion算法代碼比較

    7 結(jié)束語

    近幾年來,大數(shù)據(jù)技術(shù)的發(fā)展推動了大數(shù)據(jù)機器學(xué)習(xí)和智能計算技術(shù)的發(fā)展熱潮。大數(shù)據(jù)機器學(xué)習(xí)不僅是一個單純的機器學(xué)習(xí)問題,更是一個大規(guī)模的復(fù)雜系統(tǒng)問題;是一個同時涉及機器學(xué)習(xí)和大數(shù)據(jù)處理兩個領(lǐng)域的交叉研究課題。要實現(xiàn)有效的大數(shù)據(jù)機器學(xué)習(xí)處理,需要構(gòu)建一個能同時支持機器學(xué)習(xí)算法設(shè)計和大規(guī)模數(shù)據(jù)處理的一體化大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)。

    本文介紹了國內(nèi)外大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)的基本概念、基本研究問題、技術(shù)特征、系統(tǒng)分類以及典型系統(tǒng)。在此基礎(chǔ)上,進一步介紹了研究設(shè)計的跨平臺統(tǒng)一大數(shù)據(jù)機器學(xué)習(xí)原型系統(tǒng)Octopus?;诖蠖鄶?shù)機器學(xué)習(xí)和數(shù)據(jù)分析算法可表示為矩陣運算的事實,Octopus采用矩陣模型作為大數(shù)據(jù)機器學(xué)習(xí)和數(shù)據(jù)分析抽象編程計算模型,提供了一個基于矩陣的高層編程模型和接口,并基于R語言和開發(fā)環(huán)境向用戶提供了一個矩陣運算R擴展包,為用戶提供可擴展性好且易于使用的矩陣運算操作,允許用戶基于所提供的大規(guī)模矩陣運算操作,快速設(shè)計實現(xiàn)各種機器學(xué)習(xí)和數(shù)據(jù)分析算法。Octopus能在底層無縫地集成和使用不同的大數(shù)據(jù)計算引擎和平臺,完成大數(shù)據(jù)機器學(xué)習(xí)算法的分布和并行化執(zhí)行,并支持單節(jié)點R環(huán)境以及Spark、Hadoop MapReduce和MPI等多種大數(shù)據(jù)計算引擎和平臺,并能實現(xiàn)這些平臺間的無縫切換,實現(xiàn)“Write Once,Run Anywhere”的跨平臺特征。就我們所知,Octopus是目前世界上第一個具有跨平臺特性,同時還能實現(xiàn)底層大數(shù)據(jù)平臺對上層程序員透明化的大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)研究工作。

    正如CCF大數(shù)據(jù)專家委員會發(fā)布的2014年《中國大數(shù)據(jù)技術(shù)與產(chǎn)業(yè)發(fā)展白皮書》中所說,目前大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)尚處在一個初期的探索和研究階段,盡管國內(nèi)外已經(jīng)有不少研究開發(fā)工作,但研究設(shè)計高效、可擴展且易于使用的大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)仍面臨諸多的技術(shù)挑戰(zhàn)。因此,大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)將是目前和未來幾年的熱點研究領(lǐng)域,工業(yè)界和學(xué)術(shù)界都將持續(xù)地投入相當多的資源進行深入的研究開發(fā)工作。

    同樣,雖然初步研究設(shè)計了跨平臺大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)Octopus,但其中仍然有大量需要進一步深入研究解決和完善的技術(shù)問題,例如大規(guī)模矩陣運算的深度優(yōu)化、稀疏矩陣的存儲管理和計算優(yōu)化、異構(gòu)大數(shù)據(jù)處理平臺環(huán)境下不同矩陣計算時的平臺自動選擇、基于矩陣計算表達式和計算流圖的計算優(yōu)化等。此外,僅有矩陣計算模型還不能滿足所有的大數(shù)據(jù)機器學(xué)習(xí)計算需求,還需要考慮其他計算模型,如圖模型和參數(shù)模型(parameter server)的混合使用,形成一個能滿足各種大數(shù)據(jù)機器學(xué)習(xí)算法設(shè)計需求的綜合系統(tǒng)。

    致謝

    本文工作受到江蘇省科技支撐計劃基金項目(No.BE2014131)和江蘇省軟件技術(shù)產(chǎn)業(yè)協(xié)同創(chuàng)新中心的資助。

    參考文獻

    [1] Banko M, Brill E. Scaling to very large corpora for natural language disambiguation. Proceedings of the 39th Annual Meeting on Association for Computational Linguistics (ACL), Toulouse, France, 2001: 26~33

    [2] Brants T, Popat C A, Xu P, et al. Large language models in machine translation. Proceedings of the 2007 Joint Conference on Empirical Methods in Natural Language Processing and Computational Language Learning, Prague, Czech Republic, 2007: 858~867

    [3] Wang Y, Zhao X M, Sun Z L, et al. Peacock: learning long-tail topic features for industrial applications. ACM Transactions on Intelligent Systems and Technology, 2014, 9(4)

    [4] 中國計算機學(xué)會大數(shù)據(jù)專家委員會. 2015年中國大數(shù)據(jù)發(fā)展趨勢預(yù)測. 中國計算機學(xué)會通訊, 2015, 11(1): 48~52 CCF Task 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] Gonzalez J E. Emerging systems for large-scale machine learning. Proceedings of Tutorial on International Conference for Machine Learning(ICML) 2014, Beijing, China, 2014

    [6] 中國計算機學(xué)會大數(shù)據(jù)專家委員會. 2014年中國大數(shù)據(jù)技術(shù)與產(chǎn)業(yè)發(fā)展白皮書. 2014中國大數(shù)據(jù)技術(shù)大會, 北京, 中國, 2014 CCF Task Force on Big Data. White paper of China’s big data technology and industrial development in 2014. Proceedings of Big Data Conference China, Beijing, China, 2014

    [7] Boehm M, Tatikonda S, Reinwald B, et al. Hybrid parallelization strategiesfor large-scale machine learning in systemML. Proceedings of the VLDB Endowment, Hangzhou, China, 2014

    [8] Markl V. Breaking the chains: on declarative data analysis and data independence in the big data era. Proceedings of the VLDB Endowment, Hangzhou, China, 2014

    [9] Kraska T T. MLbase: a distributed machine-learning system. Proceedings of the 6th Conference on Innovative Data Systems Research(CIDR), Asilomar, CA, USA, 2013

    [10] Fan W F, Geerts F, Neven F. Making queries tractable on big data with preprocessing: through the eyes of complexity theory. Proceedings of the VLDB Endowment, Trento, Italy, 2013: 685~696

    [11] Dean J, Ghemawat S. MapReduce: simplified data processing on large clusters. Communications of the ACM, 2004, 51(1): 107~113

    [12] Zaharia M, Chowdhury M, Das T, et al. Resilient distributed datasets: a fault-tolerant abstraction for inmemory cluster computing. Proceedings of the 9th USENIX Conference 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 learning and graph processing with sparse matrices. Proceedings of the 8th ACM European Conference on Computer Systems(EuroSys), Prague, Czech Republic, 2013: 197~210

    [14] Ghoting A, Krishnamurthy R, Pednault E, et al. SystemML: declarative machine learning on MapReduce. Proceedings of International Conference on Data Engineering (ICDE), Hannover, Germany, 2011: 231~242

    [15] Boehm M, Tatikonda S, Reinwald B, et al. Hybrid parallelization strategies for large-scale machine learning in SystemML. Proceedings of the VLDB Endowment, Hangzhou, China, 2014

    [16] Low Y, Bickson D, Gonzalez J, et al. Distributed graphLab: a framework for machine learning and data mining in the cloud. Proceedings of the VLDB Endowment, Istanbul, Turkey, 2012: 716~727

    [17] Li M, Andersen G D, Park W J, et al. Scaling distributed machine learning with the parameter server. Proceedings of Operating Systems Design and Implementation (OSDI), Broomfield, CD, USA, 2014: 583~598

    [18] Ho Q, Cipar J, Cui H, et al. More effective distributed ml via a stale synchronous parallel parameter server. Proceedings of Advances in Neural Information Processing Systems (NIPS), Nevada, USA, 2013: 1223~1231

    [19] Alexandrov A, Bergmann R, Ewen S, et al. The stratosphere platform for big data analytics. Vldb Journal, 2014, 23(6): 939~964

    [20] Battré D, Ewen S, Hueske F, et al. Nephele/PACTs: a programming model and execution framework for web-scale analytical processing. Proceedings of ACM Symposium on Cloud Computing(SoCC), Indianapolis, Indiana, USA, 2010: 119~130

    [21] Dai W, Wei J, Zheng X, et al. Petuum: a framework for iterative-convergent distributed ML. Proceedings of Advances in Neural Information Processing Systems 26, Big Learning Workshop, California, USA, 2013

    [22] 鄒永強. Mariana—騰訊深度學(xué)習(xí)平臺的進展與應(yīng)用. 2014年中國大數(shù)據(jù)技術(shù)大會,北京,中國,2014 Zou Y Q. Marina-the progress and application of deep learning platform of Tencent. Proceedings of DatabaseTechnology Conference China 2015, Beijing, China, 2014

    [23] 劉偉. 百度機器學(xué)習(xí)云平臺. 2015年中國數(shù)據(jù)庫技術(shù)大會, 北京, 中國, 2015 Liu W. Machine learning cloud platform of Baidu. Proceedings of Database Technology Conference China 2015, Beijing, China, 2015

    Huang Y H. Research progress on big data machine learning system. Big Data Research, 2015004

    Research Progress on Big Data Machine Learning System

    Huang Yihua1,2
    1.National Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210023, China; 2.PASA Big Data Laboratory, Nanjing University, Nanjing 210023, China

    To achieve efficient big data machine learning, we need to construct a unified big data machine learning system to support both machine learning algorithm design and big data processing. Designing an efficient, scalable and easy-to-use big data machine learning system still faces a number of challenges. Recently, the upsurge of big data technology has promoted rapid development of big data machine learning, making big data machine learning system to become a research hotspot. The basic concepts, research issues, technical characteristics, categories, and typical systems for big data machine learning system, were reviewed. Then a unified and cross-platform big data machine learning system, Octopus, was presented.

    big data, machine learning, distributed and parallel computing, big data processing platform

    黃宜華,男,博士,南京大學(xué)計算機系教授、博士生導(dǎo)師,中國計算機學(xué)會大數(shù)據(jù)專家委員會委員、副秘書長,江蘇省計算機學(xué)會大數(shù)據(jù)專家委員會主任,CCF高級會員,南京大學(xué)PASA大數(shù)據(jù)技術(shù)實驗室學(xué)術(shù)帶頭人。主要研究方向為大數(shù)據(jù)并行處理、大數(shù)據(jù)機器學(xué)習(xí)、Web信息抽取與挖掘技術(shù),在國內(nèi)外學(xué)術(shù)刊物和國際會議上發(fā)表學(xué)術(shù)論文60多篇,撰寫并出版大數(shù)據(jù)處理方向書籍兩部,是近年來出版的《深入理解大數(shù)據(jù)—大數(shù)據(jù)處理與編程實踐》一書的作者。目前正在大數(shù)據(jù)并行化算法、大數(shù)據(jù)系統(tǒng)平臺和應(yīng)用方面開展深入的研究工作,主持或參與多項國家級和省部級科研項目,并在大數(shù)據(jù)領(lǐng)域開展了與Intel、UC Berkeley AMP Lab、微軟亞洲研究院、百度、中興通訊等國內(nèi)外知名企業(yè)和研究機構(gòu)的合作研究工作。

    2015-05-03;

    2015-05-11

    江蘇省科技支撐計劃基金資助項目(No.BE2014131)

    Foundation Item:Jiangsu Province Science and Technology Support Program(No.BE2014131)

    黃宜華. 大數(shù)據(jù)機器學(xué)習(xí)系統(tǒng)研究進展. 大數(shù)據(jù), 2015004

    猜你喜歡
    模型系統(tǒng)設(shè)計
    一半模型
    Smartflower POP 一體式光伏系統(tǒng)
    WJ-700無人機系統(tǒng)
    ZC系列無人機遙感系統(tǒng)
    北京測繪(2020年12期)2020-12-29 01:33:58
    重要模型『一線三等角』
    重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
    瞞天過?!律O(shè)計萌到家
    連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
    設(shè)計秀
    海峽姐妹(2017年7期)2017-07-31 19:08:17
    有種設(shè)計叫而專
    Coco薇(2017年5期)2017-06-05 08:53:16
    啦啦啦中文免费视频观看日本| 一区二区三区四区激情视频| 少妇人妻 视频| 欧美日韩综合久久久久久| 一级av片app| 亚洲成人久久爱视频| 男男h啪啪无遮挡| 美女xxoo啪啪120秒动态图| 久久久国产一区二区| 日日撸夜夜添| 免费看光身美女| 国产伦在线观看视频一区| 国产在线男女| 国产精品麻豆人妻色哟哟久久| 日日啪夜夜爽| 久热久热在线精品观看| 免费观看的影片在线观看| 最后的刺客免费高清国语| 成人漫画全彩无遮挡| 日本av手机在线免费观看| 亚洲精品色激情综合| 国产精品久久久久久精品电影| freevideosex欧美| 成人毛片a级毛片在线播放| 日本-黄色视频高清免费观看| 在线天堂最新版资源| 人妻制服诱惑在线中文字幕| 亚洲无线观看免费| 亚洲av中文字字幕乱码综合| 免费黄频网站在线观看国产| 高清毛片免费看| 欧美极品一区二区三区四区| 美女视频免费永久观看网站| 国产精品久久久久久久久免| 性色av一级| 老司机影院成人| av国产精品久久久久影院| 国产黄a三级三级三级人| 国产成年人精品一区二区| 搡女人真爽免费视频火全软件| 欧美日韩精品成人综合77777| 国产精品偷伦视频观看了| 日韩人妻高清精品专区| 免费观看在线日韩| 纵有疾风起免费观看全集完整版| 在线a可以看的网站| 精品国产一区二区三区久久久樱花 | 国产精品久久久久久久久免| 蜜桃亚洲精品一区二区三区| 国产欧美日韩一区二区三区在线 | 中文乱码字字幕精品一区二区三区| 亚洲国产精品成人综合色| 精品少妇久久久久久888优播| 性色avwww在线观看| 精品一区二区三区视频在线| 禁无遮挡网站| 免费观看的影片在线观看| 免费观看的影片在线观看| 春色校园在线视频观看| 性色avwww在线观看| 久久久久网色| 国产精品一区www在线观看| 一级黄片播放器| 亚洲人与动物交配视频| 人妻系列 视频| 天堂俺去俺来也www色官网| 超碰97精品在线观看| 蜜桃亚洲精品一区二区三区| a级毛色黄片| 久久久久网色| 蜜臀久久99精品久久宅男| 精品熟女少妇av免费看| 国产精品久久久久久久电影| 欧美xxⅹ黑人| 日韩,欧美,国产一区二区三区| 欧美人与善性xxx| 欧美日本视频| 看黄色毛片网站| 国产欧美日韩精品一区二区| 美女被艹到高潮喷水动态| 亚洲图色成人| 成年免费大片在线观看| 国产精品一区www在线观看| 亚洲成人久久爱视频| 建设人人有责人人尽责人人享有的 | 夫妻性生交免费视频一级片| 久久久欧美国产精品| 男人添女人高潮全过程视频| 九九爱精品视频在线观看| 又爽又黄a免费视频| 日日啪夜夜爽| 国产色婷婷99| 中文字幕久久专区| 国产成人a区在线观看| 中文字幕人妻熟人妻熟丝袜美| 国产v大片淫在线免费观看| 中文字幕免费在线视频6| 99久久人妻综合| videos熟女内射| 97在线人人人人妻| 男女那种视频在线观看| 在线观看一区二区三区激情| 大又大粗又爽又黄少妇毛片口| 国产探花在线观看一区二区| 欧美一级a爱片免费观看看| 精品人妻一区二区三区麻豆| 天堂网av新在线| 人妻 亚洲 视频| 99re6热这里在线精品视频| 黄色配什么色好看| 夜夜看夜夜爽夜夜摸| av在线观看视频网站免费| 草草在线视频免费看| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 中文精品一卡2卡3卡4更新| 激情 狠狠 欧美| 亚洲婷婷狠狠爱综合网| 一本一本综合久久| 久久精品久久久久久久性| videos熟女内射| 亚洲精华国产精华液的使用体验| 亚洲欧美成人精品一区二区| 女人久久www免费人成看片| 熟女电影av网| 亚洲精品乱码久久久久久按摩| 免费观看a级毛片全部| 日韩大片免费观看网站| 亚洲国产欧美人成| 啦啦啦中文免费视频观看日本| 毛片一级片免费看久久久久| 亚洲欧美中文字幕日韩二区| 免费看av在线观看网站| 亚洲美女搞黄在线观看| av在线老鸭窝| 国产成人精品一,二区| 日韩在线高清观看一区二区三区| www.av在线官网国产| 国产精品一区二区性色av| 亚洲真实伦在线观看| 最新中文字幕久久久久| 菩萨蛮人人尽说江南好唐韦庄| 中文精品一卡2卡3卡4更新| 在线观看国产h片| 大片免费播放器 马上看| 国产 精品1| 一级av片app| 男人添女人高潮全过程视频| 亚洲最大成人中文| 亚洲欧美一区二区三区黑人 | 91午夜精品亚洲一区二区三区| 国产精品一区二区在线观看99| 精品国产一区二区三区久久久樱花 | 视频中文字幕在线观看| 在线观看免费高清a一片| 国产人妻一区二区三区在| 国产成人aa在线观看| 久久久久久久国产电影| 成人美女网站在线观看视频| 97超碰精品成人国产| 国产欧美亚洲国产| 九九在线视频观看精品| 久久久久久九九精品二区国产| 国产精品成人在线| 日韩大片免费观看网站| 嫩草影院精品99| 春色校园在线视频观看| 久久久久久久午夜电影| 青春草亚洲视频在线观看| 国产成人a∨麻豆精品| 麻豆成人午夜福利视频| 日本欧美国产在线视频| 人妻系列 视频| 真实男女啪啪啪动态图| 亚洲欧美成人精品一区二区| 亚洲经典国产精华液单| 亚洲精品日韩在线中文字幕| 国产精品偷伦视频观看了| 五月玫瑰六月丁香| 久久99热这里只频精品6学生| 久久久色成人| 亚洲国产成人一精品久久久| 国产伦精品一区二区三区四那| 国产成人精品福利久久| 身体一侧抽搐| 欧美bdsm另类| 精品一区在线观看国产| 日本欧美国产在线视频| 欧美成人精品欧美一级黄| 日韩电影二区| 国产成人freesex在线| 国产免费一级a男人的天堂| 在线观看一区二区三区| 精品久久国产蜜桃| 性插视频无遮挡在线免费观看| 狂野欧美激情性bbbbbb| av黄色大香蕉| 国产欧美亚洲国产| 亚洲av国产av综合av卡| 国产一区二区在线观看日韩| 22中文网久久字幕| 水蜜桃什么品种好| 中文资源天堂在线| av在线老鸭窝| 国产精品一及| 久久精品久久久久久噜噜老黄| 久久ye,这里只有精品| 高清欧美精品videossex| 干丝袜人妻中文字幕| 精品视频人人做人人爽| 波野结衣二区三区在线| 日本色播在线视频| 一级片'在线观看视频| av国产久精品久网站免费入址| 亚洲人与动物交配视频| 香蕉精品网在线| 日韩视频在线欧美| 黄色日韩在线| av在线观看视频网站免费| 国产成人免费观看mmmm| 深爱激情五月婷婷| 精品人妻熟女av久视频| 久久久久久久亚洲中文字幕| 色综合色国产| 精品人妻视频免费看| 国产亚洲最大av| 国产精品熟女久久久久浪| 欧美高清性xxxxhd video| 成人欧美大片| 天堂中文最新版在线下载 | 国产成年人精品一区二区| av国产精品久久久久影院| 久久久久性生活片| 青春草视频在线免费观看| 黄色配什么色好看| 午夜日本视频在线| 一级片'在线观看视频| 丰满少妇做爰视频| 秋霞在线观看毛片| 秋霞伦理黄片| 国内精品美女久久久久久| 国产成人91sexporn| 成人漫画全彩无遮挡| 日本欧美国产在线视频| 别揉我奶头 嗯啊视频| 亚洲精华国产精华液的使用体验| 日本-黄色视频高清免费观看| 国产伦精品一区二区三区视频9| 久久影院123| 狂野欧美白嫩少妇大欣赏| 真实男女啪啪啪动态图| 少妇高潮的动态图| 一区二区三区精品91| 丰满乱子伦码专区| 国产片特级美女逼逼视频| 亚洲天堂国产精品一区在线| 亚洲色图av天堂| 亚洲天堂av无毛| 男女国产视频网站| 一本久久精品| 青春草视频在线免费观看| 国产精品一区二区在线观看99| 2022亚洲国产成人精品| 2018国产大陆天天弄谢| 国内精品宾馆在线| 免费黄网站久久成人精品| 欧美日本视频| 亚洲精品乱码久久久久久按摩| 中文精品一卡2卡3卡4更新| 男插女下体视频免费在线播放| 亚洲天堂国产精品一区在线| 波野结衣二区三区在线| 国产精品av视频在线免费观看| 日韩成人av中文字幕在线观看| av女优亚洲男人天堂| 亚洲丝袜综合中文字幕| 身体一侧抽搐| 777米奇影视久久| 国产亚洲av嫩草精品影院| 观看免费一级毛片| 国产有黄有色有爽视频| 亚洲怡红院男人天堂| 亚洲美女视频黄频| 欧美少妇被猛烈插入视频| 国产老妇伦熟女老妇高清| 久久久久久久久久久丰满| 日韩,欧美,国产一区二区三区| 久久国产乱子免费精品| 97在线视频观看| 少妇人妻精品综合一区二区| 国产高清三级在线| 岛国毛片在线播放| 在线观看一区二区三区| 色视频在线一区二区三区| 国产亚洲一区二区精品| 久久久欧美国产精品| 免费观看在线日韩| 99久久中文字幕三级久久日本| av卡一久久| 国产视频内射| 亚洲,欧美,日韩| freevideosex欧美| 中国国产av一级| 一级黄片播放器| 日韩成人伦理影院| 日韩av在线免费看完整版不卡| 男女国产视频网站| 色视频www国产| 欧美日本视频| 精品人妻视频免费看| 亚洲精品国产成人久久av| 少妇熟女欧美另类| 高清毛片免费看| 亚洲最大成人中文| 男的添女的下面高潮视频| 欧美bdsm另类| videossex国产| 极品少妇高潮喷水抽搐| 在线天堂最新版资源| 亚洲伊人久久精品综合| 大香蕉97超碰在线| 国产高清三级在线| 麻豆久久精品国产亚洲av| 久久精品综合一区二区三区| 51国产日韩欧美| 看黄色毛片网站| 2022亚洲国产成人精品| 深爱激情五月婷婷| 免费看日本二区| www.av在线官网国产| 日韩制服骚丝袜av| 国产高清有码在线观看视频| 狠狠精品人妻久久久久久综合| 国产精品一区二区三区四区免费观看| 久久久成人免费电影| 日本一二三区视频观看| 男人添女人高潮全过程视频| 22中文网久久字幕| 久久久久久久午夜电影| 国产亚洲一区二区精品| 看免费成人av毛片| 日本wwww免费看| 日韩免费高清中文字幕av| 国产高清三级在线| 2022亚洲国产成人精品| 少妇裸体淫交视频免费看高清| av线在线观看网站| av在线蜜桃| 成人特级av手机在线观看| 欧美3d第一页| 在线a可以看的网站| 一级a做视频免费观看| 国产69精品久久久久777片| 黄色日韩在线| 国产男人的电影天堂91| 日韩亚洲欧美综合| 80岁老熟妇乱子伦牲交| 亚洲精品久久久久久婷婷小说| 日本爱情动作片www.在线观看| 又爽又黄a免费视频| 人妻夜夜爽99麻豆av| 美女xxoo啪啪120秒动态图| 国产在线一区二区三区精| 欧美xxⅹ黑人| av一本久久久久| 国产精品久久久久久久久免| 国产有黄有色有爽视频| 亚洲国产欧美人成| 免费看日本二区| 全区人妻精品视频| 日韩av免费高清视频| 美女高潮的动态| 亚洲经典国产精华液单| 久久久国产一区二区| 91精品国产九色| 人体艺术视频欧美日本| 高清av免费在线| 干丝袜人妻中文字幕| 高清午夜精品一区二区三区| 在线观看三级黄色| 下体分泌物呈黄色| 99re6热这里在线精品视频| 亚洲国产av新网站| 99久国产av精品国产电影| 免费av观看视频| 3wmmmm亚洲av在线观看| 在现免费观看毛片| 亚洲国产精品999| 精品一区二区免费观看| 国产 精品1| 成人免费观看视频高清| 国产成人精品婷婷| 韩国高清视频一区二区三区| 国产男女超爽视频在线观看| 又粗又硬又长又爽又黄的视频| 亚洲欧美日韩另类电影网站 | 如何舔出高潮| 国产免费一级a男人的天堂| 青青草视频在线视频观看| 久久精品国产a三级三级三级| 日韩人妻高清精品专区| 亚洲国产精品成人综合色| 国产欧美日韩精品一区二区| 26uuu在线亚洲综合色| 国产淫片久久久久久久久| 久久精品国产亚洲av涩爱| 99久久中文字幕三级久久日本| 最近的中文字幕免费完整| 久久女婷五月综合色啪小说 | videossex国产| 日韩欧美一区视频在线观看 | 国产一级毛片在线| 老司机影院毛片| 欧美性猛交╳xxx乱大交人| 男女那种视频在线观看| 蜜臀久久99精品久久宅男| 一二三四中文在线观看免费高清| 国产色婷婷99| 欧美日韩在线观看h| 99久久精品国产国产毛片| 干丝袜人妻中文字幕| 欧美三级亚洲精品| 亚洲av电影在线观看一区二区三区 | 亚洲天堂国产精品一区在线| 久久99蜜桃精品久久| 亚洲精品国产av成人精品| 一个人看视频在线观看www免费| 黑人高潮一二区| 国产精品蜜桃在线观看| 91久久精品电影网| 啦啦啦中文免费视频观看日本| 成人综合一区亚洲| 国产精品国产三级专区第一集| 欧美xxxx黑人xx丫x性爽| 日日摸夜夜添夜夜添av毛片| 国产成人免费观看mmmm| 干丝袜人妻中文字幕| 身体一侧抽搐| 日日摸夜夜添夜夜爱| 80岁老熟妇乱子伦牲交| 街头女战士在线观看网站| 国产精品嫩草影院av在线观看| 人人妻人人爽人人添夜夜欢视频 | av国产久精品久网站免费入址| 国产成人一区二区在线| 亚洲一级一片aⅴ在线观看| 亚洲成人一二三区av| 纵有疾风起免费观看全集完整版| av在线播放精品| 男人添女人高潮全过程视频| 搡女人真爽免费视频火全软件| 日韩一区二区三区影片| 全区人妻精品视频| 午夜免费鲁丝| 国产伦精品一区二区三区四那| 久久久成人免费电影| 韩国高清视频一区二区三区| 身体一侧抽搐| 男男h啪啪无遮挡| 久久久欧美国产精品| 国产亚洲91精品色在线| 干丝袜人妻中文字幕| 永久免费av网站大全| 超碰av人人做人人爽久久| 久久久久久久亚洲中文字幕| 看非洲黑人一级黄片| 好男人在线观看高清免费视频| 精品99又大又爽又粗少妇毛片| 日本黄大片高清| 国产免费一区二区三区四区乱码| 亚洲无线观看免费| 亚洲自偷自拍三级| av线在线观看网站| 国产黄色免费在线视频| 免费观看的影片在线观看| 国产毛片在线视频| 亚洲国产欧美人成| 国产综合懂色| 亚洲自拍偷在线| 熟女人妻精品中文字幕| 日本免费在线观看一区| 一区二区三区四区激情视频| 可以在线观看毛片的网站| 日韩精品有码人妻一区| 99热6这里只有精品| av在线蜜桃| 丰满少妇做爰视频| 精品少妇黑人巨大在线播放| 九色成人免费人妻av| 国产精品麻豆人妻色哟哟久久| 少妇丰满av| 美女高潮的动态| 亚洲一区二区三区欧美精品 | 亚洲在久久综合| 青春草亚洲视频在线观看| 国产淫语在线视频| 精品一区二区免费观看| 99热这里只有是精品在线观看| 国产高清不卡午夜福利| 亚洲av电影在线观看一区二区三区 | www.av在线官网国产| 欧美性猛交╳xxx乱大交人| 免费人成在线观看视频色| 免费不卡的大黄色大毛片视频在线观看| 蜜桃亚洲精品一区二区三区| 亚洲精品视频女| 国产 精品1| 国产成人精品久久久久久| 色播亚洲综合网| 亚洲最大成人中文| 久久人人爽av亚洲精品天堂 | 成年女人在线观看亚洲视频 | 国产日韩欧美亚洲二区| 午夜福利在线在线| av女优亚洲男人天堂| 国产av码专区亚洲av| 欧美xxxx黑人xx丫x性爽| 国产精品一区二区在线观看99| 女人十人毛片免费观看3o分钟| 搞女人的毛片| 国产精品精品国产色婷婷| 小蜜桃在线观看免费完整版高清| 日韩av免费高清视频| 大又大粗又爽又黄少妇毛片口| av免费观看日本| 热re99久久精品国产66热6| 午夜福利在线在线| 亚洲欧美中文字幕日韩二区| 国产av码专区亚洲av| 国产免费视频播放在线视频| 伦精品一区二区三区| 美女xxoo啪啪120秒动态图| 黄色欧美视频在线观看| xxx大片免费视频| 亚洲天堂国产精品一区在线| 99热网站在线观看| 嘟嘟电影网在线观看| 日产精品乱码卡一卡2卡三| 麻豆乱淫一区二区| 婷婷色麻豆天堂久久| 丝袜脚勾引网站| 91久久精品电影网| 简卡轻食公司| 欧美精品一区二区大全| 免费观看的影片在线观看| 在线a可以看的网站| 色视频在线一区二区三区| 搞女人的毛片| 18禁在线播放成人免费| 亚洲精品一二三| 国产视频首页在线观看| 小蜜桃在线观看免费完整版高清| 夫妻午夜视频| 欧美变态另类bdsm刘玥| 777米奇影视久久| 久久久久久久久久久丰满| 少妇人妻久久综合中文| 18禁动态无遮挡网站| 亚洲欧洲国产日韩| 成年av动漫网址| 日韩精品有码人妻一区| 直男gayav资源| 爱豆传媒免费全集在线观看| 国产日韩欧美在线精品| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 18禁裸乳无遮挡免费网站照片| 欧美区成人在线视频| 精品久久久久久久末码| 白带黄色成豆腐渣| 久久韩国三级中文字幕| 成人亚洲精品一区在线观看 | av免费在线看不卡| videos熟女内射| 亚洲国产欧美在线一区| av黄色大香蕉| 最近最新中文字幕免费大全7| av在线老鸭窝| 久久人人爽人人爽人人片va| 人妻 亚洲 视频| av在线天堂中文字幕| 麻豆成人av视频| 卡戴珊不雅视频在线播放| 国产精品久久久久久久电影| 亚洲精品日本国产第一区| 国产一区二区三区综合在线观看 | 亚洲av中文av极速乱| 国产成人aa在线观看| 国产黄色免费在线视频| 国产精品伦人一区二区| 久久精品国产自在天天线| 丝瓜视频免费看黄片| 亚洲综合色惰| 精品久久久噜噜| av一本久久久久| 国产精品99久久久久久久久| 亚洲欧美日韩卡通动漫| 成年版毛片免费区| 国产亚洲av嫩草精品影院| 22中文网久久字幕| 国产亚洲一区二区精品| 看非洲黑人一级黄片| 乱码一卡2卡4卡精品| 美女国产视频在线观看| 青春草视频在线免费观看| av一本久久久久| 国产伦理片在线播放av一区| 青青草视频在线视频观看| 三级经典国产精品| 久久国内精品自在自线图片| 日韩av在线免费看完整版不卡| 免费看日本二区| 亚洲综合色惰| 可以在线观看毛片的网站| 视频中文字幕在线观看| 久久久久久久久久久免费av| 国产亚洲精品久久久com|