参考链接
模型(Adaptive Input Representation):
模型概述
-
Adaptive Input Representation受Adaptive softmax模型启示而得出来的。
-
首先我们将词汇表按词频降序排列,然后将其划分为个子集:且,这样最高频词包含在,最低频词包含在中。被称为head,其他自己被成为tail。
-
每个子集中词embedding的维度设置:
- 维度为
- 的维度为
- 是一个参数,一般设置为4;由上面公式可是各子集的维度是随词频递减的
-
再为每个子集设置一个线性映射:,目的是最后统一整个embedding层的输出维度为。如下图所示:
-
如上图所示,先将输入句子中词划分到其相应的中去,然后分别进行embedding和线性映射,最后再按源句子中的顺序进行拼接相应的词embedding,得到整个embedding层的输出
共享权值
-
如果输出层为使用adaptive softmax,并且使用与输入层adaptive input layer相同的参数:;那么我们就可以进行输入层与输入层的参数共享。
-
adaptive softmax模型图如下所示:
-
权值共享的方法:
- adaptive softmax根节点维度为,所以我们将的embedding矩阵并上一个从新定义的不共享的矩阵,这样就可以得到adaptive softmax根节点。
- 对于adaptive softmax的下面叶节点我们可以直接共享adaptive input层的相应子集的embedding矩阵和映射矩阵,比如,adaptive softmax的第个叶节点它对应的词汇表子集为,则该页节点存储的就是adaptive input中的映射矩阵和对应的embedding矩阵。
-
adaptive softmax输出预测过程:
- 首先将隐藏层状态向量与根节点矩阵相乘;
- 如果输出的词在集合中则直接预测。
- 如预测的词在,则再将隐藏层状态向量与相乘得到的结果再与相乘得到最终的预测词。
-
由上面的过程可以看出来,映射矩阵是不需要共享。
-
当然有些情况也可以不共享的映射矩阵而重新定义也该相同维度的矩阵代替。