Tasks:

  1. Analyze an existing recommender system that you find interesting
  2. Perform a Scenario Design analysis. Consider whether it makes sense for your selected recommender system to perform scenario design twice, once for the organization (e.g. Amazon.com) and once for the organization’s customers.
  3. Attempt to reverse engineer what you can about the site, from the site interface and any available
    information that you can find on the Internet or elsewhere.
  4. Include specific recommendations about how to improve the site’s recommendation capabilities going forward.
  5. Create your report using an R Markdown file, and create a discussion thread with a link to the GitHub repo where your Markdown file notebook resides. You are not expected to need to write code for this discussion assignment.

Recommender System

Alkindi Recommendation Technology

Target Users

People looking afford good products.

What are the key goals?

Alkindi recommends products to a user by identifying other users whose tastes are similar to those of the user, then recommending products that those similar users have tended to enjoy. This approach is called collaborative filtering, because users collaborate to recommend products to each other, using one another’s opinions to filter out all but the most relevant content.

How can the application help them accomplish their goals?

A key difficulty with implementing robust collaborative filtering technology in real time has been scalability: accurately finding the most similar users to a given user as the user base grows has been viewed by some as computationally intractable. Alkindi avoids this problem by moving the most computationally intense calculations offline.

Alkindi use a batch process to divide our user base up into groups, or clusters, of users of similar tastes, and to compute a range of statistics associated with these user clusters. To generate recommendations for a new user, we simply search through the clusters (rather than through the users) to find ones that reflect the user’s tastes, then recommend based on the statistics associated with such clusters.

Users express their tastes by assigning ratings to products. For example, users of the Alkindi movie recommendation engine rate movies on a scale from 1 (low) to 6 (high). To model users so that they can be grouped together, Alkindi represents them geometrically as vectors in a high-dimensional space.

Alkindi partitions its existing user base into clusters using “K-means”, a statistical algorithm that maximizes the geometric tightness of the clusters.
Tightness depends on the way in which distance in rating space is measured. Alkindi has developed a novel metric that smoothly integrates all available data: in the case of movies, two users are close in rating space if they tend to see similar movies, and rate the movies they see the same way.

Reverse Engineering

Product clusters in the Alkindi recommendation engine currently correspond to movie genres: action films, comedies, etc. The user base is partitioned into user clusters associated with each product cluster. For example, each user belongs to an action user cluster, which agrees with the user on action movies and is used to recommend action movies to the user. Similarly, each user belongs to a comedy cluster, a drama cluster, and so on. The Alkindex then measures how effective all of the user’s clusters are likely to be at recommending movies to the user.

Recommendations for Improvement

Implementing more general techniques for grouping products based on a range of criteria is an important step in the future development of this type of engines. It is important to increase the amount of data on the available products in their database.