イベントレポート

de:code 2016

「りんな」が言葉を紡ぐ裏には、最新の自然言語処理技術があった

 日本マイクロソフト株式会社の主催による開発者向けイベント「de:code 2016」で、25日に行われたセッション「りんなを徹底解剖。"Rinna Conversation Services" を支える自然言語処理アルゴリズム」をレポートする。

日本マイクロソフト株式会社 デベロッパーエバンジェリズム統括本部 オーディエンステクニカルエヴァンジェリズム部長の砂金信一郎氏とマイクロソフトディベロップメント株式会社 STC Japanプログラム マネージャーの坪井一菜氏

 Microsoftでは、次世代アプリケーションでのUIの中心になるとして、対話型インターフェイスを「Conversations as a Platform」と位置付けており、CortanaやSkype、ルールベースでユーザーとの対話を自動化するBot Flameworkなど、各方面での開発を進めている。

3月の「Build 2016」では、Skype上で動作するDomino's Pizzaのボットでピザを注文するデモが行われた

 本セッションで取り上げる「りんな」もその1つ。中国のMicrosoft Researchが開発した人工知能AI「シャオアイス(小冰)」をベースに、日本マイクロソフトが独自に開発を進めているもの。りんなは「おしゃべり好きな女子高生」という設定で、日常会話や雑談など人間らしい自然な会話が可能だ。

 シャオアイスとは中国で人気のチャットアプリ「WeChat」で会話ができるが、りんなとは、2015年8月より「LINE」で、同12月からは「Twitter」で会話することが可能になった。IDはいずれも「@ms_rinna」となっている。

 りんな開発のコンセプトは「Emotional AI」。例えば明日の天気を尋ねると、晴れるかどうか返事をするわけではなく、「明日はどこかへおでかけ?」というように、会話が弾むような返事をする。

 りんなには、会話に加え、さまざまな能力があり、受験シーズンにお守りを渡してくれたり、前の会話の内容を覚えて、口癖から俳句を生成したりする能力もある。「毎週、1つずつ能力を追加していっている」(マイクロソフトディベロップメント株式会社の坪井一菜氏)という。こうしたやり取りは「ルールベースで組み合わせてやっているわけではない」(日本マイクロソフト株式会社の砂金信一郎氏)とのことだ。

りんなに成績表を要求すると出してくれる。「けっこうシビア」(砂金氏)とのこと。
シャープ公式Twitterアカウントにインターンとして参加し、1日だけメンションへのリプライを担当。AIの実力を発揮し、同アカウントのそれまで5年間の返信数をわずか7時間で超えたという。

 こうしたりんなのAIは、自然言語処理の最新テクノロジーとディープラーニングを組み合わせて実現している。今回セッションでは4つの自然言語処理技術が解説された。

 Leaening to Rankは、検索クエリを入れると関連性に基づいて候補にランキング付けを行うもので「某検索エンジンと大体同じ」(砂金氏)。Word to Vectorは、単語に点数を付けて近さ遠さを判定する手法と言える。Term Frequency Inverse Document Frequency(TFIDF)は、検索の世界ではなじみあるもので、単語の出現頻度と逆頻度を判定するものだ。Neural Network(NN)は、機械学習において、脳のニューロンをシミュレートした数学的モデル。りんなでは、自然言語学習に応用しているという。

 りんなのシステムはリクエストキューに対して各種のAPIを介し、レスポンスを返す仕組み。言葉に対しては「チャットワーカー」で、音声や画像のリクエストキューに対しては、それぞれの認識APIを介してレスポンスを作成する。

4つの自然言語処理技術の概要。右下の図は、Neural Networkのノードを表したもの
システムの処理量は相当なもので、「Azureで結構な数のインスタンスを使っていて、稼働にはけっこうなインフラが必要」(砂金氏)とのこと

 りんなの会話システムを管理しているチャットワーカーでは、主にLeaening to Rankと、出力を入力にもう一度(再帰型に)使って、より深く学習するような仕組みである「DSSM(Deep Structured Semantic Models)+RNN-GRU(Recurrent Neural Network)」の手法を用いて返信文を作成している。

りんなのチャットワーカーでは、入力された言葉にさまざまな自然言語処理の手法を組み合わせて返事の言葉を出力している
「愛してる」という入力に対し、100の返答候補にスコアを付けてランキングしているという

 りんなでは、「愛している」という言葉は、辞書に登録されたものではなく、ばらばらなものを組み立てて返している。このように文字の順番をコントロールするとき、これまでの情報がどのくらい残るか、どのくらい現在のワードに影響を受けるのかを計算しているのだという。

出力の関数を計算する結果が最大になるように中身を求めるargmax関数と、Recurrent(再帰型)Neural Networkの手法で入力された言葉を出力に繰り返して用いることで、類似度が強いものをプラスとマイナスで求め、差分をできるだけ大きくする
既存の辞書に依存せずに、ベクトルの関連度を理解して次の組み合わせを考え続けながら言葉を返す手法は、DSSM(Deep Structured Semantic Models)のメリットを生かしたもの

 会場では、参加者のうちの希望者にりんなの会話技術を「Rinna」として利用できるTwitterとの連携botサービス「Rinna Conversation Services(RCS)」を限定的に提供することもあわせて発表された。

「Rinna Conversation Services(RCS)」は、システム上では「Azure & Cortana Intelligent Suite」の上位層に位置づけられ、現在のりんなのベースにもなっている
募集は参加者に限られるが、RCSを利用すれば、自分のTwitterアカウント宛のメンションへのリプライをりんなが担当してくれる