caption任務 當中diversity綜述
Caption任務當中的語句diversity綜述
Image caption 任務是一個需要綜合計算機視覺和自然語言處理的任務,需要使用計算機建立某種對映方式,將處於視覺模態當中的資料對映到文字模態當中。總的來說,這樣的一個對映人物需要如下的兩個基本需求:1 語法的正確性,對映的過程當中需要遵循自然語言的語法,使得結果具有可讀性;2 描述的豐富程度,生成的描述需要能夠準備描述對應圖片的細節,產生足夠複雜的描述。然而目前應用最廣泛的“編碼器-解碼器”模型使用交叉熵作為損失函式訓練引數,這種方法帶來的弊端在於,模型會趨向於生成更加“安全”的語句描述,在兩幅場景的相似影象但細節不同的影象上,模型會趨向於給出一個更寬泛的描述,忽視了影象的具體細節。

如圖1所示,在兩幅影象內容相似,但整體環境存在明顯差異的情況下,人在描述的過程當中能夠直覺注意這兩幅影象的相似性,從而可以根據這樣的一個相似性去給兩幅影象生成細節上的描述以區別這樣的相似圖片,但目前使用交叉熵作為損失函式的方法無法做到,給出的描述完全一致,忽視了影象的細節特徵(ATTN+CIDER)表示使用注意力機制,基於CIDER的強化學習方法訓練模型。
因此為了解決句子的多樣性問題,研究者提出了一下幾種在目前看來十分有效的解決方法。
- 《Towards Diverse and Natural Image Descriptions via a Conditional GAN》
文章首先給出了一組對比MLE(使用交叉熵作為損失函式,最大似然概率),G-GAN(使用生成模型的方式,下文將詳細說明)和人類的具體描述方式,如圖2 所示。

可以看出相比較於MLE方法,使用GAN生成的結果在句法結構上更加複雜,對於細節的描述非常豐富,使用MLE的方法導致生成結果非常死板,語句模式單一,這也是上文所提到的機器更趨向於更“安全”的結果的一個量化的體現。因此文章提出使用Conditional GAN的方法作為生成模型用於生成描述,通過GAN的evaluator去評價語句描述是否由“人”描述得到,具體的方法論如下介紹(下面的介紹預設理解conditional GAN)。
Generator G,生成模型一個需要兩個輸入,影象的特徵(經過CNN編碼)f(I)和隨機的噪聲變數Z,影象特徵作為條件變數用於控制生成結果的範圍在描述特定的圖片,噪聲變數用於控制生成結果的多樣性。最終生成模型通過LSTM作為解碼器生成句子。Evaluator E也是一個神經網路,網路的模型框架和G相似,但引數是不共享的,可以理解為兩個結構相似,但實際不同的兩個模型。E通過給定圖片和描述的正確配對,通過CNN和LSTM將其編碼對映到相同的語義空間(具體方法感興趣可以瞭解跨膜態的圖文匹配方法),將其點乘根據logistic function得到一個[0,1]的概率值表示得分,詳細公式如下:

從邏輯上來理解學習的目標函式(實際上在解釋GAN的邏輯意義),生成模型G的目標是使得生成結果能夠更加自然,從而“騙得”評價模型E能夠將其誤認為是“人”的描述結果;評價模型E的目標是使得能夠準確識別句子的來源是“機器”還是“人”,通過迴圈訓練,這個過程將會達到一種動態平衡,從而使得生成模型的結果和真實結果相差無幾而評價模型最終達到隨機判斷的形式(即輸出0.5)。量化的目標函式如下公式所示:

