CMU AI PhD 第一年总结

118 阅读5分钟

大家好,我是对白。

今天给大家分享一位大佬在Facebook做了四年机器学习,又到CMU攻读AI PhD的经历,希望给后续也想要深造的朋友们一点经验和帮助,以下为原文。

作者:SpadeAce | 编辑:对白的算法屋

zhuanlan.zhihu.com/p/519841457

不知不觉在 CMU 待了快一年了,时间过得可太快了。。。以前总觉得 PhD 五年时间很漫长,实际上第一年已经不知不觉溜走了,给人感觉也就过了一个月。。。第一年过得很开心,然而感觉个人的成长却没有很多,主要还是自己花的时间不够多,之后应该更努力一些。

关于Research


我一直蛮明确自己的 research taste,想要做 “可以解决实际问题的 research,且方法是 principled,是 theoretically motivated 的”。这类 research 我总结一般有如下几个步骤:

  1. 发现一个好的问题:一个 well-motivated 的真实存在的问题

  2. 把实际问题抽象化,提出 Mathematical formulation

  3. 基于提出的 Mathematical formulation,提出 principled 的方法去解决。这种方法一般是有道理的,通过数学推导得出的。

  4. 做实验去验证提出的方法的有效性。一个好的方法应该大概率是放之四海而皆准的,大概率可以应用在多数真实场景之下的。当方法不 work 的时候,因为有背后的数学做指导,大概率也知道为什么不 work,以及怎么调整使得方法 work。我很佩服我合作者的一点就是,对于背后的数学十分熟悉,常常在做实验之前就可以预测实验结果;当实验结果不 work 的时候,也知道是哪些假设不满足,并且很快就能提出基于数学的解决方法。

最近我们在 arxiv 上面 post 了一个我个人很喜欢的工作,这个工作主要解决的问题是:在推荐系统当中,因为 maximization bias 而导致的 prediction over-estimation 的问题。虽然 maximization bias 在 RL 里面比较有名,我个人之前没听说过有谁意识到 maximization bias 也会导致推荐系统中的 prediction over-estimization。而我们解决这个问题的方法就是按照上面几步曲来做的。

通过这个工作,我深刻的认识到了自己的不足:technical 水平(数学水平)实在差的太远。。。上述的第一步第四步我都能比较自信的解决,但是这第二步第三步有点超出我现在的能力范围了。。。数学这东西也没有什么捷径,只能慢慢积累。希望之后几年能提高我的 technical 水平。

业界的方法VS学界的方法


可能是因为我工作过蛮长时间,我解决问题的思路和方法也都很业界:重解决问题,而轻方法的 guarantee。我比较喜欢的解决 ML 问题 empirically 的方法论是:

  1. 发现一个好的问题(同上)

  2. 提出 hypothesis(假设)来解释我们为什么会有这个问题。那么又该如何提出好的假设呢?通过不同的 view(视角)来分析同一个问题,比如 statistical view, causal view etc.

  3. 做实验来验证假设

  4. 如果假设验证成功,基于假设有的放矢的提出解决方案

回到上面 maximization bias 的例子。作为 engineer,一开始发现的问题就是上线的模型效果不好(prediction over-estimization),但是并不知道是什么导致的。这时候就需要提出假设:如果我们认为每个 prediction 都有 variance,那么之后的 selection step 就会导致那些被 over-estimated 的 prediction 更容易被选择到,也就出现了 maximization bias。有了假设,实验便很容易设计了:同时上线若干个类似的模型,可以发现每个模型只在自己 serve 的 traffic 上有 over estimation,而在其他模型 serve 的 traffic 一直都是 well calibrated 的。基于这个被验证的假设,解决方法可以参考 RL 里面经典的方法,比如一个模型用来 select,一个模型用来 predict。

到此为止,我觉得这是一个很好的业界解决 prediction over-estimization 的 empirical work:解释清楚了这个现象的原因,并提出了解决方法。但是却没能更进一步:把问题抽象化,通过数学的方法进行分析,并提出更好的解决方案。我个人感觉这就是业界学界解决问题的方法的不同之处之一:业界解决完问题就结束了,不会进行更深入的思考,也不会要求解决方法的数学 guarantee,empirically 解决了问题就大功告成。而学界常常要求进行深入思考,并对提出的方法有一些数学上 guarantee 的要求,至少要解释清楚,这个方法什么时候 work,什么时候不 work,assumptions 是什么。如果没有某些情况下的 guarantee,那么提出的方法显得很 ad hoc,很难变得 convincing。我就常常在这一步被卡住,还需要好好提高 technical 水平。。。

业界给人带来很多很好的实际问题,学界给人带来扎实的 technical 基础,能够使人不仅仅局限于最好想的 naive 的解决方法。以后要多去业界看看,积累好的问题;同时在学界踏下心来,夯实基础。

关于我

我是对白,清华计算机硕士,BAT算法工程师。欢迎关注我的微信公众号对白的算法屋,日常分享编程经验和技术干货,帮助你少走弯路!还可以加我微信,领资源和进交流群。