V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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 · 184 天前 · 1823 次点击
    这是一个创建于 184 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3860 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 09:44 · PVG 17:44 · LAX 02:44 · JFK 05:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.