読者です 読者をやめる 読者になる 読者になる

Bag of ML Words

ML = Machine Learning, Music Love, and Miscellaneous things in daily Livings

Oriol Vinyals, Quoc Le, "A Neural Conversational Model" (arXiv:1506.05869 [cs.CL]) ざっと読んでの(非専門家の)感想

一部で話題のこの論文、

[1506.05869] A Neural Conversational Model

ざっと読んでみました。

 

なお、私は対話モデリングの専門家じゃないので、

評価は大外ししている可能性があります。そのへんは自己責任で。

 

3行でまとめ

NIPS2014で提案された「任意長シーケンス入力から任意長シーケンス出力を行うseq2seq」を用いて、大規模な対話コーパスから「発話-->応答」の文対の写像を直接学習。人力で対話ルールや特徴量を作りこむことを(ほぼ)一切せずに、対話モデル学習を実現。

 

もう少し長いまとめ

前提

著者らは、NIPS2014で話題となった「任意長シーケンス入力から任意長シーケンス出力を行うDNN(seq2seq)」

Sutskever, Vinyals, and Le, "Sequence to Sequence Learning with Neural Networks", NIPS2014. 

の著者(の一部)です。同論文は、DNNで実現できていなかった「任意長シーケンスの入出力」を実現して、機械翻訳タスクで最高精度をたたき出しました。

で、Vinyalsさんは同モデルをparsing, image captionにも適用していて

この論文は対話に使ってみたということです。

 

背景と目的

対話モデリングは、自然言語処理やマンマシンインタラクションの中でもかなり難しいタスクになります*1。何の制約もない自由対話は本当に厳しいので、通常は対話のドメインを制約(たとえばQA、カスタマーサポートなど)したうえで、専門家の知見を活用した様々な構造や特徴などをその場その場で提案して少しでも自然な対話を実現しようとします。

 

この論文は、そういう試みをあきらめます。seq2seqモデルはかなり柔軟かつ複雑なシーケンス-->シーケンス写像を表現できるポテンシャルを持っています。そこで、対話のコンテキストなどの陽なモデル化はせず、「発話文-->応答文」の写像関係を大量の対話コーパスから直接学習、seq2seqモデルに学習させる、それだけです。

 

手法

対話って、Aさんの発話-->Bさんの発話-->Aさんの発話、というように、文-->応答文が延々続いていくものです。この論文では、その制御構造やパラメータとかは一切気にせず、ある発話から応答文を直接生成する複雑な非線形写像を、seq2seqと大量の対話コーパスから手に入れます。

実際、seq2seqをクロスエントロピー最大化で使うだけなので、論文中には一切式がありません。モデルの解説も半ページくらいで終わりで、あとは使ったコーパスと生成された対話例が載っているだけです。

 

ただし、このモデルは対話をtoo simplifyしていることを著者ら自身も認めています。実際、生成される対話もまだまだ自然とは言えないものです。それでも、例示される対話のいくつかは非常に自然に見えます。

これが対話モデリングの研究にとって、どのくらい「良い」発話なのか、これは専門家の方の意見を待たないといけませんが・・・。

 

実験結果

データセットは2つです。一つはIT trouble shootingコーパスです。一度の対話は大体400単語ぐらい。30Mトークン(発話対?論文からはトークンが何か明確には読み取れませんでした。)。

もう一つはOpen Subtitleコーパス*2です。こちらはドメインの閉じていないデータです。訓練用に62Mの発話文、テスト用に26Mの発話文を投入します。

 

定量評価ですが、どんな単語を選択(発話)するかをperplexityで評価しています。で、単純なn-gramモデルに比べてどちらのデータでもperplexityが下がっているそうです。

 

定性的な評価ですが、まずプロ研究者が作りこんださまざまな工夫をほぼ利用しないで、結構それっぽい対話を実現できているから素晴らしい、と言っています。

また、提案モデルはデータコーパス中にない質問に対しても汎化して、そこそこ妥当な回答をしていると主張しています。ただのテーブルルックアップじゃないよということです。

しかし、全然完璧じゃないということも認めています。まず、ちょっと言い回しを変えるとinconsistentな回答をしてくることがあるようです。

論文中の対話例7では

人間:what is your job?

マシン: i'm a lawyer. 

人間: what do you do?

マシン: I'm a doctor 

という例を挙げていて、対話の相手としての人格の安定性がない(作りこんでいないから)ことを示しています。

また、論文の大部分を占める対話例を読んでみると結構funnyなところも多いです。

IT troubleshootの対話例2だと

(事前に人間はlinuxを使っていると答えている)

マシン:is it a window machine?

マシン: we have linux on your machine. 

マシン: is it windos xp or windows 7?

人間: i am using linux

とか。マシンの応答、完全に混乱していますね

 

まとめ

結局、「対話モデリングの良さ」が定義できていないのは同じなので、どうあっても良い対話目指してまっすぐ学習することができない。したがって、これだけで「完ぺきな対話を実現するエージェント*3」モデルは作れないと思います。ですが、とにかくデータを突っ込むというDeepなアプローチを対話モデルの一つのbuilding blockとして使える可能性を示したところがエライと思いました。

 

*1:私は専門家ではないのですが、周囲に「対話の闇」の中で戦い続ける研究者の方が何人かいるので、難しいということは理解しています。

*2:Tiedemann, J. News from OPUS - A collection of multilingual
parallel corpora with tools and interfaces. In Nicolov,
N., Bontcheva, K., Angelova, G., and Mitkov, R.
(eds.), Recent Advances in Natural Language Processing,
volume V, pp. 237–248. John Benjamins, Amsterdam/
Philadelphia, Borovets, Bulgaria, 2009. ISBN 978
90 272 4825 1.

*3:SAOのユイちゃんとか、ツインシグナルのエモーションとか