今天主要介紹用在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