    \documentclass[japanese,]{jnlp_2.1}
\usepackage{jnlpbbl_1.3}
\usepackage[dvipdfm]{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{hangcaption_jnlp}
\usepackage{array}

\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{bm}
\usepackage{multirow}
\DeclareMathOperator*{\id}{\mathrm{id}}
\DeclareMathOperator*{\argmax}{\mathrm{arg~max}}


\Volume{25}
\Number{2}
\Month{March}
\Year{2018}

\received{2017}{4}{8}
\revised{2017}{10}{2}
\accepted{2017}{11}{30}

\setcounter{page}{167}

\jsubject{論文}
\jtitle{二値符号予測と誤り訂正を用いたニューラル翻訳モデル}
\jauthor{小田　悠介\affiref{naist}\affiref{nict} \and Philip Arthur\affiref{naist} \and Graham Neubig\affiref{naist}\affiref{cmu} \and \\
	吉野幸一郎\affiref{naist}\affiref{jst} \and 中村　　哲\affiref{naist}}
\jabstract{
本論文では，ニューラル翻訳モデルで問題となる出力層の時間・空間計算量を，二値符号を用いた予測法により大幅に削減する手法を提案する．提案手法では従来のソフトマックスのように各単語のスコアを直接求めるのではなく，各単語に対応付けられたビット列を予測することにより，間接的に出力単語の確率を求める．これにより，最も効率的な場合で従来法の対数程度まで出力層の計算量を削減可能である．このようなモデルはソフトマックスよりも推定が難しく，単体で適用した場合には翻訳精度の低下を招く．このため，本研究では提案手法の性能を補償するために，従来法との混合モデル，および二値符号に対する誤り訂正手法の適用という2点の改良も提案する．日英・英日翻訳タスクを用いた評価実験により，提案法が従来法と比較して同等程度のBLEUを達成可能であるとともに，出力層に要するメモリを数十分の1に削減し，CPUでの実行速度を5倍から10倍程度に向上可能であることを示す．
}
\jkeywords{ニューラル翻訳，二値符号予測，誤り訂正}

\etitle{Neural Machine Translation Models using Binarized Prediction and Error Correction}
\eauthor{Yusuke Oda\affiref{naist}\affiref{nict} \and Philip Arthur\affiref{naist} \and Graham Neubig\affiref{naist}\affiref{cmu} \and Koichiro Yoshino\affiref{naist}\affiref{jst} \and Satoshi Nakamura\affiref{naist}}
\eabstract{
In this paper, we propose a new method for calculating the output layer in neural machine translation systems with largely reduced computation cost based on binary code. The method is performed by predicting a bit array instead of actual output symbols to obtain word probabilities, and can reduce computation time/memory requirements of the output layer to be logarithmic in vocabulary size in the best case. In addition, since learning proposed model is more difficult than softmax models, we also introduce two approaches to improve translation quality of the proposed model: combining softmax and our models and using error-correcting codes. Experiments on English-Japanese bidirectional translation tasks show proposed models achieve that their BLEU approach the softmax, while reducing memory usage on the order of one tenths, and also improving decoding speed on CPUs by x5 to x10.
}
\ekeywords{Neural Machine Translation, Binalized Prediction, Error Correction}

\headauthor{小田，Arthur，Neubig，吉野，中村}
\headtitle{二値符号予測と誤り訂正を用いたニューラル翻訳モデル}

\affilabel{naist}{奈良先端科学技術大学院大学}{Nara Institute of Science and Technology}
\affilabel{nict}{情報通信研究機構}{National Institute of Information and Communications Technology}
\affilabel{cmu}{カーネギーメロン大学}{Carnegie Mellon University}
\affilabel{jst}{科学技術振興機構}{Japan Science and Technology Agency}



\begin{document}
\maketitle


\section{はじめに}
\label{s:introduction}

機械翻訳システムでより多くの文を対象に翻訳精度を維持したい場合，
その量に応じた大きさの語彙をシステムが取り扱う必要がある．
語彙サイズは様々な機械翻訳手法の性能や効率に影響を及ぼすが，
特に近年活発に研究されているニューラル翻訳モデル \cite{encdec} では，
語彙サイズの増加に伴う影響が顕著である．
図 \ref{fig:nmt}はエンコーダ （Encoder: 符号化器），デコーダ （Decoder: 復号器）および注意機構 (Attention) と呼ばれる
個々のネットワーク構造からなる翻訳モデル \cite{bahdanau14,luong15} であり，
ニューラル翻訳モデルとして典型的に使用される構造である．
エンコーダは入力シンボル列を連続空間上のベクトル集合に変換し，
この情報をもとにデコーダが出力シンボルを 1 個ずつ順に決定する．
エンコーダとデコーダの内部構造はモデルによって様々であり，
典型的には複数のリカレントニューラルネットワーク (Recurrent Neural Network: 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(\log V)$ まで減少させることが可能となる．

提案手法の基本的なアイデアはこのように単純だが，実験で示すように，単に二値符号のみを用いる手法では
翻訳精度が従来手法と比べて大幅に低下してしまうという問題がある．
本論文では更に，この問題に対して 2 種類の観点から提案手法を改良する手法を導入する．
まず，従来のソフトマックスモデルを部分的に導入することで，高頻度語と低頻度語を分離して学習可能とする手法を提案する．
また，二値符号そのものの頑健性を向上させるために，誤り訂正符号，特に畳込み符号 \cite{convcode} による冗長化を施す．

実験では，二値符号予測とこれらの改善手法について，難易度の異なる 2 種類の英日・日英翻訳タスクを用いて
翻訳精度の比較を行った．この結果より，提案手法が従来のソフトマックスと遜色ない翻訳精度を達成可能であるとともに，
出力層の動作に必要なパラメータ数，および計算時間の両面においてソフトマックスよりも優れていることを示す．


\section{詳細な問題定義と従来研究}

\subsection{単純なソフトマックスモデルの定式化}

近年のニューラル翻訳モデルでは，多くのモデルがワンホット表現と呼ばれる単語の表示手法を入出力層に導入している．
つまり，語彙サイズ $V$ と同じ数の次元の連続空間 $\mathbb{R}^V$ を考え，このうちある単語 ID
$\id (w) \in \{x \in \mathbb{N} \ | \ 1 \leq x \leq V \}$ に対応する次元のみ 1，他の次元を 0 とする単位ベクトル
$\bm{e}_{\id (w)} \in \mathbb{R}^V$ を単語の表現と見なす．
本研究では特に出力層について着目するため，以降は単語や語彙に関する用語は全て目的言語側のみを指して用いることとする．
さて，$\mathbb{R}^{V}$ の部分空間
\begin{equation}
 \mathbb{R}_{\mathrm{Cat}}^V := \left\{ \bm{x} \ | \ \bm{x} \in \mathbb{R} \land \forall i. 0 \leq x_i \leq 1 \land \sum_{i=1}^V x_i = 1 \right\}
\end{equation}
は $V$ 次元のカテゴリカル分布の空間を表し，
各 $\bm{e}_{\id(w)}$はちょうどその頂点に位置する．
ここから，ワンホット表現で得られるベクトルは
特定の語彙を定義域とする確率質量関数の一種と見なすことができる．
ここで添字付き細字変数 $x_i$ はベクトル $\bm{x}$ の $i$ 番目の要素を表
し，以降の式においても，他のベクトルに対して同様の記法を用いるものとする．

典型的なニューラル翻訳モデルの出力層では，出力された $V$ 次元ソフトマックス確率分布 $\bm{v} \in \mathbb{R}_{\mathrm{Cat}}^V$
と，ある単語 $w$ のワンホット表現 $\bm{e}_{\id (w)}$ との交差エントロピー
を最小化するようパラメータを学習する．
図 \ref{fig:nmt} に示すように，出力層は典型的には 1 層の全結合ネットワークと見なすことができ，
\pagebreak
損失関数の計算は以下の手順となる．
\begin{align}
 L_{\mathcal{H}}(\bm{v}, \id (w)) :=& \mathcal{H} \left( \bm{e}_{\id (w)}, \bm{v} \right) \label{eq:entropy-1}, \\
=& -u_{\id (w)} + \log \sum_{i=1}^V \exp u_i, \label{eq:entropy} \\
\bm{v} :=& \frac{\exp \bm{u}}{\sum_{i=1}^V \exp u_i}, \\
\bm{u} :=& W_{hu} \bm{h} + \bm{\beta}_u. \label{eq:softmax-output}
\end{align}
ここで，$W_{hu} \in \mathbb{R}^{V \times H}$ と $\bm{\beta}_u \in \mathbb{R}^{V}$ は
勾配法で学習可能なパラメータであり，$\bm{h}$ は出力層の計算に用いる隠れ層のベクトル，$H$ は $\bm{h}$ の次元数を表す．
また $\exp \bm{u}$ はベクトル $\bm{u}$ に関する要素ごとの指数関数であり，
他のベクトルに関しても同様の表記を用いるものとする．
ワンホット表現はただ一つの要素が1であるベクトルのため，
式(\ref{eq:entropy-1})を交差エントロピーの定義に従って分解することで式(\ref{eq:entropy})が得られる．
複数の隠れ層から出力が計算されるネットワークの場合は，$\bm{h}$ として出力層に直結する全てのベクトルを結合したものを考えればよい．
式 (\ref{eq:softmax-output})より明らかに，単純なソフトマックスモデルの計算には $O(HV)$ だけの時間・空間計算量が必要となる．
このうち，隠れ層の次元数 $H$ は典型的には数百から千程度で決め打ちされることが多いのに対し，
語彙サイズ $V$ は使用するコーパスによって数千から数万程度の値を選択することとなり \cite{encdec}，
出力層の計算量に直接影響を与える．


\subsection{出力層の軽量化に関する従来手法}
\label{sec:prior}

出力層の軽量化は，ニューラル翻訳モデルと同様のネットワーク構造を持つモデル群の
中心的な話題のひとつであり，様々な着眼点に基づく手法が提案されている．
これらの着眼点は以下のようなグループに分類でき，
グループの異なる手法はいくつかの例外を除き基本的に併用可能である．

\begin{description}
\item[後処理による隠れ層の大きさの削減]
前述のように，ソフトマックスモデルの計算量は時間・空間ともに $O(HV)$ となる．
本グループに属する手法は，学習済みのモデルに対して後処理を行い，
隠れ層のサイズ $H$ の大きさを縮小することで，全体的な計算量の圧縮を行うことを目的としている．
また，出力層の直前のみでなく，モデルの隠れ層全体を削減する手法についても本グループに属するものと考えられる．

このような考えに基づく一般的な手法としては，学習済みパラメータのノルムを比較し，
実際の計算への寄与が小さいものを削除してしまう\textbf{重み枝刈り (Weight Pruning)} \cite{weight-pruning} ，
学習済みモデルの最終的な出力を教師データとし，
これを再現するより小さなモデルを再学習する\textbf{蒸留 (Distillation)} \cite{distillation} などが挙げられる．
いずれの手法においても，その着眼点は隠れ層側の圧縮であり，語彙サイズ $V$ に関しては元の計算量が維持される点に特徴がある．

\item[確率分布の変形]
本グループに属する手法は，隠れ層のサイズ $H$，及び語彙サイズ $V$ を変えず，
最終的な確率の定式化に変更を加えることで計算量を削減することを目的としており，
後述するように本論文の提案手法はこのグループに属する．

\textbf{階層的ソフトマックス (Hierarchical Softmax)} \cite{hierarchical-softmax} では，
二分木を用いて単語を階層的にクラスタリングした後，木の根から左右どちらの枝を
辿るかを二値分類問題として順に判定してゆくことで単語の推定を行う．
このとき単語の生成確率は，木の根から単語に至るまでに経由した全ての分岐に関する
二値分類確率の総乗として得られる．
本手法を用いる場合，すべての単語に関する確率を求める操作は通常行わず，
各分岐において選択されなかった側の枝に付属する単語は全て候補から除外される．
このような貪欲探索を適用することで，選出される単語の大域最適性が保証されない代わりに，
出力層の時間計算量を理想的には $O(H \log V)$ まで削減することが可能となる\footnote{語彙に含まれる全単語のスコアを計算する必要がある場合，木に含まれる全ての分岐に対して評価が必要であり，このときの償却計算量は $O(HV)$ となる．}．
一方，木に含まれる分岐の数は $V-1$ であり，それぞれが固有のパラメータを持つため，
出力層全体の空間計算量はソフトマックスと同様 $O(HV)$ となり，パラメータの保持に必要なメモリの削減は期待できない．
また木構造を使用することにより計算手順が複雑化するため，並列計算を行うには実装の工夫が必要となる．

階層的ソフトマックスは単語に対応するある種の二値符号を学習するモデルであると考えられるが，
異なる観点から単語を二値符号化し，そのビット列を学習する手法として
\textbf{ブルームフィルタ (Bloom Filter)}を適用する研究がある
\cite{bloom-embedding}．
この手法ではフィルタ中の各ビットが1になる確率を尤度関数としてモデルの学習を行っているが，
フィルタ自体の特性により，ビット列から単語を復元する写像の定義が曖昧であるため，
機械翻訳をはじめとした文生成タスクへ直接適用するのは難しいと考えられる．

\textbf{区分ソフトマックス (Differentiated Softmax)} \cite{differentiated-softmax} では，
単語を複数のグループに分類し，それぞれのグループを隠れ層の異なる部分と対応させることで，
比較的小さな行列の組み合わせで出力層を表現し，計算時間・使用メモリ量の両面での向上を実現している．
これはパラメータ行列 $W_{hu}$ を部分的にゼロ行列に固定することと等しい．
ところが時間・空間計算量の観点では $O(HV)$ から変化がなく，語彙サイズ $V$ が増加した際の
拡張性の面では問題が残る．また，異なるグループに属する単語間の関連性を出力層で十分扱うことができず，
全結合型のネットワークを用いるソフトマックスと比較すると改善の余地が残されている．

\textbf{適応ソフトマックス (Adaptive Softmax)} \cite{adaptive-softmax} では，
単語を出現頻度に基づいて複数のグループに分類し，
まず高頻度語のグループにおいて通常のソフトマックスを実行する．
このときグループ内の単語とは別に，
各低頻度語のグループそのものに対応するラベルを追加しておき，
ソフトマックスによってそのラベルが選出された場合には該当するグループで再びソフトマックス計算を行う．
この手法では，パラメータ数が低頻度語グループの推定の分だけ通常のソフトマックスから若干増加しており，
推定に使用するグループ数を $G$ とすると，パラメータに関する空間計算量は $O(H(V+G))$ となる．
一方で，上位のソフトマックスで選択されなかったグループに属するパラメータは
階層的ソフトマックスと同様に無視されるため，
実質的な出力層の計算の大部分を高頻度語グループのソフトマックスのみで終了することができ，
時間計算量の短縮が見込める．
ただし，選出される単語の大域最適性がモデルの設定によっては保証されない可能性があり，
この点も階層的ソフトマックスと同様である．

\textbf{LightRNN} \cite{lightrnn} は各単語に2種類の異なるワンホット表現を割り当て，
単語推定を2つのソフトマックスの積に分解することで出力層の時間・空間計算量を
$O(H\sqrt{V})$ に削減する手法である．
この手法では2つのソフトマックスをRNNの異なる時刻に割り当てるため，
RNNの系列長は通常のソフトマックスのちょうど2倍となるが，
全体として階層的ソフトマックスより効率的に動作することを報告している．
また，前回の学習結果を用いてワンホット表現の割り当てを修正することで，
推定精度をより向上させる手法についても提案している．

\item[サンプリング]
出力層が生成する確率分布を全体の計算なしに近似する手法として，
適当な数の不正解ラベルを選択し，これらと正解ラベルとの関係を損失として学習する
\textbf{サンプリング法}が適用されることがある \cite{nce,nce-lm,word2vec}．
これらの手法は学習時に語彙サイズ $V$ の時間計算量への影響を取り除くことができ，
学習速度を向上させることが可能である一方，
テスト時には元のモデルと同じ時間計算量を必要とする．
空間計算量，特にパラメータ数に関しては元のモデルと同一であり，
元のモデル構造を維持したまま学習時の時間計算量を削減する手法であると言える．
また，確率分布の定式化手法によっては，サンプリング法の適用に制約を受ける場合がある．

サンプリング法の効果的な応用として，
単語間で分散表現を共有することでパラメータ数を削減する手法が提案されている
\cite{sparse-word-representation}．
この手法では，各単語の分散表現を予め選出した共通単語の分散表現の線形和として定義することで，
ネットワーク内のパラメータ数に関する空間計算量を語彙サイズ $V$ から
共通単語数 $V'$（論文では $V' = 8\mathrm{k}$ に固定）に削減している．
純粋なモデルの目的関数はソフトマックスと同一であるため，このままでは線形和の操作分だけ計算量が増加してしまうが，
サンプリング法を適用することでこの欠点を回避している．

\item[語彙の変更]
以上の手法がすべて語彙が与えられた下での軽量化手法であるのに対し，
語彙の定義自体を変更することで $V$ そのものを小さくしてしまう手法が適用されることがある．
最も単純には語彙として\textbf{文字}を使用する手法 \cite{character-nmt} が挙げられるが，
これはエンコーダやデコーダの生成する系列長が単語を用いた場合と比べて著しく増加してしまう欠点がある．
より効率的な手法として，学習データに含まれる全ての文字列を被覆する部分文字列の集合を学習し，
これを語彙として使用する\textbf{サブワード (Subword) 法}
\cite{gnmt,bpe-nmt,variable-length-encoding,rnnlm-subword} が挙げられる．
語彙サイズを適切に設定し，コーパスに対し最適化されたサブワード列は，
単語列と比較して遜色ない程度の系列長を実現できることが知られているが，
効果的なサブワード集合の学習に関する知識が別途必要となる\footnote{https://github.com/google/sentencepiece に，Google社の提案するサブワードモデルであるSentencePieceに関するいくつかの実験結果が紹介されており，既存の形態素解析器と組み合わせた場合等，より発展的な応用についても議論されている（2017年9月30日閲覧・GitHubコミット番号73）．}．
\end{description}


\section{二値符号予測に基づく単語推定モデル}
\label{s:model}

本研究で提案する手法は，いずれも前節の着眼点のうち，確率分布の変形に基づいて
計算量を削減する手法のグループに属する．
本節では提案手法の基本的な定式化，及び単純な手法からの性能の改善手法について導入する．


\subsection{二値符号を用いた単語の表現手法}

図 \ref{fig:prediction-models}(a) は従来のソフトマックスモデルによる単語推定モデルを表す．
また図 \ref{fig:prediction-models}(b) は本研究で提案する二値符号を用いた単語推定モデルを表す．
提案手法はソフトマックスモデルとは異なり，各単語の生成確率をモデルが直接求めることは行わず，
二値符号の各ビットの生成確率から間接的に単語の生成確率の推定を行う．
まず，
\begin{equation}
\bm{b}(w) := [b_1(w), b_2(w), \cdots, b_B(w)]: \mathcal{V} \rightarrow \{0, 1\}^B
\end{equation}
を各単語 $w$ に直接対応するビット列とする．
ここで各 $b_i(w) \in \{0, 1\}$ はそれぞれ独立した $w$ に関する二値決定関数であり，
$B$ はビット列に含まれるこれらの関数の個数とする．また $\mathcal{V}$ は語彙を表す．
なお，本節における $V$ は単語ID $\id (w)$の異なり数を表し，
実際の語彙サイズ $|\mathcal{V}|$ とは異なることをここで注記しておく．

\begin{figure}[t]
\begin{center}
\includegraphics{25-2ia1f2.eps}
\end{center}
\caption{ソフトマックスモデルと提案手法における出力層の設計の相違点}
\label{fig:prediction-models}
\end{figure}

議論を明確にするために， $\bm{b}(w)$，およびビット列から単語への逆方向の写像
$b^{-1}(\cdot): \{0, 1\}^B \rightarrow \mathcal{V}$
に対して以下のような制約が存在するものとする．

\begin{itemize}
\item
$\bm{b}(w)$ は単語ID $\id (w)$ に関して単射である．つまり，
\begin{equation}
\id (w) \neq \id (w') \Rightarrow \bm{b}(w) \neq \bm{b}(w'). \label{eq:bit-array-constraint}
\end{equation}
が成立する．この制約は，学習時に各単語を明確に区別して扱うために必要である\footnote{大文字・小文字等の表記の違いをどう扱うかは翻訳モデル自体の設計とは直接関係ないと考えられるため，これらの判断は $\id (w)$ の設計に隠蔽されているものとする．}．
\item
$b^{-1} (\cdot)$ は左逆写像であり，定義域は $\{0, 1\}^B$ 全体である．
つまり $b^{-1}(\bm{b}(w)) = w$ が成り立つとともに，$\bm{b}(\cdot)$ の像に含まれるかどうかに関わらず，
あらゆるビット列が何らかの単語に関連付けられているものとする．
この制約は，翻訳モデルの不安定性により解釈不能なビット列が生成される可能性を排除するために必要である
とともに，\ref{s:ecc} 節で導入する誤り訂正符号の根拠としても重要である．
\end{itemize}

これらの制約により，$V$ 種類の単語を十分に識別するために必要なビット数として
\begin{equation}
B \geq \lceil \log_2 V \rceil
\end{equation}
が自明な制約として得られる．

提案手法の出力層では，$\bm{b}(w)$の各ビットが1となる確率
\begin{equation}
\bm{q}(\bm{h}) := [q_1(\bm{h}), q_2(\bm{h}), \cdots, q_B(\bm{h})] \in [0, 1]^B
\end{equation}
を，式 (\ref{eq:logistic}) に示すように，
現在の隠れ層の値 $\bm{h}$ からそれぞれ独立したロジスティック回帰モデルで推定する．
\begin{align}
\bm{q}(\bm{h}) =& \sigma (W_{hq} \bm{h} + \bm{\beta}_q), \label{eq:logistic} \\
\sigma(\bm{x}) :=& \frac{1}{1 + \exp (-\bm{x})}.
\end{align}
ここで $W_{hq} \in \mathbb{R}^{B \times H}$ と $\bm{\beta}_q \in \mathbb{R}^B$ は
学習可能なパラメータである．
これより，ある単語 $w$ が $\bm{q}(\bm{h})$ から生成される確率は，
$\bm{q}(\bm{h})$に含まれる各ビットごとの確率の積
\begin{equation}
\mathrm{Pr} (\id(w)|\bm{h}) := \prod_{i=1}^B \left( b_i(w) q_i(\bm{h}) + (1 - b_i(w)) (1 - q_i(\bm{h})) \right)
\end{equation}
として得られる．
生成確率が最大となるビット列を $\bm{q}(\bm{h}$) から得るには，単に $q_i(\bm{h}) \geq 1/2$
である場合は 1, そうでなければ 0 を出力ビットとすればよい．

ここまでで記述したビット列に関する制約は非常に一般的なものであり，
単語とビット列を対応させる手法には様々なものが考えられる．
また，翻訳モデルにとってどのようなビット列の割り当て手法が効果的であるかは自明ではない．
このため本研究では，事前実験として複数種の割り当て手法で実際に翻訳モデルの学習を行い，
その中で経験的に最も高い翻訳精度を記録した
Algorithm \ref{alg:mapping} に示す単語の出現頻度に基づく手法を採用した\footnote{Algorithm \ref{alg:mapping} 以外に事前に実験した手法としては，完全なランダム，Huffman 符号 \cite{huffman-code}， Brown Clustering \cite{brown-clustering}，word2vec の単語ベクトルの符号に基づいた割り当て等がある．可変長の符号については末尾を 0 で埋めることで固定長として扱った．}．
ここで，\texttt{UNK} (\textit{unknown}) は語彙に含まれない単語，
\texttt{BOS} (\textit{begin-of-sentence}) は文頭記号，
\texttt{EOS} (\textit{end-of-sentence}) は文末記号である．
また $\mathrm{rank}(w) \in \mathbb{N}_{>0}$ は学習データ中の出現頻度に基づく各単語の順位である．
Algorithm \ref{alg:mapping} によるビット列の割り当ては最も効率的な手法 ($B = \lceil \log_2 V \rceil$)
であることが保証される．
また，高位のビットの組み合わせが単語のおおよその出現頻度を示していると考えられる一方，
下位のビットほどランダム性が強まり，
単語に関する頻度以外のどのような情報も保持していないと考えられる．


\subsection{損失関数}

従来のモデルと同様に，提案手法による出力層は勾配法を用いて翻訳モデル全体と同時に
最適化を行う．このため，ビット列のための損失関数はいたるところ (劣) 偏微分可能であり，
また
\begin{equation}
L_{\mathcal{B}} (\bm{q}, \bm{b}) \left\{ \begin{array}{ll}
= \epsilon_L, & \ \mathrm{if} \ \bm{q} = \bm{b}, \\
\geq \epsilon_L, & \ \mathrm{otherwise}.
\end{array} \right. \label{eq:loss-constraint}
\end{equation}
を満たすべきである．ここで $\epsilon_L \in \mathbb{R}$ は損失関数の最小値であり，学習には影響しない．

明示的に確率モデルを学習する観点では，このような損失関数として交差エントロピー
\begin{equation}
L_{\mathcal{B}} (\bm{q}, \bm{b}) := - \sum_{i=1}^B \left( b_i \log q_i + (1 - b_i) \log (1 - q_i) \right), \label{eq:binary-cross-entropy}
\end{equation}
を用いるのが望ましいが，事前実験により二乗誤差
\begin{equation}
L_{\mathcal{B}} (\bm{q}, \bm{b}) := \sum_{i=1}^B (q_i - b_i)^2, \label{eq:squared-distance}
\end{equation}
を用いる方が最終的な翻訳精度が僅かに向上することが確認された．
このため，実験では損失関数として式 (\ref{eq:squared-distance}) を使用することとした．


\subsection{二値符号予測モデルの計算量}

二値符号予測を用いた場合の出力層の計算量は，空間計算量・時間計算量ともに
ビット数 $B$ に関して $O(HB)$ となる．
ここで単語とビット列間の割り当てに Algorithm \ref{alg:mapping} で示したような最も効率的な手法を
用いた場合，この計算量は $O(H \log V)$ に等しくなる．
これは従来のソフトマックスモデルで必要とされた $O(HV)$ と比較して顕著に小さ
く，また $V$ 種類のラベルを識別するモデルとしては最小の計算量であると考えられる．
例として$V = 65536 = 2^{16}$とした場合，出力層に必要とされるのは $16$ ビット分のパラメータであり，
従来法と比較して $16/65536 = 1/4096$ 程度までパラメータ数が削減されることとなる．

\begin{algorithm}[b]
\caption{実験で使用した単語からビット列への割り当て手法}
\label{alg:mapping}
\input{01algo01.tex}
\end{algorithm}

ここで，二値符号予測モデルは従来手法である
階層的ソフトマックス \cite{hierarchical-softmax}
に強い制約を導入したものと捉えることが可能である．具体的には，
単語のビット列への割り当てを二分法の一種に基づいて行う点は
階層的ソフトマックスと提案手法の
共通点であり，各ビットの推定にビット間の従属性を仮定しない点，
および二分木上の同一階層で常に同じパラメータを使用する 2 点が異なる．
これらの制約により，提案手法のビット列 $\bm{b}$ の各ビットは完全に並列に計算することが可能であり，
式 (\ref{eq:logistic}) でも示したように，実質的に単一の行列による積算として表現可能である．
この特徴は，提案手法がGPUなどの並列計算に特化した計算資源上で特別な処理なしに計算可能であることを
示している．
また，ビット間の従属性を仮定しないため，ビットごとの独立した推定結果から
常に大域最適なビット列を得られる点も階層的ソフトマックスと異なる．


\section{二値符号予測モデルの改良}

前節までで示した単純な二値符号予測には，翻訳精度の点で問題が残っている．
実験で示すように，二値符号予測を単体で用いた翻訳モデルは，従来のソフトマックスモデルと比較して
大幅に翻訳精度の低下を招くこととなる．\ref{s:hybrid} 節と \ref{s:ecc} 節では，
このような翻訳精度の問題を解決するために，2 種類の改良を導入することで
二値符号予測モデルの翻訳精度を向上させる手法を提案する．

\begin{figure}[b]
\begin{center}
\includegraphics{25-2ia1f3.eps}
\end{center}
\caption{ソフトマックスと二値符号予測の混合モデル}
\label{fig:hybrid-model}
\end{figure}


\subsection{ソフトマックスと二値符号予測の混合モデル}
\label{s:hybrid}

自然言語の単語のユニグラム出現頻度は Zipf の法則 \cite{zipf49} に従うことが知られており，
学習データ全体のほとんどが一部の頻出語のみに偏っていると言える．
その結果，ニューラル翻訳モデルの出力層から伝えられる勾配も頻出語由来のものが多数となり，
語彙全体を効率よく学習できない可能性があるという問題がある．
従来のソフトマックスモデルでは，各単語のスコアをそれぞれ独立したパラメータを用いて推定しており，
単語の出現頻度の偏りに起因する問題はこれらのパラメータ全体に分散する形で回避されていた．
一方，提案手法である二値符号予測モデルでは同一のパラメータで頻出語と希少語の両方に対応する必要があり，
学習機会の少ない希少語のビット列の学習を頻出語によって阻害されてしまう可能性がある．
この問題を回避する単純な方法として，頻出語と希少語の予測をモデル的に分離し，
一方の勾配が他方に影響を与えないようにすることが考えられる．
このようなモデルとして，本節では図 \ref{fig:hybrid-model}に示すソフトマックスと二値符号予測の
混合モデルを提案する．
具体的には，図 \ref{fig:hybrid-model} 左側のソフトマックス層で，上位 $N-1$ 位までの頻出語と
「その他の単語」に相当する記号 \texttt{OTHER} を識別するモデルを学習する．
希少語を出力するには，まず \texttt{OTHER} 記号をソフトマックス層で推定し，その後
図 \ref{fig:hybrid-model} 右側の二値符号推定により具体的な単語のビット列を推定する，
という二段構造の推定を行う．ここで，ソフトマックス層と二値符号推定はそれぞれ独立したパラメータにより
計算されるため，実際には並列計算が可能である点に注意する．
この手法による各単語の生成確率は，ソフトマックス層の確率と二値符号推定による確率の積となり，
\begin{align}
\mathrm{Pr} (w|\bm{h}) :=& 
	\left\{ \begin{array}{ll}
	v'_{\id (w)}, & \mathrm{if} \ \id (w) < N, \\
	v'_N \cdot \pi (w, \bm{h}), & \mathrm{otherwise},
	\end{array} \right. \\
\bm{v}' :=& \frac{\exp \bm{u}'}{\sum_{i=1}^V \exp u'_i}, \\
\bm{u}' :=& W_{hu'} \bm{h} + \bm{\beta}_{u'}, \\
\pi (w, \bm{h})  :=& \prod_{i=1}^B \left(b_i q_i + (1 - b_i) (1 - q_i) \right),
\end{align}
と書くことができる．
ここで $W_{hu'} \in \mathbb{R}^{N \times H}$ と $\bm{\beta}_{u'} \in \mathbb{R}^N$ は
学習可能なパラメータであり，$\id (w)$ は単語の出現頻度の順位 $\mathrm{rank} (w)$ に基づいて
定義されているものとする．
また，損失関数はソフトマックス層の交差エントロピーと二値符号推定の損失の和で表記でき，
\begin{align}
L :=& \left\{ 
	\begin{array}{ll}
	l_{\mathcal{H}} (\id (w)), & \mathrm{if} \ \id (w) < N, \\
	l_{\mathcal{H}} (N) + l_{\mathcal{B}}, & \mathrm{otherwise}, \\
	\end{array} \right. \label{eq:hybrid} \\
l_{\mathcal{H}} (i)  :=& \lambda_{\mathcal{H}} L_{\mathcal{H}} (\bm{v}', i), \\
l_{\mathcal{B}} :=& \lambda_{\mathcal{B}} L_{\mathcal{B}} (\bm{q}, \bm{b}),
\end{align}
となる．ここで $\lambda_{\mathcal{H}}$ と $\lambda_{\mathcal{B}}$ は
ソフトマックスと二値符号推定の学習重みを決めるハイパーパラメータである．
これらは実際には調整が必要だが，本研究では簡単のために
$\lambda_{\mathcal{H}} = \lambda_{\mathcal{B}} = 1$ のみを使用した．
前述のように，希少語の推定にはソフトマックス層と二値符号予測の両者を使用するが，
式 (\ref{eq:hybrid}) の出力層における偏微分を考えれば，
隠れ層 $\bm{h}$ より後段では両者の勾配が独立していることが分かる．

混合モデルの計算量は，ソフトマックス層の追加により単純な二値符号予測モデルから増加し，
$O(H(N + \log V))$ となる．ただしソフトマックス層は頻出語のみを対象とするため，
$N$ は $V$ と比較して通常非常に小さく抑えられることとなり，実際の計算コストの
増加はそれほど大きくならないことが期待される．
ソフトマックス層の大きさを変化させたときの翻訳精度への影響については，実験で詳しく調査する．

混合モデルにより頻出語と希少語を分離するという考えは，
区分ソフトマックス \cite{differentiated-softmax}
や適応ソフトマックス \cite{adaptive-softmax} で用いられた，
単語クラスタごとに異なるスコア計算を用いる手法が元となっている．
ただし，区分ソフトマックスでは隠れ層と出力層の結合に制約が設けられているのに対し，
混合モデルでは全結合ネットワークを使用しており，隠れ層の値全てを各出力の推定に
用いる点が異なる．
これは，混合モデルを適用してもモデル全体の計算量を小さく抑えられるためである．
また，混合モデルの希少語部をソフトマックスに置き換えた場合，
適応ソフトマックスの分割数が2の場合とモデル的に一致する．
このため，混合モデルは2分割適応ソフトマックスの計算量に改善を加えたものと捉えることも可能である．


\subsection{誤り訂正符号の適用}
\label{s:ecc}

前節までで述べた単純な二値符号予測モデル，および混合モデルは，使用する二値符号
自体の頑健性を考慮していない点で問題がある．具体的には，$\bm{q}(\bm{h})$
は全てのビットを誤りなく推定しなければ正しい単語を予測することができず，
1 ビット誤っただけで全く異なる単語を出力してしまう可能性がある．
この問題は，ビット列全体の空間 $\{0, 1\}^B$ に全ての単語が密に配置されていることに起因するものであり，
ビット列に対して何らかの冗長性を導入することで解決できるものと考えられる．

\begin{figure}[b]
\begin{center}
\includegraphics{25-2ia1f4.eps}
\end{center}
\caption{冗長な符号表現による予測の簡単な例}
\label{fig:ecc-overview}
\end{figure}

図 \ref{fig:ecc-overview} はこの考えを簡単な例で示したものである．
ここでは2種類の単語 ``a'', ``b'' を 3 ビットを使用して推定することを考え，
各単語はそれぞれ「重心」ビット列 [000], [111] に写されるものと考える．
このようなビット列の配置を選択すると，重心同士の間には 3 ビットのハミング距離を持つこととなり，
1 ビットだけの間違いであれば，その近傍にある重心ビット列を選択することで元の単語を
正しく復元可能であることが分かる．図 \ref{fig:ecc-overview} では各々の重心の近傍を
灰色の領域で示している．
このように，実際に記号が関連付けられたビット列同士の間隔に余裕を持たせることで
多少のビット誤りを許容する手法は，誤り訂正符号 \cite{shannon48} の中心的な考えである．
より具体的には，ビット列同士が少なくとも $d$ ビットのハミング距離を持つとき，
符号化手法全体では高々 $\lfloor (d-1)/2 \rfloor$ ビットまでの誤りを訂正可能であることが
知られている．この距離は選択した誤り訂正手法によって定まる定数であり，
最小ハミング距離または自由距離と呼ばれる．

誤り訂正をクラス分類問題に適用する考えは多く提案されており，
タスクごとにうまく手法を設計することで，単純なクラス分類に対する優位性が示されている
\cite{ecoc95,ecoc03,ecoc06,ecoc09,ecoc10,ecoc11,ecoc13}．
本研究では，特定の誤り訂正手法を Algorithm \ref{alg:mapping} で得られるビット列へ適用することで
冗長化を行い，二値符号予測へ冗長性の導入を行う．
ここで，過去に誤り訂正が検証されたクラス分類問題では高々100種類程度のクラスを扱っていたのに対し，
本研究では語彙サイズに応じて数万種類程度のクラスを識別する必要があり，
問題の複雑さが大きく異なる点に注意が必要である．
本研究では，このような巨大なクラス分類問題においても誤り訂正手法の適用が有効であることを示す．

図 \ref{fig:error_correcting}(a) と \ref{fig:error_correcting}(b) は
誤り訂正手法を導入した際の学習時・テスト時の挙動を示している．
学習時には，まず元となるビット列 $\bm{b}(w)$ を誤り訂正符号の重心となる冗長なビット列
\begin{equation}
\bm{b}' (\bm{b}(w)) := [\bm{b}'_1 (\bm{b}(w)), \bm{b}'_2 (\bm{b}(w)), \cdots, \bm{b}'_{B'} (\bm{b}(w))]: \{0, 1\}^B \rightarrow \{0, 1\}^{B'}
\end{equation}
に写す．ここで $B' (B) \geq B$ は冗長化後のビット列に含まれるビット数である．
この写像は単射であり，各 $\bm{b}(w)$ をより大きな空間のお互いに離れた位置に配置し直すこととなる．
ニューラル翻訳モデルはこの冗長なビット列 $\bm{b}'(\bm{b}(w))$ を出力層で学習する．
なお，典型的な誤り訂正手法では $B'$ は $B$ の高々定数倍，つまり $O(B'/B) = O(1)$ であり，
誤り訂正手法の適用前後で出力層の計算量自体が変化しない点は重要である．

\begin{figure}[b]
\begin{center}
\includegraphics{25-2ia1f5.eps}
\end{center}
\caption{誤り訂正を導入した場合の学習時・テスト時の動作}
\label{fig:error_correcting}
\end{figure}

翻訳モデルから実際の単語を生成する際は，モデルにより推定された確率列 $\bm{q}(\bm{h})$ を
元に，元の単語に相当する確率列
\begin{equation}
\tilde{\bm{q}}(\bm{q}(\bm{h})) := [\tilde{\bm{q}}_1 (\bm{q}(\bm{h})), \tilde{\bm{q}}_2 (\bm{q}(\bm{h})), \cdots, \tilde{\bm{q}}_B (\bm{q}(\bm{h}))]: [0, 1]^{B'} \rightarrow [0, 1]^B
\end{equation}
の復元を行う．このとき誤り訂正の効果により，
$\bm{q}(\bm{h})$ に含まれる多少の誤りは許容され得ることとなる．
写像 $\tilde{\bm{q}}(\cdot)$ は少なくとも $\bm{b}'(\cdot)$ の左逆写像であり，
$[0, 1]^{B'}$ 全体が定義域となる
(復元結果が曖昧になるような入力が存在しない) ような手法を選択可能である．
ここまでの議論で，\ref{s:model}~節で導入したビット列に関する制約は誤り訂正の導入後も満たす
ことが分かる．このため，図~\ref{fig:error_correcting} 全体を単一の単語とビット列間の関連付け手法であると
見なすことが可能である．

ここで，誤り訂正手法により冗長化されたビット列の特徴は，翻訳モデルの精度に直接影響を与えると考えられる．
どのようなビット列が最適であるかは自明ではないが，
ここでは望ましい特徴についての定性的な議論を行う．
まず，図 \ref{fig:ecc-overview} は 1 ビット訂正可能な誤り訂正符号の一種であるが，
ニューラルネットワークの出力としては明らかに適切でないことが直ちに分かる．
なぜなら，重心ビット列の全てのビットが完全に一致しており，ニューラルネットワーク側から見ると
各ビットの違いを区別できず，実質的に 1 ビットしか学習しない場合と同一のモデルになってしまうからである．
このため，冗長化後のビット列は，ビット同士が可能な限りお互いに異なる傾向を持つ
ことが望ましいと判断できる．
また，出力層がどのようなビット誤りを生成するのかは自明ではないため，
ランダムに発生する誤りを均等に訂正可能な手法を選択するのが妥当であると考えられる．
更に，ニューラルネットワークが生成する出力 $\bm{q}(\bm{h})$ は 0 から 1 の間の連続値であり，
単なるビット列よりも多くの情報を保持していると考えられる．
このため，これらの連続値を直接使用してビット列を復元できる手法がより望ましい．

\begin{algorithm}[b]
\caption{実験で使用した畳み込み符号の冗長化アルゴリズム}
\label{alg:conv-encode}
\input{01algo02.tex}
\end{algorithm}

これらを満たす誤り訂正手法として，本研究では畳込み符号 \cite{convcode} を用いることとした．
畳込み符号は入力ビット列とハイパーパラメータである重みビット列の畳込み和で表現され，
ビット列中の離れた位置にあるビット同士が独立となるため，ランダムなビット誤りに特に
頑健に動作するという特徴がある．また確率過程に基づくビット列の復号手法を用いることで，
ビットごとの確率を直接考慮することが可能である．

\begin{algorithm}[t]
\caption{実験で使用した畳み込み符号の復号アルゴリズム}
\label{alg:conv-decode}
\input{01algo03.tex}
\end{algorithm}

Algorithm \ref{alg:conv-encode} は実験で実際に用いた畳み込み符号のアルゴリズムである．
ここで，重みベクトル [1001111] および [1101101] は事前実験の結果により複数の設定から
計算効率と復号能力のバランスを考慮して定めた．
なお， $\bm{x} [i \ .. \ j] := [x_i, \cdots, x_j]$，$\bm{x} \cdot \bm{y} := \sum_i x_i y_i$ である．
畳込み符号は単一の冗長化手法に対して複数の復号手法が存在するが，
実験では Algorithm \ref{alg:conv-decode} に示すアルゴリズムを使用した．
ここで $\bm{x} \circ \bm{y}$ はベクトル $\bm{x}$ と $\bm{y}$ の結合を表す．
Algorithm \ref{alg:conv-decode} はビタビアルゴリズム \cite{convcode} に基づく手法であり，
畳込み符号を隠れマルコフモデルの一種として解釈し，入力された確率列 $\bm{q}(\bm{h})$ から
確率的に最も妥当な元のビット列を推定する．
Algorithm~\ref{alg:conv-decode} は一見複雑だが，実際には CPU 上で効率的に処理可能であり，
ニューラルネットワークの計算とは分離されているため，翻訳モデル自体の計算効率への影響は
避けることが可能である．


\section{実験}

\subsection{実験設定}

提案手法の翻訳精度を比較するために，英日・日英双方向の翻訳タスクでの実験を行った．
使用したコーパスは ASPEC \cite{aspec} と BTEC \cite{btec} であり，ASPECは上位 200 万文，
BTEC は検証・テスト用以外の全文を学習データとした．
表 \ref{tab:corpus} にコーパスの詳細を示す．
これらのコーパスは平均文長や語彙サイズの面で難易度が大きく異なるため，
難易度に起因するモデルの差異を比較するのに役立つと考えられる．
英語のトークン化には Moses \cite{moses} に含まれる \texttt{tokenizer.perl} を使用し，
日本語のトークン化には KyTea \cite{kytea} を使用した．
また同じく Moses に含まれる \texttt{lowercase.perl} により小文字化を行った．
語彙は単語の出現頻度に基づいて選択し，出現順位が $V-3$ 位より大きい単語は全て \texttt{UNK} 記号に
置換した．

\begin{table}[t]
\caption{実験に使用したコーパスの詳細}
\label{tab:corpus}
\input{01table01.tex}
\end{table}

ニューラル翻訳モデルを含む全てのアルゴリズムは C++ 言語で記述し，
特にニューラルネットワークの構築には DyNet \cite{dynet} を使用した．
全てのモデルは 1 個の GPU (NVIDIA GeForce GTX TITAN X) を用いて学習した．
テストに関しては，実行時間を検証するために GPU 上と CPU 上の両方で行った．

提案手法が従来のソフトマックスモデルと異なるのは出力層のみであり，他の部分は完全に同一である．
ニューラル翻訳モデル全体の構成には，エンコーダに 双方向 RNN \cite{bahdanau14}
，注意機構およびデコーダは Luong らによる Concat Global Attention モデル \cite{luong15} を使用した．
エンコーダおよびデコーダを構成する RNN には，入力・忘却・出力ゲートを含む 1 層の LSTM \cite{lstm}
を使用した．
また過学習を避けるために，各 RNN の入出力部のみ 30\% のドロップアウト (Dropout) \cite{dropout} を導入した．
ニューラルネットワークの学習には Adam 最適化器 \cite{adam} を使用した．
Adam のハイパーパラメータは
$\alpha=0.001, \beta_1=0.9\,\beta_2=0.999, \varepsilon=10^{-8}$
で固定し，文長に基づいてグループ化された64文によるミニバッチ学習を行った．
各モデルの評価には大文字・小文字を考慮しない BLEU \cite{bleu} を使用し，
ミニバッチ 1000 個の学習が終了するごとにスコアの計算を行った．
なお，文中に未知語が存在することを正しく推定したかどうかを評価するために，
本実験でのBLEUの評価には \texttt{UNK} も計算対象に含めているが，
\texttt{UNK} を取り除いて計算した場合でも最終的なスコアの傾向は同様であることを注記しておく．

表 \ref{tab:models} に本実験で比較した手法の凡例を示す．
特に提案手法については，混合モデルと誤り訂正の適用の有無，
および混合モデルにおけるソフトマックス層のサイズ $N$ による影響を実験により検証する．
また，混合モデルとの直接比較が可能な2分割の場合の適応ソフトマックス \cite{adaptive-softmax} についても実験を行い，
同様に性能の測定を行った．

\begin{table}[b]
\caption{比較を行ったモデルの名称と詳細}
\label{tab:models}
\input{01table02.tex}
\end{table}
\begin{table}[b]
\caption{各手法のBLEU，出力層のパラメータ数とその \textit{Softmax} に対する比率}
\label{tab:results}
\input{01table03.tex}
\end{table}

\begin{table}[t]
\caption{各手法の平均計算時間}
\label{tab:results-time}
\input{01table04.tex}
\end{table}


\subsection{実験結果と考察}
\label{s:discussion}

表 \ref{tab:results} に各手法の Test データにおける BLEU，
二値符号のビット数 $B$ と出力層で実際に計算される値の個数 $\#_{\mathrm{out}}$，
出力層の推定に必要なパラメータ数 $\#_{W, \bm{\beta}}$，および出力層とモデル全体における
パラメータ数の \textit{Softmax} との比率を示す．
表 \ref{tab:results-time} には英語$\rightarrow$日本語下での各手法の学習時・テスト時における平均実行時間を示す．
また図 \ref{fig:bleu-aspec}， \ref{fig:bleu-btec} には学習済みミニバッチ数 180,000 までの
英日翻訳におけるソフトマックス及び提案手法の Test データ上での BLEU の変化を示す．
図 \ref{fig:bleu-aspec}，\ref{fig:bleu-btec} から明らかなように，学習中の BLEU の変動は
不安定であり，比較には何らかの平滑化が必要である．このため，
Dev データ上で BLEU が最大となった世代を中心とした 5 世代について Test データ上で BLEU を求め，
表 \ref{tab:results} にはその平均値を示した．

\begin{figure}[t]
\begin{center}
\includegraphics{25-2ia1f6.eps}
\end{center}
\caption{180,000 世代までの学習の推移 (ASPEC En $\rightarrow$ Ja)}
\label{fig:bleu-aspec}
\end{figure}
\begin{figure}[t]
\begin{center}
\includegraphics{25-2ia1f7.eps}
\end{center}
\caption{180,000 世代までの学習の推移 (BTEC En $\rightarrow$ Ja)}
\label{fig:bleu-btec}
\end{figure}


\subsubsection{空間効率}

まず，提案手法のいずれにおいても，\textit{Softmax} と比較して大幅に出力層のパラメータ数を
削減していることが確認できる．
モデル全体のパラメータ数では，いずれの提案手法も \textit{Softmax} と比較して
70\% 程度のパラメータ数に抑えられており，実質的には従来のソフトマックスモデルで必要とされた
出力層のためのパラメータが無視可能なレベルまで削減されたと考えられる．
なお，残りのパラメータの大部分はエンコーダおよびデコーダの入力部における単語ベクトルとして
確保されているものであり，これらは依然として $O(EV)$ だけのメモリ空間を専有している．
ここで $E$ は原言語・目的言語ごとの単語ベクトルに用いられる次元数だが，
典型的には $H$ と同程度 (つまり $O(E/H) = O(1)$) と見なすことが可能である．
\ref{s:introduction} 節で述べたように，これらのパラメータ数の削減は本研究の対象ではないが，
出力層と同様の符号化を導入することは可能であると考えられる．
このような手法が翻訳モデルにどう影響するかは今後の研究課題である．
また \ref{sec:prior} 節で述べたように，適応ソフトマックスのパラメータ数は
基本的に単純なソフトマックスと同等であり，使用するグループ数に比例した分だけ増加している．
具体的には，本実験で使用した適応ソフトマックスは分割数が2であるため，
出力層のサイズは各コーパスの語彙サイズに1を足した大きさとなる．


\subsubsection{翻訳精度}

\textit{Binary} の BLEU 値に着目すると，他のいずれの手法と比較しても大幅に低い値となっている
ことが観察される．これは \ref{s:model} 節で述べた事実から予測され得る結果であり，
単純な二値符号予測では頑健性に問題があるという特徴を反映していると考えられる．
これとは対照的に，\textit{Hybrid-N} と \textit{Binary-EC} では \textit{Binary} と比較して
十分に高いBLEUを示しており，実験設定によってはほぼ \textit{Softmax} に近似する値を達成して
いることが分かる．
この傾向は，混合モデルと誤り訂正符号の導入がどちらも二値符号予測に対して有効であることを示している．
特に \textit{Binary-EC} と \textit{Hybrid-512} を比較すると，前者のパラメータ数が 1/10
程度なのにも関わらず基本的に高い BLEU を達成しており，
この結果からビット列に冗長性を導入することがより推定精度の向上に効果的であると言うことができる．
また，2種類の改良を両方導入した \textit{Hybrid-N-EC} では更なる精度の向上が見られ，
設定次第では \textit{Softmax} と同等かそれ以上の BLEU を達成していることが観察できる．
この挙動から，混合モデルと誤り訂正の両者が手法として概ね直交しており，
組み合わせることでより高い効果を示すことが可能であると言える．
特に BTEC において， \textit{Softmax} が低い翻訳精度となったのは，
コーパスの難易度に対してソフトマックス層のパラメータ数が適切な大きさでなかった点が考えられる．
\textit{Adaptive2-N}と\textit{Hybrid-N-EC}の比較では，
ASPECでは\textit{Adaptive2-512}と\textit{Hybrid-2048-EC}が同等程度，
BTECでは\textit{Adaptive2-2048}と\textit{Hybrid-2048-EC}が同等程度の性能と考えられる．
これらの手法の本質的な違いは希少語グループの単語推定にソフトマックスと誤り訂正符号のどちらを使用したかのみであり，
各モデルによる希少語の推定精度を間接的に反映しているものと考えられる．
適応ソフトマックスと提案手法の混合モデルでは希少語に関するパラメータ数が数百から数千倍程度異なることを考えると，
適応ソフトマックスの翻訳精度が混合モデルより高くなることが自然に考えられ，
実際ASPECでは希少語グループのサイズが同等である\textit{Adaptive2-2048}と\textit{Hybrid-2048-EC}では前者の方が
翻訳精度が高いことが観察される．
BTECで両者の性能が接近しているのは，\textit{Softmax} との比較でも言及したように，
コーパスの難易度に対する \textit{Adaptive2-N} の過剰なパラメータ数が関係していると考えられる．
また，\textit{Adaptive2-2048} はいずれのコーパスでも \textit{Softmax} より高い性能を達成しており，
これは混合モデルと同様に，単語の出現頻度に基づいて推定を分割したことによる効果と考えられる．


\subsubsection{時間効率}

表 \ref{tab:results-time} の計算時間に着目すると，
いずれの提案手法も \textit{Softmax} と比較して高速に動作していることが分かる．
特に CPU 上でのテスト時の実行速度は ASPEC で 10 倍，BTEC で 5 倍程度に高速であり，
強力な計算資源が期待できない環境でも提案手法が効率的に動作可能であることを示している．
また，誤り訂正手法の復号アルゴリズムはいずれの実験でも CPU 上で実行しているが，
これに起因する計算速度の低下は翻訳モデル全体から見ると部分的であることが分かり，
この点でも誤り訂正手法の適用が効果的であることを示している．
\textit{Adaptive2-N}に関しては，GPU 上でのテスト時の実行速度は提案手法と遜色ない性能を示しており，
単語の出現頻度に基づいて適切にソフトマックスを分割するだけでも高い高速化効果が得られることを示している．
一方，CPU 上でのテスト時の速度は，\textit{Softmax}と比較した際には\textit{Adaptive2-N}でも十分高速化されていると言えるが，
提案手法は更にその数割から数倍程度高速という結果となっている．
この実行速度の差異は希少語の推定に要する計算量を反映していると考えられ，
GPU のように十分な並列化の可能でない状況下では，
依然として計算量そのものを削減する利点が大きいことが観察される．
なお，\textit{Adaptive2-512}より\textit{Adaptive2-2048}の方が高速に動作している点は，
提案論文に示されている2分割時の実行速度とのトレードオフに関する議論と一致する \cite{adaptive-softmax}．

ここで，適応ソフトマックス \cite{adaptive-softmax} の本来の目的は学習時間の削減であるが，
本実験では \textit{Adaptive2-N} の学習時間が \textit{Softmax} と比較して若干増加しており，
提案論文の結果に従っていないことが確認される．
これはミニバッチ学習時の実用上の問題に起因するものである．
原理的には，適応ソフトマックスは頻出語の推定時に希少語のスコア計算を除外することが可能であり，
このときうまく計算を回避する実装を用いることで計算量の削減が得られるものである．
本実験の場合，入力データを個別に処理するテスト時の動作がこれに該当し，
実際に期待通りの高速化効果が得られている．
一方，学習時には DyNet を用いた実装の制約上，ミニバッチに含まれる全データに対して同様の計算を行う必要があり，
ある時刻で推定しなければならない単語に頻出語と希少語が混在しているような，
ネットワークにデータごとの条件分岐が存在する場合への対処が難しい．
本実験ではこの問題を回避するため，頻出語に対してもダミーの希少語ラベルを与えて計算を行っているが，
このときの計算量は通常のソフトマックスとほぼ等しくなり，また計算過程が複雑になる分，
実際の計算効率はソフトマックスよりも低下する．
表 \ref{tab:results-time} では実際にこの効果を確認した形となっている．
汎用的なニューラルネットワークのツールがこの問題に対処できるかどうかは，
データごとに異なるネットワーク構造が与えられたとき，ツール側で効率的に処理する能力を持っているかどうかに依存している．
このような手法の候補としては，実際のネットワーク計算の直前にミニバッチ計算の最適化を行う手法が考えられる \cite{autobatch}．
なお，提案手法である混合モデルに関しても，計算グラフ上では適応ソフトマックスとほぼ同様のネットワーク構造を持っており，
\textit{Hybrid-N}，\textit{Hybrid-N-EC} の学習時間も上記と同じ理由によるオーバーヘッドを含んでいる．


\subsubsection{混合モデルの翻訳精度への影響}

図 \ref{fig:hybrid-n} は \textit{Hybrid-N} においてソフトマックス層の大きさ $N$ を
指数的に変化させた際の翻訳精度への影響である．
ここで混合モデルの定義より，
\textit{Softmax} と \textit{Binary} はそれぞれ $N$ を $V$ と 1 に設定した場合の極限であり，
\textit{Hybrid-N} による翻訳精度の近似的な上限と下限を表わすと考えられる．
実際，図 \ref{fig:hybrid-n} の曲線はおおよそ \textit{Softmax} と \textit{Binary} の間を推移しており，
ここから混合モデルのソフトマックス層の大きさと翻訳精度にはトレードオフの関係があることが分かる．
また BTEC と ASPEC の曲線をそれぞれ観察すると， BTEC ではより小さな $N$  (例えば $N = 1024$ 程度)
で翻訳精度が \textit{Softmax} 付近に飽和しているのに対し，
ASPEC ではより大きな $N$ においても精度の向上が見られる．
ここから，$N$ による翻訳精度の変動はコーパス自体の難易度をいくらか反映しているものと考えられる．
つまり，より簡単なコーパスを学習する場合は $N$ として小さな値を取ることができ，
より難しいコーパスになるほど大きな $N$ を選択する必要があると考えられる．
また表 \ref{tab:results} で示したように，
誤り訂正を併用することで混合モデル単体よりも翻訳精度の向上が期待できるため，
実際の $N$ の値には図 \ref{fig:hybrid-n} から読み取れるものより小さな値を
設定することが可能であると言える．

\begin{figure}[t]
\begin{center}
\includegraphics{25-2ia1f8.eps}
\end{center}
\caption{\textit{Hybrid-N} において $N$ を変化させた場合のBLEUの変化 (En $\rightarrow$ Ja)}
\label{fig:hybrid-n}
\end{figure}


\subsubsection{単語の出現頻度と推定精度の関係}

前節までの議論により，提案手法によるコーパス全体としての翻訳精度の傾向については判明した．
しかし，ニューラル翻訳は出力文を単語単位で逐次的に生成するモデルであり，
具体的な単語単位の推定精度に関しても議論が必要である．
図 \ref{fig:aspec-unigram}，\ref{fig:btec-unigram} に示すのは，
表 \ref{tab:results}，\ref{tab:results-time} に示した 7 手法について，
日本語 Test データ中の各単語を学習データ中での出現頻度の順位でグループ化し，
各グループについてユニグラム再現率および適合率を示したものである．
ここで，適合率の計算は BLEU の方法に準拠し，再現率については BLEU の
方法の分母を正解データに置き換えることで計算した．
なお，分母が 0 となる場合は便宜的に値を 0 と表示した．

\begin{figure}[t]
\begin{center}
\includegraphics{25-2ia1f9.eps}
\end{center}
\caption{各手法の 出現頻度ごとのユニグラム推定精度 (ASPEC En $\rightarrow$ Ja)}
\label{fig:aspec-unigram}
\end{figure}

\begin{figure}[p]
\begin{center}
\includegraphics{25-2ia1f10.eps}
\end{center}
\caption{各手法の 出現頻度ごとのユニグラム推定精度 (BTEC En $\rightarrow$ Ja)}
\label{fig:btec-unigram}
\end{figure}
\begin{table}[p]
\caption{128位までの頻出語 (ASPEC Ja)}
\label{tab:words-aspec-ja}
\input{01table05.tex}
\end{table}

まず，再現率についてはいずれの手法・コーパスにおいてもほぼ同様の傾向を示しており，
手法の違いによる全体的な値の増減が確認できる．特に \textit{Binary} のみは，
他の手法と比べて全てのグループで全体的に低い値となっており，
単純な二値符号予測ではどのような単語もうまく推定することができないことが分かる．
また ASPEC と BTEC の両コーパスで，出現頻度が数十位付近の単語で再現率が
低下し，その後また上昇するという共通の傾向を示しており，
両コーパスのドメインや難易度が大きく離れていることから，
これは言語に共通の何らかの特徴を捉えているものと考えられる．

一般的に単語を出現頻度でグループ化した場合，頻出語のグループには機能語が多く集まり，
希少語には内容語が多く集まる傾向にある．内容語と比較して機能語は用例が複雑であり，
内容語と同一のモデルで推定するには難易度が高くなると考えられる．
表 \ref{tab:words-aspec-ja} および \ref{tab:words-btec-ja}
は ASPEC および BTEC の日本語学習データにおける頻出語だが，両者とも出現頻度が64位の付近で
機能語と内容語がおおよそ交代していることが観察できる．
つまり，前述の Recall の低下と再上昇は，機能語と内容語の推定難易度の違いを反映している
ものと考えられる．

\begin{table}[t]
\caption{128位までの頻出語 (BTEC Ja)}
\label{tab:words-btec-ja}
\input{01table06.tex}
\end{table}

一方，適合率の傾向を観察すると，
\textit{Binary} が他の手法より全体的に低い点，および
誤り訂正の適用により全体的なスコアが引き上げられている点
は再現率と同様であるが，
\textit{Hybrid-N} において出現頻度の順位が $N$ 付近を超えた単語は，
そうでない単語と比較して大幅に適合率が低下していることが確認できる．
これは明らかに，
学習の比較的容易なソフトマックス層のみによる推定から二値符号予測を用いる推定に切り替わるために起こる現象であり，
二値符号予測が本質的にソフトマックスよりも難しい推定問題であることを表していると考えられる．
混合モデルと誤り訂正符号の併用により，このような適合率の大幅な低下が緩和されており，
両者をバランス良く組み合わせることで全体的な推定精度を補償することが可能であることが分かる．


\section{おわりに}

本研究では，ニューラル翻訳モデルの出力層の計算量を圧縮することを目的とし，
単語に割り当てられた二値符号を予測することで間接的に単語の推定を行う手法を提案した．
また，単純な二値符号予測の精度を向上させるために，従来のソフトマックスモデルを部分的に採用した
混合モデル，および二値符号に対し誤り訂正符号を適用することによる頑健性の向上を提案した．
実験により，これらの手法を組み合わせて用いることで，従来のソフトマックスモデルと比較して
数十分の1程度のパラメータ数と短い実行時間（特にCPU上でのテスト時に5分の1から10分の1程度）で，同等程度の翻訳精度を実現可能であることを示した．

本研究では二値符号予測の基本的なフレームワークを提案したが，
実験で使用した手法には事前実験に基づく様々なヒューリスティクスが残っており，
各部分問題には，より翻訳モデルに適した手法を開発する余地が残されている．
具体的には次のような課題が挙げられ，これらについてより深い研究を今後行ってゆく予定である．

\begin{itemize}
\item
翻訳モデルにより適した単語のビット列への割り当て手法．より本質的には，どのような特徴量を
保持したビット列であれば効率的に予測することが可能か．
また，ビット数を制御することで任意に冗長性が設定可能となるような割り当て手法の設計．
\item
ニューラル翻訳モデルの学習により適した形の誤り訂正手法の開発．
また，誤り訂正符号を学習することを前提とした損失関数の設計．
\item
入力層側の単語ベクトルも二値符号に制約することで，モデルのパラメータ数をより削減
することが可能と考えられるが，そのようなモデルで同様の翻訳精度を達成することは可能か．
\item
翻訳モデルの内部状態やパラメータが獲得した表現に関する調査．
特に，ソフトマックスモデルと比較した際にどのような共通点・相違点が見出だせるか．
\end{itemize}


\acknowledgment

本研究の一部はJSPS科研費JP16H05873，及びJP17H00747の助成を受けて行ったものである．



\bibliographystyle{jnlpbbl_1.5}
\begin{thebibliography}{}

\bibitem[\protect\BCAY{Bahdanau, Cho, \BBA\ Bengio}{Bahdanau
  et~al.}{2014}]{bahdanau14}
Bahdanau, D., Cho, K., \BBA\ Bengio, Y. \BBOP 2014\BBCP.
\newblock \BBOQ Neural Machine Translation by Jointly Learning to Align and
  Translate.\BBCQ\
\newblock {\Bem arXiv preprint arXiv:1409.0473}.

\bibitem[\protect\BCAY{Brown, Desouza, Mercer, Pietra, \BBA\ Lai}{Brown
  et~al.}{1992}]{brown-clustering}
Brown, P.~F., Desouza, P.~V., Mercer, R.~L., Pietra, V. J.~D., \BBA\ Lai, J.~C.
  \BBOP 1992\BBCP.
\newblock \BBOQ Class-based N-gram Models of Natural Language.\BBCQ\
\newblock {\Bem Computational Linguistics}, {\Bbf 18}  (4), \mbox{\BPGS\
  467--479}.

\bibitem[\protect\BCAY{Chen, Grangier, \BBA\ Auli}{Chen
  et~al.}{2016a}]{differentiated-softmax}
Chen, W., Grangier, D., \BBA\ Auli, M. \BBOP 2016a\BBCP.
\newblock \BBOQ Strategies for Training Large Vocabulary Neural Language
  Models.\BBCQ\
\newblock In {\Bem Proceedings of the 54th Annual Meeting of the Association
  for Computational Linguistics (Volume 1: Long Papers)}, \mbox{\BPGS\
  1975--1985}, Berlin, Germany. Association for Computational Linguistics.

\bibitem[\protect\BCAY{Chen, Mou, Xu, Li, \BBA\ Jin}{Chen
  et~al.}{2016b}]{sparse-word-representation}
Chen, Y., Mou, L., Xu, Y., Li, G., \BBA\ Jin, Z. \BBOP 2016b\BBCP.
\newblock \BBOQ Compressing Neural Language Models by Sparse Word
  Representations.\BBCQ\
\newblock In {\Bem Proceedings of the 54th Annual Meeting of the Association
  for Computational Linguistics (Volume 1: Long Papers)}, \mbox{\BPGS\
  226--235}, Berlin, Germany. Association for Computational Linguistics.

\bibitem[\protect\BCAY{Chitnis \BBA\ DeNero}{Chitnis \BBA\
  DeNero}{2015}]{variable-length-encoding}
Chitnis, R.\BBACOMMA\ \BBA\ DeNero, J. \BBOP 2015\BBCP.
\newblock \BBOQ Variable-Length Word Encodings for Neural Translation
  Models.\BBCQ\
\newblock In {\Bem Proceedings of the 2015 Conference on Empirical Methods in
  Natural Language Processing}, \mbox{\BPGS\ 2088--2093}, Lisbon, Portugal.
  Association for Computational Linguistics.

\bibitem[\protect\BCAY{Dietterich \BBA\ Bakiri}{Dietterich \BBA\
  Bakiri}{1995}]{ecoc95}
Dietterich, T.~G.\BBACOMMA\ \BBA\ Bakiri, G. \BBOP 1995\BBCP.
\newblock \BBOQ Solving Multiclass Learning Problems via Error-correcting
  Output Codes.\BBCQ\
\newblock {\Bem Journal of Artificial Intelligence Research}, {\Bbf 2},
  \mbox{\BPGS\ 263--286}.

\bibitem[\protect\BCAY{Ferng \BBA\ Lin}{Ferng \BBA\ Lin}{2011}]{ecoc11}
Ferng, C.-S.\BBACOMMA\ \BBA\ Lin, H.-T. \BBOP 2011\BBCP.
\newblock \BBOQ Multi-label Classification with Error-correcting Codes.\BBCQ\
\newblock {\Bem Journal of Machine Learning Research}, {\Bbf 20}, \mbox{\BPGS\
  281--295}.

\bibitem[\protect\BCAY{Ferng \BBA\ Lin}{Ferng \BBA\ Lin}{2013}]{ecoc13}
Ferng, C.-S.\BBACOMMA\ \BBA\ Lin, H.-T. \BBOP 2013\BBCP.
\newblock \BBOQ Multilabel Classification using Error-correcting Codes of Hard
  or Soft Bits.\BBCQ\
\newblock {\Bem IEEE Transactions on Neural Networks and Learning Systems},
  {\Bbf 24}  (11), \mbox{\BPGS\ 1888--1900}.

\bibitem[\protect\BCAY{Gers, Schmidhuber, \BBA\ Cummins}{Gers
  et~al.}{2000}]{lstm}
Gers, F.~A., Schmidhuber, J., \BBA\ Cummins, F. \BBOP 2000\BBCP.
\newblock \BBOQ Learning to Forget: Continual Prediction with {LSTM}.\BBCQ\
\newblock {\Bem Neural Computation}, {\Bbf 12}  (10), \mbox{\BPGS\ 2451--2471}.

\bibitem[\protect\BCAY{Grave, Joulin, Ciss{\'e}, Grangier, \BBA\
  J{\'e}gou}{Grave et~al.}{2017}]{adaptive-softmax}
Grave, {\'E}., Joulin, A., Ciss{\'e}, M., Grangier, D., \BBA\ J{\'e}gou, H.
  \BBOP 2017\BBCP.
\newblock \BBOQ Efficient Softmax Approximation for {GPU}s.\BBCQ\
\newblock In {\Bem Proceedings of the 34th International Conference on Machine
  Learning}, \mbox{\BPGS\ 1302--1310}, Sydney, Australia.

\bibitem[\protect\BCAY{Gutmann \BBA\ Hyv{\"a}rinen}{Gutmann \BBA\
  Hyv{\"a}rinen}{2010}]{nce}
Gutmann, M.\BBACOMMA\ \BBA\ Hyv{\"a}rinen, A. \BBOP 2010\BBCP.
\newblock \BBOQ Noise-contrastive Estimation: A New Estimation Principle for
  Unnormalized Statistical Models.\BBCQ\
\newblock In {\Bem Proceedings of the 13th International Conference on
  Artificial Intelligence and Statistics}, \mbox{\BPGS\ 297--304}, Sardinia,
  Italy.

\bibitem[\protect\BCAY{Huffman}{Huffman}{1952}]{huffman-code}
Huffman, D.~A. \BBOP 1952\BBCP.
\newblock \BBOQ A Method for the Construction of Minimum-Redundancy
  Codes.\BBCQ\
\newblock {\Bem Proceedings of the Institute of Radio Engineers}, {\Bbf 40}
  (9), \mbox{\BPGS\ 1098--1101}.

\bibitem[\protect\BCAY{Kim \BBA\ Rush}{Kim \BBA\ Rush}{2016}]{distillation}
Kim, Y.\BBACOMMA\ \BBA\ Rush, A.~M. \BBOP 2016\BBCP.
\newblock \BBOQ Sequence-Level Knowledge Distillation.\BBCQ\
\newblock In {\Bem Proceedings of the 2016 Conference on Empirical Methods in
  Natural Language Processing}, \mbox{\BPGS\ 1317--1327}, Austin, Texas.
  Association for Computational Linguistics.

\bibitem[\protect\BCAY{Kingma \BBA\ Ba}{Kingma \BBA\ Ba}{2014}]{adam}
Kingma, D.\BBACOMMA\ \BBA\ Ba, J. \BBOP 2014\BBCP.
\newblock \BBOQ Adam: A Method for Stochastic Optimization.\BBCQ\
\newblock {\Bem arXiv preprint arXiv:1412.6980}.

\bibitem[\protect\BCAY{Klautau, Jevti{\'c}, \BBA\ Orlitsky}{Klautau
  et~al.}{2003}]{ecoc03}
Klautau, A., Jevti{\'c}, N., \BBA\ Orlitsky, A. \BBOP 2003\BBCP.
\newblock \BBOQ On Nearest-neighbor Error-correcting Output Codes with
  Application to All-pairs Multiclass Support Vector Machines.\BBCQ\
\newblock {\Bem Journal of Machine Learning Research}, {\Bbf 4}  (April),
  \mbox{\BPGS\ 1--15}.

\bibitem[\protect\BCAY{Koehn, Hoang, Birch, Callison-Burch, Federico, Bertoldi,
  Cowan, Shen, Moran, Zens, Dyer, Bojar, Constantin, \BBA\ Herbst}{Koehn
  et~al.}{2007}]{moses}
Koehn, P., Hoang, H., Birch, A., Callison-Burch, C., Federico, M., Bertoldi,
  N., Cowan, B., Shen, W., Moran, C., Zens, R., Dyer, C., Bojar, O.,
  Constantin, A., \BBA\ Herbst, E. \BBOP 2007\BBCP.
\newblock \BBOQ Moses: Open Source Toolkit for Statistical Machine
  Translation.\BBCQ\
\newblock In {\Bem Proceedings of the 45th Annual Meeting of the Association
  for Computational Linguistics Companion Volume Proceedings of the Demo and
  Poster Sessions}, \mbox{\BPGS\ 177--180}, Prague, Czech Republic. Association
  for Computational Linguistics.

\bibitem[\protect\BCAY{Kouzani}{Kouzani}{2010}]{ecoc10}
Kouzani, A.~Z. \BBOP 2010\BBCP.
\newblock \BBOQ Multilabel classification using error correction codes.\BBCQ\
\newblock In {\Bem International Symposium on Intelligence Computation and
  Applications}, \mbox{\BPGS\ 444--454}. Springer.

\bibitem[\protect\BCAY{Kouzani \BBA\ Nasireding}{Kouzani \BBA\
  Nasireding}{2009}]{ecoc09}
Kouzani, A.~Z.\BBACOMMA\ \BBA\ Nasireding, G. \BBOP 2009\BBCP.
\newblock \BBOQ Multilabel Classification by BCH Code and Random Forests.\BBCQ\
\newblock {\Bem International Journal of Recent Trends in Engineering}, {\Bbf
  2}  (1), \mbox{\BPGS\ 113--116}.

\bibitem[\protect\BCAY{Li, Qin, Yang, \BBA\ Liu}{Li et~al.}{2016}]{lightrnn}
Li, X., Qin, T., Yang, J., \BBA\ Liu, T.-Y. \BBOP 2016\BBCP.
\newblock \BBOQ {LightRNN}: Memory and Computation-Efficient Recurrent Neural
  Networks.\BBCQ\
\newblock In {\Bem Advances in Neural Information Processing Systems},
  \lowercase{\BVOL}~29.

\bibitem[\protect\BCAY{Ling, Trancoso, Dyer, \BBA\ Black}{Ling
  et~al.}{2015}]{character-nmt}
Ling, W., Trancoso, I., Dyer, C., \BBA\ Black, A.~W. \BBOP 2015\BBCP.
\newblock \BBOQ Character-based Neural Machine Translation.\BBCQ\
\newblock {\Bem arXiv preprint arXiv:1511.04586}.

\bibitem[\protect\BCAY{Liu}{Liu}{2006}]{ecoc06}
Liu, Y. \BBOP 2006\BBCP.
\newblock \BBOQ Using SVM and Error-correcting Codes for Multiclass Dialog Act
  Classification in Meeting Corpus.\BBCQ\
\newblock In {\Bem INTERSPEECH}, \mbox{\BPGS\ 1938--1941}.

\bibitem[\protect\BCAY{Luong, Pham, \BBA\ Manning}{Luong
  et~al.}{2015}]{luong15}
Luong, T., Pham, H., \BBA\ Manning, C.~D. \BBOP 2015\BBCP.
\newblock \BBOQ Effective Approaches to Attention-based Neural Machine
  Translation.\BBCQ\
\newblock In {\Bem Proceedings of the 2015 Conference on Empirical Methods in
  Natural Language Processing}, \mbox{\BPGS\ 1412--1421}, Lisbon, Portugal.
  Association for Computational Linguistics.

\bibitem[\protect\BCAY{Mikolov, Sutskever, Chen, Corrado, \BBA\ Dean}{Mikolov
  et~al.}{2013}]{word2vec}
Mikolov, T., Sutskever, I., Chen, K., Corrado, G.~S., \BBA\ Dean, J. \BBOP
  2013\BBCP.
\newblock \BBOQ Distributed Representations of Words and Phrases and Their
  Compositionality.\BBCQ\
\newblock In {\Bem Advances in Neural Information Processing Systems},
  \mbox{\BPGS\ 3111--3119}.

\bibitem[\protect\BCAY{Mikolov, Sutskever, Deoras, Le, Kombrink, \BBA\
  {\v{C}}ernock{\'y}}{Mikolov et~al.}{2012}]{rnnlm-subword}
Mikolov, T., Sutskever, I., Deoras, A., Le, H.-S., Kombrink, S., \BBA\
  {\v{C}}ernock{\'y}, J. \BBOP 2012\BBCP.
\newblock
\newblock \BBOQ Subword Language Modeling with Neural Networks.\BBCQ

\bibitem[\protect\BCAY{Mnih \BBA\ Teh}{Mnih \BBA\ Teh}{2012}]{nce-lm}
Mnih, A.\BBACOMMA\ \BBA\ Teh, Y.~W. \BBOP 2012\BBCP.
\newblock \BBOQ A Fast and Simple Algorithm for Training Neural Probabilistic
  Language Models.\BBCQ\
\newblock In {\Bem Proceedings of the 29th International Conference on Machine
  Learning}.

\bibitem[\protect\BCAY{Morin \BBA\ Bengio}{Morin \BBA\
  Bengio}{2005}]{hierarchical-softmax}
Morin, F.\BBACOMMA\ \BBA\ Bengio, Y. \BBOP 2005\BBCP.
\newblock \BBOQ Hierarchical Probabilistic Neural Network Language Model.\BBCQ\
\newblock In {\Bem Proceedings of 10th International Workshop on Artificial
  Intelligence and Statistics}, \lowercase{\BVOL}~5, \mbox{\BPGS\ 246--252}.

\bibitem[\protect\BCAY{Nakazawa, Yaguchi, Uchimoto, Utiyama, Sumita, Kurohashi,
  \BBA\ Isahara}{Nakazawa et~al.}{2016}]{aspec}
Nakazawa, T., Yaguchi, M., Uchimoto, K., Utiyama, M., Sumita, E., Kurohashi,
  S., \BBA\ Isahara, H. \BBOP 2016\BBCP.
\newblock \BBOQ ASPEC: Asian Scientific Paper Excerpt Corpus.\BBCQ\
\newblock In {\Bem Proceedings of the 9th International Conference on
  Language Resources and Evaluation (LREC 2016)}, \mbox{\BPGS\ 2204--2208},
  Portoro, Slovenia. European Language Resources Association (ELRA).

\bibitem[\protect\BCAY{Neubig, Dyer, Goldberg, Matthews, Ammar, Anastasopoulos, Ballesteros, Chiang, Clothiaux, Cohn, Duh, Faruqui, Gan, Garrette, Ji, Kong, Kuncoro, Kumar, Malaviya, Michel, Oda, Richardson, Saphra, Swayamdipta, \BBA\ Yin}{Neubig et~al. }{2017}]{dynet}
Neubig, G., Dyer, C., Goldberg, Y., Matthews, A., Ammar, W., Anastasopoulos, A.,  Ballesteros, M., Chiang, D., Clothiaux, D., Cohn, T., Duh, K., Faruqui, M., Gan, C., Garrette, D., Ji, Y., Kong, L., Kuncoro, A., Kumar, G., Malaviya, C., Michel, P., Oda, Y., Richardson, M., Saphra, N., Swayamdipta, S., \BBA\ Yin, P. \BBOP 2017\BBCP.
\newblock \BBOQ DyNet: The Dynamic Neural Network Toolkit.\BBCQ\
\newblock {\Bem arXiv preprint arXiv:1701.03980}.

\bibitem[\protect\BCAY{Neubig, Goldberg, \BBA\ Dyer}{Neubig
  et~al.}{2017}]{autobatch}
Neubig, G., Goldberg, Y., \BBA\ Dyer, C. \BBOP 2017\BBCP.
\newblock \BBOQ On-the-fly Operation Batching in Dynamic Computation
  Graphs.\BBCQ\
\newblock In {\Bem Conference on Neural Information Processing Systems (NIPS)},
  \mbox{\BPGS\ 3974--3984}, Long Beach, California, USA.

\bibitem[\protect\BCAY{Neubig, Nakata, \BBA\ Mori}{Neubig et~al.}{2011}]{kytea}
Neubig, G., Nakata, Y., \BBA\ Mori, S. \BBOP 2011\BBCP.
\newblock \BBOQ Pointwise Prediction for Robust, Adaptable Japanese
  Morphological Analysis.\BBCQ\
\newblock In {\Bem Proceedings of the 49th Annual Meeting of the Association
  for Computational Linguistics: Human Language Technologies}, \mbox{\BPGS\
  529--533}, Portland, Oregon, USA. Association for Computational Linguistics.

\bibitem[\protect\BCAY{Papineni, Roukos, Ward, \BBA\ Zhu}{Papineni
  et~al.}{2002}]{bleu}
Papineni, K., Roukos, S., Ward, T., \BBA\ Zhu, W.-J. \BBOP 2002\BBCP.
\newblock \BBOQ Bleu: a Method for Automatic Evaluation of Machine
  Translation.\BBCQ\
\newblock In {\Bem Proceedings of 40th Annual Meeting of the Association for
  Computational Linguistics}, \mbox{\BPGS\ 311--318}, Philadelphia,
  Pennsylvania, USA. Association for Computational Linguistics.

\bibitem[\protect\BCAY{See, Luong, \BBA\ Manning}{See
  et~al.}{2016}]{weight-pruning}
See, A., Luong, M.-T., \BBA\ Manning, C.~D. \BBOP 2016\BBCP.
\newblock \BBOQ Compression of Neural Machine Translation Models via
  Pruning.\BBCQ\
\newblock In {\Bem Proceedings of The 20th SIGNLL Conference on Computational
  Natural Language Learning}, \mbox{\BPGS\ 291--301}, Berlin, Germany.
  Association for Computational Linguistics.

\bibitem[\protect\BCAY{Sennrich, Haddow, \BBA\ Birch}{Sennrich
  et~al.}{2016}]{bpe-nmt}
Sennrich, R., Haddow, B., \BBA\ Birch, A. \BBOP 2016\BBCP.
\newblock \BBOQ Neural Machine Translation of Rare Words with Subword
  Units.\BBCQ\
\newblock In {\Bem Proceedings of the 54th Annual Meeting of the Association
  for Computational Linguistics (Volume 1: Long Papers)}, \mbox{\BPGS\
  1715--1725}, Berlin, Germany. Association for Computational Linguistics.

\bibitem[\protect\BCAY{Serr{\'a} \BBA\ Karatzoglou}{Serr{\'a} \BBA\
  Karatzoglou}{2017}]{bloom-embedding}
Serr{\'a}, J.\BBACOMMA\ \BBA\ Karatzoglou, A. \BBOP 2017\BBCP.
\newblock \BBOQ Compact Embedding of Binary-coded Inputs and Outputs using
  Bloom Filters.\BBCQ\
\newblock In {\Bem Proceedings of the 5th International Conference on Learning
  Representations}, Vancouver, BC, Canada.

\bibitem[\protect\BCAY{Shannon}{Shannon}{1948}]{shannon48}
Shannon, C.~E. \BBOP 1948\BBCP.
\newblock \BBOQ A Mathematical Theory of Communication.\BBCQ\
\newblock {\Bem Bell System Technical Journal}, {\Bbf 27}  (3), \mbox{\BPGS\
  379--423}.

\bibitem[\protect\BCAY{Srivastava, Hinton, Krizhevsky, Sutskever, \BBA\
  Salakhutdinov}{Srivastava et~al.}{2014}]{dropout}
Srivastava, N., Hinton, G.~E., Krizhevsky, A., Sutskever, I., \BBA\
  Salakhutdinov, R. \BBOP 2014\BBCP.
\newblock \BBOQ Dropout: A Simple Way to Prevent Neural Networks from
  Overfitting.\BBCQ\
\newblock {\Bem Journal of Machine Learning Research}, {\Bbf 15}  (1),
  \mbox{\BPGS\ 1929--1958}.

\bibitem[\protect\BCAY{Sutskever, Vinyals, \BBA\ Le}{Sutskever
  et~al.}{2014}]{encdec}
Sutskever, I., Vinyals, O., \BBA\ Le, Q.~V. \BBOP 2014\BBCP.
\newblock \BBOQ Sequence to Sequence Learning with Neural Networks.\BBCQ\
\newblock In {\Bem Advances in Neural Information Processing Systems},
  \mbox{\BPGS\ 3104--3112}.

\bibitem[\protect\BCAY{Takezawa}{Takezawa}{1999}]{btec}
Takezawa, T. \BBOP 1999\BBCP.
\newblock \BBOQ Building a Bilingual Travel Conversation Database for Speech
  Translation Research.\BBCQ\
\newblock In {\Bem Proceedings of the 2nd International Workshop on East-Asian
  Resources and Evaluation Conference on Language Resources and Evaluation},
  \mbox{\BPGS\ 17--20}.

\bibitem[\protect\BCAY{Viterbi}{Viterbi}{1967}]{convcode}
Viterbi, A. \BBOP 1967\BBCP.
\newblock \BBOQ Error Bounds for Convolutional Codes and an Asymptotically
  Optimum Decoding Algorithm.\BBCQ\
\newblock {\Bem IEEE Transactions on Information Theory}, {\Bbf 13}  (2),
  \mbox{\BPGS\ 260--269}.

\bibitem[\protect\BCAY{Wu, Schuster, Chen, Le, Norouzi, Macherey, Krikun, Cao, Gao, Macherey, Klingner, Shah, Johnson, Liu, Kaiser, Gouws, Kato, Kudom Kazawa, Stevens, Kurian, Patil, Wang, Young, Smith, Riesa, Rudnick, Vinyals, Corrado, Hughes, \BBA\ Dean}{Wu et~al. }{2016}]{gnmt}
Wu, Y., Schuster, M., Chen, Z., Le, Q. V., Norouzi, M., Macherey, W., Krikun, M., Cao, Y., Gao, Q., Macherey, K., Klingner, J., Shah, A., Johnson, M., Liu, X., Kaiser, {\L}., Gouws, S., Kato, Y., Kudo, T., Kazawa, H., Stevens, K., Kurian, G., Patil, N., Wang, W., Young, C., Smith, J., Riesa, J., Rudnick, A., Vinyals, O., Corrado, G., Hughes, M., \BBA\ Dean J. \BBOP 2016\BBCP.
\newblock \BBOQ Google's Neural Machine Translation System: Bridging the Gap
  between Human and Machine Translation.\BBCQ\
\newblock {\Bem arXiv preprint arXiv:1609.08144}.

\bibitem[\protect\BCAY{Zipf}{Zipf}{1949}]{zipf49}
Zipf, G.~K. \BBOP 1949\BBCP.
\newblock {\Bem Human Behavior and the Principle of Least Effort.}
\newblock Addison-Wesley Press.

\end{thebibliography}

\begin{biography}

\bioauthor{小田　悠介}{
2011年神戸市立工業高等専門学校電子工学科卒業．2013年同専攻科電気電子工学専攻卒業．
2015年奈良先端科学技術大学院大学情報科学研究科博士前期課程修了．修士（工学）．
現在，同博士後期課程に在籍．
2015年日本学術振興会特別研究員 (DC1)．
2017年より情報通信研究機構先進的音声翻訳研究開発推進センター研究技術員．
機械翻訳，自然言語処理，ソフトウェア工学に関する研究に従事．
言語処理学会年次大会優秀賞（2015年・2016年）．
ACL，電子情報通信学会，情報処理学会，教育システム情報学会，言語処理学会各会員．
}
\bioauthor[:]{Philip Arthur}{
2013年インドネシア大学計算機科学科卒業．
2015年奈良先端科学技術大学院大学情報科学研究科博士前期課程修了．
現在，同学博士後期課程に在籍．
修士（工学）．
機械翻訳，自然言語処理に関する研究に従事．
}
\bioauthor[:]{Graham Neubig}{
2005年米国イリノイ大学アーバナ・シャンペーン校工学部コンピュータ・サイエンス専攻卒業．
2010年京都大学大学院情報学研究科修士課程修了．
2012年同大学院博士後期課程修了．
同年奈良先端科学技術大学院大学助教．2016年より米国カーネギーメロン大学助教．
機械翻訳，自然言語処理に関する研究に従事．
}
\bioauthor{吉野幸一郎}{
2009年慶應義塾大学環境情報学部卒業．2011年京都大学大学院情報学研究科修士課程修了．
2014年同研究科博士後期課程修了．同年，日本学術振興会特別研究員 (PD)．
2015年奈良先端科学技術大学院大学情報科学研究科特任助教．2016年より同助教．
同年より科学技術振興機構さきがけ研究員（兼任）．京都大学博士（情報学）．
音声言語処理および自然言語処理，特に音声対話システムに関する研究に従事．
2013年度人工知能学会研究会優秀賞受賞．IEEE，ACL，SIGdial，情報処理学会，言語処理学会各会員．
}
\bioauthor{中村　　哲}{
1981年京都工芸繊維大学工芸学部電子工学科卒業．京都大学博士（工学）．シャープ株式会社．
奈良先端科学技術大学院大学助教授，2000年ATR音声言語コミュニケーション研究所室長，所長，
2006年(独)情報通信研究機構研究センター長，けいはんな研究所長などを経て，
現在，奈良先端科学技術大学院大学教授．
ATRフェロー．カールスルーエ大学客員教授．
音声翻訳，音声対話，自然言語処理の研究に従事．
情報処理学会喜安記念業績賞，総務大臣表彰，文部科学大臣表彰，Antonio Zampoli賞受賞．
IEEE SLTC 委員，ISCA 理事，IEEEフェロー．
}
\end{biography}


\biodate




\end{document}
