Skip to content

superzhangmch/learn_LTR

Repository files navigation

几个 LTR 算法的 tensorflow 实现

学习几个LTR算法后的tensorflow实现。支持算法如下:
    "lambdarank",               # 标准版 lambdarank 
    "ranknet",                  # 非按lambdarank方式加速版ranknet
    "ranknet_speedup",          # 按lambdarank方式加速版ranknet
    "ranking_svm",              # hinge loss 的 ranking svm
    "log_loss_binary_classify", # log loss 的二分类
    "mse_regression",           # 差平方和loss 的回归方法
    "lambdarank_slow",          # 类似未加速的 ranknet 的 lanbdarank
    "fea_XXX",                  # 按第XXX维特征作排序rank
  • 基于的数据集: LETOR4.0 Supervised ranking MQ2007 地址1 地址2
  • 该数据集下的基准见 这里
  • 各个算法测试数据在 report/ 下。report_X.csv 表示FoldX 的test.txt 上的结果,report_mean.csv 是5个fold的平均。各fold的最终平均测试结果见这里。的)
  • lambdarank结论和基准基本差不多(说明lambdarank实现应该是没问题),但是ranknet表现甚至微超 lambdarank(而基准中ranknet表现明显不如lambdarank)。用ranklib 跑了下ranknet 与 lambdarank,发现其趋势和基准还是比较吻合的。因此还不知为什么会这样。
  • 测试方式是每个fold内根据vali数据集上的最佳表现选定模型参数,然后在test上测试得到test集上的metric数据。最终metric指标数据是各个fold上的数据取平均。

About

LTR学习代码

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published