• 沒有找到結果。

2. 文獻探討

2.4. 深層學習摘要技術

有鑒於深層學習的蓬勃發展,現今的技術大多是以深層類神經網路架構為主。深 層學習主要是模擬人類之學習模式,將深層類神經網路架構視為人類大腦神經系 統,並輔以大量資料進行訓練,使其能夠學習如何解決該研究問題。其架構中主 要學習的是輸入與輸出之間的關係,藉由將不同的輸入樣本投影至相同的空間中,

我們即可在該空間中將每個輸入樣本對應至正確的輸出,進而得到正確的結果。

因此後續之文獻探討將以深層學習方法為主。

2.4.1. 節錄式摘要方法

在節錄式文件摘要任務中,我們通常可以將其視為分類問題,因為我們要判斷文 件中的語句「是否」為摘要。而分類問題在深層學習技術中是最基本的問題,但 是節錄式摘要任務還是有相當的難度,因為除了簡單的分類外,我們還需理解並 解析出文件的重要資訊,才能知道哪些語句有機會成為摘要。

[Cheng and Lapata, 2016] 將節錄式摘要任務視為一種序列標記及排序問題,

其 方 法 主 要 的 特 色 在 於 使 用 一 階 層 式 編 碼 器 和 含 有 注 意 力 機 制(Attention mechanism)的解碼器。階層式的編碼器有兩層,第一層為摺積式類神經網路 (Convolutional neural networks, CNNs),是參考[Kim, 2014]的方法,使用 CNN 計 算語句的向量表示;第二層為遞迴式類神經網路(Recurrent neural networks, RNNs),

將語句向量做為每個時間點的輸入,而將最後一個時間點的輸出視為文件的向量 表示。此作法對於較長的文章而言是相當有效的,因為文章過長時,若單使用一 個RNN,則有可能會遺失掉許多重要的資訊。最後透過另一個 RNN 對每個語句 進行標記,並使用預測出的分數進行排序,進而得到最後的摘要成果。此外,

[Cheng and Lapata, 2016]還嘗試用節錄式的方法模擬出重寫式摘要,與前述標記 語句的不同,主要是從原文件中挑選單詞後組合成摘要句,而生成之摘要相當不 符合文法性也不通順,不過關鍵詞彙基本上都能涵蓋。以此得知,[Cheng and

Lapata] 的 方 法 在 語 言 理 解 (Language understanding) 及 資 訊 擷 取 (Information extraction)有不錯的成效。

除了[Cheng and Lapata, 2016]同時進行節錄式摘要與重寫式摘要的研究外,

[Nallapati et al., 2017]提出的 SummaRuNNer 亦嘗試生成重寫式摘要。與[Cheng and Lapata, 2016]不同之處在於 SummaRuNNer 在節錄式摘要任務上,並非使用編碼-解碼器架構,僅是單純地建立兩層雙向 RNN 後便判斷語句標記為何。相似之處 在於其 RNN 也是階層式的架構,第一層輸入為詞彙向量,第二層則是第一層輸 出所得之語句向量。此種作法中使用的參數量較少,因此收斂速度也較為快速。

除了節錄式摘要任務外,[Nallapati et al., 2017]也嘗試將最後一層預測標記,改為 一個簡易解碼器用於重寫式摘要任務。此外,由於摘要任務使用之資料集一般是 沒有摘要標記的,[Nallapati et al., 2017]提出一種貪婪法對每個語句標記摘要,這 個方法能夠找到較好的摘要組合而非只是找單獨比對每句的重要性,亦有許多學 者嘗試將此方法用於自身的任務上。

隨著近幾年強化學習(Reinforcement learning)的熱潮,亦有學者將強化學習應 用於節錄式摘要任務上,[Narayan et al., 2018a]為了解決前述之節錄式摘要沒有正 確摘要標記的情況,因此加入強化學習。其主要架構是改良自[Cheng and Lapata, 2016],不同之處在於其在第二層編碼器的語句輸入是以倒序方式輸入,因為大多 數文件通常會將主旨置於較前面的段落,再加上 RNN 比較容易記得後面時間點 資訊的特性,此方式能夠將重要資訊更清楚記得。[Narayan et al., 2018a]所使用的 強化學習方法,是最基礎的策略梯度(Policy gradient),也就是透過計算得之獎勵 (Reward)分數與模型訓練梯度加成,使其能夠往我們期待的方向進行訓練。

