深度学习进阶文档深度页
Embedding 与序列数据
把 token id 映射为可学习向量,并用 padding、长度和 mask 组成 batch。
学习目标
- 构建词表
- 追踪 [N,L,D]
- masked pooling
为什么需要这个概念
文本、音频和行为序列有顺序且长度不同。
- NLP/序列基础
- 连接词表与模型
学习前需要掌握
Tensor内容待补充Dataset内容待补充
背景与问题
文本、音频和行为序列有顺序且长度不同。
概念定义
Embedding 是 [V,D] 查找表;id 只是索引,无连续大小意义。
直观理解
每个离散 token 从表中取一行向量,训练让有用 token 行逐步更新。
核心原理
词表只由训练数据建立,训练/部署编号一致;padding 不参与池化损失指标。
普通 token Embedding 不含顺序,需 RNN/卷积或位置表示。
数学表达
核心公式
V 词表大小,D 向量维度。
变量含义
V词表大小Dembedding 维
计算步骤
- 130000×128
代码对应位置
示例 1Embedding 与序列数据 · PyTorch 示例:验证Embedding 与序列数据的输入、计算和输出。
变量解释
| 变量 | 含义 |
|---|---|
V | 词表大小 |
D | embedding 维 |
完整数值示例
参数量
已知条件
- V=30000,D=128
- 1
30000×128
3,840,000 参数
处理前后对比
计算与实现步骤
- 1
训练建词表
- 2
编码 id
- 3
padding/截断
- 4
Embedding
- 5
mask pooling
- 6
序列模型
代码实现
示例 1
Embedding 与序列数据 · PyTorch 示例
Embedding 与序列数据 · PyTorch 示例
PyTorch
example_01.py用途:验证Embedding 与序列数据的输入、计算和输出。
embedding=nn.Embedding(20000,128,padding_idx=0)
ids=torch.tensor([[4,8,0],[9,3,5]])
print(embedding(ids).shape)代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
验证Embedding 与序列数据的输入、计算和输出。
Step 1 · 1–3 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
embedding=nn.Embedding(20000,128,padding_idx=0)
ids=torch.tensor([[4,8,0],[9,3,5]])
print(embedding(ids).shape)预期输出或运行结果
torch.Size([2,3,128])。
常见错误 · 6 条
- id 当连续值
- 测试建词表
- 词表重建
- padding 入平均
- id 越界
- 确认样本轴、特征轴以及 X 与 y 的第一维完全对应。
实际应用
- 文本
- 推荐 ID
- 类别特征
常见错误
id 当连续值
测试建词表
词表重建
padding 入平均
id 越界
文档来源
17_Embedding与序列数据基础原始文档
学习资料/deeplearning/17_Embedding与序列数据基础.md- §1 序列流程
- §2–4 token/词表
- §7 Embedding
- §9 pooling
- §11 位置
常见问题
Embedding 含顺序吗?
不含。
padding_idx 后还需 mask?
需要,后续偏置和池化仍受 padding 影响。
推荐学习资料
论文A 级
Attention Is All You Need
提出完全基于注意力机制的 Transformer 架构,并用于序列建模和机器翻译。
Vaswani et al. · arXiv / NeurIPS