當深度學習遇見自動文字摘要

騰訊雲加社群發表於2019-02-28

歡迎大家前往騰訊雲+社群,獲取更多騰訊海量技術實踐乾貨哦~

本文由columneditor發表於雲+社群專欄

作者:姚均霖

導語 :隨著近幾年文字資訊的爆發式增長,人們每天能接觸到海量的文字資訊,如新聞、部落格、聊天、報告、論文、微博等。從大量文字資訊中提取重要的內容,已成為我們的一個迫切需求,而自動文字摘要(automatic text summarization)則提供了一個高效的解決方案。

介紹

隨著近幾年文字資訊的爆發式增長,人們每天能接觸到海量的文字資訊,如新聞、部落格、聊天、報告、論文、微博等。從大量文字資訊中提取重要的內容,已成為我們的一個迫切需求,而自動文字摘要(automatic text summarization)則提供了一個高效的解決方案。

根據Radev的定義[3],摘要是“一段從一份或多份文字中提取出來的文字,它包含了原文字中的重要資訊,其長度不超過或遠少於原文字的一半”。自動文字摘要旨在通過機器自動輸出簡潔、流暢、保留關鍵資訊的摘要。

自動文字摘要有非常多的應用場景,如自動報告生成、新聞標題生成、搜尋結果預覽等。此外,自動文字摘要也可以為下游任務提供支援。

儘管對自動文字摘要有龐大的需求,這個領域的發展卻比較緩慢。對計算機而言,生成摘要是一件很有挑戰性的任務。從一份或多份文字生成一份合格摘要,要求計算機在閱讀原文字後理解其內容,並根據輕重緩急對內容進行取捨,裁剪和拼接內容,最後生成流暢的短文字。因此,自動文字摘要需要依靠自然語言處理/理解的相關理論,是近幾年來的重要研究方向之一。

自動文字摘要通常可分為兩類,分別是抽取式(extractive)和生成式(abstractive)。抽取式摘要判斷原文字中重要的句子,抽取這些句子成為一篇摘要。而生成式方法則應用先進的自然語言處理的演算法,通過轉述、同義替換、句子縮寫等技術,生成更凝練簡潔的摘要。比起抽取式,生成式更接近人進行摘要的過程。歷史上,抽取式的效果通常優於生成式。伴隨深度神經網路的興起和研究,基於神經網路的生成式文字摘要得到快速發展,並取得了不錯的成績。

本文主要介紹基於深度神經網路的生成式自動文字摘要,著重討論典型的摘要模型,並介紹如何評價自動生成的摘要。對抽取式和不基於深度神經網路的生成式自動文字摘要感興趣的同學可以參考[1][2]。

生成式文字摘要

生成式文字摘要以一種更接近於人的方式生成摘要,這就要求生成式模型有更強的表徵、理解、生成文字的能力。傳統方法很難實現這些能力,而近幾年來快速發展的深度神經網路因其強大的表徵(representation)能力,提供了更多的可能性,在影像分類、機器翻譯等領域不斷推進機器智慧的極限。藉助深度神經網路,生成式自動文字摘要也有了令人矚目的發展,不少生成式神經網路模型(neural-network-based abstractive summarization model)在DUC-2004測試集上已經超越了最好的抽取式模型[4]。這部分文章主要介紹生成式神經網路模型的基本結構及最新成果。

基本模型結構

生成式神經網路模型的基本結構主要由編碼器(encoder)和解碼器(decoder)組成,編碼和解碼都由神經網路實現。

img

編碼器負責將輸入的原文字編碼成一個向量(context),該向量是原文字的一個表徵,包含了文字背景。而解碼器負責從這個向量提取重要資訊、加工剪輯,生成文字摘要。這套架構被稱作Sequence-to-Sequence(以下簡稱Seq2Seq),被廣泛應用於存在輸入序列和輸出序列的場景,比如機器翻譯(一種語言序列到另一種語言序列)、image captioning(圖片畫素序列到語言序列)、對話機器人(如問題到回答)等。

