ブログではないです

ブログでなくはないです

Why Neural Translations are the Right Length [Xing+, EMNLP'16]

概要

SMTがbrevity penaltyなどを用いて翻訳結果の長さの調整に腐心しているのに対し、 NMTは翻訳に失敗していたとしても比較的長さは入力と同じになりやすい。 その理由を分析するために a, b の2種類のトークンのみを用いて、入力と全く同じ出力を返すようなencoder-decoderモデルを訓練し、 その際のLSTMのセル(4次元)の状態を入力ごとにプロットしている。

結果、明らかに長さに反応して増減しているセルやa, b の数、文頭に連続するaの数に反応するセルなどが確認され、 decoder側での長さに反応しているセルが規定値を取るとEOSの出力確率が激増する、という仕組みになっていると述べている。

次元数1000で実験した翻訳タスクでも同様で、ある入力が与えられたときの長さに影響しうるk個のセルの値を用いて出力文長に対するlogistic回帰を行った所 top-10のセルを用いて 87%~97% の精度が達成できている。

このように、LSTMのモデルの中にはっきりと長さに反応するセルが訓練されることで出力の長さがコントロールされている、という話。

雑感

翻訳タスクかつ単語ベースだと入出力の長さの対応は結構取れている事が多いだろうけど、 他のタスク(要約とか対話とか)や文字ベースの場合そのあたりの話はどうなるのだろう? Controlling Output Length in Neural Encoder-Decoders [Kikuchi+, EMNLP'16] のように他タスクをニューラルで解く際の文長に関する研究が有ることから、結構デフォルトで出力文長に関してちゃんと学習されているかは怪しい。

対話なんかも長い発言に対する応答が必ずしも長いとは限らないし、そもそも文字ベースになると単語では一対一で意味の対応が取れていた部分が全く当てにならなくなる。文字ベース翻訳はあまり試したことないけどdecodeの結果はどうなるのだろう?