很久很久没有更新了,并不是我自己不想,确实是最近太忙了,不管是工作上还是生活上都很忙,唉,之前希望自己能够坚持写博客,没有坚持下来,最近这段时间也是,其实时间吧,能挤还是能挤出来的,但是好不容易挤出来一点时间,不是用来刷手机,就是用来看书了,因为买了一大堆的书也没时间看,后来想想,自己也不是总理,怎么会这么没时间呢?呵呵,其实嘛,还是懒。
最近工作上做了一些有意思的事情,虽然不是什么很高端,但是从头到尾都是自己在做,收获还是很多的,后续会写一些感受吧,而且之前的轮子系列也不会断掉,后面还是抽时间继续更新。
之前写过一篇搞机器学习要哪些技能
,感兴趣的可以再去看看这篇文章,今天这篇可以说是那篇的补充吧。
搞算法的朋友们,特别是最近很火爆的机器学习和深度学习,搞这些领域的朋友们,或者准备入坑的朋友们,搞算法离不开两个东西,一个是模型,一个是数据,模型和数据,究竟谁重要呢?而我们学习机器学习也好,学习深度学习也好,我们关注的是什么呢?我们遇到的最大的问题是什么?
高大上的模型选择综合征
学习各种模型,现在已然是机器学习的必备技能,同时也是面试的时候的必备大招,往往面试的时候都会问你,搞过SVM没有啊,深一点的SVM原理是什么啊,如何推导啊,梯度下降如何做啊,随机森林是个啥啊?诸如此类的问题,同时这也是目前很多培训机构重点培训的内容,大家买的各种相关的书籍,大多也是说的这些方面的东西,如果你能秒杀这些问题,那么恭喜你,基本可以去一个中大型互联网公司面试成为一名算法工程师了。
恩,好吧,先说结论,“然而并没有什么卵用”,虽然用了引号把结论引起来了,但我认为还是坚持这么认为,恩,如果你不信,我们来好好掰饬掰饬。
高大上的模型,谁都愿意深入的学习一下,掌握一个新的模型,然后把这个模型用到实际应用中,产生牛逼的效果,不枉算法研究员的称号。
从最开始的线性回归,逻辑回归,SVM,随机森林,到后来的决策树,朴素贝叶斯,以及现在火得不能再火的神经网络,卷积神经网络,什么CNN,RNN各种名词从各处冒出来,到阿法狗狂虐李世石,把机器学习和深度学习推到了一个神一样的高度,现在出去讲PPT,你没说你用深度学习,都不好意思跟人打招呼。
我相信很多准备入坑机器学习的朋友们,对上面我讲的模型都门清,随便拿一个出来都能详细的讲半天,而且有很多人是真的门清,是能一步一步推导出公式来的,看了很多书,学了很多培训机构的课程,也做了很多小实验,甚至可以把上述模型都可以手写裸代码出来,但我想告诉你的是,即便这样,你也还在门口徘徊。
为啥?我们来看看。
第一个问题就是,遇到一个实际情况,你用哪个模型?基本上现在的机器学习,都是个分类的问题,不管广告中的是点击率预估还是文本分类,垃圾邮件分析,图像识别,其实说到底都是个分类的问题,所以上面说的那些个模型也基本都是分类模型,那么实际情况中用什么模型呢?
我们看到各种书上介绍朴素贝叶斯的时候必然会提到垃圾邮件分类,仿佛这是垃圾邮件分类的标准模型,但为什么不用逻辑回归呢?这里你可以说是经验,因为大家都用贝叶斯方法来做垃圾邮件过滤,所以他的效果可能更好。但是在实际工程应用中可不是每个都有经验的,遇到一个新问题,用哪个模型呢?这个是你学习完各种高大上模型,推导完各种公式以后,还是很难解决的问题。就说垃圾邮件过滤这个,你觉得QQ邮箱的垃圾邮件过滤,Gmail的垃圾邮件过滤,是用的朴素贝叶斯?
即便通过牛逼的理论知识,选择了合适的模型,跑起了数据,得到了结果,但是结果并不令人满意,这时,你还能做什么呢?呵呵呵呵,调参数吧。
所以说,光从模型上来说,就牵扯到具体问题具体分析的情况,这还只是第一步,因为你无论理论多么强,无论怎么分析,确定一个合适的模型以后,希望能够通过这个模型有较好的产出,其实吧,并没有什么卵用。后面还有一座数据的大山需要你去攀登。
穷矮挫的数据清洗体力活
好了,说到数据了,其实从我自己的经验来看,数据工作才是真正见效的工作,我觉得吧,只要数据好,模型随便搞,也许有点偏激,但我还是坚持我的观点。
一般人做机器学习,搞深度学习,做算法,或者准备入坑的人,往往都忽视了数据清洗,认为那是打下手的数据工程师干的活,但其实这才是最最最重要的活,只有好的数据,才有好的结果,而数据的清洗,这是一个长期的,需要坚持不懈的,枯燥无趣的,技巧性很强的劳动。
其实这个道理很简单,机器学习之所以叫学习,其实是模拟了人学习的过程,数据就是课本,模型就是老师,你人来学一个东西,要是没有好的课本,有好老师有啥用,你拿着一本《毛泽东思想》给爱因斯坦,让他教教你近代物理学,爱因斯坦再牛逼,但你觉得你学得出来吗?但你拿着一本《费曼物理学讲义》找到一个普通的大学物理老师,虽然他远没爱因斯坦厉害,但一样可以让你学会物理。这就是数据的能力。
模型一共就那么多,主流的不超过20种吧,而且现在都神经网络,深度学习了。模型本身更加简洁了,怎么拼效果,其实就是拼数据。
最挫最有效的方式
最搓但是最有效的数据清洗方式是什么?那必须是人工标注了,让人工智能来给你机器编写学习的教材,没有比这更有效和直接的了,虽然看上去比较挫,但这是个高成本的投入,不是大公司是做不了这个的,这也是为什么大公司的机器学习产品效果好,不是每个公司都有钱养着几百人的团队,再带着几百人的实习生来做人工标注的。
举个例子,同样做图像识别,微信每天产生的几亿的图片数据,每天从里面选取10万张图片,假设腾讯有1000人的人工标注团队,每人每天只要标注100张,那一个月下来就有300万张高质量的人工标注的数据,使用同样的卷积神经网络模型,图像识别,图片鉴黄这种产品,不费什么力气就有比较好的效果,而你呢?就算找300万张图片摆在这都困难,呵呵。模型也是同样的模型,有啥用?
所以,有数据才是王道,哦,不,有数据又有钱才是王道。
工程师的方式
既然当不了土豪,为了效果好,那就只能安安稳稳修炼内功了,用工程师的方式来解决数据问题。
互联网数据基本上需要进行分析的都以日志数据为主,不管是点击数据还是浏览数据,都是海量的日志型数据,处理日志,如何清理无用数据,如何清除机器流量,去掉恶意点击,去掉重复数据,这个就没什么套路了,八仙过海,各显神通,能过去就能沉淀下有用的数据,过不去你怎么调模型也得不到想要的结果。
主流应用
最后,可能会得罪一批人吧,上面说了这么多机器学习的东西,你还是执意要入坑的话,是不是想好了要去哪些公司呢?来来来,我们来整理整理,看看成熟的,应用最多的,研究也最深入的机器学习都在干什么,再想想入不入坑吧:)
百度/搜狗/360/神马搜索,点击率预估,搜索排名让你点更多广告,淘宝,点击率预估,个性化推荐,用户画像让你点更多广告,腾讯,点击率预估让你点更多广告,今日头条,用户画像,推荐引擎让你点更多广告,京东,个性化推荐让你点更多广告,亚马逊,个性化推荐让你点更多商品(也是广告),facebook,用户画像让你点更多广告,谷歌,各种机器学习让你点更多广告,微博,个性化,用户画像让你点更多广告,各大门户的(搜狐汇算,新浪扶翼,有道智选)DSP平台,让你点更多广告,知乎,好像马上就要上自己的广告DSP平台了吧,微信是特例,随便搞个朋友圈广告就可以让全国网民high起来去点赞,去评论,还没必要上机器学习吧。
所以,机器学习 == 让你点广告,你是不是觉得很心塞?
如果你觉得不错,欢迎转发给更多人看到,也欢迎关注我的公众号,主要聊聊搜索,推荐,广告技术,还有瞎扯。。文章会在这里首先发出来:)扫描或者搜索微信号XJJ267或者搜索西加加语言就行