为什么需要序列编码?
机器学习模型通常输入数值向量,但原始序列(尤其是文本)是符号化的(如单词、字符),序列编码旨在将这些符号映射为数值表示,同时尽可能保留语义和结构信息。

常见编码方法
1 独热编码(One-hot Encoding)
2 整数编码(Integer Encoding)
- 为每个符号分配一个唯一的整数ID。
- 优点:紧凑,将序列转换为整数序列。
- 缺点:整数本身没有语义,且可能引入错误的序关系(如“狗”=3,“猫”=4,但并不意味着猫>狗)。
3 词嵌入(Word Embeddings)
- 将符号映射到低维连续向量空间,语义相似的词向量距离相近。
- Word2Vec:通过预测上下文(CBOW)或中心词(Skip-gram)学习嵌入。
- GloVe:基于全局词-词共现统计的嵌入。
- FastText:考虑子词信息,能处理未登录词。
- 优点:稠密、蕴含语义,泛化能力强。
4 基于上下文的嵌入(Contextualized Embeddings)
- 根据上下文动态生成词表示,同一词在不同语境中有不同向量。
- ELMo:基于双向LSTM,生成深层上下文表示。
- BERT:基于Transformer编码器,通过掩码语言模型预训练。
- 这类模型已成为现代NLP的基石,能捕获复杂语义和句法。
序列编码的应用
挑战与应对
- 变长序列:使用填充(padding)或截断,或采用RNN/Transformer等自适应模型。
- 未知词:使用子词分割(如BPE)、字符级嵌入或预留未知词标记。
- 多语言/跨领域:需考虑领域自适应或多语言嵌入。
- 计算效率:嵌入矩阵大小随词汇表增长,可采用哈希技巧或量化压缩。
序列编码是连接原始数据与模型的桥梁,从简单的独热编码到复杂的上下文嵌入,编码方式的选择直接影响模型性能,实践中应根据任务需求、数据规模和计算资源权衡选择,并充分利用预训练嵌入以提升效果。 能帮助你理解序列编码的基础,如有进一步问题,欢迎继续探讨!
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。