\section{はじめに}
文法誤り訂正は言語学習者の書いた文法的に誤りを含んだ文を文法的に正しい文へと訂正を行うタスクであり，第二言語学習者の作文支援システムとして有用である．文法的に誤りを含んだ文に対して訂正を行う際，訂正結果は複数存在することがある．例えば，\citeA{bryant-ng-2015-far}は，文法的に誤りを含んだ文に対して10人のアノテータがそれぞれ異なる有効な訂正手法を提案する場合があることを示した．この10人のアノテータに対して，明示的に異なる訂正文の作成を行わせていないが，実際に，訂正した文におけるアノテータ間の一致率は約16\%であった．表\ref{table:example}に\citeA{bryant-ng-2015-far}により作成された複数訂正文の例の一部を示す．\textbf{太字}は原文から訂正が行われた箇所を示している．1文から複数の訂正文が提案されているが，いずれも原文において誤りのある箇所のみにおいて多様な訂正が行われている．この様に，様々な訂正結果が存在するため，文法誤り訂正モデルが複数の訂正結果を提示することで，言語学習者は訂正結果を反映するかどうかの判断や，複数の訂正結果の中から好みの表現を選択することが可能になる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table1\begin{table}[t]\input{05table01.tex}\caption{BryantandNg(2015)により作成された1文に対する複数の訂正文の例}\label{table:example}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%一般に，文法誤り訂正は文法的に誤りを含んだ文から文法的に正しい文への機械翻訳タスクとして捉えられ，近年，ニューラルネットワークを用いた機械翻訳モデルが文法誤り訂正モデルとして用いられることが多い．実際に，機械翻訳モデルを文法誤り訂正モデルに適応することにより，文法誤り訂正タスクにおいても有効な結果を示している\cite{chollampatt2018mlconv,junczys-dowmunt-etal-2018-approaching,zhao-etal-2019-improving,kiyono-etal-2019-empirical,kaneko-etal-2020-encoder}．しかしながら，既存の文法誤り訂正モデルは1つの入力文に対して1つの有効な出力文の生成を目指しており，複数の訂正結果の生成を考慮していない．そこで我々は，文法誤り訂正において多様な出力を生成するという新たなタスクに取り組み，訂正度を制御可能な文法誤り訂正モデルを用いた手法を提案する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.1\begin{figure}[t]\begin{center}\includegraphics{28-2ia5f1.pdf}\end{center}\caption{1文中の単語編集率のヒストグラム}\label{fig:wer}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%訂正を行う際，必要最低限の書き換えのみ行うか，もしくは，より多くの書き換えを行うかという違いにより，訂正文に多様さが生じる．文法誤り訂正タスクにおいて訓練データとして一般的に使用されるLang-8\cite{2013B-C76}，評価データとして使用されるCoNLL-2014\cite{ng-etal-2014-conll}やJFLEG\cite{napoles-etal-2017-jfleg}では，1文中における訂正の量という意味での訂正度が異なることが知られている．また，\citeA{sakaguchi-etal-2016-reassessing}は，専門性の異なるアノテータにおいて，必要最小限の書き換えと流暢性を求めた書き換えの2種類の訂正をそれぞれ行うことで，多様な訂正文を作成し，それらの一致率は流暢な訂正において約15\%以下，最小限な訂正においても約38\%以下であったと報告している．つまり，1つの誤り文に対しても複数の訂正度を用いて訂正が行われるということである．しかし，既存の文法誤り訂正モデルは学習した単一の訂正度でのみ訂正を行っており，それらの異なる訂正度で訂正を行う手法の研究は行われていない．そこで本研究では，訂正度を制御可能な文法誤り訂正モデルを提案し，1つの入力文に対して複数の訂正度での訂正文を生成することで，多様な訂正文の生成を行う．手法としては，まず，文法誤りが訂正されているデータ内において，1文ごとの訂正度の情報を特殊トークンとして文に付与し，新たな訓練データを作成する．ここで，訂正度を表す指標として単語編集率を用いる．単語編集率とは文中の単語がどれだけ書き換えられたのかを表す指標であるため，文法的誤りを含んだ文と，その誤りを訂正した文の単語編集率は，文の訂正度を表していると言える．CoNLL-2014とJFLEGでは，JFLEGの方が訂正度が大きいことが知られており，実際に，図\ref{fig:wer}に示すグラフからも，CoNLL-2014よりもJFLEGの方が単語編集率が大きいため，単語編集率が訂正度を示していることが確認できる．そして，新たに作成した訓練データを用いて文法誤り訂正モデルの学習を行い，推論時には，入力文に複数の訂正度の特殊トークンを付与することで，付与した単語編集率に基づきモデルの訂正度を制御する．結果として，1つの入力文に対して1つの訂正度ではなく，複数の訂正度を用いて訂正を行うことが可能となり，多様な訂正文を得ることができる．我々は，さらに出力を多様化する手法として，誤り箇所を考慮したビームサーチ手法を提案する．文法誤り訂正において，複数の訂正結果を生成する手法としてはビームサーチを用いて$n$-bestを生成する方法が存在する\cite{grundkiewicz-etal-2019-neural,kaneko-etal-2020-encoder}．しかし，これらの研究では，1つの適切な訂正文の出力の探索のためにビームサーチを利用しており，多様な訂正結果の出力を目的としていない．さらに，通常のビームサーチを用いた$n$-best出力は多様性に欠けることが示されている\cite{DBS}．そのため，機械翻訳の分野などにおいて，多様な候補を生成するために，出力を多様にする制約を加えたいくつかの多様なビームサーチ手法が提案されている\cite{DBLP:journals/corr/LiMJ16,DBS}．これらの多様なビームサーチ手法は，文中の全てのトークンに対して様々な書き換えを行うことで，複数の出力文に多様性をもたらしている．一方で，入力文と出力文の大部分が共通しているようなタスクにおいては，これらの手法は適していないと考えられる．特に，文法誤り訂正においては，入力文の文法的に正しい部分に対しても書き換えが行われてしまうため，この様な入力文の全体に対して書き換えを行う手法は好ましくない．そのため，文法誤り訂正モデルは，入力文中の文法的に正しい部分は書き換えずに，誤りを含む部分に対してのみ様々な方法で訂正を行うことが望まれる．そこで本研究では，誤り箇所を考慮したビームサーチ手法を提案する．図\ref{fig:overview}は既存手法と提案手法との比較を図示したものである．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.2\begin{figure}[t]\begin{center}\includegraphics{28-2ia5f2.pdf}\end{center}\hangcaption{既存のビームサーチ手法と提案手法を比較した概要図．赤字の単語は誤りであることを，太字の単語は訂正が行われたことを示している．}\label{fig:overview}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\renewcommand{\theenumi}{\alph{enumi}}\begin{enumerate}\item通常のビームサーチ(Plainbeamsearch)では，訂正が特定のパスに集中しているため多様性がなく，類似した単語の組み合わせで文を生成している．\item既存手法の多様なビームサーチ(Diverseglobalbeamsearch)は，様々なパスを探索している．したがって，通常のビームサーチとは異なり，この方法では様々な単語の組み合わせで文が生成されるため，多様な出力を得ることができる．ただし，訂正する必要のない単語においても書き換えを行った出力も生成されてしまう．\item提案手法である誤り箇所を考慮したビームサーチ(Diverselocalbeamsearch)では，訂正が必要な単語に対してのみ様々なパスの探索を行う．それゆえ，我々の提案手法では，訂正が必要な箇所でのみ，通常のビームサーチよりも多様な単語を組み合わせた文の生成を行う．\end{enumerate}ここで，上記の手法は全て同じビーム幅であるが，パスが異なることに注意されたい．実験の結果，訂正度を制御可能な文法誤り訂正モデルを用いることで既存手法よりも多様な訂正結果を生成することが可能となり，誤り箇所を考慮したビームサーチと組み合わせることで，更に多様化可能であることを示した．本研究の主な貢献は以下の4つである．\begin{itemize}\item単語編集率により文法誤り訂正モデルの訂正度が制御可能なことを示した．\item既存の多様な文を生成する手法が文法誤り訂正においては適切な多様性をもたらさないことを示した．\item訂正度を制御した文法誤り訂正モデルの出力を用いることで多様な出力が得られることを示した．\item誤り箇所を考慮したビームサーチを提案し，訂正度を制御した文法誤り訂正モデルと組み合わせることで既存手法よりも適切に出力文に多様性をもたらすことを示した．\end{itemize}本稿の構成を示す．2章では，既存の出力文の制御や多様化の先行研究について紹介する．3章では，訂正度を制御した文法誤り訂正モデルを提案する．4章では，誤り箇所を考慮したビームサーチを提案する．5章では，BERTを用いた文分類を提案する．6章では，複数の人手による訂正文が付与されている評価データを用いて提案手法を評価する．7章では，提案モデルについて分析する．最後に8章で，本研究のまとめを述べる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{先行研究}
出力文に対して制御を行う研究は，文法誤り訂正の分野ではあまり行われておらず，主に機械翻訳の分野において行われている．\citeA{sennrich-etal-2016-controlling}は，機械翻訳において訓練データに文の丁寧さの情報を特殊トークンとして入力文に付与し，モデルの訓練を行うことで出力文の敬意表現の制御を行った．敬語の存在しない言語から敬語の存在する言語への翻訳時，訓練データの入力文に対して，1文対毎に敬語への翻訳であるかどうかの情報を特殊トークンを付与することで，推論時に任意の敬意表現での翻訳を可能にした．本研究では，訂正度の情報を\citeA{sennrich-etal-2016-controlling}と同様に訓練データに特殊トークンとして付与することで，入力文に対する訂正度の制御を行う．また，出力の多様化を行う研究についても文法誤り訂正の分野では行われていないが，他分野においては幾つか行われている．\citeA{MoE}は，mixtureofexperts(MoE)モデルを機械翻訳に用いることで多様な出力の生成を行った．このモデルは，1つの入力文に対して異なるexpertを用いることで多様な出力の生成を可能にしている．本研究では，モデルの構造は変えず，訓練データのみを変更することにより多様化を目指した．\citeA{li-etal-2016-diversity}は，ニューラルネットワークを用いた対話モデルにおいて，応答文の多様化を行った．一般に，対話モデルの出力として汎用的な応答が生成されることが多いが，推論時にのみ文脈と応答の相互情報量を最大化するような応答を生成させることにより多様化を行った．\citeA{DBS}は，推論時にビームを複数のグループに分け，グループ毎に順にビームサーチを行い，同じタイムステップ内の他のグループにて選択されたトークンに対して選択されにくくする制約を加えることで出力に多様性をもたらす手法を提案した．本研究では，同様に推論時にのみ訂正が必要な箇所に対して多様にする制約を加える手法を提案する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.3\begin{figure}[t]\begin{center}\includegraphics{28-2ia5f3.pdf}\end{center}\hangcaption{訂正度を制御した文法誤り訂正モデルにおける訓練方法（上部）と推論方法（下部）の概要図．太字は訂正箇所を示している．}\label{fig:wer_model}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{訂正度を制御した文法誤り訂正モデル}
\label{sec:wer}我々は，訓練データより求められた単語編集率に基づいて特殊トークンの付与を行い，新たな訓練データに基づき文法誤り訂正モデルを訓練することで，推論時に特殊トークンによって訂正度の制御可能な文法誤り訂正モデルを提案する．図\ref{fig:wer_model}に概要図を示す．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{訓練方法}初めに，訓練データ内の誤りを含む誤り文と，それに対応する訂正が行われた訂正文から挿入の回数，削除の回数，置換の回数の和が最小となるように動的計画法を用いて編集距離を計算する．そして，求めた編集距離を誤り文の文長で割り，単語編集率を計算する．算出した単語編集率を基に訓練データをソートし，文数が均等になるように$L$個の文集合に分割する．その分割した文集合ごとに異なる特殊トークンを定め，誤り文の文頭に付与する．この様にして，文頭に単語編集率によって定められた特殊トークンが付与された誤り文とそれに対応する訂正文の訓練データを作成した．この新たに作成した訓練データを用いて文法誤り訂正モデルを学習する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.4\begin{figure}[t]\begin{center}\includegraphics{28-2ia5f4.pdf}\end{center}\caption{CoNLL-2014の複数参照文における単語編集率の散布図}\label{fig:gold_wer}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{推論方法}推論時，入力文の文頭に$L$個の特殊トークンを付与するにより$L$個の異なる訂正度にて訂正が行われた文が生成される．ここで，評価データの参照文から単語編集率を求めることはできないため，入力文に応じた適切な特殊トークンを選択する必要がある．しかし，1つの入力文に対して訂正度はある程度定まるが，一意には定まらず，多様な訂正文を考慮した際に訂正度の幅が存在すると考えられる．図\ref{fig:gold_wer}は，CoNLL-2014において，1つの誤り文を訂正する際の訂正度にある程度の幅が存在することを示した図である．図中の点はある誤り文とそれに対応する人手で訂正を行った1つの参照文のペアを指しており，横軸は対象の誤り文に対する複数参照文の平均単語編集率，縦軸は対象のペアの単語編集率を表している．また，赤線は平均単語編集率を示した補助線である．この図より，全体的に複数参照文における平均単語編集率が高くなれば，参照文ごとの単語編集率も全体的に高くなるが，参照文ごとに単語編集率の幅が存在することがわかる．そこで，本研究では，BidirectionalEncoderRepresentationsfromTransformers(BERT)\cite{devlin-etal-2019-bert}を用いて入力文に対して訂正度の幅を考慮しながら適切な特殊トークンの選択を行った．詳細は\ref{subsubseq:bert_wer}節にて説明する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{誤り箇所を考慮したビームサーチ}
\label{sec:beam}我々は，訂正が必要な箇所のみに対して多様な訂正を行い，既に文法的に正しい箇所に対しては多様な訂正を行わない，誤り箇所を考慮したビームサーチを提案する．具体的には，誤り箇所を考慮したペナルティ$penalty$を各タイムステップ$t$の各ビーム$b$毎にモデルの対数出力確率に対して与えることで多様な出力の生成を目指した．ペナルティは以下の式で与えられる．\begin{equation}penalty_{b,t}=\lambdas_{b,t}+\beta\\\label{eq:penalty}\end{equation}$s_{b,t}$は，ビーム$b$,タイムステップ$t$における最も生成確率の高いトークンが，訂正が行われているトークンであるかどうかを[0,1]の範囲で表す指標である．具体的には，訂正が行われている場合は$s_{b,t}$の値が0に近く，訂正が行われていない場合は$s_{b,t}$の値が1に近くなることが望ましい．$\lambda$と$\beta$はハイパーパラメータであり，$\lambda$はペナルティの強さを調整し，$\beta$はペナルティがゼロになることを防ぐためのパラメータである．本研究では，BERTを用いて入力文とタイムステップ$t$までの出力文から訂正が行われているかどうかの分類を行い，訂正が行われていないと分類された確率を$s_{b,t}$に用いた．詳細は，\ref{subsubseq:bert_beam}節にて説明する．以下の式のように，このペナルティを文法誤り訂正モデルの対数出力確率$\logp$に与えることで，ビームサーチのスコア$k$に対して制約を加えた．\begin{equation}k_{b,t}=penalty_{b,t}\logp_{b,t}\\\label{eq:bs}\end{equation}この制約により，訂正が行われていないビームに対しては選択されにくくなり，反対に，訂正が行われているビームに対しては選択されやすくなる．図\ref{fig:dlbs}は，入力文として``Thisessaywillillustrateontwoaspect.''が与えられた場合のビーム幅2，タイムステップ$t$における概要図である．図の上部は，直前のタイムステップ$t-1$において``illustrate''を選択した第1ビームを，下部は，``this''を選択した第2ビームを表しており，色の薄さは生成確率の高さに比例している．このとき，タイムステップ$t$の第1ビームにおいて最も生成確率の高いトークンは，入力文と同じ``on''であり，第2ビームにおいては，入力文から書き換えを行った``in''である．通常のビームサーチでは，それぞれ生成確率の高い，``illustrateon''と``thisin''が選択される．しかし，我々の提案手法では，第1ビームは書き換えを行っておらず，対して，第2ビームは書き換えを行っているため，第1ビームにのみペナルティが与えられ，最終的に訂正を行っている第2ビームから``thisin''と``thiswith''が選択されることになる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.5\begin{figure}[t]\begin{center}\includegraphics{28-2ia5f5.pdf}\end{center}\hangcaption{ビーム幅2における誤り箇所を考慮したビームサーチの概要図．薄い色は生成確率が高いことを示している．}\label{fig:dlbs}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{BERTを用いた文分類}
\label{subsec:bert}BERTは大規模データにより事前学習された言語表現モデルであり，様々な自然言語処理のタスクにおいて高い性能を発揮している．実際に，文法誤り訂正と類似タスクである文法的に誤っている箇所の検出を行う文法誤り検出というタスクにおいてもBERTが用いられている\cite{Kaneko2019MultiHeadMA}．BERTは入力として文または文対を受け取り，それらを符号化するモデルである．学習時，入力文対が連続した文であるか否かの分類や，入力トークンの一部を[MASK]トークンに置き換えた上で，元のトークンの推定を行うことで高性能な言語表現を獲得している．また，BERTの入力には先頭に[CLS]というトークンが挿入されており，このトークンに対応する隠れ層が入力文もしくは入力文対の分散表現を表している．我々は，訂正度を制御した文法誤り訂正における適切な特殊トークンの選択や，誤り箇所を考慮したビームサーチにおける$s_{b,t}$としてBERTの[CLS]トークンの分散表現を分類する手法を用いた．いずれの手法も事前学習済みのBERT\footnote{使用した事前学習済みモデル：\url{https://huggingface.co/bert-base-cased}}に対して再訓練を行った．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{BERTを用いた訂正度の推定}\label{subsubseq:bert_wer}\ref{sec:wer}章にて述べた通り，訂正度を制御した文法誤り訂正モデルだけでは，参照文が与えられない限り，推論時に入力文に対して適切な訂正度の判別はできない．本章では，このBERTを用いた入力文に対して適切な訂正度の選択手法について述べる．具体的な手法としては，BERTに対して誤り文のみを入力し，それに対応する訂正度を$L$値分類として出力させるというものである．ここで，1つの誤り文に対して複数の訂正度が考えられるが，誤り文に含まれる誤り箇所の個数は限られており，それに対応して単語編集率も限られているため，ある程度の分類は可能であると考えられる．実際に訂正度を制御した文法誤り訂正モデルにおいて$n$-best出力を得る際，BERTの予測確率を用いて複数の特殊トークンの出力から$m_{i}$-bestを選択し，それらを合わせて最終的な$n$-bestを得る．1つの特殊トークンによる出力を用いるのではなく，複数の訂正度による出力を選択することで，より多様な出力を得ることができる．具体的な選択手法としては，まず，式\ref{eq:softmax}に示す通り，BERTの特殊トークンに対する出力スコア$o=(o_1,...,o_{i},...,o_{L})$に対してSoftmax関数を用いて，特殊トークンごとの出力確率$p=(p_1,...,p_{i},...,p_{L})$を得る．得られた出力確率に対して式\ref{eq:m}に示す通り，$n$を掛け，小数点以下を四捨五入することで特殊トークン毎に採用する$m_{i}$-bestの数を決定した．\begin{gather}\label{eq:softmax}p_{i}=\frac{\exp(o_{i})}{\sum_{l=1}^L\exp(o_{l})}\\\label{eq:m}m_{i}=\mathrm{round}(n\timesp_{i})\end{gather}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{BERTによる訂正箇所の分類}\label{subsubseq:bert_beam}\ref{sec:beam}章で述べた通り，入力文とタイムステップ$t$までの出力文から訂正が行われているかどうかの分類を行う必要がある．動的計画法などを用いて入力文と出力文の対応を取ることで，訂正が行われているか否かの判定が可能になると考えられるが，データ内の文数$\times$ビーム幅$\times$タイムステップ数の処理が必要となる．本研究では，より高速にバッチ処理が可能なBERTを用いて入力文とタイムステップ$t$までの出力文から訂正が行われているかどうかの分類を行った．本節では，誤り箇所を考慮したビームサーチの$s_{b,t}$に対するBERTの利用法について説明する．$s_{b,t}$は，\ref{sec:beam}章にて述べた通り，タイムステップ$t$，ビーム$b$の最も生成確率の高いトークンにおいて，訂正が行われているかどうかを表す指標である．そこで，BERTに対して誤り文と，その誤り文に対する，あるタイムステップまでのモデルの出力文の2文を入力し，モデルの出力文の最後のトークン，つまり，あるタイムステップ$t$，ビーム$b$において生成確率が最大であるトークンが訂正されたトークンであるかどうかの分類を行わさせる．そして，BERTが訂正していないと分類した確率を$s_{b,t}$として用いる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table2\begin{table}[t]\input{05table02.tex}\caption{データセットの概要}\label{table:dataset}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{実験}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{データセット}表\ref{table:dataset}に本実験において使用したデータセットの概要を示す．訓練データとしては，学習者支援に関する国際会議であるWorkshoponInnovativeUseofNLPforBuildingEducationalApplications(BEA)において2019年に開催されたSharedTaskonGrammaticalErrorCorrection\cite{bryant-etal-2019-bea}のRestrictedtrackにて使用された訓練データ(BEA-train)を用いた．この訓練データには，TheFirstCertificateinEnglish(FCE)を受験した学習者の回答から集められたFCEコーパス\cite{yannakoudakis-etal-2011-new}，言語学習者のためのSNSであるLang-8の添削データより集められたLang-8コーパス\cite{2013B-C76}，シンガポール国立大学の英語学習者である学生が作成した作文から集められたNUSCorpusofLearnerEnglish(NUCLE)\cite{dahlmeier-etal-2013-building}，英語学習者の学生のライティングを支援するWrite$\And$Improveと英語を母語とする学生の作文より集められたW$\And$I+LOCNESSコーパス\cite{bryant-etal-2019-bea,granger}の4つのコーパスが含まれている．ただし，前処理として訂正が行われていない文と訂正結果が空白である文対は取り除いた．また，訓練時，最適なモデルのエポック数を決定するために，BEA-2019において使用された開発データ(BEA-valid)を用い，この開発データに対するlossが最小となるエポック数を最適なモデルのエポック数とし，その時点でのモデルを実験に用いた．既存手法の多様なビームサーチ\cite{DBS}や提案手法である誤り箇所を考慮したビームサーチに使用するハイパーパラメータに関しては，JFLEGを用いて最適化を行った．JFLEGは4つの参照文が存在しており，CoNLL-2014には18の参照文が存在する．ここで，CoNLL-2014SharedTask:GrammaticalErrorCorrectionにて付与された参照文数は2つであるが，\citeA{bryant-ng-2015-far}により8つ，\citeA{sakaguchi-etal-2016-reassessing}により8つの参照文が新たに作成されているため，それらを全て組み合わせ，18の参照文数となる．訂正度の推定に用いるBERTの再訓練には，訂正度を制御した文法誤り訂正モデルの訓練に用いた特殊トークンを付与したデータセットと同じ訓練データを用い，特殊トークンを付与する前の誤り文を入力し，そこから特殊トークンを予測させるという訓練を行った．ただし，ランダムに5,000文選択し，開発データとして用いた．訂正箇所の分類に用いるBERTの再訓練に用いたデータセットとしては，NUCLEを用いた．ERRANT(grammaticalERRorANnotationToolkit)\cite{bryant-etal-2017-automatic}を用いて，訂正文において誤り文から挿入・置換・削除の訂正が行われている箇所を抽出することで，誤り文と訂正が行われている単語までの訂正文のペアを作成した．訂正箇所の分類に用いるBERTにおいては訂正が行われていない場合，高いスコアであることが望まれるため，これを負例としてラベル付けした．ただし，削除の訂正に関しては，削除した単語の直後の単語までの訂正文を負例とした．正例としては，誤り文と訂正が行われていない単語までの訂正文のペアを作成し，負例と同数になるようにランダムに選択することで作成した．また，開発データとしては，CoNLL-2013SharedTaskonGrammaticalErrorCorrection\cite{ng-etal-2013-conll}にて用いられたデータセットであるCoNLL-2013に対して訓練データと同様の処理を行ったデータを用いた．以上の処理により，NUCLEは元々57,151文対存在するが，168,524文対の学習データとなり，元々1,381文対存在するCoNLL-2013は．11,009文対の開発データとなった．また，再訓練の結果，開発データにおけるF値は約0.97であった．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{評価方法}我々は，手法毎の性能を比較するために以下の3つの評価指標を設定した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\paragraph{訂正の多様性の評価(C-score)}訂正結果の多様性を評価するために，モデル出力の$n$-bestと複数参照間の一致率を評価する．一致率の算出方法としては，機械翻訳における多様な翻訳文生成を目的とした2020DuolingoSharedTask\cite{staple20}の評価指標として使用された重み付き再現率を使用する．具体的には，モデル出力の$n$-bestと複数参照文間において完全一致した文数を求め，一致した参照文に応じて重み付けを行う．そして．重み付けされた値を評価データ内の全参照文数で割ることで一致率を算出する．ただし，本研究においては，ある1つの入力文に対する参照文間で重複した回数を参照文の総数で割った値を重みとして使用した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\paragraph{訂正箇所の正しさの評価(DF-score)}入力文全体を書き換えて多様化するのではなく，実際に訂正が必要な箇所のみに書き換えが行われているかどうかの評価を行う．評価方法としては，まず式\ref{eq:df}に示す通り，誤り文errの$n$-gramから参照文に対してのdocumentfrequency(df)を求める．ここで，$ng^{err}=(ng_1^{err},...,ng_{i}^{err},...,ng_{n}^{err})$は誤り文の$n$-gram集合，$|\{r:r\ning_{i}^{err}\}|$は$ng_{i}^{err}$を含む参照文$r$の総数，$|R|$は総参照文数である．次に，式\ref{eq:cap}に示すとおり，誤り文の$n$-gram集合とモデルの出力文hypの$n$-gram集合$ng^{hyp}$の積集合$ng^{err\cap{hyp}}$を求める．そして，式\ref{eq:dfscore}に示す通り，モデルの出力文における$ng_{i}^{err\cap{hyp}}$の出現回数$\mathrm{COUNT}(hyp,ng_{i}^{err\cap{hyp}})$を求め，その$n$-gramに対応するdfを出現回数に掛け，さらに誤り文における$ng_{i}^{err}$の出現回数$\mathrm{COUNT}(err,ng_{i}^{err})$にdfを掛けた値の合計値で割ることで，そのモデル出力に対するスコアを算出する．\pagebreak\begin{align}\label{eq:df}df_{i}&=\frac{|\{r:r\ning_{i}^{err}\}|}{|R|}\\\label{eq:cap}ng^{err\cap{hyp}}&=ng^{err}\capng^{hyp}\\\label{eq:dfscore}df_{score}&=\frac{\sum_{i=1}^n\mathrm{COUNT}(hyp,{ng_{i}}^{err\cap{hyp}})df_{i}}{\sum_{i=1}^n\mathrm{COUNT}(err,ng_{i}^{err})df_{i}}\end{align}このスコアは，dfが高い$n$-gram，つまり書き換える必要のない$n$-gramがモデルにより書き換えられ，出力文に出現しない場合，大きく低下する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\paragraph{文法誤り訂正の精度評価(G-score)}手法毎における文法誤り訂正タスクとしての性能を評価するため，一般的に文法誤り訂正タスクにおいて用いられる評価指標を用いて評価を行った．具体的には表\ref{table:dataset}に示す通り，JFLEGに対してはGLEUscore\cite{napoles-etal-2015-ground}を，CoNLL-2014に対してはMaxMatch($\mathrm{M^2}$)score\cite{dahlmeier-ng-2012-better}を用いて評価した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{文法誤り訂正モデル}我々は，文法誤り訂正モデルとしてTransformerbase\cite{transformer}を用い，パラメータも同様のものを用いた\footnote{使用したフレームワーク：\url{https://github.com/pytorch/fairseq/releases/tag/v0.9.0}}．ベースラインモデルとしては，BEA-trainをそのまま訓練データとして用いて訓練したモデルを用いた．ビームサーチ時のビーム幅は生成したい$n$-best出力の$n$と同様の値を用いた．既存手法の多様なビームサーチ\cite{DBS}におけるハイパーパラメータであるDiversityStrengthは0.6を，NumberofGroupsはビーム幅と同様の値を用いた．提案手法である誤り箇所を考慮したビームサーチのハイパーパラメータとして，ベースラインモデルに対しては$\lambda=0.5$，$\beta=1.0$を，訂正度を制御した文法誤り訂正モデルに対しては$\lambda=0.1$，$\beta=1.0$を用いた．訂正度を制御した文法誤り訂正においては，BEA-train内の全誤り文の文頭に対応する特殊トークンの付与を行った新たな訓練データを作成し，この新たに作成した訓練データを用いてモデルの訓練を行った．JFLEGにおいて，異なる特殊トークンの種類数を用いて学習を行った結果を表\ref{table:num_token}に示す．ここで，特殊トークンの種類数が1の場合は特殊トークンを付与していない通常の訓練データを用いた場合の結果を示している．BERTaccuracyはBERTを用いた訂正度の推定精度を示しており，特殊トークンの種類数が多くなるにつれて推定精度が低下しており，その他の評価スコアも同様に低下している．したがって，BERTによる推定精度が低いと適切でない訂正度の出力が選択されることになり，適切に多様性を向上できなかったと考えられる．特殊トークンの種類数としては2のときが最も高いスコアとなったため，本研究においては2を選択した．訂正度を制御した文法誤り訂正モデルの訓練に使用した特殊トークン毎の単語編集率の閾値を表\ref{table:token}に示す．BEA-train内の全文対における単語編集率に基づいて2つの集合に分け，$\langlewer\_1\rangle$（単語編集率の低い文集合）,$\langlewer\_2\rangle$（単語編集率の高い文集合）の2つの特殊トークンを定義した．特殊トークン毎の単語編集率の最大値と最小値に重複が見られるのは，それぞれの特殊トークンの集合において文数が等しくなるように分割したためである．また，原文の単語数を超える単語数の挿入，削除，置換が行われる場合，単語編集率は1を超える．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table3\begin{table}[t]\input{05table03.tex}\caption{JFLEGにおける特殊トークンの種類数別の結果}\label{table:num_token}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table4\begin{table}[t]\input{05table04.tex}\caption{訓練データ内の特殊トークンに対応する単語編集率の閾値と文数}\label{table:token}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table5\begin{table}[t]\input{05table05.tex}\caption{CoNLL-2014における10,15,20-bestの実験結果}\label{table:result}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{実験結果}表\ref{table:result}は，ベースラインモデルに通常のビームサーチを適応したモデル(PBS)，多様なビームサーチを適応したモデル(DGBS)\cite{DBS}，mixtureofexperts(MoE)\cite{MoE}と，提案手法である訂正度を制御した文法誤り訂正モデル(WER)，WERに誤り箇所を考慮したビームサーチを適応したモデル(+DLBS)の評価データにおける実験結果である．また，10,15,20-bestにおいて実験を行った．*は提案手法がPBSに対して，$\dagger$は+DLBSがWERに対して，ブートストラップ法により有意水準0.05で有意差があることを示す．既存手法であるDGBSとMoEは，PBSと比較すると出力の多様性を示すC-scoreが低下しており，機械翻訳などにおいては有効なこれらの手法が，文法誤り訂正においては有効でないことがわかる．さらに，15,20-bestにおいてDGBSのDF-scoreが大きく低下していることから，訂正が不要な部分においても書き換えを行っていると考えられる．一方で，提案手法であるWERは，G-scoreは低下しているが，C-scoreにおいていずれの既存手法よりも上回っており，DF-scoreも高いことから，WERは不要な訂正を行うことなく，多様な出力を生成できていることが確認できる．ここで，G-scoreの低下の主な原因として，``Itishereditary.''という入力文に対して，``Itisahereditary.''への訂正という不必要な冠詞の挿入などが多く見られ，多様化に伴い，細かい訂正が増加したことが挙げられる．DLBSをPBSに適用した場合は，10,15-bestにおいてC-scoreが向上し，DF-scoreも向上した．同様に，WERに適用した場合は10,20-bestにおいてC-scoreが向上し，DF-scoreも向上していることから訂正が必要な箇所のみを多様化していることが確認できる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table6\begin{table}[t]\input{05table06.tex}\caption{特殊トークン毎の誤り訂正結果}\label{table:control}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{分析}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{訂正度の制御に関する分析}\label{subseq:control}訂正度を制御した文法誤り訂正モデルにおいて，実際に特殊トークンによりモデルの訂正度が制御できているかどうかの実験を行った．異なる特殊トークンでの訂正度の違いを分析するため，この実験では特殊トークンの種類数を4として学習したモデルを利用した．そのため，この分析においてはBEA-train内の全文対における単語編集率に基づいて4つの集合に分け，$\langlewer\_1\rangle$（単語編集率の最も低い文集合）,$\langlewer\_2\rangle$,$\langlewer\_3\rangle$,$\langlewer\_4\rangle$（単語編集率の最も高い文集合）の4つの特殊トークンを定義した．表\ref{table:control}は，全て同一のモデルであるが，それぞれ推論時の入力文の全文に対して異なる特殊トークンを付与した場合の結果を示している．例えば，$\langlewer\_1\rangle$の行はJFLEGとCoNLL-2014の全入力文の文頭に$\langlewer\_1\rangle$を付与して推論させた場合の結果である．単語編集率の列は，それぞれの評価データの入力文とそれに対応するモデルの出力文から単語編集率の平均値を求めた結果であり，Goldの行は参照文との単語編集率の平均値である．これらの値を特殊トークンごとに比較すると，特殊トークンにより定義された単語編集率の大きさに比例して実際の単語編集率も変化していることがわかる．つまり，特殊トークンによってモデルの訂正度を制御することが可能であることを示している．しかし，同一特殊トークン内でもJFLEGとCoNLL-2014における単語編集率が異なることがわかる．一方で，同一特殊トークン内における単語編集率の差はGoldにおける単語編集率の差とほぼ同様であることから，このモデルは特殊トークンにより定義された単語編集率だけに従って訂正をするのではなく，入力文も考慮して訂正度を制御していると考えられる．また，JFLEGにおいて最も高いGLEUスコアとなったのは，特殊トークン$\langlewer\_3\rangle$を付与した場合であり，次は特殊トークン$\langlewer\_2\rangle$を付与した場合である．一方で，CoNLL-2014において最も高い$\mathrm{F_{0.5}}$となったのは，特殊トークン$\langlewer\_2\rangle$を付与した場合であり，次は特殊トークン$\langlewer\_1\rangle$を付与した場合である．この差は，JFLEGとCoNLL-2014において訂正度が異なるため，JFLEGにおいてはCoNLL-2014よりもより大きな訂正度で訂正を行った場合の方がスコアが向上したと考えられる．それぞれの特殊トークンでの適合率(P)と再現率(R)を見ると，特殊トークン$\langlewer\_1\rangle$での適合率が最も高く，再現率が低い．一方で，特殊トークン$\langlewer\_4\rangle$での適合率が最も低く，再現率が高くなっている．このことから，単語編集率と比例して再現率が変化し，反対に単語編集率と反比例して適合率が変化していることがわかる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{BERTによる特殊トークン推定に関する分析}図\ref{fig:bert}は，CoNLL-2014において，BERTによる特殊トークン毎の予測結果と実際の参照文の単語編集率に基づいた特殊トークンとの混同行列を示している．縦軸は，CoNLL-2014の複数参照文から算出した平均単語編集率に基づいた正解ラベルであり，横軸は，BERTにより特殊トークン毎の$m$-bestを選択する際の予測結果を示している．また，図中の値は実際にBERTにより選択された$m$-bestの総数を示しており，色の濃さは文数の多さと比例している．まず，表\ref{table:control}に示した通り，CoNLL-2014の平均単語編集率は低いため，正解ラベルも$\langlewer\_1\rangle$が多く，偏りが見られる．同様に，BERTによる予測結果も$\langlewer\_1\rangle$と予測した結果が多くなっている．ただし，正解ラベルが$\langlewer\_2\rangle$の場合においても$\langlewer\_1\rangle$と予測した結果が多くなっているため，訂正度が低い方に予測を行う傾向があるということがわかる．図\ref{fig:cscore}は，正解ラベルとBERTによる予測結果の組み合わせ毎のC-scoreを示した混同行列である．ただし，C-scoreを求める際，参照文を全文用いるとBERTにより出力文が選択されていない，つまり，出力文が存在しない場合，不当にスコアが低くなるため，出力文が選択されている入力文に対応する参照文のみを用いて評価した．スコアを比較すると，正解ラベルが$\langlewer\_1\rangle$であり，予測結果も$\langlewer\_1\rangle$の場合が最もスコアが高くなっている．また，正解ラベルが$\langlewer\_1\rangle$であり，予測結果が$\langlewer\_2\rangle$である文数は少ないが，スコアとしては高くなっている，これは，参照文に訂正が少ないデータが多いため，複数参照文内にも重複が多く，全体的にスコアが上がりやすいためであると考えられる．一方で，正解ラベルが$\langlewer\_2\rangle$の場合は，全体的にスコアが低くなっている．さらに，予測結果が$\langlewer\_2\rangle$である場合もスコアが高くなっておらず，予測結果が$\langlewer\_1\rangle$の場合のスコアの方が僅かに高くなっている．この結果の原因としては，まず，訂正度が高い方が訂正箇所が多く，文の完全一致で評価しているため正解ラベルが$\langlewer\_1\rangle$の場合よりも難しい問題となっているためであると考えられる．加えて，BERTにより選択された文数が少なく，$\langlewer\_2\rangle$と予測された文数は$\langlewer\_1\rangle$と予測された文の半数であるため，スコアが低くなったと考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.6and7\begin{figure}[t]\setlength{\captionwidth}{200pt}\begin{minipage}[t]{200pt}\begin{center}\includegraphics{28-2ia5f6.pdf}\end{center}\hangcaption{CoNLL-2014におけるBERTによる特殊トークンの推定結果}\label{fig:bert}\end{minipage}\hfill\begin{minipage}[t]{200pt}\begin{center}\includegraphics{28-2ia5f7.pdf}\end{center}\hangcaption{CoNLL-2014におけるBERTにより選択された特殊トークンごとの出力のC-score}\label{fig:cscore}\end{minipage}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{多様化に関する分析}表\ref{table:nbest}の上部は，訂正度を制御した文法誤り訂正モデルにおける特殊トークン毎のC-scoreにおいて，誤り箇所を考慮したビームサーチの影響を比較した表である．この表より，ほぼ全ての出力において，誤り箇所を考慮したビームサーチを用いることで多様性が向上することがわかる．$\langlewer\_1\rangle$と$\langlewer\_2\rangle$を比較すると，訂正度が高い$\langlewer\_2\rangle$の方がスコアが低くなっているが，これはCoNLL-2014の訂正度が元々低いため，訂正度を高くしてもスコアの向上が見られなかったと考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table7\begin{table}[t]\input{05table07.tex}\caption{特殊トークン毎の出力文の多様性}\label{table:nbest}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%表中のSingleWERはBERTによって入力文から予測された特殊トークンの中で最も予測確率の高い単一の特殊トークンの出力文を選択した場合の結果である．一方で，MultiWERはBERTの予測確率から複数の特殊トークンの出力文を選択した場合の結果であり，表\ref{table:result}のWERや+DLBSと同様の結果である．これらを比較すると，SingleWERでは，スコアが低下しているため，1つの入力文に対して単一の訂正度ではなく，複数の訂正度を用いることで多様な訂正文が得られることがわかる．また，GoldWERは複数参照文から求めた平均の単語編集率から入力文に付与する特殊トークンを設定した場合で，OracleWERは特殊トークン$\langlewer\_1\rangle$と$\langlewer\_2\rangle$の$2\timesn$-bestの中からスコアが最も高くなるように$n$-bestを選択した場合のスコアを表している．この結果より，参照文より求めた特殊トークンを付与することでは，最良の結果が得られないことがわかる．\ref{subseq:control}節で述べた通り，入力文も考慮して訂正度の制御が行われており，特殊トークンにより定義された単語編集率に基づいてモデルの訂正度が変化するわけではないため，高いスコアが得られなかったと考えられる．一方で，最良な$n$-bestを選択することで，スコアが大幅に向上していることから，異なる特殊トークン間の出力に大きく多様性が存在していると考えられる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{おわりに}
本研究では，文法誤り訂正において多様な訂正文を生成するための手法を提案した．我々は，訓練データに対して単語編集率に基づいた特殊トークンの付与を行い，新たに作成した訓練データで文法誤り訂正モデルを訓練することで出力文の訂正度の制御を可能にした．また，このモデルにより生成された訂正文が既存手法よりも多様な訂正文を生成可能であることも示した．さらに，誤り箇所を考慮したビームサーチを組み合わせることで，訂正が必要な箇所のみをより多様にした出力が得られる事を示した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\acknowledgmentLang-8のデータ使用にあたり，データを共有して頂きました株式会社Lang-8の喜洋洋様に感謝申し上げます．本論文の内容の一部は，The57thAnnualMeetingoftheAssociationforComputationalLinguistics:StudentResearchWorkshopとThe28thInternationalConferenceonComputationalLinguisticsで発表したものである\cite{hotate-etal-2019-controlling,hotate-etal-2020-generating}．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\bibliographystyle{jnlpbbl_1.6}\bibliography{05refs}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\begin{biography}\bioauthor{甫立健悟}{2019年首都大学東京（現東京都立大学）システムデザイン学部システムデザイン学科情報通信システムコース卒業．2021年東京都立大学システムデザイン研究科システムデザイン専攻情報科学域博士前期課程修了．同年株式会社リクルート入社．現在に至る．}\bioauthor{金子正弘}{2016年北見工業大学工学部情報システム工学科卒業．同年，首都大学東京システムデザイン研究科博士前期課程に進学．2018年博士前期課程修了．同年，首都大学東京システムデザイン研究科博士後期課程に進学．2019年より日本学術振興会特別研究員(DC2)を経て，2021年博士後期課程修了．博士（情報科学）．同年より東京工業大学情報理工学院研究員．現在に至る．}\bioauthor{勝又智}{2018年首都大学東京システムデザイン学部情報通信システムコース卒業．2020年同大学大学院システムデザイン研究科情報科学域博士前期課程修了．同年株式会社レトリバ入社．現在に至る．自然言語処理の研究に従事．}\bioauthor{小町守}{2005年東京大学教養学部基礎科学科科学史・科学哲学分科卒業．2007年奈良先端科学技術大学院大学情報科学研究科博士前期課程修了．2008年より日本学術振興会特別研究員(DC2)を経て，2010年博士後期課程修了．博士（工学）．同年より同研究科助教を経て，2013年より首都大学東京システムデザイン学部准教授．大規模なコーパスを用いた意味解析および統計的自然言語処理に関心がある．情報処理学会，人工知能学会，言語処理学会，ACL各会員．}\end{biography}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\biodate\end{document}