[Narayan et al., 2018a]所使用的獎勵分數是使用預測摘要與標準摘要的評估分數,

而此方法讓模型收斂速度增加,同時也提升準確度,是一項跳躍性地成長。

然而,對於節錄式摘要任務來說,模型對文件的理解應該要能達到支撐後續 分類摘要語句的程度,意即模型所得之文件向量表示應完整涵蓋文件主旨。根據 不同的撰寫方式,文件主旨可能分散於文件的不同部分,除去文件主旨的段落,

文件的其他部分應為支持主旨的相關論述。如何讓模型可以準確地理解文件主題 呢?[Ren et al., 2017]針對此議題提出一個有效的方法,其在產生語句向量表示時,

亦將前面的語句以及後面的語句與該句的相關性串接,同時放入一些與該句相關 的人工特徵(語句長度、位置等),使得分類時能使用更具語意的語句向量。此方 法之架構相當大,但得到之摘要效果也相當不錯。不過從實驗分析可以發現對於 摘要結果有較多貢獻的部分大多在於人工特徵上,以此我們可以推論,類神經網 路的學習仍需人工特徵輔助方可更加提升成效。

單單只讓類神經網路架構自動學習語句或文件向量表示的效果仍有限,若能 加入一些相關的額外資訊輔助訓練,可以讓我們的方法更深入地學習到文件重要 資訊。[Narayan et al., 2018b]提出在摘要方法中參考文件的標題資訊,可以讓我們 的方法更快速地找到文件的主旨,而以此得到的文件向量表示也較能涵蓋文件主 旨,因而能提升摘要的成效。而[Narayan et al., 2018b]主要用的基本架構是由 [Narayan et al., 2018a]變化而成,差異在於其將額外資訊向量與語句向量共同用於 判斷是否為摘要。此方法更是驗證類神經網路架構有額外資訊輔助能學習更好。

2.4.2. 重寫式摘要方法

[Rush et al., 2015] 是最早將類神經網路架構應用於重寫式摘要的研究,其主要的 架構是改良至 [Bahdanau et al., 2014] 提出的編碼解碼器 (Encoder-Decoder) 與注 意力機制,亦稱之為序列對序列模型,並應用於重寫式摘要任務。注意力機制能 讓輸入文件內容與輸出摘要中的文字作一個對應,能找到文件與摘要中詞彙間的 關係。[Rush et al., 2015] 的架構與 [Bahdanau et al., 2014] 不同之處在於其並非使 用遞迴式類神經網路作為編碼器與解碼器,而是使用最基本的前向式類神經網路 (Feed-forward Neural Networks) 結合注意力機制作為其編碼器,而解碼器則是基 於 [Bengio et al., 2013] 提出的 NNLM 變化。此方法在語句摘要 (Sentence Summarization) 任務上得到相當優異的成效,因此也證實類神經網路能夠適用於 重寫式摘要任務上。

隨著深層學習的快速發展,遞迴式類神經網路在序列相關任務上的成功亦漸 漸廣為人知,因此[Chopra et al., 2016] 則提出一個遞迴式類神經網路的編碼解碼 器架構,應用於語句摘要任務上。此方法主要是 [Rush et al., 2015] 的延伸,其編 碼器使用摺積式類神經網路,而解碼器則使用長短期記憶 (Long Short-Term Memory, LSTM) [Hochreiter and Schmidhuber, 1997] 單元作為遞迴式類神經網路 的基本單元。LSTM 是 遞迴式類神經網路演變的架構,因其具有三個閘門: 輸入 閘 (input gate)、遺忘閘 (forget gate) 及輸出閘 (output gate),以及一個記憶單元 (memory cell),所以可以改善消失的梯度(Vanishing Gradient)問題,同時透過不斷 更新記憶單元,能保留更多重要資訊,不會隨著時間太長而遺忘以前的資訊。

與此同時,[Nallapati et al., 2016] 從 [Rush et al., 2015] 和 [Chopra et al., 2016] 發 想出許多架構,同時也解決許多重寫式摘要潛在的問題。基本的架構是跟 [Bahdanau et al., 2014] 提出的序列對序列模型相似,同時也加入注意力機制,而 與 [Chopra et al., 2016] 不同之處則是在於其編碼器與解碼器皆使用遞迴式類神 經網路,且使用 [Cho et al., 2014] 提出的 Gated Recurrent Unit (GRU) 而非 LSTM,

