SloPy: Slope One with Privacy

SloPy: Slope One with Privacy

Slope One with Privacy

Target users and customers

The targeted users and customers are all the Internet actors providing personalized services to their users, interested by integrating recommender systems that are more respectful of their privacy.

Application sectors

  • Personalization
  • Recommender systems


SlopPy (for Slope One with Privacy ) [1] is both a privacy-preserving version of the recommendation algorithm Slope One and a recommendation architecture built around this algorithm in which a user never releases directly his personal information (i.e., his ratings) to a trusted third party. The figure below illustrates the architecture of the SlopPy recommender system.

More precisely in SlopPy, each user first perturbs locally his data (Step 1) by applying a Randomized Response Technique (RRT) before sending this information to the entity responsible for storing this information through an anonymous communication channel (Step 2). This entity is assumed to be semi-trusted, also sometimes called honest-but-curious in the sense that it is assumed to follow the directives of the protocol (i.e., it will not corrupt the perturbed ratings sent by a user or try to influence the output of the recommendation algorithm) but nonetheless tries to extract as much information as it can from the data it receives. Out of the perturbed ratings, the semi-trusted entity constructs two matrices (i.e., the deviation matrix and the cardinality matrix) following the Weighted Slope One algorithm (Step 3). When a user needs a recommendation on a particular movie, he queries these matrices through a variant of a private information retrieval scheme (Step 4) hiding the content of his query (i.e., the item he is interested in) to the semi-trusted entity. By combining the data retrieved (Step 5) with his true ratings (which once again are only stored on his machine), the user can then locally compute the output of the recommendation algorithm for this particular item (Step 6).

[1] Sébastien Gambs and Julien Lolive. SlopPy: Slope One with Privacy. In DPM, September 2012.

Technical requirements:

  • SPC with Java installed
  • Access to the TOR anonymous communication network
  • Installation of a library implementing homomorphic encryption such as BouncyCastle
  • Deployment of aserver responsible for creating and updating the matrices needed for the recommendation

Conditions for access and use:

SlopPy is currently available as a prototype only. It can be released and supplied under license on a case-by-case basis.



  • Inria

Contact details:

Sébastien Gambs

SlopPy was developed in Irisa/INRIA Rennes by the CIDRE team by Sébastien Gambs and Julien Lolive.

Inria Rennes
Campus Universitaire de Beaulieu
35042 Rennes Cedex