本文由 网易云 发布。
作者:刘超
互联网这个词目前已经普遍化,这大概也归功于罗振宇的罗辑思维对于互联网概念的极力宣扬,似乎不加上互联网三个字,企业宣传都张不开嘴。于是互联网+这个名词就随处可见了。
支撑互联网化的一个重要的力量就是云计算。但现在的云已经外延被扩大的不知道到哪里去了,什么财务云,发票云等等,让我们这些做计算、网络、存储、中间件、大数据的,都没办法和这些外延清晰的区分出来。
现在人工智能火了,也加入到了云计算的范畴中来,因而各种智慧云都出来了,智慧教育、智慧医疗、智慧交通等。
传统行业中干辛苦活的,眼睁睁的看着互联网公司双十一一天赚了一年的钱,于是红着眼睛也想纷纷上船,踏上互联网化、云化、智慧化的浪潮。
我们来盘点一下当前的现状,展望一下未来。
一、回望那些火过的互联网应用,发现历史竟如此相似
互联网都火过啥,从最早兴起的三大门户网站,Google退出后大家争相追逐的搜索引擎、社交网站、电商、微博、团购、互金、视频网站、O2O、直播、单车等等,一波接着一波,长江后浪推前浪,前浪死在沙滩上。
他们都经历着下面的这个循环。
首先要有个人有个创意,做一个没有的产品或发明一种没有的商业模式,当创意得到市场认可的时候,就迎来了市场的爆发,大家纷纷涌入,做同质化的产品,将一个新兴的市场变成一个红海,在红海中进行生死较量,有的退出了,有的倒闭了,有的被兼并,最终只能剩下两三家,或者成为巨头,或者被巨头收购。
前面所说的这样浪潮,都没有逃脱这个循环,唯一不同的是,这个循环越来越快,门户网站的角逐持续了好多年,而最近的这些浪潮一般十八个月就会见分晓。创业公司越来越发现,融的资看起来一轮比一轮大,但是都花不了太久时间。
市场没有耐心,你不采取激进的市场策略,竞争对手会的,你便宜,对手更便宜,你免费,就有人敢补贴。
投资人没有耐心,不在短期内拿出傲人的成绩,你就不会有下一轮,所以不花钱,被对手的声势碾压了,没有下一轮,是个死,使劲花钱,把对手碾压了,在胜出之前,没有下一轮,还是个死。
核心员工没有耐心,如果想公司有较快的发展,必须要找到牛的人,牛的人往往很贵,会让你融的钱花的很快,当然有一部分创业者可以通过愿景和期权留住牛人,但是这是有实效的,牛人往往社交面广,有独立的思维,不是那么容易被忽悠住的,牛人往往身怀绝技,容易被挖,所以除了画饼,你还需要不断的兑现一些饼,例如你的生意要在较短的期限内有一个起色,或者到另外一个高度。
所以随着这个循环越来越快,留给互联网公司的时间越来越少,能胜出的互联网公司往往具备快速的迭代速度,对传统行业进行冲击。而传统行业的老板们也想通过加上互联网能力,获取相同的竞争优势。那到底什么才叫互联网化呢?
二、什么才是互联网公司,什么才是AI公司
吴恩达在AI Conference的讲座中,提到了他对什么是互联网公司,什么是AI公司的理解,我觉得非常的深刻。
(1) 商场 + 网站 ≠ 互联网公司
如果你是一个传统的商场,仅仅是做了一个网站,那不叫互联网化。
真正标识一个互联网公司的,有以下几点:
- A/B测试,让数据说话:当你有一个页面需要改进,你的网站设计成什么样,你的APP设计成什么样,是你们一层层的回报,然后让老大决策的么?大老板往往很危险,因为他不一定了解客户的偏好,而主观认为的偏好,在实际测试的时候,往往结果大相径庭,所以不要让老板拍板,而是让数据说话,通过在线测试两种方案的结果,得出最后的结论,虽然做不到迅猛提升,但是可以保证每一次的修改,都是正向的。
- 更短的周期:你的应用的迭代速度必须足够的快,而且迭代是基于数据的,根据数据的反馈,不断的小步快跑,这需要组织和流程有很强的适应能力。和传统公司几个月升一次级不同,互联网公司几乎每天都升级,当你打开各种APP的时候,你会发现界面动不动就改了。
- 工程师和PM做决策:如何才能快速上线呢?如果每次上线都要一百多人开大会,让老大做决定,那肯定快不了,应该让工程师和PM做决策,他们才是真正听得到炮火的人,你需要让他们独立负责一块内容,独立决策,独立上线,独立负责,所有的PM并行工作,才使得更新速度飞快。
(2) 传统科技公司 + 机器学习/神经网络 ≠ AI公司
如果你是一家传统公司,只是其中的一个部门用上了机器学习和神经网络技术,那你不是一家AI公司。
一家真正的AI公司,应该有如下的特点:
- AI公司倾向于战略性地获取数据:数据是一家AI公司的基石,所以如果想让您的公司智慧化,获取数据要放到战略高度。其实很多公司已经这样做了,那些所谓的一切都要电子化,一切都要APP化,不接受现金和线下购买和支付,通过各种终端渗透到你的生活中,你觉得很方便,一会儿打开一个APP干这个,一会儿打开另一个APP干别的,你的整个画像就被勾勒的一清二楚了。所以你会经常受到各种广告,这说明他们已经大数据化了,但是还没智慧化,做到了精准的画像,但是没有做到智慧的推送,还是算法有点愣,但是战略,你是能够感受到的。
- AI公司通常有统一的数据仓库:数据是应该打通的,如果在你的公司里面获取全量的数据,需要和50个部门沟通,那说明还没有大数据化,更别提智慧化。你们公司应该有统一的用户中心,统一的商品中心,统一的大数据平台,你的用户无论是用你的哪一款产品,应该感觉到产品之间是互通的,而非孤立的,这对组织的架构,系统的架构,数据的架构都有要求。
在AI公司里,产品经理在和工程师沟通的时候,需要学会运用数据,要求精确的反馈。产品经理除了有客户思维,应该有数据思维,就像吴恩达说的一样,做一个人工对话机器人,产品经理画一个框,里面一个小人,是没有意义的,要知道数据从哪里来,如何获取这些数据,如何利用这些数据,如何定量的评估人工对话机器人的效果是否有提升,这不能感性的来,也是要有数据。
三、传统公司互联网化所应该考虑的三大架构
要想让你的公司尽快的实现互联网化,需要从三大架构考虑。
- 第一个是IT架构,如何降低CAPEX和OPEX,如何减轻运维的负担。IT架构越来越复杂,能够把一个IT架构玩的很好,团队需要越来越大,招聘的人会越来越贵,如果你不是一个搞IT行业的,而是一个做金融的,制造的,医疗的,你会发现这一块成本越来越大。云化就是一个必然的趋势,所谓让专业的人干专业的事情。
- 第二个是应用架构,如何实现快速迭代,如何抗住互联网化后的高并发的流量。服务化是必须的趋势。每个小团队负责一个独立的服务,迭代速度就快了。每个模块一个独立的服务,可以独立扩展,就能够抗住来自互联网上的高并发。例如传统的金融支付遇到互联网支付,频率突然高了N倍,不服务化就搞不定。
- 第三个是数据架构,如何形成统一的数据平台,并给予数据进行数字化运营。服务化另一个有利的方面是可以将类似的数据集中,而有了数据后,如何进行运营,向客户提供精准的推荐,实现大数据化,进一步实现智慧化,是必须要考虑的。
四、IT架构趋势一:从资源弹性向架构弹性转变,互联网公司和传统公司差距越来越大
当前云化已经成为业内的共识,但是云计算的目前的状态还处于云计算1.0时期,也即仅仅实现了资源层面的弹性。
什么叫弹性呢?
说的通俗一点就是灵活性,主要包含两个方面的灵活性,一个是时间灵活性,也即想什么时候要就什么时候要,一个是空间灵活性,也即想要多少,就要多少。
人们之所以云化,是因为物理机是无法实现这种灵活性的。物理机有四个方面的不灵活,一是采购不灵活,采购期短则一两周,长则一两个月,二是粒度不灵活,无法采购一个1核1G1M带宽的机器,三是复用不灵活,同样一台物理机,一个人用过了,很难复原成原样,让另外一个人使用,除非重装系统,四是运维不灵活,很多事情要去机房才能搞定,而机房往往在最偏的地方。
虚拟化技术解决了这个问题,点即可得解决采购灵活性问题,可大可小解决粒度灵活性问题,即创即销解决复用灵活性问题,界面运维解决运维灵活性问题。唯一没有解决的问题是调度灵活性,需要手动运维,因而规模有限。
云计算的调度技术使得集群规模非常的大,并且可以自动调度,从而从客户的角度,真正实现资源弹性。
但如果云计算不管应用,则会是什么样呢?例如平时我们只需要十台虚拟机,但是双11的秒杀场景,我们需要一百台虚拟机,有了云计算资源层面的弹性,我们只要在云平台上一点,很快90台虚拟机就创建出来了,但是里面的应用呢?
还是需要我们的运维人员一台一台去安装,实在是太复杂了,无法实现真正的弹性。
于是我们开始想云计算如何来管理应用。
我们把应用分成两种,一种叫做通用的应用,例如这里面写的Spark,Mysql,Hadoop,这些应用的特点是通用,谁安装都一样,但是运维起来又相对比较复杂,应该交给云平台去运维和扩容。另一种叫自己的应用,这些应用的安装云平台无法帮到你,因为你自己的应用只有你自己知道怎么安装,所以云平台往往提供了一些基于脚本的工具来做这些事情,例如Chef、Puppet、Ansible等。但是脚本有一个最大的弱点,一旦环境有差异,脚本就很难顺利运行成功,所以导致基于脚本的安装工具,实现跨云迁移非常困难。
于是容器应运而生。
容器的英文是Container,Container另一个意思是集装箱,其实容器的思想就是要变成软件交付的集装箱。集装箱的特点,一是打包,二是标准。
在没有集装箱的时代,假设将货物从A运到B,中间要经过三个码头、换三次船。每次都要将货物卸下船来,摆的七零八落,然后搬上船重新整齐摆好。因此在没有集装箱的时候,每次换船,船员们都要在岸上待几天才能走。
有了集装箱以后,所有的货物都打包在一起了,并且集装箱的尺寸全部一致,所以每次换船的时候,一个箱子整体搬过去就行了,小时级别就能完成,船员再也不能上岸长时间耽搁了。
这是集装箱“打包”、“标准”两大特点在生活中的应用。
部署任何一个应用,也包含很多零零散散的东西,权限,用户,路径,配置,应用环境等!这就像很多零碎地货物,如果不打包,就需要在开发、测试、生产的每个环境上重新查看以保证环境的一致,有时甚至要将这些环境重新搭建一遍,就像每次将货物卸载、重装一样麻烦。中间稍有差池,都可能导致程序的运行失败。
那么容器如何对应用打包呢?还是要学习集装箱,首先要有个封闭的环境,将货物封装起来,让货物之间互不干扰,互相隔离,这样装货卸货才方便。
另外就是如何将这个集装箱标准化,从而在哪艘船上都能运输。这里的标准一个是镜像,一个是容器的运行环境。
所谓的镜像,就是将你焊好集装箱的那个时刻,将集装箱的状态保存下来,就像孙悟空说定,集装箱里面就定在了那一刻,然后将这一刻的状态保存成一系列文件。这些文件的格式是标准的,谁看到这些文件,都能还原当时定住的那个时刻。将镜像还原成运行时的过程(就是读取镜像文件,还原那个时刻的过程)就是容器的运行的过程。
有了容器,云计算才真正实现了应用层和资源层的完全弹性。
在这里暂时总结一下,虽然从技术角度来讲,容器已经成为一个趋势,然而在真正的实施过程中,云计算1.0时代,将应用云化的过程,很多传统公司尚未完成。然而,在大型的互联网公司,基于容器的云计算2.0技术实现架构的全弹性伸缩,已经在大规模使用。容器的三大平台战役已经落下帷幕,Kubernetes已经全面胜出,现在在互联网公司的论坛中,再讲容器技术,已经感觉是很老套的技术了,然而在很多传统企业,云化却尚未完成,这中间鸿沟巨大,利用容器技术的快速迭代,将是对还未进行云化的公司的降维打击。
五、IT架构趋势二:云化容器化不可逆转,IT人员越来越贵,只有规模大才能降低成本,通过自动化和智能化,让少数的高薪IT人员管理大规模集群
也有人会说,你老说云化,云化怎么好,能够降低成本,可真正实践下来,云的技术虽然在不断的进行迭代,然而我的运维成本,还越来越高。
原来用物理机的时候,其实我只需要懂基本的Linux知识就可以运维了,后来你们忽悠我上虚拟化软件,虚拟化软件非常非常的贵,能够会使用虚拟化软件证书的人更贵。后来虚拟化软件存在绑定的问题,于是你们忽悠我用开源的虚拟化软件OpenStack,谁知道开源并没有免费,如果不进行适配和定制,基本上没办法在生产环境中使用,但如果一旦定制,又变成了一个私有化的软件,这时候我的运维人员,不但要会用虚拟化软件,还需要去开发虚拟化软件,能开发虚拟化软件的实在是非常贵,而且如果自己运维OpenStack没有五十甚至一百人的团队,根本搞不定,后来你们说应该用容器,可是用了容器以后,计算网络存储的技术一样不能少,而且还要懂应用,全栈工程师就更加贵了。
云计算真的能够降低成本吗?难道我用了假的云计算?
接下来我们详细分析一下云计算的使用方式。
最简单的使用方式,当然是使用公有云,公有云就相当于你买了一个公寓房,成本非常的低廉,同时隔离也是逻辑的,在高峰期的时候,不免有争抢资源的现象。
如果你想不被争抢资源,可以使用专属主机,就相当于买了一整栋单元楼,这台物理机上的所有的虚拟机都是你的,然而很多PaaS服务如数据库还是在公用集群上的。
于是有很多公司就想建设自己的私有云,把这比喻成为住别墅,其实这顶多是农村自建房,因为你可能需要去别人的数据中心里面租一块地,然后或者自建云平台,或者招标云平台。没有人会去想住别墅的时候,自己拿地自己去盖,自己出了问题自己去修,这样部署运维更新,成本非常的高,你需要自己养一个专业的运维团队来做这件事情。
这种方式往往只能解决心理上的安全问题,真的安全吗?不一定。就像农村自建房,没有完善的物业,也没有完善的保安一样,托管在别人数据中心中的云平台,很难保证不被邻居机架上不专业的运维行为威胁你的安全。你搭建了云平台,你的邻居机架上直接用物理机,我们经常见到有的小公司在公司里面一个VPN,将办公网络和机房的物理机连通起来,办公网的wifi非常不安全,如果有黑客能够到达邻居的物理机,很可能就能黑到你的物理机上面来。
除非你是大土豪,例如电信银行电力,自己拿地,自己建数据中心,自己,有成百上千人的运维团队,有非常完善的机房运维流程,就相当于特朗普自己拿块地自己盖别墅,自己招聘物业,自己雇保安,当然是最最安全的。可能大部分的传统企业,都不能享受这样的待遇。
网易云专属云服务,商业别墅型云服务。地网易来拿,房子网易来盖,物业网易来管,保安网易来招。相当于在网易的机房里面,划出一块地方来,这个地方上面部署的云平台资源全是你自己的,但是硬件、网络、安全、安装、升级、修复,你都不用来管,有非常专业的运维团队来做这件事情,这些运维操作保证安全合规,你只需要关注自己的应用就可以了。
网易为什么要推出专属云呢?因为我们认为云化容器化的趋势是一定的,前面所叙述的道路本身没有错误,能懂OpenStack和Docker的技术牛人越来越贵是必然的,只有规模越来越大,才能体现云的成本优势。例如谷歌,谷歌里面的运维工程师相当相当贵,有几十万,甚至上百万美金的年薪,他们掌握这些最先进的技术是没有任何问题的,但是他们会通过各种自动化,甚至智能化的技术,管理全球的几百万台机器,这样成本摊下来就不是很高了,所以谷歌完全养得起。如果你只是运维一个几十个节点,最多几百个节点的云平台,同样需要招一些这么贵的人,一般的企业肯定受不了,所以对于大部分企业来说,应该将IT架构交给最专业的牛人。
我个人甚至认为,将来只有两种云平台,一个是大规模公有云平台,一个是土豪的自建云平台,其他的形式都会随着技术的越来越先进,运维人员的要求越来越高,运维人员的年薪越来越贵,而消失。
六、业务架构趋势一:互联网冲击已成必然,快速变更成为核心竞争力,DevOps重构组织架构,流程,文化是必然选择
在业务架构方面,我这里强调的是服务化。是解决如何避免开发和运维的黑天鹅问题。
所谓黑天鹅,就是遇到了原来没有遇到过的问题,原来我们想象应用不改,从而稳定,已经因为互联网的冲击而成为了泡影。
互联网要求你的应用变化快,所以你不得不改。你的传统的应用,例如传统的刷卡支付,一旦对接到互联网平台,例如在线支付,你所面临的吞吐量,比原来大很多倍,这是一个新问题,不改比改风险更大。
所以,如上面那个图中所说,因为变化快,所以我们要把应用,拆成微服务,每一个模块独立迭代,独立发布,这样才能应对变化。因为扛不住,所以我们还是要用微服务,原来一个程序去扛,现在多个应用一起去扛,才可能扛住。
然而拆成了微服务,服务多了,版本也多了,运维就变成了一个大难题,一般的传统公司,开发和运维的比例相当高,让如此少的运维去运维如此多的服务和版本,运维压力非常大,而且会非常的不稳定。
所以这个时候是应该使用容器,使得对于环境的部署这件事情提前到开发阶段来做,开发人员不能做甩手掌柜,而从开发完代码的时候,就要关心环境的配置,生成容器镜像。
这个时候,虽然每个开发都多了一些工作,但是每个模块的开发人员,仅仅维护自己模块的容器镜像,工作量不是特别大,而如果把所有的环境部署全部交给少数的运维,则非常容易出错,这其实是相当于每个开发多了5%的工作量,从而减少了运维人员200%的工作量。
有人说这样运维部开心了,开发部不愿意打镜像怎么办呢,所以这就需要DevOps的文化,将开发和运维中间的墙打通,才能加快迭代速度,保障系统的稳定性。
网易有一个专门做DevOps的质量管理平台,将整个过程打通。
这里面还有一个故障演练平台,是利用故意的方式,模拟一些系统错误,从而测试系统的稳定性和容错性,只有经过了故障演练系统还不出问题,才是真正的稳定,而不是不动它,因为你不动它,不知道什么原因,突然他挂了整个系统就不可用了,如果你时常故障演练,在演练的过程中,还能保持系统可用,这才是避免黑天鹅的主动出击的方法。
所以互联网化的冲击,使得原来所有不变就相当于稳定的幻想破灭了,快速变更,成为核心竞争力,DevOps的文化成为必然的选择,这就是我们常说的高频打低频。
七、业务架构趋势二:服务化形成能力复用中心,快速推出产品,打通数据平台,占领新产业生物链的高端
服务化的第二个作用,就是可以形成能力复用的中心。
如果像原来那样烟囱式的系统建设,会使得信息之间彼此是独立的,而且每当开发一个新应用,成本都会非常的高,每个系统都有自己的用户管理,每个系统都有自己的商品管理。其实应该有一个用户中心,有一个商品中心,并且用户中心和商品中心全部做成服务,这样当你要开发一个新的系统的时候,你只要调用用户中心的接口就可以了,不需要重新开发一个用户中心系统,当这样的能力复用的中心越来越多的时候,你创新出来的新的应用会越来越薄,越来越轻便,推出的越来越快。而且这样信息也是彼此互通的,一个用户听了音乐,买了商品,坐了公交,买了海鲜,上了在线课程,这样一个完整的用户的画像,就能够勾勒出来。
只有数据打通,数据才能成为你的核心竞争力之一,只有能力复用,才能尽快推出新的产品。
现在所谓的新零售,和第四方物流,都是要建立这样的数据中心和能力中心。最苦最累的活儿,比如说最终端的送快递,平台不会去做,然而物流怎么流通,到底送到哪里,仓储如何分配,这个却在能力中心和数据中心已完成。新零售也是同样的道理,你的供应链,到底应该进哪些货,进多少,什么时候送到哪里,这些统一的数据中心和能力中心都会帮你计算,你只要老老实实开你自己的小店就可以。这样,无论你是一个开店的,还是一个终端物流,你的喉咙就在别人的手中,苦活都是你来干,钞票都是别人赚。
八、数据架构趋势一:战略性的数据收集,整合,反馈使得公司成为AI时代牌桌上的竞争者的基础
对于数据的收集和数据的应用的频率和实时性,是互联网公司和传统公司的一大区别。很多传统的公司也有自己的运营平台,然而它的运营工作是从各个终端收集数据,然后用Excel表格进行整理,每两周做一次整合,写成报告,然后反馈给高层,高层根据这些报告,作出下一个阶段的运营策略,从而指导下一个阶段的运营。
这种运营方式在传统行业是没有问题的,然而对于互联网公司是不可能的。大家可能想象,对于一家电商来讲,618和双11是多么的重要,一年中大部分的营业额都是在这两天完成的,而最关键的就是凌晨过后的四个小时,在双11的凌晨的四个小时中,所有的运营都要在现场,他们看着大数据平台发出来的实时数据,需要迅速的推出营销策略,保证在这四个小时之内能够大卖,如果这四个小时完不成,很可能他一年的业绩指标就会完不成,这种实时性和灵敏度是传统行业无法想象的。
所以战略性的数据整合,是数字化运营的一个前提,所以说你的所有的终端的数据都要收集起来,这里面有交易的数据,可以存放在数据库里面,也有埋点的浏览的数据,可以放在日志库里面,另外还有客服的数据,也可以统一收集起来,放到大数据平台中,进行统一的分析,并通过BI实时反馈给运营。
今年有一个非常火的节目,就是罗永浩和罗振宇进行了九个小时的长谈,在这里面,罗永浩说了一个牌桌理论,就是他想从事最大的计算平台——手机,使得下一次浪潮的时候,先不说胜出,至少能上牌桌。这个理论同样适用于AI,先不谈AI时代的胜出问题,战略性的收集数据,实时的反馈数据,还能成为AI公司牌桌上的竞争者。
九、数据架构趋势二:人工智能虽然如火如荼,概念多,落地少,人工智能模型通用性差,试用范围小,需要场景化落地,通用人工智能任重道远。
人工智能主要经历了三个阶段,第一个阶段,我们称为专家系统阶段,希望专家能够把一些知识总结出来,告诉机器。但是知识这个事儿,一般人可能就做不来了,可能专家可以,比如语言领域的专家,或者财经领域的专家。语言领域和财经领域知识能不能表示成像数学公式一样稍微严格点呢?例如语言专家可能会总结出主谓宾定状补这些语法规则,主语后面一定是谓语,谓语后面一定是宾语,将这些总结出来,并严格表达出来不久行了吗?后来发现这个不行,太难总结了,语言表达千变万化。就拿主谓宾的例子,很多时候在口语里面就省略了谓语,别人问:你谁啊?我回答:我刘超。但是你不能规定在语音语义识别的时候,要求对着机器说标准的书面语,这样还是不够智能,就像罗永浩在一次演讲中说的那样,每次对着手机,用书面语说:请帮我呼叫某某某,这是一件很尴尬的事情。
人工智能这个阶段叫做专家系统。专家系统不易成功,一方面是知识比较难总结,另一方面总结出来的知识难以教给计算机。因为你自己还迷迷糊糊,似乎觉得有规律,就是说不出来,就怎么能够通过编程教给计算机呢?
于是人们想到,看来机器是和人完全不一样的物种,干脆让机器自己学习好了。机器怎么学习呢?既然机器的统计能力这么强,基于统计学习,一定能从大量的数字中发现一定的规律。
其实在娱乐圈有很好的一个例子,可见一斑。
有一位网友统计了知名歌手在大陆发行的 9 张专辑中 117 首歌曲的歌词,同一词语在一首歌出现只算一次,形容词、名词和动词的前十名如下表所示(词语后面的数字是出现的次数):
如果我们随便写一串数字,然后按照数位依次在形容词、名词和动词中取出一个词,连在一起会怎么样呢?
例如取圆周率3.1415926,对应的词语是:坚强,路,飞,自由,雨,埋,迷惘。稍微连接和润色一下:
坚强的孩子,
依然前行在路上,
张开翅膀飞向自由,
让雨水埋葬他的迷惘。
是不是有点感觉了?当然真正基于统计的学习算法比这个简单的统计复杂的多。
然而统计学习比较容易理解简单的相关性,例如一个词和另一个词总是一起出现,两个词应该有关系,而无法表达复杂的相关性,并且统计方法的公式往往非常复杂,为了简化计算,常常做出各种独立性的假设,来降低公式的计算难度,然而现实生活中,具有独立性的事件是相对较少的。
于是人类开始从机器的世界,反思人类的世界是怎么工作的。
人类的脑子里面不是存储着大量的规则,也不是记录着大量的统计数据,而是通过神经元的触发实现的,每个神经元有从其他神经元的输入,当接收到输入的时候,会产生一个输出来刺激其他的神经元,于是大量的神经元相互反应,最终形成各种输出的结果。例如当人们看到美女瞳孔放大,绝不是大脑根据身材比例进行规则判断,也不是将人生中看过的所有的美女都统计一遍,而是神经元从视网膜触发到大脑再回到瞳孔。在这个过程中,其实很难总结出每个神经元对最终的结果起到了哪些作用,反正就是起作用了。
于是人们开始用一个数学单元模拟神经元:
这个神经元有输入,有输出,输入和输出之间通过一个公式来表示,输入根据重要程度不同(权重),影响着输出。
于是将n个神经元通过像一张神经网络一样连接在一起,n这个数字可以很大很大,所有的神经元可以分成很多列,每一列很多个排列起来,每个神经元的对于输入的权重可以都不相同,从而每个神经元的公式也不相同。当人们从这张网络中输入一个东西的时候,希望输出一个对人类来讲正确的结果。例如上面的例子,输入一个写着2的图片,输出的列表里面第二个数字最大,其实从机器来讲,它既不知道输入的这个图片写的是2,也不知道输出的这一系列数字的意义,没关系,人知道意义就可以了。正如对于神经元来说,他们既不知道视网膜看到的是美女,也不知道瞳孔放大是为了看的清楚,反正看到美女,瞳孔放大了,就可以了。
对于任何一张神经网络,谁也不敢保证输入是2,输出一定是第二个数字最大,要保证这个结果,需要训练和学习。毕竟看到美女而瞳孔放大也是人类很多年进化的结果。学习的过程就是,输入大量的图片,如果结果不是想要的结果,则进行调整。如何调整呢,就是每个神经元的每个权重都向目标进行微调,由于神经元和权重实在是太多了,所以整张网络产生的结果很难表现出非此即彼的结果,而是向着结果微微的进步,最终能够达到目标结果。当然这些调整的策略还是非常有技巧的,需要算法的高手来仔细的调整。正如人类见到美女,瞳孔一开始没有放大到能看清楚,于是美女跟别人跑了,下次学习的结果是瞳孔放大一点点,而不是放大鼻孔。
听起来也没有那么有道理,但是的确能做到,就是这么任性。
神经网络的普遍性定理是这样说的,假设某个人给你某种复杂奇特的函数,f(x):
不管这个函数是什么样的,总会确保有个神经网络能够对任何可能的输入x,其值f(x)(或者某个能够准确的近似)是神经网络的输出。
如果在函数代表着规律,也意味着这个规律无论多么奇妙,多么不能理解,都是能通过大量的神经元,通过大量权重的调整,表示出来的。
这让我想到了经济学,于是比较容易理解了。
我们把每个神经元当成社会中从事经济活动的个体。于是神经网络相当于整个经济社会,每个神经元对于社会的输入,都有权重的调整,做出相应的输出,比如工资涨了,菜价也涨了,股票跌了,我应该怎么办,怎么花自己的钱。这里面没有规律么?肯定有,但是具体什么规律呢?却很难说清楚。
基于专家系统的经济属于计划经济,整个经济规律的表示不希望通过每个经济个体的独立决策表现出来,而是希望通过专家的高屋建瓴和远见卓识总结出来。专家永远不可能知道哪个城市的哪个街道缺少一个卖甜豆腐脑的。于是专家说应该产多少钢铁,产多少馒头,往往距离人民生活的真正需求有较大的差距,就算整个计划书写个几百页,也无法表达隐藏在人民生活中的小规律。
基于统计的宏观调控就靠谱的多了,每年统计局都会统计整个社会的就业率,通胀率,GDP等等指标,这些指标往往代表着很多的内在规律,虽然不能够精确表达,但是相对靠谱。然而基于统计的规律总结表达相对比较粗糙,比如经济学家看到这些统计数据可以总结出长期来看房价是涨还是跌,股票长期来看是涨还是跌,如果经济总体上扬,房价和股票应该都是涨的。但是基于统计数据,无法总结出股票,物价的微小波动规律。
基于神经网络的微观经济学才是对整个经济规律最最准确的表达,每个人对于从社会中的输入,进行各自的调整,并且调整同样会作为输入反馈到社会中。想象一下股市行情细微的波动曲线,正是每个独立的个体各自不断交易的结果,没有统一的规律可循。而每个人根据整个社会的输入进行独立决策,当某些因素经过多次训练,也会形成宏观上的统计性的规律,这也就是宏观经济学所能看到的。例如每次货币大量发行,最后房价都会上涨,多次训练后,人们也就都学会了。
网易将人工智能这个强大的技术,应用于反垃圾工作中,从网易1997年推出邮箱产品开始,我们的反垃圾技术就在不停的进化升级,并且成功应用到各个亿量级用户的产品线中,包括影音娱乐,游戏,社交,电商等产品线。比如网易新闻、博客相册、云音乐、云阅读、有道、BOBO、考拉、游戏等产品。总的来说,反垃圾技术在网易已经积累了19年的实践经验,一直在背后默默的为网易产品保驾护航。现在作为云平台的SaaS服务开放出来。
回顾网易反垃圾技术发展历程,大致上我们可以把他分为三个关键阶段,也基本对应着人工智能发展的三个时期:
第一阶段主要是依赖关键词,黑白名单和各种过滤器技术,来做一些内容的侦测和拦截,这也是最基础的阶段,受限于当时计算能力瓶颈以及算法理论的发展,第一阶段的技术也能勉强满足使用。
第二个阶段时,基于计算机行业里有一些更新的算法,比如说贝叶斯过滤(基于概率论的算法),一些肤色的识别,纹理的识别等等,这些比较优秀成熟的论文出来,我们可以基于这些算法做更好的特征匹配和技术改造,达到更优的反垃圾效果。
最后,随着人工智能算法的进步和计算机运算能力的突飞猛进,反垃圾技术进化到第三个阶段:大数据和人工智能的阶段。我们会用海量大数据做用户的行为分析,对用户做画像,评估用户是一个垃圾用户还是一个正常用户,增加用户体验更好的人机识别手段,以及对语义文本进行理解。还有基于人工智能的图像识别技术,更准确识别是否是色情图片,广告图片以及一些违禁品图片等等。
网易人工智能的第二个应用就是七鱼全智能云客服,也是从第一代的关键字匹配,到后来基于概率的NLP,和基于深度学习神经网络的第三代,逐渐发展到今天的。
AlphaGo事件,让人工智能开始如火如荼,我们发现很多领域都是这样子的,当大牛没有拿出相应的方案来讲,大部分都是干看着没有办法,自从TensorFlow出来,大大降低了机器学习和人工智能的门槛,所以说很多号称人工智能的公司开始冒了出来,这里面往往概念多,落地少,外延无限扩大。
其实目前深度学习形成的模型,适用范围非常小,通用性相对比较差,往往只能干某一件特殊的事情,例如我们如果有很多电商的数据,我们就可以用来做客服,但是客服性质的模型不能用来反垃圾,我们有很多邮箱反垃圾的数据,可以训练出检测垃圾数据的模型,但是这个模型就不能用于推荐音乐,所以通用的人工智能还任重道远,当前在工业界需要找到非常聚焦的场景化落地,才能让人工智能尽快应用起来。
了解 网易云 :
网易云官网:https://www.163yun.com/
新用户大礼包:https://www.163yun.com/gift
网易云社区:https://sq.163yun.com/