算法工程师:你的一切皆在我计算中
购物网站用算法为你推荐喜欢的商品,打车软件用算法帮你选择最佳路线,信息平台用算法为你推荐阅读新闻……算法在无形当中影响着我们生活的方方面面。
那么,算法工程师是怎样的一种存在?他们的日常工作是怎样的?算法工程师严津(化名)讲述了这个外界看来高大上又略带神秘感的工作,他每天的工作是优化算法,他感觉工作有激情。他说,还可能用算法预测股票和房价或实现智能家居的控制。
从去年7月开始,他开始培训一位零基础的高中同学,努力将其训练为合格的算法工程师。最近他们二人就目前火热的知识竞答用算法搞了一点事情:做了一个程序,每次答题基本都能在5秒钟之内得到答案。
文/广州日报全媒体记者李 华
严津(化名)从中科院毕业时,手上拿到多个offer,但是他选择了从事前沿的人工智能和机器学习相关的工作——算法工程师,年薪30万元左右。
攻克难关没有捷径
你是中科院硕士毕业生,你的网络ID旁标注了“数学~数学~数学~”,你学的是数学专业吗?
严津:不是数学专业,学的是计算机专业,不过研究生(专业)对数学要求比较高。
你是如何开始学习机器学习的?在学校时,你对算法的认识如何?想到以后会成为算法工程师吗?
严津:研一时学过一些机器学习的课程。在学校的时候需要参加一些科研项目和发表论文,当时自己研究了一些机器学习的东西。在学校的时候,对算法有一些认识,如果没有认识也做不了项目,论文也发表不了。我们研三上学期开始找工作,当时还是比较坚定要成为一位算法工程师。我是当年9月结束找工作,没有参加校招,通过内推找到工作。
你现在成为算法工程师,在过去的学习经历中,你掌握的哪些学科或技能帮助特别大?
严津:最有用的学科是计算机和数学。有计算机的知识才能把算法落地实现,数学能帮助优化算法。
遇到的技术上挑战是编程会遇到一些bug(漏洞);数学方面可能有一些公式需要用到一些高数、线性代数、概率统计方面的知识,这还是难看懂的;还有就是英语难关,无论从开始阅读到后来写(代码)都是比较困难的。
克服这些难关没有捷径,基本上是自己去研究,一步一个脚印去啃,其实大家都是这样。
你毕业后拿到了N个offer,你是如何打动这些公司的?
严津:校招的面试有一些套路,问的问题不多,基本是那些。不同公司只面试同一个岗位,问题都差不多,只要把这些问题研究透了,还是能找到工作的。不过整个过程还是蛮辛苦的。
模拟人脑解决问题
如今,严津在北京众多互联网公司聚集的后厂村路的某公司从事算法推荐工作,他每天专注于优化算法,他感觉每天都很有激情。在他看来,算法无处不在:语音识别、自动驾驶、推荐(购物、新闻)……算法在无形当中影响着我们的生活。
你目前的算法工程师岗位主要负责什么业务?现在算法工程师是当下热门的职业,你是如何看待这个职业的?
严津:我是负责推荐算法。这个职业非常有趣、有前景,也非常有意义。每天很有工作热情。以前工业革命解决的问题可能是通过发明一些机械去改变人的手脚(功能),比如汽车改变脚;然而现在算法工程师解决的问题大部分都是用机器模拟人的脑力劳动,比如人工智能、机器学习,它分析数据(图片、文字、语音等),(分析过程)你可以想象是人眼、耳朵接收到信息,然后通过算法、人工智能引擎去模拟人脑去做一些处理,从而来解决一些简单或复杂的脑力活动。
广州日报:在你看来,现在我们生活中的哪些场合会使用算法?你做的项目跟我们现在的哪些生活方面有关?如何影响我们的生活?
严津:如上所说,既然它是模拟人脑,你可以让所有场景使用算法这个东西,因为毕竟生活也是通过人脑处理这些内容。比如语音识别、自动驾驶、推荐,这些都在用算法。比如推荐领域,以前的新闻是编辑推荐,编辑觉得好,推荐给大家看,现在算法推荐可以发现那些原来不受到重视的销量小但种类多的产品或服务,可以通过兴趣推荐,更多是考虑到用户的反馈,包括用户的点击和其他行为,这更民主。
你日常的一天的工作内容如何?平时更多的是跟算法、机器打交道你感觉如何?有什么发生在人机间令你印象深刻的事?
严津:日常的工作是优化一些算法,我感觉挺好的,可以学习到一些知识、解决一些问题和服务用户,感觉比较有激情。
印象深刻的是有一次,我调用了一个手写识别的API(应用程序编程接口),当时让一个同事体验我做的东西,他写了一个字,我都没认出来,但是机器却能正确识别,当时感觉非常惊艳,机器可能比人更了解你的意图。
算法在迎合人们
每一次的购买行为、阅读行为、打车行为,算法都在学习如何更了解我们,通过学习算法变得更加聪明,更加了解我们的需求。严津说,算法需要价值观,毕竟现阶段的算法还不成熟,还需要人工干预。
广州日报:就在前几天,今日头条公布了它的算法原理,作为算法工程师,你如何看待此事?算法用以分发信息,是否需要具有价值观?
严津:这确实是一个比较好的事情,以前是黑箱的,大家不清楚它的工作原理,可能会恐惧这个东西。现在公布了后,大家至少有一个了解,这是挺不错的。
算法需要价值观,因为算法大部分是通过数值衡量,这对一些量化的东西才能有效。但有一些东西确实很难衡量,此时还是需要一些人为干预,毕竟现在算法还不是完全的成熟。
广州日报:如今打车、社交、购物等,人们生活的方方面面都被算法影响,算法是如何变得聪明更加了解人的需求呢?算法是在迎合人们吗?
严津:算法是在迎合人们。算法有一个优化目标,往往是通过用户的一些数据指标来衡量,比如说,提高一些用户量、提高用户的停留时长以及提高一些点击量等这些维度,这些东西是在迎合人类。
算法怎么变聪明呢?比如现在算法有一个目标了,它里面会用到一些数学的优化方法,然后通过数据训练得到一个更好的决策模型,通过这个流程变得聪明、更了解人的需求。
现在大家每天都在消费信息,很多平台都在使用算法推荐新闻,你从算法工程师的角度观察,大家是否也会受困于过滤气泡?作为算法工程师是否有能力改变这样的现状?
严津:感觉是存在过滤气泡(指的是计算机记录互联网受众在网上搜索、浏览等留下的痕迹,根据这些线索,计算机推断出受众的信息偏好,进而依据自身判断来向受众进一步推送相关信息,以此实现受众的信息个性化定制,保证用户的黏性)这个问题。其实改变这个现状,可以通过数值量化解决问题,如果一旦把它变成一个数学问题基本上可以解决。
人人能成算法工程师
严津的一位高中同学从事的是机务工作,对这份工作不甚满意。严津决定挑战一下,用一年(2017年7月~2018年7月)的业余时间,将零基础的小机务努力培养成为一个合格的算法工程师,目前的进展超出预期。
为什么决定将零基础的小机务培养成为一个合格的算法工程师?目前实验进展如何?在培养他的过程中,最难的部分是什么?
严津:我个人比较喜欢王兴(美团网创始人),想像他那样做有趣、有意义、有利的事情,当时我跟小机务也想做一件这样的事。但个人能力有限,当时也没有想到特别好的其它事情,(刚好)小机务对当前的工作也不是特别满意,然后我就想能不能把他这样一个零基础的小机务培养成一个算法工程师。
目前培训过程进行了半年,感觉大家还是比较乐在其中,进程超出预期。小机务已经能够实现一些基本的算法,调用算法基本没问题,优化算法也基本没问题,一些数学公式的推导也能实现,编程也有很大进步。最难的部分是刚开始时数学、编程的入门比较困难,但突破以后还是比较顺利的。
你觉得人人都能成为算法工程师吗?普通人想成为算法工程师需要什么技能和思维方式?
严津:我觉得人人都能成为算法工程师。从去年到现在,(训练)同学的流程没有想象中那么难,你只要按照一个正确的路径,少走很多弯路,还是可以成为算法工程师。现在有很多让不太懂算法的人也能用的算法工具,它的门槛并不高,比如微软前段时间发布了相关的工具。
成为算法工程师需要逻辑思维,技能方面需要具备编程基础和一些数学基础,其实并没有想象中那么难。
成为算法工程师,主要需要具备哪些技能?
严津:1.完成机器学习基础的学习。机器学习方面的知识是算法工程师区别于普通程序员的核心,这部分要重点掌握。
2.刷题。要刷完《剑指offer》这本书,大概50题,最后可以手写代码,并进行一些基本的逻辑训练。
3.完成基础语言的学习。
4.计算机基础训练。
在日常生活中,你会运用算法做些什么事,让你的生活变得更有趣?
严津:会做很多,比如可以用算法去预测股票和房价,这都可以试着去做,还可以做一些像智能家居的控制。另外我们会参加一些算法的比赛,在比赛过程中也是非常有意思的。
目前你的年薪是30万元,你对现在的工作内容和报酬满意吗?未来算法工程师的前景如何?
严津:这个工资其实是比较正常的,基本是算法工程师的平均水平。算法工程师的前景是非常好的,我觉得算法能应用到各方面解决核心问题,你看每年校招的(算法工程师)工资是越来越高,从这也能知道它前景火爆。