I worked on a personalisation system that affected the sort order of products returned from a search so as to place the products in order of the customer's propensity to buy.
After the initial excitement had worn off we found that the identified preference became stronger and stronger. Not because the customer's ACTUAL preference was any stronger but because they were only seeing products based on past preferences (unless they started paginating through results which is something very few customers did).
We identified the need to introduce a random element into the mix. Using machine learning techniques to produce an algorithm and dataset identifying likely customer behaviour based on past behaviour was relatively easy. Doing the same thing to identify the optimum ratio of random elements was a problem we didn't crack.
One of the dangers we identified was that initial results were so good as to lull an organisation into a false sense of security. The self fulfilling prophecy element would lead to customer boredom and associating your brand with a very limited range of products even if in reality the brand offers a very wide range. It is easier and cheaper to retain a customer than to acquire/reacquire them.
Another aspect that is missing is the skill in salesmanship. If ML deduces that women tend to put on weight as they age then you have to be damn careful how you market clothes to address a fact that the customer may not be comfortable with.