Word Embedding Techniques

date
Apr 23, 2025
slug
word-emb
status
Published
tags
NLP
summary
type
Post

TL; DR

本文对几种词嵌入方法,以及一个相关的应用 fasttext 文本分类算法做简要总结。

OneHot

词是离散的符号,可以用表示 categorical 数据的 one hot encoding 来表示,但是这种表示忽略了相似词之间的关联;此外,当词表非常大的时候,会消耗大量计算和存储资源。
 

Word2Vec

两种架构:CBOW 和 Skip-gram
都是两层神经网络,CBOW 根据语境预测中心词,Skip-gram 根据中心词预测语境。
notion image
词表很大的时候计算最后的 linear + softmax 计算开销很大,有两种加速方法:
  • 层次化 softmax:
    • 用一个二叉树的叶子结点来表示每个类别,为每个内部节点分配一个参数向量,在每个内部节点,根据 hidden vector 预测往左子树还是右子树走,这样最多会走 logV 次(V 是类别数量)。根据词频组织为霍夫曼树可以减少期望的下沉步数。
    • 推理的时候用 beam seach 寻找最大概率到叶子的路径
  • 负采样:转换为二分类问题,每个正样本配合若干负样本。
 

FastText: Bag of Tricks for Efficient Text Classification

notion image
架构和 CBOW 一样,用了以下几个 trick 来优化:
  • 每个 token 是词级别的 ngram,这样包含了一些顺序信息
  • 使用层次化 softmax 加速
  • ngram 数量级很大,在实际应用中每个 ngram 被 hash 到一个桶里同一个桶的共用 embedding

© Lifan Sun 2023 - 2025