基於層次過濾的文本生成

2021-02-15 PaperWeekly

©PaperWeekly 原創 · 作者|鄧雲天

學校|哈佛大學計算機系博士生

研究方向|自然語言處理

論文標題:Cascaded Decoding with Markov Transformers論文連結:https://arxiv.org/abs/2006.01112論文代碼:https://github.com/harvardnlp/cascaded-generation

引言目前文本生成最常用的算法基於 fully autoregressive 模型,比如 RNN 和 transformer。在 fully autoregressive 模型中,生成下一個詞的概率取決於之前所有的詞。給定一個 fully autoregressive 模型,文本生成通常使用 beam search 從左到右搜索概率最大的句子。但由於 beam search 是一個順序的過程,我們無法在 GPU 上進行並行加速。近年來,為了加速文本生成,Gu et al 2017 提出了 non-autoregerssive 模型。在 non-autoregressive 模型中,不同位置的詞的生成是相互獨立的,因此可以使用 GPU 同時生成所有詞。但是這個獨立假設太強,經常導致一些明顯的問題,比如重複生成相同的詞。我們指出 non-autoregressive 模型是並行生成的充分但不必要條件。如果我們考慮 m 階 Markov 模型的概率分布(每個詞的概率取決於過去 m 個詞稱為 m 階 Markov 模型),那麼從這個分布中採樣也是可以並行計算的(Rush et al 2020),而 non-autoregressive 模型只是 0 階 Markov 模型的特殊情況。在這個工作中,我們利用這個有限階數 Markov 模型的性質提出 cascaded decoding(Weiss et al 2010)。Cascaded decoding 的核心是從 0 階 Markov 模型開始,逐漸引入高階 Markov 模型,從而逐步縮小搜索空間。

為了支持這個搜索算法,我們需要一組不同階數的 Markov 模型。為此我們提出 transformer 的一個變種 Markov transformer,由此通過一個 Markov transformer 實現一組不同階數的 Markov 模型。

值得一提的是,我們方法的速度與 non-autorgressive 方法相當,並且能夠同時考慮到不同位置的詞之間的關聯從而達到很好的生成質量。

搜索算法:Cascaded Decoding

我們用 Conditional Random Field (CRF)來描述文本生成模型

最後,我們使用一個 2 階的 Markov 模型

我們重複上述過程的次數越多,就能使用越高階的模型從而更接近 fully autoregressive 模型。在最後的縮小的解空間裡,我們可以使用動態算法去找出最可能的一句話。

在上面的過程中,我們用到了每個位置「最可能」的 n-gram,這個「最可能」的評判方式有很多,比如每個 n-gram 的 marginal probability,但我們實際使用的是 max-marginal(Weiss et al 2020),具體細節參見我們的論文。

變長生成 

目前為止我們假定已知生成序列的長度,但實際應用中我們很難準確預測生成序列的長度,因此我們提出一個可以同時考慮不同可能長度的算法。我們先估計一個最大長度,然後在搜索中考慮所有比這個最大長度短的序列。

這種變長搜索在 CRF 中的實現非常簡單:我們只需要在詞表中引入一個佔位字符 pad,同時改寫 log potential 使得句尾 eos 和 pad 的下一個詞必須為 pad,那麼我們在生成時只需要使用一個最大長度,就可以同時考慮不同長度的句子:不同長度的句子只是句尾 pad 的個數不同而已,但 pad 的存在不會影響分數。

下表中我們展示一個 cascaded decoding 和變長生成的例子,這裡我們考慮最大長度 8,並使用

首先,我們使用一個 0 階模型,並在下表中展示出每個位置最可能的 unigram。如果我們只使用一個 0 階模型(non-autoregressive),那麼得到的解將會是「an amzing woman woman eos」(第一行),重複了單詞「woman」,這也是 non-autoregressive 模型的常見問題。

在我們的算法中,之後引入的高階模型可以修正這個問題。這裡一個小細節是我們限制最後一個單詞為佔位字符 pad,以確保每句話都有結束符 eos(end-of-sentence)。

下一步,我們使用一個 1 階模型,並在下表中展示出每個位置最可能的 bigram。現在已經修正了之前的重複問題:按照第一行的最可能 bigram,最可能的解已經是「an amazing women . eos pad pad pad」。

同時注意到由於佔位字符 pad 的存在,我們可以考慮長度小於最大長度 8 的句子,這在很多其他的 non-autoregressive 工作中是很難做到的。

然後,我們使用一個 2 階模型,並在下表中展示出每個位置最可能的 trigram。

我們可以重複上述過程來引入越來越高階的模型,最後使用動態算法得到最可能的解。

並行化 

計算不同位置 log potential 的過程是互相獨立的,因此我們可以使用 GPU 並行計算所有位置的 log potential。除了 log potential 外,另一個問題是如何並行計算我們使用的過濾 n-gram 的指標 max-marginal。

實際上,Rush et al 2020 中已經指出 CRF 中的 max-marginal 和 marginal 都可以使用並行的動態算法計算,核心思路是建一個以句子的每個位置為葉子節點的二叉樹並從下向上再從上到下計算,而不像傳統的動態算法那樣從句子的最左到最右再從右至左。這個算法已經在 torch-struct [6] 包裡實現。

我們前面使用了很多不同階的 Markov 模型,然而實際上我們可以修改 transformer 的訓練過程,使一個 transformer 可以被當做不同階的 Markov 模型使用,即 Markov transformer。

這裡的核心思路是:如果在訓練時每 M 個單詞就重置 transformer 的 hidden state,並隨機選擇第一個重置位置,那麼 transformer 就可以在測試中被當做任何小於 

在上圖中,綠色分割線代表重置 hidden state(在 transformer 中我們只需要要求灰色線條表示的 self attention 不穿過分割線即可,同時我們使用空白字符 

第 1、4、7 個位置的輸出沒有使用任何其他單詞的信息,因此相當於使用了 0 階模型;第 2、5、8 個位置的輸出使用了前一個單詞,因此相當於使用了 1 階模型;第 3、6、9 個位置的輸出使用了前兩個單詞,因此相當於使用了 2 階模型。

綜上,這個模型在測試時可以在任何位置被當做 0 階、1 階或者 2 階模型使用。(我們需要隨機選擇第一個重置位置,否則比如上圖中第 3 個位置無法被用作 0 階或者 1 階模型)。

實驗結果與分析

使用 knowledge distillation,我們在 WMT14 En-De 上可以達到常規的 fully autoregressive transformer 速度的 2.4 倍,BLEU 只低 0.5。在 IWSLT14 De-En 上,我們的速度是 transformer 的 5.88 倍速度,BLEU 只損失 0.54。這個 BLEU 分數比去年的 FlowSeq(Ma et al 2019)高 6 分。

與 beam search 相比,cascaded decoding的另一個優勢是在搜索過程中考慮了非常多的序列。雖然每個位置只考慮了

Beam search 在文本生成中的地位幾十年來未被撼動。我們提出一種新的文本生成搜索算法 cascaded decoding,不僅形式簡潔優美,而且性能優異。Cascaded decoding 可以衍生出很多新的研究方向,比如我們可以進行長文本生成,或者引入 latent variable 去考慮全局信息以彌補目前算法只能考慮局部關聯的不足。

此外,我們提出的 Markov transformer 的思路可以被用來學習任何結構的概率圖模型。最後,我們這裡使用了一個 locally normalized 的語言模型作為 log potentials,實際上我們可以用更強大的 globally normalized 模型(Deng et al 2019)。

[1] Gu et al 2017:https://arxiv.org/pdf/1711.02281.pdf

[2] Rush et al 2020:https://arxiv.org/pdf/2002.00876.pdf[3] Weiss et al 2010:http://proceedings.mlr.press/v9/weiss10a/weiss10a.pdf[4] Ma et al 2019:https://arxiv.org/pdf/1909.02480.pdf)[5] Deng et al 2019:https://openreview.net/pdf?id=B1l4SgHKDH[6] https://github.com/harvardnlp/pytorch-struct

如何才能讓更多的優質內容以更短路逕到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。

總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。 

PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得技術乾貨。我們的目的只有一個,讓知識真正流動起來。

📝 來稿標準:

• 稿件確係個人原創作品,來稿需註明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向) 

• 如果文章並非首發,請在投稿時提醒並附上所有已發布連結 

• PaperWeekly 默認每篇文章都是首發,均會添加「原創」標誌

📬 投稿郵箱:

• 投稿郵箱:hr@paperweekly.site 

• 所有文章配圖,請單獨在附件中發送 

• 請留下即時聯繫方式(微信或手機),以便我們在編輯發布時和作者溝通

🔍

現在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關注」訂閱我們的專欄吧

關於PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報導人工智慧前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號後臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群裡。

