# Sequence Projection Models
This repository contains implementation of the following papers.
* [*PRADO: Projection Attention Networks for Document Classification On-Device*](https://www.aclweb.org/anthology/D19-1506/)
* [*Self-Governing Neural Networks for On-Device Short Text Classification*](https://www.aclweb.org/anthology/D18-1105/)
## Description
We provide a family of models that projects sequence to fixed sized features.
The idea behind is to build embedding-free models that minimize the model size.
Instead of using embedding table to lookup embeddings, sequence projection
models computes them on the fly.
## History
### August 24, 2020
* Add PRADO and SGNN implementation.
## Authors or Maintainers
* Prabhu Kaliamoorthi
* Yicheng Fan ([@thunderfyc](https://github.com/thunderfyc))
## Requirements
[](https://github.com/tensorflow/tensorflow/releases/tag/v2.3.0)
[](https://www.python.org/downloads/release/python-360/)
## Training
Train a PRADO model on civil comments dataset
```shell
bazel run -c opt prado:trainer -- \
--config_path=$(pwd)/prado/civil_comments_prado.txt \
--runner_mode=train --logtostderr --output_dir=/tmp/prado
```
Train a SGNN model to detect languages:
```shell
bazel run -c opt sgnn:train -- --logtostderr --output_dir=/tmp/sgnn
```
## Evaluation
Evaluate PRADO model:
```shell
bazel run -c opt prado:trainer -- \
--config_path=$(pwd)/prado/civil_comments_prado.txt \
--runner_mode=eval --output_dir= --logtostderr
```
Evaluate SGNN model:
```shell
bazel run -c opt sgnn:run_tflite -- --model=/tmp/sgnn/model.tflite "Hello world"
```
## References
1. **Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift**
Sergey Ioffe, Christian Szegedy
[[link]](https://arxiv.org/abs/1502.03167). In ICML, 2015.
2. **Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference**
Benoit Jacob, Skirmantas Kligys, Bo Chen, Menglong Zhu, Matthew Tang, Andrew Howard, Hartwig Adam, Dmitry Kalenichenko
[[link]](https://arxiv.org/abs/1712.05877). In CVPR, 2018.
3. **PRADO: Projection Attention Networks for Document Classification On-Device**
Prabhu Kaliamoorthi, Sujith Ravi, Zornitsa Kozareva
[[link]](https://www.aclweb.org/anthology/D19-1506/). In EMNLP-IJCNLP, 2019
4. **Self-Governing Neural Networks for On-Device Short Text Classification**
Sujith Ravi, Zornitsa Kozareva
[[link]](https://www.aclweb.org/anthology/D18-1105). In EMNLP, 2018
## License
[](https://opensource.org/licenses/Apache-2.0)
This project is licensed under the terms of the **Apache License 2.0**.