机器人与人工智能爱好者论坛

标题: How To Prepare For A Machine Learning Interview [打印本页]

作者: irobot    时间: 2016-6-1 08:18
标题: How To Prepare For A Machine Learning Interview
How To Prepare For A Machine Learning Interview
By Arpan Chakraborty

May 25, 2016

Getting ready for a job interview has been likened to everything from preparing for battle, to gearing up to ask someone out on a date, to lining up a putt on the 18th green at The Masters. Meaning, at best, it’s nerve-racking, and at worse, it’s terrifying! Preparing for a Machine Learning interview is no different. You know you’ve got something ahead with the potential to be either really great, or really terrible. But how do you ensure your result is the great one?

It’s all about mindset, and preparation.

Company and Role

Understanding the context of your pending interview—i.e. the reason WHY there’s an open role in the first place—should be an integral part of your preparation. Knowing why you’re being interviewed will help you contextualize your value to the company. For example, if a company is looking to hire a Machine Learning Engineer, it should be clear that they are trying to solve a complex problem where traditional algorithmic solutions are hard to apply or simply do not work well enough. It should also be clear they are also extremely motivated to solve that problem.

Identify a Core Problem

The first thing you need to do when applying for such a role is to imagine yourself in that roll. To do this, you need to find out as much as possible about the company and position. To organize your research, ask yourself: What is one core problem I can solve for this company? Pursuing an answer to this question should excite you, and drive you to find out more about the problem—existing approaches, recent developments in that domain—and lead you to a bunch of more specific challenges. If you know what team you are being interviewed for, picking an appropriate problem might be easy; otherwise, choose something that is essential for the company. Put another way, think about the challenges facing the company, and then try to determine the questions they’re likely asking.

Explore Potential Data Sources

The next step in your preparations should be to think about what data you need to answer those questions. Some of this may be readily available, while you may have to build in additional hooks to gather certain pieces of information. Dig into the company’s infrastructure and operations—what stack do they operate on, what APIs do they have, what data are they already collecting, etc. Most companies today have a blog where they often discuss their challenges, approaches, successes and failures. This should give you further insight into how they operate, and what products and services they might have in the pipeline.

Prepare to Discuss Machine Learning Solutions

Now you need to make a fairly big conceptual jump: How does machine learning fit into all this?Given what you’re trying to achieve, and the data you think might be available, can you cast it into a learning problem? What is an appropriate model to use? How would you go about training and evaluating it? To give you an example, the primary challenge that a lot of recommendation systems like Netflix and Amazon face is clustering, not prediction—i.e. once you are able to figure out groups of users who seem to have similar preferences and behaviors, it becomes a whole lot easier to recommend products that they may find useful.

This thought process will help you be prepared to talk about issues that matter to the company the most. Nobody expects you to walk into an interview and lay out a complete solution for something they’ve been working hard on for months or years! But everybody likes a candidate who shows genuine interest, motivation, and curiosity for a problem that is close to their hearts.

Depending on your interviewer and the stage of your interview, you may be asked more technical questions, but you should try to use any opportunity you get to demonstrate that you have thought about the company and role. When asked more open-ended questions such as “Describe a technical challenge you faced when working on a project and how you solved it?” try to pick something that aligns well with the company’s interests.

Skills and Sample Questions

I recently wrote a piece for the Udacity blog entitled 5 Skills You Need to Become a Machine Learning Engineer. In that article I identified five groupings for the essential skills that a Machine Learning Engineer needs:

I encourage you to read that post for further detail about these groups. What I wish to focus on here are the kinds of questions you’re likely to face in a Machine Learning interview, so I’ll use these groupings simply as an organizing principle.

Computer Science Fundamentals and ProgrammingSample Questions

For all such questions, you should be able to reason about the time and space complexity of your approach (usually in big-O notation), and try to aim for the lowest complexity possible.

Extensive practice is the only way to familiarize yourself with the different classes of problems, so that you can quickly converge on an efficient solution. Coding/interview prep platforms likeInterviewBit, LeetCode, Interview Cake, Pramp and interviewing.io are highly beneficial for this purpose.

Probability and StatisticsSample Questions

Remember that many machine learning algorithms have a basis in probability and statistics. Conceptual clarity of these fundamentals is extremely important, but at the same time, you must be able to relate abstract formulae with real-world quantities.

Data Modeling and EvaluationSample QuestionsApplying Machine Learning Algorithms and LibrariesSample Questions

Data science and Machine Learning challenges such as those on Kaggle are a great way to get exposed to different kinds of problems and their nuances. Try to participate in as many as you can, and apply different machine learning models.

Software Engineering and System DesignSample QuestionsConclusion

What I’ve tried to present here are two sides of the Machine Learning interview experience—call them the Contextual side and the Technical side. If there’s one message I’d like to stress, it’s that you should resist the temptation to focus on the latter at the expense of the former. It is far too common for aspiring Machine Learners to immerse themselves in technical preparations, while giving very little thought to the why of their interview—why is there an open role, why is the company pursuing Machine Learning talent (and Machine Learning solutions!), why are they interested in you? Understanding these questions will give meaning and context to the technical challenges you’ll need to address, and answering them will set you apart as the candidate best suited to move the company forward.

~








欢迎光临 机器人与人工智能爱好者论坛 (http://robot-ai.org/) Powered by Discuz! X3.2