前回は、分散処理によって処理時間を減らせるかというお話をしました。今回は、デコード時に品詞情報も活用することで品質が向上するかというお話です。
始まりはエラーから
前々回と前回にお話した2つの課題を調査している間、品質向上のための調査は同僚のFさんに任せていました。品詞情報を活かせるかというテーマを追いかけてもらったのですが、きっかけは実に意外なところから始まっていました。
あるファイルをデコードしたとき、見たこともないエラーが出て、処理が途中で止まってしまったんです。
[ERROR] Malformed input at
Expected input to have words composed of 1 factor(s) (form FAC1|FAC2|...)
but instead received input with 2 factor(s).
Aborted
最初は意味がまったくわかりませんでした。調べていくうちに、デコード対象に|という文字が含まれているのが原因だということがわかりました。どうやら、factored modelというもので使われるべき文字のようです。
で、factored modelって何だ??
factored modelとは
それが、Mosesのマニュアルには、factored modelが何なのかという直球の説明がなく、factored modelを使ってデコードするための方法しか書かれていません。なので、そこから逆算した筆者なりの理解で説明します。
分かち書きした後の各センテンスは、単語がブランクで区切られた状態で並んでいます。その各単語に、それ以外の情報をくっつけた状態のものを、どうもfactored modelと呼んでいるようなのです。で、各単語に情報をくっつけるときに、単語と付加情報の区切り文字として|を使っているというわけです。
unfactored model | He opened the window . |
---|---|
factored model | He|PRP opened|VBD the|DT window|NN .|. |
unfactored model | 彼 が 窓 を 開け た 。 |
---|---|
factored model | 彼|名詞 が|助詞 窓|名詞 を|助詞 開け|動詞 た|助動詞 。|句点 |
そんなことして何が嬉しいのって話ですが、普通の状態だと、単語の並びの統計情報しかデコードに使えませんが、例えば、前述の例のように品詞を付加情報としてくっつけると、品詞の並びの統計情報も加味してデコードすることができ、それが品質向上につながるのではないかと期待できるわけです。
パラレル・コーパスのセンテンス数以外のところで、何か差別化できることはないかという思いもあり、品詞情報の活用について、同僚のFさんに調べてもらうことにしました。
大苦戦
まずは、品詞を付けるツールが必要です。英語に関しては、Mosesのマニュアルで紹介されていたMXPOSTを使いました。日本語に関しては、分かち書きで使っているMecabの出力形式をカスタマイズして対応しました。
さて、品詞情報をどう活かすかですが、とりあえず稼動確認という意味で、Mosesのマニュアルで紹介されていた例に倣い、訳語である日本語だけ品詞情報を使うことにしました。何とか動きましたが、予想外の結果が。
なんと、BLEUスコアが89%も下がってしまったのです。。品詞情報を使わないときの、1/10ですよ。なんだ、それ。というか、結果を聞いて、何が起こっているのか、よく理解できませんでした。原因を調べていくと、某I社で使っているコーパスに含まれる用語が、すべてMecabの辞書に入っているわけではないので、未知語になってしまって品詞を付けられないものが多いということがわかりました。
正しい品詞が付かないことには、品詞情報として意味を成しません。しかし、完全に未知語をなくすには辞書のメンテナンスが必須になってしまいます。これにはかなりの労力が必要になりそうなので、Mecabの標準機能を使って、未知語に対して推測した品詞を付けるようにしてみました。それでも、品詞情報を付けない場合より、8%程度低いBLEUスコアになってしまいました。
さらに、品詞情報を付けてしまった結果、すべてのセンテンスの文字数が2倍程度になってしまい、翻訳モデルの作成時の制限に引っかかって、強制的に短縮されるようになってしまいました。これだとおかしなセンテンスになってしまうので、制限に引っかかる長さのセンテンスを取り除くと、センテンス数が30%も減ってしまいました。そこで、付加する品詞情報を1桁の数字で表すことにしましたが、結局、BLEUスコアが逆転することはありませんでした。
品詞情報は、正しく活用できれば、品質向上につながる可能性はあります。しかし、労力に対する効果を考えると、少なくとも某I社で実験した範囲では、いい結果が出ませんでした。品質向上に関しては、他にも案があったので、品詞情報の活用に関しては、ここで打ち切ることにしました。
次回はカンニングは効果ありです。
[注] この回顧録は、かつて勤めていた会社で書いた連載を復元したもので、某I社の現在の状況を反映している訳ではありません。