
Ask HN: How do you approach a problem that can potentially be solved using ML - prats226
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.
======
itamarst
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.

~~~
prats226
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?

~~~
itamarst
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.

