微软论文解读:用于视觉对话的多步双重注意力模型
作者丨張琨?
學校丨中國科學技術大學博士生
研究方向丨自然語言處理
論文動機
當前 Visual dialog 模型盡管已經取得了令人印象深刻的表現,但當問題涉及到圖像的特定區域或者比較細節的對話片段時,模型就很難給出準確的答案。究其原因,單步的分析需要同時關于太多的信息,當需要特定的位置或者說需要對問題和圖像,對話歷史進行反復理解時,單步理解就收到了很大的限制。
因此多步推理,從粗粒度到細粒度就顯得十分必要的,這樣模型才能關注到具體的細節,從而給出準確的答案,例如下圖:
單步分析時,需要知道 He 指代的是歷史對話中的 young boy,還需要在圖像信息中關注到 young boy,然后才能具體知道他是否穿了短褲,但如果使用多步的話,第一步會從歷史對話和圖像中選出來和問題有關的部分,舍棄到并沒有太大關聯的地方,第二步就可以在這些相關的地方進行精細化的分析,從而準確得到答案。基于這樣的一個想法,本文提出了一種多步的雙重注意力模型,用于 visual dialog。
模型
還是先上整個模型框架圖:
模型框架圖加個外框感覺就好看很多,可以學習學習。從框架中可以看出模型主要包含三個模塊:1)memory generation:生成一套文本和圖像的 memory,用于下一步的 reasoning;2)Multi-step Reasoning:使用循環雙重注意力去聯合編碼問題,圖像和對話歷史,用于接下來的解碼;3)Answer Decoding:使用上一步得到的聯合編碼向量去推斷答案。
Memory Generation Module
首先是對數據的處理,對圖像,使用Faster-RCNN抽取圖像特征:
I 表示的圖像信息,這樣就得到了圖像中的 object 的向量表示,在這里 n_f = 36, M=2048,也就是抽取了 36 個圖像特征,同時使用一個非線性變換得到將這些特征映射到和問題相同的特征空間去。
對于文本的話,本文是直接將圖像描述和歷史對話完全拼接起來,這樣就得到了一個長句子,表示第 i 個詞,L 表示最大的句子長度,然后使用預訓練的 embedding 進行編碼,雙向 LSTM 進行處理,最終就得到了文本的特征表示,具體實現如下:
Multi-step Reasoning Module
該模塊的整體框架是一個 RNN,每一步的隱狀態表示的問題的當前表示,并會作為 query 去檢索文本和圖像信息,具體流程可以表示為,這個可以看作 one-step reasoning,通過這樣的一個循環方式,從而實現對細節的把握,從而最終給出正確的答案。?
首先還是會利用一個雙向 LSTM 對問題進行編碼,得到問題的隱狀態表示,接下來是首先利用 self-attention 對問題進行處理,從而得到問題的語義表示,而這些權重表明了問題中哪些詞是非常重要的,并且過濾了那些不重要的詞。
同時該狀態會作為 multi-step reasoning rnn 的隱層初始狀態(因為 RNN 的隱層狀態都是對問題的語義表示),接下來就是不斷使用注意力機制關注圖像和歷史對話中的重要信息,并用這些重要信息更新對問題的表示,從而一步步推進,最終得到正確的答案。
1.?
該步驟利用問題的隱狀態表示和上一步的歷史信息表示,得到圖像上那些地方需要被關注,從而更新圖像的需要關注表示,這里的公式應該是寫錯了,第一個公式的應該是的。
2.?
相同的操作,利用一直的信息更新歷史對話中需要被關注的地方,得到歷史對話的新的表示。
3.?
到這一步,已經得到了更新之后的圖像特征表示和歷史對話特征表示,一般情況下可以簡單使用相同的注意力計算方法直接得到問題的更新表示,但這一步的意圖和之前的是不同的。
在之前的兩步,是為了獲取更多的有用的信息,因此使用注意力機制不斷更新需要關注的地方,而這一步應該是將這些選擇出來的信息進行融合,為回答問題提供輔助,也即這一步需要的是通過融合,得到送給 RNN 的輸入,通過 RNN 的隱層狀態更新,從而得到問題的新的表示。因此這里使用了 MFB 的方式來進行更新。
Zt 表示的是 t 時刻 RNN 的輸入,得到輸入之后,利用 RNN 進行更新,這里使用的是 GRU,即:
經過 T 輪之后,就得到了一系列的,本文對這些內容再次進行融合,從而得到最后的語義表示向量。
Answer Decoding Module
本文首先還是利用雙向 LSTM 和 self-attention 對問題進行編碼,得到每個問題的表示,然后在問題和語義表示向量之間做點乘,得到一個相似度矩陣 S,。?
在此基礎上,需要使用不同的策略獲取最后的答案,在這里作者使用了三種不同的策略:1)直接使用最后一個表示進行預測,; 2)使用所有步的平均表示;3)使用隨機 dropout:在訓練的時候以一定概率隨機丟棄某些步的結果,用剩下的結果的平均進行組后預測,在測試的時候使用所有步的平均進行預測(這個不能算是單獨的一個步驟吧,感覺就是訓練時加了 dropout)。?
在訓練時,本文考慮了兩種損失函數,交叉熵和 n-pair 損失,交叉熵好理解,將 o 送個一個分類層,n-pair 損失的計算方式如下:假設第 g 個是正確答案,則損失定義為:
以上就是整個模型的技術細節。
實驗結果
本文使用的數據集是 visual dialog V1.0 (https://visualdialog.org/),評價指標是 NDGC?(Normalized Discounted Cumulative Gain),相關實驗結果如下:
可以看出模型的實驗結果是明顯好于 baseline 的,而且隨著 reasoning 的步數增加,模型的效果是在不斷變好的,但這部分感覺可以測試更多的步驟,看看是否效果有明顯的提升。
接下來是一些 case study:
可以看出來模型是逐步從粗粒度到細粒度,慢慢關注到具體的細節,從而最終給出正確的答案,這部分感覺還是十分有意思的,而且在問題的生成模型中,可以看出模型不僅可以給出正確的答案,同時給出具體的細節內容,使回答更豐富,更具有說服力,如下圖:
總結
本文針對當前模型無法回答細節問題,設計了一個 multi-step reasoning 的方法,從粗粒度到細粒度不斷去更新需要關注的信息,從而使得模型能夠根據已掌握的信息不斷更新需要關注的內容,從而最終取得了正確的答案。這個思路感覺和人的一些習慣非常類似,我們并不是一步就得出了答案,而是根據已有知識不斷更新自己的關注點以及對問題的理解,從而最終得到正確的答案,羅馬不是一天建成的,這個思路非常值得關注。
點擊以下標題查看更多往期內容:?
圖神經網絡綜述:模型與應用
小樣本學習(Few-shot Learning)綜述
F-Principle:初探理解深度學習不能做什么
萬字綜述之生成對抗網絡(GAN)
讓Keras更酷一些:分層的學習率和自由的梯度
AAAI 2019 | 基于分層強化學習的關系抽取
深度長文:NLP的巨人肩膀(上)
NLP 的巨人肩膀(下):從 CoVe 到 BERT
自然語言處理中的語言模型預訓練方法
#投 稿 通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
??來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
? 投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
?
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點擊 |?閱讀原文?| 下載論文
總結
以上是生活随笔為你收集整理的微软论文解读:用于视觉对话的多步双重注意力模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从动力学角度看优化算法:GAN的第三个阶
- 下一篇: 谣言止于智者:基于深度强化学习的谣言早期