\documentclass[a4paper]{article}

% Basic packages
\usepackage[fontset=fandol]{ctex}
\usepackage{amsmath, amssymb}
\usepackage{graphicx}
\usepackage[margin=2.5cm]{geometry}
\usepackage[most]{tcolorbox}
\usepackage{etoolbox}
\usepackage{listings}
\usepackage{hyperref}
\usepackage{booktabs}
\usepackage{subcaption}
\usepackage{float}
\usepackage{tikz}
\usetikzlibrary{positioning, arrows.meta, calc}
\IfFileExists{pgfplots.sty}{
    \usepackage{pgfplots}
    \pgfplotsset{compat=1.18}
}{}

% Highlight boxes
\newtcolorbox{knowledgebox}[1]{
    enhanced, colback=blue!5!white, colframe=blue!75!black, colbacktitle=blue!75!black,
    coltitle=white, fonttitle=\bfseries, title=#1, attach boxed title to top left={yshift=-2mm, xshift=2mm},
    boxrule=1pt, sharp corners
}

\newtcolorbox{importantbox}[1]{
    enhanced, colback=yellow!10!white, colframe=yellow!80!black, colbacktitle=yellow!80!black,
    coltitle=black, fonttitle=\bfseries, title=#1, sharp corners
}

\newtcolorbox{warningbox}[1]{
    enhanced, colback=red!5!white, colframe=red!75!black, colbacktitle=red!75!black,
    coltitle=white, fonttitle=\bfseries, title=#1, sharp corners
}

% Listings
\lstset{
    language=Python,
    basicstyle=\ttfamily\small,
    keywordstyle=\color{blue},
    stringstyle=\color{red!60!black},
    commentstyle=\color{green!60!black},
    breaklines=true,
    frame=single,
    numbers=left,
    numberstyle=\tiny\color{gray},
    captionpos=b,
    extendedchars=false
}

% Front-page metadata
\newcommand{\notetitle}{CS224N Lecture 8: Transformers}
\newcommand{\noteauthors}{基于 Anna Goldie 授课内容整理}
\newcommand{\notedate}{2024年春季}
\newcommand{\videochannel}{Stanford Online}
\newcommand{\videopublishdate}{2024}
\newcommand{\videoduration}{1:16:59}
\newcommand{\videourl}{https://www.youtube.com/watch?v=WLgX8xLgytM}
\newcommand{\videocoverpath}{cover.jpg}
\newcommand{\repourl}{https://github.com/hqhq1025/ai-course-notes}


% Footer with repo info
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[C]{\thepage}
\fancyfoot[R]{\footnotesize\color{gray}\href{\repourl}{AI Course Notes}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

\begin{document}

\begin{titlepage}
\centering
{\Large 课程笔记\par}
\vspace{1.2cm}
{\huge\bfseries \notetitle\par}
\vspace{0.8cm}
{\large \noteauthors\par}
\vspace{0.3cm}
{\large \notedate\par}
\vspace{1.2cm}

\ifdefempty{\videocoverpath}{
{\small 请在生成笔记时填入视频封面图的本地路径。\par}
}{
\includegraphics[width=0.82\textwidth,height=0.45\textheight,keepaspectratio]{\videocoverpath}\par
}

\vfill
\begin{tcolorbox}[width=0.9\textwidth, colback=black!2!white, colframe=black!60, sharp corners]
\textbf{视频作者/频道}：\videochannel\par
\textbf{发布日期}：\videopublishdate\par
\textbf{视频时长}：\videoduration\par
\ifdefempty{\videourl}{}{
\textbf{视频链接}：\href{\videourl}{\nolinkurl{\videourl}}\par
}
\par
\textbf{项目主页}：\href{\repourl}{\nolinkurl{\repourl}}\par
\end{tcolorbox}
\end{titlepage}

\tableofcontents
\newpage

%% ========== 引言 ========== 

\section{引言：为什么 Transformers 重要}

本讲的主题是 \textbf{Transformers}。这类模型建立在 self-attention 之上，已经成为现代 NLP 的默认架构，也逐渐扩展到图像、蛋白质、系统优化等领域。

\begin{importantbox}{本讲核心内容}
\begin{enumerate}
    \item Transformers 为什么在 NLP 中迅速取代 RNN
    \item self-attention 的直觉、公式与向量化实现
    \item Transformer encoder-decoder 的完整结构
    \item positional encoding、multi-head attention、masked attention 的作用
    \item Transformer 的局限，以及后续的高效变体
\end{enumerate}
\end{importantbox}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-000.jpg}
\caption{Lecture 8 标题页：Transformers\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第1页。}

\subsection{Transformers 改变了什么}

过去几年里，Transformer 不只是提升了机器翻译的质量，更改变了整个 NLP 研究范式。其核心优势不是某一个小技巧，而是把序列建模的主干从 recurrence 改成了 attention。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-006.jpg}
\caption{原始 Transformer 论文展示的完整 encoder-decoder 架构：堆叠 self-attention、feedforward、residual、layer norm\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第7页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-007.jpg}
\caption{Transformer 在机器翻译上的效果：不仅 BLEU 更高，而且训练效率也更好\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第8页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-008.jpg}
\caption{SuperGLUE 等更难任务上的表现：Transformer 进入了更通用的 NLP 评测体系\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第9页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-009.jpg}
\caption{Transformer 也推动了大语言模型的兴起\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第10页。}

\subsection{Transformer 不只属于 NLP}

本讲也强调了一个趋势：Transformer 不是只在文本任务里有效，而是已经扩散到更广泛的领域。幻灯片中给出了蛋白质折叠、图像分类和系统优化的例子。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-010.jpg}
\caption{Transformer 结构开始扩展到 NLP 之外\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第11页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-011.jpg}
\caption{AlphaFold2 等蛋白质建模系统使用了 Transformer 思想\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第12页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-012.jpg}
\caption{Vision Transformer 说明 attention 也能用于图像分类\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第13页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-013.jpg}
\caption{Transformer 进一步被用于系统与编译器优化\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第14页。}

