什么是文本摘要?為什么要有注意力機制?
什么是NLP中的文本摘要
自動文本摘要是在保持關鍵信息內(nèi)容和整體含義的同時,生成簡潔流暢的摘要的任務。 文本摘要目前大致可以分為兩種類型:
Extractive Summarization:重要內(nèi)容、語句提取。
Abstractive Summarization:文本總結(jié)。
Extractive Summarization
由圖可以看出,這種方法提取的內(nèi)容語句來自于原文。
Abstractive Summarization
由圖可以看出,這種方法提取的內(nèi)容語句可能不存在于原文。
Seq2Seq模型
Seq2Seq模型可以處理一切連續(xù)型信息,包括情感分類,機器翻譯,命名實體識別等。 機器翻譯任務中,輸入是連續(xù)文本序列,輸出也是連續(xù)文本序列。 命名實體識別中,輸入是連續(xù)文本序列,輸出是連續(xù)的標簽信息。 所以,我們可以利用Seq2Seq模型,通過輸入一段長文本,輸出短的摘要,實現(xiàn)文本摘要功能。 下圖是典型的Seq2Seq模型架構(gòu):
通常我們可以選擇RNNs網(wǎng)絡的變體GRU或者LSTM,這是因為它們能夠通過克服梯度消失的問題來捕獲長期依賴性。
Encoder編碼器
LSTM中的Encoder讀取整個輸入序列,其中每個時間step上,都會有一個字輸入編碼器。然后,他在每個時間step上處理信息,并捕獲輸入序列中存在的上下文信息。
上一個時間step的隱藏層h1與記憶單元層c1將會用來初始化Decoder。
Decoder解碼器
Decoder是LSTM結(jié)構(gòu)的另一部分。它逐字讀取整個目標序列,并以一個時間步長預測相同的序列偏移量。 解碼器可以在給定前一個單詞的情況下預測序列中的下一個單詞。解碼器的初始輸入是編碼器最后一步的結(jié)果。
在將整個目標序列放入解碼器前,還需將[start] 與 [end]這兩個特殊的tokens加入序列中,告知模型的開始與結(jié)束。模型通過輸入的[start]開始預測第一個詞,而[end]則表示整個句子的結(jié)束。
Deocder的工作流程
假設輸入序列為[x1,x2,x3,x4],將其編碼成內(nèi)部固定長度的向量。 下圖顯示了每一個time step下Decoder是如何工作的。
