Intuitively, we can use two separate uni-directional RNNs where each one constructs its respective attended encoder context vectors for computing RNN hidden states.
the drawback of this approach is that the decoder would often produce different alignments resulting in discrepancies for the forward and backward directions.