\section{はじめに}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{本解説論文の背景}ニューラル機械翻訳(NMT)技術の急速な発展により，機械翻訳の応用が次々に拡がっていることは論を俟たない．近年では新聞記事等の幅広い話題を扱う機械翻訳研究が加速しつつあり，一部の文では人手の翻訳と遜色ない水準の翻訳結果が得られるとも言われている．ここに至るまでの機械翻訳の研究開発や実用化において，特許文書はその対象として重要な役割を担ってきた，そして現在も担っていると言える．特許の審査においては各国の特許文書あるいは様々な技術文書を参照することが不可欠であり，審査官による公正かつ迅速な審査のために機械翻訳の活用について積極的な取り組みが続けられている．こうした取り組みは日本国特許庁(JPO)をはじめ，世界知的所有権機関(WIPO)や，米国特許商標庁(USPTO)，欧州特許庁(EPO)等国際的に行われているものであり，中国を筆頭に特許出願数が増加を続ける中での業務改善を目的に，機械翻訳の活用を公的機関で大規模に行っていることは注目に値する．WIPOでは独自の機械翻訳サービスWIPOTranslate\footnote{\url{https://www.wipo.int/wipo-translate/}}を開発，提供しており，EPOではGoogleとの連携による機械翻訳サービス\footnote{\url{https://www.epo.org/searching-for-patents/helpful-resources/patent-translate.html}}を提供している．JPOでも長年にわたり機械翻訳が活用されており，統計的機械翻訳，NMTへの技術トレンドの変化に合わせた調査事業が継続的に実施され\footnote{\url{https://www.jpo.go.jp/system/laws/sesaku/kikaihonyaku/kikai_honyaku.html}}，またそうした新しい機械翻訳技術の導入による特許情報プラットフォームの機能改善が進められている．一方の学術研究においては，特許が公開の文書であること，また国際出願のために同一の出願内容が複数言語に翻訳された形で存在することを背景に，コーパスベース機械翻訳の研究用リソースとして広く使われてきた経緯がある．特に日本語では2000年代の統計的機械翻訳(SMT)技術の伸長期に百万文規模の大規模な機械翻訳研究用対訳コーパスが広く利用できなかったこともあり，2008年のNTCIR-7PATMT\cite{NTCIR7PATMT}以降，NTCIR-8\cite{NTCIR8PATMT}，NTCIR-9\cite{NTCIR9PatentMT}，NTCIR-10\cite{NTCIR10PatentMT}で利用された日英，日中対訳コーパスは多くの機械翻訳研究で活用された．近年では特許庁が提供する，アジア言語翻訳ワークショップ(WorkshoponAsianTranslation)の共通タスクで利用されているJPOPatentCorpus\footnote{\url{http://lotus.kuee.kyoto-u.ac.jp/WAT/patent/}}，また，高度言語情報融合(ALAGIN)フォーラムから提供されているJPO・NICT対訳コーパス\footnote{\url{https://alaginrc.nict.go.jp/jpo-outline.html}}が存在する．こうした研究用リソースの存在は特許機械翻訳の研究開発に非常に有益であると言えるが，NTCIR以後の日本の機械翻訳研究でよく用いられた論文抄録の対訳コーパスASPEC\cite{NAKAZAWA16.621}，多くの機械翻訳研究においてベンチマークとして用いられるWMTNewsTaskデータ\cite{akhbardeh-etal-2021-findings}と比べて，特許のデータを扱う機械翻訳研究の発表は少なくなってきていることは否定できない．こうした背景から，本解説論文では実用的な特許機械翻訳に向けた諸課題に着目し，それらに関係する現在の技術をNMTを中心に概観する．そして，特許機械翻訳とその他の一般的機械翻訳の現状の課題の類似点と相違点，現状の到達点と実用とのギャップ，また今後の方向性について論じる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{本解説論文で扱う特許機械翻訳の課題}上述の通り，本解説論文では特許機械翻訳において特徴的と考えられる以下の諸課題に着目し，それぞれの課題に関係する研究を示した上で技術の現状と将来について論じる．\begin{description}\item[訳抜け・過剰訳への対策（2節）]NMTにおいて顕著な問題としてよく挙げられるのが，入力文中の情報が訳出されない「訳抜け」，同じ内容を繰り返し出力してしまう「過剰訳」である．それ以前の統計的機械翻訳においてはあまり問題視されていなかった点でもあり，近年様々な対策が試みられている．\item[用語訳の統一（3節）]特許のような技術文書においては，同一の事物や概念を表す用語は翻訳においても統一して同一の用語で訳出しなければならないが，機械翻訳では言葉の多義性とのトレードオフがありしばしば異なる訳語を選択してしまうという深刻な問題が生じることがある．NMTでは厳密な訳語の指定は翻訳処理の柔軟性を損なう懸念もあり，工夫が必要である．\item[長文対策（4節）]特許文書では請求項を代表に長文による記述が多用される．長文の翻訳は，入力文の解析や訳語の選択，訳文の構成について膨大な候補の中からの選択を余儀なくされ，探索誤りが生じやすい．特にNMTにおいては訳抜け・過剰訳の問題が重なることがあり重要な課題であるが，実際に長文に焦点を当てた研究はあまり多くない．\item[低リソース言語対対策（5節）]英語を中心とする代表的な言語については大規模な対訳コーパス・単言語コーパスの蓄積が進みコーパスベース機械翻訳が有効に機能する状況となりつつあるが，今後の成長が予想される東南アジア諸国等における現地語文書については依然としてコーパスが不足しており翻訳が難しい．近年の機械翻訳研究でも非常に重視されている課題でもある．\item[評価（6節）]機械翻訳の精度が向上したことにより，機械翻訳の品質評価の重要性がより増していると言える．従来の表層的な自動評価手法の限界は広く知られるようになり，評価手法の研究が再び盛んになってきている．また，人手評価についても方法が変化しつつある．特許庁が独自に機械翻訳評価のマニュアルを公開している等の背景もあり，特許機械翻訳の評価は注目に値する．\item[翻訳高速化・省メモリ化（7節）]国際出願特許の審査，技術動向の調査等，特許文献に対する言語横断情報アクセスの重要性は飛躍的に増大してきており，日々大量の特許文書・技術文書の翻訳が求められる状況である．そうした中で計算効率は非常に重要な要因であり，大規模化が続くNMTモデルをそのまま実用に供することは容易ではない．モデルや計算の工夫による様々な対策が試みられている．\end{description}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{訳抜け・過剰訳への対策}
機械翻訳において訳抜けや過剰訳は非常に深刻な問題である．NMT以前の機械翻訳においては，語・句・構文構造等の要素を対訳知識を利用して置換することで翻訳を行っていたため，入力文をすべて置換する過程で大きく訳抜けや過剰訳が生じることはさほど多くなかったという面もあり特別な注目を集めることは少なかった．しかし，通常NMTではそのような明示的な置換を行わないことから，入力文中で訳出されない要素や複数回訳出される要素が現れないことの保証が困難である．こうした問題への対策として，これまでに様々な研究が行われている．それらを大きく分類すると，次のように分けられる．(1)NMT内のネットワーク構造でのモデル化，(2)訳抜けを表すスコアとの組み合わせ，(3)低頻度語・未知語・曖昧性が高い訳語の対策，(4)出力長制御，(5)強化学習によるパラメータ最適化の補正，(6)繰り返しの抑制，(7)訓練データのノイズ対策，(8)NMTの動作分析．以下，それぞれ内容を説明する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{NMT内のネットワーク構造でのモデル化}\label{sec:2-nmt-model}NMTのネットワーク構造を統計的機械翻訳(SMT)のカバレッジベクトル\cite{10.5555/1734086}を参考にして一部変更することで訳抜け・過剰訳を減らす試みである．翻訳時に各入力トークンに対応するアテンション確率を蓄積していき，それらの値をアテンション確率の計算に利用する\cite{tu-etal-2016-modeling}．アテンション確率を蓄積するのではなく，入力トークン列に対応する分散表現の系列を用意し，その各分散表現を1トークンの出力毎にRNNで更新する．この更新の際にアテンション確率\cite{tu-etal-2016-modeling,mi-etal-2016-coverage}やデコーダのステート\cite{meng-etal-2016-interactive}を入力する．この分散表現の系列をアテンション確率の計算に利用する．この分散表現の更新でRNNの代わりに忘却処理と追加処理を用いる手法もある\cite{ijcai2018-357}．また，各入力トークンに対応する分散表現を2つ用意し，それぞれ翻訳済みを表すものと未翻訳を表すものとして用いる手法もある\cite{zheng-etal-2018-modeling}．さらにこれらの翻訳済みと未翻訳の区別をカプセルネットワークで表すものもある\cite{zheng-etal-2019-dynamic}．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{訳抜けを表すスコアとの組み合わせ}NMTが生成する出力候補に対して，アテンションの確率や逆翻訳の生成確率で出力スコアを補正するものである．各入力単語に対して各出力でのアテンション確率を蓄積した場合に蓄積値が少ない入力単語は訳出不足の可能性が高いため，蓄積値が小さい場合にペナルティを加えて補正する\cite{DBLP:journals/corr/WuSCLNMKCGMKSJL16,li-etal-2018-simple}．出力候補を入力して原言語文を強制出力させた際の生成確率である逆翻訳の生成確率は，出力候補に不足がある場合に値が小さくなることが期待されるため，この値が小さいときにペナルティを加えて補正する\cite{DBLP:journals/corr/LiJ16,AAAI1714161,goto-tanaka-2017-detecting}．ただし，\citeA{AAAI1714161}は逆翻訳の生成確率を出力候補からではなく，入力文の情報も含まれているデコーダの分散表現の系列から計算している．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{低頻度語・未知語・曖昧性が高い訳語の対策}\label{sec:low-frequent-terms}未知語，低頻度語の生成確率は高くなりにくく訳抜けしやすいため，低頻度語をサブワードに分割することで，各トークンの頻度を増やし，さらに未知語もサブワードの組み合わせによりある程度扱えるようにする手法がある\cite{sennrich-etal-2016-neural,kudo-2018-subword}．この手法は，コーパスに含まれる語彙数が大きくても，NMTで扱う必要があるトークンの種類数を減らすことができ，現在広く用いられている．低頻度語対策，未知語対策は訳抜け対策にも効果があると考えられる．詳しくは低頻度語対策，未知語対策の節を参照されたい．専門用語対策として対訳辞書を利用する方法がある．この方法を利用して，専門用語を変数に置き換えて翻訳し，出力中の変数を辞書の目的言語表現に置換することで訳抜けの減少が確認されている\cite{Kimura-etal-PSLT2017}．対訳辞書で訳語の候補が複数あり，訳語選択での曖昧性が高い（すなわち訳語のエントロピーが高い）原言語単語（高エントロピー語）の訳語に着目し，2段階で翻訳する手法がある\cite{Zhao_Zhang_Zong_He_Wu_2019}．訓練データにおいて，高エントロピー語の訳語を原言語単語\footnote{正確には語彙空間を目的言語の語彙空間とは別の特殊空間としている．}に置き換えて，1段階目の翻訳では高エントロピー語はそのまま現言語単語を出力する．2段階目で，1段階目の出力を用いて，最終的な出力を得る．なお，2段階ではなく通常出力と原言語単語に置き換えた出力をマルチタスク学習する方法の記載もある．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{出力長制御}出力長を制御して不適切に短い出力を避ける取り組みがある．出力長が正解訳に比べて大幅に短い場合は訳抜けしている可能性が高い．このような出力にならないようにすることで，結果として訳抜けの低減が期待できる．次の手法が提案されている．長さバイアスに対する改善としてスコアを出力長で正規化する\cite{jean-etal-2015-montreal}．SMTの特徴量の1つである出力長に応じたスコアを追加する\cite{He_He_Wu_Wang_2016,murray-chiang-2018-correcting}．出力長が長すぎる時に出力長に基づくスコア追加を抑制するために，原言語文長$|y|$と目的言語文長$|x|$の比の平均$r$を用いてスコアを$\min\{|y|,r|x|\}$とする\cite{huang-etal-2017-finish}．出力長を予測するモデルを学習し，予測した出力長に応じたスコアを追加する\cite{yang-etal-2018-breaking}．翻訳の学習に加えて出力長の予測もマルチタスクで学習する\cite{yang-etal-2020-predicting}．これによって翻訳の改善が得られ，さらに，予測した出力長で長さの正規化を行う．出力長を予測するモデルを学習し，予測した出力長を用いて，Transformerの位置エンコーディングを制御することで出力長を制御する手法\cite{takase-okazaki-2019-positional}により，翻訳の出力長を制御する\cite{oka-etal-2020-incorporating}．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{強化学習によるパラメータ最適化の補正}NMTモデルによる生成文にノイズ（繰り返しや訳抜け）が含まれる場合にペナルティ（負の報酬）を与える強化学習手法が提案されている\cite{Keisuke-Shirai2021}．この手法では，参照訳に対してノイズを付加した擬似的なノイズ付き参照訳データを作成し，このデータから，ノイズの混入を判別する識別器を学習する．得られた識別器を強化学習の報酬として用いることで，ノイズの生成を抑制する学習を行っている．通常のNMTと比べて，学習時に違いがあり，翻訳時はパラメータの値以外は同じである．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{繰り返しの抑制}前記の強化学習によるパラメータ最適化の補正による繰り返し抑制の研究がある\cite{Keisuke-Shirai2021}．目的言語単語列に依存構造を表す開閉括弧を挿入することで，未知語を表す``UNK''の繰り返しの減少が確認されている\cite{nguyen-le-etal-2017-improving}．エンコーダ・デコーダモデルで出力系列に出現する各単語の頻度の上限を予測し，出力中の頻度が上限に達したら，その後はその単語を出力しないようにデコーダの出力スコアを補正する手法がある\cite{suzuki-nagata-2017-cutting}．要約タスクでの評価を行なっているが，機械翻訳にも応用可能である．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{訓練データのノイズ対策}訓練データでの訳抜けの影響を緩和する対策である\cite{Goto-etal-NLP2020}．訓練データの対訳文に訳抜けがあるとそれを学習してしまい，訳抜けの原因になる．この学習データのノイズを検出して，訳抜けしている部分と訳抜けしていない部分の区別を表すラベル系列も各トークンの特徴量\cite{sennrich-haddow-2016-linguistic}として用いることでこれらを区別して学習し，翻訳時には入力文に訳抜けしていないことを表すラベル系列を特徴量として付与することで，訳抜けしていない部分から学習した結果を主に用いて出力を生成する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{NMTの動作分析}訳抜け・過剰訳の直接的な対策ではないが，その原因の調査には，NMTの動作の分析が有用である．NMTの動作に対して可視化や分析が行われている．RNNベースのエンコーダ・デコーダモデルで，EOSトークンの確率が出力単語数に依存する特定のユニットの出力に基づいていることが示されている\cite{shi-etal-2016-neural}．アテンション機構を持つエンコーダ・デコーダモデルでの各原言語単語および各目的言語単語の履歴からの影響の強さが可視化され，各出力単語が入力文単語と目的言語単語履歴のどこからの影響を大きく受けているかを調べることができる\cite{ding-etal-2017-visualizing}．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{特許機械翻訳と訳抜け・過剰訳}特許機械翻訳においては専門用語・新語が現れやすく，それらはしばしば低頻度語・未知語として訳抜けを誘発したり，逆にその他の箇所の過剰訳を生じる原因となることがある．また，1.1節で挙げた特許翻訳の対訳コーパスはパテントファミリから収集され，自動文対応付けによって得られたものであるため，厳密には文単位の対訳としては不適なものが含まれることもある．そうした状況において上に挙げた種々の対策の有効性について体系的に調査された研究は見当たらないが，NMTの実用に向けた重要な課題と言える．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{用語訳の統一}
自然言語では，同一の物事を複数の異なる表現で表すことができる．一方で，論文などの説明的文章では，一つの物事に対して統一した一つの表現を用いて表すことで無用な誤解を防ぐことが一般的である．またテキスト検索時においても，同じ物事に対して異なる表現が混在した場合，それらの表記揺れに対応しない限り網羅的な検索が困難になってしまうなど，用語訳の統一を行わなければテキストの機械的処理に支障をきたすことがある．従来の機械翻訳モデルは入力テキストを文単位で訳出しており，入力テキストにおいて同一の意味に対して統一した表現が用いられていたとしても同じ訳出がされる保証はない．例えば，``apple''は``りんご''，``リンゴ''，あるいは``林檎''のいずれにも訳される可能性があり，同じ文書で混在させるのは基本的に望ましくないが，文単位で訳出する機械翻訳システムは複数の訳を混在させる可能性がある．また，機械翻訳モデルのトレーニングに用いられる翻訳性能の自動評価尺度であるBLEU等は訳語の一貫性を直接評価していないため，それらの尺度を用いて開発を行っても訳語を統一させるような学習は期待できない．アジア言語翻訳ワークショップ(WorkshoponAsianTranslation)においては2021年から，出力文中で用いるべき語彙を制限した訳文生成を行う制約つき翻訳タスク\footnote{\url{https://sites.google.com/view/restricted-translation-task/}}が開催されており，語彙の制約を満たした出力文の割合を一貫性の評価尺度とした性能評価が行われている．本節では機械翻訳において訳語を統一させる種々の手法について，NMTによる近年の研究を中心に，SMTにおける関連研究にもいくつか触れながら説明する．主に，用語集を用いて訳出結果に反映させる方法と，用語集を用いずに翻訳履歴や文脈を考慮する方法の二つが挙げられ，以下それぞれの方法について概要を述べる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{用語集や語彙制約の導入による訳語の統一}訳語を統一する必要のある語彙に対して既定の訳語を定めた対訳辞書あるいは用語集を導入することで，機械翻訳の過程で対訳辞書を適用したり，訳出文を後編集したりすることにより訳語が統一されることが期待される．訳出文の後編集は，例えば``リンゴ''を既定訳とする場合に訳出文中の``りんご''や``林檎''を``リンゴ''に置換するといった処理を指し，用いる機械翻訳システムに依らず適用ができる一方で，語の曖昧性から生じる誤った置換が生じるおそれや，そもそも訳出すべき語が抜けたり誤って訳された場合に対応できないことなどの課題に対処する必要が生じる．ルールベース機械翻訳においては語を訳出する部分で対訳辞書を適用することができるが，現在主流となっているNMTでは訳文中の語彙生成に相当する部分も含めた翻訳器全体を対訳コーパスから学習しており，訳文生成時に特定の辞書を直接参照するようなモデルは組み込まれていない．このため，対訳辞書を考慮した訳文生成を行う方法\cite{arthur-etal-2016-incorporating}や，訳文生成時に語彙制約を課した探索を行う方法\cite{hokamp-liu-2017-lexically,post-vilar-2018-fast,hu-etal-2019-improved,Hu_Rudinger_Post_Van_Durme_2019}，翻訳器の学習に用いる対訳コーパスを対訳辞書により編集する方法\cite{dinu-etal-2019-training,song-etal-2019-code,ijcai2020-496}が考えられている．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{対訳用語集による後編集}後編集(Post-Editing)とは，機械翻訳によって得られた訳出文をさらに修正することで翻訳品質を改善する手法である．人手による後編集については，国際標準規格であるISO18587:2017によって規定されており，そのうちのフル・ポストエディット(FullMachineTranslationPost-Editing)においては分野や翻訳依頼者が定める特定の用語集に応じて一貫性のある訳語を用いることも要件として含まれている．また，一貫性のある用語集を整備するための規格として，国際的に用いられているTBX(TermBaseeXchange,ISO30042)やAAMT（アジア太平洋機械翻訳協会）により策定されたシンプルな用語集形式UTX\cite{yamamoto-UTX}がある．これらにおいては，同じものを表す複数の用語候補の中で使用すべき用語や使用を避けるべき用語の情報を付加できるように設計されている．用語集を用いて後編集による訳語の統一を自動的に行う場合，機械翻訳の入力文に用語集の用語があり，かつ出力文にその用語の訳語として“使用を避けるべき用語”が現れていれば，それを“使用すべき用語”に置換することで訳語が統一される．ただし，入力文に現れる用語に曖昧性がある場合は，適切な曖昧性解消がなされていることが前提となる．また，出力文の中に用語集にある語が現れない場合は，置換すべき箇所を特定する，または訳出されていないなら適切に訳を変更する必要が生じる．さらに，用語の変化形への対応など文法的な処理を別途行わなければならない．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{対訳辞書を考慮した訳文生成}SMTにおける初期のモデルであるIBMModelの実装GIZA++においてはオプションとして対訳辞書を入力できたが，これは単語の共起頻度の反復計算において対訳辞書の用語対の出現を条件とするような制約をかけるものであり，必ずしも訳語の統一が期待できるものではなかった．その後，フレーズベースSMTにおいては対訳コーパスやフレーズテーブルに用語対を追加する手法\cite{bouamor-etal-2012-identifying}のほか，\citeA{okuma-etal-2007-introducing}は入力文中の低頻度な固有名詞を同じカテゴリの高頻度な固有名詞に予め置換した上で翻訳し，出力文中で訳出されたその固有名詞の訳語をもとの低頻度な固有名詞の訳語に置換する手法を提案している．\citeA{tan-etal-2015-passive}は外部辞書の導入方法として，学習用対訳コーパスに追加する方法と訳文生成時に辞書項目を用いるよう強制する方法を比較し議論している．NMTにおいて外部辞書を考慮した訳文生成を行うモデルとして，\citeA{arthur-etal-2016-incorporating}は出力層に語彙モデルを結合することで低頻度語の誤訳を低減する手法を提案している．入力文$F=f_1^{|F|}$に対して出力文の$i$番目の語が$e_i$となる確率$p_m(e_i|F,e_1^{i-1})$は以下の式で表される．\begin{equation}p_m(e_i|F,e_1^{i-1})=\mathrm{softmax}(W_s\bm{\eta}_i+\bm{b}_s),\end{equation}ただし，$W_s,\bm{b}_s$はそれぞれ重み行列，バイアスベクトル，$\bm{\eta}_i$は固定長のベクトルとする．用いる対訳辞書を，原言語の語$f$に対して目標言語の語$e$に訳される翻訳確率$p_l(e|f)$の形で表し，入力文$F=f_1,...,f_{|F|}$に対して以下のような翻訳確率の行列を求める．\begin{equation}L_F=\begin{bmatrix}p_l(e=1|f_1)&\cdots&p_l(e=1|f_{|F|})\\\vdots&\ddots&\vdots\\p_l(e=|V_e||f_1)&\cdots&p_l(e=|V_e||f_{|F|})\end{bmatrix}\end{equation}\citeA{arthur-etal-2016-incorporating}のbiasモデルでは，アテンションから得られたアラインメント確率$\bm{a}$を用いて，単語の出力確率にバイアスの値として$L_F$と$\bm{a_i}$の積を加えることで，外部辞書に存在する訳語の確率値を上げるような学習を行う．\begin{equation}p_b(e_i|F,e_1^{i-1})=\mathrm{softmax}(W_s\bm{\eta}_i+\bm{b}_s+\log(L_F\bm{a}_i+\epsilon))\end{equation}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{語彙制約つき探索による用語の統一}語彙制約とは，\pagebreak特定の単語列の集合$V$について出力を制御するための制約であり，$V$に含まれる語彙を出力に含むことが可能な場合に，出力に$V$を含むように制御する制約を正の語彙制約，$V$を含まないように制御する制約を負の語彙制約と呼ぶ．機械翻訳における用語の統一の観点からみると，機械翻訳の入力文に対訳用語集の用語が現れた場合，その用語に対応する出力側の言語の用語を必ず含むような正の語彙制約を出力の探索時に適用することとなる．この手法は後編集による方法と比較して，出力する語彙に応じて出力文全体の最適化が期待されるという利点がある．一方で，語彙制約によって探索が制限されることによる訳質の低下が生じる可能性がある．また，入力側の用語に曖昧性がある場合，意図していない語彙制約を課すことで誤訳を生じさせるおそれがある．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.1\begin{figure}[b]\begin{center}\includegraphics{29-3ia8f1.pdf}\end{center}\caption{語彙制約を課したデコーディングの例（\protect\citeA{hokamp-liu-2017-lexically}より引用）}\label{fig:hokamp2017}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%図\ref{fig:hokamp2017}に\citeA{hokamp-liu-2017-lexically}で示されている英独機械翻訳においてデコーディング時に語彙制約を課した場合の例を示す．上段の四角で囲まれた部分が出力における2つの語彙制約で，入力文に応じて出力に含めるべき単語（トークン）の列を示している．格子状の枠はビーム探索時の$k$-bestのスタックを表しており，各スタックに入る仮説は色付きの横長の四角で示されている．通常のデコーディングでは入力文の各トークンに対して左から右にスタックを埋めていくのに対し，語彙制約を課す場合には上下方向にもスタックを用意し，語彙制約が1トークン満たされた時点で上方向にも仮説を生成する．図\ref{fig:hokamp2017}中の``Start''は語彙制約中の用語の出力が開始されたことを示し，そこから用語の出力が終わるまでは強制的にその用語のトークンを順に出力する仮説を生成していく．最終的に最上段にある仮説が語彙制約をすべて満たした仮説であることになり，その中で最もスコアの高い訳文を出力することとなる．この手法では語彙制約の出力トークン数に比例して計算量が増加する．\citeA{post-vilar-2018-fast}はこの問題を軽減するため，語彙制約のトークン数だけ上下方向にスタックを並べる代わりに，ビーム幅を固定してその中で語彙制約を満たしたトークン数ごとの領域を動的に割り当てるDynamicBeamAllocation(DBA)方式を提案し，語彙制約のトークン数に比例しない計算量で探索できることを示した．また，\citeA{hu-etal-2019-improved}はDBAの手続き的な手法をベクトル化した手法に置き換えることでGPUによる高速な演算を可能にし，さらに語彙制約にトライ構造を用いることで効率化を図っている．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{データ拡張によるソフトな語彙制約}語彙制約の適用方法として，前節のように探索時に強制的に出力を制御する手法のほか，訓練データに語彙制約を適用することで間接的に訳語を統一させるデータ拡張手法が提案されており，前者のハードな語彙制約に対してソフトな語彙制約とも呼ばれる．探索時に語彙制約を適用する場合と比較して，語彙制約が常に優先して適用される保証はないが，曖昧な語の誤訳の問題に頑健である利点，および探索の計算量増大がない利点がある．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.2\begin{figure}[t]\begin{center}\includegraphics{29-3ia8f2.pdf}\end{center}\caption{Transformerエンコーダ層への語彙制約の埋め込み（\protect\citeA{ijcai2020-496}より引用）}\label{fig:chen2020}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\citeA{song-etal-2019-code}は訓練データの語彙を対訳辞書により事前に目標言語の語句に置き換えて学習させる手法を，\citeA{dinu-etal-2019-training}は置き換える場合と元の語句に付加する場合でそれぞれ学習する手法をそれぞれ提案している．\citeA{ijcai2020-496}はデータを直接置き換える代わりにTransformerのエンコーダ層への入力時に語彙制約を埋め込む手法を提案している．図\ref{fig:chen2020}では，入力文``DasteiltedieGewerkschaftmit.''の訳文に``announced''（発表した）と``union''（組合）という2つの語を用いることを指定するため，入力文の後ろに語彙制約を表すトークンを追加するとともに，位置およびセグメントの埋め込みのための特定のインデックスを与えている．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{文脈を考慮した訳出}従来の機械翻訳システムにおいて訳語の統一がなされない原因の一つは，\pagebreak入力テキストの各文を独立に翻訳するためである．翻訳時に前後の文あるいは入力テキスト全体の文脈を考慮に入れることで，入力テキスト全体を考慮して統一した訳語が出力されることが期待できる．SMTにおいても訳語を統一することにより精度が向上する可能性が示唆されており\cite{carpuat-2009-one,carpuat-simard-2012-trouble}，訳語を統一する手法も研究されている\cite{gong-etal-2011-cache,xiao-etal-2012-topic,hardmeier-etal-2012-document,hasler-etal-2014-dynamic}．NMTにおいて文脈を考慮に入れる方法は，入出力する文対にその直前の数文を直接付加する方法\cite{tiedemann-scherrer-2017-neural}のほか，過去の訳出語をキャッシュに置く方法\cite{tu-etal-2018-learning}，入力側で文脈を扱うエンコーダを追加する方法\cite{jean2017does,zhang-etal-2018-improving}，およびその他の方法に大別される\cite{lopes-etal-2020-document}．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.3\begin{figure}[b]\begin{center}\includegraphics{29-3ia8f3.pdf}\end{center}\caption{翻訳履歴を保持するキャッシュを用いた翻訳モデル（\protect\citeA{tu-etal-2018-learning}より引用）}\label{fig:tu2018}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\citeA{tu-etal-2018-learning}は，キャッシュに過去に訳出した語を読み込んで後に続く文の翻訳において参照するモデルを提案した．図\ref{fig:tu2018}(a)は標準的なNMTにおいて，一つ前の出力トークン$y_{t-1}$，入力トークン$\mathbf{s}_t$，およびアテンションによる文脈ベクトル$\mathbf{c}_t$が与えられたときに次の出力トークン$y_t$を求める部分を示している．提案モデルでは(b)のようにこれまでの翻訳履歴を保持したキャッシュを用意し，翻訳中のトークンの文脈$\mathbf{c}_t$をキーとする値を読み出して入力トークン$\mathbf{s}_t$と結合することにより，これまでの翻訳履歴を考慮に入れた訳出を行う．文書レベルの文脈を入力とするエンコーダを追加した\citeA{zhang-etal-2018-improving}のモデルにおいては，文脈エンコーダの出力は翻訳用のエンコーダ及びデコーダーの両方にアテンションを用いて導入されている．\citeA{voita-etal-2018-context}は文脈と原言語側の両エンコーダでパラメーターを共有し，両エンコーダの出力はゲート機構により統合するモデルを提案した．ほかに階層的アテンションネットワーク(HAN)による統合手法\cite{miculicich-etal-2018-document}，入力文に対して関連する文のみに着目するための選択的アテンションによる統合手法\cite{maruf-etal-2019-selective}が提案されている．\citeA{morishita-etal-2021-context}は文脈として考慮する文の選択にミニバッチ法を用いる手法を提案し，英日翻訳の実験において訳出される語彙が参照訳のものに修正される例を示している．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{特許機械翻訳と用語訳の統一}特許文書では厳格な用語定義が求められ，原文で用語が統一されているものが機械翻訳を介することで用語の揺れを生じてしまうことは大きな問題である．特許機械翻訳を対象に本節で挙げたような手法の有効性を示した研究は知られておらず，今後実用的な検証が求められる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{長文対策}
\citeA{koehn-knowles-2017-six}によって指摘されている現在のNMTにおける6つの課題の一つに長文問題がある．機械翻訳における長文問題とは，1文あたりの語数が大きい文（長文）を翻訳する際に翻訳精度が著しく劣化する問題である．特許文書は特に長文からなることを特徴の一つとしており，実用的な特許機械翻訳の実現のために長文の高精度な翻訳が必要とされている．SMTからNMTへの翻訳方式の変化により長文の翻訳への対策は変化してきており，近年はNMTの特性に合わせた様々な手法が提案されている．本節ではそれらの手法について，(1)アテンション機構，(2)文分割による手法，(3)NMTモデルの構造的特徴（依存構造や位置情報，自己アテンションなど），の大きく3つに分けて説明する．(1)はエンコーダ・デコーダにおける内部状態間の関係性を計算する機構である．(2)は，文構造等の特徴を用いて文全体を分割し，分割された個々の部分文を翻訳することで長文の精度劣化の問題を解決する手法である．(3)は，NMTのモデルを改良することで，長文に対応する手法である．アテンションそのものが長文に対応する手法となっているが，さらに自己アテンションに依存構造を導入する手法や，自己アテンションに被覆率を導入する手法，位置情報を改良する手法などが提案されており，長文における性能劣化を抑えている．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{アテンション機構}単純なRNNエンコーダ・デコーダモデル\cite{kalchbrenner-blunsom-2013-recurrent,cho-etal-2014-learning}では，勾配消失や長距離依存の問題があり，高い精度を実現することは難しい．これらの問題を解決するために，RNNのユニットとしてLSTMユニット\cite{hochreiter1997lstm}やGRUユニット\cite{cho-etal-2014-learning}を導入することが提案され\cite{Sutskever:NNMT2014,luong-etal-2015-addressing}，さらに言語間アテンションを導入することでこれらの問題は大きく改善された\cite{Bahdanau:NMT2015,luong-etal-2015-effective}．言語間アテンションは，現在のデコーダの内部状態に対し，エンコーダの各内部状態との関連性（重み付け）を計算し，エンコーダ内部状態の加重平均をデコーダの出力計算に用いる手法である．アテンションを用いることにより，計算グラフ上で遠い位置関係にある単語間の関連性を直接計算することができるようになる．\citeA{luong-etal-2015-effective}および\citeA{Bahdanau:NMT2015}の報告では，アテンションがついていないLSTMエンコーダ・デコーダモデルは文長が長くなるにつれ性能(BLEU)が低下していくが，アテンション付きLSTMエンコーダ・デコーダモデルは性能が低下することなく長文に対しても高い性能を維持出来ていることが示されている．基本的にNMTではアテンションを導入することによって長文の問題はおおよそ解決されていると考えられているが，言語の構造が大きく異なる言語間での翻訳や，特許翻訳のようにさらに長い文の翻訳ではその影響は明らかではない．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{文分割}長文問題を解決する方法として，長文を複数の短い文や句に分割し，それぞれを翻訳してつなげる方法が考えられる．\citeA{pouget-abadie-etal-2014-overcoming}は，部分トークンの翻訳に対する確信度を定義し，可能な部分トークン列の組み合わせに対して，整数線形計画法を用いることで，信頼度最大となる文分割を選ぶ分割法を提案している．信頼度は順方向（原言語から目的言語）の翻訳確率と逆方向（目的言語から原言語）の翻訳確率を用いて定義している．翻訳確率はNMTモデルにより与えられる．この手法により信頼度の高い文分割が得られるが，全ての可能な部分トークン列に対する翻訳を行う必要があるということと，部分トークン列の並び替えを行っていないという問題点がある．アテンションが使われていないRNNエンコーダ・デコーダモデル\cite{cho-etal-2014-learning}は長文に対し翻訳精度(BLEU)が著しく低下するが，提案する文分割法では翻訳精度の低下が起きていない．\citeA{tien2019}は，訓練コーパスにおける長文（長さ30トークン以上）の文ペアから，句アライメント(GIZA++)によって確率の高い句ペアを抽出し，それらを訓練コーパスに追加する手法を提案している．通常の長文翻訳の学習に加えて，長文から抽出された句から句への翻訳をあわせて学習するため，長文翻訳の学習においても対応すべき句から句へ翻訳が誘引されるように学習が進むことが期待される．\citeA{Kuang2016AutomaticLS}は，原言語文を句に分割し，句の順番を入れ替えることで長文の翻訳を行う手法を提案している．まず，パラレルコーパスに対して単語アライメント(GIZA++)を適用し，原言語側と目的言語側で連続する単語列が対応する場合に，それらを句ペアとして，句アライメント付きのパラレルコーパスを作成する．作成したパラレルコーパスから，句の分割点を予測する識別機を学習する．また，同様に対応する句順が正順か逆順か判別する識別機を学習し，原言語側の句順確率モデルを作成する．句の分割確率と正順となる句順確率の最も高い句分割と句順入れ替えを選択することで文分割と文結合を同時に解決している．中英機械翻訳においては，アテンション付き双方向LSTMでも長文に対しBLEUが顕著に低下しているが，彼らの手法ではBLEUがやや下がるものの概ね精度を維持できている．また，SMTは長文に対して頑健であることも示されている．\citeA{goh2011}は，ルールベース手法により長文を分割し，確率モデルに従って分割された節を結合する手法を提案した．提案手法では，まず，形態素解析を行い，形態素解析結果に対する複数のルールにより長文を分割する．文全体の翻訳確率は，分割された各節に対する翻訳確率の積と文全体に対する言語モデルにより与えられる．つまり，分割された各節の並び替えは主に言語モデルにより決定されることになる．\citeA{sudoh-etal-2010-divide}は，入力文に対して構文解析を行うことで単文（文というカテゴリの句）に分割し，それぞれを翻訳し，再結合することで長文の翻訳を行っている．分割されて生じる各単文は関係節やthat節などの埋め込まれた句も含まれるため，文全体の中に再帰的に埋め込まれた文が存在することになる．\citeauthor{sudoh-etal-2010-divide}は，各単文を非終端記号に変換することで，文全体を単文の集合に分割し，各単文を翻訳している．非終端記号も翻訳されているため，目的言語においてそれらの非終端記号を手がかりに文全体を自動的に再構成することができる．学習のために，単文の対訳コーパスを作る必要があり，単文のためのアライメントアルゴリズムも提案している．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{NMTモデルの構造的特徴を利用する手法}この節では文分割以外の手法として，NMTの構造的特徴を利用した長文対策の手法を紹介する．\citeA{deguchi-etal-2019-dependency}や\citeA{bugliarello-okazaki-2020-enhancing}は，依存構造解析を用いてTransformerモデルを改良する手法を提案している．Transformerの自己アテンション層は，あるトークンからあるトークンへの係り受け関係を計算しているとみなすことができ，依存構造解析結果を教師信号として自己アテンションの教師付き学習を行うことで翻訳精度が向上する．\citeauthor{bugliarello-okazaki-2020-enhancing}は，長文に対する提案手法の影響を調査しており，長文に対して高い翻訳精度(BLEU)を実現することが報告されている．長文に対しては，長距離依存関係を翻訳モデルの学習中に捉えることが難しいことが考えられるが，依存構造解析結果を自己アテンションの教師信号として陽に与えることで，長距離依存の問題が緩和されていると考えられる．\citeA{tu-etal-2016-modeling}は，NMTにおける訳抜け・過剰訳への対策として，言語間アテンションを利用したカバレッジモデルを提案している（\ref{sec:2-nmt-model}節を参照のこと）．原言語文の各トークン毎に今までかけられたアテンションの重みの累計を保持しておき，原言語文の全てのトークンのアテンション重みの累計が予測されるfertilityに達するように制約を与える．アテンション付きLSTMは長文に対し性能が劣化するが，カバレッジモデルにより性能劣化が緩和されている．Transformerでは正弦波に基づく絶対位置エンコーディングが用いられているが，訓練データに出現しなかった文長に対する翻訳精度が大きく低下することが報告されている\cite{neishi-yoshinaga-2019-relation}．絶対位置エンコーディングを用いない手法として，\citeA{shaw-etal-2018-self}は自己アテンションにおける単語間の相対位置に基づく位置エンコーディングを提案しており，\citeA{neishi-yoshinaga-2019-relation}はRNNを用いた位置エンコーディングを提案している．図\ref{fig:neishi2019}は，絶対位置エンコーディング，相対位置エンコーディング，RNN位置エンコーディングによるTransformerの翻訳精度を示している．図の灰色の領域は訓練データに出現しない文長を示しており，絶対位置エンコーディングを用いたTransformerでは大きく性能が低下していることがわかる．一方，\citeA{shaw-etal-2018-self}による相対位置エンコーディングの手法や，\citeA{neishi-yoshinaga-2019-relation}によるRNN位置エンコーディングの手法では，絶対位置エンコーディングほどの大きな性能低下は生じていないことがわかる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.4\begin{figure}[t]\begin{center}\includegraphics{29-3ia8f4.pdf}\end{center}\caption{相対位置エンコーディングとRNN位置エンコーディングによる長文対策の効果}\label{fig:neishi2019}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{特許機械翻訳と長文対策}特許文書では解釈の曖昧性を生じないよう，適切に内容を特定できるように複雑な構文構造を持つ長文がしばしば利用される．特に請求項においては権利化の対象を特定するために多くの語句や節で修飾された200語を超えるような名詞句が用いられることも少なくない．一方で，上に挙げた研究でもそこまで極端な長文の翻訳は考慮されていないのが実情である．特に長文に着目していない現在主流の研究においては，学習の効率化のために数十語を超えるような文は学習から除外されたり，評価用のデータにも目立って長文が含まれないため，特許機械翻訳で想定されるような長文についての検証は十分に行われていない．今後の特許機械翻訳への応用に向け，請求項のような極端な事例も含んだ評価・検証が今後求められる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{低リソース言語対対策}
言語Xから言語Yへの翻訳システム（本節ではこのような翻訳システムをX→Yと略記する）を構築したい場合，SMTやNMTではXとYとの間の対訳コーパスを用いて訓練するのが一般的である．訓練データのサイズが小さい場合を低リソース言語対と呼び，その中で訓練データが全くない場合はゼロリソース言語対と呼ぶ．低リソース言語対に対する翻訳システムは高リソース言語対に対するシステムに比較して翻訳性能が劣化する．そのための対策として，さまざなものが提案されている．以下の節では，まず低リソースのデータ量について説明し，その後順次これらの対策について説明する．\ref{カスケード方式}節では，間に第3の言語Z（中間言語あるいはピボット言語と呼ぶ）を挟んでX→ZおよびZ→Yを高リソースとする．\ref{データ拡張と操作}節では，XまたはYの単言語コーパスから疑似的な2言語コーパスを作成して訓練データを拡張する．\ref{転移学習}節では，高リソース言語対で事前訓練を行い低リソース言語対でファインチューニングを行う．\ref{多言語モデル}節では，多対多の翻訳システムの一部として低リソース言語対を含める．\ref{事前訓練モデル}節では，一般公開された事前訓練モデルをファインチューニングする．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{低リソースと判断されるデータ量}どの程度の訓練データのサイズであれば低リソース言語対となるのであろうか．\citeA{koehn-knowles-2017-six}は，英語→スペイン語を対象に，訓練データのサイズによってSMTとNMTの精度（BLEUで計測）がどのように変化するかを調査した．訓練データの英語側の語数が1,200万語までの場合はSMTのBLEU値がNMTのそれを上回っており，2,400万語より多い訓練データを用いた場合は逆転する．1文の平均語数を20語と仮定すると60万文対と120万文対の間でSMTとNMTのBLEUが逆転する．\citeA{trieu-etal-2017-investigating}は，同様の調査を日本語→英語で行っている．600万語程度ではSMTの方がBLEUが高かった．\citeA{sennrich-zhang-2019-revisiting}は，NMTのハイパーパラメータやシステム構成を低リソース言語対に最適に調整することで10万語程度の訓練データでもNMTの方がBLEUが高くできることを示した．\citeA{duh-etal-2020-benchmarking}は，2.4万文対を用いた同様の実験でNMTはSMTと同じくらいのBLEUにできることを示した．ただし調整を慎重に行わないとBLEUが下がると指摘している．これらの研究から数万文から数十万文（数十万語から数百万語）以下を低リソース言語対と見なすことにする．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{カスケード方式}\label{カスケード方式}X→Yを構築したい場合，X→Yが低リソース言語対である場合でも他の言語Zを間にはさむことでX→ZおよびZ→Yは高リソース言語対とできる場合がある．例えば，英語や中国語を言語Zとすることが考えられる．このような方式を中間言語方式またはピボット方式と呼び，言語Zを中間言語またはピボット言語と呼ぶ．ピボット方式の最も単純な方法としてX→Zの後にZ→Yを直列につなぎX→Yを得るカスケード方式がある．\citeA{costajussa2018englishcatalan}は，英語→スペイン語にスペイン語→カタラン語をカスケードに繋いで英語→カタラン語を実現した．英語→スペイン語のBLEUは46.55，スペイン語→カタラン語は86.89，英語→カタラン語は41.38であった．カスケード方式は，いくつかの工夫が提案されている\cite{cheng-etal-2016-semi,ijcai2017-555,chen-etal-2017-teacher,kim-etal-2019-pivot}．\citeA{cheng-etal-2016-semi}は，カスケードモデルの目的言語を原言語と同一にしたオートエンコーダモデルを導入してX→YとY→Xを同時訓練した．その際，評価関数として原言語から目的原語への尤度，目的原語から原言語への尤度，原言語のオートエンコーダの尤度，目的原語のオートエンコーダの尤度の4項を設定した．\citeA{ijcai2017-555}は，カスケードモデルのパラメータを原言語Xから中間言語Z，中間言語Zから目的言語Yで独立ではなく，X，Z，Yの三者に関係する交差項を加えて訓練した．交差項としては，X→ZとZ→YにおけるZの埋め込みベクトルの近さを用いるものと，X→Yの少量の2言語コーパスに対する評価値を用いるものを使用し，後者のBLEUが高かった．\citeA{chen-etal-2017-teacher}は，ゼロリソース言語対(X,Y)に対して双方の言語と高リソースを有するピボット言語Zがある場合を想定してteacher-student方式を適用した．彼らの方法では，Z→Yを親システム(teacher)として，XとZの2言語コーパスを利用して子システム(student)であるX→Yを構築する．\citeA{kim-etal-2019-pivot}は，ピボット方式の翻訳システムで転移学習（\ref{転移学習}節参照）の新しいアーキテクチャを3種類提案した．Step-wise事前学習方式，ピボットアダプタ追加方式，Cross-lingualencoder方式である．Step-wise事前学習とCross-lingualencoderを組み合わせた方式がBLEUが高かった．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{データ拡張と操作}\label{データ拡張と操作}X→Yの2言語対訳コーパスが低リソースであっても，X単独あるいはY単独の単言語コーパスとしては高リソースな場合がある．そのような単言語コーパスを操作してデータ拡張する手法が種々に提案されている．逆翻訳(back-translation)は，目的言語側が高リソースな単言語コーパスを，何らかの翻訳システムで原言語側に翻訳して合成データ(syntheticdata)を作り，対訳コーパスに加えることで訓練データのサイズを拡張する\cite{sennrich-etal-2016-improving}．さまざまなコーパスサイズで逆翻訳を利用した場合の比較が\citeA{poncelas2018investigating}にある．逆翻訳の工夫も提案されている\cite{imamura-etal-2018-enhancement,edunov-etal-2018-understanding,imankulova-etal-2017-improving,imankulova-etal-2019-exploiting,zhou-etal-2019-handling,chaudhary-etal-2019-low,niu-etal-2019-bi,currey-heafield-2019-zero}．\citeA{imamura-etal-2018-enhancement}や\citeA{edunov-etal-2018-understanding}は，逆翻訳時にサンプリングやnベスト翻訳によって多様な翻訳を出力し，合成データのベスト多様性を増やした．\citeA{imankulova-etal-2017-improving}は，逆翻訳時に低品質で翻訳された文を除外することで訓練データの質を向上させた．さらに\citeA{imankulova-etal-2019-exploiting}は，in-domainに加えてout-of-domainの大規模なデータを利用して，BLEUを3.7ポイント上昇させた．逆翻訳を行う場合，そのための翻訳システムとして何を用いるかが問題となるが，\citeA{zhou-etal-2019-handling}は，辞書を用いた単語から単語への翻訳を利用する手法を提案した．\citeA{chaudhary-etal-2019-low}は，大規模なノイズのある対訳コーパスをフィルタリングすることでノイズ除去を行った．その結果，厳しくフィルタリングしたほうがBLEUが高かった．\citeA{niu-etal-2019-bi}は，双方向翻訳システム（X→YおよびY→X）を対象として，ノイズのある対訳コーパスあるいは逆翻訳された合成2言語コーパスを再構成する手法に工夫を加えた．\citeA{currey-heafield-2019-zero}は，カスケード方式（\ref{カスケード方式}参照）において，多対多のNMTを用いてピボット言語のデータを逆翻訳して訓練データを拡張した．逆翻訳を利用すると，双方向翻訳システムを同時訓練することができる．\citeA{NIPS2016_5b69b9cb}は，双方向同時訓練において少量の2言語コーパスと両言語の単言語コーパスを利用した．\citeA{ahmadnia-dorr-2019-bilingual}は，ゼロリソース設定で，X→YとY→Xの2つのシステムを同時訓練する次の手法を適用した．1)単言語コーパスから得られる言語モデルのスコアを陽に用いる，2)nベスト出力を用いてパラメータを修正する，3)単言語の文の翻訳結果を評価し，評価値の高い文を選択して訓練データに加える．原言語側と目的言語側の単言語コーパスを用いて，逆翻訳を反復適用することで翻訳精度を徐々に向上させる方法もある\cite{lakew2017improving,lample-etal-2018-phrase,hoang-etal-2018-iterative}．\citeA{lakew2017improving}は，多対多の翻訳システムを原言語と目的言語の単言語コーパスを利用して訓練・翻訳・再訓練を繰り返すことで逐次改良した．5回繰り返すことで1回目と比較してBLEUが5ないし6ポイント向上できた．\citeA{lample-etal-2018-phrase}は，反復適用をすることで初期の訓練データがゼロの翻訳システム（ゼロリソースNMT）を構築した．\citeA{hoang-etal-2018-iterative}は，少量の2言語コーパスと逆翻訳の反復適用によってBLEUを向上させた．逆翻訳以外にも，データ拡張や操作を行って合成データの規模と多様性を増やす方法がある．\citeA{currey-etal-2017-copied}は，対訳コーパスに，原言語側もしくは目的言語側の単言語コーパスを単にコピーして加えることで翻訳性能の向上を図った．この方法は，原言語・目的言語で文字種が同じ言語対で効果がある．固有名詞など，変換が不要な単語が多く含まれるためである．目的言語側の単言語コーパスをコピーして加えたときの効果の方が大きい．\citeA{fadaee-etal-2017-data}は，対訳コーパス中の高頻度の語を意味的に類似する低頻度の語で入れ替えて合成コーパスを作った．このことで低頻度の語を含むコーパスを増やすことができ，翻訳のための文脈を拡張できる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{転移学習}\label{転移学習}低リソースなX→Yを構築する前に高リソースなZ→Yを構築し，\pagebreakその後X→Yをファインチューニングする転移学習(transferlearning)の手法がさまざま提案されている\cite{zoph-etal-2016-transfer,kocmi-bojar-2018-trivial,dabre-etal-2019-exploiting,bapna-firat-2019-simple,beloucif-etal-2019-naive}．\citeA{zoph-etal-2016-transfer}は，高リソースなZ→Yで事前訓練して親モデルとし，引き続き低リソースな複数の$\rmX_{i}$→Yでファインチューニングして子モデルを構築した．具体的にはフランス語→英語の親モデルから\{ハウサ語，トルコ語，ウズベク語，ウルドゥ語\}→英語の子モデルを作った．\citeA{kocmi-bojar-2018-trivial}は，多対1に加えて，1対多あるいは2対2のNMTを対象にした転移学習を提案した．これは，親モデルと子モデルの目的言語側が異なるまたは原言語側も目的言語側も異なる転移学習である．\citeA{dabre-etal-2019-exploiting}は，3段階の転移学習を行った．まず高リソースな英語→Xで事前訓練を行う．次に低リソースな複数の英語→$\rmY_{k}$(k=1,...,N)を加えてファインチューニング1を行う．最後に対象言語の英語→$\rmY_{j}$を用いて再度ファインチューニング2を行う．\citeA{bapna-firat-2019-simple}は，Transformerモデルにアダプタを導入して，多対多のNMTを全言語対で訓練し，対象となる低リソース言語対でアダプタ部分をファインチューニングした．\citeA{beloucif-etal-2019-naive}は，転移学習において，以下の3種類の言語学的正則化を導入した損失関数を利用した．1)入力と出力の単語単位での文長の差，2)入力と出力の句読点の個数の差，3)入力と出力の単語の頻度分布の差（Kullback-Leibler距離を利用）．転移学習時のデータ操作についての工夫もある\cite{zoph-etal-2016-transfer,murthy-etal-2019-addressing,song-etal-2020-pre}．\citeA{zoph-etal-2016-transfer}は，フランス語→英語の親モデルから\{ハウサ語，トルコ語，ウズベク語，ウルドゥ語\}→英語の子モデルを作るシステムにおいて，低リソース言語の単語はフランス語の単語にランダムに対応させ初期値とした．その後は通常の訓練で調整し，4ないし8ポイントBLEUが向上できた．\citeA{murthy-etal-2019-addressing}は，英語→ヒンディ語を親モデル，\{ベンガル語，グジャラート語，マラーティー語，マラヤーラム語，タミル語\}→ヒンディ語を子モデルとする転移学習において英語を事前並べ替えした方が多くの場合BLEUが向上することを示した．\citeA{song-etal-2020-pre}は，親モデルを教師なしで訓練するような転移学習において，訓練データのフィルタリングを行った．加えて日本語→英語を子モデルとし，中国語→フランス語を親モデルとする場合，中国漢字を日本漢字に転写している．Y→英語で親モデルを訓練し，X→英語で子モデルを訓練する場合，XとYが言語的に近い方が有利である\cite{nguyen-chiang-2017-transfer,xia-etal-2019-generalized}．\citeA{nguyen-chiang-2017-transfer}は，XとYが言語的に近いと共通する語またはサブワードが多くあるため，親モデルの訓練には，かならずしも高リソースが必要でないことを示した．\citeA{xia-etal-2019-generalized}は，Xがベラルーシ語，Yがロシア語の場合，転移学習により7ポイントBLEUを向上させた．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{多言語モデル}\label{多言語モデル}低リソース言語対を多対多の翻訳システムの中で実現することで，高リソースな言語対の影響を受けて低リソース言語対に対する翻訳精度も向上できる可能性がある．N言語×M言語の多対多NMTを単純に実現するにはN×M個のアテンション機構が必要であるが，\citeA{firat-etal-2016-multi}は，それを共通の1つのアテンション機構で実現した．\citeA{firat-etal-2016-zero}は，この手法をゼロリソース言語対に適用した．\citeA{johnson-etal-2017-googles}は，多対多NMTを1対1のNMTと同じアーキテクチャで実現した．つまりアテンション機構に加えてエンコーダとデコーダも多言語で共通化している．言語の選択は，原言語の文に特殊なトークンである翻訳先言語名を付加することで所望の言語での出力を得る．\citeA{gu-etal-2018-universal}は，多対1のNMTにおいて，単語埋め込み表現を用いて，異なる原言語表現を語彙レベルの普遍表現にし，MixtureofLanguageExpert(MoLE)と呼ばれる機構を用いて異なる原言語表現を文レベルの普遍表現にした．多言語モデルにおいては，言語対によってデータ量に多寡が生じ，それに従って精度が変化する．\citeA{arivazhagan2019massively}は，103言語間の多対多NMTを総数250億文対から訓練し，データ量に対するBLEU値を調査した．言語対毎に訓練データ量が異なり，高リソース言語対では20億文対，低リソース言語対では3万5千文対である．各言語対に対して同量の訓練データとなるようオーバーサンプリングすることによって低リソース言語対でのBLEUを向上できた．多言語モデルを構成する場合，言語の組み合わせによっても性能が変化する．\citeA{aharoni-etal-2019-massively}は，非常に低リソースな複数の言語対（X→英語と英語→X）を1対多，多対1，多対多で訓練した場合を比較した．X→英語では多対多のBLEUが高く，英語→Xでは1対多のBLEUが高った．\citeA{aharoni-etal-2019-massively}は，\citeA{arivazhagan2019massively}と同様の実験を，高リソース言語対の訓練データを100万文対に制限して実施した．この実験設定では，多対多（X→英語と英語→X）より多対1（X→英語）および1対多（英語→X）のBLEUが高った．\citeA{sachan-neubig-2018-parameter}は，1対多のNMTにおいて共通化するデコーダのパラメータを制限することの良否を調査した．複数の目的言語間の距離が近い場合は，多くのパラメータを共通化した方がBLEUが高く，遠い場合は少ないパラメータを共通化した方がBLEUが高かった．\citeA{mueller-etal-2020-analysis}は，対象言語Xから英語へのNMTを多対1のNMTで実現するときの最適な補助言語の組み合わせについて検討した．彼らの実験では，補助言語の数を多くしすぎるとBLEUが低下し，Xと言語的に近い言語を選ぶことの良否はまちまちであった．\citeA{tan-etal-2019-multilingual}は，多対1あるいは1対多のNMTにおいて対象言語に近い補助言語を用いる有効性を検討した．言語間の近さは，語族をベースとしたものと，言語名を表す特殊なトークンの単語埋め込みベクトルの近さをベースにしたものを比較した．その結果，後者の有効性がより大きかった．\citeA{he2019language}は，言語をノードとし，翻訳方向を考慮した言語対をエッジとした有向グラフである言語グラフ(languagegraph)を導入して補助言語を選択した．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{事前訓練モデル}\label{事前訓練モデル}近年，大規模な単言語コーパスで学習した事前訓練モデルが開発され，\pagebreakさまざまなタスクで効果を上げている．機械翻訳でも，事前訓練モデルを対訳コーパスでファインチューニングすることで，低リソースの弱点をカバーし，従来の翻訳品質を大幅に上回る精度を出せるようになっている．事前訓練モデルとしてBERT\cite{devlin-etal-2019-bert}を使用する場合，これはTransformerエンコーダなので，NMTのエンコーダー部分を置換または補完する形で使用する\cite{imamura-sumita-2019-recycling,clinchant-etal-2019-use,Zhu2020Incorporating}．そのため，英語用のBERTを使ったNMTでは，原言語が英語となり，目的言語が低リソース言語となる．\citeA{imamura-sumita-2019-recycling}は英語→ベトナム語，\citeA{clinchant-etal-2019-use}や\citeA{Zhu2020Incorporating}は英語→ロシア語で実験を行い，いずれもBLEUスコアが上昇することを確認した．事前訓練モデルとして多言語エンコーダ・デコーダモデル（たとえばmBART;\cite{liu-etal-2020-multilingual-denoising}）を用いると，原言語・目的言語ともに，多言語モデルがサポートした言語すべてを使用することができ，\ref{多言語モデル}節の多言語モデルと，\ref{転移学習}節の転移学習を組み合わせたような効果が得られる．WorkshoponAsianTranslation\cite{wat-2021-asian}のNICT-SAP共通タスクでは，英語とヒンディー語，タイ語，マレー語，インドネシア語への翻訳が実験されており，mBARTモデルをファインチューニングしたシステムが翻訳品質上位を占めていた\cite{susanto-etal-2021-rakutens,imamura-sumita-2021-nict}．また，WorkshoponTechnologiesforMTofLowResourceLanguages\cite{mtsummit-2021-technologies}というワークショップも開催されており，さまざまな事前訓練モデルの利用が提案されている．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{特許機械翻訳における低リソース言語対策}特許機械翻訳ではこれまで主要国の知的財産庁で構成されるIP5\footnote{\url{https://www.jpo.go.jp/news/kokusai/ip5/index.html}}におけるデータを中心に研究が進められてきた経緯があり，これら主要国の言語間に対しては各庁やWIPOで機械翻訳の導入も進んでいる．一方で，その他各国の言語については特許文書のみならず各種技術文書の対訳コーパスは十分に整備されていないのが実情であり，今後国際的な連携によるデータの拡充が求められている．日本における特許文書の翻訳の場合を考察すると，日本語と低リソースとなる言語として東南アジアの言語（タイ語，ベトナム語など）が挙げられる．WAT2020，WAT2021において東南アジアの言語と英語との翻訳について研究されている\cite{nakazawa-etal-2020-overview,wat-2021-asian}．今後，日本語を含むアジア諸言語についての低リソース言語対対策の研究が進むことが望まれる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{評価}
ある機械翻訳システムや機械翻訳結果が満足のいく品質水準にあるかどうかは実用上最も重要な問題である．出来上がったシステムの評価をすることの重要性もさることながら，機械翻訳システムの開発においては評価とシステム改善を繰り返し行うことが必要であることから，特に機械翻訳の発展著しい2000年代以降は機械翻訳の評価についての研究も数多く行われている．本節では機械翻訳の評価に関する代表的な方法について概説し，特許翻訳における課題との関係について述べる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{人手評価}人間による評価（人手評価）は，本来多数の正解訳が許容される翻訳の問題において非常に重要な役割を持つ．人手評価が適切に実施されることにより，ある機械翻訳結果の品質がいかほどであるか，他の機械翻訳結果と比較して優れているか，どういう点で誤りがあるのか，等，様々な観点で機械翻訳を捉えることが可能となる．さらに人手評価は，後述する自動評価による評価結果が信頼に足るものであるかどうかを評価する\footnote{自動\emph{評価}の「評価」であるため，「メタ評価」と呼ばれることが多い．}ためのリファレンスでもあるため，機械翻訳技術や自動評価技術の進展の重要な基盤と考えることができる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{段階評価による人手評価}機械翻訳における人手評価では，1990年代に始まった米国ARPAの機械翻訳プロジェクトの評価尺度である\emph{忠実さ}(adequacy)と\emph{流暢さ}(fluency)がその後長く利用されていた\cite{white-etal-1994-arpa}．忠実さは原文や参照訳との比較で本来訳出すべき重要な内容をどの程度訳文が反映しているかを，流暢さは訳文がどの程度自然かつ流暢なことばになっているかを，それぞれ5段階で評価するものである．特許翻訳の共通タスクNTCIR-7PATMT\cite{NTCIR7PATMT}ではこれらの人手評価が用いられた．後のNTCIR-9及びNTCIR-10PatentMT\cite{NTCIR9PatentMT,NTCIR10PatentMT}では流暢さに変わって\emph{容認性}(acceptability)が採用された．容認性は，忠実さで測られる重要な情報がすべて訳出されている訳文について，文法的な正しさ，読みやすさ，流暢さ等で5段階にしたものであり，必要な内容は含まれているがそれが自然で伝わりやすいことばとして訳出されているかに注目したものである．特許という事実の伝達を目的とした文書の翻訳においてはまず内容が漏らさず含まれていることが必要条件と言えるため，特許翻訳の実用を反映した人手評価の仕組みと言える．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{相対評価から直接評価へ}こうした段階評価の方法は評価者間の一致度が十分でないことや，\pagebreak機械翻訳の精度向上とともにシステム間の差が測りづらくなってきたことが指摘されるようになった．機械翻訳研究における各種共通タスクを牽引している国際会議WMTでは機械翻訳の共通タスクと並行して機械翻訳評価手法の共通タスクを実施しているが，2000年代後半からは異なるシステムの翻訳結果を比較して行う順位による相対評価が中心となった\cite{callison-burch-etal-2007-meta}．一方で相対評価では絶対的な翻訳の良し悪しが分からないという面もあり，2010年代半ばからは直接評価（DirectAssessment;以下DA）と呼ばれる連続的な数値評価が行われるようになった\cite{graham_baldwin_moffat_zobel_2017}．DAでは0から100の整数で訳文の評価を行い，評価値の標準化を施すことで評価者間の違いを調整して利用している．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{より詳細な品質評価に向けた動き}さらに近年ではNMTによる翻訳精度の向上を受け，DAでの訳質の識別も容易でなくなりつつあり，人手評価方法の見直しが議論されている．2021年のWMTではより詳細かつ系統的な翻訳品質評価尺度である多元品質評価尺度（MultidimentionalQualityMetrics;以下MQM）\footnote{\url{http://www.qt21.eu/mqm-definition/definition-2015-06-16.html}}\cite{lommel_2014}に基づく人手評価が採用された\cite{freitag-etal-2021-results}．MQMでは機械翻訳の誤りに対し，その誤りが様々な誤訳の類型のどれに当たるもので，誤りの程度が「なし(None)」「軽度(Minor)」「重度(Major)」「深刻(Critical)」のどれに当たるものかを分類して重み付けし点数付けする．\citeA{freitag-etal-2021-experts}ではMQMを利用した大規模な機械翻訳評価を行い，その分析を通じて人手翻訳と機械翻訳の違い，翻訳の人手評価における問題について論じている．MQMはそれ以前から存在した人手翻訳を含む翻訳評価の仕組みであるLISAQAModelやTAUSDQFに基づいて設計されたものであり，日本では日本翻訳連盟(JTF)が策定したJTF翻訳品質評価ガイドライン\cite{JTFguideline-2018}で類似した翻訳品質評価の設計が行われている．つまり，機械翻訳は人手翻訳と同様の厳しさをもって評価されるべきである，という時代が到来したと考えてよいだろう．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{自動評価}自動評価は機械翻訳の評価を計算機が自動的に行う技術である．典型的な自動評価は，機械翻訳結果を参照訳と比較し，その「近さ」を定量化した評価値として返すというものであるが，近年では参照訳のみならず原文をも入力として活用する手法が提案される等大きな変化が始まっている．本稿では代表的な手法を中心に紹介する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{表層ベース自動評価}自動評価の初期に用いられていたのは，音声認識の評価で現在も利用されている単語誤り率(WordErrorRate;WER)である．WERは機械翻訳結果と参照訳の表層情報のみを利用した，単語列の編集距離に基づく非常に直感的な「近さ」の尺度と言える．しかしながら，音声認識と異なり機械翻訳の場合は語順の変化が許容される場合が多く，参照訳の特定の語順に強く制約されるWERは評価尺度としては厳しすぎると見ることもできる．そのため，語順の情報を無視し，機械翻訳結果と参照訳それぞれを単語の集合とみなし，集合間の単語の一致率を用いた位置独立単語誤り率(Position-independentWordErrorRate;PER)が利用されることもあった\cite{tillmann97_eurospeech}．そうした中，2001年に提案されたのがBLEU(BiLingualEvaluationUnderstudy)\cite{papineni-etal-2002-bleu}である．BLEUは単語n-gram単位での機械翻訳結果と参照訳の一致率を利用することで，WERほど語順に強く左右されることもなく，ある程度の単語の繋がりを考慮することを可能にした．その後約20年にわたり機械翻訳の自動評価のデファクトスタンダードの位置を占めている．当時は米国NISTが機械翻訳の大規模な研究プロジェクトを実施しており，BLEUもそのプロジェクトにおける機械翻訳の自動評価尺度として提案されたものである．すぐ後にBLEUを改変した尺度であるNIST\cite{doddington-2002-automatic}も提案されている．WERはもとより，BLEUやNISTは単語の表層形のみで訳語の正誤判定をするものであり，活用形の違いや同義語への置換に対して過剰にペナルティをかけてしまう．METEOR\cite{banerjee-lavie-2005-meteor}はステミングやWordNetの同義語辞書を利用することで柔軟な評価を可能にしており，現在でも良く使われている．一方で，単語を単位とする自動評価においては単語分割を評価に際して行う必要があり，日本語や中国語等分かち書きが行われない言語においては，単語分割の方法により結果が大きく変わってしまうという問題があった．chrF\cite{popovic-2015-chrf}は文字n-gramのFスコアを用いて評価を行うことでそうした問題の解消を狙ったものである．さらに単語n-gramも用いた拡張版がchrF++\cite{popovic-2017-chrf}で，人手評価との相関が改善することが示されている．BLEUのように決まった長さの単語列の単位に分解するのではなく単語列全体としての正しさに注目したのが翻訳誤り率(TranslationErrorRate\footnote{編集距離を用いることから当初は翻訳編集率(TranslationEditRate)という名称であったが後に改められた．};TER)\cite{snover-etal-2006-study}である．TERはWERと同様の編集距離を利用しつつも，連続する部分単語列がまとまって移動するシフトという編集を許可することによって直感的な編集誤りの計算を行っている．IMPACT\cite{echizen-ya-araki-2007-automatic}は最長一致部分単語列に着目して句や節といったまとまった部分単語列を抽出することで評価の改善を狙ったものであり，RIBES\cite{isozaki-etal-2010-automatic}は単語列の順位相関を利用して大域的な語順の誤りに敏感な評価を狙ったものである．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{モデルベース自動評価}2010年代に入りword2vec\cite{mikolov2013efficient}をはじめとする分散表現の利用が盛んになったことで，これまで表層に強く依存してきた機械翻訳評価に大きな変化が訪れた．特に2010年代後半以降の文の分散表現に関する研究の進展により，自動評価の性能も飛躍的に向上してきている．ここでは，翻訳評価のデータを使ったファインチューニングを要さない汎用性の高い手法と，翻訳評価のデータを用いたファインチューニングにより機械翻訳評価に特化した手法の二つに分けて概説する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\paragraph{ファインチューニングなし}翻訳評価のデータによらない方法として，文の意味的類似度によって翻訳に求められる意味的等価性を測る尺度が用いられている．WE\_WPI\cite{echizenya-etal-2019-word}は単語埋め込みの最適輸送を用いて文書の意味的類似度を測るWordMover'sDistance\cite{pmlr-v37-kusnerb15}に単語アライメントに基づいて語順の制約を加えることで翻訳の自動評価を行っている．BERTScore\cite{bert-score}は自然言語処理分野で広く活用されているBERT(BidirectionalEncoderRepresentationsfromTransformers)\cite{devlin-etal-2019-bert}を用いて二つの文をそれぞれサブワードベクトルの集合として表現し，サブワードベクトル間の余弦(cosine)を類似度として用いて文の類似度を近似計算する．MoverScore\cite{zhao-etal-2019-moverscore}は最適輸送を利用したBERTScoreの拡張である．これらの方法は大規模なテキストで事前学習されたBERTにのみ依存するため，機械翻訳評価に限らず，幅広い分野の文の類似度尺度として利用できるという利点があるが，機械翻訳評価における性能においては次に挙げる手法よりもやや劣ることが多い．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\paragraph{ファインチューニングあり}翻訳評価のデータを正解として評価モデルをファインチューニングすることで，翻訳評価に特化した高性能なモデルが得られることが知られている．特にWMTにおけるDAスコアの回帰問題と考え，翻訳文と参照訳の組を入力とし，DAスコアを出力として学習する手法がこの数年数多く発表されている．RUSE\cite{shimanaka-etal-2018-ruse}は文の分散表現を用いた機械翻訳評価の端緒となった手法であり，BERT以前に提案されていたInferSent，Quick-Thought，UniversalSentenceEncoderを利用したものである．RUSEにおける文の分散表現をBERTによるものに置き換えたのがBERTRegressor\cite{shimanaka2019}であり，RUSEより高い人手評価との相関を示している．BLEURT\cite{sellam-etal-2020-learning}は評価以外の補助タスクを用いた事前学習を行うことで汎用性を向上させた．C-SPEC\cite{KosukeTakahashi2022}，COMET\cite{rei-etal-2020-comet}は回帰モデルの入力に原言語の入力文を加え，言語横断モデルに基づく文埋め込みにより翻訳文と参照訳の意味的類似性のみならず翻訳文と原文の意味的類似性を考慮することを目指したものである．これらの手法は人手評価との相関が高くなる一方で，学習データが必要になること，また性能がその学習データの特徴に左右されることが問題とも言える．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{特許機械翻訳と翻訳評価}上記の評価は翻訳の正しさという面に着目し，各翻訳文，もしくは文の集合としての文章の翻訳に対して，その優劣を問うものである．一方で，特許関連の実務において，こうした翻訳の評価における優劣が実用上の有効性と直結するとは限らない．そこで実用上の有効性を評価することを目的とした外的評価(extrinsicevaluation)が行われることがある．NTCIR-7PATMT\cite{NTCIR7PATMT}では特許における言語横断情報検索での応用を想定し，英語の検索クエリを日本語に機械翻訳して日本語の特許文書の検索を行う，という外的評価が行われた．後年のNTCIR-9及びNTCIR-10PatentMT\cite{NTCIR9PatentMT,NTCIR10PatentMT}では，特許審査評価(PatentExaminationEvaluation)と呼ばれるより実務に近いシーンを想定した外的評価が実施された．実際の特許出願審査で拒絶の審決が行われた出願を対象として，拒絶理由として用いられた既存発明の特許文書を機械翻訳し，それによって本来の審決と同様に拒絶の判定をするための情報が得られるかどうかを，特許審査実務の経験者が6段階で判定するというものであった．一方で，特許庁でも機械翻訳を広く活用していることから機械翻訳の評価方法について長年検討・調査を行っており，2014年には「特許文献機械翻訳の品質評価手順」と題した評価マニュアル\cite{JPOeval-2014}を公開している．この評価手順の特徴としては，従来の人手評価で利用されていた忠実さや流暢さによる絶対評価に加え，特許機械翻訳の評価において重視される重要技術用語の訳質についての評価が考慮されていることが挙げられる．また，機械翻訳の誤りフィードバックを目的としたチェックリストについても言及されており，これは先に述べたMQMやJTF翻訳品質評価ガイドラインと類似した誤り項目ごとのチェックが考慮されている．さらに，本マニュアルで挙げられた忠実さの設計では，評価の対象を重要情報と呼び，技術的要素とその相互関係を表す名詞句や述語等に注目することが明示されている．この忠実さの尺度は，アジア言語翻訳ワークショップ(WorkshoponAsianTranslation;WAT)の共通タスクにおいてJPOAdequacyとして2015年の第2回から人手評価に利用されている\cite{nakazawa-etal-2015-overview}．以上述べた通り，特許機械翻訳の実用的な評価と，学術界で広く利用されている様々な評価手法の間には少なからぬ乖離がある．特に機械翻訳研究で広く用いられている自動評価ではすべての情報を同等に扱う傾向が強く，どういう点が所与の翻訳タスクで重要であるか，という観点が具体的に考慮されることはほとんどない．最近研究が盛んになっている評価用データでファインチューニングを行うモデルベース自動評価であれば，特許を対象とした中規模の翻訳評価データを利用することで評価の性能が向上する可能性はあると考えられる．しかしながら，入力文に対して文平均での評価スコアを付するというような枠組みは機械的に扱うのには便利な反面，人に向けての誤りのフィードバックや分析には不便な面がある．昨今のMQMに基づく人手評価のように，専門家による詳細な評価アノテーションの特許翻訳領域での拡大と，データの蓄積とそれに基づく技術の改良が今後の重要な課題と言えよう．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{翻訳の高速化・省メモリ化}
本節では，翻訳システムの使いやすさに影響する，翻訳実行時における速度向上，省メモリ技術について説明する．特許機械翻訳では膨大な特許文書を対象にモデルの学習や翻訳の実行を高速に行うことが求められ，一方で政府機関である知的財産庁での利用やサービスの提供にあたっては費用対効果が問われる面もあるため，実用にあたっての処理の効率化は非常に重要な課題である．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%table1\begin{table}[b]\input{08table01.tex}\hangcaption{翻訳の高速化，省メモリ化のまとめ．〇は効果あり，×は効果なし，△は他の技術と組み合わせることにより効果ありを表す．}\label{tbl-summary}\end{table}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%本節における技術分類を表\ref{tbl-summary}に示す．本節で述べる技術は，モデルに関するもの，訓練・テスト時の処理，実装に関するものに細分して説明するが，複数の項目の組み合わせで動くものもあり，この分類は便宜上のものである．近年，超大規模事前訓練モデルの訓練，および利用時の速度向上やメモリ削減も注目されて来ているが（たとえば\cite{li-etal-2021-multilingual}），本節は中～小規模モデル利用時の高速化やメモリ削減がテーマである．本節では，翻訳モデルとして，Transformer\cite{DBLP:journals/corr/VaswaniSPUJGKP17}（図\ref{fig-transformer}）を前提として説明するが，多くの技術は再帰ニューラルネット(RNN)ベースの翻訳器\cite{Sutskever:NNMT2014,Bahdanau:NMT2015}にも適用可能である．Transformer特有の技術に関しては明記する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.5\begin{figure}[t]\begin{center}\includegraphics{29-3ia8f5.pdf}\end{center}\caption{Transformerの構成}\label{fig-transformer}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%翻訳実行時の性能は，ハードウェアやソフトウェアの実装方法に依存する．本節では，現在最も普及しているIntel社のCPU，NVIDIA社のGPUを前提とするが，バージョンによって利用可能な命令セットが異なるので，適用可否はハードウェア依存であることは注意が必要である．また，WorkshoponNeuralGenerationandTranslation\cite{birch-etal-2018-findings,hayashi-etal-2019-findings,heafield-etal-2020-findings}では共通タスクとして，EfficientMTTrackが実施されており，共通のデータ，および環境を用いて，翻訳速度，使用メモリの比較を行っている．参照していただきたい．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{モデル関連技術}\label{sec-model-techniques}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{小規模モデル}\label{sec-tiny-model}モデルのパラメータ数を削減することで，省メモリ・高速化する．削減方法には，\begin{itemize}\item深層モデルのレイヤー数を減らす方法\item分散表現の次元数（Transformerの場合，モデル幅とフィードフォワードネットワークの隠れ次元数）を削減する方法\end{itemize}がある．モデルのパラメータ削減による高速化は，翻訳品質とトレードオフであり，パラメータ数を減少させると，一般的には高速化される代わりに翻訳品質は低下する．この問題は，知識蒸留\cite{hinton2015distilling,kim-rush-2016-sequence}を併用することにより緩和させることができるため，第\ref{sec-distillation}節で再度議論する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{サブワード}\ref{sec:low-frequent-terms}節で述べたサブワード化\cite{Schuster:WordPiece2012,DBLP:journals/corr/WuSCLNMKCGMKSJL16}は，低頻度語を高頻度なサブワードの列に分割することによって，未知語や低頻度語を翻訳可能にする技術である．現在，サブワード化方法として，頻度に基づくバイトペア符号化(byte-pairencoding;BPE)\cite{sennrich-etal-2016-neural}と，文のunigram確率を最大化するように分割するSentencePiece\cite{kudo-2018-subword,kudo-richardson-2018-sentencepiece}が多く使われているが，どちらも語彙数を制御できるのが特徴である．語彙数は通常，数千から数万で設定される場合が多い．単語埋込テーブル（図\ref{fig-transformer}のE1およびD1）とデコーダ出力層の線形変換行列（同D7）が語彙に依存するパラメータであるが，これは全体のかなりの部分を占める．そのため，サブワードの語彙数を削減することは，メモリ使用量の削減に有効である．たとえば，Transformerの基本モデル\cite{DBLP:journals/corr/VaswaniSPUJGKP17}の場合，原言語，目的言語ともに語彙が64,000語だとすると，モデルパラメータは約1.4億個になるが，8,000語にすると6千万個以下に減少する．また，デコーダの出力層で行われるSoftMax操作（図\ref{fig-transformer}のD8）は，語彙数に依存した時間がかかるため，語彙数削減は高速化にも寄与する．最適な語彙数は，実験的に設定する場合が多いが，近年，翻訳品質を最高にするサブワード化方法も提案されている\cite{xu-etal-2021-vocabulary}．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{パラメータ共有}NMTはさまざまな機能を持つサブネットワークの組み合わせで構成されているので，同じ機能を持つサブネットのパラメータを共有することで，モデルを小さくし，メモリ使用量を削減する方法も使われる．なお，パラメータ共有は処理を削減するわけではないので，高速化にはほとんど効果がない．UniversalTransformer\cite{DBLP:journals/corr/abs-1807-03819,Dabre:UniversalTransformer2019}は，Transformerのレイヤー（図\ref{fig-transformer}のE5およびD6）を繰り返し適用する方法で，翻訳時の使用メモリを削減できる．原言語と目的言語の語彙を共通化すると，エンコーダとデコーダの単語埋込テーブルを共有することができる．ヨーロッパ言語間のように使用文字が共通な場合には効果が高い．また，デコーダの単語埋込テーブル（図\ref{fig-transformer}のD1）と，デコーダ出力層の線形変換行列（同D7）は，基本的に逆変換操作であるので，両者を共有しても精度的な劣化は少なく，共有されることが多い（tiedvocabularyと呼ばれる\cite{nguyen-chiang-2018-improving}）．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{自己アテンション機構の置き換え}Transformerのデコーダは，前方から1単語ずつ生成する自己回帰型(autoregressive)を使っている．一方，Transformerは，自己アテンション(self-attention)機構を使って，処理中の単語の周辺文脈を考慮している．自己回帰処理中は，それまでに生成したすべての単語の分散表現を混合するため，デコーディングの後半になるほど処理量が増大する．そのため，高速な自己アテンション機構がいくつか提案されている．Marian翻訳システム\cite{junczys-dowmunt-etal-2018-marian-cost,junczys-dowmunt-etal-2018-marian}は，Transformerデコーダの自己アテンション機構を直前状態のみに依存する機構に置き換えることで高速化した．SimplerSimpleRecurrentUnit(SSRU)\cite{kim-etal-2019-research,lei-etal-2018-simple}は，LSTMなどと同じRNNユニットの一種であるが，忘却ゲートを適応型指数平均に置き換え，さらにリセットゲートを省略することで処理を単純化している．基本的にRNNユニットなので，直前状態のみ保持していれば，現在の状態を更新できるため，自己回帰型デコーダの計算量が一定となる．AverageAttentionNetwork(AAN)\cite{zhang-etal-2018-accelerating}も直前状態のみに依存させることができるため，デコーダの高速化に寄与する．同様に，自己アテンション機構を置き換えた高速化モデルには，Reformer\cite{kitaev2020reformer}，Linformer\cite{wang2020linformer}などがある．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{非自己回帰デコーダ}デコーダの処理で，1単語ずつ生成する方式\cite{DBLP:journals/corr/VaswaniSPUJGKP17}を自己回帰型と呼ぶのに対して，Transformerの並列性を利用して，全単語を1ステップで生成する方式を非自己回帰デコーディング(non-autoregressivedecoding)\cite{DBLP:journals/corr/abs-1711-02281,lee-etal-2018-deterministic,ghazvininejad-etal-2019-mask}と呼ぶ．ただし，1ステップでは十分な精度が出ないため，非自己回帰デコーディングを繰り返し適用する場合が多い．非自己回帰デコーディングは，提案レベルでは高速な翻訳が可能であると報告されているが，自己回帰型に比べ翻訳品質が劣るため，実用的にはまだ使われていない．なお，自己回帰型でも，1ステップで2トークンを同時生成することで若干高速化が可能である\cite{ijcai2019-760,imamura-sumita-2020-transformer}．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{訓練・テスト時の技術}\label{sec-training-techniques}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{知識蒸留}\label{sec-distillation}知識蒸留(Knowledgedistillation)\cite{hinton2015distilling,kim-rush-2016-sequence}は，teacher-studentapproachとも呼ばれ，教師モデルが持つ知識を生徒モデルに反映させる技術である．知識蒸留自体は，高速化や省メモリ効果はないが，教師と生徒のモデルが分離されており，生徒側に\ref{sec-tiny-model}節で述べた小規模モデルを利用できるため，結果的に高速化・省メモリに寄与できる．NMTに適用可能な知識蒸留方式は2種類知られている．単語レベル知識蒸留\cite{hinton2015distilling}は，マルチクラス分類用の技術を機械翻訳に適用したもので，教師モデルの最終層（デコーダの出力単語分布）を模倣するように生徒モデルを学習する．分布を模倣させるため，教師モデルと生徒モデルの目的言語語彙は一致している必要がある．それに対して，系列レベル（文レベル）知識蒸留\cite{kim-rush-2016-sequence}は，原言語のコーパスを教師モデルで目的言語に翻訳し，原言語を対にした疑似コーパスで生徒モデルを学習する．目的言語の多様性が少なくなるため，小さなモデルでも教師モデルに近い精度で翻訳可能となる．機械翻訳で使用される知識蒸留は，ほとんどが系列レベル知識蒸留である．知識蒸留では，教師モデルの翻訳品質が生徒モデルの品質に影響するため，モデルアンサンブルなど，できるだけ高品質な教師モデルを用いることが多い\cite{kim-etal-2019-research}．\citeA{Imamura:KnowledgeDistillation2021j}は，日英翻訳を対象に，知識蒸留を適用した場合の小規模モデルの高速化効果を調査した．その結果，以下の知見を得ている．\begin{itemize}\item高速化の観点からは，分散表現の次元数を削減するより，深層モデルレイヤー数を削減した方が効果的である．\itemエンコーダのレイヤー数を削減するより，デコーダのレイヤー数を削減した方が，翻訳品質を劣化させずに高速化できる\cite{kasai2021deep}．\end{itemize}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{ビーム幅，貪欲探索}翻訳時の高速化に効果的なのは，ビーム探索時（図\ref{fig-transformer}のD9）のビーム幅を小さくして探索空間を縮小することである．一般的には翻訳品質は悪化するが，知識蒸留で構築したモデルの場合，比較的狭いビーム幅でも翻訳品質を落とさず翻訳できる\cite{Imamura:KnowledgeDistillation2021j}．幅1のビーム探索は，貪欲探索と呼ばれているが，探索中の翻訳仮説（ビーム中の候補）同士を比較する必要がなくなるので，デコーダ出力層のSoftMax操作（図\ref{fig-transformer}のD8）を省略することができる\cite{hoang-etal-2018-fast}．つまり，デコーダが出力するlogitのうち，最大の要素を選択すればよい．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{動的語彙選択（CPU用）}GPUを使わずに翻訳する際にボトルネックとなる部分は，デコーダ出力におけるSoftMax操作（図\ref{fig-transformer}のD8）と出力単語分布からのTop-K選択操作である．SoftMaxは全要素の総和を含んでいるため，CPUで実行すると基本的には要素数ステップの計算を行わなければならない\footnote{GPUの場合は数百～数千コアで並列計算するので，ステップ数は少ない．}．Top-K選択も同様である．階層的SoftMax\cite{Morin:HierarchicalSoftmax2005}などを使って，SoftMax自体を高速化する方法もあるが，翻訳テスト時に限ると，SoftMaxが適用されるデコーダの語彙サイズを減少させることで，速度を向上させることができる．\citeA{shi-knight-2017-speeding}は，単語アライメントに基づく語彙選択を行った．手順は以下のとおり．\begin{enumerate}\itemMoses\cite{koehn-etal-2007-moses}などのツールキットを用いて，原言語と目的言語の単語翻訳確率テーブル$P(e|f)$を作成する．ただし，$f$は原言語の単語，$e$は目的言語の単語である．\item原言語の各単語$f$に対して，翻訳確率の高いトップ$M$個の目的言語単語$\{e_1,...,e_M\}$を抽出してハッシュテーブルに格納・保存しておく．\item翻訳テストの際には，原文（または原言語のミニバッチ）が与えられたら，すべての原言語単語をキーとしてハッシュテーブルを参照し，対応する目的言語の単語集合$V_{new}$を得る．\itemデコーダの出力層の線形変換行列（図\ref{fig-transformer}のD7）を，$V_{new}$のみに縮小する（またはマスクする）．\end{enumerate}この方法には，いくつかバリエーションがある．\citeA{junczys-dowmunt-etal-2018-marian-cost}は，原言語の1単語ごとに目的言語100語($M=100$)を選択する他に，対訳コーパス全体を通した高頻度語100語を加えた．\citeA{senellart-etal-2018-opennmt}は，原言語1単語に対して目的言語の単語を選択するだけでなく，bigram，trigramに対しても選択するように拡張し，語彙サイズを抑えつつ，カバレッジを上げるようにした．動的語彙選択は，カバレッジが十分な場合，翻訳品質を変えずに高速化できる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{ミニバッチ構成法}ミニバッチは，ニューラルネットの処理単位で，機械翻訳では，長さの異なる複数の原文を1つにテンソルにパックしたものである．原文（単語列）は可変長であるので，最大長のものに合わせてテンソルを用意し，そこに単語IDを挿入している．余った部分には「詰め物」トークン(\texttt{<PAD>})のIDを入れることで，エンコーダの出力から無視できるようにしている．機械翻訳の利用環境にも影響されるが，文書翻訳のように，複数の文を順不同で翻訳できる場合，同じ長さの原文を集めてミニバッチを構成すると，\texttt{<PAD>}トークン数が最小になり，文書全体のテンソルサイズが小さくなる．また，長さが似たような原文は，翻訳文も長さが近くなることが多いので，デコーダの自己回帰数も減少させることができ，全体の処理速度が向上する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{実装}\label{sec-implementation}本稿では，便宜上GPU用，CPU用という分類をしたが，GPUやCPUも製造会社やバージョンによってアーキテクチャが異なっており，使用可能なハードウェア毎に実装方針を変えるべき部分である．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{半精度浮動小数点（GPU用）}半精度浮動小数点数は，IEEE754-2019で標準化された，浮動小数点数の表現形式である．符号1ビット，指数部5ビット，仮数部10ビットの計16ビットで表現するため，FP16とも呼ばれる．$\pm65504$（正規化数の場合）の浮動小数点数を表現できる．仮数部の精度は10進数でいうと約3桁である．単精度浮動小数点数(FP32)に比べるとメモリ使用量が半分になり，さらにハードウェア（NVIDIAP100GPUなど）がサポートしている場合，数倍の速度で計算が可能となるのが利点である．ただし，指数部が5ビットしかないため，勾配計算時や対数確率に指数関数を適用する際など，オーバーフローを起こすことがある\cite{DBLP:conf/iclr/MicikeviciusNAD18}．これを避けるためには，ユーザプログラム内でスケールを管理し，計算中にオーバーフローを発見した時点でテンソル全体の値を小さくするなどの対処が必要となる\cite{ott-etal-2018-scaling}．もう一つの16ビットの浮動小数点表現法は，bfloat16（brain浮動小数点）と呼ばれるものである（Google社が開発し，自社のTensorProcessingUnit(TPU)に実装）\cite{Wang:GoogleBfloat16}．これは，符号1ビット，指数部8ビット，仮数部7ビットを持つ．指数部が単精度浮動小数点と同じく8ビットあるので，ニューラルネットの勾配計算時にオーバーフローすることがほとんどなく，ユーザプログラム内では単精度浮動小数点と同様に扱うことができる．ただし，bfloat16は2021年9月現在はIEEEの規格ではないので，サポートされているハードウェアは多くない．なお，bfloat16は，仮数部の精度が十進数で2桁程度となるが，機械翻訳では最終的に，語彙集合から出力する単語を適切に選択できればよいので\cite{Och:SMTtutorial2005}，この程度でも十分に実用になる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{8ビット整数量子化（CPU用）}Transformerは，LSTM(long-shorttermmemory)のような再帰ユニットを用いたNMTに比べ，行列の乗算，加算処理が多く含まれている．したがって，これを高速化できれば，全体の翻訳速度も向上する\cite{DBLP:journals/corr/abs-1906-00532}．8ビット整数量子化（INT8量子化）は，FP32で表現された数値を，0～255または$-127$～+127で表現する．\citeA{klein-etal-2020-efficient}の実装では，以下のように行列の列ごとに異なるスケールで量子化を行っている．\begin{align}s_{i}&=\mathop{\rmmax}_{j}\left|W_{i,j}\right|\\W_{i,j}^{Q}&=\left\lfloor\frac{127}{s_{i}}W_{i,j}\right\rfloor\end{align}ただし，$W$は量子化前の行列（$W_{i,j}$はその$j$行$i$列の要素），$W^{Q}$は量子化後の行列（$W_{i,j}^{Q}$はその要素），$s_{i}$はスケールである．INT8量子化行列は，行列の乗算だけに適用される．他のテンソル操作，特にレイヤー正規化については，平均と分散を算出するために，操作の内部に除算，二乗，平方根演算を含んでおり，精度が落ちたテンソルでの演算には向いていない．そのため，行列乗算以外の演算は，通常FP32で行われる．INT8量子化を行った行列の乗算操作のフローを図\ref{fig-int8-matmul}に示す．入力の2つのテンソルをINT8量子化して，量子化行列乗算操作を行い，量子化を解除する．通常，入力の一つはモデルパラメータであるので，事前に量子化しておくことができる．図\ref{fig-int8-matmul}の量子化行列乗算は，Intel社の一部のCPUでサポートされているAVX-512(advancedvectorextentions)命令セットや，VNNI(vectorizedneuralnetworkinstructions)命令セットで要素計算を並列に実行できる．量子化やその解除のための計算が増加するが，乗算操作が高速に実行できるため十分に速くなる．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.6\begin{figure}[t]\begin{center}\includegraphics{29-3ia8f6.pdf}\end{center}\caption{INT8量子化を使ったときの行列乗算のフロー\protect\cite{DBLP:journals/corr/abs-1906-00532}}\label{fig-int8-matmul}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%量子化モデルの訓練は通常，FP32浮動小数点（またはFP16）で行い，その後，必要部分だけINT8に量子化して保存する．ただし，モデルを量子化すると，パラメータが若干最適値からずれるため，量子化した状態で数エポックだけ追加訓練して，モデルを適応させた方がよい\cite{klein-etal-2020-efficient,bogoychev-etal-2020-edinburghs}．INT8量子化は，主にCPU用の実装技術であるが，近年はGPUでもサポートされつつある．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{C/C++実装，メモリ確保・解放}高速かつ省メモリな実装を目指すには，C言語またはC++言語による実装を行うのが効果的である．Pythonのようなインタープリタ言語にくらべ，ガーベージコレクションを行わないので，実行時の遅延がない．ガーベージコレクションを行わないということは，メモリ管理を自分で行う必要があるということだが，これは省メモリという観点でのメリットになるほかに，高速化という観点でもメリットとなる．プログラム実行時に時間がかかる作業の一つは，メモリ確保と解放なので，これを最小限に抑えるように実装することで，処理が高速化される．なお，メモリ確保・解放は，インタープリタ言語でも行われることなので，Pythonでも，作業用テンソルを明示的に確保して，翻訳中はそれを再利用するように実装すれば，速度は向上する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{デコーダ計算結果のキャッシュ(1):レイヤー出力}一般的なTransformerデコーダでは，自己回帰型の生成方式を採用しているが，時刻$t$の生成単語$y_{t}$を決定するために，それまでのすべての生成履歴を利用している．これはレイヤーレベルでも同様で，デコーダのレイヤー$\ell$が出力する時刻$t$の分散表現$h_{t}^{\ell}$は，以下のように，1層前のレイヤー出力のすべての履歴から計算される．\[h_{t}^{\ell}=\mathrm{DecoderLayer}^{\ell}(\bm{h}_{1...t}^{\ell-1},\bm{h}_{enc}).\label{eq-autoreg-layer-out}\]ただし，$\mathrm{DecoderLayer^{\ell}(\cdot)}$はデコーダのレイヤー$\ell$の操作，$\bm{h}_{1...t}^{\ell-1}$はレイヤー$(\ell-1)$の時刻$1$から$t$までの全出力，$\bm{h}_{enc}$はエンコーダ出力である．このうち，時刻$t-1$までの分散表現$\bm{h}_{1...t-1}^{\ell-1}$は，時刻$t$以前に計算済なので，これを保存しておけば，テンソルの結合操作で入力が構成でき，自己回帰処理中に再計算する必要がない．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsubsection{デコーダ計算結果のキャッシュ(2):マルチヘッドアテンション}Transformerデコーダでは，自己アテンション機構とエンコーダアテンション機構の2か所でマルチヘッドアテンションが使われている．マルチヘッドアテンションでは，複数のヘッド各々のアテンションを算出し，最後にそれらを連結する構成をとっている．（図\ref{fig-multihead-attention}）%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fig.7\begin{figure}[b]\begin{center}\includegraphics{29-3ia8f7.pdf}\end{center}\caption{Transformerのマルチヘッドアテンション\protect\cite{DBLP:journals/corr/VaswaniSPUJGKP17}}\label{fig-multihead-attention}\end{figure}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1つのアテンションは，入力であるQuery($Q$),Key($K$),Value($V$)の三つ組をそれぞれ線形変換してからアテンション計算を行う．\[{\rmhead}_{i}=\mathop{\rmAttention}(QW^{Q},KW^{K},VW^{V})\]ただし，${\rmAttention}(\cdot)$は図~\ref{fig-multihead-attention}のスケーリングされた内積アテンション計算関数，${\rmhead}_{i}$は1つのヘッドのアテンション，$W^{Q}$,$W^{K}$,$W^{V}$は変換行列である．したがって，$Q$,$K$,$V$が他のレイヤーや他の時刻と同じであれば，線形変換を省略することができる．自己アテンション機構では，\pagebreak\begin{align*}Q&=Q_{t}\\K&=Q_{1...t}\\V&=Q_{1...t}\end{align*}ただし，$t$は現在処理中の時刻，$Q_{t}$は時刻$t$のQuery，$Q_{1...t}$は時刻$t$までのQueryの履歴をすべて結合したものである．$t$以前のQueryは既知であるので，$Q_{1...t-1}W^{K}$と$Q_{1...t-1}W^{V}$は以前に計算したものを再利用することができる\cite{klein-etal-2020-efficient}．エンコーダアテンション機構では，$K$および$V$はエンコーダ出力であるので，すべての時刻，すべてのデコーダ層において同じである．したがって，$KW^{K}$，$VW^{V}$は一度計算したものを再利用すればよい．\cite{klein-etal-2020-efficient,hu-etal-2020-niutrans}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\subsection{翻訳コストの可視化}\label{sec-translation-cost}WorkshoponNeuralGenerationandTranslation\footnote{WorkshoponNeuralMachineTranslation(andGeneration)という名前で実施した年もある．}\cite{birch-etal-2018-findings,hayashi-etal-2019-findings,heafield-etal-2020-findings}では，EfficientMTという共通タスクを実施し，さまざまな組織の機械翻訳システムを，翻訳速度とメモリ・ディスク使用量という観点から比較を行っている．このワークショップでは，異なるシステムの翻訳コストを比較するために，Amazon社のクラウドサービスAWS(AmazonWebService)上の仮想マシンで翻訳システムを実行している．各参加者は，自分のシステムを仮想化ソフトウェアDockerのイメージとして提出し，主催者がAWSで翻訳時間，メモリ使用量を測定する．仮想マシンにはGPUあり・なしなど，いくつかの種類があり，比較条件によって使用する仮想マシンを変えている．たとえば，2020年の共通タスクのうち，GPUトラックでは，\texttt{g4dn.xlarge}という仮想マシンが使われた．これは，GPUとしてNVIDIAT4(16GBRAM)が1つ，CPUとしてXeonPlatium8259CLのうち2物理コアを使用する．マルチコアCPUトラックでは，\texttt{c5.metal}が使われた．これは，XeonPlatium8259CLの48物理コア（VectorNeuralNetworkInstructionsをサポート），192GBメインメモリの仮想マシンである．AWSは使用時間に対して料金が決まっているので，異なる環境（仮想マシン）で動作するシステム同士でも料金という基準でコスト比較が可能となる．ちなみに，2019年は，最も翻訳品質のよかったシステムはGPUベースだったのに対し，1ドルあたりの翻訳語数が最も多い（すなわちコストパフォーマンスがよい）システムはCPUベースのものだった\cite{hayashi-etal-2019-findings}．2020年はどちらもGPUベースのシステムだった\footnote{最も翻訳品質の良いシステムは，1ドルあたり2千万語翻訳し，翻訳語数が最も多いシステムは1ドルあたり1.4億語以上翻訳した．ただし，両者にはBLEUスコアで5ポイント以上の差がある．}\cite{heafield-etal-2020-findings}．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{おわりに}
本論文では，訳抜け・過剰訳への対策，用語訳の統一，長文対策，低リソース言語対対策，評価，翻訳速度・省メモリ対策の6つの観点で特許機械翻訳の課題解決に寄与することが期待される諸技術について解説した．多くの課題は現在のニューラル機械翻訳の研究・開発において注目を集めているものであるが，実際に特許を対象として検証が行われた研究は極めて少ないと言わざるを得ない．これは現在の機械翻訳の研究がWMTニュースタスクのような代表的ベンチマークデータによる実験を中心に議論されることが多いという面と，特定の言語対やタスクに着目した共通タスクがWMT，WAT，IWSLT等多く存在する一方で特許を対象とするタスクの存在感が小さく，またタスク間の知見の共有が十分でないという面が影響していると考えられる．本解説論文で紹介した様々な技術の大部分が特許に着目したものではないことからも分かる通り，特許機械翻訳で特に重視される課題に対処するための技術の種は数多く存在しており，今後はそれらを更に発展させ，特許機械翻訳における実用化が求められている状況と言えよう．逆に，特許文書は機械翻訳や自然言語処理の研究において決して特殊な外れ値ではなく，産業上重要な応用先であるとともに，自然言語処理の基本的な課題を多く内包する，重要な課題であると言える．本論文が今後の特許機械翻訳技術のさらなる発展と実用化に寄与することを期待したい．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\acknowledgment本解説論文に関する技術動向調査は，アジア太平洋機械翻訳協会(AAMT)と日本特許情報機構(Japio)が運営するAAMT/Japio特許翻訳研究会の支援により実施されたものである．関係各機関のご協力に感謝する．%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\bibliographystyle{jnlpbbl_1.6}\bibliography{08refs}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\begin{biography}\bioauthor{今村賢治}{%国立研究開発法人情報通信研究機構主任研究員，および株式会社ATR-Trek．奈良先端科学技術大学院大学博士（工学）．2015年よりAAMT/\linebreakJapio特許翻訳研究会委員．}\bioauthor{越前谷博}{%北海学園大学大学院工学研究科教授．北海道大学博士（工学）．2008年よりAAMT/Japio特許翻訳研究会委員．}\bioauthor{江原暉将}{%江原自然言語処理研究室代表．東京工業大学博士（工学）．2003年よりAAMT/Japio特許翻訳研究会委員．}\bioauthor{後藤功雄}{%NHK放送技術研究所主任研究員．京都大学博士（情報学）．2012年よりAAMT/Japio特許翻訳研究会委員．}\bioauthor{須藤克仁}{%奈良先端科学技術大学院大学准教授．京都大学博士（情報学）．2012年よりAAMT/Japio特許翻訳研究会委員，2016年より同副委員長．}\bioauthor{園尾聡}{%東芝デジタルソリューションズ株式会社参事．九州工業大学博士（工学）．2014年よりAAMT/Japio特許翻訳研究会オブザーバー．}\bioauthor{綱川隆司}{%静岡大学学術院情報学領域講師．東京大学博士（情報理工学）．2004年よりAAMT/Japio特許翻訳研究会オブザーバー，2009年より同委員．2022年より同副委員長．}\bioauthor{中澤敏明}{%東京大学大学院情報理工学系研究科特任研究員．京都大学博士（情報学）．2016年よりAAMT/Japio特許翻訳研究会委員．}\bioauthor{二宮崇}{%愛媛大学大学院理工学研究科教授．東京大学博士（理学）．2008年よりAAMT/Japio特許翻訳研究会委員．}\bioauthor{王向莉}{%株式会社ディープランゲージFounder．新潟大学博士（工学）．2009～2011年AAMT/Japio特許翻訳研究会委員．2011年よりAAMT/Japio特許翻訳研究会オブザーバー．}\end{biography}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\biodate\end{document}