Ask HN: How do you approach a problem that can potentially be solved using ML

2 points by prats226 ↗ HN
I am asking this because not all developers have done enough machine learning to be able to apply to some problem for which it could be useful. In that case, do you typically try to solve it with some rule based approach? Or ask product manager to bring a data scientist to team or try to put together a machine learning algorithm yourself or find some api that can solve it? One such problem could be ranking feed in social app.

3 comments

[ 3.1 ms ] story [ 21.3 ms ] thread
Figure out value to company in getting it done well.

If it's low value, just slap something together (or don't do it).

If it's potentially high value, figure out how to validate the value.

Eventually you get to "do I hire someone or train someone or what" but if it's a big enough project you want to do some upfront research.

So lets say a developer gets to solve a small problem like ranking feed in their social platform. I would love to get feedback from developers here how would they approach solving it?
0. Figure out how much time management wants spent on this. Probably try to get e.g. minimum of 2 weeks developer time allocated, depending on level of skill and how complex the problem is, how complex the site is, how hard extracting data is, etc.. Might be more like a month.

1. Come up with a way to measure improvement (e.g. number of clicks or something), and make sure it can be measured.

2. Make sure there is infrastructure for A/B tests so some subset of users can be tested with different algorithm. Technically optional, so skip if it will take too long to implement... but having that is much more likely to give you meaningful results.

3. Spend sometime looking at what users do, and try to figure out what their logic is. Try to think what a oracle algorithm that could magically guess what they wanted would do.

4. Figure out if it can be approximated with stupid rule-based system.

5. If not, skim Machine Learning intro, then see what ML stuff is available within cloud my service is running on. If not in cloud, look into open source libraries.

6. Deploy to 10% of users, at random. Wait N days, depending on how big site is. Compare metric for 10% who got new ranking vs. 90% who didn't.