大数据应用发展史:从搜索引擎时代到机器学习时代
文章目录
- 搜索引擎时代
- 数据仓库时代
- 数据挖掘时代
- 机器学习时代
- 小结
大数据技术的使用经历了一个发展过程
从最开始的Google在搜索引擎中开始使用大数据技术,到现在无处不在的各种人工智能应用,伴随着大数据技术的发展,大数据应用也从曲高和寡走到了今天的遍地开花。
Google从最开始发表大数据划时代论文的时候,也许自己也没有想到,自己开启了一个大数据的新时代。今天大数据和人工智能的种种成就,离不开全球数百万大数据从业者的努力,这其中也包括你和我。历史也许由天才开启,但终究还是由人民创造,作为大数据时代的参与者,我们正在创造历史。
搜索引擎时代
作为全球最大的搜索引擎公司,Google也是我们公认的大数据鼻祖,它存储着全世界几乎所有可访问的网页,数目可能超过万亿规模,全部存储起来大约需要数万块磁盘。
为了将这些文件存储起来,Google开发了GFS(Google文件系统),将数千台服务器上的数万块磁盘统一管理起来,然后当作一个文件系统,统一存储所有这些网页文件。
你可能会觉得,如果只是简单地将所有网页存储起来,好像也没什么太了不起的
没错,但是Google得到这些网页文件是要构建搜索引擎,需要对所有文件中的单词进行词频统计,然后根据PageRank算法计算网页排名。
这中间,Google需要对这数万块磁盘上的文件进行计算处理,这听上去就很了不起了吧。当然,也正是基于这些需求,Google又开发了MapReduce大数据计算框架。
其实在Google之前,世界上最知名的搜索引擎是Yahoo。但是Google凭借自己的大数据技术和PageRank算法,使搜索引擎的搜索体验得到了质的飞跃,人们纷纷弃Yahoo而转投Google。所以当Google发表了自己的GFS和MapReduce论文后,Yahoo应该是最早关注这些论文的公司。在科技方面,如果有可靠的产品力的情况下,竞争优势是很可怕的。
Doug Cutting率先根据Google论文做了Hadoop,于是Yahoo就把Doug Cutting挖了过去,专职开发Hadoop。可是Yahoo和Doug Cutting的蜜月也没有持续多久,Doug Cutting不堪Yahoo的内部斗争,跳槽到专职做Hadoop商业化的公司Cloudera,而Yahoo则投资了Cloudera的竞争对手HortonWorks。
顶尖的公司和顶尖的高手一样,做事有一种优雅的美感。你可以看Google一路走来,从搜索引擎、Gmail、地图、Android、无人驾驶,每一步都将人类的技术边界推向更高的高度。而差一点的公司即使也曾经获得过显赫的地位,但是一旦失去做事的美感和节奏感,在这个快速变革的时代,陨落得比流星还快。
数据仓库时代
Google的论文刚发表的时候,吸引的是Yahoo这样的搜索引擎公司和Doug Cutting这样的开源搜索引擎开发者,其他公司还只是“吃瓜群众”。但是当Facebook推出Hive的时候,嗅觉敏感的科技公司都不淡定了,他们开始意识到,大数据的时代真正开启了。
曾经我们在进行数据分析与统计时,仅仅局限于数据库,在数据库的计算环境中对数据库中的数据表进行统计分析。并且受数据量和计算能力的限制,我们只能对最重要的数据进行统计和分析。这里所谓最重要的数据,通常指的都是给老板看的数据和财务相关的数据。
而Hive可以在Hadoop上进行SQL操作,实现数据统计与分析。也就是说,我们可以用更低廉的价格获得比以往多得多的数据存储与计算能力。我们可以把运行日志、应用采集数据、数据库数据放到一起进行计算分析,获得以前无法得到的数据结果,企业的数据仓库也随之呈指数级膨胀。
不仅是老板,公司中每个普通员工比如产品经理、运营人员、工程师,只要有数据访问权限,都可以提出分析需求,从大数据仓库中获得自己想要了解的数据分析结果。
你看,在数据仓库时代,只要有数据,几乎就一定要进行统计分析,如果数据规模比较大,我们就会想到要用Hadoop大数据技术,这也是Hadoop在这个时期发展特别快的一个原因。技术的发展同时又促进了技术应用,这也为接下来大数据应用走进数据挖掘时代埋下伏笔。
数据挖掘时代
大数据一旦进入更多的企业,我们就会对大数据提出更多期望,除了数据统计,我们还希望发掘出更多数据的价值,大数据随之进入数据挖掘时代。
讲个真实的案例,很早以前商家就通过数据发现,买尿不湿的人通常也会买啤酒,于是精明的商家就把这两样商品放在一起,以促进销售。啤酒和尿不湿的关系,你可以有各种解读,但是如果不是通过数据挖掘,可能打破脑袋也想不出它们之间会有关系。在商业环境中,如何解读这种关系并不重要,重要的是它们之间只要存在关联,就可以进行关联分析,最终目的是让用户尽可能看到想购买的商品。
除了商品和商品有关系,还可以利用人和人之间的关系推荐商品。如果两个人购买的商品有很多都是类似甚至相同的,不管这两个人天南海北相隔多远,他们一定有某种关系,比如可能有差不多的教育背景、经济收入、兴趣爱好。根据这种关系,可以进行关联推荐,让他们看到自己感兴趣的商品。
更进一步,大数据还可以将每个人身上的不同特性挖掘出来,打上各种各样的标签:90后、生活在一线城市、月收入1~2万、宅……这些标签组成了用户画像,并且只要这样的标签足够多,就可以完整描绘出一个人,甚至比你最亲近的人对你的描述还要完整、准确。
除了商品销售,数据挖掘还可以用于人际关系挖掘。你听过“六度分隔理论”吗,它认为世界上两个互不认识的人,只需要很少的中间人就能把他们联系起来。这个理论在美国的实验结果是,通过六步就能联系上两个不认识的美国人。也是基于这个理论,Facebook研究了十几亿用户的数据,试图找到关联两个陌生人之间的数字,答案是惊人的3.57。你可以看到,各种各样的社交软件记录着我们的好友关系,通过关系图谱挖掘,几乎可以把世界上所有的人际关系网都描绘出来。
现代生活几乎离不开互联网,各种各样的应用无时不刻不在收集数据,这些数据在后台的大数据集群中一刻不停地在被进行各种分析与挖掘。这些分析和挖掘带给我们的是美好还是恐惧,依赖大数据从业人员的努力。但是可以肯定,不管最后结果如何,这个进程只会加速不会停止,你我只能投入其中。
机器学习时代
我们很早就发现,数据中蕴藏着规律,这个规律是所有数据都遵循的,过去发生的事情遵循这个规律,将来要发生的事情也遵循这个规律。一旦找到了这个规律,对于正在发生的事情,就可以按照这个规律进行预测。
在过去,我们受数据采集、存储、计算能力的限制,只能通过抽样的方式获取小部分数据,无法得到完整的、全局的、细节的规律。而现在有了大数据,可以把全部的历史数据都收集起来,统计其规律,进而预测正在发生的事情。
这就是机器学习。
把历史上人类围棋对弈的棋谱数据都存储起来,针对每一种盘面记录如何落子可以得到更高的赢面。得到这个统计规律以后,就可以利用这个规律用机器和人下棋,每一步都计算落在何处将得到更大的赢面,于是我们就得到了一个会下棋的机器人,这就是前两年轰动一时的AlphaGo,以压倒性优势下赢了人类的顶尖棋手。
再举个和我们生活更近的例子。把人聊天的对话数据都收集起来,记录每一次对话的上下文,如果上一句是问今天过得怎么样,那么下一句该如何应对,通过机器学习可以统计出来。将来有人再问今天过得怎么样,就可以自动回复下一句话,于是我们就得到一个会聊天的机器人。Siri、天猫精灵、小爱同学,这样的语音聊天机器人在机器学习时代已经满大街都是了。
将人类活动产生的数据,通过机器学习得到统计规律,进而可以模拟人的行为,使机器表现出人类特有的智能,这就是人工智能AI。
现在我们对待人工智能还有些不理智的态度,有的人认为人工智能会越来越强大,将来会统治人类。实际上,稍微了解一点人工智能的原理就会发现,这只是大数据计算出来的统计规律而已,表现得再智能,也不可能理解这样做的意义,而有意义才是人类智能的源泉。按目前人工智能的发展思路,永远不可能出现超越人类的智能,更不可能统治人类。
这种想法也太过偏激,未来也有可能出现基因突变的可能性。都不好说,量变引起质变。
小结
大数据从搜索引擎到机器学习,发展思路其实是一脉相承的,就是想发现数据中的规律并为我们所用。所以很多人把数据称作金矿,大数据应用就是从这座蕴含知识宝藏的金矿中发掘有商业价值的真金白银出来。
这也是公务员考试中常见的找规律,找规律是做事情,事半功倍的好思路。
数据中蕴藏着价值已经是众所周知的事情了,那么如何从这些庞大的数据中发掘出我们想要的知识价值,这正是大数据技术目前正在解决的事情,包括大数据存储与计算,也包括大数据分析、挖掘、机器学习等应用。
美国的西部淘金运动带来了美国的大拓荒时代,来自全世界各地的人涌向美国西部,将人口、资源、生产力带到了荒蛮的西部地带,一条条铁路也将美国的东西海岸连接起来,整个美国也随之繁荣起来。大数据这座更加庞大的金矿目前也正发挥着同样的作用,全世界无数的政府、企业、个人正在关注着这座金矿,无数的资源正在向这里涌来。
我们不曾生活在美国西部淘金的繁荣时代,错过了那个光荣与梦想、自由与激情的个人英雄主义时代。但是现在,一个更具划时代意义的大数据淘金时代已经到来,而你我正身处其中。
大数据时代就是属于我们的淘金时代。
相关文章:
大数据应用发展史:从搜索引擎时代到机器学习时代
文章目录 搜索引擎时代数据仓库时代数据挖掘时代机器学习时代小结 大数据技术的使用经历了一个发展过程 从最开始的Google在搜索引擎中开始使用大数据技术,到现在无处不在的各种人工智能应用,伴随着大数据技术的发展,大数据应用也从曲高和寡…...

