自動文摘(Automatic document summarization)方法綜述(四)——基於神經網路的(neural summarization)方法
前三篇部落格(一)、(二)、(三)總結了抽取式自動文摘的一些經典方法,傳統抽取式自動文摘方法將文件簡單地看作是一組文字單元(短語、句子等)的集合,忽略了文件所表達的全域性語義,難免“斷章取義”。隨著算力的提升,深度學習在很多應用中非常的火熱也取得了state-of-the-art的效能,因此,將神經網路模型引入自動文摘任務是理所當然的,將文件用神經網路模型進行表示被稱為神經文件模型(neural document model),neural document model採用低維連續向量表示文件語義資訊非常有效。這篇部落格將介紹幾種經典的neural document model。
1、DocRebuild
該模型是北京大學發表在COLING2016上的一篇文章中提出來的,通過一個neural document model將文件用摘要句進行重構,同時保證選取的摘要句最小化重構誤差(construction error)。
An Unsupervised Multi-Document Summarization Framework Based on Neural Document Model
在模型中,文件集中每一篇文件用neural document model表示,然後取平均作為文件集內容的表示。文件集內容重構包括:1)選取摘要句,並將摘要句用文件模型進行表示。2)計算重構誤差。因此,多文件摘要任務轉化成最優化問題,目標函式是最小化重構誤差,選擇的摘要句需滿足這個誤差最小。下圖展示了DocRebuild的框架:
① neural document model是該框架的基礎,直接決定了模型的效能。文中作者分別採用了兩種非監督文件模型:Bag-of-Words(BoW)和Paragraph Vector(PV)。在BoW中,作者簡單採用詞袋模型,沒有考慮單詞之間的順序和關係,每一個單詞被表示成相應的word embedding,文件被表示成成單詞向量的加權平均。PV模型是另一種文件模型,考慮了單詞順序。具體的可以參考word2vec和Paragraph Vector的論文。
② 在定義目標函式之前,需要定義如下符號:表示多文件集,中的文件都被處理成句子集合。表示候選句子集。表示摘要句子集,滿足,。表示摘要長度限制。重構誤差通過摘要向量和文件向量之間的距離衡量:
其中,表示文件模型處理過程,表示相應的摘要序列,表示摘要序列的長度。
③ 選擇最優摘要集是一個NP-hard問題,在文中,作者提出了兩種策略用於句子選擇的效率和有效性。
句子過濾這個策略主要用於縮減搜尋空間,通過過濾掉無關的噪聲句,保留最有價值的句子作為候選句(candidate set),同時刪除噪聲句也有助於文件表示。具體地,作者首先對句子進行排序然後選取top-ranked句子作為候選。
BeamSearch Algorithm為了提高搜尋效率,作者提出了BeamSearch演算法,演算法的虛擬碼如下:
2、NN-SE
該模型由Cheng和Lapata在ACL 2016上提出:Neural Summarization by Extracting Sentences and Words。該論文中既提出了句子基於句子抽取的模型NN-SE,也提出了基於單詞抽取的模型NN-WE,本部落格中只討論NN-SE。在判斷一個句子是否屬於摘要句時,傳統方法依靠的是人工構建的特徵。這篇文章中,作者提出了一個基於神經網路和連續句子特徵的資料驅動方法。基於神經網路的方法的核心是一個encoder-decoder結構,encoder讀取源序列並編碼成一個連續向量,然後decoder從中生成目標序列。在decoder階段,注意力機制(attention mechanism)通常被用來定位焦點區域(locate the focus)。
問題描述 對一篇文件,基於句子抽取的自動文摘希望選取一個包含個句子的子集形成摘要。我們可以對中每一個句子打分,然後預測一個標籤指示其是否屬於摘要句。對於有監督學習,目標函式可以設定為最大化所有句子標籤的似然:
NN-SE的關鍵成分包括一個基於神經網路的層次文件讀取器(document reader)和一個基於注意力的層次內容抽取器(content extractor)。層次結構天然符合文件由單詞、句子、段落甚至更大的單元合成。
Document Reader
作者首先採用一個單層卷積神經網路(CNN)和max-pooling操作獲得句子級的向量表示。之後,採用一個標準的迴圈神經網路(RNN)建立文件向量表示。Convolutional Sentence Encoder採用CNN進行句子表示主要有兩個原因:①單隱層神經網路能夠高效訓練(沒有長期依賴);②CNN已經被成功地應用到句子級的分類任務中。假設表示word embedding的維度,表示文件中的句子,因此一個句子可以表示成一個稠密矩陣。接著就可以採用一個寬度為的卷積核
其中表示矩陣的哈達馬積(乘積)並求和所有元素。表示第個特徵圖的第個元素,是偏置。採用最大池化操作獲得一個單一特徵(第個特徵):
實踐中,在每個卷積核上,作者採用多個特徵圖計算了個特徵,作為句子向量。同時,作者也採用了多個不同寬度的卷積核得到多個句子向量。最後,這些句子向量累加作為最終的句子表示。如下圖sentence encoder階段所示
Recurrent Document Encoder在文件級別,作者採用了一個迴圈神經網路組合句子向量序列為一個文件向量。迴圈神經網路作者採用的是LSTM,假設一篇文件表示為,在時刻隱藏層計算如下: