\documentclass[japanese,other]{jnlp_3.3}
\usepackage{jnlpbbl_2.2}
\usepackage[dvipdfmx]{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{url}
\usepackage{multirow}
\usepackage{array}
%%%%\usepackage{hangcaption_jnlp}
%%%%\usepackage{udline}
%%%%\setulminsep{1.2ex}{0.2ex}
%%%%\let\underline=\ul
\allowdisplaybreaks


\Volume{28}
\Number{2}
\Month{June}
\Year{2021}
%%%%\Issuetitle{「　　　　」特集号}


\setcounter{page}{682}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\jsubject{学会記事}
\jtitle{Syntax-based Transformer for Neural Machine Translation}
\jauthor{馬　　春鵬\affiref{Author_1}}
\etitle{Syntax-based Transformer for Neural Machine Translation}
\eauthor{Chunpeng Ma\affiref{Author_1}} 

\headauthor{馬}
\headtitle{Syntax-based Transformer for Neural Machine Translation}

\affilabel{Author_1}{富士通研究所}{Fujitsu Laboratories LTD.}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\maketitle


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{はじめに}

本稿では，言語処理学会2020年度論文賞の受賞論文「Syntax-based Transformer for Neural Machine Translation」\cite{ma2020syntax}（以下，原論文）について解説する．

Transformerに基づくニューラル機械翻訳 (NMT) において構文情報を活用しようという着想を得たのが2018年だった．
当時，著者はRNNに基づくNMTにおいて構文森の情報を活用するための研究に取り組んでおり，その成果をまとめた論文\cite{ma2018forest}がACL 2018に採録されて一区切りつき，その研究の延長として原論文の着想に至った．
機械翻訳において，統計的な手法からニューラルネットワークに基づく手法に変わったのが2014年頃だった\cite{sutskever2014sequence}．
NMTが出始めた頃はCNNやRNNに基づくモデルが主流であった．
NMTは様々な観点で改良されてきたが，2017年，NMTを改善する研究の一つのトレンドは構文情報をCNN/RNNモデルに取り入れることであった\cite{eriguchi2016tree}．
この流れを汲んだ研究の多くは，構文情報として構文木の情報をNMTに活用しており，構文森\cite{huang2008forest}やグラフといったより表現力の高い構文情報をNMTで活用する研究は僅かであった\cite{ma2018forest,hashimoto2017neural}．
そのような中，2017年にTransformerという画期的なモデルが提案された\cite{vaswani2017attention}．
そこで著者は，構文情報をTransformer NMTに取り入れるのがこれからのトレンドになるだろうと予想し研究に取り組むことにした．
ただし，CNN/RNNモデルで行われてきた多くの従来研究のように構文木を使うだけでは味気ないので，構文森など表現力の高い構文情報をTransformer NMTに組み込むことを目指すことにし，原論文の着想に至った．

Transformer NMTで構文森を活用することは一見単純なアイデアだが，実現は簡単ではない．
なぜなら，TransformerとRNNではネットワーク構造が根本的に異なる．
さらに，構文森の構造は構文木のような単純な木構造ではない．
そこで原論文では，表現力が高い構文情報の活用の仕方としてTransformerに特化した方法を提案した．
具体的には，構文森に含まれる構文情報をself attentionとpositional encodingというTransformerの二つの肝心な箇所に組み込むことで，機械翻訳の性能を改善した．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{提案手法}

Transformerにおいて重要かつ特徴的な箇所は，「self attention」と「positional encoding」の二点である．
原論文の提案手法では，この二か所に構文森に含まれる構文情報を組み込む．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{構文情報を用いたself attention (SA)}

Transformerのエンコーダーの$l$層目の入力と出力をそれぞれ$\mathbf{x}^{(l)}=(x_{1}^{(l)},\ldots,x_{n}^{(l)})$と$\mathbf{z}^{(l)}=(z_{1}^{(l)},\ldots,z_{n}^{(l)})$とする．
ここで，$n$は原言語の文にある単語の数である．
元来のTransformer \cite{vaswani2017attention}では，以下の式で$z_{i}^{(l)}\in\mathbb{R}^{d}$を計算する．
\begin{equation}
\label{eq:1}
    \begin{aligned}
        z_{i}^{(l)} & =\sum_{j=1}^{n}\alpha_{ij}^{(l)}(x_{j}^{(l)}W^V) \\
        \alpha_{ij}^{(l)} & =\text{softmax}(\beta_{ij}^{(l)}) \\
        \beta_{ij}^{(l)} & =\frac{(x_{i}^{(l)}W^Q)(x_{j}^{(l)}W^K)^\top}{\sqrt{d}}
    \end{aligned}
\end{equation}
ただし，$W^V,W^Q,W^K\in\mathbb{R}^{d\times d}$はパラメーター行列である．

一方，原論文で提案した構文情報を用いるSAは，構文情報を$\beta_{ij}^{(l)}$に組み込む．
具体的には，提案のSAは以下の式で$\beta_{ij}^{(l)}$を計算する．
\begin{equation}
\label{eq:2}
    \beta_{ij}^{(l)}=
    \begin{cases}
    \frac{(x_{i}^{(l)}W^Q)(x_{j}^{(l)}W^K)^\top}{\sqrt{d}}, & x_{j}^{(l)}\in\mathcal{N}(x_{i}^{(l)}) \\
    -\infty, & x_{j}^{(l)}\not\in\mathcal{N}(x_{i}^{(l)})
    \end{cases}
\end{equation}
ここで，$\mathcal{N}(x_{i})$は構文木や構文森における$i$番目のトークンの近傍のトークン集合を表す．
また，式\ref{eq:1}における$x_{i}^{(l)}$は原言語の文の$i$番目の「単語」の分散表現ベクトルを表すが，式\ref{eq:2}における$x_{i}^{(l)}$は原言語の文の$i$番目の「トークン」の分散表現ベクトルを表している．「トークン」は単語でも良いし，構文ラベルでも良い．

$\mathcal{N}(x_{i})$の定義や計算方法は原論文に詳しく記載しているが，直感的には，構文木や構文森において$i$番目のトークンに近いトークン（例えば，構文木において子ノードや親ノードに相当するトークンなど）は$\mathcal{N}(x_{i})$の要素であり，遠いノード（例えば，構文木において遠い兄弟ノードに相当するトークンなど）は$\mathcal{N}(x_{i})$の要素にはならない．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{構文情報を用いたpositional encoding (PE)}

文における単語の位置情報を表すのがPEというモジュールである．\citeA{vaswani2017attention}が提案したもの以外にも，\citeA{shaw2018self}が提案した相対的なPEも提案されている．
原論文ではこの相対的なPE \cite{shaw2018self}に構文情報を組み込む．

\citeA{shaw2018self}の相対的なPEは，式\ref{eq:1}を修正し，以下の数式により$z_{i}^{(l)}$と$\beta_{ij}^{(l)}$を計算する．
\begin{equation}
\label{eq:3}
    \begin{aligned}
        z_{i}^{(l)} & =\sum_{j=1}^{n}\alpha_{ij}^{(l)}(x_{j}^{(l)}W^V + a_{ij}^V) \\
        \beta_{ij}^{(l)} & =\frac{(x_{i}^{(l)}W^Q)(x_{j}^{(l)}W^K + a_{ij}^{K})^\top}{\sqrt{d}}
    \end{aligned}
\end{equation}
ただし，$a_{ij}^{K},a_{ij}^{V}\in\mathbb{R}$は位置情報を表す分散表現であり，以下の通り計算する．
\begin{equation}
\label{eq:4}
    \begin{aligned}
        a_{ij}^{K} & =p_{\text{clip}(j-i,k)}^K \\
        a_{ij}^{V} & =p_{\text{clip}(j-i,k)}^V \\
        \text{clip}(m,k) & =\max(-k, \min(k,m))
    \end{aligned}
\end{equation}
ただし，$k$はパラメーターであり，各$p$は学習すべきベクトルである．

原論文ではこの相対的PEに構文情報を組み込み，構文情報を用いたPEを提案した．
具体的には，式\ref{eq:3}の代わりに，以下の式により$z_{i}^{(l)}$と$\beta_{ij}^{(l)}$を計算する．
\begin{equation}
    \begin{aligned}
        z_{i}^{(l)} & =\sum_{j=1}^{n}\alpha_{ij}^{(l)}(x_{j}^{(l)}W^V + b_{ij}^V) \\
        \beta_{ij}^{(l)} & =
            \begin{cases}
            \frac{(x_{i}^{(l)}W^Q)(x_{j}^{(l)}W^K + b_{ij}^K)^\top}{\sqrt{d}}, & x_{j}^{(l)}\in\mathcal{N}(x_{i}^{(l)}) \\
            -\infty, & x_{j}^{(l)}\not\in\mathcal{N}(x_{i}^{(l)})
            \end{cases}
    \end{aligned}
\end{equation}
ただし，$b_{ij}^{K},b_{ij}^{V}\in\mathbb{R}$は構文情報に基づく位置情報を表す分散表現であり，以下のように計算する．
\begin{equation}
    b_{ij}^{K}=
        \begin{cases}
        q_{\text{dist}(i,j)}^{wK}, & x_{i}^{(l)}\in X^{w} \\
        q_{\text{dist}(i,j)}^{vK}, & x_{i}^{(l)}\in X^{v}
        \end{cases}
    \quad 
    b_{ij}^{V}=
        \begin{cases}
        q_{\text{dist}(i,j)}^{wV}, & x_{i}^{(l)}\in X^{w} \\
        q_{\text{dist}(i,j)}^{vV}, & x_{i}^{(l)}\in X^{v}
        \end{cases}
\end{equation}
ただし，$X^{w}$と$X^{v}$はそれぞれ単語と構文ラベルの集合であり，各$q$は学習すべきベクトルである．
また，$\text{dist}$関数の定義は原論文に記載しているが，直感的には，構文情報を表すグラフにおける二つのノード間のパスの長さを計算している．
ただし，構文情報として構文森を使う場合，二つのノードをつなぐパスが複数存在する場合があり，それぞれのパスの長さが異なる場合がある．
その場合には，最も頻度が高い長さを$\text{dist}$関数の値とする．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{実験結果と分析}

提案手法の有効性を検証するために，三つの言語ペアで翻訳実験を行った．英日（ASPECコーパス，10万文の訓練データ），英中（LDCコーパス，約100万文の訓練データ），英独（WMTコーパス，1000万文の訓練データ）である．
表\ref{tab:result}に実験結果を示す．
この実験結果から，原論文の提案手法の有効性が分かった．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 1
\begin{table}[t]
\begin{center}
\begin{tabular}{ll|c|ccc|c}
\hline
\multirow{2}{*}{モデルのタイプ} & \multirow{2}{*}{モデル} & \multirow{2}{*}{英日} & \multicolumn{3}{c|}{英中} & \multirow{2}{*}{英独}\\
& & & MT03 & MT04 & MT05 & \\
\hline
\multirow{4}{*}{構文情報を用いたRNN}    & \citeA{eriguchi2016tree}      & 37.52 & 29.71 & 31.56 & 30.33 & 40.31 \\
                                        & \citeA{chen2017improved}      & 36.94 & 29.64 & 31.25 & 29.59 & 39.12 \\
                                        & \citeA{li2017modeling}        & 36.21 & 29.60 & 31.96 & 29.84 & 39.55 \\
                                        & \citeA{ma2018forest}          & \textbf{42.17} & 31.35 & 33.14 & 31.23 & 41.39 \\
\hline
単純なTransformer      & \citeA{vaswani2017attention}  & 34.09 & 33.85 & 34.84 & 32.28 & 44.32 \\
（構文情報は用いない）                       & \citeA{shaw2018self}          & 34.42 & 34.26 & 35.29 & 32.81 & 43.96 \\
\hline
\multirow{3}{*}{構文木を用いたTransformer} & 構文情報を線形化し入力                   & 33.59 & 33.77 & 34.55 & 31.41 & 42.31 \\
                                        & 構文情報を用いたSA            & 35.53 & 35.40 & 35.89 & 33.00 & 44.91 \\
                                        & +構文情報を用いたPE           & 35.81 & \textbf{36.76} & 36.40 & \textbf{34.58} & 45.18 \\
\hline
\multirow{3}{*}{構文森を用いたTransformer} & 構文情報を線形化し入力                   & 34.62 & 31.10 & 32.48 & 30.25 & 41.84 \\
                                        & 構文情報を用いたSA            & 35.37 & 34.85 & 35.06 & 33.24 & 45.23 \\
                                        & +構文情報を用いたPE           & 36.41 & 36.18 & \textbf{36.93} & 34.31 & \textbf{45.35} \\
\hline
\end{tabular}
\end{center}
\caption{三つの言語ペアの機械翻訳の性能 (BLEU(\%))．}
\label{tab:result}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

各モデルの具体的な翻訳例として，英日翻訳結果の実例を表\ref{tab:example}に載せる．単純なTransformerや構文木を線形化し入力したTransformerの場合，訳抜け（翻訳されない原言語文の情報）がいくつかあるが，原論文の提案手法を使うと正解訳文に近い訳文を生成できていることが分かる．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 2
\begin{table}[t]
\begin{center}
\begin{tabular}{lp{324pt}}
\hline
原言語 & There are many semiconductor factories which have not installed the sprinkler, even if the fire alarm has been installed. \\
正解訳文 & 火災報知器を設置していてもスプリンクラーは設置していない半導体工場が多い。\\
Vaswani et al. (2017) & 火災警報が設置されても、半数の半導体工場が多い。\\
\begin{tabular}{@{}l@{}}Tree Trans.\\（線形入力）\end{tabular} & スプリンクラーを設置していても、半導体工場が多い。\\
\begin{tabular}{@{}l@{}}Tree Trans.\\ (Syntax SA) \end{tabular} & 開業している場合も、スプリンクラーを設置していない半導体工場が多い。\\
\begin{tabular}{@{}l@{}}Tree Trans.\\ (+Syntax PE) \end{tabular} & 火災警報を設置しても、スプリンクラーを搭載しない半導体工場が多い。\\
\hline
\end{tabular}
\end{center}
\caption{英日翻訳結果の実例}
\label{tab:example}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{まとめ}

原論文はsyntax-based Transformerという新たな機械翻訳モデルを提案し，構文情報をTransformerのself-attentionとpositional encodingの二か所に組み込むことに成功した．提案手法は構文木だけではなく，構文森といったより表現力の高い構造にも適用できる．また，提案手法の有効性を，三つの言語ペアの翻訳実験結果によって示した．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibliographystyle{jnlpbbl_1.6}
\bibliography{22refs}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{biography}
\bioauthor{馬　　春鵬}{%
2014年ハルビン工業大学（中国）コンピューター科学技術学部コンピューター科学科卒業．2020年ハルビン工業大学（中国）コンピューター科学技術大学院コンピューター応用技術専攻博士課程修了．博士（工学）．現在，株式会社富士通研究所人工知能研究所研究員．
}

\end{biography}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%\biodate


\end{document}




