【論文摘要】Dialog State Tracking with Reinforced Data Augmentation

本文僅爲個人對論文的一點理解,如果有不對的地方煩請指正

戳我看論文原文

論文背景

\quad 智能助手例如Alexa,Siri,Google Duplex的應用越來越廣泛,它非常重要的任務是Dialog state tracking(DST),也就是追蹤用戶的目的,有了這些信息,智能助手再去決定如何與人類交流。

\quad 在slot-based dialog system中,對話的狀態被視爲槽位和值的組合,比如下面的例子。
在這裏插入圖片描述
\quad 目前該任務最好的方法採用神經網絡,使用之前用戶的語句、系統動作和其它相關信息作爲輸入,最終計算得到各個槽位不同值的概率。

\quad 但是目前DST領域訓練數據較爲稀少,於是改論文提出了一個針對DST任務的數據增強框架,目的是豐富數據,從而使在其上訓練的模型獲得更好的效果。

\quad 數據擾亂是一個增強數據集的好方法,這個技術在CV問題和語音識別問題中已經很常用了(改變圖片一小部分像素、昏暗等等產生新的圖片),但是我們卻很難通過擾亂文本來增強數據,因爲文本稍微的改變都可能讓語義和流暢程度發生非常大的改變。

論文方法

\quad 論文設計了兩個模塊,其中一個是選擇模塊(論文種叫生成模塊,但我認爲叫選擇模塊更爲貼切),負責選擇生成新的訓練樣本;另一個是狀態追蹤模塊,也就是解決該類型任務的一般模型。生成模塊依據追蹤模塊結果的變化進行增強學習,追蹤模塊又可以通過學習生成模塊生成的新數據不斷變好。

\quad 狀態追蹤模塊的目的是跟蹤用戶的目標,先預測每個槽位種不同狀態的可能性大小,然後爲每個槽位選擇可能性最大的狀態作爲當前的預測,然後結合上一回合的預測值得到目前狀態下的最終預測值,下圖爲論文中的示意圖。

在這裏插入圖片描述
\quad 選擇模塊負責選擇生成的新的訓練數據,也就是這篇論文的主要部分所在。

\quad 論文把增強數據形式化爲語段的替換問題,也就是句子的一段區間替換成另一段話。

\quad 一般的語段替換可以直接將語段替換成它的釋義,但是這樣產生的新數據大多無效而且noisy,最終會讓追蹤模塊的效果變差,因此論文提出了讓生成模型去學習甄別生成數據的能力。

\quad 原論文這部分說的有點分散,以下內容是我總結之後重新理出來的。

\quad 整體的替換規則是訓練數據裏面所有的一元組、二元組、三元組提取出來作爲目標語段,然後爲每個語段在PPDB數據庫種查找替換語段作爲備選,對於完整匹配某一個slot value的詞段,它們的備選語段爲該slot的其它candidates,並且替換之後更改整個語句該slot的標籤爲對應的candidates。

\quad 在具體生成新例子時,論文首先採集一個語句的Bag(每個語句包含句子信息、標籤信息和目標替換語段信息),然後爲Bag中的的每個句子使用選擇模塊從備選方案種找到一個最好的替換方案(備選方案的生成見上一段),最終生成一個全新的Bag,這樣做M次,生成M個新的Bag。
在這裏插入圖片描述
\quad 選擇模塊的輸入爲一個向量(如上圖),由原句送入狀態追蹤模塊得到的encoding向量、新詞組的平均embedding與原詞組的平均embedding做一些運算的結果拼接組成。模塊設計成一個兩層的全連接網絡,經過一個softmax各個備選生成語句的得分,選擇一個得分最高的作爲採樣結果。
\quad 選擇模塊採取Policy Gradient方法進行強化學習。 Reward由兩部分構成,先將每一個Bag送入當前效果最好的Tracker繼續訓練,如果Tracker在驗證集上的效果變好,Bag級別的reward就是正的。對於句子級別,如果模型在某一個新生成的句子上的標籤預測是錯誤的話,論文就稱其爲是“large-loss”的句子,這樣的句子獲得的收益的絕對值爲c,其它預測正確的語句獲得收益的絕對值爲c/2,如果bag-level的收益爲正數的話,句子級別的收益也爲正數,否則句子級別的收益爲負。

\quad 由此二者開始一輪一輪的交替訓練,在訓練過程中Tracker保留效果最好的一個模型,論文主要內容結束。

個人總結

\quad 論文提出了一種有點類似於GAN想法的數據增強方法,論文整體思路清晰,但是表述順序不得不說有點迷惑,反反覆覆看了好幾遍纔看懂整體的方法QAQ,論文中一些方法還有待推敲,整體來說對我而言比較有啓發性。

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