1. 程式人生 > 其它 >Logic2Text: High-Fidelity Natural Language Generation from Logical Forms 翻譯

Logic2Text: High-Fidelity Natural Language Generation from Logical Forms 翻譯

原文連線

介紹

結構化資料自然語言生成在很多應用中都是重要的研究領域,最近的資料驅動方法在自然語言生成領域已經取得了很好的表現。然而,大多數研究都關注於簡單記錄的淺層描述,比如,非常有限或固定模式下的屬性值對,比如E2E。在真實世界的多行表格場景中,更需要的是從資料記錄中推理出更高級別的邏輯並生成描述。例如,在下圖中,人類讀者會從中提取總結性的資訊,而不是僅僅簡單的陳述。為了實現如此具有高保真度的邏輯層面的文字生成,基於以下原因,只提供一個表格給真實世界的NLG系統不太合適:

  1. 低保真度。只提供表格,現如今的NLG系統很難生成帶有正確邏輯的符號運算,如最大、最小、計數、平均等。
  2. 不可控制的內容選擇。一個表可以生成的邏輯運算空間是指數級龐大的,因為各種運算可以進行組合。由於在成分生成過程中強加高階語義約束的困難,神經模型很難僅基於表來決定一個有效的、有利的邏輯選擇。

為了解決上述問題,我們認為必須要利用中間的語義表達來達到可信的和可控的邏輯生成。為了這個目的,我們將邏輯層面的NLG任務形式化為logical form to text(邏輯化形式到文字)問題。特別地,我們還提供一個表達目標文字的語法的邏輯形式給NLG系統。通過分離邏輯形式和語言認識,我們保證了中間邏輯表的正確性,並且認知模組的挑戰就轉變為了語義理解問題。

為了利用這個方向的研究工作,我們提出了一個新的資料集Logic2Text,包含5.6k開放域的表格,10.8k人工標註的(邏輯表格,描述)對。我們的資料集就以下幾個方面有很高的質量:(1) 自然流暢的表述。(2) 邏輯表格100%的執行準確率。在我們的資料集中,邏輯運算可以大致分為7類:計數(count)、最(superlative)、比較(comparative)、聚合(aggregation)、大多數(majority)、去重(unique)和排序(ordinal)。我們實現了一個python樣式的程式作為邏輯表格,它可以輕鬆轉換為其他型別的邏輯表格。相比於之前的淺層NLG資料集,我們的一個主要特色就是自由靈活的邏輯表格模式,可以表達成多樣的圖結構。新資料產生了一個對模型能力的挑戰:理解圖表示的結構語義。

我們用一系列的流行的生成模型作為基線。(1)我們用全量資料訓練模型並分析它們的效果。(2)我們在真實的用例中模擬低資源場景。實驗結果表明,邏輯形式是獲得高保真的關鍵。預訓練模型表現超過了其他的基線(pointer-generator,graph2seq,transformer等),但是依然會產生事實和邏輯上的錯誤。

總的來說,我們的工作可以概括如下:

  • 我們提出了一個新的大規模資料集,Logic2Text,其中的邏輯形式完善了文字描述,它還可以表現多樣的圖結構,也提高了語義理解的挑戰性。
  • 我們研究了若干種基線生成模型作為基線,在完全監督和zero-shot設定,也分析了它們的表現。

我們的資料集也可以反過來用,即從文字生成邏輯表格。

相關工作

從結構化資料或者知識中生成自然語言已經研究了很多年,也有很多應用,比如自動生成天氣預報,體育報道,醫學和健康報告,任務導向對話系統中的回答生成等。

傳統方法通常使用一個管道基於包括內容選擇、計劃和表層認識的方法。最近的資料驅動方法趨向於將管道模組合併為一個端到端的神經網路。現在,大規模預訓練模型已經在多種生成任務上達到了新的歷史最好的成績。陳等人表示,基於預訓練模型的簡單方法可以在WikiBio資料集上達到非常合理的表現。更近的一些工作開始關注於生成語言的保真度,他們的工作在淺層NLG上得到很好的效果。相反,我們的研究更關注於邏輯層面的保真語言生成。

一些流行的NLG資料集都是淺層生成。比如WeatherGov,WikiBio,ToTTo.RotoWire是一個更有挑戰性的通過多行資料表格生成籃球比賽報告的資料集。但是報告依然侷限於表面的表格記錄描述,涉及到邏輯表述的非常少。Korn等人探索了通過有趣的superlative wikipedia表格生成有趣的瑣事的任務。陳等人提出了一個從表格中推理生成任意句子的任務,他們的任務主要是為了探索目的,即測試神經模型僅基於表產生任何邏輯上正確的描述的能力。然而,正如我們在介紹中討論的那樣,由於低保真度,這樣的任務公式還不適合構建真實世界的NLG系統。現在表現最好的模型僅獲得了超過20%的基於人類評估的事實正確率,這與現實世界系統的可接受水平明顯相去太遠。

與我們相關的另一項工作是從句法或語義句子結構生成文字,如從CCG語法、UCG語法、AMR生成文字。我們的工作重點是在資料庫樣式表上執行的邏輯公式,以及表上的通用符號操作,如計數、最、比較。由於現在很多生產資料儲存在基於表的資料庫中,我們相信這樣的資料集應該有助於構建基於表的資料的系統。

