An efficient and effective learning to rank algorithm by mining information across ranking candidates. This repository contains the tensorflow implementation of SERank model. The code is developed based on TF-Ranking.

Overview

SERank

An efficient and effective learning to rank algorithm by mining information across ranking candidates. This repository contains the tensorflow implementation of SERank model. The code is developed based on TF-Ranking.

Compared with GSF(Groupwise Scoring Function), our method obtains comparable ranking performance gain, while only requiring little computation overhead.

The SERank model has been suceessfully deployed in Zhihu Search ranking, which is one of the largest Community Question Answering platform in China.

image info

image info

Dependencies

Dataset

The demo dataset in this repo is randomly sampled from MSLR web30k dataset. You may download the whole web30K dataset from Microsoft Learning to Rank Datasets Page and place train.txt, vali.txt, test.txt in the data folder.

Model

Our main idea is to develop a sequencewise model structure which accepts a list of ranking candidates, and jointly score all candidates. We introduce SENet structure into the ranking model, where the basic idea is using SENet structure to compute feature importance according the the context of ranking list. image info

For the detail about the model structure, you may refer to our paper published on arxiv.

How to Train

bash run_train.sh

Citation

SERank: Optimize Sequencewise Learning to Rank Using Squeeze-and-Excitation Network. [arxiv]

@article{wang2020serank,
  title={SERank: Optimize Sequencewise Learning to Rank Using Squeeze-and-Excitation Network},
  author={Wang, RuiXing and Fang, Kuan and Zhou, RiKang and Shen, Zhan and Fan, LiWen},
  journal={arXiv preprint arXiv:2006.04084},
  year={2020}
}
You might also like...
A scientific and useful toolbox, which contains practical and effective long-tail related tricks with extensive experimental results

Bag of tricks for long-tailed visual recognition with deep convolutional neural networks This repository is the official PyTorch implementation of AAA

Colar: Effective and Efficient Online Action Detection by Consulting Exemplars, CVPR 2022.
Colar: Effective and Efficient Online Action Detection by Consulting Exemplars, CVPR 2022.

Colar: Effective and Efficient Online Action Detection by Consulting Exemplars This repository is the official implementation of Colar. In this work,

ICCV2021 - Mining Contextual Information Beyond Image for Semantic Segmentation
ICCV2021 - Mining Contextual Information Beyond Image for Semantic Segmentation

Introduction The official repository for "Mining Contextual Information Beyond Image for Semantic Segmentation". Our full code has been merged into ss

This repository contains the source code of our work on designing efficient CNNs for computer vision
This repository contains the source code of our work on designing efficient CNNs for computer vision

Efficient networks for Computer Vision This repo contains source code of our work on designing efficient networks for different computer vision tasks:

Source Code for DialogBERT: Discourse-Aware Response Generation via Learning to Recover and Rank Utterances (https://arxiv.org/pdf/2012.01775.pdf)

DialogBERT This is a PyTorch implementation of the DialogBERT model described in DialogBERT: Neural Response Generation via Hierarchical BERT with Dis

An image base contains 490 images for learning (400 cars and 90 boats), and another 21 images for testingAn image base contains 490 images for learning (400 cars and 90 boats), and another 21 images for testing
An image base contains 490 images for learning (400 cars and 90 boats), and another 21 images for testingAn image base contains 490 images for learning (400 cars and 90 boats), and another 21 images for testing

SVM Données Une base d’images contient 490 images pour l’apprentissage (400 voitures et 90 bateaux), et encore 21 images pour fait des tests. Prétrait

This repository contains a pytorch implementation of
This repository contains a pytorch implementation of "HeadNeRF: A Real-time NeRF-based Parametric Head Model (CVPR 2022)".

HeadNeRF: A Real-time NeRF-based Parametric Head Model This repository contains a pytorch implementation of "HeadNeRF: A Real-time NeRF-based Parametr

Open source implementation of AceNAS: Learning to Rank Ace Neural Architectures with Weak Supervision of Weight Sharing

AceNAS This repo is the experiment code of AceNAS, and is not considered as an official release. We are working on integrating AceNAS as a built-in st

PyTorch Implementation of the SuRP algorithm by the authors of the AISTATS 2022 paper "An Information-Theoretic Justification for Model Pruning"

PyTorch Implementation of the SuRP algorithm by the authors of the AISTATS 2022 paper "An Information-Theoretic Justification for Model Pruning".

Comments
  • problem about Recurrence experiment in Web30k

    problem about Recurrence experiment in Web30k

    Hi, thx for your great job. but I have problem about recurrence experiment in web30k. I download the code, and change data to web30k, ndcg@5 of the last ckpt is only 0.409, which is 0.456 in paper. I do not change serank.py. and the run_script is

    DATA=/path-to-web30k/Fold1
    
    output_dir=outputs
    rm -r $output_dir
    mkdir $output_dir
    
    python serank.py \
      --train_path=$DATA/train.txt \
      --vali_path=$DATA/vali.txt \
      --test_path=$DATA/test.txt \
      --output_dir=$output_dir \
      --num_features=136 \
      --serank=True \
      --query_label_weight=True
    

    tail of the train log is

    I0322 18:19:51.462585 140648353728320 evaluation.py:276] Finished evaluation at 2021-03-22-18:19:51
    INFO:tensorflow:Saving dict for global step 100000: global_step = 100000, labels_mean = 0.66818184, logits_mean = -0.27165264, loss = 258.99927, metric/arp = 38.71134, metric/ndcg@1 = 0.38938853, metric/ndcg@10 = 0.43623617, metric/ndcg@3 = 0.39571184, metric/ndcg@5 = 0.40858307, metric/ordered_pair_accuracy = 0.6484862
    I0322 18:19:51.462839 140648353728320 estimator.py:2066] Saving dict for global step 100000: global_step = 100000, labels_mean = 0.66818184, logits_mean = -0.27165264, loss = 258.99927, metric/arp = 38.71134, metric/ndcg@1 = 0.38938853, metric/ndcg@10 = 0.43623617, metric/ndcg@3 = 0.39571184, metric/ndcg@5 = 0.40858307, metric/ordered_pair_accuracy = 0.6484862
    INFO:tensorflow:Saving 'checkpoint_path' summary for global step 100000: outputs/model.ckpt-100000
    I0322 18:19:51.463721 140648353728320 estimator.py:2127] Saving 'checkpoint_path' summary for global step 100000: outputs/model.ckpt-100000
    

    thx for your help.

    enhancement 
    opened by stanpcf 4