相關焦點

  • 基於關鍵詞的文本內容過濾算法的研究與應用
    在國外文本過濾相關技術研究方面,Belkin和Croft提出了用戶特徵過濾對文本過濾系統的影響和積極意義;Lam等人對個人興趣飄逸探測算法進行研究;Yang和Chute基於實例和最小平方利益的線性模型改進了文本分類器;Mosafa構造了智能信息過濾的多層次分解模型。
  • 基於關鍵詞的文本內容過濾算法
    三、網頁文本過濾關鍵技術的研究 由於中文和英文的區別,中文文本與英文文本的表示方法有所不同。英文文本中詞與詞 中間都由空格或標點符號隔開,因而詞與詞之間的界限很明顯,可以很容易的獲取關鍵詞,而中文文本中詞與詞則無明顯的界限,這就影響了關鍵詞的獲取和匹配, 因此,本文將對中文信息過濾過程中的關鍵技術進行重點討論。
  • 基於Conditional Layer Normalization的條件文本生成
    可如果是有條件生成呢?比如控制文本的類別,按類別隨機生成文本,也就是 Conditional Language Model;又比如傳入一副圖像,來生成一段相關的文本描述,也就是 Image Caption。
  • 賽爾原創 | EMNLP 2019融合行、列和時間維度信息的層次化編碼模型進行面向結構化數據的文本生成
    4.2  評價指標除了文本生成任務上常用的基於N-Gram匹配計算的BLEU值以外,Wiseman[2]等人提出通過訓練一個信息抽取模型,從生成的文本中抽取三元組,和表格以及參考文本進行對比進行評價,得到RG、CS和CO三類指標。其中,RG通過對比生成的文本中抽取三元組和表格中的信息判斷生成的內容是否正確。
  • 基於Python 的自動文本提取:抽象法和生成法的比較
    隨著推送通知和文章摘要獲得越來越多的需求,為長文本生成智能和準確的摘要已經成為流行的研究和行業問題。文本摘要有兩種基本方法:提取法和抽象法。前者從原始文本中提取單詞和單詞短語來創建摘要。後者學習內部語言表示以生成更像人類的摘要,來解釋原始文本的意圖。
  • PyTorch:Bi-LSTM的文本生成
    —歐內斯特·海明威本博客的目的是解釋如何通過實現基於LSTMs的強大體系結構來構建文本生成的端到端模型。同樣,最受歡迎的模型中的共同點是實施基於深度學習的模型。如前所述,NLP領域解決了大量的問題,特別是在本博客中,我們將通過使用基於深度學習的模型來解決文本生成問題,例如循環神經網絡LSTM和Bi-LSTM。同樣,我們將使用當今最複雜的框架之一來開發深度學習模型,特別是我們將使用PyTorch的LSTMCell類來開發。
  • 自動生成文本摘要
    而這需要的就是「文本摘要自動生成」技術!文本摘要充斥著我們生活的方方面面,新聞關鍵詞的提煉是文本摘要;在像Google、百度等搜尋引擎的結果同樣需要文本摘要,目前的百度搜索摘要主要還是把關鍵詞前後語句作為摘要,不能反映文章主要內容和關鍵詞的相關度,該升級了。目前主流的文本摘要自動生成有兩種方式,一種是抽取式(extractive),另一種是生成式(abstractive)。
  • 文本生成哪家強?上交大提出基準測試新平臺 Texygen
    Texygen不僅實現了大部分的文本生成模型,而且還提供了一系列衡量生成文本的多樣性、質量和一致性的評測指標。Texygen平臺可以幫助規範文本生成的研究,促進研究人員提供自己所呈現工作的官方開源實現。這將有助於提高文本生成的未來研究工作的可復現性和可靠性。
  • 基於CNN的中文文本分類算法(可應用於垃圾文本過濾、情感分析等場景)
    隨著深度學習的發展以及RNN、CNN的陸續出現,特徵向量的構建將會由網絡自動完成,因此我們只要將文本的向量表示輸入到網絡中就能夠完成自動完成特徵的構建與分類過程。就分類任務而言,CNN比RNN更為合適。CNN目前在圖像處理方向應用最為廣泛,在文本處理上也有一些的應用。
  • 【0x0001】文本生成:從零實現的char-RNN
    這是我第二篇原創文章,首先我會介紹什麼是文本生成,什麼是char-RNN,用char-RNN實現文本生成的流程,在文末會提供本篇文章中所有的代碼和數據。文本生成是比較學術的說法,通常在媒體上見到的「機器人寫作」、「人工智慧寫作」、「自動對話生成」、「機器人寫古詩」等,都屬於文本生成的範疇。文本生成的主要應用領域也是集中在創作、對話、信息提取幾個領域[3]。
  • 如何讓對抗網絡GAN生成更高質量的文本?LeakGAN現身說法:「對抗中...
    由於英文文本是天然地分為一個一個詞的,逐詞的文本生成任務可以被建模為一個序列決策過程,對於其中的每一步,當前狀態是已經生成的詞,行為是即將要生成的詞,生成式網絡 G 就是一個把當前狀態映射到行為空間分布的隨機策略。當整句文本生成結束之後,生成的這個句子就會被送入鑑別器 D,它經過訓練之後能夠把真實的文本和生成的文本區分開,區分的結果就會作為 G 的得到的回報,引導它更新。
  • 【深度學習】PyTorch:Bi-LSTM的文本生成
    —歐內斯特·海明威❞本文的目的是解釋如何通過實現基於LSTMs的強大體系結構來構建文本生成的端到端模型。同樣,最受歡迎的模型中的共同點是實施基於深度學習的模型。如前所述,NLP領域解決了大量的問題,特別是在本博客中,我們將通過使用基於深度學習的模型來解決文本生成問題,例如循環神經網絡LSTM和Bi-LSTM。同樣,我們將使用當今最複雜的框架之一來開發深度學習模型,特別是我們將使用PyTorch的LSTMCell類來開發。
  • 2020最新文本檢測算法TextFuseNet
    該算法用三個層次的特徵來表示文本,字符、單詞和全局級別,然後引入一種新的文本融合技術融合這些特徵,來幫助實現魯棒的任意文本檢測。另外提出了一個弱監督學習機制,可以生成字符級別的標註,在缺乏字符級注釋的數據集情況下也可以進行訓練。
  • Seq2seq框架下的文本生成
    前言文本生成,旨在利用NLP技術,根據給定信息產生特定目標的文本序列,應用場景眾多,並可以通過調整語料讓相似的模型框架適應不同應用場景。本文重點圍繞Encoder-Decoder結構,列舉一些以文本摘要生成或QA系統文本生成為實驗場景的技術進展。
  • 賽爾筆記 | 事實感知的生成式文本摘要
    本文將簡單介紹如何解決生成式文本摘要中事實性錯誤的相關研究。1. 生成式文本摘要的困境:事實性錯誤文本摘要(Text Summarization)是NLP中非常重要的一項任務,即給定一篇長文章作為原文,模型生成一段覆蓋原文關鍵信息的文本作為該文章的摘要。
  • NLP: 基於文本語義的智能問答系統
    1-1-3 生成式對話系統基於自然語言理解生成式對話策略:即通過機器學習算法構建深層語義模型,結合句詞分析等統計規律提取特徵,讓模型從大量的已有對話中學習對話規則,利用訓練好的模型預測結果。評估問題,需要依賴人工評定;生成內容,控制不好會回復令人厭惡或違反法規的文本。智能對話,回復內容豐富。
  • ICML 2020 | 基於類別描述的文本分類模型
    鑑於此,我們提出在輸入文本的同時,也輸入對標籤本身的描述,比如牛津詞典對「positive」的定義(描述)是:「full of hope and confidence, or giving cause for hope and confidence」。把這個描述和原始文本拼接在一起,送入模型,模型輸出一個概率值,代表當前文本具有該標籤類的可能性。
  • ...不用跨界也能從文本生成圖像,OpenAI新模型打破自然語言與視覺...
    這不,OpenAI 最近連發大招,提出兩個連接文本與圖像的神經網絡:DALL·E 和 CLIP。DALL·E 可以基於文本直接生成圖像,CLIP 則能夠完成圖像與文本類別的匹配。OpenAI 的新工作引起了 AI 圈的一陣歡呼。Coursera 創始人、史丹福大學教授吳恩達也表示祝賀,並選出了自己喜歡的「藍色襯衫 + 黑色長褲」AI 設計。
  • 使用TextRank算法為文本生成關鍵字和摘要
    【數盟倡導「數據創造價值」,致力於打造最卓越的數據科學交流平臺,為企業、個人提供最卓越的服務】TextRank算法基於PageRank,用於為文本生成關鍵字和摘要
  • 哈工大SCIR助理研究員馮驍騁:面向結構化數據的文本生成技術研究...
    而文本生成技術就是實現這些成就的關鍵。文本生成,按照不同的輸入劃分,可以分為文本到文本的生成、意義到文本的生成、數據到文本的生成以及圖像到文本的生成等;具體任務形式也十分多樣,包括自動文摘、對話生成、風格遷移、結構化數據描述生成等。這些任務之間既存在一些任務驅動的特殊表示和規則,也包含相對通用的技術路線和方法。