【論文紹介】A joint source-channel model for machine transliteration, ACL 2004

前にスペル修正、翻字(Transliteration)周りのサーベイを書いた時に、DOMという手法をあまり詳しく調べなかったので、今回調べた結果面白そうな手法でしたので少し紹介します。ちなみに紹介する論文は中国語と英語間の手法として提案しています。これはカタカナと違って中国語はphoneticではなくideographicだよ!と主張しているのでカタカナには適用できないかもしれませんが個人的に面白かったので紹介します。

Li et al. A joint source-channel model for machine transliteration, ACL 2004

まず僕が理解している限りの背景としてtransliterationに関する基本的な方針は(少なくとも2004年までは)以下の2つです:
1.編集距離の拡張であるBrillらの手法を利用
2.Direct Orthogonal Mappingを利用

1.と2.の手法の大きな違いは2.ではphonemeを経由せずに、直接文字列と文字列の対応を取ることをしています。
例えば1.の手法を使うとしたら、
グーグル -> guuguru -> google
と一回ローマ字読みを挟む必要があるのに対し、2.では
グーグル -> google
と直接割り出します。

実際論文中にもPhonemeに変換すると約8%精度が落ちるよ!DOMの方が性能がいいよ!というのが報告されています。DOMを実現する上では様々な手法が考えられるのですが、この論文では単純なngramモデルを提案しています。

モデル化する上で提案しているのはJoint Source Channel Modelであり、中国語と英語の文字列ペアを同時に生成する、すなわち結合確率(Joint Distribution)を算出するモデルです。これはとは別にNoisy channel modelというのがありますが、僕が理解している限りではを直接モデル化するか、ベイズ則を用いて としてモデル化するかの違いだと思っています。
ここで問題になるのが、「アライメントをどうするか?」です。例えばの英語、カタカナペアには
g ->グ, oo -> ー, g -> グ, le -> ル
go ->グ, o -> ー, gl -> グ, e -> ル
などと言った複数のアライメントが考えられます。別にどれが正解か、というよりはより確率が高い文字レベルのTransliterationペアはどれか?というのが求めたいことです。

論文の提案手法の手順:

1.学習データとして対訳辞書を用意。論文では中国語と英語の対訳人名辞書を使用。
2.min(中国語の漢字数, 英語表記の長さ)だけ、対に当たる英語をランダムに振り分ける(<-ここの部分は論文に明記されていなかったので自分が例から汲み取って想像した部分です。)
3.ngramモデルを計算する
4.3.で計算したngramを元に最もらしいngramペア列を計算
5.3.と4.がngramペア列の変化がなくなるまで繰り返す。

Table10で他の手法との比較結果が書いてあります。ピンインレベルではなく文字レベルでのマッピングではPhonemeを利用した手法より論文で提案しているngramを利用したDOMの方がエラーレートが低いことが伺えます。少し気になったのが、正解文字マッピングは一意に決まるものなのでしょうか?グーグル, googleペアの例でも正確なマッピングかどうかを考察するのは自明でないと思います。

2004年と9年前の手法だからかもしれませんが、非常にシンプルで難しい数式がゴリゴリ出てくる訳でもなく、非常にお気に入りの論文です。