"For example, if a new user lands onto a site selling watches, we’ll have a really expensive product and a relatively cheap product. If the user clicks on the expensive product and ignores the other one, then we know they want expensive watches and we’ll show higher-end products on the next page."
The article is aimed to simplify the basic things that would happen, and not to give an explanation of the algorithm.
In reality, the indications we learn from different products are considerably more nuanced than more\less expensive depending on a choice between two products.
I've actually been planning to write about it (the actual algorithm, or at least the basic concepts there) and put it up for a while now, but finding time for writing is pretty hard....
Here's my best shot at a short technical summary of the concepts that are relevant and how they come into play:
1. Product information: You can easily give a score to how much information (in the information-theory sense) and interest in product gives on the random variable that describes what that user is likely to buy. This is easy and straight forward.
2. Purchase characteristics - Instead of looking at what a user is likely to buy as one complex random variable. It's much better to split it into a set of variables, that can be easily filtered\sorted by. Price range is one, but things like style preference are more complex. You'd want to know how informative each product is in relation to each of these.
3. The more difficult problem is figuring out how to effectively split this huge random variable into useful and simpler random variables. This is probably the most interesting part of our research, and where we've had the most use for deep learning.
As for an example: I'd probably look to the second page to find a good example. If we already know a user is looking for relatively expensive high-end watches - which products do we show them that will teach us about other things (specifically optimize on information on other aspects that aren't price)...
I hope this is clear enough - I really should at some point write this down more clearly...
I can imagine it being a bit more sophisticated than that, such as after a few clicks they learn a preference for leather straps or gold faceplates, or a classic design so you start sorting "browse" pages differently. If you have enough data, you might also be able to discern "customers who looked at x usually end up buying y". Those preferences could also be carried forward if they're making use of retargeting ads.
Good question! Integration is one of those incredibly important points that usually isn't "exciting" enough to get a lot of attention. But it's actually a huge factor in our business.
We have 3 ways to integrate with stores:
1. Plugin for supported platforms: Shopify, Magento and AbanteCart for now. This method is definitely the simplest one - usually not much more than a one click install.
2. API calls: We open APIs for reporting information (which user showed interest in which product) and decision (which items should I show this user on this page). This will usually result in a very small amount of lines of code inserted at various places in the store's codebase. It's also great because it really is quite independent of any specifics of the store's implementation.
3. Custom JS: This will result in a small but not negligible amount of work on our side which will result in the store needing to insert a single line of JS into their template and everything will work. We'll generally only do this with larger stores where we can justify the development on our end.
In any case, we don't want the store owner to have to do any meaningful amount of work in order for our product to run.
I remember reading this article. We do a few things differently, though we try to take what we can from existing literature:
1. They actively ask questions. We use the natural product placement in stores as our "questions". This means a lot of consideration for whether a user has even seen this product and page placement.
2. Another consideration that arises from using natural product placement is that we don't have a "stopping rule". We always need to balance the need to convert into a sale on this page with learning for the next one.
3. One more thins is: We absolutely need to use what they call "complex decision heuristics". Even what they describe there as examples of complex heuristics are sometimes insufficient to describe user behavior in our data.
TLDR: Most of the basic concepts are shared (which probably makes sense), but our usage means a lot of small things are different and some of them are quite interesting research projects in themselves...
Fascinating product, sorry for story formatting comment but I think you missed an h4 for "You’re gathering a lot of information on user behavior. Have you noticed any trends?"
People don't always use concepts with the exact same definitions in mind. I sometimes interchange between deep learning and neural networks without thinking about it (even though I probably shouldn't).
Generally speaking, neural networks is a very specific type of algorithm. It's been around since the 80s, with the most interesting changes since then being faster computers and more data.
Usually, when I hear people say deep learning, they mean one of three thing: Sometimes they mean more specific types of deep (= more layers) neural networks, sometimes a more general class of algorithms (out of which NN are probably the most important by far) or sometimes they're using a meaningless buzzword because it's trending...
I know it's uncool, but the Wikipedia article on Deep Learning is actually quite a useful read to get a sense of the jargon and what everything means...
Could you please elaborate a bit regarding how much logical integration is needed between different sites? I mean, how much tweaking does the algorithm need (if at all) in order to fit a specific site design or a specific product?
I hope I'm understanding the question correctly. If I don't answer fully, go ahead and comment again...
Mostly, the answer is that the algorithm doesn't need tweaking between different sites. It's even a bit more generic than that: It mostly needs possible actions to take (in our case - products it can show), information sources (in our case - indications of interest), and a goal function to maximize (in our case - something like revenue).
We're playing around a bit with slightly different weights to different verticals - but definitely now for specific stores.
20 comments
[ 2.9 ms ] story [ 54.7 ms ] threadHow is that deep learning?
The article is aimed to simplify the basic things that would happen, and not to give an explanation of the algorithm. In reality, the indications we learn from different products are considerably more nuanced than more\less expensive depending on a choice between two products.
Here's my best shot at a short technical summary of the concepts that are relevant and how they come into play:
1. Product information: You can easily give a score to how much information (in the information-theory sense) and interest in product gives on the random variable that describes what that user is likely to buy. This is easy and straight forward.
2. Purchase characteristics - Instead of looking at what a user is likely to buy as one complex random variable. It's much better to split it into a set of variables, that can be easily filtered\sorted by. Price range is one, but things like style preference are more complex. You'd want to know how informative each product is in relation to each of these.
3. The more difficult problem is figuring out how to effectively split this huge random variable into useful and simpler random variables. This is probably the most interesting part of our research, and where we've had the most use for deep learning.
As for an example: I'd probably look to the second page to find a good example. If we already know a user is looking for relatively expensive high-end watches - which products do we show them that will teach us about other things (specifically optimize on information on other aspects that aren't price)...
I hope this is clear enough - I really should at some point write this down more clearly...
If I have a custom site, what are the chances you could work with it without expensive customization?
We have 3 ways to integrate with stores:
1. Plugin for supported platforms: Shopify, Magento and AbanteCart for now. This method is definitely the simplest one - usually not much more than a one click install.
2. API calls: We open APIs for reporting information (which user showed interest in which product) and decision (which items should I show this user on this page). This will usually result in a very small amount of lines of code inserted at various places in the store's codebase. It's also great because it really is quite independent of any specifics of the store's implementation.
3. Custom JS: This will result in a small but not negligible amount of work on our side which will result in the store needing to insert a single line of JS into their template and everything will work. We'll generally only do this with larger stores where we can justify the development on our end.
In any case, we don't want the store owner to have to do any meaningful amount of work in order for our product to run.
1. They actively ask questions. We use the natural product placement in stores as our "questions". This means a lot of consideration for whether a user has even seen this product and page placement.
2. Another consideration that arises from using natural product placement is that we don't have a "stopping rule". We always need to balance the need to convert into a sale on this page with learning for the next one.
3. One more thins is: We absolutely need to use what they call "complex decision heuristics". Even what they describe there as examples of complex heuristics are sometimes insufficient to describe user behavior in our data.
TLDR: Most of the basic concepts are shared (which probably makes sense), but our usage means a lot of small things are different and some of them are quite interesting research projects in themselves...
Generally speaking, neural networks is a very specific type of algorithm. It's been around since the 80s, with the most interesting changes since then being faster computers and more data.
Usually, when I hear people say deep learning, they mean one of three thing: Sometimes they mean more specific types of deep (= more layers) neural networks, sometimes a more general class of algorithms (out of which NN are probably the most important by far) or sometimes they're using a meaningless buzzword because it's trending...
I know it's uncool, but the Wikipedia article on Deep Learning is actually quite a useful read to get a sense of the jargon and what everything means...
Mostly, the answer is that the algorithm doesn't need tweaking between different sites. It's even a bit more generic than that: It mostly needs possible actions to take (in our case - products it can show), information sources (in our case - indications of interest), and a goal function to maximize (in our case - something like revenue).
We're playing around a bit with slightly different weights to different verticals - but definitely now for specific stores.