未来 3~5 年内，哪个方向的机器学习人才最紧缺？
第一次看到这个问题是两年前，那时候感觉功力还不太够，答了怕误人子弟。这两年随着所做项目的范围，自己位置的变化，再加上写作“深度学习推荐系统”这本书的过程中，跟业界诸多非常senior的专家有过大量讨论和交流，觉得可以尝试总结一下自己对这个问题的看法。 先一句话总结，未来3-5年“业界”需要的是： 每一个引号中的词都是重要的。 业界的机器学习和深度学习应用到现在，有一类曾经很吃香的机器学习人才渐渐被淹没了。就是单纯认为模型结构决定一切，对改进各种深度学习模型细节很痴迷的纯研究型的从业者。如果时间回到2016-2017年，改进模型结构的收益是足够大的，加一个product layer，改一个激活函数，都可能对结果产生非常大的影响。但时至今日，几乎所有模型结构上的创新都几乎被遍历，单纯的学术型的改进的收益微乎其微。 这并不是说模型结构不再重要，而是因为这类知识已经是显学，曾经被认为前沿的知识和经验已经成为了从业者的基本素质。 从一个工程师的“技术护城河”的角度，我们也可以看到，现在随便一个拿到头部公司offer的毕业生，都手握三四篇顶会，tensorflow，pytorch用的滚瓜烂熟，这时一个真正可以称得上的senior的工程师的优势在哪里呢？真的要全都被拍死在沙滩上吗？ 显然不是这样的。 一位资深的算法工程师心中一定时刻装着一套“工程体系”的蓝图，你的一个决策，一个改进，甚至一行代码的增删改都是围绕着体系优化的方向进展的。一个模型的改进，一个业务问题的解决，也是在体系之上的综合性应用。 为什么这么讲？ 因为现在的计算广告系统、推荐系统、搜索系统的复杂程度，已经远远超过单纯进行模型改进的范畴，每一个问题的解决，一个模型的实现需要涉及的子系统往往是体系级别的。就拿这两年学界和业界都比较火热，而且已经有诸多成功应用的reinforcement learning来说，你在实验室测试效果，写个模拟的回测系统就可以了，在实际的生产环境中，要部署一个经典的RL模型，要跟多少系统产生关系呢？ 可以说，一个RL模型，如果真正要实现起来，绝不是仅仅在offline环境下改改模型结构，调调参数那么简单的。它几乎涉及到了一个公司的所有工程体系。 事实上，要真正讨论起一个模型的效果，它还跟系统的cache策略，线上特征和离线特征的一致性，离线数据相比线上数据的bias问题，各数据模块的延迟问题等等都有不小的关系。你忽略他们中的任何一块，都有可能得出错误的结论，产生离线和在线结果的巨大反差。 曾经深度学习在效果上的革命性提升其实掩盖了诸多工程问题，但是当模型的改进收益逐渐平缓时，你可以看到大家越来越多的在工程框架上要效果。 比如提高数据流的实时性，比如把推荐系统和边缘计算结合起来，比如越来越多在model serving上下功夫，提出数据蒸馏的诸多方案，比如合理化利用算力，在模型的复杂度和更新频率上做精细的权衡。而这些绝非在实验室可以完成的。 上面的一切要求，就是我所说的要站在体系的高度上，综合考虑“模型结构”和“工程限制”，来制定最终的解决方案。 关于问题目标的理解当然也不可忽视，我在之前的文章里面也说过多次，一定要去针对问题的本质，真正要优化的目标去建模，不能到最后才发现南辕北辙。而这一切又需要产品团队，工程团队，运营团队通力合作，达成一致，硅谷的工程师常说，开会就是生产力，你的项目scope越大，你期望产生的impact越大，越要在实现之前进行充分的沟通，切勿陷进自己技术的愿景之中，用诸多所谓“前沿的”技术实现一个在别人眼里根本不知所谓的东西。单纯去追逐技术的先进性，那是最典型的学生思维，要尽快逃脱这个桎梏，回到技术服务于最终目标的本质上来。 最后一个关键词要再强调一下——“工程师”。一旦你离开校园，就要记住你不再是一个学生或者研究者，你是这个商业社会的一员，你也是驱动你的公司，你的项目达成商业目标的一员。你的目标不是发明一个闪亮无比的算法或模型，那也许可以是你的副产品，你的主目标永远应该是用你的技术去让你的知识落地，最终驱动业务目标的达成。 你看每逢金融危机巨头先裁掉哪个部门，你就知道，好看的技术和想法永远不是公司的核心，真正核心的永远是驱动公司业务和实打实产生利润的部门，而这一切都要求工程师的思维，而不是研究者的思维。如果真的想去探究人类认知的边境，请认认真真读博，踏踏实实找教职，好好在象牙塔里完成这一使命，接受工程师们的仰望，但请不要在一个公司完成这一使命，那不是一个商业主体的第一目标。 最后以阿里 @朱小强 在为“深度学习推荐系统”这本书作序时写的一段话结尾： 这段话当时一语戳进我心，也是本回答核心主旨的又一次提炼。如果你和我一样是一名相关领域的工程师，就一起为“工业级深度学习2.0时代“添砖加瓦吧。