你的英語不行!微軟亞研自動語法糾錯系統達到人類水平

選自arXiv

機器之心編譯

因為 seq2seq 模型在語法糾錯上存在缺陷,微軟亞洲研究院的自然語言計算團隊近日提出了流暢度提升學習和推斷機制,用於改善 seq2seq 模型的語法糾錯性能。實驗表明,改進後的模型取得了當前最佳性能,並首次在兩個基準上都達到了人類水平。

用於語法糾錯(GEC)的序列到序列(seq2seq)模型(Cho et al., 2014; Sutskever et al., 2014)近年來吸引了越來越多的注意力(Yuan & Briscoe, 2016; Xie et al., 2016; Ji et al., 2017; Schmaltz et al., 2017; Sakaguchi et al., 2017; Chollampatt & Ng, 2018)。但是,大部分用於 GEC 的 seq2seq 模型存在兩個缺陷。第一,seq2seq 模型的訓練過程中使用的糾錯句對有限,如圖 1(a)所示。受訓練數據的限制,具備數百萬參數的模型也可能無法實現良好的泛化。因此,如果一個句子和訓練實例有些微的不同,則此類模型通常無法完美地修改句子,如圖 1(b)所示。第二,seq2seq 模型通常無法通過單輪 seq2seq 推斷完美地修改有很多語法錯誤的句子,如圖 1(b)和圖 1(c)所示,因為句子中的一些錯誤可能使語境變得奇怪,會誤導模型修改其他錯誤。

你的英语不行!微软亚研自动语法纠错系统达到人类水平

圖 1:(a)糾錯句對;(b)如果句子與訓練數據有些微的不同,則模型無法完美地修改句子;(c)單輪 seq2seq 推斷無法完美地修改句子,但多輪推斷可以。

為了解決上述限制,微軟研究者提出一種新型流暢度提升學習和推斷機制,參見圖 2。

對於流暢度提升學習,seq2seq 不僅使用原始糾錯句對來訓練,還生成流暢度較差的句子(如來自 n-best 輸出的句子),將它們與訓練數據中的正確句子配對,從而構建新的糾錯句對,前提是該句子的流暢度低於正確句子,如圖 2(a)所示。研究者將生成的糾錯句對稱為流暢度提升句對(fluency boost sentence pair),因為目標端句子的流暢度總是會比源句子的流暢度高。訓練過程中生成的流暢度提升句對將在後續的訓練 epoch 中作為額外的訓練實例,使得糾錯模型可以在訓練過程中看到具有更多語法錯誤的句子,並據此提升泛化能力。

你的英语不行!微软亚研自动语法纠错系统达到人类水平

圖 2:流暢度提升學習和推斷機制:(a)給出一個訓練實例(即糾錯句對),流暢度提升學習機制在訓練過程中從 seq2seq 的 n-best 輸出中構建多個流暢度提升句對。流暢度提升句對將在後續的訓練 epoch 中用作訓練實例,幫助擴展訓練集,幫助模型學習;(b)流暢度提升推斷機制允許糾錯模型通過多輪 seq2seq 推斷漸進式地修改句子,只要句子的流暢度一直能夠提升。

結合流暢度提升學習和推斷與卷積 seq2seq 模型,微軟亞洲研究院取得了當前最佳的結果,這使其成為首個在兩個基準上都達到人類水平的 GEC 系統。

論文:REACHING HUMAN-LEVEL PERFORMANCE IN AUTOMATIC GRAMMATICAL ERROR CORRECTION: AN EMPIRICAL STUDY

你的英语不行!微软亚研自动语法纠错系统达到人类水平

論文地址:https://arxiv.org/pdf/1807.01270.pdf

摘要:神經序列到序列(seq2seq)方法被證明在語法糾錯(GEC)中有很成功的表現。基於 seq2seq 框架,我們提出了一種新的流暢度提升學習和推斷機制。流暢度提升學習可以在訓練期間生成多個糾錯句對,允許糾錯模型學習利用更多的實例提升句子的流暢度,同時流暢度提升推斷允許模型通過多個推斷步驟漸進地修改句子。結合流暢度提升學習和推斷與卷積 seq2seq 模型,我們的方法取得了當前最佳的結果:分別在 CoNLL-2014 標註數據集上得到 75.02 的 F0.5 分數,在 JFLEG 測試集上得到 62.42 的 GLEU 分數,這使其成為首個在兩個基準數據集上都達到人類水平(CoNLL72.58,JFLEG62.37)的 GEC 系統。

