序列模型基础学习
序列模型简介常见有很多序列问题,如语音识别,金融上的,机器翻译,情感识别,计算机视觉,自然与然处理NLP等等很多。其中自然语言处理的输入输出基本上都是序列,序列问题是自然语言处理最本质的问题。1. 序列模型类型序列模型:就是输入输出均为序列数据的模型,序列模型将输入序列数据转换为目标序列数据。一对多,多对一,部分多对多,完全多对多1.经典的seq2seq模型seq2seq是序列问题中一个非常重要的
序列模型简介
常见有很多序列问题,如语音识别,金融上的,机器翻译,情感识别,计算机视觉,自然与然处理NLP等等很多。其中自然语言处理的输入输出基本上都是序列,序列问题是自然语言处理最本质的问题。
1. 序列模型类型
序列模型:就是输入输出均为序列数据的模型,序列模型将输入序列数据转换为目标序列数据。
一对多,多对一,部分多对多,完全多对多
1. 经典的seq2seq模型
seq2seq是序列问题中一个非常重要的模型,很多的序列问题都可以用seq2seq来解决,比如说机器翻译、语音转文字、图像标注、文本总结等等。seq2seq基本框架还适用于图像压缩,超分辨率等计算机视觉的问题。
该模型就是多对多类型的(编码-解码模型)
通过encoder对源语言(输入)进行编码得到fixed length的上下文向量(content vector)c,然后在从c恢复出要翻译的目标语言(输出)。
基于CNN的seq2seq:
基于LSTM:
RNN优点:
- Model of choice for learning variable-length representations(可处理变长句子)
- Natural fit for sentences of pixels(可按单词为单位进行处理)
RNN缺点:
- Sequential computationsinhibits parallelization(无法并行计算)
- No explicit modeling of long and short range dependencies(对于长短期的记忆没有明显的表征建模,我理解应该是有定性无定量的意思吧)
- We want to model hierarchy(我理解:模型不是层次的,而是摊开的)
- Transmitting local and global information through one bottleneck[hidden state](所有的输入信息都是压缩在了上下文向量c中)
CNN优点:
- Trivial to parallelize(per layer)(非常适合并行化处理)
- Exploits local dependencies(很好的捕捉到局部依赖,我理解:卷积操作就是一个个step挪动的,每个细节都会cover到)
- interaction distance’between positions linear or logarithmic Long-distance dependencies require many layers(例如下图中的例子,每个卷积只会捕捉到3个词的信息,如果词相隔较远,则需要在后面的conv层才能捕捉到它们的相关信息)
常见的基于CNN的机器翻译模型:
2.注意力机制Attention
带有注意力的循环神经网络 RNNs With Attention
Removes bottleneck of Encoder-Decoder Model
Provides context for given decoder step
总结:
- 如何实现并行计算同时缩短依赖距离:采用自注意力机制
- 如何像CNN一样考虑到多通道信息:采用多头注意力
- 自注意力机制损失了位置信息,如何补偿:位置嵌入
- 后面的层中位置信息消散:残差连接
更多推荐
所有评论(0)