Seq2Seq架構中的編碼器和解碼器通常由遞迴神經網路(RNN)或卷積神經網路(CNN)實現。

基於遞迴神經網路的模型

RNN被稱為遞迴神經網路,是因為它的輸出不僅依賴於輸入,還依賴上一時刻輸出。

img

如上圖所示,t時刻的輸出h不僅依賴t時刻的輸入x,還依賴t-1時刻的輸出,而t-1的輸出又依賴t-1的輸入和t-2輸出,如此遞迴,時序上的依賴使RNN在理論上能在某時刻輸出時,考慮到所有過去時刻的輸入資訊,特別適合時序資料,如文字、語音、金融資料等。因此,基於RNN實現Seq2Seq架構處理文字任務是一個自然的想法。

典型的基於RNN的Seq2Seq架構如下圖所示:

img

圖中展示的是一個用於自動回覆郵件的模型,它的編碼器和解碼器分別由四層RNN的變種LSTM[5]組成。圖中的向量thought vector編碼了輸入文字資訊(Are you free tomorrow?),解碼器獲得這個向量依次解碼生成目標文字(Yes, what`s up?)。上述模型也可以自然地用於自動文字摘要任務,這時的輸入為原文字(如新聞),輸出為摘要(如新聞標題)。

目前最好的基於RNN的Seq2Seq生成式文字摘要模型之一來自Salesforce,在基本的模型架構上,使用了注意力機制(attention mechanism)和強化學習(reinforcement learning)。這個模型將在下文中詳細介紹。

基於卷積神經網路的模型 Seq2Seq同樣也可以通過CNN實現。不同於遞迴神經網路可以直觀地應用到時序資料,CNN最初只被用於影像任務[6]。

img

CNN通過卷積核(上圖的A和B)從影像中提取特徵(features),間隔地對特徵作用max pooling,得到不同階層的、由簡單到複雜的特徵,如線、面、複雜圖形模式等,如下圖所示。

img

CNN的優勢是能提取出hierarchical的特徵,並且能並行高效地進行卷積操作,那麼是否能將CNN應用到文字任務中呢?原生的字串文字並不能提供這種可能性,然而,一旦將文字表現成分散式向量(distributed representation/word embedding)[7],我們就可以用一個實數矩陣/向量表示一句話/一個詞。這樣的分散式向量使我們能夠在文字任務中應用CNN。

img

如上圖所示,原文字(wait for the video and do n`t rent it)由一個實數矩陣表示,這個矩陣可以類比成一張影像的畫素矩陣,CNN可以像“閱讀”影像一樣“閱讀”文字,學習並提取特徵。雖然CNN提取的文字特徵並不像影像特徵有顯然的可解釋性並能夠被視覺化,CNN抽取的文字特徵可以類比自然語言處理中的分析樹(syntactic parsing tree),代表一句話的語法層級結構。

img

基於卷積神經網路的自動文字摘要模型中最具代表性的是由Facebook提出的ConvS2S模型[9],它的編碼器和解碼器都由CNN實現,同時也加入了注意力機制,下文將詳細介紹。

當然,我們不僅可以用同一種神經網路實現編碼器和解碼器,也可以用不同的網路,如編碼器基於CNN,解碼器基於RNN。

前沿

A Deep Reinforced Model for Abstractive Summarization

這是由Salesforce研究發表的基於RNN的生成式自動文字摘要模型,通過架構創新和若干tricks提升模型概括長文字的能力,在CNN/Daily Mail、New York Times資料集上達到了新的state-of-the-art(最佳效能)。

針對長文字生成摘要在文字摘要領域是一項比較困難的任務,即使是過去最好的深度神經網路模型,在處理這項任務時,也會出現生成不通順、重複詞句等問題。為了解決上述問題,模型作者提出了內注意力機制(intra-attention mechanism)和新的訓練方法,有效地提升了文字摘要的生成質量。

