Plista Contest Java Implementation

Plista, a Berlin based company for personalized reading recommendations and advertisements, offers an interesting recommendation contest. The contest is about live recommendations on different websites. Evaluated is the Click-Through-Rate (CTR) on a daily and weekly basis. The contest is a good way to test recommendation algorithms with real users instead of using offline datasets for evaluation. For more details see http://contest.plista.com/content/the_contest

My research group, CC IRML, is participating: currently alan, mjoelnir and me (mtp) are trying our best. As Plista is only offering a JS and PHP implementation, I programmed a JAVA implementation for the client side to communicate with the Plista contest server. Coming with the implementation is a simple most popular recommender. We use this recommender as a baseline to see if our more advanced approaches perform better or worse.

The recommender was running the last week, and results show that the most popular approach performs ok so far.

The code can be found here.

Get it running
The system requires (or at least is tested with) Java (1.6), Maven (3.x), Git and a Plista contest account. The system uses an embedded Jetty server (default port 8080, but it is customizable).

  1. Create folder for the JAVA code
    e.g. mkdir plistacontest
  2. Switch to the folder. To use Git you have to setup a repository
    git init
  3. Get the code from github
    git pull https://github.com/matip/plistacontest.git
  4. Create a property file in folder – e.g. team.properties

    #Setting for the plista contest server
    #id of the plista team
    plista.teamId=-1
    #Port of the server
    plista.port=8080

    The plista.teamId is required

  5. To run the project, it first must be compiled
    mvn clean package
  6. End then it can be started (with the standard most popular recommender)
    mvn exec:java -Dexec.mainClass=”de.dailab.plistacontest.client.Client” -Dexec.args=”teamId.properties de.dailab.plistacontest.recommender.ContestMPRecommender” &

To add your own recommender you can implement the de.dailab.plistacontest.recommender.ContestRecommender interface and pass it to the client.

Feel free to change the code for your own needs. The class handling the server communication is de.dailab.plistacontest.client.ContestHandler. The most popular recommender example can be found in de.dailab.plistacontest.recommender.ContestMPRecommender.

Posted in Java, Open Source, Recommender Systems
2 comments on “Plista Contest Java Implementation
  1. Tobias says:

    Thanks for this contribution, Till. One little remark: In order to get the client running, one has to use pass the right name of the properties file to the invoker. In this case, it would be “team.properties”, not “teamId.properties”, as explained above.

  2. Jeff says:

    Die klama sind auch nicht ganz Praktisch wenn ctrl+cieren 🙂

Leave a comment