神经网络中的人脑海马体:Memory Networks
關注微信公眾號:NLP分享匯。【喜歡的掃波關注,每天都在更新自己之前的積累】
文章鏈接:https://mp.weixin.qq.com/s/NIENYhe_sYZbQZapaI0_mw
背景:Memory Networks是怎樣誕生的?
在處理與過去經驗或外部知識來源有關的問題時,記憶是一個至關重要的組成部分。人腦的海馬體和計算機的硬盤是人類和計算機讀寫記憶所依賴的部件。傳統的模型很少有內存組件,缺乏知識重用和推理能力。RNN通過時間步迭代傳遞歷史信息,在某種程度上,可以將其視為一個內存模型。然而,LSTM是RNN的一個強大變體,具有長期和短期記憶,但即使是LSTM,其記憶模塊也太小,事實沒有明確區分,因此無法壓縮特定的知識事實并在任務中重用。
一、Weston J, Chopra S, Bordes A (2014) Memory networks
原文鏈接:https://arxiv.org/pdf/1410.3916
模型結構
Memory Networks是 FaceBook 2014 年的論文首次提出,可以解決傳統模型不能有效利用長期記憶進行推理的問題。是一種具有內存組件的模型。正如他們在工作中所描述的,一個內存網絡有五個模塊:
-
一個內存模塊:用來存儲記憶事實的表示
-
一個 I 模塊:它將輸入內存事實映射到嵌入表示;
-
一個 G 模塊:它決定內存模塊的更新;
-
一個 O 模塊:它根據輸入表示和存儲表示生成輸出;
-
一個 R 模塊:它根據' O '模塊的輸出組織最終的響應。
該模型需要對每個模塊都有很強的監督信號,因此不適合端到端的培訓。
最后,給個例子:
如上圖中的例子,上下文句子包括前兩行的所有句子,這些句子都保存在 Memory Slots 中。
在回答第一個問題:Where is the milk now?,MEMNN首先要在 Memory 中找到最相關的句子 m1 = "Joe travelled to the office" 。然后根據問題 和 m1 找到下一個相關句子 m2 = "Joe left the milk" ,最后通過模塊 R 得到答案 "office"。
?
二、Sukhbaatar S, Szlam A, Weston J, Fergus R (2015) End-to-end memory networks
原文鏈接:https://arxiv.org/pdf/1503.08895.pdf%5D.
該文章將Weston之前的工作擴展到端到端存儲網絡,該網絡被普遍接受為易于訓練和應用的標準存儲網絡。
下圖為被提出的End-to-end memory networks。該結構由三階段組成:
-
weight calculation
-
memory selection
-
final prediction
圖1 end-to-end memory networks
1、weight calculation
該模型首先使用一個表示模型A將輸入內存集{xi}轉換為內存表示{mi},然后使用另一個表示模型B將輸入查詢映射到其embedding空間,得到一個embedding向量u。最終的權重計算公式如下:
2、memory selection
在生成最終預測之前,首先使用另一個表示模型C將輸入存儲xi編碼為embedding向量ci,然后使用上一階段計算的權重計算{ci}的加權和,從而生成選定的存儲向量(memory vector)。如公式22所示,o表示被選定的memory vector。在內存表示中找不到此向量。軟存儲器的選擇有利于梯度計算的可微性,使整個模型端到端的可訓練。
3、final prediction
通過將所選內存o和查詢u的求和向量映射到概率向量a^中,得到最終的預測。計算公式如下:
?
總結
以上是生活随笔為你收集整理的神经网络中的人脑海马体:Memory Networks的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nodejs创建项目
- 下一篇: 考研复试打分表公布?评分细则已出!