java基础之String的不可变性
目录 概述 String是如何实现不可变的 String为何设计成不可变的 1.缓存和性能优化 2.安全性 3.线程安全性 4.API设计和预测性能 概述 String类的不可变性意味着一旦创建了一个字符串对象,它的值就不能被修改。 String是如何实现不可变的 查看源码 public …...
【JS】Promise详解
概述 在 JavaScript 中,Promise 是一个表示异步操作最终完成或失败的对象。它本质上是一个返回的对象,你可以附加回调函数,而不是将回调传递给函数。 let promise new Promise((resolve, reject) > {let condition true; // 这可以是某…...

原生微信小程序如何动态配置主题颜色及如何调用子组件的方法
一、最终效果 二、步骤 1、在初始化进入项目时,获取当前主题色 2、把主题色定义成全局变量(即在app.js中设置) 3、tabBar也需要定义全局变量,在首页时需要重新赋值 三、具体实现 1、app.js onLaunch () {//获取主题数据this.set…...

Java关键字(1)
Java中的关键字是指被编程语言保留用于特定用途的单词。这些关键字不能用作变量名或标识符。以下是Java中的一些关键字: public:表示公共的,可以被任何类访问。 private:表示私有的,只能被定义该关键字的类访问。 cl…...

【机器学习合集】深度生成模型 ->(个人学习记录笔记)
深度生成模型 深度生成模型基础 1. 监督学习与无监督学习 1.1 监督学习 定义 在真值标签Y的指导下,学习一个映射函数F,使得F(X)Y 判别模型 Discriminative Model,即判别式模型,又称为条件模型,或条件概率模型 生…...
Java将PDF转换为文本
在Java中,你可以使用现有的库来将PDF文件转换为文本。下面是一个简单的示例,使用Apache PDFBox库来实现PDF到文本的转换。首先,确保在你的项目中添加了Apache PDFBox库的依赖。你可以在 Maven 项目中添加以下依赖: <!--Pdf--&g…...

Linux 运维工具之1Panel
一、1Panel 简介 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。 特点: 快速建站:深度集成 Wordpress 和 Halo,域名绑定、SSL 证书配置等一键搞定;高效管理:通过 Web 端轻松管理 Linux 服务器࿰…...

深入了解小红书笔记详情API:为内容创新提供动力
一、小红书笔记详情API简介 小红书笔记详情API是一种允许开发者访问小红书平台上的笔记详细数据的接口。通过这个API,我们可以获取笔记的标题、内容、标签、点赞数、评论数等详细信息。这些数据对于内容创作者和品牌来说至关重要,可以帮助他们了解用户喜…...

Animate 2024(Adobe an2024)
Animate 2024是一款由Adobe公司开发的动画和互动内容创作工具,是Flash的演进版本。Animate 2024为设计师和开发者提供了更丰富的功能,让他们能够创建各种类型的动画、交互式内容和多媒体应用程序。 Animate 2024具有以下特点: 强大的设计工…...

尽量避免删改List
作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖&…...

【Linux操作系统】探秘Linux奥秘:用户、组、密码及权限管理的解密与实战
🌈个人主页:Sarapines Programmer🔥 系列专栏:《操作系统实验室》🔖诗赋清音:柳垂轻絮拂人衣,心随风舞梦飞。 山川湖海皆可涉,勇者征途逐星辉。 目录 🪐1 初识Linux OS &…...

计算机组成原理复习4
习题 练习题 下列不属于系统总线的为() a.数据总线 b.地址总线 c.控制总线 d.片内总线 D 系统总线中地址总线的功能是() a.选择主存单元地址 b.选择进行信息传输的设备 c.选择外存地址 d.指定主存和I/O设备接口电路的地址 D 解…...
AutoSAR(基础入门篇)3.3-Autosar中RTE的数据一致性与Interface接口
目录 一、RTE的数据一致性 1、什么是数据一致性 2、数据一致性的实现机制 2.1、利用RTE管理<...

超维空间S2无人机使用说明书——52、初级版——使用PID算法进行基于yolo的目标跟踪
引言:在实际工程项目中,为了提高系统的响应速度和稳定性,往往需要采用一定的控制算法进行目标跟踪。这里抛砖引玉,仅采用简单的PID算法进行目标的跟随控制,目标的识别依然采用yolo。对系统要求更高的,可以对…...
<JavaEE> TCP 的通信机制(一) -- 确认应答 和 超时重传
目录 TCP的通信机制的核心特性 一、确认应答 1)什么是确认应答? 2)如何“确认”? 3)如何“应答”? 二、超时重传 1)丢包的概念 2)什么是超时重传? 3)…...

Spark任务调度与数据本地性
Apache Spark是一个分布式计算框架,用于处理大规模数据。了解Spark任务调度与数据本地性是构建高效分布式应用程序的关键。本文将深入探讨Spark任务调度的流程、数据本地性的重要性,并提供丰富的示例代码来帮助大家更好地理解这些概念。 Spark任务调度的…...
【论文阅读】Self-Paced Curriculum Learning
论文下载 代码 Supplementary Materials bib: INPROCEEDINGS{,title {Self-Paced Curriculum Learning},author {Lu Jiang and Deyu Meng and Qian Zhao and Shiguang Shan and Alexander Hauptmann},booktitle {AAAI},year {2015},pages {2694--2700} }1. 摘…...
C++简易线程池
原理说明: 1. 线程池创建时,指定线程池的大小thread_size。当有新的函数任务通过函数addFunction ()添加进来后,其中一个线程执行函数。一个线程一次执行一个函数。如果函数数量大与线程池数量,则后来的函数等待。 2. 线程池内部…...

【MATLAB】PSO粒子群优化LSTM(PSO_LSTM)的时间序列预测
有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 PSO粒子群优化LSTM(PSO-LSTM)是一种将粒子群优化算法(PSO)与长短期记忆神经网络(LSTM)相结合的混合模型。该算法通过…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...