Alkindi Recommendation Technology
People looking afford good products.
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.
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.
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.
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.