歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~git
本文由 columneditor發表於 雲+社區專欄做者:姚均霖github
導語 :隨着近幾年文本信息的爆發式增加,人們天天能接觸到海量的文本信息,如新聞、博客、聊天、報告、論文、微博等。從大量文本信息中提取重要的內容,已成爲咱們的一個迫切需求,而自動文本摘要(automatic text summarization)則提供了一個高效的解決方案。算法
隨着近幾年文本信息的爆發式增加,人們天天能接觸到海量的文本信息,如新聞、博客、聊天、報告、論文、微博等。從大量文本信息中提取重要的內容,已成爲咱們的一個迫切需求,而自動文本摘要(automatic text summarization)則提供了一個高效的解決方案。網絡
根據Radev的定義[3],摘要是「一段從一份或多份文本中提取出來的文字,它包含了原文本中的重要信息,其長度不超過或遠少於原文本的一半」。自動文本摘要旨在經過機器自動輸出簡潔、流暢、保留關鍵信息的摘要。架構
自動文本摘要有很是多的應用場景,如自動報告生成、新聞標題生成、搜索結果預覽等。此外,自動文本摘要也能夠爲下游任務提供支持。機器學習
儘管對自動文本摘要有龐大的需求,這個領域的發展卻比較緩慢。對計算機而言,生成摘要是一件頗有挑戰性的任務。從一份或多份文本生成一份合格摘要,要求計算機在閱讀原文本後理解其內容,並根據輕重緩急對內容進行取捨,裁剪和拼接內容,最後生成流暢的短文本。所以,自動文本摘要須要依靠天然語言處理/理解的相關理論,是近幾年來的重要研究方向之一。分佈式
自動文本摘要一般可分爲兩類,分別是抽取式(extractive)和生成式(abstractive)。抽取式摘要判斷原文本中重要的句子,抽取這些句子成爲一篇摘要。而生成式方法則應用先進的天然語言處理的算法,經過轉述、同義替換、句子縮寫等技術,生成更凝練簡潔的摘要。比起抽取式,生成式更接近人進行摘要的過程。歷史上,抽取式的效果一般優於生成式。伴隨深度神經網絡的興起和研究,基於神經網絡的生成式文本摘要獲得快速發展,並取得了不錯的成績。ide
本文主要介紹基於深度神經網絡的生成式自動文本摘要,着重討論典型的摘要模型,並介紹如何評價自動生成的摘要。對抽取式和不基於深度神經網絡的生成式自動文本摘要感興趣的同窗能夠參考1。函數
生成式文本摘要以一種更接近於人的方式生成摘要,這就要求生成式模型有更強的表徵、理解、生成文本的能力。傳統方法很難實現這些能力,而近幾年來快速發展的深度神經網絡因其強大的表徵(representation)能力,提供了更多的可能性,在圖像分類、機器翻譯等領域不斷推動機器智能的極限。藉助深度神經網絡,生成式自動文本摘要也有了使人矚目的發展,很多生成式神經網絡模型(neural-network-based abstractive summarization model)在DUC-2004測試集上已經超越了最好的抽取式模型[4]。這部分文章主要介紹生成式神經網絡模型的基本結構及最新成果。post
基本模型結構
生成式神經網絡模型的基本結構主要由編碼器(encoder)和解碼器(decoder)組成,編碼和解碼都由神經網絡實現。
編碼器負責將輸入的原文本編碼成一個向量(context),該向量是原文本的一個表徵,包含了文本背景。而解碼器負責從這個向量提取重要信息、加工剪輯,生成文本摘要。這套架構被稱做Sequence-to-Sequence(如下簡稱Seq2Seq),被普遍應用於存在輸入序列和輸出序列的場景,好比機器翻譯(一種語言序列到另外一種語言序列)、image captioning(圖片像素序列到語言序列)、對話機器人(如問題到回答)等。
Seq2Seq架構中的編碼器和解碼器一般由遞歸神經網絡(RNN)或卷積神經網絡(CNN)實現。
基於遞歸神經網絡的模型
RNN被稱爲遞歸神經網絡,是由於它的輸出不只依賴於輸入,還依賴上一時刻輸出。
如上圖所示,t時刻的輸出h不只依賴t時刻的輸入x,還依賴t-1時刻的輸出,而t-1的輸出又依賴t-1的輸入和t-2輸出,如此遞歸,時序上的依賴使RNN在理論上能在某時刻輸出時,考慮到全部過去時刻的輸入信息,特別適合時序數據,如文本、語音、金融數據等。所以,基於RNN實現Seq2Seq架構處理文本任務是一個天然的想法。
典型的基於RNN的Seq2Seq架構以下圖所示:
圖中展現的是一個用於自動回覆郵件的模型,它的編碼器和解碼器分別由四層RNN的變種LSTM[5]組成。圖中的向量thought vector編碼了輸入文本信息(Are you free tomorrow?),解碼器得到這個向量依次解碼生成目標文本(Yes, what's up?)。上述模型也能夠天然地用於自動文本摘要任務,這時的輸入爲原文本(如新聞),輸出爲摘要(如新聞標題)。
目前最好的基於RNN的Seq2Seq生成式文本摘要模型之一來自Salesforce,在基本的模型架構上,使用了注意力機制(attention mechanism)和強化學習(reinforcement learning)。這個模型將在下文中詳細介紹。
基於卷積神經網絡的模型 Seq2Seq一樣也能夠經過CNN實現。不一樣於遞歸神經網絡能夠直觀地應用到時序數據,CNN最初只被用於圖像任務[6]。
CNN經過卷積核(上圖的A和B)從圖像中提取特徵(features),間隔地對特徵做用max pooling,獲得不一樣階層的、由簡單到複雜的特徵,如線、面、複雜圖形模式等,以下圖所示。
CNN的優點是能提取出hierarchical的特徵,而且能並行高效地進行卷積操做,那麼是否能將CNN應用到文本任務中呢?原生的字符串文本並不能提供這種可能性,然而,一旦將文本表現成分佈式向量(distributed representation/word embedding)[7],咱們就能夠用一個實數矩陣/向量表示一句話/一個詞。這樣的分佈式向量使咱們可以在文本任務中應用CNN。
如上圖所示,原文本(wait for the video and do n't rent it)由一個實數矩陣表示,這個矩陣能夠類比成一張圖像的像素矩陣,CNN能夠像「閱讀」圖像同樣「閱讀」文本,學習並提取特徵。雖然CNN提取的文本特徵並不像圖像特徵有顯然的可解釋性並可以被可視化,CNN抽取的文本特徵能夠類比天然語言處理中的分析樹(syntactic parsing tree),表明一句話的語法層級結構。
基於卷積神經網絡的自動文本摘要模型中最具表明性的是由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)和新的訓練方法,有效地提高了文本摘要的生成質量。
模型裏應用了兩套注意力機制,分別是1)經典的解碼器-編碼器注意力機制,和2)解碼器內部的注意力機制。前者使解碼器在生成結果時,能動態地、按需求地得到輸入端的信息,後者則使模型能關注到已生成的詞,幫助解決生成長句子時容易重複同一詞句的問題。
模型的另外一創新,是提出了混合式學習目標,融合了監督式學習(teacher forcing)和強化學習(reinforcement learning)。
首先,該學習目標包含了傳統的最大似然。最大似然(MLE)在語言建模等任務中是一個經典的訓練目標,旨在最大化句子中單詞的聯合機率分佈,從而使模型學習到語言的機率分佈。
但對於文本摘要,僅僅考慮最大似然並不夠。主要有兩個緣由,一是監督式訓練有參考「答案」,但投入應用、生成摘要時卻沒有。好比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較高,那麼鼓勵模型;若是生成的樣本評價較低,那麼抑制模型輸出此類樣本。
最終的訓練目標是最大似然和基於ROUGE指標的函數的加權平均,這兩個子目標各司其職:最大似然承擔了創建好的語言模型的責任,使模型生成語法正確、文字流暢的文本;而ROUGE指標則下降exposure bias,容許摘要擁有更多的靈活性,同時針對ROUGE的優化也直接提高了模型的ROUGE評分。
構建一個好的模型,除了在架構上須要有創新,也須要一些小技巧,這個模型也不例外。在論文中,做者使用了下列技巧:
綜上所述,深度學習+強化學習是一個很好的思路,這個模型第一次將強化學習應用到文本摘要任務中,取得了不錯的表現。相信一樣的思路還能夠用在其餘任務中。
Convolutional Sequence to Sequence Learning
ConvS2S模型由Facebook的AI實驗室提出,它的編碼器和解碼器都是基於卷積神經網絡搭建的。這個模型主要用於機器翻譯任務,在論文發表的時候,在英-德、英-法兩個翻譯任務上都達到了state-of-the-art。同時,做者也嘗試將該模型用於自動文本摘要,實驗結果顯示,基於CNN的Seq2Seq模型也能在文本摘要任務中達到接近state-of-the-art的表現。
模型架構以下圖所示。乍看之下,模型很複雜,但實際上,它的每一個部分都比較直觀,下面經過分解成子模塊,詳細介紹ConvS2S。
首先來看embedding部分。
這個模型的embedding比較新穎,除了傳統的semantic embedding/word embedding,還加入了position embedding,將詞序表示成分佈式向量,使模型得到詞序和位置信息,模擬RNN對詞序的感知。最後的embedding是語義和詞序embedding的簡單求和。
以後,詞語的embedding做爲輸入進入到模型的卷積模塊。
這個卷積模塊能夠視做是經典的卷積加上非線性變換。雖然圖中只畫出一層的狀況,實際上能夠像經典的卷積層同樣,層層疊加。
這裏着重介紹非線性變換。
該非線性變換被稱爲Gated Linear Unit (GLU)[10]。它將卷積後的結果分紅兩部分,對其中一部分做用sigmoid變換,即映射到0到1的區間以後,和另外一部分向量進行element-wise乘積。
這個設計讓人聯想到LSTM中的門結構。GLU從某種程度上說,是在模仿LSTM和GRU中的門結構,使網絡有能力控制信息流的傳遞,GLU在language modeling被證實是很是有效的[10]。
除了將門架構和卷積層結合,做者還使用了殘差鏈接(residual connection)[11]。residual connection能幫助構建更深的網絡,緩解梯度消失/爆炸等問題。
除了使用增強版的卷積網絡,模型還引入了帶多跳結構的注意力機制(multi-step attention)。不一樣於以往的注意力機制,多跳式注意力不只要求解碼器的最後一層卷積塊關注輸入和輸出信息,並且還要求每一層卷積塊都執行一樣的注意力機制。如此複雜的注意力機制使模型能得到更多的歷史信息,如哪些輸入已經被關注過。
像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數據集上進行測試。
目前,評估自動文本摘要質量主要有兩種方法:人工評價方法和自動評價方法。這兩類評價方法都須要完成如下三點:
人工評價方法
評估一篇摘要的好壞,最簡單的方法就是邀請若干專家根據標準進行人工評定。這種方法比較接近人的閱讀感覺,可是耗時耗力,沒法用於對大規模自動文本摘要數據的評價,和自動文本摘要的應用場景並不符合。所以,文本摘要研究團隊積極地研究自動評價方法。
自動評價方法
爲了更高效地評估自動文本摘要,能夠選定一個或若干指標(metrics),基於這些指標比較生成的摘要和參考摘要(人工撰寫,被認爲是正確的摘要)進行自動評價。目前最經常使用、也最受到承認的指標是ROUGE(Recall-Oriented Understudy for Gisting Evaluation)。ROUGE是Lin提出的一個指標集合,包括一些衍生的指標,最經常使用的有ROUGE-n,ROUGE-L,ROUGE-SU:
本文主要介紹了基於深度神經網絡的生成式文本摘要,包括基本模型和最新進展,同時也介紹瞭如何評價自動生成的摘要。自動文本摘要是目前NLP的熱門研究方向之一,從研究落地到實際業務,還有一段路要走,將來可能的發展方向有:1)模仿人撰寫摘要的模式,融合抽取式和生成式模型;2)研究更好的摘要評估指標。但願本文能幫助你們更好地瞭解深度神經網絡在自動文本摘要任務中的應用。
[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 送你一份技術課程大禮包!
海量技術實踐經驗,盡在雲加社區!