img

模型裡應用了兩套注意力機制,分別是1)經典的解碼器-編碼器注意力機制,和2)解碼器內部的注意力機制。前者使解碼器在生成結果時,能動態地、按需求地獲得輸入端的資訊,後者則使模型能關注到已生成的詞,幫助解決生成長句子時容易重複同一詞句的問題。

模型的另一創新,是提出了混合式學習目標,融合了監督式學習(teacher forcing)和強化學習(reinforcement learning)。

首先,該學習目標包含了傳統的最大似然。最大似然(MLE)在語言建模等任務中是一個經典的訓練目標,旨在最大化句子中單詞的聯合概率分佈,從而使模型學習到語言的概率分佈。

img

但對於文字摘要,僅僅考慮最大似然並不夠。主要有兩個原因,一是監督式訓練有參考“答案”,但投入應用、生成摘要時卻沒有。比如t時刻生成的詞是”tech”,而參考摘要中是”science”,那麼在監督式訓練中生成t+1時刻的詞時,輸入是”science”,因此錯誤並沒有積累。但在實際應用中,由於沒有ground truth,t+1時刻的輸入是錯誤的”tech”。這樣引起的後果是因為沒有糾正,錯誤會積累,這個問題被稱為exposure bias。另一個原因是,往往在監督式訓練中,對一篇文字一般只提供一個參考摘要,基於MLE的監督式訓練只鼓勵模型生成一模一樣的摘要,然而正如在介紹中提到的,對於一篇文字,往往可以有不同的摘要,因此監督式學習的要求太過絕對。與此相反,用於評價生成摘要的ROUGE指標卻能考慮到這一靈活性,通過比較參考摘要和生成的摘要,給出摘要的評價(見下文評估摘要部分)。所以希望在訓練時引入ROUGE指標。但由於ROUGE並不可導的,傳統的求梯度+backpropagation並不能直接應用到ROUGE。因此,一個很自然的想法是,利用強化學習將ROUGE指標加入訓練目標。

那麼我們是怎麼通過強化學習使模型針對ROUGE進行優化呢?簡單說來,模型先以前向模式(inference)生成摘要樣本,用ROUGE指標測評打分,得到了對這個樣本的評價/回報(reward)後,再根據回報更新模型引數:如果模型生成的樣本reward較高,那麼鼓勵模型;如果生成的樣本評價較低,那麼抑制模型輸出此類樣本。

img

最終的訓練目標是最大似然和基於ROUGE指標的函式的加權平均,這兩個子目標各司其職:最大似然承擔了建立好的語言模型的責任,使模型生成語法正確、文字流暢的文字;而ROUGE指標則降低exposure bias,允許摘要擁有更多的靈活性,同時針對ROUGE的優化也直接提升了模型的ROUGE評分。

構建一個好的模型,除了在架構上需要有創新,也需要一些小技巧,這個模型也不例外。在論文中,作者使用了下列技巧:

  1. 使用指標處理未知詞(OOV)問題;
  2. 共享解碼器權重,加快訓練時模型的收斂;
  3. 人工規則,規定不能重複出現連續的三個詞。

綜上所述,深度學習+強化學習是一個很好的思路,這個模型第一次將強化學習應用到文字摘要任務中,取得了不錯的表現。相信同樣的思路還可以用在其他任務中。

Convolutional Sequence to Sequence Learning

ConvS2S模型由Facebook的AI實驗室提出,它的編碼器和解碼器都是基於卷積神經網路搭建的。這個模型主要用於機器翻譯任務,在論文發表的時候,在英-德、英-法兩個翻譯任務上都達到了state-of-the-art。同時,作者也嘗試將該模型用於自動文字摘要,實驗結果顯示,基於CNN的Seq2Seq模型也能在文字摘要任務中達到接近state-of-the-art的表現。

