脸书机器学习职位
The day breaks down into 5, 45-minute sessions:
1 – Behavior Interview
1 – Machine Learning Research
1 – Machine Learning Practical Design and Architecture
1 – General Algorithmic Coding
1 – General Algorithmic Coding
Here’s the link to the curated list of our interview questions (must click):
http://popsnip.com/topic/294/Facebook-Technical-Interview
Here’s the link to the newsfeed design article:
Below you’ll find a list of helpful miscellaneous links:
What to Expect During the Recruiting Process: https://www.facebook.com/video.php?v=10152735806862200
How to Crush Your Coding Interview: https://www.facebook.com/video.php?v=10152735777427200
Interview advice from a Facebook engineer: https://www.facebook.com/notes/facebook-engineering/get-that-job-at-facebook/10150964382448920
Team selection & Bootcamp training: https://www.facebook.com/note.php?note_id=177577963919
Bootcamp Video: https://www.facebook.com/Engineering/videos/10150411360573109/
Engineering Tech Talks: https://code.facebook.com/videos/
Facebook Engineering Page: http://www.facebook.com/Engineering
Engineering Blog: https://code.facebook.com/posts
Research Publications: https://www.facebook.com/publications
Open Source at Facebook: https://code.facebook.com/projects/
Important Statistics: http://www.facebook.com/press/info.php?statistics
ML Practical Design Interviews at Facebook
The ML Practical Design interview focuses on your ability to building ML systems at
Facebook scale. A strong performance in this interview indicates that would be
successful in most applied ML problems here at Facebook.
What we ask
Some sample questions we ask are:
Design newsfeed ranking
Design local search ranking
Design evaluation framework for ads ranking
The idea is to pick any product feature and understand how to model it using machine
learning. We are not looking for you to know and memorize every ML algorithm out
there. You should be able to use existing toolsets to model the problem and breakdown
the components involved in building a large-scale ML system.
Expectations
What we’re looking for:
Can you visualize the entire problem and solution space?
Are you good at feature engineering?
Can you detect flaws in machine learning systems and suggest improvements?
Can you design consistent evaluation and deployment techniques?
Do you understand architecture requirements (storage, perf etc.) of your system?
Can you model product requirements into your ML system?
A good design will touch on the following different components:
Problem formulation
o Optimization function
o Supervision signal
Feature engineering
o Data source
o Representation
Model architecture
Evaluation metrics
Deployment (A/B testing)
How to study
To practice, take any well-known app and pick a system that can benefit from machine
learning. Consider that system is built using a handful of rules for a small set of people.
Now, consider you want to deprecate those rules and want to take advantage of
machine learning, so you can easily extend that functionality to millions of people.
Brush up basic ML theory and be comfortable with concepts like overfitting and
regularization.
Practice ability to convert intuitive ideas to concrete features. For example: number of
likes is a good idea but a better feature would use involves normalization, smoothing
and bucketing.
Think about the problem end to end. What will you do after you train the model and the
model does not perform well? How do you go about debugging an ML model? How do
you evaluate and continuously deploy an ML model?
Be ready to analyze your approach. Having a good toolset of several different
algorithms and understanding the tradeoffs is helpful. For example, be able to example
advantages of logistic regression compared to SVM.
Work out the above problems on a paper and just think about the ways to break them
down. It also helps to read up on common large-scale ML systems. Watch the public
videos and learn how google search ranking works.
ML Research Interviews at Facebook This is an interview that tests your theoretical understanding of Machine Learning algorithms and best practices. The aim of this session is to better gauge your level of expertise in the fundamental aspects of Machine Learning as it is applied at Facebook. What we ask The questions in this interview may cover: What dataset and what algorithm we should use to model a specific problem The implementation details of a class of ML algorithms A comparison of ML algorithms’ strength and weaknesses Best practices for applying ML techniques and common pitfalls The questions are likely to cover areas in which you have prior experience or that you touch upon in your resume. For example, if your background is in NLP, you may be asked to discuss some common text processing tasks. Such topical questions may be coupled with broader questions to understand not just the depth, but also the breadth of your expertise. One interview is likely to cover many topics, so be prepared to change mental tracks. What we look for We’re looking for: Do you understand the fundamentals of ML? Do you understand how ML tools behave when applied to real world data? Can you arrive at an answer in the face of unusual constraints? Can you make trade-offs for precision, recall, interpretability, speed, coverage, and scalability? How much have you thought about Facebook and some of the unique problems we face? A good design shows that you: can come up with creative solutions to real world problems clearly understand the algorithms have given thought to how you might collect any necessary data for training are prepared to evaluate the performance of your model will be able to productionize your solution How to study This interview probes your knowledge of fundamental ML understanding. If it has been a while since you thought about your favorite ML algorithm’s loss function, it is likely a good idea to re-read a textbook on the topic. However, do not expect this to be like a university exam; it is much better to be able to generalize your understanding than to recite definitions verbatim. If you have mentioned any specific modeling techniques or projects in your resume, be prepared to discuss the class of algorithms that they belong to. Spend some time re-thinking your design decisions, how you might have taken a different approach, and what other insights you have gained from your experiences.