中科院計算所王永慶詳解IJCAI 17錄用論文:如何用注意力機制RNN進行信息傳播建模?|IJCAI 2017

雷鋒網AI科技評論:IJCAI 2017即將舉行,為此,雷鋒網特邀請了部分錄用論文作者對自己的作品進行詳細解讀,以供有興趣的老師同學們了解作者的研究思路。本文原載於王永慶個人公眾號「KingsGarden」,授權雷鋒網轉載,雷鋒網AI科技評論做了不改變原意的編輯。

另外,雷鋒網即將在 8 月 12 日下午舉行「GAIR大講堂CVPR 上海交大專場」分享會,感興趣的同學趕緊點擊此鏈接了解活動詳情。


王永慶,2017年中國科學院計算技術研究所工學博士畢業,現就職中國科學院計算技術研究所,任助理研究員。研究方向: 信息傳播,社會計算,數據挖掘和機器學習。

論文題目:Cascade Dynamics Modeling with Attention-based Recurrent Neural Network

作者: Yongqing Wang, Huawei Shen, Shenghua Liu, Jinhua Gao and Xueqi Cheng

背景介紹

這篇文章是我們今年投稿於IJCAI並錄用的文章,文章的背景是信息傳播建模(Cascade Dynamics Modeling),切入點是如何將結構信息融合到序列建模(Sequence Modeling)中。

簡單介紹下序列建模,這是一種挖掘序列內關聯模式的技術手段,這種關聯模式又可按序列內前後兩元素間間距是否等長對應到兩類具體的問題中:離散序列和時序序列建模。例如離散馬爾科夫模型,連續時間馬爾科夫模型等都是經典的序列建模模型。當然,這幾年來受到神經網絡的衝擊,利用循環神經網絡(RNN)處理序列建模問題也逐漸成為了這一領域的標杆。

為了能夠產生迭代,提高序列建模的效率,一般認為,序列內部各元素的間的關係是順序傳遞的。大家可以細想一下基於這種假設下序列建模所存在的問題:無法處理序列內各元素的結構信息。圖1展示了傳統序列建模中的這種假設與真實情況的矛盾。考慮結構信息後圖1(a)中的事件(u3,t3)、(u4,t4)節點均不再順序依賴於其前一個節點,如果繼續採用傳統序列建模的方式,那麼建模勢必會存在一定的偏差。在這裡,我們將其稱為序列建模中的跳躍依賴(Cross-dependence)問題。那麼如何有效解決這一問題呢?

                                              

(a)    傳統序列建模的傳遞依賴關係


(b)    考慮元素間結構信息后與傳統序列建模假設的矛盾

圖 1 傳統序列建模假設與真實情況的矛盾

動機

讓我們先來思考一下解決跳躍依賴問題的關鍵:如何在序列建模過程中加入對結構信息的考慮。但這種嘗試至今沒有真正成功過。例如,讓我們來考慮下圖1(a)中u4節點的可能依賴結構,一共存在∅, {u1}, {u2}, {u3}, {u1, u2}, {u1, u2}, {u1, u3}, {u2, u3}, {u1, u2, u3}這9種可能情況。假設目標節點的可能依賴節點數為K,那麼這種可能的依賴結構一共是2K+1種。考慮結構信息后,會使得序列建模的計算複雜度呈幾何級提升,而過大的計算開銷又不會給最終的計算結果帶來可觀的效果提升。

那麼是否存在一種既不會帶來過多的計算開銷,又能同時解決跳躍依賴問題的方法呢?有!我們提出了一種在循環神經網絡框架下考慮序列中結構信息的建模方式—CYAN-RNN(Cascade dYnamics modeling with AttentioN based RNN)。簡單介紹下循環神經網絡:在循環神經網絡中,序列元素順序輸入,通過激活函數變換成為對應輸入的表示,並用於生成序列。一般地,我們認為所得的表示信息是對序列中對應輸入的一種合理抽象。例如,在語言模型中,以單詞作為輸入,所得的即為單詞語義的一種抽象。在信息傳播中,以用戶行為作為輸入,所得的即為用戶行為的一種合理抽象。那麼如果我們將這些表示進行綜合,共同作用於同一任務,所謂的結構,是否可以理解為當前任務對這些抽象表示的利用程度呢?

模型