\subsection{缩放律的启示}

幻灯片用 scaling laws 提出一个更大的问题：如果 Transformer 的性能会随着模型、数据和计算规模平滑上升，那么我们是否只需要继续扩大同样的架构？

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-014.jpg}
\caption{Transformer 与 scaling laws：性能随规模增长呈现平滑的幂律趋势\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第15页。}

\begin{importantbox}{本讲的判断}
标题里问的是 ``Is Attention All We Need?''，但本讲给出的答案更接近 ``Attention 很重要，但还不够''。Transformer 的成功来自 attention + 位置编码 + 多头机制 + 残差 + layer norm + feedforward 的组合。
\end{importantbox}

\subsection{本章小结}

Transformer 之所以重要，是因为它在训练效率、长距离依赖建模和大规模扩展性上都比经典 RNN 更适合现代深度学习工作负载。接下来要理解的是：它到底是怎么工作的。

%% ========== 从 RNN 到 Attention ========== 

\section{从递归到 Attention}

\subsection{RNN 时代的主流做法}

在 Transformer 之前，NLP 的主流方案是用双向 LSTM 编码输入，再用解码器逐步生成输出。这个范式虽然有效，但它有两个明显问题：难以并行，且长距离依赖的梯度传播路径太长。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-016.jpg}
\caption{2016 年前后 NLP 的主流范式：双向 LSTM 编码器 + LSTM 解码器\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第17页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-023.jpg}
\caption{RNN 与 attention 的计算依赖对比：recurrence 的串行依赖限制了并行化\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第24页。}

\begin{importantbox}{RNN 的两个结构性瓶颈}
\begin{enumerate}
    \item \textbf{并行性差}：下一个状态必须依赖上一个状态，训练时很难充分利用硬件
    \item \textbf{交互距离长}：两个相距很远的词要通过许多时间步才能彼此影响，信息和梯度都更难传播
\end{enumerate}
\end{importantbox}

\subsection{Attention 作为过渡}

上一讲已经看到，attention 可以让 decoder 直接访问 encoder 中任意位置的信息。Transformer 进一步把这个思想推广到编码器和解码器内部，变成 \textbf{self-attention}。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-022.jpg}
\caption{自注意力的高层结构：每个词都可以和序列中的其他词交互\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第23页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-024.jpg}
\caption{Transformer 的核心优势：不会随着序列长度增加而增加不可并行步骤，任意两个词之间的最大交互距离是 $O(1)$\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第25页。}

