Transformer堪比CV界的ImageNet, NLP战场的主力军

说到Transformer, 可谓是NLP领域的一员猛将! 您应该会看到类似的架构.

Transformer堪比CV界的ImageNet, NLP战场的主力军

在NLP领域,科学家们做一一系列的尝试必入tf-idf,word2vec,glove,emlo,SVD的等一系列的预训练模型探索,可惜随着社会的进进步,需要文本表达更加准确,因为文本在计算机里面需要使用向量表达出来.相当于一句话,经过中间人传达,第三方收到消息,作出反应,如果第一个人给第二个人的消息不能很好的表达,第三个人岂不是GG了. 在NLP里面也是一样的, 就拿NER来说吧,对于序列问题,每个字需要soft max成你的BIO标签个,输入网络的第一层,不能很好的表示,模型泛化能力再强,也斗不过,是吧?

由在CV领域, 各种网络的出现, 并且都可以高度的并行化计算. 一方面可以加速模型训练,很快得到答案,另一方面,所见即所得(可解释性强烈一些). 对于出的RNN, 尤其是LSTM,它们是解决了对于文本类前后之间语义的信息,但是都过于复杂,而且理论依据也不是很强烈.

而相对于Transformer, 结构图就非常清晰了,这里也不是抵制RNN之类的,使用还的具体根据业务,多做一个实验,毕竟数据才是王道. 在Transformer里面, 它的核心就是点积缩放注意力,可以使用下面这个公式来表达:
σ(QKTdk)V \sigma(\frac{QK^T}{\sqrt{d_k}})·V
这个公式也很好理解,它来源于信息检索里面的query,key和value. 在原论文里面,作者使用了512维,然后采用8个头, 也就是公式里面的dkd_k,这里会产生类似卷积里面的多个权重参数WW,目的就是多提取几个特征, 相除也没什么多的的实际意义,无非是为了缩小数字乘积, 好进行计算,这里一般认为相除之后是符合(0,dkd_k)的正态分布

它里面提出了position编码的概念, 因为此处是一句公式计算的来记录位置信息, 所欲完全避免了RNN那种的风格,必须讲上一层信息传递给下一层,导致并行计算是一个很大的问题.

而且这个依然沿用了encode-decode的风格, 不过站在现在来看, 它已经足够了疯狂了, 无论是我们现在使用的Bert还是GPT都只用到了他的一半, 就能在结果上有一个很大的提升.

关于Transformer这一块, 弄懂了其实也没什么, 之后我讲弄一片关于它在语言翻译上应用的案例, 而且从2018年之后, 可以通过发表的论文以及工业界看出,按照RNN,LSTM那种思路的都很少了,而大部分人都是在沿用Transformer这个思路, 而且很多论文就没什么创新了,都是在缩减这个网络,毕竟Transformer也是一个巨无霸哈! 之后的兵分两路,Bert(依靠encode)再到后来的AIBert, 或者GPT(deocde部分). 人们都在试图在这个上面要么减少参数,要么简化网络结构.

好了, 这一篇就到这吧, 争取大白话来讲.