A Diversity-Promoting Objective Function for Neural Conversation Models
本篇分享的文章是前一篇分享A Persona-Based Neural Conversation Model的pre-paper,題目是A Diversity-Promoting Objective Function for Neural Conversation Models,作者是Jiwei Li,最早於2015年10月11日發在arxiv上。
本文針對的問題是seq2seq方案在解決bot問題上容易生成一些「呵呵」的reply,比如「I don』t know」之類的非常safe,grammatical的reply,但是營養太少,沒有太多實際的意義。造成這種情況的原因是目標函數不合適,在最近流行的自然語言生成任務中一般都採用MLE作為目標函數,這個目標函數可以保證生成出最自然的語言,但diversity太差,當然如果在decoding部分生成大量的N-best list的話,也是有很多不錯的reply但都排名很靠後。
本文就是針對這樣的一個問題,提出了用Maximum Mutual Information(MMI)作為目標函數來提高reply的diversity和實用性。MMI這個目標函數在Jiwei Li的多篇文章中都出現過,他很喜歡用這個來代替MLE作為目標函數來解決問題。互信息的方程如下:
經過簡單的推導,可得出下式作為目標函數:
而,一般的seq2seq採用MLE,如下式:
本文方法比傳統seq2seq多了後面的一項。
p(T)其實是一個語言模型,為了在目標中控制reply的多樣性,添加一個懲罰係數,如下式:
這個式子記作(4),經過簡單的推導得到下式:
記作(5)
作者根據式子(4)和(5)提出了兩種MMI,分別是MMI-antiLM和MMI-bidi。
首先是antiLM,單看-log p(T)這一項,其實就是一個語言模型,anti表示反著的,因為有個負號。這一項不僅僅可以影響到你生成reply的diversity,同時也可以影響到你生成的reply是否是grammatical的,其實是一把雙刃劍,需要做好控制,一般來說lambda小於1之後,後一項的影響相對較小了。
本文用一個帶權重的語言模型U(T)來替換當前的p(T),如下式:
這裡g(k)是權重,k是index,g(k)的特點是隨著k的增加單調遞減。這樣做有兩個目的:
1、decoding時對先生成的詞的懲罰比後生成的詞的懲罰對diversity的影響更大。
2、隨著decoding部分的輸入對後續生成影響的減弱,語言模型U(T)將會佔主導地位,reply後面的部分也會非常grammatical。
bidi這個目標函數的思路是,先從第一項來生成N-Best List,然後用第二項對其進行排序,將diversity更好的reply放在前面。
在訓練過程中,仍舊是採用MLE,但在測試的時候,用本文提到的MMI來做測試。
這個結果是由MMI-antiLM產生的:
這個結果是MMI-bidi產生的:
生成的reply確實seq2seq更加有營養。
本文解決問題的一個思路是很有借鑒意義的,正如abstractive summarization中有一篇paper用MRT來替換傳統的MLE作為目標函數,將評價指標考慮進了目標函數中進行優化,起碼在benchmark上得到非常好的結果。這其實是一條不錯的路,就是將你當前的評價指標融入到你的優化目標中進行優化學習,自然會得到比單純地用MLE來優化要好的多,也有很多的paper在用這樣的思路解決問題。我們不僅僅滿足於可以生成一個grammatical的reply,我們更需要的是有意義的、有實際使用價值的bot。另外就是具體到目標函數的建模,如果你希望目標中減小哪些因素對目標的影響,就增加一項懲罰項,這也是做優化時候的一般方案,但在解決具體問題時會非常有效。本文雖然針對的是bot reply的生成問題,其實可以推廣到一般的自然語言生成問題上來,只是要涉及到MLE做生成都可以換成本文的方法來提升相應的指標。
一點思考,歡迎交流。
推薦閱讀:
※【解讀】機器學習應用在量化投資中失敗的7個主要原因
※【最優化】凸函數的駐點是全局最優點
※CTR預估[三]: Algorithm-LR and Regularization
※這些機器學習基礎,你忽略了嗎?
※關於機器學習,你必須知道的10件事情
TAG:自然语言处理 | 深度学习DeepLearning | 机器学习 |