Coda

概要 Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates

July 17, 2019

概要

表題は、過去に紹介した論文と同様、sentencepiece(ニューラルネットワークを用いた言語処理向けのトークナイザ・脱トークナイザ)の元になった論文にあたる。 ノイズに対する頑強さのために、単語のサブワード(部分文字列)を生成するユニグラム言語モデルの学習方法と、モデルから生成されたサブワード列を入力とする機械翻訳モデルの学習方法を提案した。

ニューラルネットワークに基づく機械翻訳モデルでは、学習によって翻訳可能になる語彙に上限がある一方で、翻訳すべき文には語彙にない単語が含まれることがある。 既存研究では、限られた語彙で、珍しい単語や語彙にない単語を表現するために、文をサブワードを単位とするシーケンスに変換し、 これらの単語の翻訳精度を向上できたことを報告している。 今回紹介する論文も、文をサブワードのシーケンスに変換するアプローチをとる。 独自の着眼点は、単語をサブワードに分割するパターンには何通りかあるため、源言語文と目的言語文のペアに対して複数のサブワード列を用意できると考えたところにある。一つのペアについて複数のサブワード列で学習することで、一つのサブワード列で学習する手法よりも、翻訳性能の高いモデルを生成できたことを実験で示している。

文に対応するサブワード列を生成するために、サブワードを生成するユニグラム言語モデルを源言語文や目的言語文から学習する。 学習はEMアルゴリズムにより、\(\mathcal{L}\)を最大化するように、サブワード\(x_i\)の出現確率\(p(x_i)\)の更新を繰り返す。 \(D\)は学習データにある文の集合、\({\bf x} = (x_1, \dots, x_M)\)は文\(X^{(s)}\)のサブワード列、\(S(X)\) はサブワードによるセグメンテーションの候補の集合を表す。

$$ \mathcal{L} = \sum_{ s = 1}^{ \mid D \mid } \log (P(X^{(s)})) = \sum_{s=1}^{\mid D \mid}\log \left( \sum_{{\bf x}\in S(X^{(s)})} P({\bf x}) \right) $$

$$ P({\bf x}) = \prod_{i=1}^{M}p(x_i), \forall i\ x_i\in \mathcal{V}, \sum_{x\in\mathcal{V}}p(x) =1 $$

ただし、\(\mathcal{V}\)は未知なので、十分大きな要素数の\(\mathcal{V}\)を設定し、その後、\(p(x_i)\)を求め、\(x_i\)の有無における\(\mathcal{L}\)への差分が小さい\(x_i\)を\(\mathcal{V}\)から除外するというステップを繰り返し、期待する要素数の\(\mathcal{V}\)を求める。

感想

EMアルゴリズムにおける\(p(x_i)\)の更新する値は、\(\mathcal{L}\)を偏微分して求めるのだと思う。 BPEと比べて計算時間がどれくらいかかるか気になる。

英語の論文はこちらから、日本語の論文はこちらから参照できる。