【paper reading】基於重編輯機制的文本生成算法

今天分享一篇基於重編輯機制的文本生成論文
paper:Paper Abstract Writing through Editing Mechanism(發表於ACL2018)
code:源碼

概述:這篇論文解決的問題是使用paper的title來生成abstract。論文使用了一種重編輯機制(參考人類寫論文的過程:先寫一個草稿出來,再不斷的修改),是一個信息量由少到多的過程。

本次分享希望能讓你:

  1. 瞭解重編輯機制的工作原理;
  2. 學會編寫主體框架。

1. 模型總體框架

1.1 encode-decode框架

encoder-decoder模型,也就是編碼-解碼模型。所謂編碼,就是將輸入序列轉化成一個固定長度的向量;解碼,就是將之前生成的固定向量再轉化成輸出序列。
在這裏插入圖片描述

1.2 Model Overview

在這裏插入圖片描述

2. 模型細節

論文主要包括兩部分:撰寫網絡和編輯網絡。
撰寫網絡:使用title作爲輸入,生成初稿;
編輯網絡:聯合title和初稿作爲輸入,多次編輯生成終稿。

2.1 Writing Network

在這裏插入圖片描述
在這裏插入圖片描述
兩張圖的紅框處表示對title進行encode編碼;
藍框處表示對初稿進行encode編碼;
綠框處表示解碼輸出。

2.2 Editing Network

在這裏插入圖片描述
在這裏插入圖片描述
即前文的self.decoder函數
紅框:單向解碼;
藍框:對title的encode結果與解碼器輸出做attention;
綠框:對初稿的encode結果與解碼器輸出做attention;
黃框:對上述兩個attention結果做一個基於注意力的修改門(控制要修改哪一部分)

2.3 注意力機制

對注意力機制不瞭解的,可以看一下這篇論文(開山之作,soft-alignment attention):
Neural Machine Translation By Jointly Learning To Align and Translate.
在這裏插入圖片描述

2.3.1 本文使用的方法

在這裏插入圖片描述
因爲encoder部分爲雙向RNN,假設隱藏層變量維度爲512維,那麼encoder之後的變量維度爲1024(雙向);
因此,decoder部分的隱藏層變量必須設爲1024維,以滿足上述要求。

2.3.2 Attentive Revision Gate

這部分是對上述兩個attention結果做一個基於注意力的修改門(控制要修改哪一部分),類似於GRU的門控結構:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

2.4. 重編輯機制

這裏的重編輯是指,每一次編輯都計算一次損失,比如設置編輯次數爲3,那麼計算一個樣本可以得到三個Loss,分別對應第一,二,三次編輯:
在這裏插入圖片描述

3. 結果分析

Datasets: 10,874 paper title and abstract pairs.
We randomly dividing them into training (80%),
validation (10%), and testing (10%) sets.
在這裏插入圖片描述
小聲BB:其實感覺提升不是很明顯,不過人工驗證部分確實要好很多,說明更符合人的觀感。
個人想法:我在自己的數據集上測試過(不同任務),效果不太好。這麼小的數據量,扔到預訓練模型中進行fine-tune是更好的方法。不過本文是18年提出來的,那時候bert家族還沒有大行其道,這種方法也不失爲一種好的改進。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章