Transformer架构在机器学习领域(尤其是NLP里)是一项热门研究,为我们带来了许多重要成果,比如:GPT-2、GPT-3等写稿机器人;第一代GPT及其性能更优越的“继任者”BERT模型,在众多语言理解任务中以前所未有的数据利用效率获得了最准确的结果,而且几乎不需要调整任何参数,也就是在过去花费一个月做的事情、现在只需要花费30分钟,还达到了更好的效果;以及AlphaStar等。
由此可见,Transformer的威力真是不同凡响!
2017年,谷歌团队首先提出Transformer模型。该团队将Transformer概括为一句话:“Attention is All You Need.”但单单看这句话,人们并不能对Transformer模型建立直观的理解与认知。为此,作者希望从发展历史的角度对Transformer模型作一个直白的解释。
1、经典的全连接神经网络
在经典的全连接神经网络中,每个不同的输入变量都是独一无二的雪花算法(snowflake)。当全连接神经网络学会识别涉及某个特定变量或其集合时,它们不会对其他变量或其集合进行任何自动泛化。
当你在社科研究或医学研究项目中进行回归分析,输入可能是人口统计学变量(比如“年龄”或“每周饮酒量”)时,上述原理也讲得通。但如果输入变量包含某种已知的、结构化的关系,比如空间或时间布局,全连接神经网络的表现就会很差。
如果输入是图片中的像素,那么全连接网络就无法学习类似“左侧的像素较亮,右侧的像素较暗”的模式,而是必须分别学习“(0, 0) 比 (1, 0) 亮”,“(1, 0) 比 (2, 0) 亮”以及“ (0, 1) 比 (1, 1) 亮”等等。
2、卷积神经网络
卷积神经网络(CNN)了解输入的空间布局,并用相对的术语处理输入:CNN不学习“在位置(572,35)处的像素”,而是学习“我正看着的中心的像素”、“左边的像素”等等。然后,它们一边“看”向图像的不同部分一边滑动,在每个区域中寻找相对中心的相同图案。
CNN与全连接网络有两个不同点:权值共享(weight sharing)和局部性(locality)。
权值共享:在中心位置有一些固定的计算方法,将这些计算应用到每个位置。
局部性:每一次计算都只能看向距离中心位置相当近的事物。例如,你可能会在一个3x3或5x5的窗口中查找图案特征。
权值共享对于任何空间或时间构造的输入(包括文本)都是至关重要的。
然而,CNN的局部性却不适用于处理文本。
我是这样考虑的:图像中的每一个突出事物(狗,狗的鼻子,边缘,一小块颜色)都可以分开来独立理解,不需要观察该事物以外的内容。比方说,图像中不包含替代物,也不包括要求你观察其他事物来掌握某物本质的参考系统。
除非是在一些奇奇怪怪的场景,否则通常不会出现“哦,我现在看到一只狗,但我必须观察狗以外的事物才确认这是一只狗”的情况。所以,你可以从一些小细节入手,然后分层次深入思考:“啊,这是边缘部分–>啊,那是一个由边缘组成的长方形物体–>啊,那是狗的鼻子–>啊,那是狗的头部–>啊,那是一只狗。”物体的每个部位都是由它所包含的更小的特征来定义的。
但上述的方法并不能用于文本处理。例如,句子中的代词可能出现在句首,但是指代的先行词常常在句末。我们没有办法在不改变句意的前提下,将一个句子准确无误地分解成可以独立理解的分句&#