gaussian distribution to the encoded vector to bring variability to SEQ2SEQ. We denote this method as SEQ2SEQ + noise, and use it as extra baselines with various standard deviations.

### Training

The whole structure of SLCVAE is implemented with the famous open source library PyTorch[@paszke2017automatic]. In all experiments, English letters are all transformed to the lower case first. Encoders are bidirectional RNNs [@schuster1997bidirectional] with Gated Recurrent Units (GRU) [@chung2014empirical] and the decoders are unidirectional RNN with GRUs throughout all experiments. All RNNs have two layers. Since EGOODS dataset is much larger than DD, the network capacity increases accordingly. Specifically, for DD and EGOODS dataset respectively, the word embedding sizes are set to 32 and 128, and the hidden dimensions of RNN are also set as the same. In all VAE-based methods, the latent variable dimensions are set to 8 and 16 for two datasets separately. The Adam optimizer with a learning rate of 0.0001 is used to train all models with batch sizes of 64 and 128 for two datasets. Training skills of KLA and WD are also used to get further better performance. We also conduct an annealing strategy that the weight of our labeling error is increased over 