資料集構建

資料集Logic2Text來自於WikiTables,這是一個從維基百科爬取的開放域表格資料集。我們篩選掉了過於複雜的表格,並且選取了有少於20行10列的表格子集。

在這個資料集中,我們開始用7中基礎的邏輯運算來描述多行表格:計數、最、比較、聚合、主要、去重和排序。比如,對於計數運算定義是:基於表格中的某一列計算某些行的數量。所有運算的定義參考附錄A。比較容易暈的一個特徵我覺得是unique,它表示的是某一行的一個列的獨特性,如“in opec 2012, angolawas the only country to join after 2000.”對於邏輯形式,我們使用python程式,函式集是(Chen et al., 2019a)的擴充套件。所有函式的定義請參見附錄B。

我們的資料集用了三個階段來構建:

  1. 描述構成和驗證。
  2. 邏輯表格註釋和派生。
  3. 邏輯表格執行和驗證。

我們採用了先合成描述再衍生邏輯表格的工作流程,因為在這樣的順序下,註釋者可以根據表格中有趣的事實合成自然描述,而這是通過自動列舉邏輯表格再重寫模板難以實現的。

資料集統計與分析

我們粗略地按照8:1:1分割訓練(8566)驗證(1095)和測試(1095),三者沒有交集表格。每個表格有1-3個不同邏輯型別的描述,因為邏輯表格表現了圖結構,我們基於節點數量分析了邏輯表格的複雜度,邏輯表格最少有5個節點,最多超過14個節點,在不同的邏輯型別中,比較運算有最多的節點,因為它涉及到兩個表格行的選擇和操作。最高階操作、排序和unique大多數只關注於一行。計數、主體和聚合操作是最多行進行的總結操作,就邏輯表結構來說,他們三個是最相似的。

實驗

基線模型

除了讓邏輯表作為生成模型主要的輸入,表格資訊也對提供內容資訊很關鍵。遵循著人類理解表格並生成句子的順序,輸入\(C\)被形式化為一個包含表格標題、表格頭部、表格內容和邏輯表的序列。目標是預測一個序列\(w\)去最大化\(P(w | C)\)

\[w = \arg\max \prod P(w_t | w_{0:t-1},C) \]

我們使用下列模型作為基線:

  • 模板。我們對於每種邏輯操作都手動生成了基於邏輯表的模板。
  • Seq2Seq+注意力。我們使用了一個包含注意力的seq2seq模型,輸入句子是前幾部分輸入的拼接(邏輯表換成線性形式)。
  • 指標生成器。為有注意力機制的seq2seq模型新增一個拷貝機制,允許解碼器直接從輸入複製單詞,當輸入中包含一些特定機構名或數字時,這種機制被證實對保真有相當大的重要性。
  • Graph2seq+複製機制。用graph2seq模型來編碼邏輯表,表格標題和表頭首先傳入seq2seq模型,然後圖編碼器編碼邏輯表。同時我們也添加了複製機制。
  • Transformer+複製機制。除了原始的Transformer結構,我們還添加了複製機制,其中最後一層隱藏層用於計算注意力分數和複製開關。我們還為不同的輸入元件添加了分段嵌入。
  • GPT-2。使用預先訓練的模型作為初始化,然後根據特定任務的資料對模型進行微調。在這項工作中,我們使用生成預訓練模型GPT-2作為我們的基線之一。
    所有的極限模型我們都使用BPE編碼。

全監督

我們使用BLEU-4(B-4), ROUGE-1, 2, 4, 和 L (F measure),在下表中顯示結果。

通過比較指標生成器和seq2seq,沒有預訓練的模型中,複製機制有很大作用。這是因為我們資料集的表格和邏輯表中涉及到了很多事實資訊,如實體名和數字。然而,沒有複製機制的預訓練模型GPT-2也可以準確預測事實項,闡釋了大規模預訓練的威力。

指標生成器的邏輯表輸入是線性格式,相比於指標生成器,graph2seq+複製機制相對有一個微小的提升。transformer+複製機制表現更好,因為transformer架構本身就是一個將輸入堪稱全聯通圖且用自注意力機制聚合所有的鄰居的圖神經架構。最近的工作也表明了基於transformer的結構可以捕獲層次語法結構和圖形表示。
GPT-2模型在所有模型中效能最好,改進明顯更大。作為一個帶有Transformer結構的預訓練語言模型,它結合了結構建模和語言建模的優勢。

人工評估

最後,我們還進行了人工評估,結果如表所示。

邏輯表的重要性

在沒有邏輯表的情況下,最佳表現模型獲得的BLEU-4得分為20.17,基於人類對500個樣本的評價,事實正確率為20.2%,然而我們的方法最好的模型成績為82.4%。

部分元件的重要性

這一項實驗刪掉一部分輸入,比較模型下降程度。

few-shot

實驗結果表明,即使減少訓練資料,預訓練模型也能得到比一些其他模型在全部資料上訓練更好的效果。

一個人沒有夢想,和鹹魚有什麼區別!