更改

删除64字节 、 2025年6月10日 (二) 10:19
小
第318行: 第318行:  
FastText 的核心思想是:将词视为子词(subword)n-gram 的组合体,而不是独立的原子单位。这一设计增强了模型对罕见词、形态变化词以及未登录词(OOV)的表示能力。
 
FastText 的核心思想是:将词视为子词(subword)n-gram 的组合体,而不是独立的原子单位。这一设计增强了模型对罕见词、形态变化词以及未登录词(OOV)的表示能力。
   −
===== ·子词建模(Subword Embedding): =====
+
'''子词建模(Subword Embedding):'''
 +
 
 
每个单词 <math>w</math> 被划分为若干个字符 n-gram,例如设置 n = 3~6 时:
 
每个单词 <math>w</math> 被划分为若干个字符 n-gram,例如设置 n = 3~6 时:
   第336行: 第337行:  
这种表示方式让模型在遇到未登录词时,也可以通过其组成子词获取合理向量。
 
这种表示方式让模型在遇到未登录词时,也可以通过其组成子词获取合理向量。
   −
===== ·模型结构与训练: =====
+
'''模型结构与训练:'''
 +
 
 
FastText 延续了 Word2Vec 的 Skip-gram 架构,但输入词不再是 one-hot 编码的词本身,而是其所有 n-gram 的组合。训练目标为:给定中心词(子词组合向量),预测其上下文词。即最大化如下目标函数:
 
FastText 延续了 Word2Vec 的 Skip-gram 架构,但输入词不再是 one-hot 编码的词本身,而是其所有 n-gram 的组合。训练目标为:给定中心词(子词组合向量),预测其上下文词。即最大化如下目标函数:
   第371行: 第373行:     
==== 技术原理: ====
 
==== 技术原理: ====
 +
'''基础架构:Transformer Encoder:'''
   −
===== ·基础架构:Transformer Encoder: =====
   
BERT 构建在 Transformer 架构之上,具体使用了 多层 Transformer 编码器堆叠(通常 BERT-base 为 12 层,BERT-large 为 24 层)。Transformer 由 Vaswani 等人在 2017 年提出,其最大特点是 完全基于注意力机制(Self-Attention),无需使用 RNN 或 CNN,可并行处理任意长度的输入。
 
BERT 构建在 Transformer 架构之上,具体使用了 多层 Transformer 编码器堆叠(通常 BERT-base 为 12 层,BERT-large 为 24 层)。Transformer 由 Vaswani 等人在 2017 年提出,其最大特点是 完全基于注意力机制(Self-Attention),无需使用 RNN 或 CNN,可并行处理任意长度的输入。
   第385行: 第387行:  
Transformer 中每个词的表示会综合考虑所有其他词对它的影响,因此能捕捉复杂的依赖结构。
 
Transformer 中每个词的表示会综合考虑所有其他词对它的影响,因此能捕捉复杂的依赖结构。
   −
===== ·输入方式表示: =====
+
'''输入方式表示:'''
 +
 
 
BERT 的输入不只是单词序列,而是词 + 位置 + 句子类型三重嵌入之和:Input Embedding = Token Embedding + Position Embedding + Segment Embedding
 
BERT 的输入不只是单词序列,而是词 + 位置 + 句子类型三重嵌入之和:Input Embedding = Token Embedding + Position Embedding + Segment Embedding
    
例如用于句子对任务(如问答)时,Segment A 表示第一句话,Segment B 表示第二句话。输入序列结构为:[CLS] 句子A [SEP] 句子B [SEP],其中[CLS] 用于分类任务的特殊标记;[SEP] 是句子分隔符。
 
例如用于句子对任务(如问答)时,Segment A 表示第一句话,Segment B 表示第二句话。输入序列结构为:[CLS] 句子A [SEP] 句子B [SEP],其中[CLS] 用于分类任务的特殊标记;[SEP] 是句子分隔符。
   −
===== ·预训练阶段: =====
+
'''预训练阶段:'''
 +
 
 
BERT 采用两种 自监督学习任务在大规模语料(如 Wikipedia 和 BooksCorpus)上进行训练:
 
BERT 采用两种 自监督学习任务在大规模语料(如 Wikipedia 和 BooksCorpus)上进行训练:
   第404行: 第408行:  
</math>
 
</math>
   −
===== ·微调阶段: =====
+
'''微调阶段:'''
 +
 
 
在预训练后,BERT 可被快速迁移到下游任务,如:文本分类(情感分析)、序列标注(命名实体识别)、问答系统,只需在最后加上一层简单的任务特定结构,并用少量数据进行微调即可。
 
在预训练后,BERT 可被快速迁移到下游任务,如:文本分类(情感分析)、序列标注(命名实体识别)、问答系统,只需在最后加上一层简单的任务特定结构,并用少量数据进行微调即可。
   第426行: 第431行:  
ELMo 基于传统语言模型(Language Model, LM),但引入了以下三个关键技术点:
 
ELMo 基于传统语言模型(Language Model, LM),但引入了以下三个关键技术点:
   −
===== ·双向语言模型(BiLM): =====
+
'''双向语言模型(BiLM):'''
 +
 
 
一个正向语言模型(从左到右):<math>P(w_1, w_2, \ldots, w_T) = \prod_{t=1}^{T} P(w_t \mid w_1, \ldots, w_{t-1})
 
一个正向语言模型(从左到右):<math>P(w_1, w_2, \ldots, w_T) = \prod_{t=1}^{T} P(w_t \mid w_1, \ldots, w_{t-1})
 
</math>
 
</math>
第436行: 第442行:  
这两个模型均使用深层 LSTM(Long Short-Term Memory) 网络进行建模,层数通常为两层。
 
这两个模型均使用深层 LSTM(Long Short-Term Memory) 网络进行建模,层数通常为两层。
   −
===== ·多层表示聚合机制: =====
+
'''多层表示聚合机制:'''
 +
 
 
ELMo 并不是仅提取 LSTM 的最后一层输出作为词向量,而是将所有层的隐状态按照加权方式聚合,从而获得更加丰富的语义特征。
 
ELMo 并不是仅提取 LSTM 的最后一层输出作为词向量,而是将所有层的隐状态按照加权方式聚合,从而获得更加丰富的语义特征。
   第462行: 第469行:  
</math> 是可学习缩放因子,控制整体表示的幅度。
 
</math> 是可学习缩放因子,控制整体表示的幅度。
   −
===== ·训练与迁移使用: =====
+
'''训练与迁移使用:'''
 +
 
 
ELMo 先在大规模语料上训练语言模型(如 1 Billion Word Benchmark),然后将训练好的表示迁移到下游任务中,并在下游任务中联合微调(fine-tune)其权重<math>s_j
 
ELMo 先在大规模语料上训练语言模型(如 1 Billion Word Benchmark),然后将训练好的表示迁移到下游任务中,并在下游任务中联合微调(fine-tune)其权重<math>s_j
  
130

个编辑