IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 文献阅读:Synthesizer: Rethinking Self-Attention in Transformer Models -> 正文阅读

[人工智能]文献阅读:Synthesizer: Rethinking Self-Attention in Transformer Models

1. 文章简介

前两天在看Google的Transformer Quality in Linear Time突然想起来这篇long long ago之前看过的transformer的变体,因此这里就回来考个古,顺便加深一下理解吧。

这篇文章同样是Google提出来的一个工作,不过是在20年了。某种程度上,确实还是非常的佩服Google的,因为考虑到近年来Transformer在NLP以及CV领域的各种猪突猛进,主流的工作感觉都是在Transformer的基础上进行工作迁移,结构优化以及各种细化研究,但是Google自己却总感觉对于Transformer本身不太满意,时不时就搞出一篇文章来想要从根本上推翻transformer的基础架构。

这篇Synthesizer就是其中之一,他的关注点在于Transformer自身的self-attention的权重计算部分,考察 Q Q Q K K K的点积计算attention权重的方式是否是真的必要的。如果直接给出一个与输入token无关的全局self-attention权重是否同样能够生效,感觉实在考察self-attention结构之所以有效的更为本质的原因。

结论而言,文章认为 Q Q Q K K K的点积计算attention权重的方式似乎效果并不是那么的重要,直接训练权重都能够获得不弱于sota的结果,甚至直接随机权重然后fix都能得到一些过去的结果……

不过要想要达到sota,似乎attention权重还是要和输入权重关联起来才能达到效果的最优。

Anyway,当时看这篇文章感觉还是很震惊的,不过两年过去了,感觉似乎这篇文章相关的结构也没有被大幅利用起来,整体来说还是vanilla的transformer占着主导的地位……

2. 核心方法

如前所述,这篇文章的核心就是针对self-attention的结构进行了细化研究,尝试优化掉了点积操作,从而可以考察self-attention权重的更本质的含义。

我们首先给出各个版本的self-attention结构图以及对应的参数量如下:

在这里插入图片描述

在这里插入图片描述

1. Vanilla Self-Attention (V)

对于最基础的self-attention结构,假设attention层的输入为 X ∈ R l ? d X \in \mathbb{R}^{l*d} XRl?d,则有:

{ Q = W Q ? X + b Q K = W K ? X + b K V = W V ? X + b V O = s o f t m a x ( W Q ? W k T d ) ? V \left\{ \begin{aligned} Q &= W_Q \cdot X + b_Q \\ K &= W_K \cdot X + b_K \\ V &= W_V \cdot X + b_V \\ O &= softmax(\frac{W_Q \cdot W_k^T}{\sqrt{d}}) \cdot V \end{aligned} \right. ????????????????QKVO?=WQ??X+bQ?=WK??X+bK?=WV??X+bV?=softmax(d ?WQ??WkT??)?V?

其中, W Q , W K , W V ∈ R d × d W_Q, W_K, W_V \in \mathbb{R}^{d \times d} WQ?,WK?,WV?Rd×d,所以,总的参数量级为 O ( 3 d 2 ) O(3d^2) O(3d2),Self-Attention部分的参数量级为 O ( 2 d 2 ) O(2d^2) O(2d2) W Q , W K W_Q, W_K WQ?,WK?)。

后续由于只调整self-attention的权重部分,因此,我们说的self-attention部分的参数量就仅指除了 V V V之外的部分的参数量,即权重部分的参数量。

2. Dense Synthesizer (D)

Dense Synthesizer的核心思路是说使用FFN层来替换掉attention权重的生成过程,即:

{ B = W 2 ( σ R ( W 1 ? X + b 1 ) ) + b 2 V = W V ? X + b V O = s o f t m a x ( B ) ? V \left \{ \begin{aligned} B &= W_2(\sigma_R(W_1 \cdot X + b_1)) + b_2 \\ V &= W_V \cdot X + b_V \\ O &= softmax(B) \cdot V \end{aligned} \right. ??????BVO?=W2?(σR?(W1??X+b1?))+b2?=WV??X+bV?=softmax(B)?V?

其中, W 1 ∈ R d × d W_1 \in \mathbb{R}^{d \times d} W1?Rd×d W 2 ∈ R l × d W_2 \in \mathbb{R}^{l \times d} W2?Rl×d,因此,其参数量级为 O ( d × l + d 2 ) O(d\times l + d^2) O(d×l+d2)

3. Random Synthesizer (R)

Random Synthesizer的思路较之上述的Dense Synthesizer则更加暴力,我们直接给出一组与输入无关的权重矩阵,然后直接训练这组权重然后考察效果。

具体而言,即为:

{ V = W V ? X + b V O = s o f t m a x ( R ) ? V \left \{ \begin{aligned} V &= W_V \cdot X + b_V \\ O &= softmax(R) \cdot V \end{aligned} \right. {VO?=WV??X+bV?=softmax(R)?V?

其中, R ∈ R l × l R \in \mathbb{R}^{l\times l} RRl×l,对应的参数量极同样为 O ( l 2 ) O(l^2) O(l2)

4. Factorized Model

这里,我们注意到一点,这里,我们虽然减少了权重的计算,但是Self-Attention层的参数总量却从 O ( 2 d 2 ) O(2d^2) O(2d2)增加到了KaTeX parse error: Undefined control sequence: \tims at position 4: O(l\?t?i?m?s? ?d + d^2)(Dense Synthersizer)或者 O ( l 2 ) O(l^2) O(l2)(Random Synthesizer)。

由于通常来说句长 l l l是大于模型维度 d d d的,因此模型的参数总量事实上是有所增加的。

因此,这里通过对句长进行拆分来缩减来减少参数总量。

我们假设句长 l = a × b l = a \times b l=a×b,则我们具体有:

1. Factorized Dense Synthesizer (FD)

{ A = σ R ( W 0 ? X + b 0 ) B 1 = W 1 A + b 1 B 2 = W 2 A + b 2 B = B 1 ? B 2 \left \{ \begin{aligned} A &= \sigma_R(W_0 \cdot X + b_0) \\ B_1 &= W_{1}A + b_{1} \\ B_2 &= W_{2}A + b_{2} \\ B &= B_1 * B_2 \end{aligned} \right. ????????????AB1?B2?B?=σR?(W0??X+b0?)=W1?A+b1?=W2?A+b2?=B1??B2??

其中, W 0 ∈ R d × d , W 1 ∈ R a × d , W 2 ∈ R b × d W_0 \in \mathbb{R}^{d \times d}, W_1 \in \mathbb{R}^{a \times d}, W_2 \in \mathbb{R}^{b \times d} W0?Rd×d,W1?Ra×d,W2?Rb×d

由此,就可以将参数总量缩减至 O ( d 2 + d × ( a + b ) ) O(d^2 + d \times (a + b)) O(d2+d×(a+b))

2. Factorized Random Synthesizer (FR)

{ R = R 1 × R 2 V = W V ? X + b V O = s o f t m a x ( R ) ? V \left \{ \begin{aligned} R &= R_1 \times R_2 \\ V &= W_V \cdot X + b_V \\ O &= softmax(R) \cdot V \end{aligned} \right. ??????RVO?=R1?×R2?=WV??X+bV?=softmax(R)?V?

其中, R 1 ∈ R l × k , R 2 ∈ R k × l , k ? l R_1 \in \mathbb{R}^{l \times k}, R_2 \in \mathbb{R}^{k \times l}, k \ll l R1?Rl×k,R2?Rk×l,k?l

5. Mixture of Synthesizer

Mixture of Synthesizer方法事实上就是在计算权重过程中联合使用上述的全部方法,具体而言,即有:

O = S o f t m a x ( ∑ i α i ? S i ( X ) ) ? V O = Softmax(\sum_{i} \alpha_i \cdot S_i(X)) \cdot V O=Softmax(i?αi??Si?(X))?V

其中, ∑ i α i = 1 \sum_i \alpha_i = 1 i?αi?=1,为一组归一化的权重因子,而 S i ( X ) S_i(X) Si?(X)上上述介绍的任意一种权重因子。

为了泛化其效果,参数 α \alpha α并没有使用超参,而是交由模型自己进行学习得到的。

3. 实验考察

下面,我们来看一下上述各个版本下的模型实际的效果以及性能。

1. 模型效果考察

1. 翻译 & 语言模型

文中首先考察一下变换了self-attention的权重构成方式之后在翻译以及语言模型上的效果。

在这里插入图片描述

可以看到:

  • 即便是随机参数之后直接固定住attention权重,模型也能够训练得到一个还过得去的结果;
  • Dense以及Random的方式训练得到的模型在效果上和vanilla Transformer效果都是相接近的,只是略有降低而已;
  • Factorized方法似乎多少对于性能还是会产生一定的下滑,但是幅度事实上也并不大;
  • 采用Mix权重方式能够获得最好的效果

2. 文本生成

同样的,作者也在文本归纳以及对话任务当中也进行了一下考察,得到结果如下:

在这里插入图片描述

可以看到:

  • 在summary任务当中最优的模型为D+V模型;
  • 在对话任务当中,最优的模型为Dense Synthesizer模型;

3. GLUE & SuperGlue

在Glue和SuperGlue任务当中,Vanilla Transformer的设计则是完全优于Dense Synthesizer和Random Synthesizer的,但是后两者同样可以提供一些辅助的效果,使得Mixture模型达到更好的效果。

在这里插入图片描述

4. 结论

综上,我们可以看到:

  • Synthesizer在效果上整体是略逊于Vanilla Transformer的,不过对于生成系列的任务,他们效果其实差不了太多;
  • 在Glue系列任务当中,单一的Synthesizer倒是有明显的效果下滑,不过他们依然是有意义的,通过Mixture的方式,他们可以更进一步的提升模型的效果。

2. 模型性能考察

最后,我们来考察一下Synthesizer模型的实际运行性能。

1. 与Transformer以及CNN比较

首先,文中拿Synthesizer与Vanilla Transformer以及Conv网络比了一下效果,得到结果如下:

在这里插入图片描述

可以看到:

  • 虽然效果有所下滑,不过Synthesizer在运行速度上确实是优于Vanilla Transformer以及Conv网络的。

2. 与Linformer比较

同样的,文中还拿Synthesizer与Linformer进行了一下比较,得到结果如下:

在这里插入图片描述

可以看到:

  • FR版本的Synthesizer运行的性能是优于Vanilla Transformer以及Linformer的,效果上则是在Reviews上面有所提升,而在News上面有所下滑;
  • 表中既然没有给出非Factorized版本的模型效果,大概率它们的性能也是有所下滑的吧;

3. 结论

综上,Synthesizer去除了点积计算之后确实在性能上通常能够带来一定的提升,但是考虑到效果,并不一定总是我们想要的结果。

4. 结论 & 思考

综上,整体来说,无怪乎Synthesizer无法全面替代掉Vanilla Transformer,虽然其在计算量上面确实较之Vanilla Transformer有一定的减少,但是其代价就是增加了参数量,并且其模型的效果较之Vanilla的Transformer同样所有下滑,虽然在翻译以及生成任务上的下滑并不明显。

但是从好的一面来说,文中对于self-attention权重本质的考察还有很有意义的,只不过与文中的目标相反,似乎从结果来看,还是与token相关联的self-attention权重才是比较好的权重生成方式。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 20:50:48  更:2022-03-21 20:52:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 13:55:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码