回望过去与展望未来(数据挖掘)

  2017年06月14日,距离毕业时间刚好是两年整,一路走来,有太多的故事。作为一个非985,非211毕业的学生来讲,相比之下,成长的道路上还是有些崎岖不平,亦或是蜿蜒曲折的。可是人就是这样,没有一点曲折不平,反而显得平淡无奇,无任何故事可言。

  毕业之前,在深圳的一家医疗设备有限公司实习,招我进去实习的是一个满头白发,看上去很有学问的博士。并且还是中科大毕业的。谁知我进去才发现原来是个大坑,没办法,进来了就没那么容易走了,主要是一方面实习生的身份比较尴尬,二来自己可以利用公司的资源自己学习一些技术也是不错的。前前后后我在这个公司待了一整年。也当是在这个公司自己进修一年吧。

      是的,我离开了实习的公司,来到现在的公司——互联网金融公司。主要做的事情是数据挖掘相关工作。在这家公司遇到了不管是人生还是职场当中比较牛逼的同事。跟他们在一起工作,你每天都在进步。这也是我为什么后来非要去“大厂”的原因。跟聪明优秀的人一起工作,你收获的不仅仅是工作上的,更多的是技术积累、以及一些做事的方式和方法。这些做事的方式和方法就能反应一个人的能力和水平。 甚至,与优秀的人在一起工作,你的眼界和视角都开始变得高级很多。这里简要的说明一下:当你接到老板或者leader一个项目的话,首先需要了解的是项目的业务背景、项目的意义,项目当中存在的技术点,项目的评价方式和指标,以及后续上线或者优化的方法。  这对我来说有很大的帮助。

  人生就是这样,好景不长,在这个互联网公司接连两个比较优秀的leader离我们而去,去追求他们更好的人生,加上Boss对机器学习的技术并不是那么信任,在Boss眼中,机器学习暂时还做不出什么东西出来,最重要的还是数据。Boss有这样的看法也是没错的,但是他忽略了我们做技术的人斗志或者说是自尊心吧。技术人员是需要得到的老板的肯定才会有成就感的,进而才会有工作上的动力。犹如将遇良才,将得有爱才之心和爱才之道,良才才会有后面的报以知遇之恩。而我们的老板忽视了这点。另一方面,在互联网金融公司的数据量对于一个做大数据的人来讲还是相当小的。这也是我们做技术存在局限性。

  是的,你想的没错,有了前面的铺垫,我就想着该去“大厂”里面积累积累了。才有了我想写这篇博客的原因。主要是想记录一下在去大厂面试的一些点点滴滴。

  如果你打算去大厂,首先需要做一下几件事情:

(1)复习你所涉及的领域里面的一些基础知识,特别需要注意基础知识里面的一些细节内容。我涉及的是机器学习领域,主要包括:

  • 常规的机器学习算法的数学原理和公式推导,如:线性回归、LR、SVM、ID3、C4.5、RF、GBDT、XGBoost
  • 工程实现能力,主要表现在数据结构的算法题目。
  • 实际的项目技术能力。如:推荐算法、深度学习。

(2)整理项目(让面试官感兴趣的项目经验很重要)

  • 首先需要明确项目的背景及其意义。
  • 对自己的项目中的一些问题进行思考,需要从几个大的方面去讲,体现出逻辑性。
  • 项目中使用的一些技术细节内容需要去吃透
  • 在项目中的一些问题要有自己的看法和见解
  • 最后项目取得了什么样的成果

(3)考虑问题,需要从抽象的层面去考虑,分步解答,有一定的逻辑性。比如:如果让你去涉及个推荐系统你会怎么考虑?回答问题的时候需要考虑一下几个方面:

  • 我们拥有那些用户的数据源:如用户浏览历史、用户历史行为等
  • 我们会根据具体的业务情况,考虑选择什么模型比较合适。user-based or item-based。
  • 根据前面的数据召回一定量的用户或者物品。这个过程可能需要考虑数据量的问题。
  • 排序 

(4)找几个中型的公司先去练练手(类似模拟考试一样。)

  • 通过几个中型公司,对自己进行查缺补漏。
  • 针对自己的漏洞进行重点补充。
  • 这个过程其实是认清自己的过程,发现自己的问题,或者让自己对问题的认识更深一步。这一步对自己的提升蛮大的。

(5)运气的问题

  • 有时候面试的时候,也是有运气的。虽然这部门的因素所占的比例比较小。

这里面主要列举一下我面试阿里巴巴和腾讯、京东的经历:

阿里巴巴:

面试的岗位是阿里妈妈的搜索推荐组数据挖掘工程师岗位。

一面:面试官的语气比较重,可能采用的打击的面试方式,面试过程中问了一下几个方面的问题:

  • 针对项目问了一些问题。介绍项目的时候需要首先从几个打的方面介绍,面试官会主动问细节的。一定要体现出你的项目逻辑出来。
  • 机器学习的一些基本问题:L1和L2,LR,RF和GBDT等
  • 数据结构的问题:ADTree结合实际的问题来问的
  • 深度学习的问题:用tensorflow实现LR

二面:

  • 介绍自己认为比较牛逼的项目
  • 针对推荐系统,给定了一个场景,问我怎么设计
  • 一些机器学习常用算法原理

三面:

  • 介绍自己比较牛逼的项目
  • 针对一些机器学习常用算法原理进行探讨
  • 问了一个大数据的问题,两个巨大的文件,找相同的url

最终三面挂了。比较可惜。

腾讯:

一面:

  • 介绍自己做的项目
  • 针对项目细节内容进行提问
  • 机器学习常用算法的原理

二面:

  • 机器学习常用算法的原理
  • 数据结构算法的实现,需要写代码

可惜,又挂了。

京东:

一面:

  • 介绍自己做的项目
  • 针对项目进行提问
  • 针对工程能力进行提问

二面:

  • 介绍自己做的项目
  • 针对项目的细节内容进行提问
  • NLP相关的问题:近义词,热词等
  • 针对大数据工程能力进行考察

三面:

  • 介绍自己的项目细节内容
  • 项目的背景、意义、应用场景和效果的提升
  • 讲解公司业务逻辑,主要是考察逻辑能力和业务逻辑能力
  • 闲聊

面试通过......

展望:

目前我所涉及的领域是:NLP、机器学习(推荐系统)、深度学习等领域。与中国的基本国情一致,还需要进一步提升自己的技术。主要会以下几个方面考虑:

1、深度学习

完善自己深度学习的理论和技能。

2、机器学习(推荐算法)

积累更多的机器学习算法,主要偏向推荐系统中用户意图分析。

3、NLP

(1)自然语言处理应用在搜索推荐领域,主要涉及根据用户的搜索(query)去分析用户的意图,进而才能更好的推荐给用户。

(2)深度学习在NLP中的应用。

原文地址:https://www.cnblogs.com/ljy2013/p/7010308.html