朱小棟, 徐 怡, 魏紫鈺
(上海理工大學 管理學院,上海 200093)
隨著互聯網與通信技術的迅猛發展,我們已經處于數據爆炸的時代[1]。例如,臉譜網每月約有60億張新照片,YouTube每分鐘約400 h視頻被上傳。2010年時中國網頁規模就已達到600億個,年增長率達到78.6%[2]。這種爆炸性增長的數據推動了大范圍的數據挖掘,如商業、政府、醫療保健等。所以,相應地,大數據的有效分析和挖掘具有不可估量的經濟價值。
大數據時代來臨的同時,大多數數據挖掘算法在計算復雜度上呈指數級增長,數據挖掘過程要花費數小時甚至數天才能完成。因此,大數據挖掘常常需要大量的計算資源與計算空間。然而,許多企業,尤其是中小企業和組織無法負擔大型數據挖掘[3]。就像加州大學伯克利分校可靠自適應分布式系統實驗室的Armbrust[4]提到的那樣:“大規模并行任務處理能夠獲得與傳統計算累加相似的效率,使用一千臺服務器運算一個小時的成本,與一臺服務器計算一千個小時不相上下。這種資源的彈性是史無前例的—它意味著用戶不必為擴展花費過多的成本。”所以,云計算資源的租用成為有效的途徑[5],特別對于中小企業而言,節省了大量的開支與精力。
但是,云計算資源也在隨著大數據的興起而愈加昂貴。如果對云計算資源進行計算,不適當地管理與購買計算資源,那么利用云計算資源(即計算成本)的成本會高得出奇[6]。DrawerKVM公司在2018年對歐洲進行調查,過去3年英國企業在云計算上的平均支出為360 000歐元,而數據中心的平均支出為343 000歐元,未來3年,英國的云計算支出預計將增長37%。Claranet總經理羅伯特說,英國企業對云的需求很大[7]。不止英國,全世界的企業甚至個人在云計算中的花費都愈加增長。以 Amazon EC2為例,其中型(Medium)虛擬機(3.75 GB內存,2 ECU計算單元,410 GB存儲,0.16美元/h)的配置是小型(Small)虛擬機(1.7 GB內存,1 ECU計算單元,160 GB存儲,0.08美元/h)的兩倍,其價格也是小型虛擬機的兩倍。運行100個M4超大亞馬遜EC2虛擬機(VM)的情況下,費用為每天583美元。所以,云計算資源成為熱流的同時,如何節省租金更加高效地使用云資源成為又一難題[8]。
很多企業在使用云資源運算時,有時并不需要100%的準確率。例如一些電商企業,會對大量的用戶與產品進行數據挖掘,以此得知哪些產品更受哪些用戶喜歡,哪些產品可以進行相應促銷等等。在這個過程中,適當幅度的誤差是可以接受的,營銷人員可以根據大致的畫像就可以作出相應的決斷,而并不需要100%的精確信息。另外,事實上,在一些數據挖掘實例中,并不會得到完全精準的預測結果,例如天氣的實時預報和零售客戶的細分等等。
本文的研究目的是如何能以最低的花費獲得足夠的云計算資源。本文以當前熱門的數據挖掘算法CNN為例進行研究,發現CNN在迭代過程中的長尾現象,即在迭代過程中,當CNN的計算準確率為0.90左右時,有一個突進現象的存在。相應地,當長尾現象發生時,滿足企業需求的準確率可能只需要CNN運算能夠達到的最大準確率成本的3.34%。即假如CNN能夠達到0.993 7的準確率,但0.885 7的準確率就能滿足企業需求,并且0.885 7的準確率所需的成本可能只是0.993 7準確率所需成本的3.34%。
關于云計算的定義,截至目前為止仍然沒有一個統一的結果[9],這些定義既有從技術角度進行的描述,也有從商業角度進行的總結定義,但是總體來說,云計算可從“服務”和“平臺”兩個角度去考慮,即云計算包含云計算平臺和云計算服務這兩個概念。云計算服務指的是一種新型的商業模式,旨在給用戶提供可靠的在線服務。而云計算平臺是伴隨云計算服務應運而生的,更像是一種操作系統,通過一些技術手段將分布在各地的計算機以網絡的方式進行連接,并在邏輯上以整體的方式呈現。云計算平臺和云計算服務的關系就如同底層建筑和上層建筑,但是這兩者之間也沒有必然的對應關系[10]。
就本文的研究問題而言,本文重點在于云計算服務方面,但是云計算服務也是要以云計算平臺為支撐,只有二者完美結合,才能實現為大規模的用戶提供穩定、可靠、低成本的服務。但是,即使出現云計算服務這么優勢明顯的商業模式,仍然有一些企業,尤其是中小企業負擔不起云計算的服務費用,這成為筆者一直重點關注的問題。
云計算平臺已經層出不窮,國外以亞馬遜為例,國內以阿里云和華為云為例介紹云計算資源的計費模式,詳見表1。

表 1 三大廠商計費模式Tab.1 Three major vendors' billing model
從以上三大廠商的計費模式可以看出,三大廠商都有按需計費這一消費模式。按需計費指的是用戶可以根據運行的實例以按小時或按分鐘甚至可以支持按秒的方式為計算容量付費。而無需簽訂長期合同或支付預付款。這種方式比較靈活,可靈活控制成本。
在本文研究中,為了提升泛化能力,更集中突出所研究的問題,以按需計費方式和CNN為例進行研究,見式(1)。

Compound 3 amorphous powder; mp 251-253°C; [α]D25 –31.0 (c 0.75, MeOH); IR (KBr) νmax3560, 1750, 1510, 880 cm–1; 1H and 13C NMR (CD3OD) data, see Table 1; HR-ESI-MS m/z 597.2418 [M + Na]+(Calcd. for C30H38O11Na, 597.2414).
事實上,為了更加集中于所研究的問題,只計算在運算過程中的花費,而忽略了存儲、遷移等方面所需的云計算資源的花費。
卷積神經網絡(CNN)是神經網絡的一種,是一種學習效率很高的深度學習模型,對于很多模式識別領域尤其是圖像識別方面都取得了良好的識別效果[11],LeCun曾經提出的對于手寫數字識別的CNN模型LeNet-5[12]結構,就具有極高的準確率。
CNN的基本結構由輸入層、卷積層、池化層(也稱下采樣層)、全連接層和輸出層組成。卷積層和池化層一般根據所需情況取若干個,交替設置。卷積神經網絡含有最突出的3個特點,即局部連接、權值共享和池化操作,有效地降低了網絡的復雜度,減少了訓練參數的數量,降低特征維度并且改善結果。
卷積神經網絡是一種監督式學習的神經網絡[13],由于知道原先的分類,故可以準確計算出利用卷積神經網絡進行分類后的精確性。
對于經典的二分類問題,真正例(true positives,TP)是指實際上是正例的標記為正例;假正例(false positives,FP)是指實際上是反例的數據被標記為正例;真反例(true negatives,TN)是指實際上是反例的數據被標記為反例;假反例(false negatives,FN)是指實際上是正例的數據被標記為反例[14-15]。
準確率反映了分類模型對整個樣本的判定能力,定義見式(2)。

式中:A為準確率;nTP,nFP,nTN,nFN分別表示算法在數據集上的各種測試結果。
分類問題中更關注的是準確率,這是一個比均方損失或者交叉熵損失更重要的量度。在這里,主要利用準確率評估分類的準確性。
案例研究程序包含以下幾個步驟:
a. 數據集準備。準備要實驗的數據集。
b. 數據分類。利用CNN對數據集進行實驗分類,并確定準確率。
c. 準確率-時間比較。對于每一組實驗,通過算法在每次迭代中獲得的準確率,與按需模型的每次迭代結束時算法所花費的計算時間一起示出。
d. 分析和討論。比較結果進行分析和討論。
MNIST手寫數據集是深度學習最常用的數據集之一,是美國國家標準與技術研究所(National Institute of Standards and Technology,NIST)所提出的。訓練集由來自250個不同人手寫的數字構成,其中50%是高中學生,50%來自人口普查局的工作人員。測試集也是同樣比例的手寫數字數據。圖1為MNIST數據集的可視化樣例。

圖1 MNIST數據集可視化樣例Fig.1 MNIST dataset visualization example
IMDB影評情感數據也是作文本情感分類常用的數據集之一,是斯擔福大學人工智能實驗室整理的一套IMDB影評的情感數據[16]。
實驗分別采用5層、7層和9層的CNN對MNIST和IMDB數據集進行分類,相應的數據集分布見表2。

表 2 數據集分布表Tab.2 Dataset distribution table
利用MNIST進行實驗時,采用二維卷積層,卷積核的數目為32,卷積核的大小為3 × 3,損失函數采用交叉熵,優化器采用Adadelta。從圖2中可以看出,深度K=5,7,9時,訓練集的準確率總有一個突進,然后再緩緩趨向平穩,這稱之為CNN迭代中的長尾現象。其實不止CNN,只要帶有迭代性質的算法基本上都會有長尾現象的出現,例如K-means[17],而這些算法在實際運用中都普遍使用,因此本研究也具有非常重要的普適意義。

圖2 MNIST訓練集和測試集在準確率和時間之間的相關性Fig.2 Relationship between the time and accuracy for the training and test data of MNIST
以華為云為例,按需計費開通彈性云服務器(elastic cloud server)實例,購買規格為h1.2xlarge.4|8核| 32 G,系統盤為40 G時,都有統一的計價標準,即只要選定固定的規格,就會有固定的價格。所以根據之前確定花費的模型可知,決定訓練成本的只是卷積神經網絡完成迭代需要花費的時間。因此,成本花費表也就是計算時間表,具體數據見表3。
由表3可以看出,以K=5為例,當準確率為0.896 7時,計算時間為549 s;當準確率為0.990 1時,計算時間為788 7 s;當準確率為0.992 1時,計算時間已經達到12 222 s,是準確率0.896 7所需計算時間的22.26倍,是準確率0.990 1所需計算時間的1.55倍。也就是說,如果要求準確率接近為0.9時,只需要準確率接近為0.99的6.96%花費,只需要準確率為0.992 1的4.49%花費即可。同樣,K=7時,如果要求準確率為0.885 7,只需要準確率為0.99的6.70%花費,只需要準確率為0.993 7的3.34%花費即可。K=9時,如果要求準確率為0.799 4,只需要準確率接近為0.99的5.41%花費,只需要準確率為0.993 3的3.43%花費即可。

表 3 MNIST計算時間表Tab.3 MNIST calculation time
由實驗可以看出,云計算的花費隨著準確率增加會有一個爆發式的增長,接下來的增長就會特別緩慢。企業或個人在某些時候并不需要非常精準的計算效果。在此實驗下,滿足企業需求的準確率所需要的成本,可能只需要CNN運算能夠達到的最大準確率的成本的3.34% ~4.49%。
為了避免偶然性,故又采取了另一個文本數據集IMDB,同樣還是利用CNN進行實驗。
利用IMDB數據集進行實驗時,采用一維卷積層,卷積核數目為128,卷積核大小為3,損失函數采用對數函數,優化器采用rmsprop。同樣地,從圖3可以看出,即使采用CNN所不擅長訓練的文本數據也有長尾現象的存在。由表4可以看出:當K=5時,如果要求準確率為0.892 7,只需要準確率為0.950 1的33.43%花費,或準確率為0.969 7的20.26%花費即可;當K=7時,如果要求準確率為0.895 9,只需要準確率為0.950 9的39.91%花費,或準確率為0.982 1的21.00%花費即可;當K=9時,如果要求準確率為0.896 7,只需要準確率為0.957 2的40.24%花費,或準確率為0.996 6的20.25%花費即可。所以在此實驗下,滿足企業準確率要求所需要的成本,可能只需要CNN運算能夠達到的最大準確率成本的20.25%~21.00%。

圖3 IMDB訓練集和測試集在準確率和時間之間的相關性Fig.3 Relationship between the time and accuracy for the training and test data of IMDB

表 4 IMDB計算時間表Tab.4 IMDB calculation time
另外,從圖3也可以看出,測試集出現過明顯的波動,這是因為CNN在文本處理方面效果并不穩定。但從測試集的準確率曲線可以得出,并不是訓練準確率越高,測試集的準確率也越高,所以最高的訓練準確率有時并不是最優的選擇。總的來說,企業只需要選擇自己所需要的合適準確率,并不用一味追求最高的準確率,這樣才能達到經濟效益的最大化。
以卷積神經網絡的長尾現象為切入點,揭示了云環境中有效花費的問題,為企業如何合理化運用云資源作出參考。以CNN為例,探索了收斂特征的數據挖掘算法在迭代過程中存在長尾現象,進而推廣到大數據的數據挖掘上。當長尾現象發生且滿足企業準確率要求的情況下,提前結束數據挖掘算法的運行可以為企業節省大量云計算成本。因此,企業可以小得多的成本來得到其所需要的準確率,而不需要耗費不必要的代價來租用過量的云資源。在大數據挖掘的背景下,企業租用云資源成本會急劇增加,不必要的花費會給企業帶來沉重的負擔,本研究為企業降低云資源租用成本提供了思路。在實際情況中,企業需要考慮的地方還包括存儲、遷移時需要的云資源,這將是本研究下一步的工作。