NLP:从传统到现代的演进
NLP(自然语言处理)的本质是发现各语义单元之间的联系,去理解和拟合人类语言正确的表达方式,这种模拟是从简单到复杂的,从底向上,从具体到抽象的,回答如下问题什么样的字凑在一起叫词?什么词凑在一起才能成为一个句子?什么样的句子才能形成一个段落?
NLP的处理模式可大致概括如下:
对基本语义单元的向量化,计算机不认识什么叫字,词,句子,只认识向量(最终本质都是0,1),因此有了针对字符、词(从离散的One-hot编码到连续的词向量)、实体,句子的各种向量化手段。从传统TF-IDF等、到现代的CNN,RNN-主流为GRU与LSTM。
拼接:将各种语义单元拼接起来,这种操作可以理解为向上抽象了一层,将不同的语义单元连在一起,本身就带来了一定的单元之间的相关信息,然而还不够。
再抽象,学习特征之间的关系,从而产生一个更高层面的表征
可用CNN,RNN-包括lstm, 再到XLNET,bert 等各种手段。这中间经历了几次飞跃。
1、为了解决长距离依赖问题,引入了注意力机制;2、为了解决RNN线性计算速度的问题,并行计算思想的引入,以transformer为代表,引领了2017年以来的潮流,然而由于计算资源有限,一次处理的文本长度不能过长,因此又有了transformer-XL/reformer/Sparse Transformer等改进模型。
基于transformer,2018年以来,以BERT为代表的各种预训练模型开始横扫NLP界。超大规模的训练语料、大规模的GPU集群已成为标配。
为什么会诞生预训练模型,因为以前的NLP,每种任务都需要单独定制开发,诸如文本分类、蕴含推理、机器阅读、机器翻译、机器问答等等。既然大家的本质都是想去学习人类语言蕴含的表征,为什么不可以用一个强大的特征提取器,一次搞定?从某种意义上说,只要语料能够覆盖人类语言所蕴含的所有模式,那么预训练模型距离模仿人类的能力就越接近。
在众多预训练模型中,又分为AR自回归(Facebook的GPT/GPT2、目前已知最强的卡内基梅隆的XLNET)与AE自编码两大阵营(谷歌BERT系列)。
由于transformer有当前最强的特征提取能力,为了进一步解决AI不具备常识等缺陷,在进入transformer之前,将知识图谱所蕴含的知识灌进来。
近年来又有新的表征产生方式得到关注,即图神经网络,傅里叶、拉普拉斯等登上舞台,具体而言又有门控,图卷积等种类。
图能够更好描述世界上事物之间的关系,即事物是由网络连接起来的,transformer本质上还是对序列的特征提取,二维对多维,站的高度不如图。
堆叠特征提取模块,不仅是transformer,各种组合均可,可获得更全面的表征。对于经过层层由底向上而提取的表征,下游不同的任务有不同的处理方法。
1、文本分类、意图识别、语义标注,本质上是有监督学习任务。可再用一个或多个矩阵,进一步将其非线性化,获得更好的泛化能力,然后用softmax获得各类别的概率;
2、机器阅读,需要知道答案在文档中的起始位置,因此可2次softmax。
3、文本生成,编码-解码模型。
原文:https://www.cnblogs.com/shtjww/p/12313793.html