除了人工智能和大数据,算法多是被程序员们谈论最多的技能。python
2019年校招,尽管不少一线大厂都缩减了编制,但算法工程师们再次一骑绝尘,阿里、腾讯、字节跳动等企业动不动就年薪百万,刚毕业就送股票,让一众开发岗们内心都十分不平衡。程序员
近年来随着人工智能与大数据的发展和普及,特别是今日头条、抖音的崛起,让人们清醒得认识到推荐算法或者说算法的力量。这一新颖的职业,当前市场存在巨大的人才缺口,不断涌入的算法工程师知足不了HR小姐姐们日益增加的人才需求。一名基础扎实的、业务经验丰富的算法工程师是多少企业求之不得的。面试
今天,菜鸟窝邀请到在机器学习工程师VIP就业班级负责〖深度学习〗以及〖算法工程〗、大数据vip班负责〖spark mllib〗以及〖推荐系统实战〗的Chris老师。Chris老师拥有丰富的一线大厂算法经验,熟悉智能算法、数据智能、机器学习/深度学习算法落地,对数据系统架构、业务场景建模等拥有丰富的经验,业务领域涵盖天然语言处理(NLP)、计算机视觉(CV)、知识图谱(知识推理)、序列建模等。算法
Chris老师目前任职于阿里,他是模式识别出身的科班硕士,公司里负责培训新员工的“老人”,但即便如此,他也会安排日均2小时来学习,在人工智能、数据科学领域技术突飞猛进的今天,Chris老师属于走在新技术前沿的那批人,追顶会(顶级学术会议)多是他最热爱的一项运动。网络
Chris老师将算法工程师分为两类:第一类是能实际解决业务场景中问题的算法工程师,第二类是能依据当前企业的发展战略,创新性的开展算法工做。在这两类中,他偏心第一种——运用算法的力量,将数据创造出价值的工做。而相对于工程的严谨,Chris老师老是在追逐更加有趣。数据结构
Chris老师:您好,你们好。我是chris,求学期间主要研究方向是模式识别。职业生涯开始于某上市游戏发行企业,从数据挖掘算法在业务线落地开始,涉及机器学习、深度学习,后来逐步负责整个算法团队建设。在团队发展过程当中,也同步负责一些数据架构方面工做。架构
后来加入BAT,也是负责算法方面工做,涉及到的领域涵盖CV、NLP、网络发现等。带过的项目不少,基本能覆盖广告、运营、客服、风控各个方面。机器学习
Chris老师:最开始也是行业内朋友的推荐,后来猎头联系了屡次后,根据自身的规划,选择进入BAT去接触更多的东西。分布式
对于自身而言的话,主要是专业基础和对前沿的坚持关注吧。作好项目的前提下,不断巩固知识基础,保持对前沿发展的敏感性(其实就是得坚持追顶会)。持续学习的过程挺枯燥,在工做之余,天天会用两小时左右的时间去读论文,而后每个月最少会挑一项基础知识进行专攻和巩固。很难很累,可是收获到知识的心情很愉快。工具
Chris老师:加入菜鸟窝主要是考虑到两个方面,第一个方面是工做多年发现确实当前行业还存在很大需求,和小伙伴们一块儿攻克项目的时候但愿团队能更加具备数据科学思惟,因此想把自身总结的一些数据科学方法论表达出来。
第二个方面是但愿能经过和你们的交流互动,为你们提供一些数据科学领域的工做经验。由于以前在企业也是会做为讲师负责对新入职的小伙伴进行长达两个月的算法基础、工做技能的培训。因此在构建知识体系、快速融入工做方面比较有经验。在这里但愿与你们共同成长,达到共赢。
Chris老师:主要是兴趣,大概是小学一年级就开始接触计算机,不出意外的也是走CS求学路线。兴趣确实是最好的老师,求学期间虽然专业课特别多且比较晦涩,可是兴趣支撑着本身去探索、去学习,国家级的奖学金、国家级的比赛也能顺其天然的拿到。获得丰富收获后,更大的激发了兴趣,成为源源不断的动力。
在选择硕士方向时,结合当时的各方信息,我的认为数据科学会在将来的30~50年蓬勃发展。因此选择当时没多少人选的模式识别,从今天回头来看,当时的见解还算基本正确。因此,眼界和选择有时候真的很是重要。
Chris老师:严格来讲,当前对于数据科学领域确实没有一个权威的定义和划分方法。我们大数据开发工程师能“玩”转算法,那固然是再好不过的一件事情了。
我的对于算法的理解,由于工做经历过不一样角色,因此能够从两种不一样身份来谈。
站在数据开发工程师的角度来讲:算法是数据工程中的一个部分,数据工程最终的目的是确保项目产出的数据结果是可用的、可信的。用关联分析来举例,假设咱们构建了某个超市的数据体系,须要产出每个月的各个商品销量数据。那么咱们从数据采集、数据传输、数据处理、数据加工等等一系列的工程手段,都是为了保证最终产出的数据是可信的。若是说咱们加一个关联分析算法模块,不只每个月产出销量数据,还附带给出商品之间同时被销售的关系,那么咱们就说提供了一份可用的数据,由于超市老板下个月就能调整商品的摆放,提升本身的收入。至于说关联分析的原理,选用哪一种关联分析算法?咱们做为数据开发工程师,会依据当前业务场景的数据量级、数据质量、工程预算来考虑。
站在算法研究工程师的角度来讲:算法是提升效率和解决问题的思惟方式最终产出的结果。最先人们结绳记事,由于没那么大数据量须要计算,随着现代社会信息化发展,信息过载的状况已经出现了好久。而出于生理的限制,咱们能接受到的信息量是有限的,这时就须要算法来帮助咱们作信息筛选了。举例来讲,一个班只有10我的,成绩要从高到低排名,那我们自个儿捣鼓一下也就算了,可是放在全国14亿人要排名,这就得有更加高效的排序“算法”来提供帮助了。一样的,咱们要把一碗红豆和绿豆分开,大不了我们挑一个小时,那若是是100吨混在一块儿的红豆绿豆呢?这时,CV(计算机视觉)和相关的视觉算法就会应运而生。
总而言之,算法不是“玄学”,更加不是靠术语名词堆砌起来的壁垒,它无处不在,只须要咱们沉下心来探索与发现。
Chris老师:人工智能领域的算法种类繁多,工做中主要涉及到的是数据挖掘、NLP(天然语言处理)、CV(计算机视觉)、网络发现方面的算法。从数据量级上来看,基本上工做中涉及到的算法由于业务场景的缘由,都基于分布式存储和分布式计算这两大技术领域。
从我的而言,大数据技术例如hadoop、spark等,都是数据科学中的一系列思惟方法,它们的出现都是为了解决当时经过现有技术没法处理的数据难题。用词频统计来举例,一万篇文档咱们会调整单节点的程序采用更高效的内存管理算法来解决。那100亿篇文档,单节点已经没法在可接受的时间成本下知足要求了,理所固然咱们会采用分布式存储和计算技术。随之而来的,就是底层数据结构的构建方式不一样、计算工做流不一样等一系列的差别化问题。对于算法来讲,单节点的计算实现方法,和分布式计算的实现方法确定也会随之出现区别,可是,算法的理念不会太大改变,它的原理不会太大改变。
结合算法和大数据工程技术来讲,实际工做中大数据开发工程师最好能懂算法应用场景,算法工程师最好能懂大数据存储和计算的技术常识。这样的团队会具备更大的战斗力。
Chris老师:在大数据vip课程系列课程中,我主要负责spark mllib和推荐系统实战两个方面。但愿能给你们带来以下收获。对于spark mllib,核心的目标是让你们了解基本的算法应用场景,掌握如何与算法工程师一块儿开展数据工做。具体来讲是:
①掌握mllib中各个模块的做用和应用场景:以实际例子的方式,讲解算法工做中数据处理、特征工程、模型训练、评估、更新等过程所使用的模块。
②了解mllib中所提供的算法的基本概念和应用场景:从分类和聚类两方面介绍算法应用场景和基本原理,须要你们能理解和结合实际生产场景运用算法解决业务问题。
③掌握spark mllib工做流:工程实际的开发工做流程,如何与算法工程师进行协做,如何架构数据流。
对于推荐系统实战,核心目标是经过实际业务场景中的项目,使得你们掌握用推荐系统的基本原理和选型方法。具体来讲是:
①了解推荐系统的概念:从需求方(领导和一线)、技术方(架构和开发)角度出发,详解推荐系统的意义和各方需求。
②掌握推荐系统在业务中的不一样使用场景:在运营、客服、广告等不一样业务线的角度,推荐系统的做用和设计结构的异同点。
③掌握推荐系统在不一样场景下的技术组件选型方法:根据不一样的数据源、数据量、业务场景,将会在推荐系统的各个模块中选用不一样的技术组件
④实际开发一个业务场景中的推荐系统:预设一个完整的业务场景,使用脱敏数据彻底开发一套最小可行的推荐系统。
⑤理解实际工做中的问题:经过讲解和你们主动思考,理解实际工做中用推荐统会面临的问题,同时了解面试常见问题。
总体而言,会和系列中其余分布式存储与计算技术的工程性有所区别,会稍微偏向概念和应用场景解析。核心就是为了让你们更具备竞争力,当业务出现问题场景,不只是个项目,同时也是我的展示自身价值的机会。机会出现之时,我们能多一种武器(算法),就对抓住机会多一分把握。
Chris老师:若是是对于算法感兴趣,而后又怕本身是半路出家跟不上节奏。我推荐的学习方法是先读最前沿的顶会论文,看某个领域最新的成果,一开始读不懂是正常的,把每一个读不懂的知识点去查清楚,去掌握所需的数学工具。反复这个过程,直到本身能读懂,最少是能理解最新论文是在讨论什么的程度。那么我们就算在这一个细分领域里入门了。
对于工具,首先确定是信息的来源,推荐你们从顶会论文和arxiv.org获取最新的成果信息。基础数学知识和专业知识能够来自各大学校的公开课。
可是对于实际工做中的问题,最好是能有“导师”这样的角色来全程帮助。由于基础的知识大部分咱们能自学,而实际工做环境中的问题并非经过教程能碰见的,毕竟“真传一句话,假传万卷书”。天然科学知识量极其庞大,导师不只会提供学习方向的指导,最重要的是能提纲挈领的给出工厂建议,能少走不少弯路。
固然,必定要多总结概括本身的知识体系,毕竟真正武装本身的不是手里的工具,而是思惟的工具。
在任何领域里,学习一门新技术最难的永远不是基础的知识,而是在工程实践中,发现问题和解决的思惟方式和技巧。不管是算法/机器学习的阿里Chris老师,仍是负责python数据分析的百度数据挖掘专家@熊猫酱的,仍是机器学习的15年计算机视觉经验的tant老师,都是经过本身多年在一线领域的业务实践,总结出的一套学习方法教给咱们。