Recommender Systems in Industrial Contexts
Total Page:16
File Type:pdf, Size:1020Kb
THÈSE Pour obtenir le grade de DOCTEUR DE L’UNIVERSITÉ DE GRENOBLE Spécialité : Mathématiques, Sciences et Technologies de l'Information, Informatique Arrêté ministériel : 7 août 2006 Présentée par Frank Meyer Thèse dirigée par Eric Gaussier et codirigée par Fabrice Clerot préparée au sein du Laboratoire LIG dans l'École Doctorale MSTII Recommender systems in industrial contexts Thèse soutenue publiquement le 25 janvier 2012 devant le jury composé de : Mme Anne Boyer Professeur de l'Université Nancy II Rapporteur M. Fabrice Clerot Responsable de l'Unité R&D PROF à Orange Labs Co-encadrant Mme Nathalie Denos Maître de conférence de l'Université Grenoble II Membre M. Marc El-Bèze Professeur de l'Université d'Avignon et Pays de Vaucluse Rapporteur M. Eric Gaussier Professeur de l'Université Grenoble I Directeur Mme Isabelle Tellier Professeur de l'Université Paris 3 Membre Version 3.30. May, 2012. Page 2 "Discovery is when something wonderful that you didn't know existed, or didn't know how to ask for, finds you" Fortune Magazine. Cited by Greg Linden, creator of Amazon's recommender engine. Page 3 Page 4 Acknowledgments First of all, I would like to thank all members of the Jury for having kindly agreed to evaluate my work. I am honored that Anne Boyer and Marc El-Bèze have agreed to report on my thesis. I warmly thank my supervisor, Eric Gaussier, for the confidence he has shown me during the last four years. His regular supports, despite the distance between Grenoble and Lannion, his advice and his encouragement have been a key driver for my work. I warmly thank my co-supervisor of PhD, Fabrice Clerot for his support, his numerous re- readings, his advice and for many constructive discussions which enabled me to achieve my overall analysis protocol that I present in this thesis. I thank the laboratory ASAP Orange Labs Lannion for allowing me to undertake my thesis during my research project: for this reason I thank once again Fabrice Clerot, Head of R&D Unit PROF and Patrice Soyer, former Head of the laboratory ASAP, who made this project possible. The final phase of drafting this document lasted several months during 2011. Without the facilities I received this year in the "Object of Research Media Search" this work would have been very difficult. As such, I thank Henri Sanson, Head of the "O.R. Media Search" and Sylvie Gruson, Head of Development Projects "Recommendation" for their kindness. I also want to thank the team of the of R&D Unit PROF for their help, advice, or just for their expressions of sympathy. In alphabetical order, thank you to Anaïs, Aurélie, Barbara, Bruno, Carine, Christophe, Dhafer, Dominique, Françoise, Marc, Nicolas, Pascal G., Philippe, Raphaël, Romain G., Romain T., Sami, Sylvie, Tanguy and Vincent. Several people participated in the development of the versions of Reperio or part of its benchmark during the last four years: Laurent Candillier (co-works on similarity measures, core Reperio version 1), Stéphane Geney (optimizations, DBMS, API, industrialization), Pascal Gouzien (platform tests, web services), Patrick Losquin (optimization and engine API, Web services), Julien Schluth (API engine and thematic part) and Damien Hembert (rewrote version of Reperio E). I thank them greatly for their technical contributions which were often essential. Finally, many thanks to my English teacher, Steve Hill, of LCI, for the time we spent to read and improve my English in many passages, and for all the time spent talking on many subjects, including the automatic recommender systems. I am not yet expert in English, it is a large project, but no doubt that Steve is very familiar now with automatic recommender systems! Page 5 Page 6 Dedicated to my family. Page 7 Page 8 Executive Summary This work presents the results of a research and development project dealing with automated recommendation systems in an industrial context, at Orange company (France Telecom Group). Chapter 1 of this thesis provides a formal framework to the automatic recommendation, and provides standardization and formalization of core functions. We list the possible modes of recommendation, crossing the main objects or attributes manipulated by a recommendation system: items, metadata about items, users, socio-demographic data on users. We identify the various types of data sources used for a recommendation engine. We end up with four types of recommendations (item-to-items, item-to-users, user-to-users, user-to-items). Then we propose four core features of the automatic recommendation: Help to Decide: predicting a rating for a user for an item Help to Compare : rank a list of items in a personalized way for a user Help to Discover: provide a user with unknown items that will be appreciated Help to Explore: give items similar to a given target item The first two features require a personalized scoring primitive function of an item for a user, the last feature requires a similarity function between objects. The "Help to Explore" feature requires the use of a primitive function of similarity between two objects. The "Help to Discover" feature can be implemented by one primitive or the other. We propose a classification of Recommender Systems (R.S.) not based on the data source, but based on the primitive functions: a scoring engine, a similarity engine, and, for the last emerging category, a tags engine. In Chapter 2, the state of the art, we identify the main techniques used by the automatic recommendation systems. Three features attracted our attention: the association rules, the K- Nearest-Neighbor (KNN) methods and the fast matrix factorization methods, especially a method called Gravity. We consider that the KNN methods correspond to a generalization of the association rules method and are more flexible. We therefore focus on the presentation of KNN and fast matrix factorization algorithms. We give an overview of different systems to show the diversity and richness of recommender engines' technology, while using as magnifying glass the first chapter to analyze it. The second stage of this work was the creation of a recommendation system to meet industrial needs. Chapter 3 describes an automatic recommendation system designed and developed in Orange, the Reperio engine. This is an automatic recommendation engine using a KNN method as kernel. Its first version was developed in 2007 and was operational in the same year. Since then it has been used in operational services of France Telecom. The recommendation engine Reperio allowed us to study the key factors that influence the performance of systems based on KNN methods. In chapter 3 we show that the KNN methods are very competitive as long as you use good similarity measures to define neighborhoods. We introduce an appropriate modification of the Pearson similarity and demonstrate its efficiency. We show that the KNN methods are fully adapted to the functions and requirements defined in Chapter 1: KNN methods allow us to build industrial engines recommendation both generic and flexible. Page 9 We also show that hybridization techniques, and content-based recommendations are well adapted to cold start issue especially if user profiles are small. However, with profiles of sufficient size (over 20 ratings), a purely collaborative system becomes after a few hundred users more efficient. These results are of course related to a given size catalog (around 20,000 items). The third stage of this work is the proposal of an evaluation process of automatic recommendation systems. This methodology is based on the combination of the four core functions tasks of a recommendation system: Help to Decide, Help to Compare, Help to Discover, Help to Explore, taking into account the different behaviors of the following segments: heavy users and popular items, heavy users and unpopular items, light users and popular items, light users and unpopular items. We experience this method by comparing four recommendation algorithms: two major methods of the state of the art: KNN and Gravity and two simple methods: a random predictor, and a default predictor based on the average users' and items' ratings. We show that the two major methods are rather complementary as they perform differently across the different segments. We show that we could use the two algorithms together, for instance to produce a KNN matrix based on the dimension reduction done by Gravity, with still a correct quality. Gravity could be used to implement a "Help to Explore" function, and Gravity could be used as a component for fast KNN search. We introduce a new measure, the Average Measure of Impact, to deal with the usefulness and the trust of the recommendations. Many algorithms and systems are evaluated only using the Root Mean Squared Error (RMSE) or Mean Absolute Error (MAE), and assuming that the lower the RMSE the higher the quality of the recommendation. We show that there is no clear correlation between RMSE measures and other quality measures of the recommendation. This fact strongly justifies our protocol, which independently evaluate the four core functions. We have demonstrated the utility of our protocol as it may change the classical vision of the recommendation evaluation, often focused on the RMSE/MAE measures as they are assumed correlated with the system overall performances, and the way to design the recommender systems to achieve their tasks. When designing a recommender engine 's general recommendation strategy, we have to think about the impact of the recommender: recommending popular items to heavy users might be not so useful. On the other hand, it can be illusory to make personalized recommendations of unpopular and unknown items to light and unknown users. A possible simple strategy could be: Use personalized algorithms to recommend popular items to light users. Use personalized algorithms to recommend unpopular items of the long tails for heavy users.