GRU 同樣具有閘門,但是僅有兩個,且沒有額外的記憶單元,但是整體的記憶效 果是一樣的,訓練參數量減少很多,可以比LSTM 更快速地建構和訓練。[Nallapati et al., 2016] 中提到在語言生成時會遇到未知詞 (Out-of-vocabulary, OOV) 問題,

為了解決此問題,加入Large Vocabulary Trick (LVT)[Jean et al., 2014],此技術是 對每小批 (mini-batch) 訓練資料建立單獨的解碼用詞典,因此能夠讓詞典不會太 大,同時又能在訓練的時候減少發生未知詞問題。除了基本架構外,還提出三種 改良的版本,第一種是在輸入時加入一些額外的特徵,如:詞性、詞頻等;第二 種則是在解碼器生成詞彙之前,加入一個控制器,控制解碼器是否要生成新詞或 從輸入文件複製,此一機制是參考 [Vinyals et al., 2015] 提出的 Pointer Network 架 構,當文件中有專有名詞出現時,但解碼器的詞典中可能沒有該詞彙,就需要從 輸入資料中複製使用;最後則是將編碼器改成階層式的編碼器,一般的編碼器輸 入都是整篇文章的每個詞彙,不考慮語句的分界,而階層式編碼器第一層的輸入

一樣是整篇文章的每個詞彙,當遇到每個語句的結尾詞時,就會將此時的輸出向 量視為語句的向量表示,並作為第二層的輸入,也就是說,第二層的輸入是文章 中的語句,這種方法能夠得到更細部的文件資訊,也使得產生之摘要內容較符合 文章主旨。

雖然在 [Nallapati et al., 2016] 已經有嘗試將 Pointer Network 的想法結合進模 型中,但是此種方法過於強硬,因為此控制器得到的結果僅能二選一。因此 [See et al., 2017] 提出的架構能有效的解決此狀況,此篇研究提出的方法是以同時進行 產生新詞與選取原有詞彙的動作,最後利用一機率值簡單線性結合兩者所得到的 機率分佈,以此得到最終的詞典機率分佈,詞典中包含解碼詞典與輸入文件的詞 彙。此外,[See et al., 2017]亦提出一種 Coverage 機制,此機制主要是為了解決在 語言生成任務上容易出現 OOV 和重複詞的問題,其在每個時間點會將以前時間 點得到的注意力分佈加總後作為一coverage 向量,維度大小為編碼器的時間點數 量,而後在當前時間點會參考此向量計算注意力分佈,同時也會將此向量和注意 力分佈進行比較,找出每個維度最小值後加總便得到一coverage 損失,之後會做 為訓練時使用的懲罰值,讓模型可以將重複詞的機率降低。此研究所得到的摘要 效果比以往的重寫式摘要優異許多,而實驗結果亦顯示摘要成果比較偏向於節錄

雖然在 [Nallapati et al., 2016] 已經有嘗試將 Pointer Network 的想法結合進模 型中,但是此種方法過於強硬,因為此控制器得到的結果僅能二選一。因此 [See et al., 2017] 提出的架構能有效的解決此狀況,此篇研究提出的方法是以同時進行 產生新詞與選取原有詞彙的動作,最後利用一機率值簡單線性結合兩者所得到的 機率分佈,以此得到最終的詞典機率分佈,詞典中包含解碼詞典與輸入文件的詞 彙。此外,[See et al., 2017]亦提出一種 Coverage 機制,此機制主要是為了解決在 語言生成任務上容易出現 OOV 和重複詞的問題,其在每個時間點會將以前時間 點得到的注意力分佈加總後作為一coverage 向量,維度大小為編碼器的時間點數 量,而後在當前時間點會參考此向量計算注意力分佈,同時也會將此向量和注意 力分佈進行比較,找出每個維度最小值後加總便得到一coverage 損失,之後會做 為訓練時使用的懲罰值,讓模型可以將重複詞的機率降低。此研究所得到的摘要 效果比以往的重寫式摘要優異許多,而實驗結果亦顯示摘要成果比較偏向於節錄

相關文件