更改

跳到导航 跳到搜索
添加1,806字节 、 2025年6月8日 (日) 15:46
第354行: 第354行:  
与 Word2Vec/GloVe 对比:Word2Vec/GloVe 生成的是固定词向量、语境无关,BERT 输出的是上下文相关的词表示,能捕捉复杂句法语义关系;
 
与 Word2Vec/GloVe 对比:Word2Vec/GloVe 生成的是固定词向量、语境无关,BERT 输出的是上下文相关的词表示,能捕捉复杂句法语义关系;
   −
==== 动态词嵌入(如 ELMo) ====
+
==== 5.4 动态词嵌入( ELMo): ====
 +
 
 +
===== 背景: =====
 +
LMo('''Embeddings from Language Models''')是由 Allen Institute for AI(AI2)的 Matthew Peters 等人在 2018 年 NAACL 上提出的预训练词嵌入方法。ELMo 是 NLP 中'''首个大规模应用上下文动态词向量的模型''',突破了 Word2Vec 和 GloVe 中“一个词一个向量”的静态表示限制。其提出背景在于自然语言中存在大量'''多义词'''与'''语义歧义现象'''(如 "bank" 表示“银行”或“河岸”),传统静态词向量模型无法根据上下文动态调整词的含义表示。而 ELMo 利用'''双向语言模型(BiLM)'''捕捉词的上下文依赖关系,为每个词生成'''可变的、语境敏感的表示'''。
 +
 
 +
===== 技术原理: =====
 +
ELMo 基于传统语言模型(Language Model, LM),但引入了以下三个关键技术点:
 +
 
 +
·双向语言模型(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>
 +
 
 +
一个反向语言模型(从右到左):<math>P(w_T, \ldots, w_1) = \prod_{t=1}^{T} P(w_t \mid w_{t+1}, \ldots, w_T)
 +
 
 +
</math>
 +
 
 +
这两个模型均使用深层 '''LSTM(Long Short-Term Memory)''' 网络进行建模,层数通常为两层。
 +
 
 +
·多层表示聚合机制:
 +
 
 +
ELMo 并不是仅提取 LSTM 的最后一层输出作为词向量,而是将所有层的隐状态按照加权方式聚合,从而获得更加丰富的语义特征。
 +
 
 +
每个词的 ELMo 表示由以下公式给出:
 +
 
 +
<math>\text{ELMo}(w_t) = \gamma \sum_{j=0}^{L} s_j \cdot \mathbf{h}_t^{(j)}
 +
 
 +
</math>
 +
 
 +
其中:
 +
 
 +
<math>\mathbf{h}_t^{(j)}
 +
</math> 表示第 <math>j
 +
</math> 层对词 <math>w_t
 +
 
 +
</math> 的隐状态,是前向和后向语言模型的连接结果。
 +
 
 +
===== 总结与对比: =====
    
=='''开源实现与工具'''==
 
=='''开源实现与工具'''==
130

个编辑

导航菜单