統計的機械翻訳を利用したチャットボット実験例

たけまるくんをご存じだろうか。奈良県生駒市のいわゆる、ゆるキャラである。

このたけまるくんは別の側面があり、2002年より生駒市北コミュニティセンターに設置され、センター館内や周辺地域の案内を音声で行っている。奈良先端科学技術大学院大学の研究プロジェクトの一環ということであるが、まさに音声チャットボットの先駆けと言えるだろう。

このたけまるくんを題材にした複数の研究例が出ており、その中でも統計的機械翻訳を利用して柔軟な文表現を行う試みの事例を紹介したい。

たけまるくんの仕組み

たけまるくんの仕組みは下記の通りである。

f:id:IPQuest:20160616142401p:plain

大きく分類して、雑音識別部、音声認識部、応答選択部の3部構成である。

まず、ユーザーからの入力音声があると、雑音識別部にて有効無効の判別が行われる。この識別においては大語彙連続音声エンジンが用いられており、無効と判別されたインプットは棄却される。無効かどうかの判定については、入力長と混合ガウス分布モデルにより実施されており、笑い声や咳、その他雑談などを学習しクラス判定を行う。

有効と判定されると、次に音声認識部にて音声認識処理にかけられる。(ベイズ推定に基づく。)ここでは、音響モデルと言語モデルを大人/子供用に分け並列に認識処理を行う。

最後に、応答選択部においては、音声認識部において得られた認識結果テキストを用いて、最も類似しているテキストがデータベースから選択され、それに対応付けされた応答文の合成音声による読み上げが行われる、というざっくり言うとそんな感じの仕組みだ。

データベースにおける応答文の作成

さて、ユーザーからの問いかけに対して、回答をどのように作成しているかもう少し細かく見てみたい。

応答文の作成は用例ベース方式を採る。つまり、質問と回答のペアが例文としてデータベースに事前に用意されており、質問例の類似度に応じて適切なレスポンスを行うという仕組みである。

f:id:IPQuest:20160616154959p:plain

この図にある通り、音声認識結果と質問例との類似度計算が行われる。これはシンプルな単語マッチングによるもので下記の式(1)による。

f:id:IPQuest:20160616155323p:plain

この単語マッチングは、ユーザーからのインプットとデータベース内の質問例で一致する単語の数を語順関係なく単純に数え上げ、文章の単語数で正規化しスコア計算を行うものである。

なお、このデータベース方式の性能評価試験では、正解の応答文を選択できた割合である応答正解率は、72%-82.4%の範囲だったとのことである。

この手法による自動応答の特徴としては、まず高度な意味解析を行わずに単語の表層的な情報を使って簡潔な処理ができる点、また質問文と回答文のペアを追加することに何ら高度な知識を必要としない点である。

一方で、当然ではあるがデータベース内の定型文以外に対応ができないということには留意すべきだろう。自動で柔軟な文生成ができればより親しみやすい対話が実現できるはずである。

統計的機械翻訳(SMT)の利用

SMTは対話コーパスを分析して翻訳規則や対訳辞書にあたる統計モデルを自動学習し、ある言語の文を異なる文に変換する技術である。SMTの構成は以下の通り。

f:id:IPQuest:20160616191522p:plain

原言語の文をf、目的言語の文をeとする。このとき、翻訳結果eの候補は無数に存在する訳だが、翻訳器は全てのペア(e,f)に対してfがeに翻訳される確率P(e|f)を計算し、P(e|f)が最大化するeを探索する。これは、対数線形モデルにより下記の式のように表される。

f:id:IPQuest:20160616194800p:plain

ここで、hm(e,f)は素性関数であり、Mは用いる素性の数である。それぞれの素性の重みはλmで表される。用いる素性には翻訳モデル、言語モデルなどがある。翻訳モデルは語句単位の翻訳確率を表し、言語モデルはその文の言語としての流暢さを示す。

1991年に発表されたIBMの統計的機械翻訳モデルは、翻訳のプロセスを暗号解読(decode)として捉えた点で画期的だった。これに対して単語ではなく句(phrase)を単位として翻訳を行う句に基づく統計翻訳という方式が提案され、翻訳精度がさらに大きく向上したという背景がある。

翻訳というと、日本語から英語など、異言語間の翻訳を行うためのものであると感じるが、質問文と応答文を別言語と見なして「翻訳」を行うことで、質問文から応答文を生成することが今回の目的である。

f:id:IPQuest:20160620142652p:plain

まず、翻訳モデルの学習を行うために、N-bestの認識仮説それぞれに対して応答文を複製してペアを作り、学習データセットとして用いる。

f:id:IPQuest:20160620143533p:plain

また、応答文生成のフェーズにおいては、N-bestの認識仮説それぞれを翻訳器にかけて応答文の候補を生成する。生成された応答文候補の中から最も翻訳スコアが高いものを最終的な出力例とする。

f:id:IPQuest:20160620143936p:plain

実験1:SMTを用いた応答文生成の実現可能性(書き起こし文ベース)

たけまるくんで収集された、大人からの発話(書き起こし文)を元に、応答文が正確に生成されるかの実験を行った。学習データとしては、過去に収集された約2万件弱のデータセットを利用した。応答文の生成については、まず必要な情報を応答文内に含むことに加えて、日本語文として自然であることを重視した。不自然な文例としては下記のような対応があげられる。

f:id:IPQuest:20160620151841p:plain

実験結果1

下記が実験結果サマリーである。

f:id:IPQuest:20160620152024p:plain

適切な応答は約60%に過ぎないが、やはり自然性を満たす文の生成率が低く、適切な応答の生成率を下げる要因となっている。

応答表現の多様性をみてみると、適切な応答文のうち学習に用いた正解応答文をそのまま再現したのが510文、それ以外の文表現が生成された例が62例だった。応答文が生成された事例を下記の通り示す。

f:id:IPQuest:20160620152646p:plain

実験2:SMTを用いた応答文生成の実現可能性(音声認識結果ベース)

次に、書き起こし文ではなく音声認識結果のデータセットを用いて、応答文生成の実験を行った。学習データとしては、下記のデータ量を用いた。なお、N-bestの認識仮説を使用した学習データ数が18509件のN倍にならないのは、出力された認識仮説がN個に満たない発話が存在するためである。

f:id:IPQuest:20160620160057p:plain

実験結果2

適切な応答が出来た応答文の生成率を下記のグラフに示す。

f:id:IPQuest:20160620160510p:plain

1-bestで行った実験においては、書き起こし文での実験結果を下回った。これは、音声認識結果をモデル作成に用いると音声認識誤りが生じていることが想定される。一方で50-bestまで学習データ数を増やすとその精度が上昇していることが見て取れる。

冒頭のデータベースによる応答では82.4%の応答正答率であったことに鑑みると、残念ながら統計的機械翻訳による応答文作成の精度は低いと言わざるを得ない。もちろん、限られたデータ量の中での実験であったことから、今後データベース方式との補完性を考慮した更なる精度の向上が期待される。

参考:奈良先端科学技術大学院大学「一問一答型音声対話システムにおける 統計的機械翻訳を利用した応答文生成」