基於上述的討論,我們基本確定了一條解題思路:將當前所有可用的表示進行綜合,通過對當前任務的理解,刪選出合適的信息,並推理出可能的依賴結構。

圖2給出了在RNN框架下綜合所有可用表示進行序列建模的示意圖。在考慮計算效率和有效性的前提下,我們決定採用注意力機制(Attention Mechanism)來實現這一架構。

  • 一方面因為注意力機制的實現及計算效率很高;

  • 另一方面,注意力機制也是目前在多個不同應用上被證明為能夠較好地學習結構信息的一種機制。

圖3給出了文中所實現的帶注意力機制的循環神經網絡結構圖。注意力機制的關鍵是學習獲得了注意力向量α。我們約束了向量中的所有元素之和∑i αi=1,這樣所學得的注意力可用於表示對應表示的權重信息,進而反應可能的依賴結構。圖3中的具體實現里還給出了一種基於覆蓋機制(Coverage Mechanism)的架構圖。這是考慮到在對序列順序建模的過程中,可能會有部分的表示信息會被重複使用多次,進而忽略了序列中的其他表示信息。而覆蓋機制在原有的注意力機制上額外添加了記憶信息,增加信息被重複使用的代價,進而在建模過程中提升所有表示信息的使用覆蓋度。


圖 2 在RNN框架下綜合所有可用表示來做序列產生過程建模

 


圖 3 CYAN-RNN的具體實現架構

實驗結果

在實驗部分我們列舉三組實驗用以表示CYAN-RNN框架的有效性。

  • 實驗一:傳播預測(預測下一激活用戶和激活時間)

這組是標準的序列生成效果實驗。輸入為觀測信息的傳播記錄,要求序列建模模型能夠準確的還原觀測信息。從圖4的實驗結果上來看,可以發現:CYAN-RNN在傳播預測的實驗效果上顯著優於其他所有的對比方法。值得注意的是,在圖4所示左部預測下一激活用戶的任務上,傳統的RNN模型(RMTPP)並不比一些簡單的模型(不採用神經網絡方式建模)效果要好(對比CT Bern和CT Jac),而引入結構信息的CYAN-RNN則對比傳統方法在實驗效果存在顯著提升。

 


圖 4 傳播預測結果

  • 實驗二:注意力機制和覆蓋機制中的權值分配對比

這一部分實驗主要用來驗證覆蓋機制中所添加的記憶信息是否能夠有效提升所有表示信息的使用覆蓋度。根據圖5的實驗結果對比可以發現,由於記憶信息的引入,在覆蓋機制中(圖5右)中的權值分配相較於注意力機制中(圖5左)的權值分配更傾向於新出現的表示信息,因而所計算的權值也能夠更為清晰的表示結構信息。

 


圖 5 注意力機制和覆蓋機制中的權值分配對比

  • 實驗三:網絡推斷

這組實驗主要用來驗證我們從解題之初就存在的一個疑問:是否引入注意力和覆蓋機制的循環神經網絡架構就是對依賴結構的一種刻畫呢?由於觀測信息的產生過程限制我們很難精確到刻畫具體的依賴關係,但我們可以利用推斷所得的依賴結構去反推物理的關係網絡結構,進而回答這一問題。

我們把從注意力機制和覆蓋機制中學習所得的權重信息進行綜合、刪選,用於網絡推斷,並將錯誤的推斷結果以紅線標註於圖6中。可以發現,無論是採用注意力機制的CYAN-RNN還是採用覆蓋機制的CYAN-RNN(cov),其對關係網絡的推斷均存在一定的有效性,如此回答了我們這一疑問:注意力機制和覆蓋機制能夠刻畫序列產生過程中的依賴結構。

 


圖 6 網絡推斷結果

總結:這篇文章雖是以信息傳播為背景的序列建模,但所提的跳躍依賴問題卻普遍存在於序列建模的眾多場景之中。在諸如語言模型的相關文中,我也有過一些嘗試,發現這種採用注意力機制和覆蓋機制的方式也同樣有效。因此,讀者若是有興趣,可以到我的github上下載源碼並在相關領域進行嘗試:https://github.com/Allen517/cyanrnn_project。

另外,本工作的演示代碼(IPython)詳見: http://yongqwang.com/public/res_dat/UAI_demo.tar.gz 


想在手機閱讀更多程式設計資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems