Some principles should be used to be as efficient as possible in launching all product features related to Machine Learning.
1. Learn how to formulate a problem properly
2. Keep the product in mind at all stages of the solution development
3. Invest time in evaluating the results of the impact on the product
1. Learn how to formulate a problem properly
It is important to formulate clearly what kind of user problem we are solving. If you are dealing with a product, you have to start with a very simple question - do we really need machine learning here? Machine learning often requires a lot of investment, resources, team, and time. And you have to remember that many problems are solved well without machine learning, even if it sounds less exciting.
Option number one - we make a news feed, formed from the posts of the groups that a user is subscribed to. And that means the task is to rank a few thousand entries from the groups.
Option two - there can be a much more difficult task that may lie behind the same word “a recommendation”. We can search among the several millions of posts that are created on the platform, basically. And what's the most interesting for the user? Solving the second option will take, for example, three times more time and five times more resources. So you will do it not in the next quarter, but at the end of the year. Therefore, if you fail to formulate the problem, you can begin to solve something fundamentally more difficult.
Everything we do should fit our specific product. The same technology or solution can be used completely differently depending on the main features and goals of the product.
For example, the classical task of Machine Learning is face recognition in photos. Seems very simple - to find the faces and to understand who is in the photo. But there can also be many options. The user uploads a photo - it should be analyzed and ML should find the friends of the user and automatically mention them. Or there is a more complicated option - to find people among all the millions of accounts, not only among friends and suggest tagging them on the photo. If we solve a complex problem, we will automatically solve a simple one. But we will spend much more effort and get some great code, and cool technology that we don't really need in the product, and everything could have been done faster.
It's always necessary to measure user metrics. If we're talking about facial recognition, it's interesting to look at graphs of how often people agree with our friends' suggestions, and how often people click "No, that's the wrong person." If we just know that this model is 80 % accurate, that information means almost nothing to the product. But if we see a user cancel our suggestions every 10th time, then we're probably wrong too often.
Testing on the % from all the users.
Setting up criteria of:
Additionally to first option: