While going through Machine Learning and its related testing, one of the important things to pay attention to are the concepts of bias and context. There are arguments flying left and right about the effect of bias in Machine Learning. Some believe that Software Testing could be a checkpoint of reducing, mitigating, preventing, or even eliminating bias in the Machine Learning models. Let’s look at these aspects in this blog.
In Machine Learning models, data is important. The model is formed with data, and the extent of data that is considered to build a model depends on how frequently you want the model to be updated based on real-time conditions. In some cases, models could change every 30 minutes, and in some cases, they could be updated every year. Based on the models, predictions happen, and actions are taken based on predictions. In this process, there are points where bias can be in. I have listed a few, but this list is definitely not comprehensive and there could be more:
- Selecting input parameters for model building
- Ways of capturing data including frequency
- Selecting demography for data collection
- Selecting the Machine Learning model in case of multiple options
- Selecting the interval between model updates
- Drift recognition and associated actions
- During Feature Engineering
- Selecting Hyper-parameters
- Conclusions made on predictions
- Actions taken based on conclusions on predictions
Software Testing professionals should be wary of these instances and be attentive to make sure that the biases do not happen.
One challenge is that humans are generally biased one way or other. It might help in having a group of people taking a critical look and testing the Machine Learning process than giving that responsibility to just an individual. This might reduce the chances of bias, but again, it could increase the chances of bias too based on the composition of that team!
There is one significant point that I would like to bring up, which is about bias and context.
Context-driven decision making (called sometimes as ‘human override’ on top of machine decisions) is natural to human beings. That could be only done by human beings based on what they sense and what is appropriate for the situation. There are several reasons for context playing a major role in decision-making. The machine may not be tracking a required parameter which became important in that particular context. Or the data is skewed that the prediction or the recommendation suggested by the machine is totally wrong. Or the data captured could be wrong or noisy.
If decisions are finally left to the humans, context decides the final call, but here, there is the danger of bias!
Where do you draw the line between what is contextual and what is biased? How do you know that the person(s) making the contextual decision are free of bias? How do we know if the contextual decision made is appropriate for the situation?
This then becomes a borderline ethics problem too. The line between bias, context, and ethics is really fine and one has to navigate with extreme caution.
One solution is to double-check, cross-check, and validate the reality on the ground before making that final call, and not relying entirely on the data collected and the model. This will prevent many errors in the process.
As you can see, Software Testers have a major role to play in these circumstances. A good set of attentive and careful eyes that do the needed validation and verification can go a long way in coming up with the final course of action.
Go Testers!
For Machine Learning Testing strategies, bias and context, feel free to contact me.