文本生成是自然語言處理NLP領域的重要問題,許多知名學者都提出了自己的方法,改善現階段文本生成中豐富性不足、句法語意不自然、長句生成困難等問題,比如不久之前我們做過報導的上海交通大學俞勇、張偉楠聯合UCL汪軍發表的「 LeakGAN 」、Percy Liang的ICML2017最佳論文「 Understanding Black-box Predictions via Influence Functions 」。
Percy Liang是NLP領域的著名研究者,師從Michael I. Jordan,現為史丹福大學教授;除了論文得到廣泛認可之外,Percy Liang還拿下了 IJCAI 2016 計算機和思想獎(Computers and Thought Award)。
近期,Percy Liang團隊的一篇新論文提出了一種新的文本生成新方法,「Generating Sentences by Editing Prototypes」(用修改草稿的方式生成句子),這個方法不僅符合直覺,生成的效果也非常好,引起了很多研究者的注意和讚譽。以下編者對這篇論文做簡單介紹。
論文內容
這篇論文中提出了一種新的句子生成模型。它首先從樣本語料庫中隨機採樣一個句子作為「草稿」(論文中prototype),然後再把這個草稿編輯為一個新的句子(如下圖)
此前表現較好的系統大多數都是基於循環神經語言模型(NLM)的,它們「從零開始」生成句子,順序往往從左到右。這類模型中很容易觀察到生成通用化應答的問題,比如「我不知道」這樣。為了提高生成文本的豐富性,目前採用的比較直白的策略都會導致語法準確性的降低,表明目前的NLM模型可能並不具備對複雜應答的各種可能性做完全表徵的能力。
論文作者們由此想到了人類寫作時常常有先打草稿、再逐漸把它修改為一篇精美文章的做法,由此提出了文中的模型。模型首先會從訓練語料庫中隨機採樣一個草稿句子,然後激活一個神經網絡編輯器;這個編輯器會生成隨機的「編輯向量」,然後根據編輯向量對草稿句子做條件編輯,從而生成新的句子。
這個思路的出發點在於,語料庫中的句子提供了一個高質量的起點:它們語法正確,天然地具有複雜性,而且不會對長短和模糊性有任何偏好。編輯器中的注意力機制就會從草稿中提取出豐富的文本信息,然後把它泛化為新的句子。
模型的訓練方式是最大化估計生成模型的對數最大似然。這個目標函數是訓練集中具有相似詞法的句子對的和,從而可以用局部敏感哈希(Locality Sensitive Hashing)做量化估計。論文中同時用實證方法表明,多數詞法相同的句子同時在語義上也是相似的,這樣給神經編輯器的語義結構方面帶來了額外的益處。比如,作者們可以讓一個神經編輯器從一個種子句子出發,探索很大一片語義空間。
作者們從兩個方面對比了這個「先打草稿再優化」的模型和以往從零生成的模型:語言生成質量以及語義屬性。對於語言生成質量,人類評價者給論文中的模型打了更好的分數,在Yelp語料庫上把複雜度(perplexity)提升了13分,在One Billion Word Benchmark中提升了7分。對於語義屬性,論文中表明隱編輯向量在語義相似性、局部控制文本生成和句子模擬任務中優於標準的句子可變編碼器。
下圖是一組草稿句子和修改後句子的對比,有顯著的不同,並且保持了高質量
社交網絡上的評價
論文公布並經過轉推擴散開來後,許多研究者都在推特上表示了對這篇論文的認可
(Percy Liang實驗室帶來的聰明的句子生成方法:從語料庫中的例子開始,學習加上有模有樣的變化)
(下面網友說:「這看起來很像我學英語的方法」)