hierarchical softmax

分类: 深度学习基础

Hierarchical Softmax

定义

将词表组织为树结构(通常是二叉树),用路径上的二分类替代全词表的 softmax 计算,复杂度从 O(v)O(v) 降至 O(logv)O(\log v)

数学形式

p(w)=j=1L(w)σ(n(w,j+1)=ch(n(w,j))vn(w,j)h)p(w) = \prod_{j=1}^{L(w)} \sigma\left(\llbracket n(w,j+1) = \text{ch}(n(w,j)) \rrbracket \cdot \mathbf{v}_{n(w,j)}^\top \mathbf{h}\right)

核心要点

由 Morin & Bengio (2005) 提出,是最早的大词表 softmax 加速方法之一

需要预定义树结构,树的构建方式影响性能

属于 trainable 方法,需要与模型联合训练

局限:树构建偏差、灵活性受限、现代 GPU 并行效率低

代表工作

FlashHead: 对比方法,FlashHead 无需学习层次结构即可统一贪心和概率采样

相关概念

Softmax

classification head

Vocabulary Trimming