3 大数据智能的关键技术体系
大数据智能总体应用架构
大数据时代,随着越来越多的企业、机构涉及大数据挖掘分析和学习预测,即所谓科学第四范式,很多业务、技术和研究问题与数据的关系越来越紧密。数据科学的兴起才刚刚开始,然而从数据科学到工程应用并不容易,可以说大数据智能应用面临诸多挑战。
首先,在新的DT生态下,标准的大数据智能应用技术体系尚未建立,不像传统的三层、四层信息技术架构那么成熟和标准化,大数据智能技术的复杂度和风险度较高。
其次,行业成功案例和最佳实践经验不足,像诸如机器学习的应用更多是处于探索的阶段,只有部分大型企业的数据部门在推进,还远没有达到普及的程度。
还有个比较普遍的问题是,很多时候我们对数据业务、决策和数据智能技术的应用如何对接,还没有清晰的思路,很多朋友都知道大数据智能应用潜力巨大,但却往往不知如何着手。
大数据智能技术的关键词是预测、迭代和优化,技术模型和系统设计不同于传统的信息化领域,特别是大数据的很多技术采用的是全新技术范型,核心技术的突破在短期内仍受限于理论、技术成熟度和研发能力,具有复杂性和不确定性,在国内大数据应用过程中,这一点特别突出。从前述大数据技术版图(见图2-4)可以看到,大数据智能技术生态体系的庞杂,一个技术方向下甚至有数十种备选开源子系统框架和商业产品,可谓是眼花缭乱,要短时间内掌握所有相关技术并有效选型十分困难。
大数据智能要成功应用,一定要有一个清晰的应用架构,并明确其关键技术、流程和核心功能。要支撑行业大数据的一体化、智能化分析应用,一般包含以下两个层面的内容。
(1)首先需要从基础支撑技术层面对大数据智能本身的基础关键技术体系进行研究,笔者认为主要有五个方面的技术,包括数据的采集清洗、存储管理、智能计算、可视化分析、应用的共享融合。每个层面的技术成熟度、稳定性和可扩展性等因素有较大差异,比如现阶段的大数据应用多重视存储和展示,而忽视了智能建模计算和应用决策支持等内容。
(2)其次需要从业务应用流程层面梳理和理解大数据智能的应用过程、目标。如何根据不同的业务应用需求设计不同的技术流程,或者说大数据智能技术架构能否从采集、存储、计算、展示多个层面,满足不同业务应用需求的变化和扩张,也是大数据智能应用要考虑的关键问题。这就需要从数据科学的角度,对业务问题进行分析理解和流程设计。
图2-6是一个通用的大数据智能总体应用架构,典型的数据分析项目从下到上,可以分为四个层次,数据的采集融合、数据的存储、数据的计算和数据应用,而应用层面可以分为多个阶段,比如数据的探索、数据的基础性分析和高级智能预测分析等,在后文我们会详细解读。
图2-6 大数据智能总体应用架构
一般来讲,一个优秀的大数据智能系统除了满足上述技术、功能要求之外,还需要从架构设计的角度解决多个方面的问题:比如系统的高度可扩展性、横向数据存储和计算的大规模扩张、纵向业务需求的大规模扩展、大规模并行处理等;高性能,快速响应不同的分析计算和查询展示;高容错性保障,计算处理失败时能快速自动修复;多源异构环境支持、多种来源数据、多种类型结构数据的处理等。
一个混合的半结构化和非结构化的大数据处理任务是常态。例如,网络点击流数据、Web服务器日志、社交媒体的内容、客户电子邮件和调查问卷、移动电话的呼叫详细记录和连接到物联网传感器的机器设备流式数据等;再就是系统的开放接口和兼容性,对原有系统的兼容和集成,提供标准的开发接口;项目实施的成本效益比,要考虑时间、人力、财力等各个方面的应用性价比,还有其他未列出的问题等。
接下来我们分别对大数据智能的两个关键层面(基础支撑技术和业务应用流程)进行解读。
大数据智能的基础支撑技术
大数据智能应用要落地,目前还主要面临如下几个方面的技术瓶颈。
(1)从IT向DT技术泛型的转变,带来了硬件和软件技术架构的根本性改变,如深度学习、量子计算等不少新兴技术复杂度高,技术成熟度也有待完善,存在技术应用风险,研究、研发人员要跟上这一拨技术变革也需要时间去消化和积累,这就对大数据技术架构的设计和选型提出了较高要求。
(2)传统商业智能应用的失败教训太多,项目周期漫长,考验客户耐性,应用成本高,昂贵的豪华报表,数据分析用户参与度低,难达预期目标,存储能力、扩展能力、并发能力弱等问题无法从根本解决。在采用Hadoop、Spark、OpenStack或TensorFlow系统的过程中,怎么避免重蹈BI项目的覆辙?大数据应用与传统BI系统是融合还是代替?传统企业信息架构如何与发源于互联网巨头的主流大数据技术架构有机统一?如此种种还有很多问题需要解决。
(3)大数据应用的标准化和产品化问题。大数据的动态性、时效性、多样性怎么标准化管理,离线分析、在线分析、实时分析、内存分析计算框架的融合,图像、文本、视频、音频、网页、关系型数据库等多模态数据分析的集成,机器学习与深度学习算法的选择,模型的设计、构建和调优,智能预测应用效果如何量化与评价等,都需要广泛的大数据智能基础支撑技术的涉猎和理解。
针对上述问题,基于大数据智能关键技术的分析和研究,我们从数据采集、数据存储、智能计算、智能应用四个层面设计了大数据智能基础支撑技术栈体系架构(见图2-7)。
图2-7 大数据智能基础支撑技术栈体系架构
● 数据采集层:
近年来,随着各行业、各领域物联网传感采集和智能终端设备的普及应用,大数据采集的范围、广度和深度进一步加强,要实现大数据的相关性分析,有时还需提供跨行业的多源异构数据的采集和融合。分析主题相关数据项的全面、及时、准确采集与融合集成,是支持大数据智能应用的重要基础。而类型繁多、结构多样、体量巨大的数据决定了其采集的复杂性和多样性。目前,各个行业大数据的基础信息平台呈现分布式和集群化,数据集成技术需要向着多源异构数据之间的数据信息资源、平台资源、网络资源和应用资源的有效融合和共享方向发展,而传统信息采集技术无法满足上述需求,从技术发展趋势来看,需研究应用大数据条件下的跨行业、跨地域的动、静态数据的采集、抽取、集成融合以及预处理关键技术。
以交通大数据采集为例,交通领域数据包括公路、铁路、航空、水运等多行业的设施(如路网)、设备(如车辆)、人员、安全保障等基础数据,还有综合交通网络中人、车、路、环境等相互间作用的关系数据,如速度、密度、流量、位置、票价等。大数据条件下,传统数据采集技术面临巨大挑战。一般来讲,可以分为三个层面进行大数据采集:一是历史数据的采集,包括传统业务系统数据库和半结构化、结构化数据的采集和集成,如采用Sqoop技术进行关系数据库和Hadoop系统之间的数据抽取和交换;二是实时流数据的采集,包括前端(物联网)设备的实时传感器数据、定位轨迹数据和其他系统实时日志流数据等;三是行业公共数据的采集,包括公网的数据爬取、行业信息开放平台的数据接口、行业公共数据库的数据交换等。
数据预处理对大数据分析结果起决定性作用,数据挖掘领域的“Garbage In Garbage Out”原则对数据质量提出了明确要求,所以,需要对采集到的数据进行提取、转换和加载(Extract-Transform-Load, ETL)处理,包括数据ETL和隐私脱敏等预处理工作,预处理集成后的数据才能进入统一的大数据存储中心。
案例分析 Garbage In Garbage Out
这是大数据分析应用的一条关键原则,强调了数据质量的重要性。垃圾数据输入、垃圾数据输出(GIGO),意味着如果数据本身有问题,那么模型再完美的系统都是有缺陷的,无意义的数据输入必然产生无意义的输出。换句话说,系统的输出质量通常不能比输入质量好(见图2-8)。这也是为什么传统数据挖掘建模强调数据预处理重要性的原因。
图2-8 数据质量的重要性
例如,某家移动运营商基于CRM数据分析来开发一个客户营销模型,销售一类面向政企客户的产品服务。希望能通过CRM大数据分析,从潜在客户中确定最可能的销售目标。但是,如果输入模型的训练数据集所包含的潜在客户根本就不是政企用户而是普通个人用户,那么无论模型训练阶段的准确率有多高,这个模型在真实客户样本的预测上一定是不准确的。所以我们在做大数据智能分析时,算法模型的设计调优虽然很重要,但对数据本身的探索、理解和预处理更重要。
● 数据存储层:
支持海量多源异构数据的分布式存储是大数据智能分析的核心基础。目前,传统的基于关系型数据库的存储技术无法支持大数据的爆炸性增长,面对移动互联网和物联网技术的高速发展,行业大数据呈现几何级的增长趋势,由于传统关系型数据库存在容量和并发访问瓶颈,而且存储成本高、结构单一,难以支持PB级的海量数据存储扩展。数据库技术已经不能仅依靠单台或几台机器进行纵向扩展的升级来满足存储需求,所以需要BigTable型的分布式存储技术,基于Hadoop的HDFS的分布式、高可用数据存储,结合HBase、Redis等面向列的数据存储系统,从而解决海量数据存储扩展的问题。
基于大数据架构的分布式云存储技术,可选的分布式存储组件比较多,如国外的多种开源大数据存储技术(如Hbase、Hive、Cassandra、Redis、MongoDB等NoSQL数据库)逐步成熟,在不少大型企业、机构已经能进行产品级支撑。通过对基于Hadoop的分布式数据存储关键技术进行扩展设计,能支持具有时空特性的地理空间的大规模数据存储,或基于XML、JSON的文本数据库存储,或特定时间序列结构、图结构的大数据存储。另外,还可以充分利用已有的云服务商(如亚马逊、阿里巴巴等)的存储计算资源设施,规划建设行业大数据仓库;还可根据需要对传统BI系统的数据仓库和数据集市进行集成。总之,行业领域数据规模巨大,不管是存储组件的直接使用还是定制扩展,大数据存储层设计都需要基于云的列式存储、NoSQL存储或数据仓库存储能力,以支持海量数据的存储扩展。同时,还要采用Hadoop YARN和Spark Mesos等集群资源管理框架以支持多种存储模式和计算模式的云资源调度。
● 智能计算层:
一般来讲,需根据行业大数据特点、根据业务需求把握好数据计算效率、计算复杂性和计算资源要求三者的平衡。绝大部分的大数据计算与挖掘分析工作仍然是事后分析和处理,而实时大数据分析挖掘是一个难点也是应用研究热点。
本层的设计首先需围绕行业大数据智能应用目标,对需要用到的数据挖掘和机器学习技术(如预测、聚类、分类、相关性模型)模型、算法进行技术选型和应用研究,针对超大规模数据量级,可结合云计算、深度学习等前沿大数据技术进行更深入的机器学习。
其次,要能支撑大数据多种计算模式(包括批处理、实时流处理、内存处理等多种模式计算;图像、文本、视频、传感器等多数据模态计算;传统BI的OLAP多维分析计算等),如基于Hadoop批处理、Storm流处理、Spark内存处理、TensorFlow深度学习等多模式计算框架。为上层智能应用提供支持多种计算模式框架下的,多种机器学习模型与方法(如分类、聚类、回归、相关分析等算法)的选择。
● 智能应用层:
大数据智能应用要落地,要形成可部署应用的生产性系统,对挖掘分析结果的直观理解和形成知识辅助决策很关键。
首先,应用层要满足行业大数据各主题的分析预测需求,包括基本的描述性分析、高级的智能预测预警分析,以及多维度的数据可视化探索与查询、展示等。
其次,针对大数据系统的数据管理、业务管理和安全权限等方面的需求,需对相关中间件进行设计,实现各类大数据信息和智能服务的接口管理、组件配置等功能,以支撑存储层和计算层各类应用接口的快速调用和实时维护。
再次,大数据分析结果要能构建知识库并应用于闭环决策支持和持续优化,针对行业大数据分析结果的数据形态和逻辑关系,进行知识库和决策管理平台建设,在决策管理中融合有效的大数据智能分析结果,并对分析结果进行准确性和有效性评价。
最后,上述功能最好要能全程可视化,以先进的人机交互方式辅助管理者进行科学决策,支持大数据本身的可视化探索和系统平台操作管理的可视化,更进一步,可应用大规模空间数据探索式分析和大数据可视化互动操作技术,并能结合GPS/GIS/卫星图像进行大规模可视化的多目标监控、预警、追踪。
我们通过上述四层数据架构的组织,给出了一个大数据智能基础支撑技术栈体系架构的参考设计(以大数据智能分析为主,略去了物联网设备网络层和具体的业务应用、安全层面等组件)。各层的组件和子系统等技术栈内容只是集成选项,在实际系统设计过程中,需要根据业务需求、数据格式、数据规模和研发人员技术的掌握度等情况来挑选合适的组件模块。
总之,要实现大数据智能化管理和分析,首先要打造强大的基础通用关键技术体系架构和应用平台进行支撑,大数据智能系统与传统信息化系统不同,大数据的采集、管理和分析面临跨组织、跨行业的数据共享交换不充分、数据来源渠道众多、数据表现形式复杂不规范等问题,所以,要实现智能化的行业大数据分析应用,需要对行业相关信息资源(包括内部数据和外部数据)进行统一规划、管理、组织和共享,以实现行业大数据智能的多业务协作和资源优化,以达到跨组织、跨行业信息的统筹管理和协调发展,从而更充分地利用各类相关大数据资源实现智能化应用的目标。
大数据智能应用流程优化
CRISP-DM(Cross-Industry Standard Process for Data Mining),称之为“跨行业数据挖掘标准流程”,这个经典的数据挖掘过程模型于1999年被提出。CRISP-DM模型提供了一种结构化、流程化的方法来规划数据挖掘(Data Mining)和知识发现(Knowledge Discovery in Database, KDD)工程。它是一种灵活、实用、健壮且久经考验的方法论,通过近十多年的发展,CRISP-DM模型在各种KDD过程方法中占据了领先地位。CRISP-DM不仅为数据挖掘提供了一个完整的过程描述,同时也为数据科学和大数据智能应用提供了一个参考方法论,该过程模型将数据挖掘分为六个不同的阶段,在实际应用中,有些阶段为可选项,先后顺序也可以根据实际情况进行调整(见图2-9)。下面我们来看CRISP-DM的各个阶段需要关注的重点。
图2-9 CRISP-DM业务流程
● 商业理解(Business Understanding)
我们要从业务角度理解数据挖掘的核心目标,并将这些目标与数据挖掘的过程以及结果评估、应用结合起来。相关工作包括:进行业务需求分析,确定挖掘目标,发现影响结果的相关因素和数据项(输入特征),并从商业角度描绘客户的需求、目标,评估信息化现状,查找所有的数据资源以及在确定数据分析目标和项目方案时考虑到的各种相关因素,包括项目风险、技术、能力、成本和收益等,最终确定数据挖掘的目标和技术路线,做好项目规划。
● 数据理解(Data Understanding)
这个阶段着手数据的采集和集成工作。包括检查梳理各数据源、数据规模,对分析建模涉及的各种数据有初步的理解,并探索数据中与分析目标强相关的数据子集,进而形成对潜在数据分析目标的假设。接下来需要收集原始数据,对数据进行装载,可视化探索数据,并且分析数据特征,进行简单的特征统计,检验数据的质量,包括数据的完整性和正确性、缺失值的填补等。
● 数据准备(Data Preparation)
本阶段和上一个阶段的工作合起来通常称为数据预处理(ETL),包括了从原始数据源中构建最终输入模型的标准数据集(将作为建模工具的分析对象)的全部工作。这里注意数据准备和预处理工作有可能是一个反复的过程。这一阶段的任务主要有:制表、记录、数据变量的选择和转换,以及为适应挖掘模型而进行的数据清理,根据与挖掘目标的相关性,分析数据质量以及模型的限制,选择合适的和预处理好的数据集作为模型输入,并进一步对数据进行清洗转换、构造衍生变量、整合数据、根据模型要求格式化(或规范化)数据等。
● 数据建模(Data Modeling)
本阶段是数据挖掘的核心环节,各种各样的数据挖掘建模方法(包括机器学习、统计学习或人工智能相关模型都可以作为备选项)将被加以选择和使用,通过构建模型、评估模型、训练模型来优化相关参数。特别注意的是,对于同一个数据挖掘问题类型,可以有多种方法供选择使用。比如分类模型可以选择决策树、支持向量机,或神经网络BP等各种算法。如果有多种模型方法可以使用,就需要对这些方法进行评估和选择。不同模型方法对数据的形式有不同的要求,因此,在这一阶段,重新回到数据准备阶段执行数据预处理任务也是经常性的工作。
● 模型评估(Model Evaluation)
数据建模阶段之后,通过反复训练和参数优化构建多个稳定的、具有一定预测准确率的可用模型。在进行生产环境下的产品系统部署之前,需要对模型进行更彻底的评估,比如要面对机器学习领域经常提到的模型泛化性能、鲁棒性和增量数据的训练等问题。通过对这些问题的评估,来调整和优化构建模型过程中所执行的相关任务,从而确保部署的模型能达到企业的生产系统要求。
● 模型发布(Model Deployment)
模型发布和部署,即在建模结束后,需要把得到的知识(CRISP-DM过程形成的数据、经验和结果展示等文档)或规则(模型本身)应用起来,包括生成相关报告和模型植入生产系统支撑业务应用。内容涉及部署计划的拟定、模型的监控和维护、最终报告的提交和展示等工作。模型的创建并不是项目的最终目的,尽管建模是为了增加更多有关于数据分析的有价值信息,但更重要的是这些价值信息能以一种客户方便使用和有效支撑决策的方式被组织和呈现。简言之,我们需要一个动态、高效的模型。
从上述CRISP-DM模型过程的六大步骤描述来看,基本上涵盖了主流数据挖掘项目的各个方面,当前CRISP-DM已经成为数据科学领域最早也是最重要的行业标准之一,为大部分数据挖掘系统研发和项目实施提供了切实的参考。对大数据智能的应用来讲,也是很好的借鉴。根据大数据智能应用需求和技术特性,我们对传统的CRISP-DM进行了改进,提出了基于云计算和大规模数据处理框架(如Hadoop、Spark等)的大数据智能应用处理流程,如图2-10所示。
图2-10 大数据智能应用处理流程
面向智能决策的大数据处理流程相比传统的跨行业数据挖掘标准流程CRISP-DM,从两个层面进行了扩展:
首先,在基础设施架构上采用基于云计算和主流大数据处理框架进行支撑,利用分布式集群和云服务技术,保证了大数据存储和计算能力的可扩展性和稳定性,通过数据的预处理构建标准的数据模型,以适应不同的大数据处理计算框架,如Mapreduce-MR、Spark-RDD和Deep Learning-DL等。
其次,针对传统数据挖掘模型的系统和现实决策反馈的脱节问题,根据数据科学迭代性本质特点,对模型系统和现实决策反馈两个过程进行融合,分别进行自适应迭代升级和智能决策进化支持,在系统迭代升级的过程中,决策反馈评估和模型调整优化同步进行。通过这种扩展,使得大数据智能应用与传统数据挖掘技术、新兴的主流大数据处理框架,在技术架构设计和流程优化上进行互补和融合。在第4章我们会继续对上述流程进行拓展,再进行详细探讨。