前言

这篇文章的东西基本都很硬,偏向理论知识,基本不涉及项目实操。建议一天看个一到半章,里面数学内容大部份不是很难,慢慢看一到两周还是看得完的。

而且,我针对学习Transformer的目标,对NLP部分基础知识以及一些语言学相关的内容进行了裁剪;一些数学证明也只是简单带过,没有详细展开。对于这些部分,大家有兴趣的话可以自行到网上搜索相关内容加强学习,但是本文的内容分量已经算很够了,大体上能构建起一个串联的知识体系。

NLP相关课程,推荐公开课CS224n,youtube上可以直接搜到2024最新的版本。

前置概念

NLP

Nature Language Processing, 是理解并处理人类自然语言的任务.

自然语言处理(NLP)是人工智能领域的一个分支,它涉及到计算机和人类(自然)语言之间的相互作用。主要目的是让计算机能够理解、解释、生成和对人类语言做出反应。这包括从简单的任务(如拼写检查和关键词搜索)到复杂的功能(如情感分析、机器翻译和自动摘要生成)。NLP结合了计算机科学、语言学和机器学习技术,用于解决理解人类语言的各种问题。

LM

Language Model, 是一种根据现有文本预测下一token的任务.

语言模型(Language Model, LM)是自然语言处理中用于预测文本中词语序列概率的工具。简单来说,语言模型就是用来判断一段文字是否符合语言习惯的模型。它可以用于多种语言处理任务,如机器翻译、拼写纠正、语音识别和文本生成等。

语言模型主要分为两大类:

  1. 统计语言模型:这类模型基于统计方法,通过大量文本数据来学习词语的出现频率和相邻词语的概率关系。经典的模型包括n-gram模型,它通过计算前n-1个词出现后,第n个词出现的概率来进行预测。
  2. 神经网络语言模型:这类模型使用深度学习技术来建模词语之间的复杂关系。它们通常能够捕捉更长距离的依赖关系,并在处理歧义和生成流畅自然的文本方面表现更好。典型的例子包括循环神经网络(RNN)、长短期记忆网络(LSTM)和最近非常流行的Transformer模型,如OpenAI的GPT系列和Google的BERT。

数学基础

线性代数

归一化

标准差

矩阵求导

矩阵求导