Spark 對AI的支持及應用

Spark 是一個開源集群框架,非常適合用於機器學習算法。為了讓大家進一步瞭解Spark 對AI的支持及應用,飛馬網於12月11日邀請到袁方老師為大家分享該領域的內容,袁方老師目前就職於某大型知名智能手機企業,對用戶畫像、推薦與相關的大數據AI算法方面有很深的研究。

以下是本次分享的全部內容:

今天我想分享一下Spark 對機器學習和人工智能方面的支持以及幾個經典算法在Spark 上的實現。今天的分享主要分為四個部分。

一、Spark—初識

Spark定義:是一個大規模的標準統一的數據處理和分析的引擎,它有一些非常出眾的特點,這是目前業界它成為大數據處理主流的原因,下面對幾個特性做一下簡單的介紹。

Spark 對AI的支持及應用


特性1:速度高

特性2:易用性

Spark 對AI的支持及應用


特性3:通用性

特性4:跨平臺性

Spark 對AI的支持及應用


Spark的活躍度在業界是最高的,確實是業界的主流。

後面聊一下Spark到底是什麼?能幹什麼?

Spark 對AI的支持及應用


其實所有分佈式處理系統必須完成兩個最基礎的功能,一個是分佈式存儲(基於大數據前提),第二個是分佈式處理(一臺機器肯定搞不定)。

Spark在這個方面有哪些特性?

Spark在分佈式數據的處理或者存儲方面支持的非常豐富:比如可以直接從Python等基礎數據結構裡面對接到Spark分佈式數據結構中;同樣的Scala也是可以同樣弄過來;也可以從LOCAL中拿一個文件進來也可以支持;另外一個它支持源生的HDFS。緊接著在分佈式處理方面,主要是採用兩個方式,一類是transformation,一類是action。

Spark工作流程:

DRIVER PROGRAM統領整個Spark的任務。

Spark 對AI的支持及應用


二、Spark—ML

例子:推薦系統基本結構

加入有一個軟件是做資訊的,像頭條,對於大數據來講,主要支撐哪些部分呢?

Spark 對AI的支持及應用


LOG數據庫—初步清洗(髒數據或者格式問題)—最終落到DB裡面—分析(模型)—應用系統(負責把大數據上訓練的模型實時加載起來,根據用戶的實時請求進行推薦)。

如果是這樣的一個系統,我們會有哪些需求呢?

需求:快速查詢功能、模型滾動、日誌實時採集、業務投放效果追蹤

總結一下:

Spark 對AI的支持及應用


目前我們最初想要什麼?用戶的行為數據、物料的信息。

我們想要做什麼呢?找人與物之間顯式和隱式的關係。

MLIB的主要工具

1、基礎統計:相關性分析、統計……

2、聚類:k-MAENS

3、分類:LR、貝葉斯、決策樹

4、迴歸:LR

5、降維:最經典

6、協同過濾:基於模型的ALS

Spark 對AI的支持及應用

由此可見,Spark是肯定可以做的,那麼方案是什麼?

1、CF

Spark 對AI的支持及應用


基於兩個路數,一個是基於record(memory),即基於用戶的瀏覽過的記錄和相似的用戶來做協同過濾,相對的一個是基於模型。

這裡有一個問題,加入我們用戶量非常大,那怎麼解決呢?

方法:倒排表

Spark 對AI的支持及應用


User CF和item CF的聯繫與區別:

Spark 對AI的支持及應用


實例:

Spark 對AI的支持及應用


矩陣分解

好處:高效且易於並行化

解決方案:

Spark 對AI的支持及應用


2、LR

其實很早就有,機器學習在業界被大規模應用,它在分類問題上面的地位才被捍定了,也就是所有的問題上來就先用LR,然後再用其他模型去進行優化。LR的想法很簡單,把一個變量的值用一個多項式來分解表徵。

函數:

Spark 對AI的支持及應用


Spark 對AI的支持及應用


整個優化過程就是不斷地去反向傳播然後迭代最後達到最優化的結果。

LR的實現:

Spark 對AI的支持及應用


三、總結:

1、spark目前是業界分佈式數據處理分析的主流技術、並且它的組件完備,可以基本支撐整個從數據收集到處理、加工、反饋並指導業務演進與技術優化。

2、MLIB以RDD和Dataframe數據格式為接口支撐,基本涵蓋了成熟的數據處理算法,使用方便高效。

以上就是本次線上直播的主要內容,相信你對spark有了更多的認識。想了解更多更詳細內容的小夥伴們,可以關注服務號:FMI飛馬網,點擊菜單欄飛馬直播,即可進行學習。


分享到:


相關文章: