龙空技术网

从清华到阿里,他只用6年时间,影响了数亿用户

阿里云开发者 274

前言:

眼前我们对“阿里资深算法工程师”大致比较讲究,同学们都需要分析一些“阿里资深算法工程师”的相关内容。那么小编同时在网络上网罗了一些有关“阿里资深算法工程师””的相关内容,希望咱们能喜欢,朋友们一起来学习一下吧!

“阿里技术直播”,是专为技术人量身制作的视频直播节目,旨在分享行业前沿趋势、技术干货和技术人生。今天为大家送上阿里资深算法专家靖世的精彩直播内容。

阿里资深算法专家靖世直播实录

大家好,我名字叫盖坤,在阿里花名叫靖世。之前在清华大学读的本科跟博士,专业是机器学习跟人工智能。毕业之后一直在阿里巴巴做广告算法,现在在阿里妈妈负责竞争展示广告技术,做的工作包括广告算法,广告算法里面包括匹配算法、预估模型、排序算法,也包括广告工程部分。还有其它相关跟人工智能相关的部分,包括机器学习平台,包括计算机视觉里面有图象识别等等,也包括NLP的一些技术。

今天我的分享有三个部分的内容,希望对大家有用。

1、从找工作的时候选择阿里巴巴,到工作六年来一路走过来的历程跟体会。

2、做AI背后的想法,在AI上取得的一些成果和背后的思考。

3、最后会建议一下大家在面试阿里之前应该准备哪些内容。

缘起阿里:研究与应用有了完美交叉点

先说一下跟阿里巴巴的一个开始。其实我在学生的时候,是做机器学习和计算机视觉,也发了一些国际的会议跟期刊的论文。在毕业的时候,我有一个,或者说在学生的时候我有一个愿望就是希望自己做的东西不但是以论文的形式分享给别人,而且希望能够对于这个世界产生更大的作用。所以当时就希望能够去找一个研究跟应用结合比较好的一个地方。刚开始的目标主要是集中在一些外企的研究院上,当时也聊了一些研究院。

跟阿里巴巴缘分的开始也是一个机缘巧合,之前清华同学经常上的论坛叫水木社区,当时叫水木清华,我在那里的AI版上发现有一个人发了帖子说阿里巴巴要做大规模的机器学习系统,这里面有很多挑战。我当时也是晚上很晚的时候回了一封私信,当时也没多想,而且在学生的时候,说实话有晚上玩游戏的习惯,然后回了之后就玩游戏到两三点,睡得比较晚。结果第二天一早八九点就被阿里巴巴的HR叫醒去面试,这是跟阿里的缘分的开始。

拿到阿里的Offer之后,其实也是思考了很多,纠结了很久,最后选择阿里巴巴,是因为觉得阿里巴巴其实在中国零售的业务上,也是蓬勃发展,业务前景非常好。第二个做机器学习可能最看中的就是数据,阿里巴巴有一个围绕零售的消费者的,从逛到买,再到买之后的后续行为的一个完整的类目数据。

这个类目数据上用人工智能的方法可以做很多事情,有很多可能性,所以会觉得人工智能在阿里巴巴会特别有空间。还有最后一个点,当时也是跟阿里的同学聊了很多,会觉得阿里里面不管团队还是各方面,其实也都说对研究会比较看中,也会在应用之余鼓励做研究的事情,包括鼓励大家去出一些研究的成果。所以当时会觉得就是:

1,业务的应用前景非常的广阔;

2,研究跟应用可以做一些结合。

当时基于这两个考虑选择了阿里巴巴。

我分享一下在阿里巴巴一路走过来的经历,包括其中涉及到一些做的事情,希望给大家一些参考,最后再做个阶段性的总结,想做得更成功的话,应该具备哪些特质。

阿里6年经历:从沉寂半年到连续提升2个10%、每天影响上亿用户

我进阿里巴巴之后,其实前半年的感觉就是自己什么都不会,然后其实进了实际的业务,实际的数据,虽然之前学了很多的机器学习相关的知识,然后发现这些知识可能跟业务跟实际的数据还不能很好的结合在一起。所以前半年其实是一个沉入到业务,沉入到数据,而且是一个相对来讲比较平淡跟寂寞的时间。但后来我会发现,其实必须得沉入到实际的业务,实际的数据里面才有可能做出一些不一样的东西,这个过程是必须经历的,这是很多在实际工作人的一个体会。

但是这半年说实话,虽然可能没有做出惊天动地的事情,但是这里面有一件事情,其实一直在思考。其实在我加入阿里巴巴的时候,当时是机器学习在广告,在CTR预估系统里面开始大规模的使用,然后国内的各个公司也开始建立团队研发这一块。这一块也可以认为是这几年国内的主流业界的公司在机器学习去投入大量的资源的一个开始。

因为大家可能也都知道,整个互联网行业里面,现在收入最大的两个板块:一个是广告,一个是游戏。广告应该是比游戏还要靠前,而且不是所有的公司,包括大公司都做游戏的,大部分公司的支柱收入其实是广告。对于各个公司这么重要的一个业务,背后其实点击率预估是对广告主,浏览者,平台收入,做好了的话是一个三赢的事情,所以各个公司都投入非常多的资源来做这一块。

所以这一块是机器学习可能第一次非常大规模,而且在实际的大业务中起非常核心作用的一个契机,这也是近年来的一个起点。机器学习在后面,在更多的业务里面去发挥更大的作用,这是后面的事了。

在点击率预估里面,当时有一个经典的做法就是叫大规模的特征加上一个简单的线性模型、逻辑回归的一个做法,这个做法简单说一下怎么理解呢?就是其实那时候大规模特征是一种叫ID特征的一种形式。比如,我们假设说现在中国有13亿人,我们有13亿用户。我们一定要用一个向量,有Sample有Label的概念,用一个向量,用样本来表示它。这个样本里面特征怎么办呢?我有13亿用户,我就用13亿的系数向量来表示这个用户,然后13亿维,这个样本对应哪个用户就是在哪一个维度上标记为1,其它维度都为1,是一个非常大规模的一个稀疏的一个表示。

其实用户可以这么表示,商品可以这么表示,所有的信息基本上都可以One hot的编码来表示。所以,其实连续的一些统计值或者连续的一些值也可以做一些离散化,把它变成哪个区段的,继续用One hot来表示,我们会把大量的信息用One hot编码或者用ID特征表示方法来把它给变成规模非常庞大的特征,特征维度也特别大,这可能是没接触过工业界实际的,比如说CTR预估系统的同学可能之前不太知道的一个概念,就是为什么工业界需要这么大量的特征。

这样的特征用简单的逻辑回归来做的话,其中有一个问题,当然这里面挑战也很大,有两个挑战:

1,样本量特别大,特征维度特别大。

样本量特别大什么意思?比如说点击率预估,那我们的Sample,就是用户的历史行为,如果用户看了没点,这就是Label是0,就是负样本;如果看了又点了,这个样本就是一个正样本。其实你每天看大量的东西,大量的用户在网站上浏览,所以我们有非常多的样本。第二个特征维度特别大。所以对逻辑回归来讲的话,一个挑战就是如何能支撑这么大的样本和这么高的维度,这是第一个挑战。然后这里面会涉及到大量的机器学习的并行算法相关的东西。

2,正则化,怎么理解?

就是逻辑回归一般来讲会跟一个L1范数一起来使用,它其实背后有两个目的,第一个目的就是这么大量的特征的化很容易发生过拟合,所以我要用一种方法,在机器学习里面是非常经典的方法,正则化的方法去来抑制过拟合,让这个模型能够在未来的使用的场合里面表现比较好。过拟合的意思就是我只记住了那些已见过的东西,但是对未来新的东西其实预测能力并不好。

第二个其实就是这个特征库特别大的时候,我们在离线做训练的时候也许能够承受这么大规模的特征,但是我们在在线预测的时候,我们希望性能尽量的好。所以我们希望训练的时候做一些特征选择,这么多的特征是不是全需要?很有可能我们其实只需要其中的一小部分。能不能让模型在训练的时候自动做这件事,这就是正则化的一个方法。那加上正则化的方法也是会给整个优化问题带来一些挑战,这是逻辑回归的两个挑战跟难点。

除了这两个挑战和难点解决了很大一方面的问题之外,逻辑回归还有一个问题我倒是一直在思考,这样的特征体系用线性模型够不够,这个问题其实当前来讲在深度学习这么如火如荼的今天来讲大家都不会产生疑问,非线性一定会做得更好,大家可能都这么想。但当时其实还是有挺大争议,很多人会有一个观念,包括一些论文里其实也把这个结论会明确的写出来,就是特征维度比较高的时候,线性模型就够了。

当时在几年前,谷歌还算是在某些方面是国内公司的技术领导者,某些方面的技术大家都是向谷歌看齐。当时谷歌也是用大规模的特征加上一个线性模型,所以你要做非线性模型很多人就会挑战为什么非线性模型有用,线性模型是不是就够了。现在这个观念好像并不是那么的统一,大家都觉得深度学习都用上了,那非线性更强了,非线性一定有用。

但当时其实要打破这个思维定势,其实相当于在挑战公司内外、业界、学术界的权威概念。当时我一直在想够不够,其实我们知道,其中有一个做法很说明问题,就是在使用逻辑回归的时候,我们的特征即原始的特征,就是One hot编码或者ID特征的维度很大,但我还是需要做特征加工、特征工程。比如说我们的目标的目标跟两个相关,可能要对这两种ID做一个笛卡尔积,做笛卡尔积是特征非常爆炸的过程。

比如说一亿维的用户特征,一亿维的宝贝特征,我们要做他们的关系的话,就是笛卡尔积会的话就是1亿×1亿种可能,一下子就爆到1亿亿的维度了。我们在实际工作里面很多公司做过这样的事情,我们用算法工程师来做特征的组合、特征的加工,然后尤其是笛卡尔积等等的工作。这里面非常的繁杂,而且两两特征可以组合,三种特征是不是可以组合,有没有其它的加工方式。所以这里面有大量的繁杂的工作。

这其实是一个很好的例子,就是线性模型并不够,如果线性模型够的话为什么还要做特征加工的工作,用人工来补足呢,其实这是当时业界的一个经典做法,一个经典的思维定势,内部的自我思维的一个矛盾。然后这底下其实我在想的就是如何能够省去这些繁杂的人工处理的工程,而且人工处理对特征加工一定是有限的,我们其实能不能用现在做AI,做智能的方法,去抽取更精确的信息,做更好的预测,这其实可能是一个做AI的人,内心在真正追求的东西。

所以我们其实思考的是能不能够去做一个更强力的人工智能的模型,准确来说是机器学习的模型来代替原来这种重工程的简单的线性模型。两个目的:一个省去人工繁杂的加工动作;第二个就是能够去达到更好的效果。另外一个目的,如果我们做智能的工作可以达到一个端到端的学习,像现在深度学习一样,可以让很多事情更自动化起来。

这个事情其实前半年一直在我脑海里去思考,虽然前半年没做出什么特别惊天动地的事情,然后在日常的项目投入跟业务理解里面,我一直在想这个问题的答案。后面找到一种方法。就是在大规模特征,而且大规模的样本上做非线性的学习,而且还能拿到效果。

下面简单介绍一下后面采取一种方法就是叫分片线性的方法,准确来说是整个高维空间里面,如果维度特别高的话,把空间分成很多不同的区域,每个区域里面有一个自己独立的一个线性模型。这样的话整个空间变成分段线性的模型,如果是二维比较好理解,原来是一条线,现在变成分段折线,折线足够多可以去二维上逼近非常复杂的曲线,可以去逼近任意复杂的一个函数。

其实背后这种思想还是蛮简单直接的,我们会有两个挑战:

1,我们如何能够把空间划分跟最后的每个划分里面分段线性,一起用机器学习的方法去一起把这东西全部学到,然后通过数据的方法学到;

2,我们去面对的数据规模特别大,特征规模也特别大,是不是能发展出一个非常有效的方法做这件事。有一个叫混合逻辑回归的方法,在阿里妈妈内部真正使用的,用分片使用的Softmax函数,最后每个区域内做分类线性的逻辑回归这样的一个组合。实际上当时我应该是研发了差不多有十余种不同的模型,有各种各样的分片的方法,分段的方法,包括有一起并行去学的,也有像GBBT之类的是一个片段一个片段去学,一个片段一个片段续贯学的很多不同的算法。

这背后其实遇见了大量的问题,比如说模型到底Work不Work,模型如果Work的话我们复杂的函数一般对应一个优化问题,优化问题不是能寻找一个很好的解,包括其实这个模型也会限制它的算法,这个算法能不能很快的收敛。这些其实都遇见大量的问题。最后我们其实现在留下的,看起来虽然非常直接简单,也是当时试验了大量的方法之后,最后留下了几种可行的方法中的一种。背后有非常多的失败的案例,这个可能是其它人不太知道的背后的故事。

做完这件事之后,其实基本上解决了之前说的一些问题,一个是非线性学习能够让模型自动的智能化的在数据里面去挖掘人挖掘不出来的知识,节省人工的劳力,来真正形成现在说的一个智能化的方法,用一个非常强力的人工智能的方法去挖掘出一个很好的效果。

这件事做完之后,第一期在业务上的效果应该大概在入职已经是大半年了,当时在上线的业务线上,广告的收入,包括点击率提升10%以上。而且分两期,每期都是10%以上。当时具体的数字比这还高不少,但是具体数字现在记得不准确了。当时就觉得第一次觉得特别激动,终于就是把自己的知识去应用到实际场所里面,不仅提升了用户的体验,平台收入也有一个大幅的提升。自己做的东西,每天能影响上亿用户。这感觉真的是用自己的专业知识做到了一件能够更影响这个社会,更影响用户的事情,非常有成就感。这是加入阿里的想分享的第一个事。

深度学习现状与规律总结

下面我大概说一下深度学习。深度学习怎么看?我分享一下我的观点。

深度学习现在特别火。这里面其实我们去抽取几个规律,深度学习有这样的性质:

1,深度学习其实把原来模型跟算法耦合的一件事结耦了,深度学习背后的比如说叫梯度传播算法,基本上是SGD的方法,SGD基础上会有一些加上动量,自适应动量之类的一些算法。然后这些算法其实变成了一些标准化的算法,你架什么模型都是在这些算法里面去选择,你可以很大概率上可以不用去特别深入这些算法,或者创建一套算法。这样结耦的模式跟原来做机器学习的模型其实是概念完全不一样。

如果真的对机器学习特别了解的,或者学过相关专业的同学会知道,SVM其实从模型到算法是整个体系化的方法,逻辑回归也是一体化的方法,GBDT也是一个一体化的方法。当然它的整体性会非常好,但是它做这件事的代价特别重,必须是专业能力非常强的人,从模型理解、数据理解到整个算法设计都需要非常强的专业知识,才能够去做这件事。这个在生产力上来讲是被束缚了。深度学习其实是把模型跟算法结耦,算法标准化,模型可以任意的改变跟搭建,极大释放生产力,能够让更多的同学参与进来,而且去尝试更多更复杂不同的模型。

2,深度学习这个方法有点像搭积木,我其实有很多模块,其实各个公司,各个学术机构还在持续不断得根据实际的问题跟数据去创造新的模块。

很多场合下,其实大部分的工作是把这些模块自由的根据自己的业务问题组合起来。跟原来不一样,原来是没有模块,你要建个楼,整个楼都是自己建,现在给你很多墙,很多楼板,你用这个楼板搭起来就可以了。这个其实在我们实际的基础模块称之为组件化,它可以组件化、标准化的把原来想像不到的复杂体系更简单搭建起来。

这两个特点,一个结耦,一个模型本身的组件化,在深度学习框架下能够让我们的工程师搭建原来完全无法想像的复杂模型,解决原来解决不了,或者是效果达不到我们预期的一些问题。这是深度学习背后的一些机会,我认为是对生产力的一个极大的促进点。

所以在这个点下,在深度学习下,阿里巴巴也展开了很多的研究跟应用。这里面我说一下现在我们在深度学习的一个思路。深度学习说起来很简单,就是Deep,非常深的一个神经网络。那这里面,会有一个问题,就是深层次,就是全部,或者说我们只要深就够了吗?那这里面,我再举一个思考,就是业界比如说图象识别,图象识别其实它有两个要素。第一个要素是一些现在大家比较公认的,或者是一些基础网络结构,像单层的CNN,像Pooling等等的结构,尤其是以CNN,就是卷积神经网络为代表,卷积神经网络在图象里面基本上占了主导型的应用。大家都是在这种结构的基础上才搭建深层的网络。

如果深层网络够了,为什么不用全链接搭建这样的一个深层网络呢?这是第一个例子。后面其实还有其它例子,比如在时序,在NLP等等里面会有很多这种结构,像时序上的RNN,或者是LSTM这样一个稍微复杂一些,可能在很多领域更有效果的一些模型。

这里面有两个要素:第一个要素是跟数据比较匹配的一个网络结构。为什么说跟数据匹配呢?以CNN为例子,CNN是局部的卷积窗,这个局部卷积窗代表了一个参数,这个卷积窗在移动的时候参数是共享的。它其实代表了图象的性质叫平行不变性,就是一个人脸或者狗的图象,在图象的左上角,它跑到右下角还是一个狗,它就叫平行不变性,就是物体识别不会因为这一块区域整体移动之后就会发生显著的变化。另一个物体识别也是局部的,这一个窗口位置如果是个脸全包括进去了,那这个窗口的信息就够了,这是一个领域性。其实像在图像领域或者已经成功的深度学习比较成功的领域,网络结构跟它的问题特性以及数据特性是非常匹配的。

我们现在其实在关注的是在互联网的,如何基于互联网的用户数据,比如刚才这种ID号编码的大规模数据上,我们如何能够去找到一种网络结构,能够去适应这样的数据特性,然后我们再用深层次的方法来加强这个结构的泛化能力或者拟合能力来达到更好的效果,这是我们在深度学习上的一个思考以及现在做的一件事。

这里面有什么特性?举两个例子:

1,我们的推荐,背后有一个很重要的数据,就是用户的行为,用户历史上浏览过什么,购买过什么,或者你在哪些页面上停留的时间更长,这个对我们分析你未来对什么更感兴趣,是非常有帮助的。第一个概念就是结构化,这背后有一个非常复杂的结构化数据。比如说用户在淘宝上的行为,你点了一些宝贝,那除了点这个宝贝ID本身之外,宝贝是什么之外,其实这个宝贝后面还有相关的数据,比如宝贝有图象,你也看到这个图象,会跟图象发生了一些思考跟交互,你才决定点不点,买不买,跟商家交互不交互。

再比如说宝贝有标题,再比如你点宝贝的,历史上点宝贝的时间也有关系。再比如说宝贝详情页有很多介绍,你还会看它的评论。这里面大家发现它都跟某一个宝贝相关,所以这里是一个高度的结构化的数据,不同源的数据其实是内部有很强的关联性,异构的数据是关联在一起的。如果我们去设计一个比较好的深度学习网络结构,去用好这些异构化的数据,这是一个很大的一个挑战跟问题。

2,另一个是时序,用户在我们的电商环境下,其实他会可能会浏览很多的宝贝,他可能看一些手机,同时给女朋友买一个包包,在行为序列上我们能够做什么样的分析以及设计什么样的网络结构能够更好更精准榨取用户真正感兴趣的东西,这对深度学习来讲也是一个挑战。

这两个例子其实就是说明了对一个实际的,比如电商里面的业务问题来讲,你能利用到的东西其实可能比一个学术界给你的数据集要广泛的多,这里面你可以想各种办法,你可以产出更多的创造性来解决这个问题。其实我们前一段时间公开了一个工作叫:用户多兴趣分布模型,我们会在用户的整个序列上做一些网络结构去更合理榨取用户的兴趣信息。我们也对外发表了这个成果,在arXiv上已经挂出来,网上应该也有一些讲解,大家对细节感兴趣可以看这个模型。

这是我对深度学习的看法,以及我们在做的一些事情。

