1. adaptive softmax
ICML 2017文章,该方法的灵感来自于hierarchy softmax及其变体,通过一种近似策略来实现超大词典上的语言模型的有效训练。
1.1 特点
- 该算法的提出利用到了单词分布不均衡的特点(unbalanced word distribution)来形成将单词分成不同的类, 这样在计算softmax时可以避免对词汇量大小的线性依赖关系,降低时间复杂度;
- 通过结合现代架构和矩阵乘积操作的特点,使其更适合GPU单元的方式进一步加速计算。
1.2 提出动机
g e n e r a l s o f t m a x = H W H ∈ R ( B ∗ d ) , W ∈ R d ∗ k ( B : b a t c h s i z e , d : h i d d e n d i m e n s i o n , k : s i z e o f v o c a b u l a r y ) general\,softmax = HW \quad H \in R^{(B*d)},W \in R^{d*k}\\(B:batch\,size, d: hidden\,dimension, k:size\,of\,vocabulary) generalsoftmax=HWH∈R(B∗d),W∈Rd∗k(B:batchsize,d:hiddendimension,k:sizeofvocabulary)
-
W W W很大的时候,十分耗时,如果固定d和 B B B,上图的曲线记为函数 g ( k ) g(k) g(k),可以看到,大概在 k < k 0 ≈ 50 k<k_{0} \approx 50 k<k0≈50时,时间 g ( k ) g(k) g(k)是一个常量。直到 k > k 0 k>k_{0}