# Masked Language Model による系列確率に基づく文法誤り検出

土肥康輔 須藤克仁 中村哲
奈良先端科学技術大学院大学
\{doi.kosuke.de8, sudoh, s-nakamura\}@is.naist.jp

## 概要

言語モデルに基づく文法誤り訂正手法は，少量の ラベル付きデータしか必要としないという長所が あるが，既存手法では訂正対象の誤り種類が限られ ているという課題があった. 本研究では，対象の誤 り種類を拡大する第一歩として，言語モデルにより 算出される系列確率に基づく文法誤り検出手法を 提案する. 文法的に正しい文での各語の確率を計算 して辞書に格納し，推論時には，誤り検出対象の文 での確率と辞書での確率を比較することで，その 語が誤りであるかを判別する．実験の結果， $F_{0.5}$ ス コアは既存モデルに及ばなかったものの, Recall が Precision より高くなり，今後適切な制約を加えるこ とで性能を向上させられる可能性が示された.

## 1 はじめに

文法誤り検出 (GED) は，テキスト中の誤りを自動的に検出するタスクである．Bi-LSTM ベースのモデ ルが主流であったが $[1,2,3,4,5]$, 近年では事前学習済み言語モデルを用いる手法も提案されている $[6,7]$. これらの研究は GED を系列ラベリングタス クとして解いているが，利用可能なラベル付きデー タは多くなく，疑似データの利用も行われている。

少量のラベル付きデータしか必要としない手法 に，言語モデルに基づくアプローチがある. 文法誤 り訂正 (GEC) タスクにおいて，言語モデルの利用は 主要なアプローチの 1 つだったが [8]，機械翻訳に 基づく手法の台頭によりあまり見られなくなって いった ${ }^{1)}$. Bryant ら [9] や Alikaniotis ら [10] の研究 により，言語モデルに基づく手法が再度注目を浴び たが，[9][10] の手法では，訂正できる誤りの種類が 限定されていることが課題となっていた. そこで本研究では，言語モデルに基づくGEC 手法で扱える 誤り種類を拡大する第一歩として，事前学習済み言語モデルによる系列確率に基づく GED を提案する。

1）ただし，GECシステムの一部分としては使い続けられた。実験では，提案手法が評価セット中のすべての 誤り種類を検出対象とできていることが確認され た.しかし，性能では既存モデルに及ばず，特に Precision に課題があった。一方で，提案手法は比較的高い Recall を達成しており，今後適切な制約を加 えることで性能を向上させられる可能性がある.

## 2 関連研究

ニューラルネットワーク手法を初めて GED に用 いたのは Rei ら [1] である. CNN，RNN，Bi-LSTM を比較した結果，Bi-LSTM が最も良い性能を示し たと報告されている．以降は，[1]のモデルを改良 する形で研究が進められ，[2] では文字レベルの情報を追加で用い，[3] ではラベルを予測する前後の トークンを言語モデルで同時に予測することで，性能の向上が図られた. [5] は文脈化された単語分散表現を追加の特徴量として用いることで，さらに性能を向上させた．また，疑似データを用いることで 性能が向上することも報告されている [4].

Bi-LSTM に基づくこれらの手法に対して，Kaneko ら [6] は事前学習済み言語モデルを用いることを提案した。事前学習済み言語モデルをファインチュー ニングして用いる場合，最終層の出力のみを予測に 用いるのが一般的だが，[6] は BERT [11] の最終層 だけでなく中間層の出力も利用するモデルを構築し た. Yuan ら [7] は事前学習手法が GED タスクに類似している ELECTRA [12] を用いるほうが，BERT を含む他の事前学習済み言語モデルを用いるよりも 高い性能となることを示した．さらに，誤り箇所の 誤りカテゴリも予測する多クラス GEDを提案し， GED の出力を GEC タスクの追加入力として用いる ことで，GEC の性能が向上することを示した.

言語モデルに基づくアプローチでは，低い確率の 系列には誤りが含まれていると考える。[9] は母語話者コーパスから構築した N-gram 言語モデルを用 いることで，少量の誤り情報付きデータしか必要と しない GEC 手法を提案した. [10] は BERT 等の最
新のニューラル言語モデルを用いることで，同手法 の性能を向上させた. しかし， [9][10] のモデルの訂正対象は，存在しない語，形態（例 : 名詞の数, 動詞の時制), 冠詞，前置詞に限定されており，誤りの $20 \%$ 程度を占める不足誤りを訂正できないという問題点があった.

## 3 提案手法

