memory network

給定一組輸入句子{x1,x2...xn },要將其轉換爲memory vector{mi }.轉換的方式如下,線給定一個詞向量矩陣A,每一列代表一個詞的向量表示,則xi 可以如下轉換:
mi=njAxij
xij 代表第i個句子中的第j個詞,是一個one-hot表示的列向量,即他也是一個向量,向量中只有一個元素爲1,長度爲vocabulary的sise.上面的表達式表示的是一個句子中所有詞的向量表示和。

同時有一個給定的查詢句子q,用上面同樣的方法得出他的向量表示爲u。接下來計算q和輸入句子中每個子句的匹配程度即概率,公式如下:
p=softmax(uTm)
其中p是一個行向量,u是一個列向量,m是輸入句子轉換後得到的矩陣,每一列代表一個句子。p中的每一個元素代表匹配的程度。

另外每個輸入句子有一個輸出向量ci 。計算的方式和mi 一樣,只是適用矩陣C。

通過上面的式子得出一個回覆向量o
o=nipici
o是一個列向量,其實是矩陣c中的列向量加權和,權向量即爲p

最後根據恢復向量來生成最終的預測。在單層的網絡裏將回復向量和u相加,傳入一個最終的權重矩陣爲W(V乘以d)的softmax層,得出最後的輸出列向量a,a的長度爲V。所以最終的輸出結果是一個詞。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章