在這裡需要注意的是,提出這樣的一張使用GAN的方法訓練模型可以取代使用MLE的方法訓練,從而避免上述使用MLE而可能出現的問題。
1 訓練Generator G
然而在這個過程當中有一個關鍵的問題,在生成模型單詞到單詞生成句子的過程當中,每次生成一個單詞的過程是一個離散的取樣過程,在數學上理解的話表示這樣的一個過程是一個不可微的過程,不解決這個問題就無法使用反向傳播的方法對模型的引數進行更新,為了解決這個問題,我們需要使用policy gradient的方法對不可微的過程進行一次建模(屬於強化學習的範疇,具體公式推導在此不做說明)。值得一提的是,因此目前GAN的方法在影象領域取得的效果很好,在NLP領域好像沒有看到什麼非常優秀的結果。
因此目前所需要解決的問題表示為:如何通過從E當中獲得的feedback用於反向傳播。使用policy gradient的基本思想是把一個句子當中的所有單詞考慮為多個動作action,每個時間段t的action就是基於條件概率的一個取樣,當取樣到結束符<EOS>時完成了句子的生成工作。當取樣結束之後我們就能通過evaluator得到一個評價,從而可以根據此評價對引數進行更新。
然而這裡存在另一個問題,就是需要等到整個句子生成技術才能夠得到結果,這顯然會由很多的問題,比如誤差會被積累,或者梯度彌散,梯度爆炸等一系列的問題。為了解決這個問題,作者在論文當中提到使用early feedback的方式,即我們可以在句子生成尚未結束求解期望reward。具體形式如下公式所示。

在這裡具體的話是使用蒙特卡洛取樣的方式,t時刻之前的是真實生成的結果,之後的是通過取樣法得到的結果。總的梯度可以表示為如下公式,具體解釋詳見論文。

到此為止就可以解決使用如果解決不可微的取樣通過反向傳播的方式的方法優化引數,同時通過蒙特卡洛取樣的方式可以在任意時刻求得reward,加快優化的速度。
2 訓練Evaluator E
E的邏輯理解目標在於評價一個描述S是不是能夠滿足準確的,自然的,豐富的去描述給定圖片I,給出的輸出是一個[0,1]之間的值,越大表示描述越好。為了能夠加強E的能力,在真實的目標函式當中除了引入I所對應的真實結果和生成預測結果,還需要引入真實的但對應去其他圖片的一個結果共3種來源不同的語句描述。目標是加強真實語句的得分,抑制其他兩個來源的句子的得分。對這樣的一種表示形式的建模可以表示為如下的公式。

3 Extensions for generating paragraphs
同時在這篇文章當中,作者還做了生成段落描述的實驗,在此不再贅述,感興趣的話可以follow一下層次結構的LSTM和斯坦福的densecap。
最終論文的實驗和量化分析感興趣的話可以參考論文,此文僅對模型的使用的方法做出自己的理解,結果究竟好壞還是需要自己去拿捏。
二. 《Context-aware Captions from Context-agnostic Supervision》
這篇文章主要研究了在給定兩個相近的標註時,如何能夠根據描述當中的不同的具體細節,忽略其相同部分,索引到正確的圖片,文章提出的方法可以稱為speaker-listener模型,從本質上來說和上文的generator-evaluator模型較為相似,同時文章除了考慮discriminative image caption任務之外,還提出了justification的任務,基於這個任務,論文當中有給出一個新的資料集,因為不關心此任務,因此在下文當種,僅根據caption任務做出描述。
在總體介紹之前先對部分符號表示做出規範,sentence s, a sequence of words{}, image I, target concept , distractor concept , distractor concept表示相似的語句但是對應到不同的圖片,加強模型對句子細節的理解。
1 Reasoning Speaker
Speaker對給定圖片和正確語句的概率進行建模,即。同時listener可以表示為。對於RS的具體建模如下表示。
前一項表示描述的精確度,後一項表示豐富程度,即區別程度。同時文章當中也提到這樣的建模方式將會產生以下兩種無法避免的問題:1 預測的過程在指數級的空間當中,是一個無法追蹤的狀態;2 不希望listener在建模的過程當中對句子分解在單詞的層面上進行判斷,而是希望模型將句子看作是一個整體進行判斷。

2 Introspective Speaker
在這篇論文當中,作者提出的用於解決這個問題的方法將listener相較於以前的方法做出了改變,具體表現為log似然函式的一個比例,具體形式如下:

這樣的listener的建模方法只基於生成模型G,即speaker,作者將其命名為內省法(introspective),優點在於重用了生成模型,不引入多餘的訓練步驟完成了對listener的建模。因此公式6可以改寫為:

3 Emitter-Suppressor(ES) Beam Search for RNNs
將公式8利用馬爾科夫鏈和貝葉斯公式可以將其改寫為如下的形式:

如果對具體的數學公式推導不感興趣,下圖可以從圖形的方式量化的理解這一訓練過程。

