このページの本文へ

今なぜ企業は「ボット」に注目すべきなのか

AIをビジネスの味方にする「Microsoft Bot Framework」とは

2017年04月28日 11時00分更新

文● 羽野三千世/TECH.ASCII.jp 写真●曽根田元

  • この記事をはてなブックマークに追加
  • 本文印刷

 「写真の中の人物は何をしているのか」、「この顔は誰か」、「この顔は怒っているのか」、「文章には何が書いてあるのか」、「誰が話しているのか」。このような人間に備わっている画像や音声、文章についての認知能力をコンピュータで実現するテクノロジーが「コグニティブ技術」、広義では「AI(人工知能)」と呼ばれるものである。

 マイクロソフトはAIの精度を向上させるために、AIを支える機械学習や深層学習(ディープラーニング)の研究開発と、ディープラーニングの計算を高速・効率化するクラウドインフラの開発に対して多くの投資を行ってきた。同社が開発する深層学習フレームワーク「Microsoft Cognitive Toolkit(旧CNTK)」は、すでに画像認識では人間の能力を超越する精度を達成しており、また音声認識でも人間に近いレベルまで精度が向上している。

 AIの精度向上への研究開発投資と同時に、マイクロソフトが積極的に取り組んでいるのが、AIの裾野を広げて、開発者やユーザーにとってAIを使いやすいものにしていくことだ。AIを実現するための機械学習アルゴリズムをサービスとして使える「Azure Machine Learning」のほか、画像認識・音声認識・テキスト認識などのトレーニング済みのAIモデルをWeb APIとしてアプリケーションに実装できるAPI群「Microsoft Cognitive Services」など、AIを“お手軽”に実装できるサービスを提供している。

AIサービスのAPI群「Microsoft Cognitive Services」

 そして、AIのテクノロジーをより多くの企業がビジネスの味方につけることができるよう、マイクロソフトが打ち出したのがボット開発フレームワーク「Microsoft Bot Framework」である。

 ここでいうボットとは、ユーザーとリアルタイムで自然な対話をするインターフェース(UI)を持つアプリケーションやサービスだが、AIの時代に、企業はなぜボットに注目すべきなのか。AIとボットの関係、Bot Frameworkによるボット開発について、日本マイクロソフト テクニカルエバンジェリストの渡辺弘之氏に話を聞いた。

日本マイクロソフト テクニカルエバンジェリスト 渡辺弘之氏

もはやスマートフォンアプリでは顧客にリーチできない

ーー今なぜ、企業はボットに注目すべきなのでしょうか。

 スマートフォンが普及し、これまでB to Cビジネスを展開する多くの企業は、顧客とのデジタル上での接触時間を増やすためにスマートフォン向けアプリケーションを開発してきました。外食チェーンやアパレル小売業などは、自社開発のスマートフォンアプリを配布して購買につなげようとしています。

 しかし、米国の調査会社Forrester Researchのデータによれば、現在、スマートフォン上で人々が費やす時間の85%はアプリケーションストアからインストールした「わずか5つのアプリ」で消費されています。1人がインストールするアプリの数は平均26個だそうですが、インストールしても使われていない。つまり、もはや企業は個々のアプリでは顧客にリーチできなくなっているわけです。

 一方で、「LINE」や「Messenger」、「WeChat」、「Skype」といったメッセージングアプリの利用は伸びています。ですから、顧客にリーチしたい企業は、スマートフォンにアプリを配布するのではなく、自社の「ボット」をメッセージングアプリのスレッド上に送り込み、ボットを介して顧客と対話することが効果的です。

「ボット」とはユーザーと自然な対話をするUIを持つアプリやサービス

 Microsoft Bot Frameworkは、このような対話型UIを持つボットを開発するためのフレームワークです。米国マイクロソフトの開発者イベント「Build 2016」で初めて発表されました。Microsoft Cognitive ServicesのAIサービスAPIと連携したボットを簡単に開発でき、開発したボットは様々なメッセージングアプリ向けに配布することができます。ボットをイントラサイトやコーポレートサイトなどWebに組み込むことも容易です。

AIでボットの対話力を強化

