学习自张俊林大佬的知乎https://zhuanlan.zhihu.com/p/54743941
想整理下NLP任务中特征提取的发展脉络流程,整理了下张大神的博客。
RNN
特征提取方案:在输入的线性序列中,从前向后传播收集输入信息
存在的问题:反向传播路径太长,容易导致严重的梯度消失
变种RNN:LSTM、GRU
LSTM为什么能一定程度上解决梯度消失的问题?
LSTM通过增加中间状态信息直接向后传播,从而缓解了梯度消失问题
RNN存在的问题:并行计算能力差
原因:在RNN网络中,T时刻的隐层状态除了依赖于当前时刻的输入外,还依赖于T-1时刻的隐层状态,这就形成了序列依赖关系,所以RNN无法并行计算。
CNN
旧版本CNN用于NLP特征提取的运作机制是:关键在于卷积核覆盖的滑动窗口,CNN能捕捉到的特征基本都体现在这个滑动窗口中,大小为k的卷积窗口经过序列word,捕获到的是word的k-gram片段信息,这些k-gram片段就是CNN捕获到的特征,k的大小决定了能捕获多远距离的特征。
所以CNN有一个重要的问题:无法捕获远距离特征、位置编码记忆问题。
CNN记录位置编码信息:CNN的卷积层是可以记录输入数据的相对位置信息的,但是如果在卷积层后面加上pooling层(比如Maxpooling层,从卷积核的特征向量里选择最强的那个特征),则位置信息会被损失掉。