\label{s:introduction}機械翻訳システムでより多くの文を対象に翻訳精度を維持したい場合，その量に応じた大きさの語彙をシステムが取り扱う必要がある．語彙サイズは様々な機械翻訳手法の性能や効率に影響を及ぼすが，特に近年活発に研究されているニューラル翻訳モデル\cite{encdec}では，語彙サイズの増加に伴う影響が顕著である．図\ref{fig:nmt}はエンコーダ（Encoder:符号化器），デコーダ（Decoder:復号器）および注意機構(Attention)と呼ばれる個々のネットワーク構造からなる翻訳モデル\cite{bahdanau14,luong15}であり，ニューラル翻訳モデルとして典型的に使用される構造である．エンコーダは入力シンボル列を連続空間上のベクトル集合に変換し，この情報をもとにデコーダが出力シンボルを1個ずつ順に決定する．エンコーダとデコーダの内部構造はモデルによって様々であり，典型的には複数のリカレントニューラルネットワーク(RecurrentNeuralNetwork:RNN)を用いて構成される．注意機構はエンコーダが生成したベクトルに関する重み付き和を与えるモデルで，デコーダが次回のシンボル推定に使用する文脈情報を生成する．\begin{figure}[b]\begin{center}\includegraphics{25-2ia1f1.eps}\end{center}\hangcaption{エンコーダ・デコーダモデルに注意機構を導入した典型的なニューラル翻訳モデルの概観．このうち，出力層における内部ベクトルから単語への変換が大きな計算負荷となる．}\label{fig:nmt}\end{figure}ここで，ニューラルネットワークで単語等の離散的なシンボルを扱う場合，モデルの入出力層でシンボルと内部ベクトルとの相互変換を行う必要がある．この特徴は特に出力層側で問題となる．入力層側は毎回特定の単語が与えられるため，無関係な単語に関する計算は行われないのに対し，出力層側はあらゆる候補の中から妥当な出力単語を選択する必要があるためである．単語選択のアルゴリズムとして語彙サイズに対する時間・空間計算量の大きな手法を選択した場合，実質的な計算コストが語彙サイズに依存することとなり，翻訳モデルを構築・運用する上での問題となる．実際，ニューラルネットワークによる単語推定で最も単純かつ標準的な手法であるソフトマックス演算は，語彙に含まれる全単語のスコアを隠れ層の一次結合として愚直に計算するため，計算量は語彙サイズに比例する．このため，出力層の計算をいかにして軽量化するかが重要な課題であると言える．この問題はよく認識されており，\ref{sec:prior}で紹介するように，従来様々な解決手法が提案されてきた．出力層を改良するにあたっての着眼点は様々であり，従来手法が何を重点的に解決しようとしているかはそれぞれ異なる．この中で，特に重要と考えられる4つの観点を以下に示す．\begin{description}\item[翻訳精度]手法を適用した際，平均的な翻訳精度が大幅に低下してはならない．特に，単純なソフトマックスと比較して同等程度の性能が維持可能，あるいは，可能であればより高い性能を達成可能である手法が望ましい．\item[空間効率（使用メモリ量）]膨大なメモリを必要とする手法を実行するためには大規模かつシステムが専有可能な計算資源が必要であり，携帯デバイス等の計算資源の制約の強い機器での直接実行には適さない．多くの環境に搭載可能なシステムを構築するためには，手法自体が可能な限り少ないメモリ消費の下で動作可能である必要がある．\item[時間効率（実行速度）]可能な限り高速に動作する手法が望ましい．高速にパラメータを学習可能であればシステムをチューニングする利便性が向上し，また運用時に高速なシステムは計算資源やユーザへの負担を減少させることとなる．空間効率と同様に，運用時に強力な計算資源が使用可能とは限らず，このため非力なCPUでも効率的に動作可能な手法がより望ましい．\item[並列計算との親和性]運用時とは対照的に，パラメータの学習時にはGPU等の強い並列性を持つ計算資源を使用することができる場合がある．並列化の容易な手法であれば，学習時にこれらの強力な計算資源の恩恵に与ることが可能である．\end{description}これらの観点のうち，いずれの項目を特に重視するかが手法自体の特徴となる．提案手法では特に空間効率と時間効率に関して，モデルの定式化段階での計算量を削減することに主眼を置き，翻訳精度は既存手法で最も表現力の高いソフトマックスモデルと同等程度の実現を目標とした．提案手法による出力層はソフトマックスとは異なり，語彙中の単語に対して直接スコアを計算することは行わない．その代わり，各単語に一意な二値符号を割り当て，そのビット列を単語の表現として出力層で学習することで，間接的に単語の推定を行う．この手法を用いることで，最も理想的な場合で$2^n$種類の単語を$n$ビットのみを使用して表現することが可能となるため，その推定に必要な時間・空間計算量を語彙サイズ$V$に対して$O(\logV)$まで減少させることが可能となる．提案手法の基本的なアイデアはこのように単純だが，実験で示すように，単に二値符号のみを用いる手法では翻訳精度が従来手法と比べて大幅に低下してしまうという問題がある．本論文では更に，この問題に対して2種類の観点から提案手法を改良する手法を導入する．まず，従来のソフトマックスモデルを部分的に導入することで，高頻度語と低頻度語を分離して学習可能とする手法を提案する．また，二値符号そのものの頑健性を向上させるために，誤り訂正符号，特に畳込み符号\cite{convcode}による冗長化を施す．実験では，二値符号予測とこれらの改善手法について，難易度の異なる2種類の英日・日英翻訳タスクを用いて翻訳精度の比較を行った．この結果より，提案手法が従来のソフトマックスと遜色ない翻訳精度を達成可能であるとともに，出力層の動作に必要なパラメータ数，および計算時間の両面においてソフトマックスよりも優れていることを示す．