\subsection{本章小结}

从 RNN 到 attention 的关键转变是：不再让信息只能沿着时间轴一步一步流动，而是允许每个位置直接检索整个序列。Transformer 把这个思想推到极致，于是计算图也变得更适合并行硬件。

%% ========== 理解 Transformer ========== 

\section{理解 Transformer}

\subsection{完整架构}

Transformer 由 encoder 和 decoder 两部分组成。encoder 反复堆叠 self-attention 与 feedforward，decoder 则在 self-attention 之外，再增加一层 cross-attention 去读取 encoder 输出。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-026.jpg}
\caption{Transformer encoder-decoder 的完整图：输入嵌入、位置编码、encoder 堆叠、decoder 堆叠、线性层和 softmax\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第27页。}

\subsection{Self-Attention 的直觉}

Attention 可以被理解成一个 ``fuzzy hashtable''：不是精确查找一个 key，而是根据 query 与所有 key 的匹配程度，返回一个加权和。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-028.jpg}
\caption{Attention 的直觉：query 与多个 key 做匹配，再对 value 做加权求和\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第29页。}

\begin{importantbox}{self-attention 的计算步骤}
\begin{enumerate}
    \item 对每个词计算 query、key、value
    \item 用 query 和所有 key 计算 attention score
    \item 对 score 做 softmax 归一化
    \item 对 value 做加权求和，得到该词的新表示
\end{enumerate}
\end{importantbox}

\subsection{从公式到向量化}

对第 $i$ 个位置，令
\[
q_i = W_Q x_i,\quad k_i = W_K x_i,\quad v_i = W_V x_i.
\]
则 attention 权重为
\[
\alpha_{ij} = \mathrm{softmax}_j\!\left(\frac{q_i^\top k_j}{\sqrt{d_k}}\right),
\]
输出为
\[
o_i = \sum_j \alpha_{ij} v_j.
\]
把整个序列堆起来后，向量化实现更简单：
\[
Q = XW_Q,\quad K = XW_K,\quad V = XW_V.
\]

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-029.jpg}
\caption{Transformer encoder 中 self-attention 的逐步计算方法\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第30页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-030.jpg}
\caption{向量化 self-attention：把整个序列作为矩阵输入一次性计算\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第31页。}

\subsection{为什么 attention 还不够}

如果只有 self-attention，模型本质上只是把 value 向量重新加权平均。这样虽然强大，但表达力仍然不够，所以 Transformer 在每个 attention block 后面还加了 feedforward 层。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-032.jpg}
\caption{仅有 self-attention 的问题：缺少逐元素非线性，容易退化为重新混合 value 向量\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第33页。}

\subsection{Residual、LayerNorm 和 Scaled Dot-Product}

为了让深层 Transformer 可训练，原论文引入了三类训练技巧。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-033.jpg}
\caption{训练 Transformer 的三类关键技巧：residual connection、layer norm、scaled dot-product attention\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第34页。}

\begin{knowledgebox}{Residual Connection}
残差连接把输入直接加到子层输出上：
\[
x' = x + \mathrm{Sublayer}(x).
\]
它的作用是保留原始信息、帮助梯度传播，并让深层网络更容易学习到接近恒等映射的行为。
\end{knowledgebox}

\begin{knowledgebox}{Layer Normalization}
LayerNorm 在每个 token 的特征维度上做归一化，减少 layer 输入分布的漂移：
\[
\mathrm{LN}(x) = \gamma \odot \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} + \beta.
\]
它比 batch norm 更适合 NLP，因为句子长度变化大，batch 的统计量也不稳定。
\end{knowledgebox}

\begin{knowledgebox}{Scaled Dot-Product Attention}
当 $d_k$ 很大时，$q^\top k$ 的方差会变大，softmax 容易饱和。于是要除以 $\sqrt{d_k}$，把数值尺度控制在更稳定的范围内。
\end{knowledgebox}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-034.jpg}
\caption{Residual connections：把原始输入直接传到下一层，有助于训练深层网络\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第35页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-035.jpg}
\caption{LayerNorm：在每层内部归一化，稳定训练分布\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第36页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-037.jpg}
\caption{缩放点积注意力：除以 $\sqrt{d_k}$ 后，dot product 的尺度更稳定\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第38页。}

\subsection{位置编码：解决顺序信息缺失}

self-attention 本身不关心词序。若直接把词向量送进去，``Man eats small dinosaur'' 和 ``Dinosaur eats small man'' 的表示几乎没有顺序差别，这显然不对。因此需要把位置编码注入模型。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-040.jpg}
\caption{通过 positional encoding 把顺序信息注入输入表示\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第41页。}

一种经典做法是把位置向量 $p_i$ 加到 token 表示上：
\[
x_i' = x_i + p_i.
\]
原始 Transformer 使用正弦/余弦位置编码：
\[
p_{i,2k} = \sin\!\left(i / 10000^{2k/d}\right), \quad
p_{i,2k+1} = \cos\!\left(i / 10000^{2k/d}\right).
\]
这种设计的优点是可外推到更长的序列，而且不同频率的正弦信号能编码相对位置信息。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-041.jpg}
\caption{正弦位置表示：用不同周期的 sin/cos 组合表示绝对位置\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第42页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-042.jpg}
\caption{Relative position encoding：有时词与词的相对关系比绝对位置更重要\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第43页。}

\subsection{多头注意力}

单个 attention head 往往只能学到一种局部模式。多头注意力让模型并行地学习多个投影空间里的匹配关系。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-044.jpg}
\caption{多头 self-attention：k 个 head 并行工作，最后把结果拼接起来\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第45页。}

若有 $h$ 个头，第 $\ell$ 个头使用自己的参数：
\[
Q^{(\ell)}, K^{(\ell)}, V^{(\ell)} \in \mathbb{R}^{d \times d/h}.
\]
每个头独立计算 attention，再把输出拼接：
\[
\mathrm{MHAtt}(X) = Y [O^{(1)}; \dots; O^{(h)}].
\]
直观上，不同的 head 可以分别关注词法邻近、句法依赖、长程共指等不同模式。

\subsection{Decoder 的两类 attention}

Transformer decoder 需要先做 masked self-attention，再做 encoder-decoder attention。前者防止“偷看未来”，后者从 encoder 的 memory 中读取源句信息。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-046.jpg}
\caption{完成 encoder 后进入 decoder 部分\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第47页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-047.jpg}
\caption{Masked self-attention 的问题：如果不遮挡未来 token，decoder 会直接作弊\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第48页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-048.jpg}
\caption{解决方法：在 attention score 上对未来位置加 mask，让它们变成 $-\infty$\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第49页。}

\[
e_{ij} =
\begin{cases}
q_i^\top k_j, & j < i, \\
-\infty, & j \ge i.
\end{cases}
\]
这保证了训练时可以并行计算所有位置，但每个位置仍然只能依赖左侧上下文。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-050.jpg}
\caption{Decoder 的 masked multi-head self-attention 模块\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第51页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-051.jpg}
\caption{Encoder-decoder attention：query 来自 decoder，keys 和 values 来自 encoder\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第52页。}

\begin{knowledgebox}{Self-attention 与 cross-attention 的区别}
\begin{itemize}
    \item \textbf{Self-attention}：$Q,K,V$ 都来自同一序列
    \item \textbf{Cross-attention}：$Q$ 来自 decoder，$K,V$ 来自 encoder
\end{itemize}
前者负责建模句内依赖，后者负责在生成时读取输入句子的记忆。
\end{knowledgebox}

\subsection{Decoder 的收尾}

decoder 最后还会经过 feedforward、线性层和 softmax，变成下一个 token 的概率分布。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-052.jpg}
\caption{Decoder 再次叠加 attention、feedforward、residual 和 layer norm\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第53页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-054.jpg}
\caption{输出侧的最终线性映射：把 hidden state 投影到词表维度\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第55页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-055.jpg}
\caption{最后接 softmax，得到下一词的概率分布\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第56页。}

\subsection{本章小结}

Transformer 的主体可以概括为：\textbf{位置编码 + 多头 self-attention + 残差连接 + layer norm + feedforward}。encoder 和 decoder 的差异主要在于 decoder 多了 mask 和 cross-attention。

%% ========== 缺点与变体 ========== 

\section{缺点与变体}

\subsection{Transformer 的主要缺点}

即使 Transformer 很强，它仍然有两个广为人知的短板：第一，self-attention 的计算和显存开销对序列长度是二次的；第二，绝对位置编码未必是最好的顺序表示。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-057.jpg}
\caption{Transformer 的主要问题：self-attention 的计算随序列长度二次增长\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第58页。}

\begin{importantbox}{两个主要方向}
\begin{enumerate}
    \item 降低 $O(T^2)$ self-attention 的成本
    \item 改进位置表示，让模型更好地利用顺序与结构信息
\end{enumerate}
\end{importantbox}

\subsection{位置表示的后续工作}

讲义里提到的几个方向包括 relative linear position attention、dependency syntax-based position 和 rotary embeddings。它们都试图让位置不只是一个静态的绝对 index，而是更贴近词与词之间的关系。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-058.jpg}
\caption{一些改进位置表示的思路：相对位置、句法位置、旋转位置编码等\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第59页。}

\subsection{高效 attention 变体}

为了摆脱 $O(T^2)$，研究者提出了许多高效 Transformer 变体。例如 Linformer 通过把序列长度维度投影到低维空间减少成本，BigBird 则用局部窗口、全局 token 和随机连接替代全连接注意力。

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-059.jpg}
\caption{Linformer：把序列长度投影到低维表示，降低 attention 成本\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第60页。}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-060.jpg}
\caption{BigBird：用局部、全局和随机注意力模式替换全连接 attention\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第61页。}

\begin{warningbox}{变体不一定真的更好}
讲义最后提醒：很多 Transformer 修改并不会带来显著收益。也就是说，改结构并不天然意味着更强，是否 transfer 到实际任务中仍然需要实证验证。
\end{warningbox}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-061.jpg}
\caption{总结性结论：很多修改并没有显著提升性能\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第62页。}

\subsection{本章小结}

Transformer 的成功并不意味着它已经没有缺陷。它仍然面对 quadratic cost 和位置表示设计的问题。后续研究主要围绕两条线展开：一条是让 attention 更省算力，另一条是让位置编码更符合语言结构。

%% ========== 总结与延伸 ========== 

\section{总结与延伸}

\subsection{全讲回顾}

这节课从 ``attention 是否足够'' 的问题出发，最终给出一整套 Transformer 的机制：
\begin{itemize}
    \item 用 self-attention 代替 recurrence，让交互距离降到 $O(1)$
    \item 用 positional encoding 把顺序信息重新注入模型
    \item 用 multi-head attention 捕捉不同类型的依赖
    \item 用 masked self-attention 保证 decoder 不偷看未来
    \item 用 cross-attention 让 decoder 访问 encoder 记忆
    \item 用 residual、LayerNorm 和 feedforward 让深层模型可训练
\end{itemize}

\begin{importantbox}{本讲的 takeaways}
\begin{enumerate}
    \item Transformers 不是只有 attention，而是 attention + 一整套配套设计
    \item self-attention 的最大优势是并行性和短路径依赖
    \item 位置编码是 Transformer 里不可或缺的一层
    \item 多头机制让模型可以同时学习多个关系视角
    \item 未来的改进主要集中在效率和位置建模上
\end{enumerate}
\end{importantbox}

\subsection{课程结语}

\begin{figure}[H]
\centering
\includegraphics[width=0.95\textwidth]{slides-images/slide-061.jpg}
\caption{Parting remarks：你现在已经理解了 Transformers，下一讲会进入 pre-training\protect\footnotemark}
\end{figure}
\footnotetext{Slides 第62页。}

讲义最后的提醒也很直接：继续准备 assignment 4，并关注后续的 project proposal。理解 Transformer 之后，下一步就是理解为什么 pre-training 能把模型性能再推高一个量级。

\begin{itemize}
    \item ``Good luck on assignment 4!''
    \item ``Remember to work on your project proposal!''
\end{itemize}

\subsection{延伸阅读}

\begin{itemize}
    \item Vaswani et al., Attention Is All You Need (2017): Transformer 的原始论文
    \item Shaw et al., Self-Attention with Relative Position Representations (2018): 相对位置编码
    \item Wang et al., Linformer / BigBird 等高效 attention 工作：降低 quadratic cost
    \item Vaswani 相关后续 lecture 和 CS224N 作业 4：Transformer 的实践训练
\end{itemize}

\end{document}
