1、前言
最近,AIGC(AI-Generated Content,人工智能生成内容)发展迅速,不仅被消费者追捧,而且备受技术和产业界关注。2022年9月23日,红杉美国发表文章《生成式AI:一个创造性的新世界》,认为 AIGC会代表新一轮范式转移的开始。2022年10月,Stability AI发布开源模型Stable Diffusion,可以根据用户输入的文字描述(称为提示词,prompts)自动生成图像,即文生图(Text-to-Image). Stable Diffusion、DALL-E 2、Midjourney、文心一格等可以生成图片的AIGC模型引爆了AI作画领域,AI作画风行一时,标志人工智能向艺术领域渗透。下图展示了由百度“文心一格”平台创作的“未来机甲”主题作品。
图1 由百度“文心一格”平台创作的AI画作
AIGC领域的迅猛发展,离不开深度神经网络的进步。具体地说,是Transform模型的出现,赋予了神经网络更加强大的全局计算能力,减少了网络训练耗时,提高了网络模型的表现能力。当前表现较为优秀的AIGC领域模型,其技术底层架构中均包含Attention和 Transform技术。
2、发展历史
2.1 深度神经网络
以深度神经网络为代表的信息技术的发展,推动了人工智能领域的进步与拓展。2006年,Hinton等人利用单层的RBM自编码预训练使得深层的神经网络训练得以实现;2012年,Hinton和Alex Krizhevsky设计的AlexNet神经网络模型在ImageNet竞赛中实现图像识别分类,成为新一轮人工智能发展的起点。当前流行的深度神经网络是仿照生物神经网络所提出的概念。在生物神经网络中,生物神经元层层传递接收到的信息,多个神经元信息汇总得到最终的结果。使用类比生物神经单元设计的逻辑神经单元构建的数学模型被称为人工神经网络。在人工神经网络中,逻辑神经单元被用来探索输入数据和输出数据间的隐藏关系,当数据量较小时,浅层的神经网络就可以满足一些任务的要求,然而,随着数据规模的不断扩大,深度神经网络开始显示出其得天独厚的优势。
2.2 注意力机制
注意力机制(Attention Mechanism)由Bengio团队于2014年提出并在近年广泛的应用在深度学习中的各个领域,例如在计算机视觉方向用于捕捉图像上的感受野,或者NLP中用于定位关键token或者特征。大量实验证明,添加了注意力机制的模型在图像分类、分割、追踪、增强以及自然语言识别、理解、问答、翻译中均取得显著的效果提升。
注意力机制仿照视觉注意力机制而来。视觉注意力机制是人类大脑的一种天生的能力。当我们看到一幅图片时,先是快速扫过图片,然后锁定需要重点关注的目标区域。比如当我们观察下述图片时,注意力很容易就集中在了婴儿脸部、文章标题和文章首句等位置。试想,如果每个局部信息都不放过,那么必然耗费很多精力,不利于人类的生存进化。同样地,在深度学习网络中引入类似的机制,可以简化模型,加速计算。从本质上理解,Attention是从大量信息中有筛选出少量重要信息,并聚焦到这些重要信息上,忽略大多不重要的信息。
图2 人类注意力机制示意图
3、技术详解
智能Transformer模型抛弃了传统的CNN和RNN单元,整个网络结构完全是由注意力机制组成。在本章节中,我们会首先介绍 Transformer模型的总体流程,之后详细介绍其中涉及的位置编码信息和Self-Attention计算。
3.1 流程总述
图3 注意力机制流程图
如上图所示,Transformer由Encoder模块和Decoder模块两个部分组成,Encoder和Decoder都包含N个block。以执行翻译任务为例,Transformer的工作流程大体如下:
第一步:获取输入句子的每一个单词的表示向量X,X由单词自身Embedding和单词位置的Embedding相加得到。
第二步:将得到的单词表示向量矩阵传入Encoder模块中,Encoder模块对于输入数据采用Attention方法进行计算。经过N个Encoder模块后可以得到句子所有单词的编码信息矩阵,每一个Encoder模块输出的矩阵维度与输入完全一致。
第三步:将Encoder模块输出的编码信息矩阵传递到Decoder模块中,Decoder会依次根据当前翻译过的单词i翻译下一个单词i+1。与Encoder结构相同,Decoder结构也使用Attention方法进行计算。在使用的过程中,翻译到单词i+1的时候需要通过Mask操作遮盖住i+1之后的单词。
3.2 Self-Attention计算
Transform模型的核心是注意力计算,其可以通过公式表示为
其中,Q,K,V分别表示Query,Key,Value,这三个概念取自于信息检索系统,举个简单的搜索的例子来说。当你在某电商平台搜索某件商品时,你在搜索引擎上输入的内容便是Query,然后搜索引擎根据Query为你匹配Key(例如商品的种类,颜色,描述等),然后根据Query和Key的相似度得到匹配的内容(Value)。
self-attention中的Q,K,V也是起着类似的作用,在矩阵计算中,点积是计算两个矩阵相似度的方法之一,因此上述公式中使用了Q矩阵乘以K矩阵的转置进行相似度的计算。为了防止内积过大,需要除以d的平方根,最后对结果施以softmax激活函数。
3.3 位置编码
Transformer中除了单词自身的Embedding,还需要使用位置Embedding表示单词出现在句子中的位置。因为Transformer不采用RNN的结构,而是使用全局信息,不能利用单词的顺序信息,而这部分信息对于NLP或CV而言均非常重要。所以Transformer中使用位置Embedding保存单词在序列中的相对或绝对位置。
位置Embedding用PE表示,PE的维度与单词Embedding是一样的。PE可以通过训练得到,也可以使用某种公式计算得到。在Transformer中采用了后者,计算公式如下:
其中,pos表示单词在句子中的位置,d表示PE的维度,其大小与单词自身Embedding相同,2i表示偶数的维度,2i+1表示奇数维度。
4、总结
Transformer的重点是Self-Attention结构,通过多维的Attention结构,网络可以捕获单词之间多种维度上的隐藏关系,然而Transformer本身是不能利用单词的顺序信息的,因此需要在输入中添加位置Embedding,用以存储单词的位置信息。与循环神经网络相比,Transformer网络可以比较好地并行训练,与卷积神经网络相比,Transformer网络计算两个位置之间的关联所需的操作次数不随距离增长,可以突破卷积神经网络受限于感受野大小的计算距离。同时,Transformer网络可以产生更具可解释性的模型。我们可以从模型中检查注意力分布,各个注意头(attention head)可以学会执行不同的任务。