wiki:GSoC2012/LTR/Journal

Blog for regular updates on GSoC project

Community Bonding Period: April 23-May 20

  • Checking out and building the code.
  • Getting well versed with existing LETOR code.
  • Read and understand the Xapian Internals (https://xapian.org/docs/internals.html)
  • Build a small demo to get well versed with the Torch 3 library.
  • Get help in finalizing the technical details, usability of features, details of algorithms and other specifications.
  • Brush up on all required knowledge of the algorithms.
  • Implement basic Neural Networks using the library.
  • Incorporate minor changes in the leor_internals.cc file to make it compatible for the different modules.

Coding Week 1: May 21-May 27

  • Created my Git repoitory.
  • Learnt how to push changes and submit pull request to Master branch.
  • Looked in to refactoring of the existing letor code.

Coding Week 2: May 28-June 3

Coding Week 3: June 4-June 10

  • Changed the structure of LETOR to include Letor_Features.h and Letor_Features.cc to handle all the feature calculation tasks.
  • Made changes in the definition of Ranklist.h to create a ranklist of documents which would represent the ranked documents.
  • Added definition of normalize() method in Ranklist.cc.
  • Modified load_Relevance() method of featurevector.cc

Coding Week 4: June 11-June 17

  • Made changes in the refactored code to make it compile successfully.
  • Added definitions in ranker.cc and updated the Letor_Internal.cc to adapt to the new refactored code.
  • Looked into Torch library to understand their framework for our use in ListMLE algorithm.
  • Made changes to GradientMachines.cc in Torch/gradients/ to better understand its working.
  • Understood MultiLayeredPerceptron.cc code of Torch.
  • Made a few changes in MLP.cc for its usage in Letor(testing the changes left).

Coding Week 5: June 18-June 24

  • Dealt with handling parameters of the neural network.
  • Looked into the update rule of SGD parameters.
  • Wrote the function to calculate the score of the ranklist elements as needed by the ListMLE algorithm.
  • Updated code for calculating gradient.

Coding Week 6: June 26-July 1

  • Looked into Permutation probabilities for Listwise approach for Learning to Rank.
  • Wrote code that calculates the Top-1 Probability given a permutation.
  • Understood and tried examples related to the Loss function of ListMLE algorithm.
  • Wrote code for the ListMLE loss function.
  • Working on the bridge between Xapian ranklist and the ListMLE code written till now.

Coding Week 7: July 2-July 8

  • Worked on listmle_train()function to calculate the parameters from the training data.
  • Wrote code for update_params part using the gradient descent algorithm.
  • Integrated learn_model() function with listmle_train().

Coding Week 8: July 9-July 15

  • Started implementing Autoencoder class.
  • Wrote code for train_autoencoder() function.
  • Implemented the score_doc() function of the ListMLE class.
  • Integrated the score_doc function with the rank() function.

Coding Week 9: July 16-July 22

  • Wrote code forsort_by_score()function in RankList class.
  • Implemented get_data() function in RankList class.
  • Implemented the load_model() and save_model() function in ListMLE class.
  • Wrote code for get_score()in FeatureVector class.
  • Implemented set_score(double score1) and get_fvals() in FeatureVector class which are to be used by RankList and ListMLE class.
  • Implemented get_feature_value(int index) method in FeatureVector class; used by RankList class.
  • Completed the implementation of ListMLE class.

Coding Week 10: July 23-July 29

  • Implemented the normalize function of the RankList class.
  • Modified the questletor file to adapt it for the refactored code.
  • Made few changes in the learn_model function of letor_internal.cc.

Coding Week 11: July 30-August 5

Coding Week 12: August 6-August 12

Coding Week 13: August 13-August 20 (Final evaluation based on work up to August 20)

Last modified 8 years ago Last modified on 26/01/16 10:10:43
Note: See TracWiki for help on using the wiki.