技术的三个进阶过程,阿里在哪里?

最后谈一下我对技术的一个理解。我会把做技术这件事分三个阶段:

1,应用,提升业务效果,更好的解决问题的阶段。这个是大家做的最多的,不管是研究还是实际的业务。就是看下业界大概怎么做的,不同的公司怎么做的,哪些公司更先进,我们是不是能把这些先进的做法吸取借鉴过来,运用在自己的业务上,而且做的更好,这是第一个阶段,这也是研究工作的基础,把所有现在最前沿的方法摸清楚。

2,技术上做一些创新,我们不管是对技术的理解,还是对问题的理解,更深一步之后,我们如何能够发挥创造性,提出一些更新更好的解法,把这个问题解决得更好。这个我们称之为技术创新的阶段。

3,我理解的可能就是更大的一个层面,就是用技术去驱动一些整个因果链跟业务链条的变化的阶段。这是什么意思呢?其实不管解什么问题,我们背后都是有因果链的,因为什么所以什么,用户会怎样,商家会怎样,平台会怎样,等等一系列的因果链。

这个因果链建立的过程是在当时的技术条件下会排除掉很多可能性,因为当初很多技术决定了某些事情结果达不到,所以我们会排除很多可能,在这样的过滤下建立因果链,这是已有的业务。那这里面为什么阿里巴巴对技术会做这么大投入,就是因为技术的变革,其实会导致这里面我们原来排除掉的因果可能在未来成为可能性,整个因果链的思维过程会跟原来不一样,整个业务的形态也会发生不一样,或者催生完全不一样新的业务。这就是为什么各大公司都在技术上加大投入这么重视的原因。

阿里巴巴其实在第一个阶段已经做得非常多,我们的业务体量也非常好。第二个阶段是现在在技术创新上在着力做的一件事情。大家可以看到近几年比如说机器学习跟数据挖掘等相关的领域,这种国际顶级会议的论文其实阿里巴巴也发表了很多,我们目前来讲在第二阶段已经开始做出很多很漂亮的结果。

我们的理想是在第三个阶段布局,我们希望在技术、行业变革里面也贡献自己的一份力量,去催生更多的这种因为因果约束关系的变化造成的整个业务因果链的变化,思维的变化,催生出一些新的业务形态,这是我们布局的事情,这是阿里巴巴目前的阶段。

阿里期待什么样的技术人?

我是阿里技术岗的面试官,也是带团队的技术Leader,作为这两个角色的话,我怎么看,有哪些特质的人是觉得团队更需要,或者公司更需要的人。其实阿里巴巴有很好的两个总结:有一个总结叫“非凡人 平常心 做非凡事”。

非凡人什么意思呢?我们希望这个人的特质非常好的,首先比较聪明,对事情有韧性、有坚持、有驱动力,能够去更好的解决问题,然后甚至能够创造性的解决问题。非凡人我们会概括几个特质:聪明、皮实、乐观、自省。乐观不能遇到问题就特别伤心,啥都干不了了。聪明的话就是得有一定的专业素养,甚至或者说你得有足够的潜力,即使你不太会的,能够在实际的问题,或者通过自己的学习迅速的提高自己。皮实就是我们做任何一件事都不是一帆风顺的。

举一个例子,阿里的云战略,阿里其实有一个著名的人是王坚博士,王坚博士在做阿里云战略的时候,应该说还是承受很大的压力的。关注业界的人,都知道那时候相信云这件事情的公司并不多。大家非议特别大,王博士那时候肯定承受了很大压。其实真正一路走过来其实阿里巴巴的云现在在国内来讲,应该是阶段性最大的,而且在持续投入更多的资源,希望做得更好。

目前来讲,大家基本上都已经相信了云这件事。这一路走来,其实我觉得我特别钦佩王坚博士的一点就是他在各种压力下,甚至也有很多人可能对王博士本身对云技术的理解之类的也会提出一些挑战。其实王坚博士以他对云的这种坚信,坚持,真的把这件事情做成。不管可能有其他大牛觉得怎么样,但是真正能把这件事做成的,可能除了王博士还真不一定有。因为这个承受的压力非常大,真的是内心的坚持,内心对这件事的坚信才能把一件很困难的事做成。

所以我们需要有这种皮实的精神,遇见困难之后就打退堂鼓,那一件伟大的事一定不是你的,任何伟大的事,如果现在还没被人做出来,一定都是不那么容易的。自省就是说在整个做事的过程里面需要反复的去反思自己以及吸收外界的这种反馈来思考怎么把这件事做的更好以及自己初心对不对,自己做的方向是不是在自己初心上面。所以这是对人的要求。

第二个就是大家进入工作阶段要保持平常心,其实从学术界或者从一个环境切换到一个新环境,面临一些可能非常复杂的数据和业务。这里面可能就需要用一种平常心,用一种坚持力,要耐得住寂寞,能够沉下去,把这些事情摸透,把数据能够认识清楚。这是第一个阶段,如果特别心高气傲,永远觉得很多事好像不愿意去做,可能永远沉不下去,然后也很难真的做出一些特别伟大的事情。

最后就是一个建议,在平常心的同时,要有一颗追求卓越的心。首先要沉下去,沉下去之后,对很多现状可能要去思考怎么才是一个改变它的更好的方式。怎样对业务,对技术是一个更好的未来。然后一直去想一些有挑战性的问题,有价值的问题,这颗追求卓越的心一定要有。非凡人、平常心、做非凡事,这就是我们怎么看,我们需要什么样的人。以及聪明、乐观、皮实、自省,都是非常好的总结。

如何在面试时更好展现自己?

每年其实也接触过很多找工作的同学,下面会给一些建议。

首先就是你的简历有哪些亮点能够抓住HR跟技术主管的眼球,比如学校背景大家肯定会看的,但是更抓眼球的是真正能够在更大范围内去证明自己能力的一些事情。这里面包括比如说高质量的学术论文,比如说在一些国际的比如数据比赛的名次或者奖项。再比如你是不是有一些代码受到了大家的认可,例如说最经典的就是一些开源项目,参与的方式等等,这些东西会特别抓住HR跟面试官的眼球。

如果没有的话也没关系,我们还要记住一些面试技巧。

第一个的话就是准备阶段,准备阶段的话,有一些基础的,比如编程能力,有一些同学后面用高级语言做一些研究的事情可能会把底层的编程能力,比如说本科时候学的一些东西稍微忘掉了,实际工作很多需要自己操刀做的,这个东西还是在面试之前稍微捡一下。举几个例子,第一个基础的编程能力,第二个是最基本的比如说数据结构的知识,比如你面试的时候链表一问都不知道,这可能还是会让面试官很失望的。第三个如果面试算法岗位,除了刚才说的机器学习或者视觉或者运筹学等专业知识之外,一些基本的算法,最好也准备一下。

这里面其实推荐一下《算法导论》之类的业界比较经典的书。哪怕你只花两小时,或者一下午稍微复习一下前一两章基础的概念,这对面试来讲都是非常有好处的。基础能力在研究生、博士生阶段还真是有可能丢的时间比较久,建议大家可能花一两个小时或者一下午温习一下就会好多。

第二个就是专业能力,这是日常的,之前的经历,研究项目,在学生时代做的研究工作,包括实习的工作都可能很说明问题。

最后讲下面试技巧。在面试过程里面,面试过程里面,其实大家都可能会担心自己有些缺点,我觉得这并不是最关键的,最关键的就是你认为自己的亮点在面试过程里面真正展示给面试官。比如整场面试下来,面试官没有问到你觉得自己最牛最厉害的地方,正常面试完了,可能这方面还是会有问题的。

其实面试官会去看这个人潜力,去从各方面来看这个人未来是不是能够有更好的发展,他会抱着这样一个心态来跟你聊的。所以你也可以试图用一些比较好的语言方式去引导一下面试官,引导到你觉得自己比较亮眼,比较强的地方,跟面试官在这上面开展一些讨论跟聊天,这样对展示自己非常有帮助。不怕有缺点,但怕没有把你的亮点说出来。

我的分享就到这里,谢谢大家。

标签: #阿里资深算法工程师