层序softmax是另一种近似训练法。它使用了二叉树这一数据结构,树的每个叶结点代表词典V中的每个词。
图中,二叉树的每个叶节点代表着词典的每个词。
假设L(w)为从二叉树的根结点到词w的叶结点的路径(包括根结点和叶结点)上的结点数。假设n(w,j)为路径上第j个节点,并设该节点的背景词向量un(w,j)。以上图所示L(w3)=4。层序softmax将跳字模型中的条件概率近似表示为:
其中σ函数与sigmoid激活函数的定义相同,leftChile(n)是节点n的左子节点:如果判断x为真,[x]=1;反之[x]=-1。如果计算上图中给定词wc生成词w3的条件概率。我们需要将wc的词向量vc和根节点到w3路径上的非叶节点向量一一求内积。由于二叉树中由根节点到叶节点w3的路径上需要向左、向右再向左遍历,那么可以得到:
由于σ(x)+σ(-x)=1,给定中心词wc生成词典V任一词的条件概率之和为1,这一条件也满足:
此外,由于L(w)-1的数量级为
,当词典V很大时,层序softmax在训练中每一步的梯度计算开销相较于未使用近似训练时大幅降低。
层序softmax使用了二叉树,并根据根结点到叶结点的路径来构造损失函数。其训练中每一步的梯度计算开销与词典大小的对数相关。