LUIS.AI: カスタム言語理解のための自動化された機械学習 (LUIS.AI: Automated Machine Learning for Custom Language Understanding)

Posted: 2018/03/02 カテゴリー: Uncategorized
タグ:, , , , , , , ,

LUIS.AI: Automated Machine Learning for Custom Language Understanding


Joseph Sirosh (Corporate Vice President, Artificial Intelligence & Research)

このブログ ポストは、Riham Mansour (Principal Program Manager, Fuse Labs) と共同執筆されました。

会話型システムは、急速にバーチャル アシスタント、顧客サービス、IoT (Internet of Things) といったソリューションの主要コンポーネントになりつつあります。会話型システムは、人間の声を理解し、ユーザーが言いたかったことの理解を基にして対応するコンピューターの能力のことを指しています。さらに、このシステムは、声やテキストだけに依存しているわけではありません。このシステムは、こういった対話を処理し理解するために、視覚、音、感覚を使うでしょう。これは、デジタル領域と我々が生きている現実との間の境界線をさらに曖昧にします。チャットボットは、会話型システムの一般的な一例です。

チャットボットは、自然言語でユーザーとの会話を続け、ユーザーの意図を理解し、組織のビジネス ルールやデータを基にして応答を送ることができる、非常に流行している会話型システムの一例です。チャットボットは、言語を処理するためにAI (人工知能) を使い、人間の会話を理解できるようにします。チャットボットは、口頭の質問や書かれた質問を解読し、適切な情報や方向性で応答します。多くのお客様は、企業Webサイトのダイアログ ボックスで、初めてチャットボットを経験しました。また、Cortana、Siri、AmazonのAlexaといったチャットボットは、消費者と言葉で対話します。企業は、顧客サービスを強化するために、チャットボットをますます使いつつあります。

言語理解 (LU) は、ボット、IoTエクスペリエンス、分析などといった会話型サービスを可能にする、極めて中心的なコンポーネントです。口語対話システムでは、LUは、文の中の語を、通常は文の意図と存在するエンティティを示す機械可読な意味表現に変換します。たとえば、時計のようなウェアラブル デバイスに組み込まれた対話システムのある、フィットネスのドメインを考えてみましょう。この対話システムは、StartActivity、StopActivityといった意図を認識し、ActivityTypeといったエンティティを認識するでしょう。「ジョギングを始める」というユーザー入力では、LUの目標は、StartActivityという意図を識別し、ActivityType = “ジョギング” というエンティティを識別することです。

歴史的に、LUの実装には、機械学習 (ML)、手作りのルールという2つの選択肢がありました。手作りのルールは、一般的なソフトウェア開発者が利用しやすいものですが、スケール アップするのが難しく、データから恩恵を受けません。MLベースのモデルは、現実の利用データでトレーニングされ、新しい状況に一般化され、堅牢性の観点で優れています。しかし、これは、稀で高価な専門知識、巨大なデータ セットへのアクセス、複雑な機械学習 (ML) ツールを必要とします。そのため、通常、多額の資金を持つ組織だけが、MLベースのモデルを採用しています。

LUを民主化する取り組みの中で、図1に示したMicrosoftのLanguage Understanding (LUIS) は、ソフトウェア開発者が、MLの専門知識なしに、自分のアプリケーション ドメインに固有のクラウド ベースの機械学習LUモデルを作成できるようにすることを目指しています。これは、AzureのMicrosoft Cognitive Servicesの言語関連サービスの一環として提供されています。LUISは、開発者が、高度なMLテクニックを使って現実のトラフィックを基にして、反復してカスタムLUモデルを構築できるようにします。LUISテクノロジは、少なくとも20年以上遡る研究、科学、エンジニアリングの取り組みを伴う、人工知能 (AI) におけるMicrosoftの継続的な革新と、その自然言語理解への適用を活用しています。このブログ ポストでは、インテリジェントな会話型システムを可能にするLUISの機能を詳しく見ていきます。また、自社のLUモデルを構築するための自動化されたAIソリューションとして、大企業がどのようにLUISを使っているかを示す、いくつかの顧客事例を紹介します。このブログ ポストは、モルソン・クアーズ、UPS、Equadexといったお客様を持つ、2017年12月の会話型AI、言語理解ツールのGA (一般提供) の発表と協調しています。

図1: Language Understanding (LUIS) サービス

図1: Language Understanding (LUIS) サービス

LUISでの言語理解モデルの構築

LUISアプリは、あなたが設計しあなたのニーズに合わせて調整された、ドメイン固有言語モデルです。LUISは、あなたのエンド ユーザーがあらゆるデバイスから使える、クラウド ベースのサービスです。LUISは、12言語をサポートし、世界中の12リージョンにデプロイされています。これによって、LUISは、複数の国に顧客を持つ大企業にとって極めて魅力的なソリューションになっています。

