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).
-
Create folder for the JAVA code
e.g. mkdir plistacontest -
Switch to the folder. To use Git you have to setup a repository
git init -
Get the code from github
git pull https://github.com/matip/plistacontest.git -
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=8080The plista.teamId is required
-
To run the project, it first must be compiled
mvn clean package -
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.
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.
Die klama sind auch nicht ganz Praktisch wenn ctrl+cieren 🙂