Logic-Consistency Text Generation from Semantic Parses 翻譯
介紹
自然語言生成指的是從語義解析生成語言描述如邏輯表格、AMR和SQL查詢等格式化的輸入表達,由於它對最新的自然語言互動的可解釋性和使用性的潛在貢獻,這項任務吸引了廣泛的注意。最近,如BERT、T5一樣的大規模預訓練已經提高從規則化文字生成自然語言的能力到了一個在流暢度和連貫性都非常有希望的高度。
然而,從語義解析生成自然語言仍然面臨著兩大關鍵性挑戰:1. 某些型別的邏輯表格或者標註數高成本導致的資料稀疏性限制,根據我們的實驗推斷,這導致很難滿足和維持生成文字的內在複雜的密集的邏輯性;2. 通用的子童話的評估指標,比如BLEU、ROUGE、BLEURT等都不是理想的用來針對性評估邏輯一致性的,因為他們趨向於平均的關注句子中的每一個詞,而不是重點關注那些重要的邏輯性詞。
為了緩解這兩個關鍵問題,我們提出了針對語義解析到文字生成的高保真框架 SNOWBALL,和用來鳴鼓邏輯一致性的自動評估指標 BLEC。
SNOWBALL框架。如圖所示,該框架訓練了兩個模組來確保文字生成的高保真度。
- 一個生成器模組,用來對映邏輯表到文字。
- 一個評估器模組,用來計算邏輯一致性分數。
BLEC指標。評估輸入的邏輯表和輸出的句子之間的邏輯一致性。
關鍵contribution:
- 提出了一種生成器和評估器聯合訓練的框架SNOWBALL。
- 提出了基於規則的新的自動化評估方法BLEC。
- 實驗表明上面兩項效果很好。
SNOWBALL
迭代訓練
- \(Generator0\)在基準上接受訓練NLG資料集與正常的端到端方法訓練到\(Generator1\)
- 同時,根據給定的規則將種子資料中的邏輯形式轉換為變異形式,然後由\(Generator1\)預測每個變異邏輯形式的文字為一個完整的邏輯對。
- 初始的\(Evaluator0\)然後在這些增廣邏輯對上進行訓練。
每一輪訓練過程都有三步迭代:
- 訓練過的\(Evaluator_{i−1}\)可用於對生成器解碼器給出的beam search結果進行重新排序,從而提高增廣邏輯對的質量,增強\(Augment_{i-1}\);
- \(Generator_i\)能夠更好地保持邏輯一致性,通過在\(Augmented_{i−1}\)上進行訓練,其中包含了種子資料中發現的更多沒見過的邏輯變化;
- 增強的\(Generator_i\)
生成器
生成器使用預訓練BART結構,包含編碼器結構和解碼器結構,編碼器輸入是能夠認識到邏輯表結構的表達,輸出是文字描述。
評估器
評估器會輸出邏輯表與預測輸出之間的邏輯一致性分數,相比於普通的評估器,這個模型會非常關注細微的邏輯變化,輸入是邏輯表L、文字Q和[EOS]
標記,邏輯分數輸出是:
其中\(h_{d_n}\)是解碼器最後的隱藏層,\(w\)表示最大池化。
資料增強
資料增強方法通過擾動邏輯表的邏輯來生成新的邏輯樣式。
邏輯擾動
邏輯擾動擾動邏輯表格的邏輯,再通過擾動的表格生成新的文字。擾動規則是手動定義的:
- 邏輯轉變:如把肯定句變成否定句。
- 短語和數字轉變。
- 屍體插入、刪除或者交換。
通過擾動的邏輯表進行推理
用預訓練的seq2seq類模型訓練效果會比基於規則的方法更加流暢和連貫,雖然這樣可以獲得大量的資料,但是它的標註依然會引入噪音。
資料構成
增強的[perturbed logic, pertubed text]既是生成器的訓練樣例,也是評估器的正樣例,而[pertubed logic, seed text]和[seed logic, pertubed text]是評估器負樣本。
結構感知編碼器
結構感知的輸入格式不僅能夠得到文字中的序列性資訊,也可以得到邏輯表的內在結構資訊,此外,來自不同領域或資料集的邏輯形式在關鍵字上可能存在差異,因此將它們規範化為統一的形式可以彌合不同邏輯之間的差距從而提高了框架的泛化能力。因此,邏輯形式將首先逐字翻譯成統一的中間半文字形式,由人工註釋詞典。然後將括號插入到半文字形式中,以表示相關的結構化表示(如ast)的層次結構。
邏輯一致性評估的BLEC
Bidirectional Logic Evaluation of Consistency。關鍵想法是關注於在邏輯評估領域的一些邏輯關鍵詞。首先BLEC將問題中的一些關鍵詞匹配邏輯表中的詞,然後,根據匹配結果計算分數。
\[BLEC=\frac{\sum_{inS} match(s)}{|S|} \]試驗結果表明,BLEC表現出了和人類標註較高的皮爾遜相關係數。
一個人沒有夢想,和鹹魚有什麼區別!