平时的积累。如果你有自己hands-on做过end to end ML项目像define problem, find related features, modeling, offline evaluation, online deployment, monitoring, iteration, etc. 那其实就成功一半了。其实不论面试的问题是ML的哪个方向,大致的框架都是类似的。只是往框架里面填的东西不一样。所以如果你没有做ML product的经验,至少应该有offline build模型的经验,然后再通过像medium里面的一些公司的blog来积攒经验。比如像Pinterest/airbnb的blog就有很多好的use cases。平时的积累也会反应在一些追加的问题上。比如对于NLP的应用可能会问你如果文本非常长怎么处理;推荐的应用上可能会问你怎么做counterfactual evaluation。而这些问题,你如果平时就多follow state of the art多看paper参加conference听talk就会有好的多的sense。而这些不容易通过短时间的准备速成。
. 1point3acres
看相关的准备材料。<a> 如果你实在经验很少,可以看看educative的ML system design/Grokking the Machine Learning Interview入门至少知道一个大致框架。比如search的问题需要分成information retrival和ranking两个步骤。如果你没有search的经验可能会一脸懵逼。。。如果你自己有不少CV/NLP/search/recommendation的经验这些课程意义不大。<b> 然后还是跟第一点一样,可以看看相应公司的blog来了解他们主要解决的是什么样子的问题以及解决的方法。<c> 可以去youtube里面搜索一些相关的视频。我个人发现好的比较少,但也可以找到一些好的。比如我觉得这个talk就挺不错的:https://www.youtube.com/watch?v=lh9CNRDqKBk.1point3acres
ask clarification questions: 1) 比如像 what's the stage of the project。如果是早期可能需要考虑cold start的问题。2)traffic。这个会影响你engineering wise的robustness和latency的考虑之类的。3)assume常用的数据都log了。一般这个assumption都是成立的。不过依然建议double confirm。
整一个大的八股文的结构。roughly的描述主要的几个component:对于online的部分包括像 数据 (有online user data的 和 直接database fetch的),ML service, ML model artifact, logging and monitoring 对于offline的部分包括feature processing, modeling, evaluation。你应该很容易找到这个标准的design图像前面提到的那些课程里面。建议直接跟面试官画图。比如我自己很喜欢remote面试的时候准备ipad在上面直接画。这个一方面面试官会觉得你很有条理;另一方面当你讲details的时候会知道你在讲哪个方面。. check 1point3acres for more.
具体的实现。这个包括: <a> features。你会需要什么样的数据,这个需要自己多开脑洞。比如recommendation大致分成三块 document related features (like # of watches, text, video embedding), user related features (gender, geographic info ** super important for location related search **, previous watches, previous searches), interaction features (distance, watched/clicked before or not, matched words), etc. 而往往你会需要了解最常用的text embedding/image embedding/id embedding的方法从而能够知道怎么处理这些非numerical的数据。<b> 模型。这个就是整个design的meat了。你首先需要把问题建模成regression/classification/ranking/etc中的哪个问题。你对于input是怎么encode,你模型的框架什么样子(对于ranking bi-encoder vs cross-encoder vs poly-encoder,对于recommendation最常见的two-tower),然后模型的主体是一个什么模型 (往往会考察不同模型选择的优劣势logistic regression vs. random forest; LSTM vs. Transformer),然后模型的loss function怎么选择。<c> evaluation。你需要知道最常用的evaluation metrics像 accuracy/AUC/F1/precision/recall/MSE, 对于NLP像 perplexity/BLEU/ROGUE/BertScore, etc. <c> 其它的部分基本不大可能聊出花来。简单的延伸像是对于不同的数据用什么方式存储,data pipeline怎么设计之类的。
. Waral dи,
剩下的就是面试官对于某些具体的方面有什么问题了。那这个就完全取决于你的积累了。。。比如搜索中对于一个restanrant chains的搜索怎么处理;对于探索式的搜索怎么处理 (eg. movie for family); 数据量少的时候怎么办。那基本上你就会往knowledge graph/active learning/reinforcement learning/GAN等等方向扯淡了。. From 1point 3acres bbs