如圖3所示,綠色背景的字表示正確對應描述,紅色背景的字表示相似圖片對應的描述,藍色的表示使用RS模型得到的結果,可以看出同時出現的”white”單詞將會被抑制,只出現在正確描述但沒有出現在迷惑描述當中的”blue”將被選中, 從而可以得到對應圖片的更加細節的表述。
將這樣的思想應用在discriminative image caption領域當中,對應的真實資料和迷惑資料將表示為圖片,在兩幅相似的圖片的基礎下,獲取對應圖片的細節資訊從而生成更準確的描述,具體公式表示如下:

這篇文章的有點在於做了非常大量的具體實驗和分析,在此不贅述,是一篇值得看的好文。
三. 《Contrastive Learning for Image Captioning》
這篇文章提出了一個新的方法:對比學習的模式,與上一篇文章的反省學習的方法有借鑑意義,值得一提的的是,這篇文章的第一作者就是第一篇使用GAN的方法的作者。
這篇文章的方法啟發於噪聲對比估計(Noise Contrastive Estimation, NCE),具體的NCE的介紹可以檢視如下連線,主要用於NLP當中: ofollow,noindex"> https:// blog.csdn.net/littlely_ ll/article/details/79252064 。
需要注意的是,不同以上的兩個方法,是對傳統MLE方法的一個“顛覆”的操作,這篇文章所使用的方法可以作為一個外掛,用於修正任何模型的生成結果。
1 Self Retrieval
無論使用什麼方法增強句子的豐富程度,但找到一個合適的,標量化的評價標準對句子的豐富程度做出一個準確的評價是一個比較複雜的任務。基於此任務需求,本文提出了一種“自我檢索”的方式,使用生成的描述語句返回來去檢索圖片,根據檢索到的圖片的準確率來標量化句子的豐富程度。這一方法從經驗上來看具有可參考性,一個豐富的句子所具有的特性一定是discriminative,學習到了圖片的具體細節,根據這些細節從理論上來說應該可以還原到原始的影象。
2 Contrastive Learning
在對比學習當中,我們需要學習的模型建模為,同時使用參考模型來對模型的結果進行進一步的規範操作。因此在學習的過程當中不僅僅需要正確的(圖片,描述)的正確配對樣本,還需要包含圖片和描述不匹配的樣本用於加強模型對句子豐富程度,即多樣性的學習效果,因此根據此要求損失函式可以建模為:


在具體的建模過程當中,如果直接使用上述的建模方式,將會遇到如下的幾個問題:1 使用概率值的差,但實際情況當中,概率值較小,因此可能會引起數值問題;2 同時因為樣本的隨機取樣,公式11對簡單資料將會非常容易判斷(不匹配資料完全不相關)而對於困難資料(即不匹配資料和真實資料的相關性較高),對所有的資料對損失函式的貢獻一視同仁的方法顯然不可取。為了解決這兩個問題,需要使用NCE當中的方法。

首先需要將公式10改寫為公式12的形式,即使用log函式計算概率值,原本[0,1]之間的概率值可以被建模為[-infinity, 0],避免了數值問題的影響。同時引入logistic function對不同資料對loss的不同貢獻度進行建模,如公式13所示:

通過logistic function,對容易的資料,函式值將會落入梯度較小的區域從而對最終結果的影響較小。通過這種方法得到的最終的損失函式如公式14所示:

至於具體在取樣的過程種如何取樣迷惑資料以及如何選擇迷惑資料的方式詳見論文的實驗。
目前看來,Image Caption任務的效能得到不斷地改善,但如何使得機器能夠更加貼近人類的思維模式仍然是目前急需解決的問題之一,在這個任務當中即反應為如何能夠生成更加多元話的結果。
P.S. 這是我第一次在知乎上寫文章,可能部分地方沒有講太清,希望通過這樣的一個分享讓更多的人關注這樣的一個跨膜態的任務,如果您有任何的建議,希望您能不吝賜教,同時如果您有任何的問題,我非常歡迎和您討論您可以直接在文章下方留言,我會在24小時內儘快給您答覆,如果您有細節的問題,也歡迎通過我的郵箱與我聯絡。如果您能看到這裡,非常非常感謝。同時文章所有的公式和配圖均來自作者論文,僅供研究者做討論使用,版權歸屬於原始論文作者。