如题,看了一些双向 rnn ( lstm )的文章,以我的理解,rnn 每层的最终 output 应该表示的是当前时刻(序列)的状态。那么在进行一些比如情感分析,或分类,等等对一个序列进行定性的问题时,双向 rnn 是否没有意义?因为其输出应该代表最后一个状态,正向 rnn 已经有了,反向 rnn 的话最后一个状态反过来说只是一个初始值?
1
SorryChen 2021-11-21 05:47:31 +08:00 1
因为很多时候,当前不仅和之前有关,也和之后有关。举个形象的例子,比如做完形填空, 我 __ 球,如果你只看一个我,你怎么知道空填什么呢,如果双向 LSTM 你就可以知道后面是球,所以应该填“打”。
|
2
eternitym31 2021-11-21 10:26:06 +08:00
业务中分类问题双向 LSTM 确实效果一般,序列标注问题这种吃上下文语义的提升比较大。
|
3
lqf96 2021-11-21 13:07:07 +08:00
其实 transformer 也分单向和双向模型,前者就是 gpt ,后者就是 bert 以及衍生出的一系列 mlm 模型...另外单向和双向模型拼接在一起就可以得到 seq2seq model ,比如 bart 或者 t5 ,或者通过构造特殊的 attention mask 也可以实现一个 transformer stack 的 seq2seq model (unlm v1/v2)
|
4
lqf96 2021-11-21 13:07:34 +08:00
总之学术界这边 lstm 和 rnn 给我的感觉都是上古的东西了...
|
5
sleeepyy 2021-11-22 13:15:37 +08:00 1
|