The purpose of this series of blog posts is to give some helpful ideas on how to prepare for an Amazon research internship and what to expect during the process. The interviews I’m going to address are related to machine learning internship positions both in Europe and the U.S.. I have received 3 offers for research internships at Amazon (Berlin, New York, Seattle), so I believe my perspective can be useful for the interview preparation. In this post I concentrate on machine learning interviews that usually precede coding interviews (discussed in the next post).
The hiring process usually starts with a chat over the phone with a recruiter. You get asked about your expectations and what you would prefer to work on. This is usually meant to better align your skillset to a potential team. Second, you receive an invitation for a research (machine learning) interview over the phone. After a successful completion, you receive an invitation for a coding interview. The interview is also over the phone but access to an online coding sandbox is provided. And finally, an offer if all the above are successful.
Machine Learning Interview
During this type of interview, your understanding of machine learning and related topics will be probed. While the recruiter might tell you that the interview will be related to machine learning, in reality, however, the questions you might get will cover a broad range of related topics. In general, you should prepare for questions in the following areas: machine learning, statistics, linear algebra, probability theory, and optimisation theory. My overall impression is that interviewers tend to probe fundamental understanding of underlying concepts and concentrate less on modern tools (e.g., modern neural networks). Of course, you will impress the interviewer by explaining the difference between GRUs and LSTMs, but sole knowledge of modern neural network architectures will hardly suffice.
Interview questions tend to depend a lot on the interviewer; an interviewer with a strong background in statistics might ask you about estimation of some population properties (statistics like mean values). On the other hand, an interview with a more machine learning inclination might ask you about optimisation methods. It makes a lot of sense to check the background of the interviewer as the name is provided in advance. It might shad some light on what questions to expect.
A typical interview starts with the interviewer giving a short self-presentation; then you get a chance to present yourself. For example, you can talk about your Ph.D. topic or projects you’ve worked on. This is meant to break the ice and help you get more comfortable.
Second, the interviewer usually starts by asking basic questions about the topics. Sometimes, the questions can be pretty general with many correct answers. Therefore, it sometimes makes sense to ask the interviewer for a clarification about the expected answer's direction. Below I provide a couple of examples of such questions.
- What is gradient descent? What are requirements of the function to which the method is applied to?
- What is stochastic gradient descent and how is it different from standard gradient descent?
- What are confidence intervals?
- What dimensionality reduction techniques are you aware of? How do they work?
Afterwards, you are likely get asked to solve a problem related to machine learning. The problem can be both theoretical and practical. As you progress, you get asked to explain different decisions you make as well as how to approach different scenarios and corner cases. I provide a couple of example below.
- Please derive an objective for Bayesian linear regression.
Here the interview will expect you to verbalise the actual equation. For example, that it requires to integrate over the space of possible parameter assignments and there is prior distribution over parameters.
How would you obtain suitable model parameters given some data?
In other words, estimate p(\theta|x), i.e., perform inference of parameters given data. You could either approach it using sampling techniques like MCMC or optimisation via variational inference. You might also compare two methods, and explain their differences.
- What are advantages of using Bayesian linear regression as apposed to standard linear regression?
- Your task is to develop a new recommender system for the Amazon website. How would you approach it?
Here you could talk about different recommender systems, and their known problems, such as cold start and ‘Harry Potter’ effect. It might make sense to ask what features are available for you, as it can affect your design decisions.
- How will you know that your model is better than the existing one?
Here you could talk about evaluation techniques you know, suitable metrics, and their shortcomings.
- How would you test it on live users?
Here you could discuss A/B testing to channel a subset of users to a different version of the website with the new recommender system. Additionally, you could mention how you would select users to redirect.
- glassdoor - contains a lot of questions that other candidates have faced during interviews.
- pattern recognition book - contains an in-depth overview of all major topics in machine learning.
- linear algebra book - gives a fantastic overview of Linear Algebra, which is the backbone of machine.
- statistics for machine learning - essential techniques in statistics that are applied in machine learning.
- In my experience, skipping questions by telling the interviewer that the question in not in your area of expertise does not have a strong influence, while you show knowledge in other questions. In fact, it can be a strategy to save time and show your understanding in other areas.
- Always ask questions if something is not clear. The interviewer might have some extra information, which can be critical. Especially it’s important when requirements are vague. For example, your design decisions might depend on the number of users that the system needs to handle. So by asking the interviewer directly about the expected number of users you address the problem in the right way.
- While this is a bit unnatural, you need to verbalise your thinking process. It’s especially important since your interviews will be over the phone. So long pauses can be an ambitious signal for the interviewer which might not work in your favour.
- There is often a 5 working days gap for being informed about a result of a step. The Amazon recruiters, in my experience, are very busy, so don’t be discouraged if you don’t hear in 5 days. Writing a polite reminder email can be a good idea, and in my experience, reduces the response time.