机器之心原创编辑:陈萍在进行NLP模型训练前,请先选择一个好的特征提取器。在文章中我们介绍了自然语言处理的基础问题——文本预处理的常用步骤。本文将进阶讲述特征提取方面的相关算法。如果用一句话总结目前NLP在特征提取方面的发展趋势,那就是「RNN明日黄花,正如夕阳产业,慢慢淡出舞台;CNN老骥伏枥,志在千里,如果继续优化,还可能会大放异彩;Transformer可谓如日中天,在特征提取方面起着中流砥柱的作用」。至于将来,又会有什么算法代替Transformer,成为特征提取界的新晋宠儿。我想一时半会儿可能不会那么快,毕竟算法开发可是个很漫长的过程。现在我们就来探究一下,在NLP特征提取方面,算法是怎样做到一浪更比一浪强的。RNN(循环神经网络)RNN与CNN(卷积神经网络)的关键区别在于,它是个序列的神经网络,即前一时刻的输入和后一时刻的输入是有关系的。RNN结构下图是一个简单的循环神经网络,它由输入层、隐藏层和输出层组成。RNN的主要特点在于w带蓝色箭头的部分。输入层为x,隐藏层为s,输出层为o。U是输入层到隐藏层的权重,V是隐藏层到输出层的权重。隐藏层的值s不仅取决于当前时刻的输入x,还取决于上一时刻的输入。权重矩阵w就是隐藏层上一次的值作为这一次的输入的权重。下图为具有多个输入的循环神经网络的示意图:从上图可以看出,Sn时刻的值和上一时刻Sn-1时刻的值相关。将RNN以时间序列展开,可得到下图:RNN自引入NLP后,就被广泛应用于多种任务。但是在实际应用中,RNN常常出现各种各样的问题。因为该算法是采用线性序列结构进行传播的,这种方式给反向传播优化带来了困难,容易导致梯度消失以及梯度爆炸等问题。此外,RNN很难具备高效的并行计算能力,工程落地困难。因为t时刻的计算依赖t-1时刻的隐层计算结果,而t-1时刻的结果又依赖于t-2时刻的隐层计算结果……,因此用RNN进行自然语言处理时,只能逐词进行,无法执行并行运算。为了解决上述问题,后来研究人员引入了LSTM和GRU,获得了很好的效果。而CNN和Transformer不存在这种序列依赖问题,作为后起之秀,它们在应用层面上弯道超车RNN。CNN(卷积神经网络)CNN不仅在计算机视觉领域应用广泛,在NLP领域也备受
转载请注明:
http://www.aideyishus.com/lkcf/6783.html