2 背景:神經語法糾錯

你的英语不行!微软亚研自动语法纠错系统达到人类水平

其中 S* 表示糾錯句對集。

對於模型推斷,通過束搜索輸出句子選擇你的英語不行!微軟亞研自動語法糾錯系統達到人類水平,這一過程需要最大化下列公式:

你的英语不行!微软亚研自动语法纠错系统达到人类水平

3 流暢度提升學習

用於 GEC 的傳統 seq2seq 模型僅通過原始糾錯句對學習模型參數。然而,這樣的糾錯句對的可獲得性仍然不足。因此,很多神經 GEC 模型的泛化性能不夠好。

幸運的是,神經 GEC 和神經機器翻譯(NMT)不同。神經 GEC 的目標是在不改變原始語義的前提下提升句子的流暢度;因此,任何滿足這個條件(流暢度提升條件)的句子對都可以作為訓練實例。

在這項研究中,研究者將 f(x) 定義為句子 x 的流暢度分數。

你的英语不行!微软亚研自动语法纠错系统达到人类水平

其中,P(x_i | x_

流暢度提升學習的核心思想是生成流暢度提升的句對,其在訓練期間滿足流暢度提升條件,如圖 2(a)所示,因此這些句子對可以進一步幫助模型學習。

在這一部分中,研究者展示了三種流暢度提升策略:反向提升(back-boost)、自提升(self-boost)和雙向提升(dual-boost),它們以不同的方式生成流暢度提升句子對,如圖 3 所示。

你的英语不行!微软亚研自动语法纠错系统达到人类水平

圖 3:三種流暢度提升學習策略:(a)反向提升,(b)自提升,(c)雙向提升。它們都能生成流暢度提升句對(虛線框中的句對),幫助訓練過程中的的模型學習。圖中的數字是對應句子的流暢度分數。

4 流暢度提升推斷

4.1 多輪糾錯

4.2 往返糾錯

基於多輪糾錯的思路,研究者進而提出了一個進階流暢度提升推斷方法:往返糾錯。該方法不使用 4.1 中介紹的 seq2seq 模型漸進性地修改句子,而是通過一個從右到左和一個從左到右的 seq2seq 模型依次修改句子,如圖 4 所示。

你的英语不行!微软亚研自动语法纠错系统达到人类水平

圖 4:往返糾錯:某些類型的錯誤(例如,冠詞錯誤)由從右到左的 seq2seq 模型會更容易糾錯,而某些錯誤(例如主謂一致)由從左到右的 seq2seq 模型更容易糾錯。往返糾錯使得二者互補,相對於單個模型能糾正更多的語法錯誤。

5 實驗

表 2 展示了 GEC 系統在 CoNLL 和 JFLEG 數據集上的結果。由於使用了更大規模的訓練數據,因此即使是基礎卷積 seq2seq 模型也超越了多數之前的 GEC 系統。流暢度提升學習進一步提升了基礎卷積 seq2seq 模型的性能。

你的英语不行!微软亚研自动语法纠错系统达到人类水平

表 2:GEC 系統在 CoNLL 和 JFLEG 數據集上的結果對比。

如表 3 所示,流暢度提升學習提升了基礎卷積 seq2seq 模型所有層面的表現(精度、召回率、F0.5 和 GLEU),表明流暢度提升學習確實有助於用於 GEC 的 seq2seq 模型的訓練。

你的英语不行!微软亚研自动语法纠错系统达到人类水平

表 3:性能最佳的 GEC 系統在 CoNLL 和 JFLEG 數據集上的評估結果分析。紅色字體的結果超越了人類水平。

你的英语不行!微软亚研自动语法纠错系统达到人类水平

表 4:有/沒有流暢度提升學習的卷積 seq2seq 模型在 CoNLL-2014 數據集的每個錯誤類型上的召回率對比。

你的英语不行!微软亚研自动语法纠错系统达到人类水平

表 5:從左到右和從右到左的 seq2seq 模型對 CoNLL-2014 中每種錯誤類型的召回率

你的英语不行!微软亚研自动语法纠错系统达到人类水平


分享到:


相關文章: