推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Richard14
V2EX  ›  Python

如何理解双向循环神经网络?用在分类问题时是否无意义?

  •  
  •   Richard14 · Nov 21, 2021 · 3158 views
    This topic created in 1638 days ago, the information mentioned may be changed or developed.

    如题,看了一些双向 rnn ( lstm )的文章,以我的理解,rnn 每层的最终 output 应该表示的是当前时刻(序列)的状态。那么在进行一些比如情感分析,或分类,等等对一个序列进行定性的问题时,双向 rnn 是否没有意义?因为其输出应该代表最后一个状态,正向 rnn 已经有了,反向 rnn 的话最后一个状态反过来说只是一个初始值?

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

    这里应该是 lz 有误解,当用 BiLSTM 做分类的时候,通常采用两个方向的结尾的 h 拼接作为表示,即 [h_R_3 || h_L_0], 而非 lz 所理解的 [h_R_3 || h_L_3]

    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3214 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 162ms · UTC 14:39 · PVG 22:39 · LAX 07:39 · JFK 10:39
    ♥ Do have faith in what you're doing.