ーーボットがAIと連携することでどんな価値が出るのでしょうか。

 ボットは、メッセージングアプリなどユーザー間がリアルタイムにコミュニケーションをするサービス上で、情報発信や、ユーザーからのインプットに対して自動応答をするシステムです。人間同士が対話をするサービスに送り込まれたボットに要求されるのは、より人間に近い対話ができる能力であり、ここで文脈理解AIや感情認識AIなどのテクノロジーが役立ちます。音声認識AIやテキストを音声変換するAIを使えば、ボットと人間が音声で会話をすることも可能です。

 Bot Frameworkを使ったボット開発においてよく使われるAIの1つに、Cognitive Servicesの「LUIS(Language Understanding Intelligent Service)」という自然言語解析APIがあります。LUISは、自然言語から文章の意図(Intent)を理解し、文章のキーワード(Entity)を抽出するサービスで、日本語にも対応済みです。

 たとえば、「明日の東京の天気を教えて」という日本語文章をLUISが解析すると、文章の意図は「天気を知りたい」のだと解釈し、キーワードとして「明日(Day)」「東京(Place)」を抽出します。このLUISのシステムをバックエンドに置き、フロントエンドに「天気を質問されたら(外部の気象情報データベースを検索して)天気を返答する」「天気を質問されたとき、もし時間・場所のキーワードが含まれていなかったら時間と場所を質問する」などとプログラムされたボットを置けば、日本語を正確に理解して質問に答える賢いボットが実現できます。

ボットとCognitive Servicesとの連携

 同様の仕組みで、顧客からの問い合わせの内容を正確に把握して自動応答するFAQボットや、通常の会話文から顧客のニーズを把握して最適な自社サービスプランを提案するボットなどを構築することができます。

 LUISをはじめ、Cognitive Servicesで提供するAIは、マイクロソフトの継続的な開発投資によって日進月歩で精度向上しています。ボットとCognitive ServicesのAIを組み合わせることで、企業は、トレーニング済みの最先端精度のAIを自社ビジネスの味方につけることができるのです。

 実際の事例では、ナビタイムジャパンが観光ガイドアプリ「鎌倉 NAVITIME Travel」にCognitive ServicesのAPIと連携するボットを実装し、自然な対話でスポット検索ができるサービスを提供しています。Cognitive Servicesには音声翻訳のAPIもあるので、今後は外国人観光客向けのサービス展開も考えられますね。

 また、パソナはイントラネットにCognitive Services連携のボットを実装し、社員から社内IT部門への簡単な問い合わせにはボットが返答するようになっています。これにより、社内の貴重なIT人材の業務生産性を高めています。

「AIによってボットがより人間に近い対話ができるようになる」

Bot Frameworkなら3ステップでボットが完成

ーーBot FrameworkとCognitive Servicesを組み合わせたボット開発の手順について教えてください。

 まず、Bot Frameworkの要素から説明します。Bot Frameworkは、「Bot Builder SDK」「Bot Connector」「Bot Directory」の3つで構成されています。

 Bot Builder SDKは、ボットを作成するために使用するSDKで、C#とNode.js(Java Script)の2つの言語に対応しています。SDKには、ボットのベース機能であるダイアログ(対話)形式のコミュニケーションシステムが実装済みです。

 Bot Connectorは、作成したボットを外部のメッセージングアプリやWebなどのチャネルと接続するもの。Bot Frameworkで一度作成したボットは、このBot Connector機能を使って、SMSやFacebook Messenger、Skype、Slackなど様々なメッセージングアプリに組み込むことができます。

 最後のBot Directoryは、作成したボットを一般公開する登録ディレクトリです。承認を得て登録されたボットはBingから検索できるようになり、誰でも利用できます。

Bot Frameworkの構成

 さて、Bot Frameworkでのボットの作成手順ですが、基本的には(1)Bot Builder SDKでボットを作成し、(2)作成したボットをAzure上にデプロイ、(3)Bot Frameworkポータルサイトにボットを登録して接続先チャネル(メッセージングアプリなど)の指定など各種設定を行う、の3ステップで完成します。

 C#を使うケースを例に説明すると、ダウンロードしたSDKをベースに、Visual Studioからダイアログ(対話のスタートと終了、ユーザーのインプットに対する返答メッセージの内容など)のプログラムを実装し、「公開」ボタンを押すとボットがAzure上にデプロイされて動作を開始します。

Bot Builder SDKの開発手順(C#の場合)

 ここで、Cognitive ServicesのAIサービスと連携させる場合には、Bot Builder SDKでボットをプログラミングする際に、Cognitive ServicesのAPIをコールするコードを書いておきます。LUISと連携させる際は、あらかじめLUISサービスのポータルサイトでIntent/Entityを指定して文章例を学習させたLUISアプリを作成しておき、このアプリをボットからAPIで呼び出します。

LUISアプリの準備

 一般的なVisual Studioでのアプリケーション開発と要領は同じなので、Bot Frameworkを使って、開発者は学習コストなく、さまざまなチャネル向けのボットを開発できます。SDKがあるので、シンプルなボットなら開発に要する時間は数時間~数日、複数のCognitive Services APIと連携するような複雑なボットであっても開発期間は1カ月もかかりません。Bot Frameworkを使うことで、企業は、迅速にボットとAIのテクノロジーを自社ビジネスに取り入れることができるのです。

■関連サイト

カテゴリートップへ

ASCII.jp特設サイト

クラウド連載/すっきりわかった仮想化技術

ピックアップ