作者 | 一骥绝尘
什么是大数据?
“大数据”这个词相信大家都十分熟悉。从字面理解,这不就是很多很多的数据吗?那什么是很多很多的数据呢?战国时代,五辆马车装载的竹简就是很多很多的数据。到宋代,垒起来跟人一样高的书籍就是很多很多的数据。到我小时候,1.44MB的软盘里就承载了很多很多的数据。时至今日,256GB基本是手机存储容量的标配,1TB硬盘里的存储空间也经常捉襟见肘。经常谈论到PB和EB(1PB=1024GB,1EB=1024PB),才让人感觉到数据量确实很多很多。对于大数据,很多机构和学者都给出了不同的定义,例如研究机构Gartner给出了这样的定义:“大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力来适应海量、高增长率和多样化的信息资产。麦肯锡全球研究所给出的定义是:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合。那我们怎么来理解大数据呢?实际上我们可以从大数据的3V特征来剖析。Volume指的是数据总量大,一般来说其数据量起码超过一台计算机的内存和硬盘容量。例如2020年12月的微博月活跃用户数为5.21亿,微信月活用户数则为12.25亿。其产生的数据总量是巨大的。Velocity指的是数据产生和变化的速度快。例如世界上平均每分钟就会有2亿封邮件发送出去。一个传统车载毫米波雷达每秒钟就可以产生100MB的原始数据。Variety指的是数据的多样性。例如一辆智能驾驶汽车上需要采集的数据可能就包含了视频数据、毫米波雷达射频原始数据、环境声音数据、GPS定位数据和V2X网络连接数据等。这些数据都有不同的数据格式和特征。正因为具有这3V特征,大数据的处理难度很高,亦因此衍生出云计算、数据挖掘、边缘计算等技术手段。
大数据与AI
当我们谈到大数据和数据科学,我们脑海里经常还会浮现出另外一个概念,AI,也就是人工智能。AI是数据科学和计算机科学的一个重要技术领域,通俗来说就是让计算机来做一些以往由人类智能来完成的事情,例如下围棋和驾驶汽车等。下图是从2011年以来,关于“大数据”和“AI”的百度搜索指数。可见“大数据”在12年之前甚少被搜索,在17年左右到达了搜索的,之后有所回落。而“AI”则在11年及更早就被人们所了解并搜索,在17年开始搜索量猛增。总体来看,这近10年来“大数据”以及“AI”的搜索热度具有类似的涨跌态势,其原因是二者确有联系,而且相辅相成。近年来AI技术的发展,主要是构筑在机器学习技术应用的新基础之上。机器学习实际上是一种数据分析技术,让计算机执行人和动物与生俱来的活动:从经验中学习。机器学习算法可以是简单的线性回归,也可以是复杂的深度神经网络(DNN)。AI,尤其是机器学习,需要海量的数据来训练模型,而且这些海量数据都需要恒定快速地输入输出,同时AI也越来越多地用于处理各种类型的数据,例如视频、图片和电磁波等。这正是与大数据的3V特征相契合,也是大数据与AI近年来能够相互促进的原因。
大数据与数据科学
使用传统的数据分析方法很难处理大数据,往往需要专门的数据建模技术、工具和系统来提取组织所需的价值。数据科学则是一种科学方法,应用数学和统计学思想、计算机工具和专业背景知识来处理大数据。上图是Drew Conway提出的数据科学文氏图,它将数据科学的几个特性和概念可视化地呈现出来。Hacking Skills指的是编程等计算机技术。因为很多数据都是非结构化的或特殊格式存在,可以通过编程技术收集和准备数据,还可以对海量数据进行统计,处理数据库等。Math and Statistics指的是数学和统计学。这些数学和统计学工具,如概率分布、代数等可以帮助分析数据,诊断问题或者根据数据特征确定分析步骤。Substantive Expertise指的是专业背景知识。这些背景知识可能是商业、医疗保健、金融、教育、汽车驾驶等,对该领域的熟悉有助于更高效地实施数据科学来解决问题。例如需要在一天的路试数据中寻找泊车场景的部分,具有专业背景的工程师可能就会直接通过车辆挡位信号来寻找,看信号什么时候切换到“R”挡。这三种关键技能有相互重叠的应用场合,三种共用可以组合成综合的数据科学方法,也可以单独应用某个或者某两个技术。这些技术本身没有优劣和高低级之分,关键还是要明确我们处理大数据的目的,以及数据本身的特性,选择适合的一种技术组合,作为我们处理大数据的工具。机器学习就是结合计算机技术和统计数学方法,但忽略专业背景知识的一种技术。例如深度神经网络算法中可能会用到很多隐藏层,具体每一层和每一个参数的特征往往不是从专业背景知识或者上下文出发,我们也无从理解。而有些时候我们结合背景知识,运用统计数学模型也可以处理数据,不一定要用到编程技术,这就是传统的调查技术。例如我们在进行某项竞品分析时,可能按照背景选取关键的几个竞争对手,用Excel做一个简单的数据统计表就足以说明问题,达到我们的目的。只通过计算机技术和背景知识,而不需要统计数学模型的场合被DrewConway称为危险区域,实际上是指这个区域很少会出现。一个典型例子是计算某个词汇在文章出现的次数。
数据类别和储存计算
工作中有时我们会遇到工作交接的情况。如果上一任头脑清晰,资料整理很有逻辑很有结构,那么下一任就会轻松很多。在大数据领域,我们也有基于结构化程度对数据进行分类。具体的三种数据类别是:结构化数据:这是我们脑海里通常会想到的数据的样子。这些数据都是按行和列整理好,附带好标签,每一个数据类型该处与什么位置都是井井有条,规则明晰的。典型的例子就是一般的excel电子数据表和汽车通讯矩阵。半结构化数据:这种数据的变量也是定义好的,但是其规则不是一成不变的。一般是通过标记符号来标注数据,而且标记符号是可变的。典型的例子就是超文本标记语言(HTML)和基于AUTOSAR的拓展标记语言(ARXML)等。下图就是一个ARXML文件的截图例子,从中我们能读到相关的变量信息,例如“AntiReplay”的属性是“True”和帧的长度是64。但是每个ARXML中的变量定义都不一样,例如有些帧没有安全属性,那么它们就会没有“AntiReplay”的定义。非结构化数据:这种数据类别既没有统一的定义规则,也没有固定的数据变量。典型的例子就是我们微信朋友圈里的数据,里面既可能有数字、表情、多国语言文字、图片、音视频等多种数据类型,数据长度不确定,每天哪个人会发几个朋友圈也是不确定的。这三种数据类别,在现实中其数据总量是递增的,但其处理难度也是递增的。结构化数据一目了然,容易处理,但现实生活中这样的数据占比是极少的。半结构化的数据我们可以通过编写相对简单的软件程序来将其结构化。而非结构化的数据是我们生活中常见的,理论上我们身边所发生的一切都可以看作是这类别。这些非结构化数据需要我们找出让其结构化的解决方法,例如人工标注和机器学习。针对这不同的数据类别,有不同的数据存储和计算手段。接下来我们看几个典型的概念。数据仓库:这是上世纪七八十年代就兴起的存储和处理手段,主要用于结构化数据。数据仓库通常具有明确的结构,例如通过二维行列表格管理的数据库。而且一般来说不同组织之间都有各自的数据仓库,例如销售部有自己的数据仓库,研发部有自己的数据仓库。但数据仓库灵活性较差,当数据变化较快时,很容易会造成“空仓”现象。就是规则明确的数据仓库空置在那没人使用,因为数据变化太快,不满足仓库的输入条件。数据湖泊:结构化、半结构化和非结构化的数据都可以进入到数据湖泊。在此基础上可以部署分布式系统架构,例如Apache Hadoop就是一个典型的系统框架。在本世纪初亦因此掀起了一场大数据革命。但如果缺乏良好的维护机制,或者相同的数据以不同的格式和版本共存,又或者数据格式与应用软件不匹配,那么数据湖泊就有可能变成“数据沼泽”。数据在沼泽中可能会丢失或者永远找不到。云:在数据内容上,云与数据湖泊类似,各种类别的数据都可以进去。但是云的存储、维护是基于网络,而不是依赖于本地的某几台设备。当然云方案本质基于网络,因而也存在数据和网络安全、接入便捷度等问题。雾:有时也叫边缘计算,指与云端连接的边缘设备,也可以本地完成一部分数据存储和处理。“雾”的隐喻也在于此,就是将云接地气,让云来到我们的身边,成为“雾”。这种存储和计算方法在数据安全和隐私等某些领域起到关键作用。例如我们熟悉的手机人脸识别,识别过程中会有通过网络与云端交互的过程,但是前摄像头拍摄的视频等数据及其关键计算过程都可以在手机本地完成。隐私不上云,就可以让我们省却许多数据泄露的担忧了。
写在后
大数据博大精深,亦是新常态。而为了迎接大数据的新一轮变革,我们有哪些事情可以着手准备起来呢?作为一名普通工程师,我建议可以进一步学习计算机及编程技术,Python和R都是大数据利器。另外,人工智能和机器学习也是和大数据契合的关键领域。这种契合除了会影响工程技术外,相信也会对销售、采购、企业战略规划和决策等领域带来变革。当然,与数据伴生的数据安全和网络安全相信也会是未来的热点方向。后希望大家将来都能通过大数据收获更多。1、百度指数, https://index.baidu.com/v2/main/index.html#/trend/%E5%A4%A7%E6%95%B0%E6%8D%AE?words=%E5%A4%A7%E6%95%B0%E6%8D%AE,%20ai
2、What is Data Science, https://www.oracle.com/data-science/what-is-data-science/
3、The Role of the Data Scientist,https://science.nu/community/the-role-of-the-data-scientist/
4、Fog computing vs Cloud computing,http://www.e2matrix.com/blog/2017/10/26/fog-computing-vs-cloud-computing/