本研究では，訓練データでの各トークンの確率を 算出し，トークンを見出し，確率を値とする確率辞書を作成する．推論時には，誤り検出対象の文での 確率と辞書での確率を比較することで，そのトーク ンが誤りであるかを判別する．以下の節で，確率辞書作成と推論の手法について説明する。

## 3.1 確率辞書作成

確率辞書を作成するための元データには，母語話者コーパス，または誤り訂正済みの学習者コーパス を用いる. 辞書に保存されている確率値が推論時の 正誤判断基準となるため，文法的に正しい文を用 いて辞書を作成する. 本研究では，トークンの確率算出に BERT を用いる。 入力文中の各トークン を [MASK] し，元のトークンが返される確率を計算 する手法 $[10,13]$ によってトークンの確率を得る.訓練データから 1 文ごとにトークンの確率を算出 し, そのトークンを見出し, 確率を值として辞書に 登録していく．訓練データの文は BERT のトークナ イザーで分割されるため，見出しはサブワードとな り，訓練データで複数回登場するサブワード（見出 し）には複数の確率（値）が登録される。訓練デー タ中での頻度が $N$ 以上であるサブワードのみを確率辞書に残すというパラメータ min_freqを設定し，本研究では $m i n \_f r e q \in\{1,5,10\}$ とする.

## 3.2 推論

推論時には，確率辞書作成時と同じ手法でトーク ンごとの確率を算出し, 推論対象の文中での確率と 辞書の確率を比較する（図 1). 確率辞書には，1つ の見出しに対して複数の值が登録されているため,基準となる値 $\left(s t d_{t o k e n}\right)$ を決める必要がある. 本研究では，登録されている値の平均値，または中央値 とする。また，確率辞書の見出しにないトークンが 推論対象の文に現れた場合の基準値 $\left(s t d_{a l l}\right)$ は，全見出しの値の平均値，または中央値とする.

しかし, 元トークンが文法的に正しい場合でも，

[MASK] can did it ! I [MASK] did it !

図 1 提案手法での推論の例

言語モデルにとってより「自然な」候補が存在する 場合，言語モデルが元トークンに与える確率は相対的に低いものとなってしまう。 そこで [10] に従い，元トークンが文法的に正しいというバイアスを加 えるパラメータ $\tau$ を設定する。あるトークン $T$ の 推論対象の文での確率を $P\left(T_{s}\right)$, 確率辞書での基準値を $P\left(T_{d}\right)$ とすると，そのトークンに付与される label $\left(T_{s}\right)$ は，以下のようになる.

$
\operatorname{label}\left(T_{s}\right)= \begin{cases}\mathrm{i} & \text { if } \log P\left(T_{s}\right)+\log \tau<\log P\left(T_{d}\right) \\ \mathrm{c} & \text { otherwise }\end{cases}
$

“i”は誤りあり，“c”は正しいと判断されたことを表 す. 本研究では, $\tau \in\{0,2,4,6,8,10,15,20\}$ とする.

上記のように label $\left(T_{s}\right)$ を得ると, ラベルは BERT のトークナイザーで分割されたサブワード単位で付与されるため，元のトークン列との対応を取る必要 がある. 両者の対応付けは以下のアルゴリズムで行 う．サブワードと元トークンを要素とするリストを 作成し，リストから要素を 1 つずつ読み込む。文字列が一致した場合は, label $\left(T_{s}\right)$ を元トークンに対応付け，両リストから次の要素を 1 つずつ読み込む.一致しない場合は，2つの文字列長を比較し，短い ほうの文字列のリストから次の要素を読み込み，そ の文字列の後ろに結合する. この際，サブワード分割を表す “\#\#” は削除したうえで読み込む。これを， 2 つ文字列が一致するまで続ける。一致するまで に使ったサブワードに対応する label $\left(T_{s}\right)$ を確認し，全てが“c”であれば元トークンに“c”を対応付け， そうでなければ“i”を対応付ける。

## 4 実験

実験では，確率辞書作成方法の違いによる誤り検出性能の差を検証する．辞書作成に用いるデータの 種類（母語話者 vs. 学習者）と量, 辞書に登録する 語の訓練データ中での最低頻度，基準値の決め方の 影響を評価する．また， $\tau$ の違いによる誤り検出性能の差を検証する.

## 4.1 データセット

確率辞書作成のための母語話者コーパスには the One Billion Word Benchmark (1B) [14] を用い，学習者 コーパスのトークン数と同程度になるようにサン プリングして使用した. また，データ量の影響を検証するために，約 1,000 万トークンサンプリングし たデータを使用した．学習者コーパスは， W\&I+L train [15] の 80\%，FCE train [16]，NUCLE [17] を用い た. 確率辞書作成に用いたデータの詳細は付録 A に 示す. 開発データには, W\&I+L train の残りの $20 \%$, FCE dev，CoNLL-2013 [18] を用い，評価データには W\&I+L dev，FCE test，CoNLL-2014 [8]を用いた.

