ABCDM is the tensorflow implementation of the paper: ABCDM: An Attention-based Bidirectional CNN-RNN Deep Model for sentiment analysis. It uses two independent Bi-LSTM+CNN and Bi-GRU+CNN to build a deep neural networks for sentiment analysis.
Why should we use two independent Bi-LSTM+CNN and Bi-GRU+CNN
Deep neural network (DNN) models have obtained promising results in sentiment analysis task. We usually use single Bi-LSTM+CNN or Bi-GRU+CNN to determine the sentiment polarity of a sentence or document. However, if we use two different and independent models and concatenate their output, the output will get more valueable result and improve the effect.
The structure of ABCDM
The structrue is below:
From this architecture, the left may be Bi-LSTM+CNN and the right is Bi-LSTM+CNN. From the paper, two independent models do not share attention weight.
Datasets used in ABCDM
Eight benchmark datasets are used to evaluate the performance of ABCDM.
They are: Apps for Android dataset, Kindle Store dataset, Movies and TV dataset, Electronics dataset, CDs and Vinyl dataset, Airline Twitter Sentiment dataset, Sentiment140, Twitter for Sentiment Analysis dataset
Comparative Results in ABCDM
ABCDM benchmarks six similar DNN models, one of the results is below:
You can find more comparative results in the paper.
How to use ABCDM
You can download source code in here to run: ABCDM Download
How to improve ADCDM
There only one loss function in this model, however, we can use three loss functions: one loss function is the left model, one is the right model and the third loss function is applied on theire concatenated output.