这篇笔记将从 Attention is not all you need 这篇文章入手,讲讲 Transformer 中的秩坍缩问题。

# 概述

Attention is not all you need 这篇文章主要用来分析 Transformer 中的多头自注意力网络(multi-head self-attention)的秩坍缩问题,研究的对象是带有残差连接的多头自注意力网络。

作者首先构造了一种称为 path decomposition 的方法,给出了含有残差连接的多头自注意力网络的形式化表达。随后,作者以该表达为基础,借助一种特殊的 “范数”(不严格满足范数定义),对网络输出进行了放缩,得到了一种 Lipshitz 关系,从而得到了网络的收敛速度。

文章的第一作者 Yihe Dong 是 Princeton 本科, Wisconsin Madison 研究生,数学专业(太强了)。因此文章数学推导味道很浓~作者曾在 Microsoft Research AI 工作,目前在 Google. 研究兴趣方向是结构数据学习、自动特征工程、多模态表示学习、几何表示学习。

# 路径分解

假设同时输入 nn 个 token, 那么输入矩阵可以表示为 XRn×din\boldsymbol{X} \in \mathbb{R}^{n \times d_{\mathrm{in}}}. 于是,头数为 HH 的多头自注意力网络的第 hh 个头可以表示为

SAh(X)=PhXWV,h+1bV,h,\mathrm{SA}_h(\boldsymbol{X}) = \boldsymbol{P}_h \boldsymbol{X} \boldsymbol{W}_{V,h} + \boldsymbol{1}\boldsymbol{b}_{V,h}^\top,

其中 WV,hRdin×dv\boldsymbol{W}_{V,h} \in \mathbb{R}^{d_{\mathrm{in}} \times d_v}, PhRn×n\boldsymbol{P}_h \in \mathbb{R}^{n \times n} 是经线性变换后 Q,KQ, K 两部分的乘积再作 softmax()\mathrm{softmax}(\cdot). 由于经过 softmax 变换,该矩阵是一个行随机矩阵,即每行的元素和为 11.

然后,将整个多层的自注意力网络进行分解,形式上可以得到

SAN(X)=path([H]{0})LPpathXWpath+1b\mathrm{SAN}(\boldsymbol{X}) = \sum_{path \in ([H] \cup \{0\})^L} \boldsymbol{P}_{path} \boldsymbol{X}\boldsymbol{W}_{path} + \boldsymbol{1}\boldsymbol{b}^\top

注意到,行随机矩阵关于矩阵乘法封闭,因此此处的 PpathP_{path} 仍然是行随机矩阵。

# 单头自注意力网络的收敛性分析