Amazon Alexa の内部システムの最先端を読む（2018）(1)

# 導入
  この記事は Amazon Alexa Prize 2018 年度最優秀賞を獲得した [Gunrock](https://s3.amazonaws.com/dex-microsites-prod/alexaprize/2018/papers/Gunrock.pdf) の論文を元に作成しています。    

  他の論文では少し内容が異なっていることがありますが、最優秀賞を取ることができたということは恐らく最も出題を理解していたのだろうということでこちらを参考にしました。    

  また本記事の方針は、対話システムってどんな研究しているの？ということを紹介することです。なのでこの記事を読んでも **Alexa は作れません** (とはいえ本家の論文を読んでも再現性ないですが)。
    
# Amazon Alexa Prize 2018 とその最優秀賞である Gunrock とは
  昨年の冬、Amazon Alexa の内部システムを競うコンテスト、Amazon Alexa Prize 2018 の審査結果が発表されました。最優秀賞を獲得したのは **Gunrock** というシステムで **University of California Davis** によるものでした。    

  今回（昨年度もほとんど同じような内容だったような・・・）のテーマは Social bot と呼ばれる主に雑談対話をメインに据えた対話システムの作成でした。とはいえ我々の想像以上にこのコンテストはやらなければ多く、例えば音声認識や音声生成、Alexa特有の処理へのハンドリングを挙げることができます。    

  さて件の Gunrock は本テーマにおいて最も良い評価を得ることができたシステムとなります。評価基準は審査員からの **5点満点の評価で、3.62 点** を取りました。これが良いか悪いかは皆さんの主観に任せますが、まだまだ改善の余地があると個人的には感じています（というのも Davis チーム曰く、このコンテストは期間が結構きつく、詰めきれない部分があったようです）。そして本システムの特徴として挙げられるものとして、審査員の **平均対話時間が 5分 22秒** を達成したことがあります。つまり「Hey, Siri！」と言ってから「Bye, Siri!」 となるまで平均５分ということです。5分間って短くね？と思う方もいるかもしれませんが、 *言葉だけ* でこの時間喋るのは結構凄いことだと思います。（とはいえ昨年度優勝した Sounding Board はこれよりも長い対話時間を達成していました）    

  Gunrock が特に取り組んだ問題は、以下の3つとなります。    

  1. オープンドメインの音声言語理解を処理するための3層音声言語理解パイプラインの提案
  2. 対話の文脈情報を利用して 一般の事実 と botの意見 をシームレスに切り替えていく柔軟な対話フローを可能にする階層的な対話管理システムの設計
  3. トーン調整や休符挿入を行うことでより自然な応答発話を構築する韻律音声合成機構の作成

  **なんのこっちゃと思う方もいると思いますが、私もなんのこっちゃという顔をしています。**というのもまるで違う研究成果が一つの論文にまとめられている（しかも19ページしかない！）ため、一章読むたびに全く違う分野の参考文献を探す羽目になるという地獄を味わいます。間違っても個人でこの分野は研究したくないなと思いました。まあ、やるんですけど

  ・・・とりあえずこのコンテストについてもう少しだけ触れてみましょう。
# Amazon Alexa Prize 2018 とは何だったのか
  **Amazon Alexa Prize** は **Amazon Alexa の内部システムを作るコンテスト**です。このコンテストには毎年テーマが設けられ、今年のテーマは 「**Social bot**」なるものの作成でした。Social bot とは所謂雑談対話のできる bot (chatbot などと呼ばれていますが、日本の蔑称的な意味合いはないです）と Microsoft Cortana のようなユーザの動作補助をする Personal Assistant の中間にあるような対話システムです。具体的には以下の図 ([sounding board のスライド](https://sounding-board.github.io/index_files/Ostendorf_naacl2018.pdf) より)を参照してください。

  <img width="80%" src="https://raw.githubusercontent.com/MokkeMeguru/seminar/master/gunrock/img/soundingboard.PNG">
  
  いまいち Social Conversation の意味に掴みかねる部分があるかもしれませんが、簡単にいうと世間話です。またこの世間話というのがかなり難しい問題で、カタカナで格好良く言うならば、オープンドメインな対話、ということになり、つまりほとんど至るところの話題に対応できる雑談対話システムということになります。
  
  つまり世間話ができて、ユーザの望む何らかのタスクも解ける、そんなタスク指向型の対話システムと非タスク指向の対話システムを組み合わせたような対話システムを作ってくれ、ということになります。

  ここで注意しなければならない点として、これは *英語圏の人向けの英語の対話システムのコンテスト* だったということです。世の中には、日本も海外もコミュニケーション方法は大差ないし、英語から日本語にちゃちゃっと変えるだけで直ちに日本語対話システムを作れるだろうと言う人もいたりするのですが、論文や関連研究を読む・調べる限りそう容易なものではないので、日本語のそれを作りたい方はお互い頑張りましょう・・・
  
  大会期間は2018年の春終わりから夏くらいまでだったようですが、恐らく事前準備していた団体の方が多いのであんまり参考にはしないほうがいいかなと思います。


# Social bot の関連研究に触れる
  関連研究としては**タスク指向の対話システム**、**オープンドメインな対話システム**それぞれで見れば広く研究されているようです。
  
  前者は例えば Line なんかの出前の受付とか、ちょっとテクノロジアな企業のWebページにあるヘルプデスクなんかがこれになります。
  
  後者は、時代によって解釈がやや異なるようです。例えば時代を20年位遡ってオープンドメインな対話システムについて議論すると、それは Turing Test と呼ばれる、人間と遜色ない対話を可能にする対話システムを指し、研究としては、**Alice** といった chatbot が該当します。逆に現代でそれについて議論すると、**Google Assistant**、**Siri** のような短い対話を行えるような、或いは質疑応答ができる対話システムを指します。(ちょっと前者も混ざってしまっていますが元論文もこうだったのでこうします)
  
  また深層学習を用いたモデル (Seq2Seq や Transformer, HRED, VHREDなんかです。ちなみに実験したところ Transformer はこの分野でも結構良い結果（BLEU評価）が出ました)や強化学習を用いたモデルも先行研究として挙げることができますが、これらは対話の一貫性が得づらいという問題や、会話の多様性が損なわれるという問題もあるようで満足な結果を得るのはまだ難しいようです。
  
  そのため、昨年度 Social bot として優秀な成績を残した Sounding Board はルールベースのモデルと end-to-end なモデルを組み合わせるアプローチを活用していました。これはユーザエクスペリエンスを向上させることができ、対話時間を伸ばすことができるとわかっています（実際Gunrockよりも長い対話時間を達成していました）。しかしこの手法にはいくつかの欠点があると Gunrock のチームは指摘しています。それは新規性のある話題について対応することが難しいこと、ユーザからの意見に基づく要求をうまく処理することができないということです。（end-to-end モデルなので、そういった要求に弱い、ということのようです。）
  
 <img width="50%" src="https://raw.githubusercontent.com/MokkeMeguru/seminar/master/gunrock/img/siri.PNG">



# 目次
[Amazon Alexa の内部システムの最先端を読む（2018）(1)](https://qiita.com/MeguruMokke/items/561e778ccd69e5160c74)
[Amazon Alexa の内部システムの最先端を読む（2018）(2)](https://qiita.com/MeguruMokke/items/83b3d921729b62ae8ee2)

# ソース(文とか翻訳記事とかなんとか)
ここ（研究室ではこの分野あんまり興味持ってもらえなかったので最低でも月1回位は更新してセルフゼミしようかなと思っています・・・issue なんかで色々教えて頂けると喜びます）
https://github.com/MokkeMeguru/seminar/tree/master/gunrock