模型架構如下圖所示。乍看之下,模型很複雜,但實際上,它的每個部分都比較直觀,下面通過分解成子模組,詳細介紹ConvS2S。

img

首先來看embedding部分。

img

這個模型的embedding比較新穎,除了傳統的semantic embedding/word embedding,還加入了position embedding,將詞序表示成分散式向量,使模型獲得詞序和位置資訊,模擬RNN對詞序的感知。最後的embedding是語義和詞序embedding的簡單求和。

之後,詞語的embedding作為輸入進入到模型的卷積模組。

img

這個卷積模組可以視作是經典的卷積加上非線性變換。雖然圖中只畫出一層的情況,實際上可以像經典的卷積層一樣,層層疊加。

這裡著重介紹非線性變換。

img

該非線性變換被稱為Gated Linear Unit (GLU)[10]。它將卷積後的結果分成兩部分,對其中一部分作用sigmoid變換,即對映到0到1的區間之後,和另一部分向量進行element-wise乘積。

img

這個設計讓人聯想到LSTM中的門結構。GLU從某種程度上說,是在模仿LSTM和GRU中的門結構,使網路有能力控制資訊流的傳遞,GLU在language modeling被證明是非常有效的[10]。

除了將門架構和卷積層結合,作者還使用了殘差連線(residual connection)[11]。residual connection能幫助構建更深的網路,緩解梯度消失/爆炸等問題。

除了使用加強版的卷積網路,模型還引入了帶多跳結構的注意力機制(multi-step attention)。不同於以往的注意力機制,多跳式注意力不僅要求解碼器的最後一層卷積塊關注輸入和輸出資訊,而且還要求每一層卷積塊都執行同樣的注意力機制。如此複雜的注意力機制使模型能獲得更多的歷史資訊,如哪些輸入已經被關注過。

img

像A Deep Reinforced Model for Abstractive Summarization一樣,ConvS2S的成功之處不僅在於創新的結構,還在於細緻入微的小技巧。在ConvS2S中,作者對引數使用了非常仔細的初始化和規範化(normalization),穩定了方差和訓練過程。

這個模型的成功證明了CNN同樣能應用到文字任務中,通過層級表徵長程依賴(long-range dependency)。同時,由於CNN具有可高度並行化的特點,所以CNN的訓練比RNN更高效。比起RNN,CNN的不足是有更多的引數需要調節。

評估摘要

評估一篇摘要的質量是一件比較困難的任務。

對於一篇摘要而言,很難說有標準答案。不同於很多擁有客觀評判標準的任務,摘要的評判一定程度上依賴主觀判斷。即使在摘要任務中,有關於語法正確性、語言流暢性、關鍵資訊完整度等標準,摘要的評價還是如同”一千個人眼裡有一千個哈姆雷特“一樣,每個人對摘要的優劣都有自己的準繩。

自上世紀九十年代末開始,一些會議或組織開始致力於制定摘要評價的標準,他們也會參與評價一些自動文字摘要。比較著名的會議或組織包括SUMMAC,DUC(Document Understanding Conference),TAC(Text Analysis Conference)等。其中DUC的摘要任務被廣泛研究,大多數abstractive摘要模型在DUC-2004資料集上進行測試。

目前,評估自動文字摘要質量主要有兩種方法:人工評價方法和自動評價方法。這兩類評價方法都需要完成以下三點:

  1. 決定原始文字最重要的、需要保留的部分;
  2. 在自動文字摘要中識別出1中的部分;
  3. 基於語法和連貫性(coherence)評價摘要的可讀性(readability)。

人工評價方法

評估一篇摘要的好壞,最簡單的方法就是邀請若干專家根據標準進行人工評定。這種方法比較接近人的閱讀感受,但是耗時耗力,無法用於對大規模自動文字摘要資料的評價,和自動文字摘要的應用場景並不符合。因此,文字摘要研究團隊積極地研究自動評價方法。

自動評價方法

為了更高效地評估自動文字摘要,可以選定一個或若干指標(metrics),基於這些指標比較生成的摘要和參考摘要(人工撰寫,被認為是正確的摘要)進行自動評價。目前最常用、也最受到認可的指標是ROUGE(Recall-Oriented Understudy for Gisting Evaluation)。ROUGE是Lin提出的一個指標集合,包括一些衍生的指標,最常用的有ROUGE-n,ROUGE-L,ROUGE-SU:

  • ROUGE-n:該指標旨在通過比較生成的摘要和參考摘要的n-grams(連續的n個詞)評價摘要的質量。常用的有ROUGE-1,ROUGE-2,ROUGE-3。
  • ROUGE-L:不同於ROUGE-n,該指標基於最長公共子序列(LCS)評價摘要。如果生成的摘要和參考摘要的LCS越長,那麼認為生成的摘要質量越高。該指標的不足之處在於,它要求n-grams一定是連續的。
  • ROUGE-SU:該指標綜合考慮uni-grams(n = 1)和bi-grams(n = 2),允許bi-grams的第一個字和第二個字之間插入其他詞,因此比ROUGE-L更靈活。 作為自動評價指標,ROUGE和人工評定的相關度較高,在自動評價摘要中能給出有效的參考。但另一方面,從以上對ROUGE指標的描述可以看出,ROUGE基於字的對應而非語義的對應,生成的摘要在字詞上與參考摘要越接近,那麼它的ROUGE值將越高。但是,如果字詞有區別,即使語義上類似,得到的ROUGE值就會變低。換句話說,如果一篇生成的摘要恰好是在參考摘要的基礎上進行同義詞替換,改寫成字詞完全不同的摘要,雖然這仍是一篇質量較高的摘要,但ROUGE值會呈現相反的結論。從這個極端但可能發生的例子可以看出,自動評價方法所需的指標仍然存在一些不足。目前,為了避免上述情況的發生,在evaluation時,通常會使用幾篇摘要作為參考和基準,這有效地增加了ROUGE的可信度,也考慮到了摘要的不唯一性。對自動評價摘要方法的研究和探索也是目前自動文字摘要領域一個熱門的研究方向。

總結

本文主要介紹了基於深度神經網路的生成式文字摘要,包括基本模型和最新進展,同時也介紹瞭如何評價自動生成的摘要。自動文字摘要是目前NLP的熱門研究方向之一,從研究落地到實際業務,還有一段路要走,未來可能的發展方向有:1)模仿人撰寫摘要的模式,融合抽取式和生成式模型;2)研究更好的摘要評估指標。希望本文能幫助大家更好地瞭解深度神經網路在自動文字摘要任務中的應用。

Reference

[1] Text Summarization Techniques: A Brief Survey

[2] A Survey on Automatic Text Summarization

[3] Introduction to the Special Issue on Summarization

[4] A Deep Reinforced Model for Abstractive Summarization

[5] Understanding LSTM Networks

[6] LeNet5, convolutional neural networks

[7] What is word embedding in deep learning

[8] A Deep Reinforced Model for Abstractive Summarization

[9] Convolutional Sequence to Sequence Learning

[10] Language Modeling with Gated Convolutional Networks

[11]Deep Residual Learning for Image Recognition

問答

深度學習的原理和具體實現是什麼?

相關閱讀

深度學習角度 | 影像識別將何去何從?

基於深度學習的文字分類?

10分鐘上手,OpenCV自然場景文字檢測(Python程式碼+實現)

【每日課程推薦】機器學習實戰!快速入門線上廣告業務及CTR相應知識

此文已由作者授權騰訊雲+社群釋出,更多原文請點選

搜尋關注公眾號「雲加社群」,第一時間獲取技術乾貨,關注後回覆1024 送你一份技術課程大禮包!

海量技術實踐經驗,盡在雲加社群

相關文章