独热编码(One-Hot Encoding)
- 原理:每个类别用一个长度为词汇表大小的向量表示,只有对应索引位置为1,其余为0。
- 示例:词汇表
{猫, 狗, 鸟}→猫: [1,0,0],狗: [0,1,0],鸟: [0,0,1]。 - 优点:简单直观,适合类别少的情况。
- 缺点:高维稀疏,无法表达语义关系。
整数编码(Integer Encoding)
- 原理:为每个类别分配一个唯一的整数。
- 示例:
猫: 1,狗: 2,鸟: 3。 - 优点:紧凑,节省空间。
- 缺点:整数间无语义关系,可能引入错误的大小比较假设。
词嵌入(Word Embeddings)
- 原理:将单词映射为低维稠密向量,语义相似的词在向量空间中接近。
- 常用方法:
- Word2Vec:基于上下文预测词向量(CBOW/Skip-gram)。
- GloVe:基于全局词共现统计。
- FastText:考虑子词信息,适合未登录词。
- 优点:维度低,蕴含语义信息。
- 缺点:静态嵌入,无法处理一词多义。
位置编码(Positional Encoding)
- 原理:在Transformer中,为序列中的每个位置生成一个向量,与词嵌入相加以保留顺序信息。
- 常用方法:正弦/余弦函数编码位置(原始Transformer)。
- 示例:位置
pos的编码向量第i维: [ PE{(pos, 2i)} = \sin(pos / 10000^{2i/d{\text{model}}}) ] [ PE{(pos, 2i+1)} = \cos(pos / 10000^{2i/d{\text{model}}}) ] - 优点:能够处理变长序列,泛化性强。
基于神经网络的序列编码
- RNN/LSTM/GRU:通过隐藏状态传递序列历史信息,适合时序建模。
- CNN:一维卷积提取局部特征,堆叠多层获得全局信息。
- Transformer:自注意力机制并行编码序列,擅长长距离依赖。
预训练语言模型的编码
- BERT:双向Transformer编码器,生成上下文相关的词向量。
- GPT:单向Transformer解码器,生成下文相关的词向量。
- 优点:动态编码,适应不同语境。
应用场景
- 文本分类:词嵌入 + CNN/RNN/Transformer。
- 机器翻译:Transformer编码器-解码器。
- 时间序列预测:RNN/LSTM + 位置编码。
- 语音识别:声学特征 + CNN/RNN。
选择建议
- 小规模离散数据 → 独热编码。
- 需要语义信息 → 预训练词嵌入(如Word2Vec)。
- 顺序敏感任务 → 位置编码或RNN。
- 大规模序列建模 → Transformer/BERT。
如需进一步了解特定方法或实现细节,可提供具体需求。

版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。