分享
计算机博士的两种模式?
我个人觉得,以数据挖掘的计算机博士为例,在读博期间,大约有两种模式。模式A:接触许多实际的数据挖掘项目,成功地做完项目,解决了实际问题,从而发一篇paper。模式B:研究数据挖掘的算法,看paper找idea,然后进行算法accuracy的提升,或者自己提出一个好算法。实验结果在public datasets上跑得好就发一篇paper。所以我的疑问是,对同样一个资质水平的学生来说,这两种模式哪个就读时更好的成长?哪一种毕业后在工业界更具竞争力?我自己认为读博时B类型更好,因为能打下深厚的数据挖掘基础。而我导师却认为A在工业界更有竞争力,项目经历丰富。各位的看法是?
回复 ( 5 )
如果你以后想成为游泳健将,就要多游泳;如果以后想教游泳的话,就多看些关于游泳的书吧~
其实博士的竞争力就是problem solving。在公司有竞争力的意义是可以解决普通工程师解决不了的问题,包括优化算法效率和解决新问题。这个需要两点1、熟悉领域知识,包括数据挖掘算法和公司业务2、有逻辑思考能力,可以将知识运用到实际问题中。
我默认第一条路是做了一些不太水也不太牛的项目,就是运用成熟的数据挖掘算法解决问题。如果是很牛逼的项目,那你就是超脱这两条路的大牛了。第一条路会比较熟悉领域知识和常规算法,但是遇到新问题可能会比较懵圈也就是1比较强,第二条路2比较强,但是将知识运用到实际问题中需要训练一段时间。换言之,第一条路起点较高(可以入职直接负责一些小项目之类的),但是后续走research track可能天花板较低。第二条路刚开始比较弱,但是后面发展我觉得会好些。这也是为什么大公司招博士还是很愿意根据paper质量给package。
更好的成长是怎么定义的?所以这个问题不好回答。
哪一种毕业后在工业界更有竞争力?根据我遇到的情况,你导师是对的,A。本质原因是:
A种可以接触到更真实的数据,当然数据也就更dirty,需要你做不少data preprocess等脏活累活;会要求你做很多的feature engineering, 比如features combine, features selection等等;然后是model选择,调参,各种Cross Validation;最后是结果的分析,各种calibration等等。然后才可能做出个好的结果。其中data preprocess, feature engineering, calibration会占用你大部分时间。这是实际工业界日常的工作。
B种,首先要看很多论文,如果你看的是偏应用型的,比如如何做广告ctr预估,这样相对容易些,但是不好的地方是,就算你能得到一些数据,你能得到的这些数据会限制你能做的事情,比如你发现别人做ctr都没用过用户cookie,你就需要弄到用户cookie数据,然后这在公开数据集中可能很难得到,因此你可能就没法做下去。如果是看的偏理论型的论文,比如你发现sgd在并行化时收敛较慢,那你就需要把sgd相关的论文深入读一读(比如张潼老师这方面的论文),然后看有哪些地方可以改进,说实话,这很难,但是很锻炼你的理论功底。
想当年我傻傻分不清,看了不少论文模型应用型、算法优化型。。。但是最终并没什么卵用,代码也没写几行,导致我现在只能在北京要饭。
所以,你的研究方向是什么?
个人经验而言,所谓模式A和B,并无明显区分。模式A:对于博士研究而言,即便是利用已有算法解决实际项目中的问题,也会涉及到算法的比较、改进、优化以适应当前问题。模式B: 博士阶段,提出一个“全新”算法的博士生少之又少,大部分都是对已有算法的改进和优化。
模式A:接触许多实际的数据挖掘项目,成功地做完项目,解决了实际问题,从而发一篇paper。
模式B:研究数据挖掘的算法,看paper找idea,然后进行算法accuracy的提升,或者自己提出一个好算法。实验结果在public datasets上跑得好就发一篇paper。
一个nb的博士生能做到a+b,但是真的很少。模式a是在博士期间做很多项目,偏应用,这对以后就业很有帮助。模式b是在学术领域内探索问题的根本,偏学术,对发文章有帮助。这两种都可以,主要看博士生以后想做什么。