Owner
Zhihu
知乎 GitHub 官方帐号 ,欢迎关注我们的技术专栏 https://zhuanlan.zhihu.com/hackers
Zhihu
MicRank is a Learning to Rank neural channel selection framework where a DNN is trained to rank microphone channels.

MicRank: Learning to Rank Microphones for Distant Speech Recognition Application Scenario Many applications nowadays envision the presence of multiple

Samuele Cornell 20 Nov 10, 2022
CLOCs: Camera-LiDAR Object Candidates Fusion for 3D Object Detection

CLOCs is a novel Camera-LiDAR Object Candidates fusion network. It provides a low-complexity multi-modal fusion framework that improves the performance of single-modality detectors. CLOCs operates on the combined output candidates of any 3D and any 2D detector, and is trained to produce more accurate 3D and 2D detection results.

Su Pang 254 Dec 16, 2022
Genetic Algorithm, Particle Swarm Optimization, Simulated Annealing, Ant Colony Optimization Algorithm,Immune Algorithm, Artificial Fish Swarm Algorithm, Differential Evolution and TSP(Traveling salesman)

scikit-opt Swarm Intelligence in Python (Genetic Algorithm, Particle Swarm Optimization, Simulated Annealing, Ant Colony Algorithm, Immune Algorithm,A

郭飞 3.7k Jan 3, 2023
Code for the ICML 2021 paper "Bridging Multi-Task Learning and Meta-Learning: Towards Efficient Training and Effective Adaptation", Haoxiang Wang, Han Zhao, Bo Li.

Bridging Multi-Task Learning and Meta-Learning Code for the ICML 2021 paper "Bridging Multi-Task Learning and Meta-Learning: Towards Efficient Trainin

AI Secure 57 Dec 15, 2022
Gradient-free global optimization algorithm for multidimensional functions based on the low rank tensor train format

ttopt Description Gradient-free global optimization algorithm for multidimensional functions based on the low rank tensor train (TT) format and maximu

null 5 May 23, 2022
ViDT: An Efficient and Effective Fully Transformer-based Object Detector

ViDT: An Efficient and Effective Fully Transformer-based Object Detector by Hwanjun Song1, Deqing Sun2, Sanghyuk Chun1, Varun Jampani2, Dongyoon Han1,

NAVER AI 262 Dec 27, 2022
This repository contains the official implementation code of the paper Improving Multimodal Fusion with Hierarchical Mutual Information Maximization for Multimodal Sentiment Analysis, accepted at EMNLP 2021.

MultiModal-InfoMax This repository contains the official implementation code of the paper Improving Multimodal Fusion with Hierarchical Mutual Informa

Deep Cognition and Language Research (DeCLaRe) Lab 89 Dec 26, 2022
DeepSpeed is a deep learning optimization library that makes distributed training easy, efficient, and effective.

DeepSpeed is a deep learning optimization library that makes distributed training easy, efficient, and effective.

Microsoft 8.4k Jan 1, 2023
A deep learning library that makes face recognition efficient and effective

Distributed Arcface Training in Pytorch This is a deep learning library that makes face recognition efficient, and effective, which can train tens of

Sajjad Aemmi 10 Nov 23, 2021