💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] ## 注意力机制 Transformer 模型之所以如此强大,是因为它抛弃了之前广泛采用的循环网络和卷积网络,而采用了一种特殊的结构——注意力机制 (Attention) 来建模文本。 ## NLP 神经网络模型 NLP 神经网络模型的本质就是对输入文本进行编码,常规的做法是首先对句子进行分词,然后将每个词语 (token) 都转化为对应的词向量 (token embeddings),这样文本就转换为一个由词语向量组成的矩阵𝑋\=(𝑥1,𝑥2,…,𝑥𝑛),其中𝑥𝑖就表示第𝑖个词语的词向量,维度为𝑑,故𝑋∈𝑅𝑛×𝑑 在 Transformer 模型提出之前,对 token 序列𝑋的常规编码方式是通过循环网络 (RNNs) 和卷积网络 (CNNs)。 * RNN(例如 LSTM)的方案很简单,每一个词语𝑥𝑡对应的编码结果𝑦𝑡通过递归地计算得到: 𝑦𝑡\=𝑓(𝑦𝑡−1,𝑥𝑡) RNN 的序列建模方式虽然与人类阅读类似,但是递归的结构导致其无法并行计算,因此速度较慢。而且 RNN 本质是一个马尔科夫决策过程,难以学习到全局的结构信息; * CNN 则通过滑动窗口基于局部上下文来编码文本,例如核尺寸为 3 的卷积操作就是使用每一个词自身以及前一个和后一个词来生成嵌入式表示: 𝑦𝑡\=𝑓(𝑥𝑡−1,𝑥𝑡,𝑥𝑡+1) CNN 能够并行地计算,因此速度很快,但是由于是通过窗口来进行编码,所以更侧重于捕获局部信息,难以建模长距离的语义依赖。 - Google《Attention is All You Need》提供了第三个方案:**直接使用 Attention 机制编码整个文本**。相比 RNN 要逐步递归才能获得全局信息(因此一般使用双向 RNN),而 CNN 实际只能获取局部信息,需要通过层叠来增大感受野,Attention 机制一步到位获取了全局信息: 𝑦𝑡\=𝑓(𝑥𝑡,𝐴,𝐵)