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飞马网,点击菜单栏飞马直播,即可进行学习。


分享到:


相關文章: