阿裏雲機器學習——讓人工智能觸手可及
近期,阿裏雲計劃將旗下機器學習平台正式商業化發布。說到機器學習可能有些人會比較迷惑,但是提到人工智能,人們馬上就聯想到了刷臉支付、人機智能交互、商品智能推薦等場景,機器學習算法就是助力這些人工智能應用的底層算法。
最近幾年,機器學習發展趨勢火熱,主要是我們在深度學習技術上取得了一定的進展,總結起來應該是三大因素:
- 數據:互聯網上每天生成海量的數據,有圖像、語音、視頻、還有各類傳感器產生的數據,例如各種定位信息、穿戴設備;非結構化的文本數據也是重要的組成部分。數據越多,深度學習越容易得到表現好的模型。
- 大規模分布式高性能計算能力的提升:這些年來,GPU高性能計算、分布式雲計算等計算平台迅勐發展,讓大規模的數據挖掘和數據建模成為可能,也為深度學習的飛躍創造了物質基礎;阿裏雲的願景之一就是成為和水電煤一樣的基礎設施。
- 算法上的創新:隨著數據和計算能力的提升,算法本身也有了很大的進展,尤其在深度學習方麵,譬如從腦神經學上得到的靈感,在激活函數上進行了稀疏性的處理,等等。
基於上述三點,人工智能又迎來了它的第二個春天。人工智能將以更快的速度進入我們的生產和生活中來,成為我們的眼睛,我們的耳朵,幫助我們更快捷地獲取信息,輔助我們做出決策。阿裏雲機器學習平台產品也因此而產生,加速迭代過程,助力技術的發展。下麵我們對照阿裏雲機器學習平台架構圖對其功能進行介紹:

阿裏雲機器學習架構圖
阿裏雲機器學習的平台的基礎設施和計算框架建立在阿裏雲飛天計算平台之上,支持MR、SQL、MPI、PS、GRAPH共5種分布式計算框架,對於底層的CPU和GPU計算機群可以靈活地調用。另外,在模型與算法層,阿裏雲機器學習涵蓋了數據預處理、特征工程、機器學習算法、深度學習框架、模型評估和預測等全套數據挖掘流程。

算法流程
在業務應用層,算法開發者可以基於阿裏雲機器學習平台輕鬆地搭建起例如疾病預測、金融風控、新聞分類等各種場景的應用。
那麼阿裏雲機器學習平台具備哪些關鍵技術特點呢?
2.1人性化的操作界麵

機器學習操作界麵
阿裏雲機器學習平台讓機器學習不再遠不可及,在平台上沒有繁瑣的公式和複雜的代碼邏輯,用戶看到的是各種分門別類被封裝好的算法組件。在搭架實驗的過程中,隻要拖拽組件就可以快速的拚接成一個workflow。操作體驗類似於搭積木,真正做到讓小白用戶也可以輕鬆玩轉機器學習。“過去半個月才能搭建的一套數據挖掘實驗,利用阿裏雲機器學習平台3個小時就可能解決”。
同時,平台的每一個實驗步驟都提供可視化的監控頁麵,數據挖掘工程師可以實時的掌握模型的訓練情況,可視化的結果評估組件也極高的提升了模型調試效率。 在深度學習黑箱透明化方麵,我們也在不斷的研發集成各種可視化的工具,包括開源的TensorBoard和自研的工具,為客戶提供更多可參考的信息,縮短模型優化的過程。

特征評估柱狀圖
2.2豐富的算法組件

阿裏雲機器學習平台部分算法展示
阿裏雲機器學習平台提供100餘種算法組件,涵蓋了分類、回歸、聚類等常用算法場景。另外平台還針對主流的算法應用場景,提供了偏向業務的算法,包含文本分析、關係分析、推薦3種類別。用戶通過阿裏雲機器學習平台提供的算法,幾乎可以解決任何場景的業務問題。特別值得說明的一點是,平台上的算法全部脫胎於阿裏巴巴集團內部的業務實踐,所有算法都經曆過PB級數據和複雜業務場景的錘煉,具備成熟穩定的特點。
算法列表如下(包括所屬類別和具體算法):
數據預處理
- 加權采樣(weightedSample)
- 隨機采樣(randomSample)
- 過濾與映射(filterReflect)
- 分層采樣(stratifiedSample)
- JOIN
- 合並列(appendColumns)
- UNION
- 增加序列號(appendId)
- 稠密轉稀疏 tableToKV
- 拆分(split)
- 缺失值填充(fillMissingValues)
- 歸一化(normalize)
- 標準化(standardize)
- 類型轉換(typeConvert)
特征工程
- 主成分分析(PCA)
- 特征規範(featureNomalize)
- 特征離散(featureDiscret)
- 特征異常平滑(featureSoften)
- 特征尺度變換(featureScaleTransform)
- 隨機森林特征重要性評估(randomForestFeatureImportance)
- GBDT特征重要性(GBDTFeatureImportance)
- 線性模型特征重要性(regression_feature_importance)
- 特征重要性過濾(featureFilter)
- 過濾式特征選擇(filterFeatureSelect)
- 窗口變量統計(RFM)
- 特征編碼(featureEncoding)
統計分析
- 百分位(percentile)
- 全表統計(fullTableSummary)
- 皮爾森係數(pearsonCoefficient)
- 直方圖(多字段)(histogram)
- 離散值特征分析(enumFeaturesAanalysis)
- 數據視圖(data_view)
- 協方差(cov) 切問
- 經驗概率密度圖(pdf)
- 箱線圖( boxPlot)
- 散點圖(scatter_diagram)
- Quantile
- 相關係數矩陣(corrcoef)
- 卡方擬合性檢驗(ChiSquare)
- 卡方獨立性檢驗(ChiSquare)
- 單樣本T檢驗(Ttest)
- 雙樣本T檢驗(Ttest)
機器學習
- 線性支持向量機(linearSVM)
- 邏輯回歸二分類(binaryLogisticRegression)
- GBDT二分類(GBDTbinaryClassification)
- K近鄰(knn)
- 邏輯回歸多分類(logicRegressionMultiClassification)
- 隨機森林(randomForest)
- 樸素貝葉斯(naiveBayes)
- K均值聚類(kmeans)
- 線性回歸(linearRegression)
- GBDT回歸(GBDTregression)
- 混淆矩陣(confusionMartix)
- 多分類評估(multiClassificationEvaluation)
- 二分類評估(binaryClassificationEvaluation)
- 回歸模型評估(regressionModelEvaluation)
- 聚類模型評估(clusterEvaluation)
- 預測(prediction)
文本分析
- TF-IDF
- PLDA
- Word2Vec
- split Word
- 三元組轉kv
- 字符串相似度
- 字符串相似度-topN
- 停用詞過濾
- 文本摘要(TextSummarization)
- 關鍵詞提取(keywords_extraction)
- 句子拆分( SplitSentences)
- ngram-count
- 語義向量距離(semanticVectorDistance)
- doc2vec
網絡分析
- K-Core
- 單源最短路徑(SSSP)
- PageRank
- 標簽傳播聚類(LabelPropagationClustering)
- 標簽傳播分類(LabelPropagationClassification)
- Modularity
- 最大聯通子圖(maximalConnectedComponent)
- 點聚類係數(nodeDensity)
- 邊聚類係數(edgeDensity)
- 計數三角形(triangleCount)
- 樹深度(treeDepth)
2.3提供業內主流深度學習架構
阿裏雲機器學習平台內置業內主流的深度學習架構:Tensorflow、MXNet、Caffee。

深度學習架構
對於不同的架構提供一致性的可視化操作環境,用戶隻需要將業務代碼以及訓練數據上傳到OSS,即可通過配置路徑完成深度學習網絡模型的訓練。整個計算架構都針對不同的深度學習框架進行了深入的優化,同時也提供了模型的一鍵部署成API的功能,完美解決了模型與業務銜接的問題。
在深度學習架構底層計算資源方麵,平台提供了GPU的多卡靈活調度功能,隻需要在界麵填寫需要的GPU資源數量,就可以將計算任務下發到對應的分布式計算機群上,免除運維煩惱。

2.4超大規模計算能力
得益於底層的飛天計算引擎,阿裏雲機器學習平台支持超大規模的分布式計算,每日處理PB級的計算任務請求。除了底層強悍的計算資源保證,在分布式計算架構優化方麵,阿裏雲機器學習平台也做足工作。以參數服務器(PS)為例:

參數服務器
參數服務器主要思想是:不僅僅是進行數據並行,同時將模型分片,將大的模型分為多個子集,每個參數服務器隻存一個子集,全部的參數服務器聚合在一起拚湊成一個完整的模型。該係統主要的創新點在於失敗重試的功能,在分布式係統上,上百個節點協同工作時,經常會出現一個或幾個節點掛掉的情況,如果沒有失敗重試機製,任務就會有一定的幾率失敗,需要重新提交任務到集群調度。
失敗重試是將每個節點的狀態備份到相鄰(前後)的節點,當個別節點死掉後,重啟一個新的節點,同時從原節點相鄰的節點獲取所存儲的狀態,理論上可以實現任務的100%完成。還有一個功能是異步迭代,無需等待全部節點完成任務,當大部分節點完成任務時,就可以直接更新對應的模型,這樣可以不需要等待慢機的結果,從而擺脫慢機的影響,提升效率。
2.5在線預測服務能力
在PAI平台上,我們提供了豐富的算法實現,由CPU和GPU組成的計算集群也提供了超強的分布式計算能力,同時我們還提供模型在線預測服務,讓數據與算法和計算能力的結合,可以直接輸出強大的人工智能服務,方便地應用於各行各業。數據驅動下得到的模型,可以一鍵部署到雲端作為一個API的應用服務。可以想見在不久的將來,雲市場上會出現大量的PAI平台支撐的數據智能服務,助力萬眾創新的商業化和產業化,直接創造社會價值。
3.1阿裏巴巴集團內部案例
下麵介紹在阿裏內部的三個應用場景。

應用一:推薦係統
第一個應用是推薦係統,主要是參數服務器在推薦係統內的應用。當在淘寶購物時,經查詢顯示的商品一般都是非常個性化的推薦,它是基於商品的信息和用戶的個人信息以及行為信息三者的特征提取。這個過程中形成的特征一般都是很大,在沒有參數服務器時,采用的是MPI實現方法,MPI中所有的模型都存在於一個節點上,受限於自身物理內存上限,它隻能處理2000萬個特征;通過使用參數服務器,我們可以把更大模型(比如說百億個特征的模型),分散到數十個乃至於上百個參數服務器上,打破了規模的瓶頸,實現了模型性能上的提升。

應用二:芝麻信用分
第二個應用是芝麻信用分。芝麻信用分是通過個人的數據來評估你個人信用。做芝麻信用分時,我們將個人信息分成了五大緯度:身份特質、履約能力、信用曆史、朋友圈狀況和個人行為進行評估信用等級。
在去年,我們利用DNN深度學習模型,嚐試做芝麻信用分評分模型。輸入是用戶原始的特征,基於專家知識將上千維的特征分為五部分,每部分對應評分的維度。我們通過一個本地結構化的深度學習網絡,來捕捉相應方麵的評分。由於業務對解釋性的需求,我們改變了模型的結構,在最上麵的隱層,一共有五個神經原,每個神經原的輸出都對應著它五個維度上麵值的變化;再往下一層,是改變維度分數的因子層;用這種本地結構化的方式,維持模型的可解釋性。

應用三:光學文字識別
最後一個應用是圖象上麵的光學文字的識別(OCR)。我們主要做強模板類、證件類的文字識別,以及自然場景下文字的識別。強模板服務(身份證識別)在數加平台上也提供了相應的入口,目前可以達到身份證單字準確率99.6%以上、整體的準確率93%。在識別中用到的是CNN模型,但其實整個流程特別長,不是深度學習一個建模就能解決的問題,包括版麵分析、文字行的檢測、切割等等技術。在CNN訓練中,我們采用了多機多卡分布式算法產品,之前利用一千萬個圖像訓練CNN模型,大約需要耗時70個小時,迭代速度非常緩慢;采用分布式8卡產品之後,不到十個小時就可以完成模型訓練。目前OCR的服務已經成為了一個受歡迎的阿裏雲市場上的API,尤其是證件類的識別,準確率高,種類齊全,成為了一種可以在商業場景中廣泛使用的數據服務。
3.2外部業務案例
在對外服務方麵,阿裏雲機器學習平台已經在金融、地產、教育、醫療、天氣等行業發揮作用——其中比較典型的案例是明源雲在地產行業的應用,明源旗下的雲采購平台利用阿裏雲機器學習平台搭建了一套銷售CRM係統,這套係統包含數據的預處理、特征工程、機器學習、評估、預測以及調度。阿裏雲機器學習平台幫助明源精確的定位潛在用戶,提高其銷售份額接近百分之百。去年11月,阿裏雲在CBS大會上,發表了《Nonlinear Machine Learning Approach by Cloud Computing to Short-Term Precipitation Forecasting》的報告, 結合廣東省氣象局提供的大規模氣象觀測數據,我們使用阿裏雲機器學習平台對臨近預報(0-3小時內)的降雨量進行建模預測。無論數據清洗、特征工程,還是非線性機器學習算法訓練以及結果評估,均是由大規模可視化機器學習平台PAI來完成開發。最大優勢在於用戶無需掌握過多的底層算法知識,也無需要編寫任何代碼,隻需在PAI中拖拽已有的組件即可完成一鍵式的程序運行,以本次廣東省氣象降水預測為例,建模流程如下圖所示:

利用PAI建模的效果已經優於業界常用的方法,一定程度上再次論證了機器學習在氣象領域,尤其是臨近降雨上的優勢。未來,我們會繼續嚐試引入更多的氣象相關數據到阿裏雲上,比如衛星雲圖,雷達回波等數據,在時間維度上,也會引入更長曆史的數據,充分發揮大數據的作用。同時,在方法創新上,我們會引入更多的模型研究工作,比如多站點的LSTM建模,時間維度上的高斯過程建模等等。為了鼓勵公眾在天氣預報上的創新,不論是數據,算法,還是應用,阿裏雲未來會籌建氣象app store,方便大家在線貢獻,發布以及搜索感興趣的應用。
阿裏雲機器學習平台作為人工智能的載體和源發動力,正在逐漸顛覆各行各業的生產模式。
最後更新:2017-04-01 16:41:01