今天主要介绍用在NLP中比较常见的AutoEncoder的模型,Recursive Autoencoders(递归自动编码模型)。这篇文章主要讨论RAE在序列化的数据中,如何把数据降维而且用向量表示。html
假设咱们有一个矩阵\(L\)的表示向量,一个有序的有\(m\)个元素的序列,每一个元素有\(k\)维的向量表示,咱们用\(b_k\)表明咱们须要找的那个向量,公式以下:算法
\[ x_i=Lb_k \]app
如今咱们能用矩阵表示这个\(m\)个元素的序列了,\((x_1,x_2,x_3...,x_m)\)。函数
上图是RAE的二叉树递归结构,最底层的节点\(x_1,x_2...,x_m\)都是序列的内容。第一个RAE从在最底层最右边的两个孩子节点序列的元素\(x_1\),\(x_2\)开始,对它们进行重构,会产生一个隐藏层\(y_1\)。再上层一点,一个节点是序列中的元\(x_i\)素,另外一个节点是下一程节点经过AE的过程算出来的隐藏层向量\(y_i\),通过RAE后,会产生隐藏节点\(y_{i+1}\),如此循环直到序列中全部元素都进行了AE的过程。优化
\[ \mathbf{y_1}=f(\mathbf{W}[\mathbf{x}_{1},\mathbf{x}_{2}]+\mathbf{b}) \]编码
\[ [\mathbf{x}_{1}';\mathbf{x}_{2}']=\mathbf{W}'\mathbf{y_1}+\mathbf{b}' \]spa
\[ E=\frac{1}{2}\Vert [\mathbf{x}_{1},\mathbf{x}_{2}]-[\mathbf{x}_{1}',\mathbf{x}_{2}']\Vert ^{2} \]
这个过程在每个AE过程当中重复,直到构造出整棵树。3d
咱们能够从几个方面去优化RAE。code
本文主要介绍了RAE的构造和优化方向,RAE适合用来处理序列问题。htm