《自然语言处理综论(Speech and Language Processing)》第九章笔记

9 Learning Architectures for Sequence Processing

本章重点介绍了递归神经网络(RNN)和Transformer网络。两种方法都具有直接处理语言的顺序性质的机制,这些机制允许它们在不使用任何固定大小的窗口的情况下处理可变长度的输入,并捕获和利用语言的时间性质。

基于RNN的语言模型一次处理一个单词的序列,试图通过使用当前单词和之前的隐藏状态作为输入来预测序列中的下一个单词。其避免了N—gram模型中固有的有限上下文约束,隐藏状态包含了历史单词的信息。RNN中的前向推理(将输入序列映射到输出序列)与前馈网络几乎相同。为了计算输入 X t X_t Xt对应的输出 y t y_t yt,需要隐藏层 h t h_t ht的激活值。将输入 x t x_t xt乘以权重矩阵 W W W,并将上一个时间步 h t — 1 h_{t—1} ht—1的隐藏层乘以权重矩阵 U U U。以上值相加传递给激活函数 g g g,得出当前隐藏层的激活值 h t h_t ht,并生成输出向量。 t t t时刻的计算需要 t − 1 t-1 t1时刻隐藏层的值,是一种从序列开始到结束的增量推理算法。每个时间步会有不同的值,但不同的权重矩阵不同时间步上是共享的。

RNN可用于语言建模,序列标注任务(例如词类标记)以及序列分类任务(例如情感分析和主题分类)。堆叠(Stacked)RNN 由多个网络组成,层输出充当下一层输入。双向 RNN由两个独立反向的RNN组成,在每个时间点捕捉输入的左上下文和右上下文,其被证明对序列分类非常有效。RNN无法传递关键信息的第一个原因是hidden和weight需要同时提供对当前决策有用的信息,并更新和转发未来决策所需的信息。第二个是,在反向传播中,隐藏层要经受重复乘法,梯度最终被驱动为零—所谓的消失梯度(vanishing gradients)问题。

为了解决这些问题,网络需要学会忘记不再需要的信息,并记住仍然需要做出决策的信息。LSTM将上下文管理问题分为,从上下文中删除不需要的信息,添加以后进行决策时可能需要的信息。通过在体系结构中添加一个显式的上下文层,并在神经单元中利用门(gate)来控制信息流入和流出。门由前馈层组成,其后是sigmoid激活函数,接着与该选通的层进行逐点乘法。sigmoid倾向于将其输出推到0或1,将其与逐点乘法相结合具有类似于二进制掩码(mask)的效果。遗忘门(forget gate),其目的是从上下文中删除不再需要的信息。加法门(add gate)生成掩码,选择要添加到当前上下文的信息。输出门(output gate),它用于决定当前隐藏状态需要什么信息(而不是为未来的决策需要保留什么信息)。

LSTMs引入了相当多的附加参数,有8组权重需要学习,简单的回归单元中只有2个。这些额外的参数增加了训练成本。门控循环单元(GRUs)通过免除使用单独的上下文向量,并通过将门的数量减少到2个(重置门r和更新门z)来减轻这一负担。LSTMs和GRUs中使用的神经单元明显比基本的前馈网络中使用的神经单元复杂得多。但这种复杂性被封装在基本处理单元中,允许我们保持模块化,并轻松地试验不同的架构。要了解这一点。

Tranformer的关键创新是使用自注意力机制(self-attention)。基于注意力的方法的核心:在某些情况下对相关项进行的一组比较,对这些分数进行归一化以提供概率分布,然后使用该分布进行加权求总和。输出y是对输入进行直接计算的结果。为了进行这种学习, Transformers以一组权重矩阵的形式包含其他参数,这些参数对输入嵌入进行操作。为了激发这些新参数,请考虑每个输入嵌入在注意力过程中扮演的不同角色(即Q、K、V)。Q和其他所有先前输入比较时,扮演当前注意力的焦点角色,称此为query。K与当前注意力焦点比较时,扮演先前输入角色,称此为key(即K)。V用于计算当前注意力焦点的输出时,扮演值角色。称此为value(即V)。

为捕捉语言输入之间的所有不同种类的并联关系,Transformer应用了多头注意力机制Multi-head attention,并通过position embedding对位置信息进行编码。可以通过半监督学习将其部署为语言模型。给定纯文本训练语料库,在每个步骤中,给定所有前面单词,最终Transformer层会在整个词表中产生输出分布,训练中分配给正确单词的概率用于计算交叉熵损失。可以视为一种自回归生成过程。

参考

Speech and Language Processing 电子版
9 Learning Architectures for Sequence Processing
自然语言处理综述 中文版

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值