21 ms·
Deep Learning Interviews book: Hundreds of fully solved job interview questions
- spekcular 5y agoThis is amazing. I am ecstatic. I've been looking for something exactly like this – and it's executed better than I could have imagined. (Needs a good proofreader still, though! Also, whatever custom LaTeX template the authors are using is misbehaving a bit in various places. Still great content.)
- time_to_smile 5y agoFisher Information is under the "Kindergarten" section? Maybe I've just been interviewing at the wrong places, I'd be very curious if anyone here has been asked to even explain Fisher information in any DS interview? It's not that Fisher information is a particularly tricky topic, but I certainly wouldn't put it as a "must know" for even the most junior of data scientists. Not that I wouldn't mind living in a world where this was the case... just not sure I live in the same world as the authors.
- sdenton4 5y agoWhen I was a mathematician it was pretty common to make jokes whenever we actually had to evaluate an integral, along the lines of 'think back to your elementary-school calculus...'
- lp251 5y ago“integrate by parts, like you learned in middle school” tf middle school did you go to?!
- light_hue_1 5y agoIt's a joke. Like, we joke that the more math you learn the less arithmetic you can do (ok, maybe that one isn't a joke).
- rindalir 5y agoIn my undergrad abstract algebra class our professor asked us a question about finding the order of a group that involved dividing 32/8 and we all just sat there for ten seconds before someone bravely ventured "...four?"
- jpindar 5y agoI've experienced that many times among groups of electrical engineers - we're all fine discussing equations but once its time to plug in the numbers no one wants to volunteer an answer.
- erwincoumans 5y agoWow, nice resource! Wish it had some sections about (deep) reinforcement learning and its algorithms. Looks like it is in the plan though.
- jstx1 5y agoRL is still kind of niche - the number of companies that ship anything using RL and the number of jobs that require it are both quite low.
- master_yoda_1 5y agojust a clarification I think you are confused between RL and robotics. RL algorithm could be used anywhere either in ads, nlp, computer vision etc.
- 1970-01-01 5y agoThis book has fun problems! Example: During the cold war, the U.S.A developed a speech to text (STT) algorithm that could theoretically detect the hidden dialects of Russian sleeper agents. These agents (Fig. 3.7), were trained to speak English in Russia and subsequently sent to the US to gather intelligence. The FBI was able to apprehend ten such hidden Russian spies and accused them of being "sleeper" agents. The Algorithm relied on the acoustic properties of Russian pronunciation of the word (v-o-k-s-a-l) which was borrowed from English V-a-u-x-h-a-l-l. It was alleged that it is impossible for Russians to completely hide their accent and hence when a Russian would say V-a-u-x-h-a-l-l, the algorithm would yield the text "v-o-k-s-a-l". To test the algorithm at a diplomatic gathering where 20% of participants are Sleeper agents and the rest Americans, a data scientist randomly chooses a person and asks him to say V-a-u-x-h-a-l-l. A single letter is then chosen randomly from the word that was generated by the algorithm, which is observed to be an "l". What is the probability that the person is indeed a Russian sleeper agent?
- kilotaras 5y agoBayes rule with odd ratios makes it pretty easy. base odds: 20:80 = 1:4 relative odds = (1 letter/6 letters) : (2 letters / 8 letters) = 2/3 posterior odds = 1:4*2:3 = 1:6 Final probability = 1/(6+1) = 1/7 or roughly 14.2% Bayes rule with raw probabilities is a lot more involved.
- thaumasiotes 5y agoOdds are usually represented with a colon -- the base odds are 1:4 (20%), not 1/4 (25%).
- deleted 5y ago[deleted]
- Aethylia 5y agoAssuming that the algorithm is 100% accurate!
- jstx1 5y agoData science and ML interviews can be tough because it's very difficult to prepare for everything and cover all the theory. A lot of the value you add comes from knowing the theory so it's understandable to test it but it's still hard to prepare well. And you have a take-home and/or LC style problem(s) in addition to the theory interview.
- minimaxir 5y agoThe hard questions in DS/ML interviews I've received over the years aren't the theory questions (which I rarely get asked), but the trick SQL questions that often depend on obscure syntax and/or dialect-specific features, or "implement binary search" when I'm not in the mindset for that as that isn't what DS/ML is in the real world.
- jstx1 5y agoI think they're fine as long as you know the format and have an opportunity to prepare or just get in the right mindset for it. And some things (like binary search) should be easy to write anyway. The SQL questions can also be a symptom of the type of job - Facebook's first data science round focuses a lot on SQL but that's because it's a very product/analytics/decision-making focused role without that much coding or ML. With data science you have to be more careful about these things when searching for a job; you can't just use the job title as a descriptor.
- disgruntledphd2 5y agoFacebook Product Data Science has always been a Product Analyst role more than anything else. I did the interviews a while back, and it was a pretty fun experience, but it's not what a lot of people call data science.
- jstx1 5y ago> but it's not what a lot of people call data science I think that's changed a bit over time and the term has expanded to mean more things. In addition to Facebook, another great example is this article from Lyft in 2018 where they say that they're renaming all their data analysts to data scientists and all their data scientists to research scientists - https://medium.com/@chamandy/whats-in-a-name-ce42f419d16c https://medium.com/@chamandy/whats-in-a-name-ce42f419d16c
- mrfusion 5y agoAre there deep learning roles that focus more on software engineering and using the tools rather than having a deep understanding of statistics?
- throwaway6734 5y agoI think they're called research engineering roles or ML engineering
- jstx1 5y agoThere are. But 1) the titles will vary a lot (software engineer, ML engineer, research engineer, data scientist etc.) which makes it hard to locate those jobs and to move in the job market in general 2) you still need a reasonable amount of theory (not necessarily too much statistics) to use the tools well. And in all likelihood you will be tested on it in some way during the interviews. 3) the interviews/job descriptions that don't emphasise the theory often will be for jobs where you get a title like Machine Learning Engineer but you focus more on the infrastructure rather than on the ML code
- time_to_smile 5y ago> having a deep understanding of statistics? As someone with a strong background in statistics, please tell me where I can find DS jobs that require this. For me and all my statistics friends in DS we find much more frustration in how hard it is to pass DS interviews when you understand problems deeper than "use XGBoost". I have found that very few data scientists really even understand basic statistics, I failed an interview once because an interviewer did not believe that logistic regression could be used to solve statistical inference questions (when it and more generally the GLM is the workhorse of statistical work). And to answer your question, whenever I'm in a hiring manager position I very strongly value strong software engineering skills. DS teams made up of people that are closer to curious engineers tend to greatly outperform teams made up of researchers that don't know you can write code outside of a notebook.
- disgruntledphd2 5y agoA good conceptual understanding of statistics is always helpful. It's not really tested for in most places though, where they regard a DS as a service that produces models.
- light_hue_1 5y agoI've interviewed well over 100 people for DL/ML positions. This may be a good roadmap to what some people ask, but it's a terrible guide to what you should ask. It's like a collection of class exam questions. Just as in programming, the world is full of people who can recite facts but don't understand them. There is no point in asking what an L1 norm is and asking for its equation. Or say, giving someone the C++ code that corresponds to computing the norm of a vector and asking them "what does this do". Or even worse, showing them some picture of some cross-validation scheme and asking them to name it. Yes, your candidates should be able to do this, but positive answers to these kinds of questions are nearly useless. These are the kinds of questions you get answers to by Googling. It's far more critical to know what your candidate can do, practically. Create a hypothetical dataset from your domain where the answer is that they need to use an L1 norm. Do they realize this? Do they even realize that the distance metric matters? Are they proposing reasonable distance metrics? Do they understand what goes wrong with different distance metrics? etc. Or problems where they need to use a network but say, padding matters a lot. Or where the particulars of cross validation matter a lot. This also gives you depth. "name this cross validation scheme" gives you a binary answer "yes, they can do it, or no they can't" And you're done. If you have a hypothetical dataset, you can keep prodding. "Ok, but how about if I unbalance the data" or "what if we now need to fine tune" or "what if the payoffs for precision and recall change in our domain", "what if my budget is limited", etc. It also lets you transition smoothly to other kinds of questions. And to discover areas of deeper expertise than you expected. For example, even for the cross validation questions, if you ask that binary question, you might never discover that a candidate knows about how to use generalized cross validation, which might actually be very useful for your problem. The uninformative tedious mess that we see in programming interviews? This is the equivalent for ML/DL interviews!
- coliveira 5y agoDo you have any books/material that can help the learner acquiring this deeper understanding?
- master_yoda_1 5y agoI know one good reference. https://www.deeplearningbook.org/ https://www.deeplearningbook.org/ Also there are various courses and lectures but that needs time and effort. There is no short cuts like the book posted by OP.
- pietromenna 5y agoWow! Great resource! Thank you!
- la_fayette 5y agoQuestion aside: using arXiv for distributing such interview questions, seems to me inappropriate. Is there any SEO trick behind it?
- seaman1921 5y agoYes I was also surprised how this is hosted on arxiv. Can someone explain why this is ok ? It is definitely not a scholarly article.
- master_yoda_1 5y agoMy problem with these line of numerous shallow books and courses are 1) Written by people who has no experience in industry or they are not working on "real" machine learning jobs 2) They think the standard in industry is pretty low and any BS works. For example the concept of "lagrange multiplier" is missing from the book. One need this concept to understand training convergence guarantee.
- kragen 5y agoWhy are all the em dashes missing from the PDF?
- abul123 5y ago
- Raphaellll 5y agoI actually bought this as a physical book on Amazon. Naturally it came as a print-on-demand book. Unfortunately it has many problems in this format. E.g. the lack of margins makes it hard to read the end of sentences towards the gutter. Also some text is pushed into each other. Not sure what source file format you have to provide to Amazon, but it's certainly not the pdf provided in the repo. Edit: It seems the overlapping text also occurs on some pdf readers: https://github.com/BoltzmannEntropy/interviews.ai/issues/2 https://github.com/BoltzmannEntropy/interviews.ai/issues/2
- ruph123 5y agoThe last 5 textbooks I bought new on amazon had similar problems. Totally unacceptable. I started returning them and (because most were exclusive to amazon) started buying them new on ebay with great results.
- Raphaellll 5y agoIt's really a hit and miss. This [1] book also came as print-on-demand but looks perfectly fine. Good layout and clean colors. [1] https://mml-book.github.io/book/mml-book.pdf https://mml-book.github.io/book/mml-book.pdf
- abul123 5y ago
- mcemilg 5y agoThe ML/DS positions highly competitive these days. I don't get why ML positions requires hard preparations for the interviews more than other CS positions while you do similar things. People expect you to know a lot of theory from statistics, probability, algorithms to linear algebra. I am ok with knowing basic of these topics which are the foundations of ML and DL. But I don't get to ask eigenvectors and challenging algorithm problems in an ML Engineering position at the same while you already proof yourself with a Masters Degree and enough professional experience. I am not defending my PhD there. We will just build some DL models, maybe we will read some DL papers and maybe try to implement some of those. The theory is the only 10% of the job, rest is engineering, data cleaning etc. Honestly I am looking for the soft way to get back to Software Engineering.
- hintymad 5y agoA reason for such requirements is similar to that that software engineers need to leetcode hard: supply and demand. Prestigious companies get hundreds, if not thousands, of applications every day. The companies can afford looking for candidates who have raw talent, such as the capability of mastering many concepts and being able solve hard mathematical problems in a short time. Case in point, you may not need to use eigenvectors directly in the job, but the concept is so essential in linear algebra and I as a hiring manager would expect a candidate to explain and apply it in their sleep. That is, knowing eigenvector is an indirect filter to get people who are deeply geeky. Is it the best strategy for a company? That's up to discussion. I'm just explaining the motives behind such requirements.
- vsareto 5y agoI can’t help but think there’s been a ton of filters used in the past to figure out if someone is deeply geeky, and we’ll continue to invent more in the future. It’s really looking like another rat race. Especially since there’s no central authority, every hiring manager has the potential to invent their own filter, and make it arbitrarily harder or easier based on supply and demand (and then the filter drifts away from the intended purposes).
- 5y ago
- pradn 5y agoI think I know the answer to this, but how bad should I feel for being a software engineer with little-to-no knowledge of deep learning. I suspect it's not bad at all since the software engineering field has split into a few camps, and mine - backend systems work - isn't in the same universe as the machine learning one, for the most part.
- jstx1 5y agoNot bad at all. I'm a data scientist and my not knowing React doesn't affect me one bit.
- pugio 5y agoI'm really enjoying the discussion here, as I've been thinking a lot about what a full modern ML/DS curriculum would look like. I currently work for a non-profit investigating making a free high quality set of courses in this space, and would love to talk to as many people either working in ML/DS or looking to get into the field. (I have ideas but would prefer to ground them in as many real-world experiences as I can collect.) If anyone here wouldn't mind chatting about this, or even just sharing an experience or opinion, please drop me an email (in my profile). EDIT: We already have Into to DS, and a Deep RL sequence far along in our pipeline, but are looking to see where we can help the most with available resources. I really appreciate this Interviews book as an example of what topics might be necessary (and at what level), taking into account the qualifying discussion here, of course.
- angarg12 5y agoI have been working as an ML Engineer for a few years now and I am baffled by the bar to entry for these positions in the industry. Not only I need to perform at the Software Engineer level expected for the position (with your standard leetcode style interviews), but I need to pass extra ML specific (theory and practice) rounds. Meanwhile the vast majority of my work consist of getting systems production ready and hunting bugs. If I have to jump through so many hoops when changing jobs I'll seriously consider a regular non-ML position.
- capdeck 5y ago> ... I'll seriously consider a regular non-ML position. What about asking for more money at the end? Multi-stage complex interview process eliminates more candidates. Some, like you say, will opt for a developer gig instead, probably because ML wasn't something they were interested in to begin with. That narrows down the list of candidates even more. Either "play the game" and ask for more money or don't play the game at all. Let employers pay extra for polished candidates.
- angarg12 5y agoIf what I want is money I think I'm better off getting competing offers as a regular Software Engineer and pumping the numbers.
- dekhn 5y agothere's a bunch of gatekeeping to get into ML. Part of it is that ML people don't want non-ML people to know just how much of what they do is drudgery and how little of it is exciting math, or have competition from people with similar skills. And those roles come with a lot of prestige. I went through all that and am a SWE again instead of an ML engineer. The one thing I learned from all that? "The very best models are distilled from postdoc tears".
- Jensson 5y agoGetting state of the art performance in ML requires a lot of intuition about equations though. I've seen some of the top ML engineers work at Google, they all have a really good understanding of math, how formulas translates into measurable results etc. An ML education or research background seems less important, if you have that from studying physics or math or anything then it still translates. I feel the biggest problem for people without an ML background is that you'd think "I don't know what I'm doing, I can't get hired for this job!", but fact is that people with ML backgrounds mostly don't know what they are doing either. They just get standard results by applying standard libraries, any programmer with some math skills could do the same, it is no harder than learning a frontend or backend framework, people just think it would be harder so they lack confidence about it. There are some gotchas you got to learn, but there are a lot of gotchas in both backend and frontend as well.
- lvl100 5y agoIn my 20s, I was doing data science at a very high level spanning multiple disciplines. Truly state of the art. I would like to think I was quite good at my job. I am 99% certain I would not have passed the interview bars set today. More specifically, the breadth they expect you to master is very puzzling (and seemingly unrealistic).
- nutanc 5y agoNow someone just train a model using these questions and answers and we will let the model take all future interviews.
- agentofoblivion 5y agoI commend the author’s effort, but this is not reflective of any interviews I’ve been part of, which is many across several industries and levels. Bayesian Deep Learning? Chapter 2 in Kindergarten? If anyone asked me a question on that, I would kindly ask them to eat shit.
- d4rkp4ttern 5y agoThis would be great resource for creating a DL/AI course. Or chapter quizzes for such a course. However, one of the important things when interviewing someone is that the person has not seen the question before. So as an interviewer my impulse would be to first ensure that my question is NOT in this book :) Or perhaps even if it is in the book, if the question is advanced enough, I could test how they articulate and reason through the solution, so I know they are not simply regurgitating the answer?