## 4.2 実験設定

文中の各トークンの確率算出には, [13] の実装2) を用いた. BERT は HuggingFace 社が公開している bert-base-casedを用い, 訓練データの最大入力長 は 250 トークンとした. 確率辞書の作成はデータ セットごと（付録 A の表の行ごと）に行った. 確率辞書作成に先立ち，URLを含む文，メールアドレス を含む文， 1 文に数字のみから成るトークンが 30 以上含まれる文を訓練データから取り除いた。

また，アポストロフィーを含む短縮形のトーク ン分割方法の違いのため, データをそのまま BERT のトークナイザーに入力すると, 分割結果に影響 があった. そのため，1B は WMT113)で配布され た detokenizer.perlを用いてデトークナイズした. それ以外のデータは, spaCy が例外規則でトークン 分割している短縮形 4$)$ のみをデトークナイズした.

モデルの性能は，ERRANT [19]により算出される Precision, Recall， $F_{0.5}$ スコアにより評価した.

## 4.3 実験結果

開発セットでの結果に基づき, min_freq $=1$, $s t d_{\text {token }}$ と $s t d_{\text {all }}$ の組み合わせ $\in\{\{$ mean, mean $\}$, \{median, median \}\}, $\tau \in\{0,8,20\}$, 確率辞書 $\in\{$ FCE, Learner all, 1B_510K, 1B_2.1M, 1B_10M \}について, 評価セットで評価を行った。

表 1 は，FCE train で確率辞書を作成したときに，基準値の取り方と $\tau$ を変化させた結果である ${ }^{5)}$.


表 1 確率辞書の基準値， $\tau$ による比較

Precision は $\tau=0$ のときに最も低く， $\tau$ が大きくなる につれて上昇した. Recall はその反対で， $\tau$ が大き くなるにつれて低下した。

$\tau$ が同じ値の場合, $F_{0.5}$ スコアは $\{$ mean, mean $\}$ の ほうが高くなったが，これは，基準値を mean と した場合 $\left(P_{\text {avg }}\right)$ と median とした場合 $\left(P_{m d n}\right)$ に, $P_{\text {avg }}<P_{m d n}$ となることが多いためと考えられる. FCE で作成した確率辞書において， $P_{\text {avg }}$ の平均値は -4.16であったのに対して,$P_{m d n}$ の平均值は -3.95 であった。また，頻度 3 以上の見出し 3,787 語にお いて, 3,047 語が $P_{\text {avg }}<P_{m d n}$ となっていた. $P_{m d n}$ のほうが “i”ラベルが多くつくが，Precision が低い ために $F_{0.5}$ スコアが悪化したと考えられる.

$\tau$ の值を大きくすると，誤り検出対象の文のすべ ての語において，ラベル判断に用いられる値が $\tau$ だ け一律に大きくなる（式 1).この操作は, 確率辞書 の基準値を一律に下げる操作と同じである. 多くの 語で $P_{\text {avg }}<P_{m d n}$ となっている状況では，これら 2 つのハイパーパラメータは，実質同じものを操作し ていたことになる.兀 のほうが細かい調整が可能な こと，基準値を\{median, median \}とすると，初期値と して高い Recall からスタートできることから，今後 は $s t d_{\text {token }}$ と $s t d_{\text {all }}$ の組み合わせは\{median, median \} で固定し， $\tau$ のみをハイパーパラメータとして保持 するほうがよいと考えられる。

次に確率辞書間で比較をすると，辞書の作成に利用するデータの種類，量はスコアに影響を与えな いことが明らかになった。例えば，基準值を\{mean， mean \}, $\tau=20$ としたとき, W\&I+L dev での $F_{0.5}$ ス コアは，確率辞書の設定によらず 36 程度であった。 つまり，確率辞書作成に用いるデータは必ずしも学習者コーパスである必要はなく, 言語モデルと確率辞書を作成するための母語話者コーパスが十分に あれば，提案手法を用いて GEDを行うことが可能 となることを示唆している. min_freq $=1$ と設定し ているため，データ量を増やすと確率辞書の見出し 数が増加することが期待されるが，コーパスのトー
表 2 既存モデルとの比較

クン数が増加しても，異なり語数は線形には増加し ない。また，辞書に入る異なり語数が増加しても，評価セットでそれらの語が出てくるとは限らず，カ バー率は劇的には上昇しない。これらの要因によ り，本手法ではデータ量によるスコア差が出なかっ たものと考えられる。

表 2 は，確率辞書を FCE，または1B_510K で作成し，基準値を\{median, median\}， $\tau=20$ としたとき のスコアを，既存モデルと比較した結果を示して いる. [7] は, ELECTRAを FCE データでファイン チューニングすることで，世界最高性能を達成した モデル，[1] は，追加の特徵量を用いていないナイー ブな LSTM ゙ースのモデルである. [7]に対しては， $F_{0.5}$ スコアで 30 ポイント程度のビハインドがある が，[1]に対しては，同程度か上回るスコアを達成し ている。誤り情報付きデータを確率辞書作成に用い ていない1B_510K においても，誤り情報付きデー タを用いている [1] のモデルに迫るスコアを達成し ていることは特筆すべき点である.

提案モデルは, 既存モデルと異なり Recall が Precisionより高い傾向となった. Recall は [7] と同程度のスコアを達成しているが，Precision には大 きな課題がある. 実験結果から， $\tau$ は Precision と Recall の調整にある程度機能していたことがうかが えるが，同時に $\tau$ の値のみでは不十分であったこと も示唆している。 $\tau$ を昇させたときに Recall が急激に低下する一方で，Precision の上昇は比較的緩や かなものとなっていた. 先に述べたように， $\tau$ は誤 り検出対象の文のすべての語において，ラベル判断 に用いられる値を一律で増加させる。一律に変化さ せるのではなく，そのトークンが使われている文脈 に応じて制約を課すしくみが必要と考えられる。

## 4.3.1 誤り種類ごとの検出性能

本手法の動機のひとつに，言語モデルベースのモ デルで扱える誤り種類の拡大があった. 本節では, FCE train で確率辞書を作成し，基準值\{mean, mean \} と設定したモデルの FCE test での誤り検出結果につ いて，誤りタイプ，カテゴリごとの結果を述べる.
ERRANT の出力から, FCE test に存在する 15 種類 すべての誤りカテゴリが検出対象となっていたこと が確認できた ${ }^{6)}$.また，提案モデルは不足誤りの箇所を検出することができていた．以下に例を示す.

Gold: Apart from that it takes long time to go somewhere . $\tau=0$ : Apart from that it takes long time to go somewhere. $\tau=8$ : Apart from that it takes long time to go somewhere .

下線は，その語に誤りラベルがついていることを表 している．冠詞の不足誤りを提案モデルが捉える ことができているのがわかる。一方で，上記の例 の $\tau=0$ のように，提案モデルは偽陽性の数が多く なっている. $\tau=0,8,20$ で Precision が一貫して下位 5 位以内になる誤りカテゴリは, 短縮形, 名詞, 代名詞であった. しかし，個別の例を確認していくと， GED データのラベル付け方法が原因で，ERRANT の誤りカテゴリの判別がうまくいっていない可能性 があることがわかった. GED データでは，不足誤 りはそのトークンが存在しないため，直後のトーク ンに誤りラベルを付与することが一般的である。 そ のため，ERRANT が名詞誤りや代名詞の誤りと判別 していても，実際は別の誤りカテゴリの不足誤りで ある可能性がある．GEDを誤りカテゴリごとに評価するには，不足誤りを正しいカテゴリに対応付け る必要があるが, 現状のモデル出力では, 不足, 置換，余剩のいずれの誤りなのかはわからない. Yuan ら [7] の系列ラベリングベースのモデルのように，誤りタイプまで予測する GED モデルも出てきてい るが，言語モデルベースのモデルでそれが可能なの か検討することは今後の課題である。

## 5 おわりに

本研究では，BERTにより算出される系列確率を 用いることで，少量の誤り情報付きデータしか必要 としない GED 手法を提案した. 既存の言語モデル ベースの GEC モデルが扱えていなかった誤り種類 について，提案手法は検出対象とすることができて いた。しかし，Recall は高いものの，Precision が低 いという課題があった。また，現在の確率辞書で は，同じ表層系で異なる品詞は区別できていない.文脈情報を利用した制約の導入と併せて検討し， Recall の低下を抑えながら Precision を向上させるこ とが今後の課題である.

6）検出性能の良し悪しは考慮していない.

## 謝辞

本研究の一部は JSPS 科研費 JP21H05054 の助成を

受けたものである.

## 参考文献

[1] Marek Rei and Helen Yannakoudakis. Compositional sequence labeling models for error detection in learner writing. In Proc. of ACL, pp. 1181-1191, 2016.

