Thinking of ML from a product development perspective
We often come across requirements in product development that need to analyze, interpret predict or transform data coming from various sources in the business. Now, what does this mean in product development? How does this impact a product development team?
Let us look at the technological landscape – Gartner Top 10 Strategic Technology Trends for 2019 predicts that “By 2020, more than 40% of data science tasks will be automated”.
In fact, David Cearley, Gartner’s distinguished VP Analyst describes about “an intelligent digital mesh” and explains, “The future will be characterized by smart devices delivering increasingly insightful digital services everywhere”.
To stay competitive, it becomes important for every product owner or business analyst to understand, how to leverage AI (Artificial Intelligence) and related technologies like ML (Machine Learning) and Data Science, from a product development perspective, and provide better solutions. At first, integrating Machine Learning to any typical product development might look intimidating. Recently, I attended a webinar on LeadNow platform, which shed light in productizing Machine Learning. With that information and my experience at Imaginea, I have compiled my thoughts on how any developer should approach problem-solving for any requirement from the Machine Learning perspective. For this purpose, my post will cover these areas:
- Machine Learning product development in a nutshell – Feedback by learning
- Challenges in developing a Machine Learning product
- How to succeed in Machine Learning product development
- Machine Learning best practices
Here is a good read on productizing ML. Before going into details, let us take a look at the definition of product development:
“The creation of products with new or different characteristics that offer new or additional benefits to the customer. Product development may involve modification of an existing product or its presentation, or formulation of an entirely new product that satisfies a newly defined customer want or market niche.”
Now, Machine Learning based product development is all about applying data science findings on existing product to improve customer experience and keep customers more engaged and increase revenue. “Customers also bought” suggestions in an ecommerce site is a Machine Learning -based suggestion intended in increasing the cart value.
Why is ML talked about in everyday life?
The evolution of Machine Learning is very fast these days due to its demand in the market. Almost all revenue generating industries have ML in them now. Real-world example includes airport modernizations, where immigration, check-in, and baggage services are fully automated, thanks to ML/AI. Mobile check-ins and boardings are also moving towards ML/AI in many airports worldwide.
“The pace of progress in artificial intelligence (I’m not referring to narrow AI) is incredibly fast. Unless you have direct exposure to groups like Deepmind, you have no idea how fast — it is growing at a pace close to exponential. The risk of something seriously dangerous happening is in the five-year time frame. 10 years at most.” – Elon Musk
Now, looking at the current real world needs, AL and ML are widely applied in applications – ranging from simple chatbots making predictions based on ‘buying history’ or ‘nearby location’ to the use of algorithm and software in the analysis of complex medical data. Siri and Alexa, the digital assistants, have become a major companion in running day-to-day activities, thanks to AI and ML. Though these technologies are used in everyday objects, we hardly notice their presence.
ML product development in a nutshell
From real-world examples, it is obvious that AI and ML are driving digital transformation initiatives. Now knowing its importance, let’s dive deeper in the things to be considered when moving towards Machine Learning product development in the software industry.
In my opinion, knowing the basic knowledge of Machine Learning (ML) is a prerequisite for:
- Developers to proceed with solutions, and think about resources needed and their costs
- HR to calculate the amount of manpower
- Salesperson to decide on the amount of data required to propose/proceed with product signing before developing an Machine Learning product.
The team should be focused in clearly defining what business problem they are going to solve instead of focusing on the technology itself. Having said that, here are a set of simple questions to answer before implementing Machine Learning in product development:
- When to apply Machine Learning?
- Where to apply Machine Learning?
- Do we have enough data to solve the customer’s problem?
- Where less amount of data and where more amount of the data makes sense?
Domain knowledge is another aspect needed to propose any concrete solution to the clients. Therefore, having domain experts in the team before signing a product is a must for any successful Machine Learning product development.
Machine Learning Productization = Data Science + Domain Knowledge + Engineering work + Cleanup and processing + Scaling up + results in production meets the requirement and its variants.
Feedback by learning
In any Machine Learning product development “feedback by learning” is important. Openness to change and trying to reduce error is important to make a successful Machine Learning product. Being open to alter and modify the algorithms can enable machines to learn about its progress and help learn its behavior, and incorporate corrections immediately into all future analyses. This type of feedback learning can also allow for correction in previous analyses to meet customer demands.
Challenges in developing an ML product
Making a product successful is not easy. A Machine Learning product will have double the challenges than the normal ones. Those challenges include:
- Availability of data.
- Handling data loss and anomalies – Due to the feedback, there can be a frequent change in data. Therefore, handling data loss and modification of proposed algorithms and other processes is quite challenging.
How to succeed in ML product development
The first and foremost important aspect is to get the complete data that is made available by the client or to collect appropriate data from all the available sources. After getting the complete data, we have to:
- Decide on an algorithm – A concrete algorithm decision based on analyzing data is a must.
- Single or multiple algorithms – Sometimes, splitting the problem statement and applying one or more algorithms might be required to address the problem. Those have to be decided upfront for any complete product.
- Are various pipelines of an algorithm required?
- Being prepared to evolve as a complete product and thinking as a product always, not just a solution, is the key to a successful product.
ML best practices
- When the client asks for one-dimensional data, being prepared for multi-dimensional is highly recommended.
- Taking an enormous amount of time while pre-processing is good for any Machine Learning product.
- Taking decisions on missing values upfront will be an added advantage and less risk-taking and analyzing. Consider:
- What to do with missing values?
- When to replace a missing value?
- What should be the missing value replacements?
- Percentage of missing value and its impacts.
- Making sure no algorithm has Null and NaNs.
- Evaluating proposed/ decided algorithms again and again on various iterations before implementing and questioning ourselves like,
- Does our algorithm really solve the business problem?
- Have we handled all edge cases?
- Are we prepared for any last minute data changes and deletions?
- Are we open to feedback?
- The success of any product relies on its final output. Hence it is important:
- How to present your final output to your customer.
- How to present that it is not very complicated at very first look.
- To decide whether to expose all outliers, pre-processing results and its modification or just display the visual representation of the final data.
- Explaining/ comparing existing algorithm solutions and making it clear to the client.
- Finally, when do you call a product is ML ready?
- When it involves monitoring.
- When it accepts end-user feedbacks and makes necessary tweaks.
- When it is able to track the feedbacks.
- When it is capable of monitoring any results.
Google and YouTube have their Machine Learning products ready by beta releasing and accepting feedbacks. The key to a successful Machine Learning product is accepting feedbacks and implementing according to the customers’ needs.