由上圖可以看出,本文的主題信息不再和輸入文本的embedding求和,而是先單獨通過卷積編碼,再和decoder的輸入部分共同參與attention計算,通過兩邊的attention相加來融合文本embedding和主題信息;此外,還有一個概率生成模塊(biased probability generation)負責進一步控制融合。
損失函數部分用到了強化學習中的SCST(self-critical sequence training)。作者提到,傳統teacher forcing演算法目標是最小化每一步的極大似然損失,然而考慮到ROUGE這樣衡量句子級準確度的驗證演算法,由於exposure bias 的問題,該目標往往會得到次優解(訓練時每次都通過ground-true預測當前步,預測時沒有ground-true);此外,摘要具有靈活性,而最小化極大似然損失的優化目標會迫使模型僅把參考的摘要作為正確答案,其他語意上相似的答案會被認為是錯誤答案。為了解決原有優化目標帶來的問題,作者提出用SCST直接最大化不可微的ROUGE,訓練時根據輸入產生兩個輸出,一個用傳統概率最大化生成,另一個從分布中採樣得到,計算兩個輸出序列的rouge分數作為reward,這樣在訓練階段,SCST會讓模型參考實際的分布,並迫使模型生成rouge分數更高的序列。
承接上一節,Transformer完全拋棄了CNN與RNN,設計了並行能力同樣強的self-attention,與FFN,殘差結構等共同組成一個Transformer模塊,類似CNN可以堆疊多層且較RNN更節省時間。不過,Transformer和Convs2s在機器翻譯任務上的表現差異並不大,加之Attention is all you need這樣的文章標題,不少人在當時一度認為這又是一個拼模型刷分的水文,直到2018年GPT和BERT的誕生,深層Transformer堆疊+海量無監督語料預訓練的模式受到幾乎所有從業者的關注。本節介紹的是MSRA近期發表的MASS,作者通過修改BERT的mask方式實現Seq2seq框架下BERT預訓練的文本生成模型。
BERT本身是以學習表示為目標,或者說是NLU方面的探索,隨機MASK作為預訓練任務被證明效果突出,然而會存在pretraining和fine-tuning數據不一致的問題,如果你想把BERT拼在Encoder端和Decoder端,就要考慮改變BERT的預訓練方式。MASS略微修改了BERT的mask方式,在Encoder端連續 mask一個子序列,讓Decoder用前i-1個詞預測第i個,就這樣把BERT套進Seq2seq框架,一起pretraining即可。
總結
本文重點介紹了基於Seq2seq框架的文本生成類模型,對於機器翻譯任務,傳統的attention-seq2seq結構就能獲得不錯的效果,相比於不同的模型結構,充分的訓練數據似乎更為關鍵。而對於文本摘要,對話生成這類任務,序列中更需要包含主題,關鍵實體等特殊信息元,因而融合主題、輸入文本、知識特徵的策略很可能會帶來更多收益。不過,文本生成類任務仍處於初級階段,複雜花哨的結構也許很難達到可觀的效果。因此筆者建議,即便是文本摘要這類任務,仍不妨先試試受眾廣泛的開源實現,諸如gnmt、fairseq、tensor2tensor等。
關於本文提到的一些trick,copy機制的實現有些複雜,並且不少開源項目的copy實現是存在問題的,pointer-generator的效果更好,且實現上更容易,當然,主題和知識特徵的融合也是值得嘗試的技巧。最後,本文沒有過多涉及的強化學習和對抗網路,在文本生成方向上有不少值得借鑒的工作,也可以作為文本生成任務的一個方向考慮。
參考文獻
[1]. Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation
[2]. Sequence to Sequence Learning with Neural Networks
[3]. Neural Machine Translation by Jointly Learning to Align and Translate
[4]. Pointer Networks
[5]. Incorporating Copying Mechanism in Sequence-to-Sequence Learning
[6]. Get To The Point- Summarization with Pointer-Generator Networks
[7]. Generating Natural Answers by Incorporating Copying and Retrieving Mechanisms in Sequence-to-Sequence Learning
[8]. Multi-Source Pointer Network for Product Title Summarization
[9]. Learning to Select Knowledge for Response Generation in Dialog Systems
[10]. Don』t Give Me the Details, Just the Summary! Topic-Aware Convolutional Neural Networks for Extreme Summarization
[11]. A Reinforced Topic-Aware Convolutional Sequence-to-Sequence Model for Abstractive Text Summarization
[12]. MASS: Masked Sequence to Sequence Pre-training for Language Generation
招聘信息
丁香園大數據NLP團隊招聘各類演算法人才,Base杭州。NLP團隊的使命是利用NLP(自然語言處理)、Knowledge Graph(知識圖譜)、Deep Learning(深度學習)等技術,處理丁香園海量醫學文本數據,打通電商、在線問診、健康知識、社區討論等各個場景數據,構建醫學知識圖譜,搭建通用NLP服務。團隊關注NLP前沿技術,也注重落地實現,包括但不僅限於知識圖譜、短文本理解、語義搜索、可解釋推薦、智能問答等。加入我們,讓健康更多,讓疾病更少!
歡迎各位朋友推薦或自薦至 [email protected]
推薦閱讀: