每日最新頭條.有趣資訊

AAAI 2020 論文解讀:關於生成模型的那些事

機器之心分析師網絡

分析師:王子嘉

編輯: H4O

提到生成模型,每個人首先要考慮的問題應該都是這兩個——生成什麽,如何生成。本文介紹的三篇論文就包含了三種生成模型(GNN、RL、VAE,即怎麽生成),同時也介紹了這些生成模型各自當前的應用場景(場景圖生成、序列生成、任務型對話生成,即生成什麽)。

機器學習模型的一種分類方式就是將模型分為分類模型和生成模型,GAN 的出現使得生成模型一度大火,GAN 也開始被應用於各個領域,但是生成模型並不只是 GAN。除了 GAN 相關的模型,其他的生成模型也是很多人在研究的方向,AAAI 中收錄的 1500 多篇文章中就有 100 多篇直接以「生成」命名的文章。本文對其中一些重要論文進行了解讀。

論文列表:

Probabilistic Graph Neural Network(PGNN):Deep Generative Probabilistic Graph Neural Networks for Scene Graph Generation

Reinforcement Learning(RL): Sequence Generation with Optimal-Transport-Enhanced Reinforcement Learning

Action Learning: MALA: Cross-Domain Dialogue Generation with Action Learning

1. Probabilistic Graph Neural Network(PGNN)

論文鏈接:https://grlearning.github.io/papers/135.pdf

1.1 任務描述

視覺理解是計算機視覺中一個很重要的任務,而過去的幾年中,很多專家將這個問題歸結成圖像分類、對象檢測等任務。然而,理解一個場景並不僅僅是識別場景中的物體,物體之間的相互關係也是很重要的信息。為了表征這種語義,最近一些論文引入了場景圖(scene graph)的概念,其中的節點表示對象,邊則表示對象之間的關係。這個概念其實源於遊戲,具體的介紹可以自己查一下 Wiki(wiki 對應鏈接:https://en.wikipedia.org/wiki/Scene_graph,很不幸這個介紹的中文版是空的),本身說的是遊戲開發者們在畫面編程的時候需要關注的東西,在做 Computer Graph(如 WebGL, OpenGL 等)時,這種關係就是程序員需要編程的東西之一,比如一個很簡單的只有兩個球的場景,哪個球在另一個球的左邊,再或者一個遊戲中如果定義一個騎士和一匹馬之間有邏輯關係,那麽這個騎士就可以被認為是與馬一體的,這些東西都是需要在程序中進行編程的。本文的聚焦點就是這種場景圖的生成,在本文中(如圖 1 所示),這種場景圖就也需要包含各個對象之間的關係,比如圖 1 左邊圖中的橘子和蘋果都在碗中,右邊圖中的小女孩是坐在馬上的。

場景圖(Scene Graph)示例(圖源自論文)

1.2 算法概述

為了生成場景圖,過去的方法先是學習了這些邊和節點的表達(嵌入),如 [1] 中通過在 Fixed Complete Graph 中間傳遞信息以生成場景圖,[2] 則把各個對象看做一個序列,利用雙向 LSTM 獲取各個對象之間的信息。然後再用這些嵌入來獲取各個節點和邊的類型。但是這些方法並不能利用圖像中豐富的結構信息,這些信息在輸入時就包含在了這些圖像輸入中。本文作者基於 [3] 中提出的 Graph Network,進而提出了適合表征 Scene Graph 的 Probabilistic Graph Network(PGN)。在 PGN 中,邊和節點都被表示成了用於 CNN 的特徵向量,邊和節點的種類則被表示成概率質量函數(probability mass function,PMF)。

如圖 2 所示,本文作者在建立 PGN 的過程中也使用了 Reinforcement Learning,因為整個 PGN 添加節點的過程是序列化的,而對於這種過程,Markov 是一個很好的決策工具。具體來說,作者首先利用 Deep Q-Learning 框架學習最優排序,從而依次在當前的 partial PGN 上增加新節點,這裡 RL 的動作就是選擇一個新節點,RL 的獎勵 reward 則根據輸入圖像的 ground-truth 場景圖進行定義。添加節點後,通過消息(上下文關係信息、對象共現信息和圖片解釋中的先驗知識)傳遞來更新當前 PGN 的特徵向量。然後使用更新的特性對 PMFs 進行微調。

PGN 建立過程(圖源自論文)

1.3 算法細節

如前文所述,Scene Graph 是由 PGN 生成的。因此本節首先介紹了什麽是 PGN,然後對其生成方法 Deep Generative Probabilistic Graph Neural Networks (DG-PGNN) 進行詳細介紹。

Probabilistic Graph Networks:PGN 是基於一個圖(文中為場景圖)G = (V, E) 建成的。其中 V 為節點的集合,E 為邊的集合。假設邊的種類有 K 種,那麽就有 K 個 E_k(k ∈ ) 矩陣,每個矩陣中包含了某條邊屬於某個類別的可能性,如 E_k(u, v) 就表示從節點 u 到節點 v 的邊可以表示為 k 的可能性。因此,對於某一條邊 (u, v),其概率質量函數(probability mass function,PMF)e_ = [E_1(u, v), . . . , E_K(u, v)]^T。正常來講,PMF 的和應該是為 1,但是本文為了讓邊的可能性更多(不屬於任何一類,也就是不存在;或是有很多種可能),取消了這一限制。同樣的,每個節點也有自己的 PMF 以表征其類別,即 n_v ∈ R^M,其中 v 表示某個節點,M 表示節點種類數。同時,每條邊和節點都由向量表示,節點向量在目標檢測時獲得(文中使用的 faster_rcnn_nas),邊的向量則由邊連接的兩個節點合並得到。

Q-Learning:在整個流程開始之前,要先建立一個 Complete PGN(如圖 2 所示),這個 Complete PGN 包含了所有的節點和所有的邊,可以為 Q-Learning 過程提供原始的特徵向量和 PMF(用於更新),具體的建立方法在論文的附錄中,有興趣可以自己研究一下。總之,假設當前狀態(某個 Partial PGN)的狀態為 s,那麽 Q-Learning 的輸入是這樣的:

這裡的 g 是整個圖像的特徵向量(Complete PGN 建立過程中 152 層 ResNet 的最後一層輸出),置信度矩陣 p = [p(1), ..., p(N)],p(j) 代表第 j 個框的置信度(目標檢測過程中),d 表示了當前節點的狀態,如 d(v) = 1 則表示節點 v 已經被選擇過,0 則表示其還沒被選擇過。o^n 和 o^e 都是目前 PGN 的特徵向量(初始化為 0 向量),h 和 n 則分別為邊向量和節點向量。這裡的\Phi 就記錄了選擇的過程,因此可以發現一些共現現象。如當現在的圖中有了「街道」這個詞,那麽下一步添加的節點就很可能是跟「車」相關的東西。每一步的動作則是在沒有被選擇過的節點中選擇一個添加到圖中,如果圖已經建立完畢了,可以選擇停止。如上文所述,這裡的 reward 根據輸入圖像的 ground-truth 場景圖定義。因此,假設一個動作-狀態對為 (φ, ˆ s, ˆ a, ˆ r, ˆ φˆ0 , sˆ 0 ),則其目標函數為:

其中 r 為當前 reward,A 表示可以選擇的動作,\Phi(ˆ s + v)表示加入節點 v 後的\Phi。因此,參數的更新過程為:

更新:在 Q-Learning 選擇了新的節點加入 PGN 後,首先這個節點與所有其他節點的邊向量、PMF 以及其自己的節點向量都是從原始的 Complete PGN 中獲取,然後通過後續的方法(見原論文附錄)對 PMF、邊向量、節點向量進行更新。

1.4 實驗結果

本文實驗基於 Visual Genome (VG) 數據集,使用 Top-K recall(R@K)作為評價標準,與當前的 SOTA 方法進行了比較,同時也對其本身模型進行了 ablation study,記錄了在不使用 RL(DG-PGNN^o)、不使用圖片注釋(DG-PGNN^-)、使用 VGG(完整模型使用的 ResNet)提取 feature(DG-PGNN^+)下的實驗結果。實驗結果如表 1 所示。由表中可見,論文中完整 DG-PGNN 的結果幾乎在各個任務中的表現都是最好的。

表 1:實驗結果對比(表源自原論文)

1.5 小結

本篇論文使用了 PGN 來生成 scene graph,其重點主要有兩個,一個是利用了 PGN 生成 scene graph,第二個則是利用 Deep Generative Probabilistic Graph Neural Networks (DG-PGNN) 學習 PGN 的過程。除此之外,這種 DG-PGNN 還可以用在其他需要學習結構的任務中(如知識圖譜的建立等)。

2. Reinforcement Learning

論文鏈接:

https://pdfs.semanticscholar.org/826d/b2e5f340a90fc9672279f9e921b596aba4b7.pdf

第一篇文章在 PGN 的學習過程中利用了 RL,但是如果在語言生成(序列生成)任務中使用 RL,就會基於最大似然來確定獎勵函數,這時就會出現高差異梯度(high-variance gradients)、 獎勵信息不明(uninformative rewards)和訓練困難(brittle training)等問題,本文的提出就是為了解決了這一問題。

2.1 任務描述

序列生成是 NLP 研究中極其重要的組成部分,序列生成任務包含了很多應用——機器翻譯(Sutskever, Vinyals, and Le, 2014; Cho et al., 2014; Bahdanau, Cho, and Bengio, 2015)、文本摘要(Rush, Chopra, and Weston, 2015; Chopra, Auli, and Rush, 2016)、圖像注釋(Vinyals et al., 2015; Xu et al., 2015)以及風格遷移(Shen et al., 2017; Prabhumoye et al., 2018)等。

2.2 算法概述

在序列生成模型中,常見的方法之一就是使用 Maximum Likelihood Estimation(MLE)。這裡的 MLE 主要是基於自回歸的形式,即最大化已知背景知識(對前面文本進行的編碼)後當前單詞的條件概率,這種做法導致了暴露偏差(exposure bias)問題,即在訓練階段模型對生成序列的暴露不足,從而導致測試時長序列的語義一致性快速降低。因此,很多為了解決這個問題的正則化方法相繼被提出來,RL 就是其中一種,而決定 RL 能否成功的最重要一環就是是否有合適的獎勵函數,這個獎勵函數不管是動態的還是靜態的都有其對應的問題。

為了解決這個問題,本文對 RL 和 OT(Optimal Transport,最優運輸)學習的不同狀態進行分析,從而發現了一種融合了 RL 和 OT 正則化的退火調度學習策略——最優運輸 RL (OTRL),讓 OT 損失自適應地調節 RL 探索時的策略空間,從而讓訓練過程更加穩定。

2.3 算法細節

如前文所述,本文的算法結合了 RL 和 OT 的優勢,從而提出了 OTRL(Optimal-Transport-Enhanced Reinforcement Learning),因此本節先介紹 RL 如何生成序列,再介紹 OT 如何實現語義匹配,最後介紹其融合結果。

RL 如何進行序列生成

前文提到的自回歸式的序列生成模型(如 LSTM,Transformer 等)就是這個任務中的 agent,可以采取的動作則是生成的單詞,策略即是模型的參數,在整個序列生成結束後,系統會給 agent 一個獎勵 r(),這個獎勵函數就是講生成的序列和目標序列(ground-truth)進行對比(使用 BLEU(Papineni et al. (2002))等方法),此時 RL 算法的損失函數即為:

這裡的 y 是從生成的序列中采樣的,y^*則是 ground-truth,\theta 是指一個特定的策略(一組參數)。為了獲取上述損失函數(不可微時)的梯度,文中利用下式對其梯度進行估計:

為了降低梯度的差異,文中還在上式中加入了基線方程 b(),此時梯度變成了:

OT 如何進行語義匹配

簡而言之,OT 就是在最優運輸計劃下計算了兩個分布的移動距離,這裡的最優運輸計劃是可以學習的。本文中,OT 就是要利用嵌入來計算兩個生成序列的距離,從而利用 OT 來擴展 RL 的探索空間。具體來說,作者使用 Gumbel-softmax(為了使模型可微)來將模型的輸出變成對應的序列嵌入,然後就能得到最終的 OT Loss(一個序列):

這裡的 n 是指生成序列中單詞的數量,m 指 ground-truth 序列中單詞的數量,C_ 指用來計算生成序列中第 i 個單詞和 ground-truth 中第 j 個單詞的嵌入相似度的 Cosine Similarity,T_ 是轉移矩陣,d_i 的定義如下所示:

上述 Loss 可以用 IPOT(Xie et al. (2018),)算法求出最優解,算法流程如下圖所示,具體細節可以去看一下 Xie 提出這個算法的論文。

圖 3:IPOT 算法流程

Optimal-Transport-Enhanced RL(OTRL)

上文提到的兩種方法都有各自的缺點,隻使用 RL 的方法雖然可以獲取長序列的信息,但是會有很大的梯度差異;而隻使用 OT 的方法雖然解決了梯度問題,目前又只是適配與 1-gram,這樣很多信息都會流失,而如果簡單的將其擴展到 k-gram,那麽複雜度會變得極其巨大。因此作者將兩者合並,通過在 RL 中加入 OT 來獲得穩定、全面的模型。此時模型的損失變成了:

這裡的 L_ 就是最基本的 MLE 的損失函數,三個\lambda 則是超參數。作者首先隻使用最嚴格的損失函數 L_ 來訓練模型,從而獲得一個較好的起始點,然後開始加入 L_ 使得模型有更大的搜索空間,最後再加入 L_ 對模型進行 fine tune。

2.4 實驗結果

作者在三個任務上測試了其提出的模型——機器翻譯(數據集為 IWSLT 2014)、文本摘要(數據集為 English gigawords 和 CNN/Dailymail)和圖像注釋(數據集為 COCO),具體實驗結果如下面幾張表所示:

由上面這些表格可見,作者提出的方法在這些任務上的表現基本都比其他算法好

2.5 小結

本文主要是結合了兩種不同的方法的優點,從而互補了對方的缺點,將一些簡單的算法應用到深度學習算法中去,也可以獲得一些很好的效果。

3. Cross-Domain Dialogue Generation

論文鏈接:https://arxiv.org/pdf/1912.08442.pdf

前面兩篇論文說的都是使用 RL(或部分利用 RL)進行目標生成的,這篇文章的算法對於隻熟悉 GAN 的研究者來說可能就會感覺更親切一些,因為終於回歸到典型的生成模型——VAE 了。

3.1 任務描述

任務導向的對話系統的主要工作就是在多輪對話中提取出用戶的需求,並完成其需求。過去的方法將整個任務看做一個整體來解決,使用生成模型(Encoder-Decoder)直接將對話映射到對應的回答上,但實際上,這個任務是由兩部分組成的——對話規劃(Dialogue planning)和外部實現(surface realization)。對話規劃是指找到完成用戶的需求的動作(如找到用戶喜歡的食譜或是向用戶推薦餐廳),而外部實現則是指將這些動作變成對話內容,這兩個任務是會互相影響的,在優化動作選擇時會影響到生成的對話的質量,所以直接將這兩步合並成一步是不可行的。

為了解決這個問題,有些論文提出了為每個回答匹配一個動作表征,這樣這個任務就被分成了兩步,從而減輕了上述影響。但是目前這些論文主要使用的方式是使用 VAE(Variational AutoEncoder)來獲取低維度的隱變量,從而獲取這種隱動作表征(Latent action),但是如圖 4 所示,(a) 和 (c) 對應的需求是不同的,但是卻獲得了完全一樣的 Latent action。這是因為這種方法只能獲取這些語料的相似性,並不能深入理解這些語料的含義,因此本文作者希望獲取語義隱動作表征(Semantic latent action),這種表征的主要依據是相同的需求對應的對話走向也應該是相似的,因此也可以獲得相似的表征。

圖 4:VAE 與 Semantic Latent Action 對比(圖源自原論文)

3.2 算法概述

為了完成上述任務,本文提出了一種三段式方法。首先,為了將潛在意圖編碼為語義隱動作,作者將一個損失定義為 VAE 重建的對話是否會像輸入話語一樣引起相似的狀態轉換。為了更有效地區分話語之間的潛在意圖,作者還引入了一種比較兩個系統話語之間結果狀態轉換相似性的正則化。

學習語義潛動作需要對對話狀態進行標注。在許多領域,根本不存在這樣的注釋,因為它們需要大量的人工工作,並且獲取它們的成本很高。作者希望從從狀態注釋豐富的領域域(源域)遷移到到那些沒有狀態注釋的目標域。本文以漸進的方式實現知識轉移,從源域和目標域同時存在的行為開始,如酒店域和景點域都有對價格的詢問,文中將此類操作稱為共享操作,而僅在目標域中存在的操作則稱為特定於域的操作(domain-specific actions)。作者觀察到,具有共享動作的系統話語雖然屬於不同的域,但會導致相似的狀態轉移,因此本文通過將從上述共享動作中收集到的動作話語對對齊,訓練了一個網絡,通過僅將系統話語的文本作為輸入來預測結果對話狀態轉換的相似性。然後利用相似性預測作為監督,更好地學習具有領域特異性動作的所有話語的語義潛動作。

因此本文主要提出了三步分別是對應有標注數據、無標注數據但可以遷移、專有領域三種情況下的模型訓練方法。

3.3 算法細節

a. VQ-VAE:

本文的模型是基於 VQ-VAE 提出的,隱動作表征就是希望將每句話 x 表征成 z_d(x),其中 d 表示第 d 個對話。這個表征可以是 one-hot、multi-way categorical 的形式,也可以是連續的。本文中採用了 one-hot 的形式。這種表征是通過 VQ-VAE 獲得的,其基本結構可見圖 5,由一個編碼器 p_E、一個解碼器 p_G 和一個嵌入查詢表 e 組成。首先編碼器 p_E 輸入了一句話 x,從而編碼成 z_e(x),然後通過下式獲取 z_q(x)(找到嵌入表中跟 z_e(x) 最相近的嵌入),最後通過解碼器將 z_q(x) 重建成原來的輸入。而這個 z_q(x) 就是我們需要的隱動作表征。

這個整體是一起訓練的,其損失函數為:

b. Stage I - Semantic Latent Action Learning:

這一步主要是訓練了一個對話狀態跟蹤模型以確定兩句話是否會導致相同的對話走向。因此首先要獲得對話的狀態,一個有狀態標注的對話 d_i 就可以表示為:

這裡的 c_t 是第 t 輪之前的聊天記錄,b_t 則記錄了第 t 輪對話的狀態,N_b 表示 state 對的數量,x_t 表示第 t 輪系統回答。本文訓練了一個模型來獲取當前的狀態:

此時損失函數即為(這裡的 h() 為打分函數,這個打分可以由很多種方式或者直接用一個 encoder-decoder 實現):

獲取了對話的狀態後,作者就利用了兩種方式來衡量提取的語義隱動作表征,一種是系統的回答與 VAE 重建的對話作比較(point-wise,對應的損失為 L_),另一種是系統與系統之間的比較(pair-wise,對應的損失為 L_)。整個第一步的流程如圖 5 所示,p_B 就是前面說的狀態跟蹤模型,p_B^ 則是作者為了獲取更完整地信息而訓練的反向跟蹤模型,對應的損失函數只要反過來即可,對兩種衡量方式具體計算細節感興趣的可以參考原論文。

圖 5:Stage I 框架圖(圖源自原論文)

因此在第一階段(Stage I)中的總損失為:

\alpha 和\beta 都是超參數,L_ 就是一開始定義的 VAE 的損失。

c. Stage-II: Action Alignment across Domains

這一步主要是為了在那些沒有狀態標注的領域裡實現上述算法,因此本文提出了一種遷移的方法(如圖 6 所示),其中的模型 P_B、P_G、P_B^、P_E 使用的都是第一步訓練的模型,一開始隻使用需求相同的對話進行訓練,對模型進行更新。

圖 6:Stage II 框架圖(圖源自原論文)

在上一步中,作者定義 pair-wise 衡量方式為:

在這一步中源域(X^S)和目標域(X^T)的狀態相似度衡量方式變成了(這裡的 s_ 和 s_ 用的都是一開始在有標注的領域訓練的模型):

而且為了進行源與目標的對齊,這一步的 VAE 的損失也變成了:

最終這一步的總損失為:

d. Stage-III: Domain-specific Actions Learning

第二階段解決了那些沒有標注但是卻可以遷移的領域的語義潛動作表征的學習,但是對於那些專有領域的動作,第二階段的模型還是不能解決其問題,因此第三階段的模型(如圖 7 所示)被提出來了。

圖 7:Stage III 框架圖(圖源自原論文)

這一步中,由於無法再進行遷移,因此作者沒有再使用前面的狀態追蹤模型,而是從新訓練了一個 Similarity Prediction Network(SPN)來判斷兩句話是否會導致相同的走向,並使用了新的損失函數(原理差別不大,詳見原論文)。

3.4 實驗結果

本文選取了兩種實驗來體現其算法的先進性——多領域聯合訓練與跨領域生成,並與 (1) KVRN (Eric and Manning 2017); (2) Mem2seq (Madotto, Wu, and Fung 2018); (3) Sequicity (Lei et al. 2018); and two baselines that adopt conditioned generation: (4) LIDM (Wen et al. 2017a); (5) LaRL (Zhao, Xie, and Eskenazi 2019) 等基線進行了比較,同時也對自己的三個階段進行了實驗(MALA-(S1/S2/S3)),實驗結果如下表所示:

從表中可以看出,完整模型(MALA-S3)的效果在兩個實驗中表現都是最好的。

3.5 小結

本文主要貢獻是通過將問題分解的更加精細,更加全面的模型(三段式模型)來對問題進行解決,這應該給各位在研究複雜問題領域的研究者們一種啟示——對問題進行更深層次的剖析,然後分成小問題一步一步進行解決,說不定可以得到更好的結果。

總結

本文的三篇文章主要介紹了三種不同的生成模型,同時也代表了當下很常見的集中創新方式。同時,這些文章中,有些核心概念(如場景圖)是來自於非常規機器學習領域的,這也再一次證明了萬物皆可機器學習的理念。畢竟機器學習是想模仿人類的學習能力,而現在各個領域的知識則是人類學習能力的具象化,多了解一門其他知識,也就多了一個創新的可能。

參考文獻(除四篇主論文)

[1] Danfei Xu, Yuke Zhu, Christopher B Choy, and Li Fei-Fei. Scene graph generation by iterative message passing. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, volume 2, 2017.

[2] Rowan Zellers, Mark Yatskar, Sam Thomson, and Yejin Choi. Neural motifs: Scene graph parsing with global context. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 5831–5840, 2018.

[3] Peter W Battaglia, Jessica B Hamrick, Victor Bapst, Alvaro Sanchez-Gonzalez, Vinicius Zambaldi, Mateusz Malinowski, Andrea Tacchetti, David Raposo, Adam Santoro, Ryan Faulkner, et al. Relational inductive biases, deep learning, and graph networks. arXiv preprint arXiv:1806.01261, 2018.

分析師介紹:本文作者為王子嘉,目前在帝國理工學院人工智能碩士在讀。主要研究方向為 NLP 的推薦等,喜歡前沿技術,熱愛稀奇古怪的想法,是立志做一個不走尋常路的研究者的男人!

關於機器之心全球分析師網絡 Synced Global Analyst Network

機器之心全球分析師網絡是由機器之心發起的全球性人工智能專業知識共享網絡。在過去的四年裡,已有數百名來自全球各地的 AI 領域專業學生學者、工程專家、業務專家,利用自己的學業工作之餘的閑暇時間,通過線上分享、專欄解讀、知識庫構建、報告發布、評測及項目谘詢等形式與全球 AI 社區共享自己的研究思路、工程經驗及行業洞察等專業知識,並從中獲得了自身的能力成長、經驗積累及職業發展。

獲得更多的PTT最新消息
按讚加入粉絲團