You may have read about ML.net by now. Among other things there is a recommendation engine. So I decided to try if it would be usable in an Commerce solution. And it is, up to a point.
First I needed to get all the orders and put the products that were bought together for each order in the training model. I trained the model and saved it as a file, to be able to reuse it. You can also create a scheduled job to update the data once on a while.
As there are not a lot of options with the ML.net recommender, just getting a score on the likelihood of two products being bought together, you would need e.g. to have related items in place for your products.
So what you can do to optimize the up-sell items you display is get the related items for the items in the cart, run them through the engine and display only the ones with the highest score.
It’s a small win, but could boost your up-sell.
So would I use it in a huge Commerce solution? Probably not, Episerver Perform would be a better choice. But for small solutions it could be a nice addition.
The full POC is in a gist