Hacker News new | ask | show | jobs
by tfehring 2907 days ago
>say a person bought a pair of shoe, sunglasses and a book. For their newsletter, we will show include shoes, sunglasses and books. This was a lot more relevant than sending random stuff.

I agree with the general sentiment of the article, but this seems like a poor example, since a more sophisticated approach can add a lot of value to a recommendation system. How do you know whether a customer is likely to want more than one item in any of those categories? If they already purchased sunglasses, wouldn't they be more likely to purchase, say, a sunglasses case and/or sunscreen? If they purchased a book, do you recommend the same book again? And if not, how do you choose which book(s) to include?

Of course, you could technically still handle this in SQL with a bunch of CASE statements, but obviously that doesn't scale well across a wide range of products. The whole point of ML/AI in that use case is to scale that type of nontrivial decision making.

4 comments

> but this seems like a poor example

In fact this is a perfect example of how NOT to do purchase-history-based suggestions, which unfortunately also seems to be how most companies do it. They see a big purchase (or search terms relating to one) and spam you with options for that purchase. But if I just bought a car, or a drone, or a laptop, then the last thing I want to see is ads for other cars or drones or laptops.

Even applying just a little intelligence and showing ads for accessories (floor mats? spare batteries? bluetooth mice?) would make things substantially more useful.

I used to see that a lot on Amazon. I just bought an electric toothbrush, why would I buy another? Haven't been shopping much lately so not sure if it's gotten any better. My example is from last year, and I remember mentioning this problem in an interview with Amazon 6 years ago, and I'm sure machine learning has been involved for longer than that. It's still easier to screw up a machine learning model than SQL.
How about if you can identify a smart phone in proximity to a store display, and later target ads at that user? That would get you a lot of people that didn't buy a product, but demonstrated interest in a category. I suspect someone has already figured out how to make this happen, but I haven't found explicit confirmation.
Obviously ML can add a lot of value here, but its questionable to me if its trivial to build such a model with available data, keep said model up to date, or train variations on it easily, cheaply and quickly enough to A/B test the result and ensure you’re actually making any tangible difference.

So you know... I don’t think it’s unfair to say that for smaller vendors, the cost/effort of setting up a ML model may dwarf the fractional improvement it offers over just having one person doing human generated SQL queries.

The point is this isn’t like machine vision or voice, where its almost expontentionally better than traditional approaches.

It’s just... a bit better. Which is worth it only if the fractional improvement pays for the setup cost.

It's not unheard of to see +10-30% in revenue when adding a recommender system [0]; The system described by the author is arguably more complex than a recommender system, since he has to develop, maintain and evaluate a set of rules that are not based on real data, but only on his intuition of what users want. GP gave good examples of how this would easily fail (do you always want to recommend items from the same category; if not, how do you know which other category to recommend?)

[0] http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.895...

For newer or smaller firms the SQL approach makes sense. Both because there is less data, and it's less risky to implement. Once the context is fully fleshed out, then it's easier to move on to a ML recommender system. It's also easier to track improvement vs a benchmark.
All the big cloud providers are offering pre-trained models for currently popular AI/ML use cases, such as image labelling, face recognition etc. I think this will be the easiest way to apply AI/ML, combined with transfer learning so that the provider can pre-train the basic model and then provide a way for the customer to customize it further for a specific use case.

Of course this can also fail if the pre-trained generic models don't offer enough value and you end up having to develop your own models, but we'll see how it goes.

Btw, I've published a short Kindle book that aims to provide an overview of these pre-trained services currently available on various clouds, it can be found on Amazon by searching for AI ML Managed Services 2018. It attempts to save you the trouble of scanning through all the online documentation to find out what they do.

But the SQL approach at best only answers which item type to present the customer.

How does the query make a good decision on the specific item?

Speaking of their examples, and given they send promotional letters not too frequently, I'm sure there are many people around me who will buy many sunglasses, shoes, or clothes for different styles. I just don't want to be advertised toaster and bathroom stuffs together. IMO you have to do research on items those can be matched together for each group of users.
Recommend items that are bought together. Other customers who buy these sunglasses could be shown the shoe and the book.

It's a lot less stupid that recommending to buy the same item again and again.