大数据,不只“懂数”,更要“懂行”
分布式计算
首先,什么是分布式计算?简单点理解就是将大量的数据分割成多个小块,由多台计算机分工计算,然后将结果汇总。这些执行分布式计算的计算机叫做集群。为什么需要分布式计算?因为“大数据”来了,单个计算机不够用了,即数据量远远超出单个计算机的处理能力范围:有时候是单位时间内的数据量大,比如大家在 12306 上抢春运火车票,每秒可能有数以万计的访问;也有可能是数据总量大,比如百度搜索引擎,要在服务器上检索数亿的中文网页信息。
说到集群,就不得不提集群资源管理“神器”YARN 了。为了能够对集群中的资源进行统一管理和调度,Hadoop 2.0 引入了数据操作系统 YARN。YARN 的引入,大大提高了集群的资源利用率,并降低了集群管理成本。基于 YARN 的通用分布式计算平台采用多个 Nodemanage 节点来承担具体计算任务,使用主备两个 ResourceManager 来管理、监控和分发具体的任务。通过代理服务做到主备自动切换。
支持主流的分布式计算框架如 Spark、Flink、MapReduce 以及机器学习相关的计算库,可以做到支持流批一站式数据处理。通过 SparkGraphX 可以支持常用的图计算,基于框架层提供的抽象 API,可以支持主流的编程语言比如 Java、Scala、Python 和 R。
这里以 Spark 为例,具体讲讲分布式计算框架。Spark 是一个分布式的内存计算框架,其特点是能处理大规模数据,计算速度快。RDD 的是 Spark 中最主要的数据结构,RDD 为分区和分布式的数据集,这是分布式并行计算的基础。Spark 把对 RDD 的操作划分为转换(transformation)和动作(action),对 RDD 进行的转换操作会叠加起来,直到遇到动作(action)操作时才会发起计算。这种特性也使 Spark 可以减少中间结果的吞吐,可以快速的进行多次迭代计算。
图片来源于网络
数据赋能推荐
最后来说一说大数据的应用。随着数字暴增导致信息过载, 传统的信息检索技术已经不能满足用户对个性化体验的需求,推荐系统应运而生,而推荐算法的演进过程也能映射大数据的发展史。从单维特征到多维特征,再到特征组合,特征交叉,数据越来越大,所需要的算法模型越来越复杂,模型的表现力也越来越强。深度学习模型通过复杂神经网络结构,巨大的参数量和海量的训练样本能够更好的挖掘出数据背后的规律。
图片来源:《深度学习推荐系统》
神经网络由多个神经元(权重+偏置+激活函数)组成的层,以及由不同的层组成的复杂网络组成。神经网络对图像的识别要经历两个过程:
1. 训练过程,训练过程使用带标签的数据集,按比例切分为训练集和测试集,训练样本的数据分批输入网络,用样本对应的标签来计算损失函数并不断的更新权重,每次迭代后使用测试集来准确度。直到损失函数收敛,并且准确度达到预期值。
2. 判定过程相对于训练过程来说速度比较快,只需把样本数据向量化为输入层的维度,输入网络通过各个神经元对应的权重计算,最后输出层得到各个结果的概率,取概率最大的结果做为判定结果。
图片来源于网络
目前大数据的发展也存在着很多的问题,比如技术综合性强,运维成本高和开发周期长等问题,另外,《个人信息保护法》的实施对大数据及推荐都带来了不小的挑战,这就需要相关企业及从业者,要以安全为前提不断学习融合新技术,如多方安全计算、联邦学习等前沿数据保护技术,以新技术促进数据管理体系的升级迭代。
鼎道智联全力打造的 Ding OS,是一款面向物联网时代的顾问式操作系统。所谓“顾问式交互”,集信息情景、意图理解、自然交互为一体,按照实现服务的自然流程推荐服务,其实现离不开背后大数据及推荐算法的支持,欢迎对大数据感兴趣的朋友和我们一同探索。
这两期关于大数据及应用的“科普”,来自于鼎道智联云平台大数据工程师 田大钊的内部分享。田大钊专注于大数据、数据挖掘和推荐系统的研究,今后他会针对大数据及推荐算法带来更多专业深入的探讨。敬请关注。
版权声明: 本文为 InfoQ 作者【鼎道智联】的原创文章。
原文链接:【http://xie.infoq.cn/article/010728798602df7394fa6b9c4】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论