“网易猛犸”与“网易有数”两大数据分析平台就是在这个阶段逐渐成型的。
网易猛犸大数据平台可以实现从各种不同数据源提取数据,同步到内核存储系统,同时对外提供便捷的操作体验。现在每天约有130亿条数据进入网易猛犸平台,经过数据建模和清洗,进行数据分析预测。
网易的另一大数据分析平台,网易有数则可以极大简化数据探索,提高数据可视化方面的效率,提供灵活报表制作等,以帮助分析师专注于自己的工作内容。
有了大数据平台,对于数据的处理和搜索已经没有问题了,搜索引擎着实火了一阵,当很多人觉得搜索引擎能够一下子帮助用户搜出自己想要的东西的时候,还是非常的开心的。
但是过了一阵人们就不满足于信息仅仅被搜索出来了。信息的搜索还是一个人需要适应机器的思维的过程,要想搜到想要的信息,有时候需要懂得一些搜索或者分词的技巧。机器还是没有那么懂人。什么时候机器能够像人一样懂人呢,我告诉机器我想要什么,机器就会像人一样的体会,并且做出人一样的反馈,多好啊。
这个思想已经不是一天两天了,在云计算还不十分兴起的时候,人们就有了这样的想法。那怎么做的这件事情呢?
人们首先想到的是,人类的思维方式有固有的规律在里面,如果我们能够将这种规律表达出来,告诉机器,机器不就能理解人了吗?
人们首先想到的是告诉计算机人类的推理能力,在这个阶段,人们慢慢的能够让机器来证明数学公式了,多么令人欣喜的过程啊。然而,数学公式表达相对严谨的,推理的过程也是相对严谨,所以比较容易总结出严格个规律来。然而一旦涉及到没有办法那么严谨的方面,比如财经领域,比如语言理解领域,就难以总结出严格的规律来了。
看来仅仅告知机器如何推理还不够,还需要告诉机器很多很多的知识,很多知识是有领域的,所以一般人做不来,专家可以,如果我们请财经领域的专家或者语言领域的专家来总结规律,并且将规律相对严格的表达出来,然后告知机器不就可以了么?所以诞生了一大批专家系统。然而专家系统遭遇的瓶颈是,由人来把知识总结出来再教给计算机是相当困难的,即便这个人是专家。
于是人们想到,看来机器是和人完全不一样的物种,干脆让机器自己学习好了。机器怎么学习呢?既然机器的统计能力这么强,基于统计学习,一定能从大量的数字中发现一定的规律。
其实在娱乐圈有很好的一个例子,可见一斑
有一位网友统计了知名歌手在大陆发行的 9 张专辑中 117 首歌曲的歌词,同一词语在一首歌出现只算一次,形容词、名词和动词的前十名如下表所示(词语后面的数字是出现的次数):
如果我们随便写一串数字,然后按照数位依次在形容词、名词和动词中取出一个词,连在一起会怎么样呢?
例如取圆周率 3.1415926,对应的词语是:坚强,路,飞,自由,雨,埋,迷惘。稍微连接和润色一下:
坚强的孩子,
依然前行在路上,
张开翅膀飞向自由,
让雨水埋葬他的迷惘。
是不是有点感觉了?当然真正基于统计的学习算法比这个简单的统计复杂的多。
然而统计学习比较容易理解简单的相关性,例如一个词和另一个词总是一起出现,两个词应该有关系,而无法表达复杂的相关性,并且统计方法的公式往往非常复杂,为了简化计算,常常做出各种独立性的假设,来降低公式的计算难度,然而现实生活中,具有独立性的事件是相对较少的。
于是人类开始从机器的世界,反思人类的世界是怎么工作的。
人类的脑子里面不是存储着大量的规则,也不是记录着大量的统计数据,而是通过神经元的触发实现的,每个神经元有从其他神经元的输入,当接收到输入的时候,会产生一个输出来刺激其他的神经元,于是大量的神经元相互反应,最终形成各种输出的结果。例如当人们看到美女瞳孔放大,绝不是大脑根据身材比例进行规则判断,也不是将人生中看过的所有的美女都统计一遍,而是神经元从视网膜触发到大脑再回到瞳孔。在这个过程中,其实很难总结出每个神经元对最终的结果起到了哪些作用,反正就是起作用了。
于是人们开始用一个数学单元模拟神经元
这个神经元有输入,有输出,输入和输出之间通过一个公式来表示,输入根据重要程度不同(权重),影响着输出。
于是将n个神经元通过像一张神经网络一样连接在一起,n这个数字可以很大很大,所有的神经元可以分成很多列,每一列很多个排列起来,每个神经元的对于输入的权重可以都不相同,从而每个神经元的公式也不相同。当人们从这张网络中输入一个东西的时候,希望输出一个对人类来讲正确的结果。例如上面的例子,输入一个写着2的图片,输出的列表里面第二个数字最大,其实从机器来讲,它既不知道输入的这个图片写的是2,也不知道输出的这一系列数字的意义,没关系,人知道意义就可以了。正如对于神经元来说,他们既不知道视网膜看到的是美女,也不知道瞳孔放大是为了看的清楚,反正看到美女,瞳孔放大了,就可以了。
对于任何一张神经网络,谁也不敢保证输入是2,输出一定是第二个数字最大,要保证这个结果,需要训练和学习。毕竟看到美女而瞳孔放大也是人类很多年进化的结果。学习的过程就是,输入大量的图片,如果结果不是想要的结果,则进行调整。如何调整呢,就是每个神经元的每个权重都向目标进行微调,由于神经元和权重实在是太多了,所以整张网络产生的结果很难表现出非此即彼的结果,而是向着结果微微的进步,最终能够达到目标结果。当然这些调整的策略还是非常有技巧的,需要算法的高手来仔细的调整。正如人类见到美女,瞳孔一开始没有放大到能看清楚,于是美女跟别人跑了,下次学习的结果是瞳孔放大一点点,而不是放大鼻孔。
听起来也没有那么有道理,但是的确能做到,就是这么任性。
神经网络的普遍性定理是这样说的,假设某个人给你某种复杂奇特的函数,f(x):
不管这个函数是什么样的,总会确保有个神经网络能够对任何可能的输入x,其值f(x)(或者某个能够准确的近似)是神经网络的输出。
如果在函数代表着规律,也意味着这个规律无论多么奇妙,多么不能理解,都是能通过大量的神经元,通过大量权重的调整,表示出来的。
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。