美文网首页Machine Learning & Recommendation & NLP & DL
自然语言处理N天-再次学习Transformer01

自然语言处理N天-再次学习Transformer01

作者: 我的昵称违规了 | 来源:发表于2019-03-16 23:02 被阅读2次
    新建 Microsoft PowerPoint 演示文稿 (2).jpg

    从今天开始,我会再看一遍Transformer(这是第3遍了吧……)。
    这次是依据Transformer 模型的 PyTorch 实现进行学习,再梳理一下Transformer模型的重点,最后用Pytorch实现。
    本来想用AllenNLP一步到位,但是前天敲了一天发现不行,我对Pytorch不懂,同时还是不了AllenNLP,干脆从头再来。

    1. Transformer模型结构

    这个模型是一个完全基于Attention的模型,抛弃了以前的RNN和CNN,其架构主要有以下特点(说错了留言告诉我,我改)
    先上图,这张图我会反复贴上来。

    Transformer结构图

    (1) encoder和decoder
    Transformer模型使用经典的encoer-decoder架构,由encoder和decoder两部分组成。
    可以看到两侧的N_x表示encoer和decoder各有多少层

    (2) 使用多种attention机制(multi-head context-attention、multi-head self-attention)
    在图中,每块就是一个block,可以看到里面所使用的机制。似乎都有一个***-attention
    attention对于某个时刻的输出y,它在输入x上各个部分的注意力。这个注意力实际上可以理解为权重。
    在下面会详细解释。

    (3) 使用Layer-Normalization机制
    Normalization的一种,把输入转化成均值为0方差为1的数据。是在每一个样本上计算均值和方差。

    (4) 使用Mask机制
    用于对输入序列进行对齐。这里使用的是padding mask和sequence mask

    (5) 使用残差residual connection
    避免梯度消失。

    (6) 使用Positional-encoding
    对序列中的词语出现的位置进行编码。这样模型就可以捕捉顺序信息!

    相关文章

      网友评论

        本文标题:自然语言处理N天-再次学习Transformer01

        本文链接:https://www.haomeiwen.com/subject/rrgemqtx.html