This project was done for a huge retailer in the U.S
The intent of this project is to list products on the homepage in a specific order. Ideally, the products at the top of the list should not solely depend on the number of units sold but rather a list of other features. (i.e. product views, whether it was on promotion etc). We gather all of this information. The business team might want to drive sales to achieve different objectives which might be to maximize the margin (max profit), maximize conversion (get more units sold in correlation with product views) etc.
We allow the business to define these objective functions (a User interface using HTML5/j-query). Using the business set weights and the current week's sales data, we come up with the list that we ought to emulate. The optimization is a regression problem in the supervised setting where we use the previous week's sales date to match the current week's list generated by the business defined objective. We use the NDCG metric, thereby giving more importance to the items at the top of the list rather than the ones at the bottom. The learned weights are then used to build the list for the next day and is sent over to Endeca to display.
We use MySQL to host the data and Java to build the feature file and optimize.
My role was to implement the whole solution. Build the UI, (using HTML5/Jquery, spring framework for server side components), build the optimization algorithm to come up with the list ordering.