Decoupled Prototypical Network (DPN)
June 22, 2024 ยท View on GitHub
Data and code for paper titled Generalized Category Discovery with Decoupled Prototypical Network (AAAI 2023 paper)
Generalized Category Discovery (GCD) aims to recognize both known and novel categories from a set of unlabeled data, based on another dataset labeled with only known categories. In this paper, we present a novel model called Decoupled Prototypical Network (DPN). By formulating a bipartite matching problem for category prototypes, DPN can not only decouple known and novel categories to achieve different training objectives effectively, but also align known categories in labeled and unlabeled data to transfer category-specific knowledge explicitly and capture high-level semantics.
Contents
Data
We performed experiments on three public datasets: clinc, banking and stackoverflow, which have been included in our repository in the data folder ' ./data '.
Model
Our model mainly contains five steps: Representation Learning, Prototype Learning, Alignment and Decoupling, Semantic-aware Prototypical Learning and EMA Updating.
Requirements
- python==3.8
- pytorch==1.11.0
- transformers==4.19.2
- scipy==1.8.0
- numpy==1.21.6
- scikit-learn==1.1.1
- pytorch-pretrained-bert==0.6.2
Running
Pre-training, training and testing our model through the bash scripts:
sh run.sh
You can also add or change parameters in run.sh (More parameters are listed in init_parameter.py)
Results
Thanks
Some code references the following repositories:
Citation
If our paper or code is helpful to you, please consider citing our paper:
@inproceedings{an2023generalized,
title={Generalized category discovery with decoupled prototypical network},
author={An, Wenbin and Tian, Feng and Zheng, Qinghua and Ding, Wei and Wang, QianYing and Chen, Ping},
booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
volume={37},
number={11},
pages={12527--12535},
year={2023}
}