[レポート]機械学習で精度が改善し続ける&あらゆるソースからデータを入れられる検索新サービスAmazon Kendraの紹介 (AIM208-R1 #reinvent )

2019.12.10

re:Invent二日目のAndyのキーノートにて発表されたAmazon Kendra。タイトルに書きましたが、どういうサービスかというとざっくりとは、

  • 機械学習によってより自然な(対話的な)検索ができる、さらにユーザーのリアクションをもとに精度を改善し続ける
  • あらゆるデータソースからデータを持ってくることができる

という検索サービスです。

検索結果が全然自分の意図したものではないとか、いろんなところに情報が散在していてどこで検索をかけたら良いかわからないといったイライラは、皆さん日々少なからず感じていらっしゃるではないでしょうか。Kendraの導入によってこういったイライラが解決できる可能性があり非常にわくわくしております。(ただし、まだプレビュー版かつ対応言語が英語のみです。)

さて、re:Invent中に発表されたサービスは、発表後に関連セッションが追加されるのが常です。Kendraに関しても発表後に追加されていました。新サービス関連のセッションはすぐ満席になってしまうことが多いのですが、今回運良くKendraのセッションに潜り込めたのでレポートします。より深くKendraについて学びましょう。

セッションタイトル

AIM208-R1 - [REPEAT 1] Announcing Amazon Kendra: Transform the way you search and interact with enterprise data using AI

セッション概要

欲しい回答が、様々な企業情報システムの中に埋もれているかもしれない場合、どうすれば最も正確で具体的な回答を引き出せるでしょうか?このセッションはあなたにAmazon Kendra、「法人向けクレジットカードの現金報酬はいくらですか?」といった質問に対するわかりやすい回答を提供するエンタープライズ検索ソリューションについてお伝えします。どのようにKendraがチームを超えた知識共有や販売およびカスタマーサービスの強化を促進するか、またエンドカスタマーが欲しい情報をより簡単に見つけられるようにするかを学びましょう。

セッション登録サイト記載の概要を和訳

スピーカー

  • Jean-Pierre Dodel - Sr. Product Manager, Amazon Web Services
  • Vikram Anbazhagan - Director, Product Management, AI, Amazon Web Services
  • Shelley Kalms - Chief Digital Officer, Woodside Energy Ltd

目次

  1. エンタープライズ検索 - 今でもまだ難しい
  2. エンタープライズ検索を再考する
  3. どのように動作するのか
  4. エクスペリエンス
  5. ユースケース
  6. 顧客リファレンス
  7. Workgrid - Liberty Mutual の事例

内容

1. エンタープライズ検索 - 今でもまだ難しい

マッキンゼーの研究によると、従業員はその労働時間の20%を情報を探すのに費やしています。別のIDCの調査では、仕事をするにあたり必要な情報を44%しか見つけることができていないそうです。

どうしてこうなってしまうのでしょうか。そこには二つの難しい部分があります。不正確さと複雑さです。不正確さの理由は、80%の企業データが非構造化(データ)だからです。そして、ソリューションの多くがキーワード検索だからです。単にキーワードを探すので、たくさんの文書がヒットしても、多くは関係のないものかもしれません。

アプリの設定の複雑さもあります。データはファイルシステムからSharePointに散在しています。DropBoxの中といった別の場所にもあるかもしれませんし、DBの中にもあるかもしれません。そして一度設定すると、広範囲にわたる手動メンテナンスが必要になります。

これらの問題は企業に以下の影響を与えます。

従業員の生産性低下

実業務よりもいつも何かを探すことに時間を費やしているからです。

リスクと責任の増大

想像してみてください。あなたはあるSOP(Standard Operating Procedures、標準作業手順書)を探してます。が、見つけることができませんでした。あなたは記憶を頼りに作業しようとし、重要なステップのひとつを抜かしてしまいました。そういったことが起こり得ます。

作業重複

ある従業員がある数字(分析結果)を探しています。別の誰かが既にその分析を行なっていました。が、それを(探している従業員は)見つけることができません。そのため、再び分析を行なってしまいます。

ネガティブな顧客サポート体験

顧客の質問にすぐに回答することが難しくなってくるからです。

このように良い検索ソリューションをもっていない結果として、従業員一人当たり年間5,700ドル(日本円で約62万円)の損失が発生していると言われています。二万人の従業員を抱える企業であれば年間100万ドル(日本円で約1億円)以上の損失になります。

2. エンタープライズ検索を再考する

それでは、エンタープライズ検索をどのように再考するのでしょうか。

自然言語による問合わせ

一つは、自然言語による問合わせをサポートすることです。異なるキーワードをつなぎ合わせる厄介なキーワード検索では無くです。(自然言語による問合わせでは)人に質問するときのように質問を投げかければ良いのです。

  • ITサポートデスクはどこですか? → 1階です。
  • 産休期間はどのくらいですか? → 14週です。
  • VPNの設定方法は? → 最初のステップは…

もちろんキーワード検索も可能です。

NLUとML Core

Kendraは機械学習で作成されています。質問を理解し正しい答えを返します。

ドメイン専門知識

皆さんご存知のように、機械学習ではたくさんのデータをモデルに学習させればさせるほど、より良い回答として私たちが探しているものにデータはより近くなります。ケンドラは専門分野の複雑な言語も理解できるよう最適化されています。本日時点で以下16の専門分野に対応しています。

  • IT
  • 金融
  • 保険
  • 製薬
  • 工業
  • エネルギー(産業)
  • 法律
  • メディア、エンターテイメント
  • 観光/ホスピタリティ
  • 医療
  • HR(人事)
  • 報道
  • 電気通信
  • マイニング(鉱業という意味なのか、データマイニングのことなのかどっちだろう…おそらく鉱業)
  • 飲食業
  • 自動車

継続的な改良

2種類のデータをもとに継続的な改良が行われます。一つはクリックスルーパターンです。顧客がどのように検索結果を見ているかということです。彼らがどのように検索結果を捉え、どの回答を正解とみなすのか、ということです。このデータを自動的に取得し、モデルを再学習させます。回答の横に配置された「Like」「Dislike」ボタンを使うことで、顧客が明示的なフィードバックを行なうこともできます。これらもモデルの再学習に使われます。明示的な機械学習を行う必要はありません。 これらのモデルは使用パターンから学習し、時間とともに改善されています。

検索結果を調整することも可能です。特定の信頼できるデータソースからのデータを優先付けしたり、最新の文書を優先づけることができます。特定の著者や部門ごとにも可能です。

対応済みコネクタ

次の部分はコネクタであり、企業にとって非常に重要です。ローンチ時点では三つのコネクタ、S3、SharePoint Online、JDBCが利用可能です。今後も以下にあるようにどんどん追加していく予定です。

そして、私たちがご提供するものと他との違いはネイティブに統合されているかどうかです。初回にコネクタタイプをクリックして、そのコネクタの接続情報と関連する設定を行なう必要があります。一度設定してしまえば、6時間ごととか2時間ごととかどんな周期でも実行可能です。データソースからデータを取ってきてインデックス化します。

テストとデプロイ

Kendraのコンソール上でクエリを投げて結果をテストすることができます。また前述の通り、チューニングもできます。オプションをクリックするだけで、アップロードしたメタデータに基づいて調整できるすべてのフィールドが表示され、答えを調整できます。

結果に満足すれば、デプロイです。AWSはサンプルコードを提供するので、それをすべてそのまま利用したり、また必要な部分だけ取り出して使うことができます。

セキュリティ

契約書のようなもっとも機密性の高い文書が保存されるので、エンタープライズストレージのセキュリティは重要です。通信時にはHTTPS/TLSで暗号化します。保管時にはKMS、もしくはお客様自身で管理する鍵でも暗号化できます。

3. どのように動作するのか

図の上部がKendraとエンドユーザーのインタラクションを表した部分です。Webページもしくは検索ボックス経由でクエリを送ることができます。チャットアプリやチャットBotでやり取りすることもできます。Kendraは広範囲のアプリケーションをサポートします。API経由で使うこともできますし、コンソールで提供されるUIを使うこともできます。

また、円形部分でも、さまざまな種類の回答がサポートできることがわかります。例えば、FAQの中に答えがある場合は、最適な答えを見つけてユーザーに提供できるようにする特別なモデルを用意しています。しかし答えが非構造化文書の中に埋もれている場合は、別の種類のモデルを適用可能です。そのモデルは大量の文書群の中から欲しい単語、フレーズまたは文書を返す至難の業を実現することに特化しています、つまり文書の読解を行ないます。コンテキストを提供する3番目のモデルもあります。これはドキュメントの結果であるため、クエリについて関連情報の収集を続けたい場合により広範な情報を取得できます。これらがKendraの検索エクスペリエンスである三つの主要なモデルです。

図の下部が、データが広範囲のデータソースから来ていることを表しています。Webサイト上のファイルシステム、Share Pointなどです。それらの内容は検索可能にするため中心に集約されます。一度検索可能になれば、二つのコアコンポーネントが継続的に改良を加えます。インクリメンタル学習に焦点を当てた機械学習のコンポーネントがあり、時間の経過とともに継続的かつ透過的に精度を改善します。特定の業務領域に対応するため、顧客がチューニングできることも必要です。

4. エクスペリエンス

Kendraの始め方についてお伝えしましょう。

ステップ1

最初のステップはインデックスの作成です。インデックスはデータソースを追加してKendraに検索できるようにする場所のことを指します。

インデックス名、詳細、またログイン情報、基本的なAWSクレデンシャル、暗号化キーの設定を行います。

ステップ2

第二ステップはデータソースの追加です。SharePointファイルシステム、Webサイト、およびコネクタが提供するものであれば何でもかまいませんが、APIを使用してそこにデータを追加することもできます。

現在はS3、Share Point Online、RDSが選べます。使いたいデータソースを選んで「Add Conncetor」をクリックするだけです。データのインデックスを作成し、すぐに検索を開始できるようになります。

オプションでFAQを追加することもできます。質問と回答が書かれたCSVファイルをS3にアップしてその場所を指定します。

ステップ3

第三ステップは、コンソールにて検索機能が使えるようになるのでそこでテストすることです。自然言語問い合わせ、キーワード問い合わせどちらも可能です。その場で調整することもできます。

「Where is the i」とタイピングするだけでオートコンプリート機能が動いていることがわかります。これはGA時点で提供される予定の機能です。タイピングを早めるのに役立つだけでなく、他の人がどんなことを入力しているのか知るのにも役立ちます。

タイプ後の画面です。
※ KumoというのはAmazonのオフィスが入っているビル名のようです。

この緑で囲った部分、これを私たちは「Kendraが提案した回答」と呼んでいます。 検索を行い、文書の中で最も信頼できるセクションから実際の回答を掘り下げたものです。インデックスを作成した約300万のドキュメントがあり、ドキュメント内の文章からその単語または単語のシーケンスを引き出しています。最も有能な回答を上部に表示し、クエリから回答までの時間ができるだけ短くなるように目立つようにし、もとの(検索する前の)作業にすぐ戻ることができます。ヒットした文書へのリンクも設置しています。

関連するFAQの結果も表示します。(なければこのボックスごと表示されません)

最下部には関連ドキュメントへのリンクが並びます。

今度は自然言語問い合わせではなく、キーワード検索の場合を見てみましょう。

先ほどの自然言語問い合わせの場合と同じく「Kendraが提案した回答」欄、FAQ欄、関連ドキュメント欄が表示されます。

左カラムに表示されている項目でカテゴリほか、各メタデータで絞り込みも可能です。

準備ができたら、APIを介してもしくはサンプルコードを使ってすぐにあなたのアプリに検索機能をデプロイすることができます。

関連性の調整

特定のデータソース内のデータの重要度を高く設定することが可能です。

閲覧数や「いいね」の数の重要度を高くすることも可能。

最新の文書ほど重要度が高くなるような設定もできます。

5. ユースケース

内部検索

運用、カスタマーサポート、R&Dといったビジネス機能のサポート

外部ソリューション

顧客が必要な情報を見つける手助けをする

CRM、コンテンツマネジメント、電子証拠開示制度

ISV(独立系ソフトウェアの開発・販売会社)はKendraを使ってより賢くてデータ・ドリブンなアプリケーションを作成できる

FAQチャットボット

ボットの訓練やプログラミングなしでFAQを作成できる。アドホックなクエリや非構造化データから自動的に回答を導き出すことも可能

6. 顧客リファレンス

Sage

  • イギリスに拠点を置く経営管理ソフトウェア会社。会計給与財務などの分野をカバーしている
  • カスタマーサポートにKendraを利用
  • 300万人を超える世界規模の顧客からの質問に適切な回答を返せるようになった

3M

  • 接着剤などを提供する多国籍化学・電気素材メーカー
  • Kendraを使用することで、科学者がイノベーションを加速し、より効果的にコラボレーションし、3M顧客向けのユニークな製品の継続的な流れを加速するために必要な情報を見つけるのを支援

Woodside

  • オーストラリアにおける液化天然ガスのパイオニア
  • プロジェクトのドキュメント群の中から「Plutoのパイプラインの長さは?」といった質問に対し具体的な答えを引き出すのにKendraを活用(PlutoはWoodsideが所有しているガス田の名前)

7. Workgrid - Liberty Mutual の事例

  • WorkgridはLiberty Mutualの完全子会社
  • 従業員の生産性を向上させる事業を展開
  • (Workgrid社の方が事例紹介されていましたが、長いので割愛します。詳細をお知りになりたい方はコメントください)

感想

やはり非常に面白そうなサービスだなと感じました。弊社内の社員向けの各種情報も各所に散在しており検索が難しくなっている現状があります。Kendraで解決できそうなので、日本語対応が待ち遠しいです。また、この弊社ブログDevelopers.IOにも導入できれば、読者の皆さんがより各記事をご活用できるようになるのではと思います。(なにせ2万記事ありますので…)