单向RNN(forward和backward)只利用了序列数据其中一个方向的信息(left-to-right或者right-to-left),信息量不够,在很多任务中往往达不到性能要求。要想提高模型性能就要尽可能多的利用数据信息,该如何利用序列两个方向上的信息?至少有2种方式可以利用序列数据两个方向上的信息,一是merge两个不同方向的RNN,二是BiRNN。
Merge
Merge是指组合两个独立的单向RNN的预测结果。即分别独立训练两个RNN,一个forward,提取left-to-right方向上的特征,而另一个backward,提取right-to-left方向上的特征,最后将两个RNN的预测输出按照某种方式组合,比如线性等。
此种方式利用了两个单向RNN的特征信息,类似于一种学习多个弱分类模型,将其组合在一起来共同完成任务。
图1 单向RNN结构