I think of it like a spreadsheet with the first column being the product id as a starting point (current product page, last viewed product, most viewed product) and all subsequent columns being potential recommendations which are generated upon creating an activity with a particular criteria in mind (site affinity, people who did this did that, most popular, etc.). Perhaps light machine learning with a defined starting point. So, it is a little bit like a search engine but without the filtering / faceting and all the decisions are known ahead of time and saved into an export. As such, you can also upload your own recommendations in the spreadsheet format that I mentioned above.