機械翻訳システムをサービス運用する上での工夫

# 概要
こんにちは．
NTTドコモ　スマートライフ推進部の生田和也です．
Advent Calenderの12/16を担当させていただきます！
https://qiita.com/advent-calendar/2019/docomo-research-labs

基本的に企画部門のため，Advent Calenderを書く風習はないのですが，
先進研の人に誘われたので，せっかくなので書いてみます．（お手柔らかに．．）

他の投稿者の方はNTTドコモのR&Dの人が多くて，内容もかなり専門的な人が多いですが，私はビジネス推進部門のため，あまり専門的な話はできない＆話せる話題の範囲が限定的になりますがご容赦ください．
具体的には，翻訳サービスの仕組みと，サービス運用する上での取り組みを書いていきます．


# 音声翻訳サービスの運用

### インバウンド需要の増加
日本国内におけるインバウンド需要は年々高まっており，音声翻訳サービスによるコミュニケーションの円滑化が期待されます．

> 訪日外国人消費動向調査（観光庁）
> http://www.mlit.go.jp/kankocho/siryou/toukei/syouhityousa.html

### 音声翻訳プロセス
一般的な音声翻訳サービスは，システムとして下記のような機構を持ちます．
R&Dの観点では音声認識や翻訳の精度改善等が取り組まれるのに対して，ビジネス推進部門としては，いかにお客さまに満足して利用して頂くかを考えて，サービス自体の品質向上に取り組みます．

![サービスの流れ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547205/966046fb-7d34-63bd-372a-c381a9727ba0.png)


### アプローチ
お客様に高品質なサービスを提供するにあたり，様々なアプローチが考えられます．

 - 翻訳サービスのUI/UXの改善
 - 翻訳サービスの利用方法（マニュアル等）の整備，展開
 - 知名度拡大に向けたプロモーション
 - 利用状況を分析する基盤の整備
 - **利用ターゲットに向けた精度の向上**
 - etc

この中で，技術的な内容という事で，**利用ターゲットに向けた精度の向上**について記載します．また精度の向上について「音声認識」「翻訳」「音声合成」といくつかありますが，特に翻訳周りについて話させていただければと思います．

## 利用ターゲット
NTTドコモの提供する「はなして翻訳」では，主にお客様と接客シーンで利用されることが多く，また利用者もお客様と対面で利用頂くことを想定しております．
翻訳の精度を高めるにあたっては，お客様の所属する企業の固有名称（商品名等）が翻訳できるように，固有辞書の作成を行います．この作業は機械化する事が難しい部門であり，地道に継続的に実施して精度を上げる事が望まれます．

### なぜ固有名称の機械翻訳が難しいか

固有名称の翻訳が難しい理由を説明させて頂くにあたり，近年の翻訳におけるアルゴリズムを簡単に記載します．なお下記の記述については，社内での取り組みというよりは，機械翻訳全般における仕組みの説明となります[^1]．専門的な内容が含まれるため分かりづらい部分もあるかとは思いますが，興味がある方は御覧ください

近年の翻訳システムでは，ニューラルネットをベースとしたものが用いられます．
ニューラルネットは，MLP（Multi Layer Perceptron：画像に写っている対象を予測したり，与えられた文章のポジティブ/ネガティブ分類問題を解くようなモデル）が一般的ですが，これを単語列に適応して，事前情報として与えられるコンテキストを基に対訳を生成するSequence to Sequenceモデル[^2]があります．機械翻訳の場合，コンテキストは「翻訳したい文」をエンコーディングした分散表現となります．

![Sequence2Sequence.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547205/e3df5c86-2192-cb83-c83e-b5bf1d2cbcfa.png)

### 固有名称のクラス化

翻訳システムでは上記のモデルを用いる際に，「翻訳したい文」をコンテキストとして対訳を生成します．対訳の生成では単語の予測分布（確率分布）を用いて予測を行います．翻訳モデルは，予測分布と正解となる分布の差を最小化する事で構築が行われます．

確率分布は翻訳モデルの持つ単語の語彙量により変化するため，なるべく語彙量を減らすために**共通表現のクラス化**が行われます．




![クラス化.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547205/18251af0-de22-4785-5c0f-c072770c601f.png)


「山田」「田中」といった固有名称などは，コーパスないに存在する数が少ない，あるいは存在しても名称が変化しても周辺単語の振る舞いの変化が少ない[^3]ため，クラス化を行ったほうが効率的に[^4]翻訳モデルを構築する事ができます．


![確率分布.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547205/8e6411a5-fa9b-8560-5a06-dab2e740463f.png)


反面，機械翻訳システム単体では，翻訳モデルを汎用化するほど，医療や小売等を代表とした専門性の高いドメインの翻訳を行う事が難しくなるというジレンマが発生します．（これに対する技術的アプローチもあるとは思いますが，今回のタイトルの内容から脱線しすぎてしうため割愛致します）

ビジネス推進部門では，汎用的な翻訳モデルを，お客様の利用シーンで活用できるようにカスタマイズすることがサービス品質向上の焦点となります．

### ビジネス推進部門による翻訳への取り組み

上記に述べたジレンマを解消するために，「はなして翻訳」をご利用頂いている企業様から，その企業で利用されるシーンやシチュエーションを特定し，お客様から単語辞書を頂いたり，チーム内で辞書を作成する事で精度の向上を行います．

![取り組み.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547205/a57ef142-cd06-0ed5-3103-a6af0fc2673f.png)


研究開発部門の方の努力により作られた技術と，ビジネス推進部門の地道な活動を組み合わせる事で，お客様に満足いただける翻訳が行えるようにサービスの改善を行っております．


[^1]: 私は大学院時代に自然言語処理、ディープラーニングの研究を行っており、その知識を基に記載させて頂いております。（具体的な研究分野は自然言語による対話システムの構築、特に対話応答文の生成のため、翻訳とは若干意味合いが異なった説明となっている可能性がある＆一部の情報については研究トレンドが変化し、内容が変化している部分があるかもしれませんが、ご容赦下さい。）

[^2]: Sequence to sequence learning with neural networks. Advances in NIPS (2014).Sutskever, I., O. Vinyals, and Q. V. Le. http://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks

[^3]: たとえば「て」「に」「を」「は」等の単語は、文脈の中でも出現位置はおおむね決まっており、「を」「は」といった助詞は「○○は～」「××を～」といった文章の序盤に用いられることが多い。「○○は～」の後には「おいしい」などの形容詞的表現が多く出現し、「××を～」のあとには「食べる」「見る」といった動詞的表現が多く出現する。このような、特定単語付近に出現する単語を「周辺単語」と呼ぶ事が多く、固有名詞においてこの周辺点単語の振る舞いは変化する事が少ないといわれており、同一分布に従うといった仮定を基にモデル化されるのが一般的である。

[^4]: 単語の予測分布は、一般的にコーパス内の全単語の出現確率の総和が「１」となるように形成される。コーパス内の単語数が（一般的な単語5000個、固有名称5000個あるとした時）10000単語存在した場合と、（固有名称を10個の共通クラスとして）5010単語として置き換えた場合、後者の方が適切な単語を予測する確率分布を形成しやすい。また固有名称はそもそも出現頻度が低い事がおおく、モデル構築を行う際に特徴を学習し辛い。同様の理由で、固有名称でなくとも出現頻度が低い単語は「未知語」としてモデル構築の際に取り扱わない事が多い。