[2] Marek Rei, Gamal Crichton, and Sampo Pyysalo. Attending to characters in neural sequence labeling models. In Proc. of COLING, pp. 309-318, 2016.

[3] Marek Rei. Semi-supervised multitask learning for sequence labeling. In Proc. of ACL, pp. 2121-2130, 2017.

[4] Sudhanshu Kasewa, Pontus Stenetorp, and Sebastian Riedel. Wronging a right: Generating better errors to improve grammatical error detection. In Proc. of EMNLP, pp. 4977-4983, 2018.

[5] Samuel Bell, Helen Yannakoudakis, and Marek Rei. Context is key: Grammatical error detection with contextual word representations. In Proc. of BEA, pp. 103-115, 2019.

[6] Masahiro Kaneko and Mamoru Komachi. Multi-head multi-layer attention to deep language representations for grammatical error detection. Computacion y Sistemas, Vol. 23, No. 3, pp. 883-891, 2019.

[7] Zheng Yuan, Shiva Taslimipoor, Christopher Davis, and Christopher Bryant. Multi-class grammatical error detection for correction: A tale of two systems. In Proc. of EMNLP, pp. 8722-8736, 2021.

[8] Hwee Tou Ng, Siew Mei Wu, Ted Briscoe, Christian Hadiwinoto, Raymond Hendy Susanto, and Christopher Bryant. The CoNLL-2014 shared task on grammatical error correction. In Proc. of CoNLL: Shared Task, pp. 1-14, 2014.

[9] Christopher Bryant and Ted Briscoe. Language model based grammatical error correction without annotated training data. In Proc. of BEA, pp. 247-253, 2018.

[10] Dimitris Alikaniotis and Vipul Raheja. The unreasonable effectiveness of transformer language models in grammatical error correction. In Proc. of BEA, pp. 127-133, 2019.

[11] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of deep bidirectional transformers for language understanding. In Proc. of NAACL, pp. 4171-4186, 2019.

[12] Kevin Clark, Minh-Thang Luong, Quoc V. Le, and Christopher D. Manning. ELECTRA: Pre-training text encoders as discriminators rather than generators. In ICLR, 2020.

[13] Julian Salazar, Davis Liang, Toan Q. Nguyen, and Katrin Kirchhoff. Masked language model scoring. In Proc. of ACL, pp. 2699-2712, 2020.

[14] Ciprian Chelba, Tomas Mikolov, Mike Schuster, Qi Ge, Thorsten Brants, Phillipp Koehn, and Tony Robinson. One billion word benchmark for measuring progress in statistical language modeling. In Proc. of Interspeech, pp. 2635-2639, 2014.

[15] Christopher Bryant, Mariano Felice, Øistein E. Andersen, and Ted Briscoe. The BEA-2019 shared task on grammatical error correction. In Proc. of BEA, pp. 52-75, 2019.
[16] Helen Yannakoudakis, Ted Briscoe, and Ben Medlock. A new dataset and method for automatically grading ESOL texts. In Proc. of ACL, pp. 180-189, 2011.

[17] Daniel Dahlmeier, Hwee Tou Ng, and Siew Mei Wu. Building a large annotated corpus of learner English: The NUS corpus of learner English. In Proc. of BEA, pp. 22-31, 2013.

[18] Hwee Tou Ng, Siew Mei Wu, Yuanbin Wu, Christian Hadiwinoto, and Joel Tetreault. The CoNLL-2013 shared task on grammatical error correction. In Proc. of CoNLL: Shared Task, pp. 1-12, 2013.

[19] Christopher Bryant, Mariano Felice, and Ted Briscoe. Automatic annotation and evaluation of error types for grammatical error correction. In Proc. of ACL, pp. 793-805, 2017.

## A 確率辞書作成に用いたデータセット

## B 評価セットでのスコア

## C 実際の誤り種類と ERRANT の判別が一致していない例

以下の例で，提案モデル（確率辞書 $=\mathrm{FCE}$ ，基準値 $=\{$ mean, mean $\} ， \tau=0$ ）の検出結果は，正解と一致している．GED データを元に ERRANT で作成した M2 ファイルでは，“information” は名詞誤りと分類されていたが，GEC データで確認 すると，実際は形容詞の不足誤りであった。

Gold: If you need any information, please let me know .

Model: If you need any information, please let me know .

Corrected: If you need any more information, please let me know .
 土肥康輔 須藤克仁 中村哲 奈良先端科学技術大学院大学 \{doi.kosuke.de8, sudoh, s-nakamura\}@is.naist.jp  