事前構築済みドメイン モデルから始める、独自のドメイン モデルを構築する、または、事前構築済みドメインと独自のカスタム情報を組み合わせることができます。開発者は、単純なユーザー エクスペリエンスを通して、ある程度正確な初期のアプリケーションを立ち上げるために、いくつかの発話 (utterance) の例を提供し、それらにラベルを付けることから始めます。開発者はLUISアプリをトレーニングし、現実のトラフィックを受信できるAzure上のHTTPエンドポイントを取得するために、LUISアプリを発行します。自分のLUISアプリケーションがエンドポイント クエリを実行したら、LUISでは、能動学習 (アクティブ ラーニング) を通して、現実のトラフィックでうまく機能しない個別の意図とエンティティを改善できます。能動学習プロセスで、LUISは、すべてのエンドポイント発話を調べ、自信がない発話を選択します。あなたがそれらの発話にラベルを付け、トレーニングし、発行すると、LUISは発話をより正確に識別します。満足のいくパフォーマンスを得るまで、個別の意図とエンティティを改善するために能動学習を使う複数の短く速いイテレーションで、自分のLUISアプリケーションを構築することを、強く推奨します。図2は、LUISアプリケーションの開発ライフサイクルを示しています。

図2: LUISアプリケーションの開発ライフサイクル

図2: LUISアプリケーションの開発ライフサイクル

LUISアプリを設計し、トレーニングし、発行したら、発話を受信して処理する準備ができました。LUISアプリはHTTPリクエストとして発話を受信し、抽出されたユーザー意図で応答します。図3に示したように、クライアント アプリケーションは発話を送信し、JSONオブジェクトとしてLUISの評価を受信します。それから、クライアント アプリケーションは適切に対応できます。

図3: LUISの入力発話と出力JSON

図3: LUISの入力発話と出力JSON

LUISには、3つの主要な概念があります。

  • 意図 (intent): 意図は、ユーザーが実行したいアクションを表します。意図は、フライトの予約、請求書の支払い、新着記事の発見といった、ユーザー入力内で表された目的や目標です。あなたは、これらのアクションに対応する意図を定義して命名します。旅行アプリでは、「BookFlight」という名前の意図を定義するかもしれません。
  • 発話 (utterance): 発話は、あなたのアプリが理解する必要のある、ユーザーからのテキスト入力です。発話は、「パリへのチケットを予約」といった文、または「予約」、「パリ フライト」といった文の断片かもしれません。発話は常に適格というわけではなく、特定の意図に対して発話の多数のバリエーションがあり得ます。

  • エンティティ (entity): エンティティは、発話の中の関連する詳細情報を表します。たとえば、「パリへのチケットを予約」という発話では、「パリ」が場所エンティティです。LUISは、ユーザー発話の中で言及されているエンティティを認識し、それにラベルを付けることで、あなたがユーザー要求に応えるための特定のアクションを選択するのを助けます。

LUISは、開発者が高度な発話を理解できるアプリを構築できるようにする、一連の強力なエンティティ抽出器 (extractor) をサポートしています。LUISは、日時認識エンジン (recognizer)、金額、数値などといった、開発者がアプリでしばしば必要とする一般的な型である、一連の事前構築済みエンティティを提供しています。開発者は、一流の機械学習アルゴリズムを基にしたカスタム エンティティ、辞書ベースのエンティティ、またはそれらの組み合わせを構築できます。機械学習を通して作成されるエンティティには、「組織名」といった単純なエンティティ、階層エンティティ、複合エンティティがあります。加えて、LUISは、Webからマイニングされた巨大な辞書が提供する推奨エントリを通して、開発者が迅速かつ簡単な方法で辞書ベースのリスト エンティティを構築できるようにしています。

階層エンティティは、エンティティ間の「Is-A」関連をモデル化するために、複数のレベルにわたります。たとえば、「ロンドンからシアトルへのフライトを予約したい」といった発話を分析するために、どちらも都市である出発地の「ロンドン」と目的地の「シアトル」とを区別できるモデルを構築する必要があります。この場合、2つの子「origin」、「destination」を持つ階層エンティティ「Location」を構築します。

複合エンティティは、エンティティ間の「Has-A」関連をモデル化します。たとえば、「2つのフライ3つのバーガーを注文したい」という発話を分析するために、発話分析が「2」「フライ」とバインドし、「3」「バーガー」とバインドするようにしたいでしょう。この場合、LUISで、「number of items」「food type」から構成される「food order」という複合エンティティを構築します。

LUISは、開発者がカスタム言語理解アプリケーションの構築を迅速に始めるのを助ける、一連の強力なツールを提供しています。カスタマイズ可能な事前構築済みアプリや、カレンダー、音楽、デバイスといったエンティティ辞書があるので、より迅速にソリューションを構築しデプロイすることができます。辞書は、Webの集合知からマイニングされており、数十億のエントリを提供しています。これは、ユーザー会話から価値ある情報を正しく識別するためのモデルに役立ちます。

図4に示した事前構築済みドメインは、クライアント アプリケーションのドメインや一般的なカテゴリ向けの、ともに動作する事前構築済みの一連の意図とエンティティです。事前構築済みドメインは事前トレーニング済みであり、LUISアプリに追加される準備が整っています。事前構築済みドメイン内の意図やエンティティは、アプリに追加された後、完全にカスタマイズ可能です。自分のユーザーに対して動作するようにするために、自分のシステムの発話でトレーニングできます。カスタマイズの出発点として事前構築済みドメイン全体を使うことも、単に事前構築済みドメインからいくつかの意図やエンティティを借りることもできます。

図4: LUISの事前構築済みドメイン

図4: LUISの事前構築済みドメイン

LUISは、本番環境で能動学習し改善方法のガイダンスを与える機能を、開発者に提供します。モデルがエンドポイントで入力を処理し始めると、開発者は「Improve app performance」(アプリのパフォーマンス改善) タブに進み、絶えずモデルを更新し改善することができます。LUISは、エンドポイント発話のすべてを調べ、自信のない発話を選択し、開発者にそれらの発話を提示します。あなたがそれらの発話にラベルを付け、トレーニングし、発行すると、LUISはそれらの発話をより正確に処理します。

LUISには、作成APILUIS.ai Webアプリという、モデルを構築する2つの方法があります。この2つの方法で、自分のLUISモデル定義を制御します。自分のモデルを構築するために、LUIS.ai、作成API、またはそれらの組み合わせを使えます。我々が提供する管理機能には、モデル、バージョン、協力者、外部API、テスト、トレーニングがあります。

顧客事例

LUISは、従来は実装するのがずっと難しかった、複数の会話型AIシナリオを実現します。会議アシスタントや人事ボットといった生産性ボット、顧客により良いサービスを提供するデジタル アシスタント、IoTアプリケーションなど、可能性は今や膨大です。自社のデジタル トランスフォーメーションを実現するための自動化されたAIソリューションとしてLUISを使っている我々のお客様を通して、我々の価値提案は証明されています。

UPSは、最近、Microsoft Bot Framework、LUIS上で動作するUPS Botと呼ばれるチャットボットでサービス レベルを改善する、トランスフォーメーションを起こすプロジェクトを完了しました。顧客は、出荷、料金、UPS店舗に関する必要な情報を得るために、テキスト ベースや音声ベースの会話でUPS Botと対話できます。UPSのアプリケーション アーキテクトであるKatie Duffyによれば、「会話プラットフォームが未来なので、我々がBot FrameworkとLUISを使ってすでに顧客にそれを提供していることは、素晴らしいことです。」

Dixons Carphoneは、Microsoft Servicesと協力して、顧客がテクノロジの世界を進んでいくのを助けるために設計された、Camiと呼ばれるチャットボットを開発しました。現在、Camiは、質問の形式でテキスト ベースの入力を受け取り、在庫状況を確認するために、製品の店舗内の棚ラベルの写真も受け取ります。このボットは、会話機能についてはLUISの、画像処理のためにはComputer Vision APIの自動化されたAI機能を使っています。Dixons Carphoneは、顧客に適切な製品をガイドするのを助けるために、オンライン買い物ガイド、店舗スタッフのトレーニング資料の情報で、Camiを開発しました。

ロックウェル オートメーションは、80か国以上の顧客、22,000の社員を持ち、2016年には59億ドルの年間収益を報告しました。ロックウェル オートメーションは、顧客にリアルタイムの運用に関する洞察を提供するために、Windows 10 IoT Enterprise OSを既存の製造設備やソフトウェアに統合し、オンプレミスのインフラストラクチャをMicrosoft Azure IoT Suiteに接続する決断をしました。ロックウェル オートメーションは、設備内のオートメーション コントローラーを別個のスタンドアロン コンピューターに接続する代わりに、業界を主導するLogix 5000 (TM) コントローラー エンジンの隣に組み込まれたWindows 10 IoT Enterprise OSで、ハイブリッド オートメーション コントローラーを設計しました。このソリューションは、別個のスタンドアロン コンピューターを不要にし、顧客のIT環境、Azure IoT Suite、(高度な分析のためのLUISを含む) Microsoft Cognitive Servicesに簡単に接続できます。

LUISは、AIアプリケーションを構築するためにAzure上で利用できる、幅広い機能群の中の1つです。図5に示したように、AIがどのようにしてあらゆる開発者を拡張し力を与えるかについて、さらに学んでください。また、図5に示したように、開発者の皆さんがAIテクノロジのすべてのスピードに追い付くのを助けるために、我々はAI Schoolも始めました。

図5:開発者がAIテクノロジを始めるためのリソース

図5:開発者がAIテクノロジを始めるためのリソース

今すぐ飛び込み、自分のアプリケーションに会話型AIを注入する方法を学んでください。


広告
コメント
  1. […] translation – S/N Ratio (by SATO Naoki (Neo)) > LUIS.AI: カスタム言語理解のための自動化された機械学習 (LUIS.AI: Automated Machine Learning for Custom Language Understanding)https://satonaoki.wordpress.com/2018/03/02/luis-ai-automated-machine-learning-for-custom-language-un… […]

  2. […] LUIS.AI: カスタム言語理解のための自動化された機械学習 (LUIS.AI: Automated Mach… […]

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中