Making a geographic recommendation engine
Recommendation engines are among the most widely used and recognizable applications of machine learning. The familiar “you might also enjoy” or “customers who viewed this item also viewed” when online shopping is the result of an algorithm trying to maximize the relevance (and click-through-rate) of the proposed links. The standard way to do this is to use similarity metrics that relate items and users. An approach known as collaborative filtering has been used extensively to make these suggestions, basing the similarity scores on past purchasing or user ratings. It represents the ratings of users for items as vectors, which then can be compared with vectors of other user/items to produce similarity scores with linear algebra methods. The method, although very effective (it has most conspicuously underpinned the success of e-commerce sites, but is employed in many scenarios), has its limitations. In particular, what is known as the cold start problem whereby a platform does not have sufficient items or users to make reliable recommendations. In this case, other criteria should be used to characterize the similarity of these items. Also, the prominence of some items in ratings and number of reviews can lead to filter bubbles if left unchecked, limiting the range of exploration by the users.
Recently, we were asked to design a recommendation engine for the website of a leading Tourism authority in Europe. In addition to all the famous attractions, it includes links for many important but sometimes relatively unexplored small towns and sites in the region. To promote the exploration of the website by the visitors beyond the best well-known towns and sites, and help them discover the region, we borrowed a similarity metric from the physical world: the geodesic distance between two
In addition to the standard collaborative filtering suggestions, we incorporated a mechanism that searches among nearby towns and sites of interest only, to discover recommendations that share themes and features assigned by expert travelers in the region. For example, when a user is viewing a link corresponding to a town known for its historical sites, the engine will search for other sites and towns rated high for history by human experts within a certain radius. It will include some
of them in the recommendations list, alongside the suggestions obtained with non-geographic methods. In this way, a user following these recommendations can essentially browse along a geographic trail connected by common themes, like traveling in the real world while following a variety of interests. Clicking on the geographic recommendations will take users deeper into the region, providing ideas, and aiming to inform their real-world experiences when they visit the region.