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 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
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
#Port of the server
The 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.