WatsonQA応用編~BluemixとWatson Engagement Advisor(WEA)連携~

39
WatsonQA応用編 ~独自Corpusを作成し Bluemixと連携させる方法~

Transcript of WatsonQA応用編~BluemixとWatson Engagement Advisor(WEA)連携~

WatsonQA応用編 ~独自Corpusを作成し

Bluemixと連携させる方法~

自己紹介

• 名前:原田 一樹

• Bluemix UserGroup(BMXUG)のCommunity Manager

• 仕事:サービス企画/クラウド技術実証/アジャイル開発

• 好きなBluemixサービス:Watson Question and Answer

• 保有スキル o AWS: Solutions Architect - Professional

o AWS: SysOps / Developer - Associate

o Azure: Implementing Microsoft Azure Infrastructure Solutions

o Bluemix: 資格準備中(?)

エバンジェリスト(?)

kintone×Bluemix対談、エバンジェリストがPaaSの可能性を語る!

http://ascii.jp/elem/000/001/039/1039691/

Bluemixで開発したアプリ(1/2) 〜Bluemixハッカソン最優秀賞作品〜

• IAI SLASH 〜すれ違い様に「居合い」でクーポン発行アプリ〜

Bluemixで開発したアプリ(2/2) 〜Bluemix Challenge 2015応募作品〜

• またたび 〜対話型旅行プラン提案bot〜

Question and Answer

Auto-Scaling

Monitoring and Analytics

SendGrid

Virtual machine

負荷テスト

Azure Blob Storage

Azure Machine Learning

観光 データ

ユーザー データ

ヒアリング データ

評価 データ

観光地の 画像データを

Public化

Object Storage

メール配信

Watson QA

性能監視

スケー リング

ユーザ管理/チャット管理/観光データ管理

チャット 履歴データ

MongoLab

予測評価値 を付与

CSVファイルの転送

ユーザ評価データ CSVエクスポート/

インポート

Travel Corpus

SDK Node.js

乗り換え API Git/Build&Deploy/

Track & Plan

WatsonQA基礎編

http://www.slideshare.net/KazukiHarada/5ibm-watson

WatsonQA基礎編

http://www.slideshare.net/KazukiHarada/5ibm-watson

3分でおさらいします。

IBM Watsonとは

IBM Watson – Bluemix上にないもの

※連携は可能

Bluemix上のWatsonサービス

• 17種類のサービスが公開 (2015年9月)

• “API”で操作が可能

”教育”の観点でサービスを分類

言語識別サービス

言語翻訳サービス

音声のテキスト化

テキストの音声化

顧客モデル化サービス 関係性の抽出サービス

画像認識サービス

概念拡張サービス トレードオフ分析

概念拡張サービス 質問応答サービス

①特別な教育不要(IBMが教育する)

②インプットの与え方に工夫が必要

AlchemyAPI 社の人工知能

”教育”の観点でサービスを分類

言語識別サービス

言語翻訳サービス

音声のテキスト化

テキストの音声化

顧客モデル化サービス 関係性の抽出サービス

画像認識サービス

概念拡張サービス トレードオフ分析

概念拡張サービス 質問応答サービス

①特別な教育不要(IBMが教育する)

②インプットの与え方に工夫が必要

AlchemyAPI 社の人工知能

本セッションではこちらをメインに取り上げます。

Watson Question and Answer

Question and Answer (質問応答サービス)

IBM定義済のCorpus (Travel/Healthcare)

Question Answer

IBMが定義したCorpus(ナレッジベース)に対して、 簡単に質問応答を試すことができるサービス

Watson Question and Answer

Question and Answer (質問応答サービス)

IBM定義済のCorpus (Travel/Healthcare)

Question Answer

ユーザ独自のCorpus (Watson Engagement Advisorで定義)

Question Answer

独自の質問応答を実現するには、Watson Engagement Advisorを利用して独自Corpusを作成する必要あり

重要

WatsonQA基礎編まとめ

• 「Watson」と名のつくものは数多くあるので混同しないように注意

• IBM WatsonとBluemix上のWatsonサービスは別モノで、BluemixのWatsonサービスは基本的にIBMが定義済の環境をAPIから利用するためのものである。

• Watsonの代表的な機能、「質問応答サービス」をBluemixで試すことが可能だが、IBMが定義した「Travel」と「Healrhcare」しかないため、ユーザー独自の質問応答はBluemix単独では実装することはできない。

• 独自の質問応答を実現するには、IBM Watsonの「Watson Engagement Advisor(WEA)」 を利用する必要がある。

WatsonQA応用編 ~独自Corpusを作成し

Bluemixと連携させる方法~

Watson Engagement Advisor(WEA)の入手方法

①ライセンスを購入する

②US Watson Ecosystemにアイデアを伝えて検証環境を得る

Watson Engagement Advisor(WEA)の入手方法

①ライセンスを購入する

②US Watson Ecosystemにアイデアを伝えて検証環境を得る

③10月1日から正式に開始する日本版Watsonエコシステムを利用する

※詳細は2015年10月の発表に期待

BluemixとIBM Watsonの連携

ランタイム Watsonサービス

API

< Input >

< Output >

テキスト

画像データ

音声データ

言語分類

翻訳結果

画像解析

性格分析

質問応答

音声化

Watson Experience Manager

Corpus

QA API

Ground Truth

QA Pipeline

Dialog Service

Watson Engagement Advisor

< ユーザー個別定義環境 >

< IBM定義環境 >

Travel Corpus Healthcare

Corpus

IBM Watson

IBM定義Corpus

各種処理エンジン

個別 連携

連携

入出力データ

Watson Engagement Advisorとは

Watson Experience Manager

Corpus

QA API

Ground Truth

QA Pipeline

Dialog Service

Watson Engagement Advisor

Watson Experience Manager

Corpus管理やトレーニング、テストを実施するためのWebアプリケーション

QA API アプリケーションからWEAを利用するためのWeb API

QA Pipeline 自然言語による質問応答のための一連の処理ステップ

Dialog Service 対話型コミュニケーションを提供する機能

Corpus 質問に対する回答を探索するためのナレッジベース

Ground Truth 質問を正しく解釈し回答できるようにトレーニングするための質問・回答セットの集合

Bluemix×Watson連携までの流れ

利用Corpusの 切り替え

Bluemixアプリケーション開発

Watson APIテスト

Watson Engagement Advisor 質問の登録・回答用コンテンツ追加・

Corpusのデプロイ

質問の収集・ 回答の改善

1 2

5 4

• まず、Watsonを使ってどういうアプリをどのような目的で作るのかを決める

• Bluemix上で利用可能なサービスについて調査、フィージビリティテスト

• BluemixとWatson Question and Answerを利用して、アプリ開発・APIテスト

• WEAで独自Corpusを作成し必要なコンテンツ及び質問を登録

• Corpusを切り替えて動作確認

• 実リリース後は実際の質問内容と応答内容を収集し、継続的に改善する

Bluemix×Watsonアプリ開発を解説! ~観光地の歴史に関する質問応答~

回答の 音声化

Travel Corpus

(IBM定義)

観光地歴史 Corpus

(独自定義)

QA API

Watson Experience Manager

テキスト

音声 Node.js

Question and Answer

ユーザー

Corpus管理者

質問

コンテンツ

Speech to Text

Text to Speech

テキスト

音声

DEMO

①Bluemixアプリ開発

• Bluemix ConsoleからNode.jsのランタイムから任意の名前のアプリを作成

• 必要な連携サービスを追加

oQuestion and Answer

o Speech to Text

o Text to Speech

• Git機能からアプリケーションをデプロイできるように[Gitの追加]を選択

• 表示されたGit URLを利用してアプリケーションのコードをGit pushする

■ベースに利用したアプリケーションコード(Github) https://github.com/triceam/IBMWatson-QA-Speech

②Watson APIテスト

• [package.json]に必要なNode.jsモジュールを記述する。(Watson関連のモジュールは「watson-developer-cloud」を指定する)

• Question and Answerで利用するデータセットを指定する

(Travel or Healthcare)

• 必要な環境をセットアップ後にアプリを起動し、質問応答を実行

• 音声入出力、質問応答自体は実装できていることを確認

• Question and Answerで利用するCorpusでは観光地の歴史については未学習のため回答できない。

③WEA:Corpusの作成

質問の収集

コンテンツの収集・登録

質問の登録・レビュー

Corpusの作成・ テスト環境へデプロイ

回答のテスト・結果分析

本番環境へデプロイ

実際に使われる質問をできるだけ多く集める

質問に回答するためのコンテンツを収集する 文章構造の分かるHTMLかWordファイルを推奨

同じ回答となる類似の質問をグルーピング可 質問を登録し質問に対する回答内容をレビュー

Corpusを作成し、デプロイ実施

Test機能を使って、質問応答をテスト

本番リリースする場合はIBMサポートに依頼 アプリからの接続テストはテスト環境で可能

③WEA:Corpusの作成

質問の収集

コンテンツの収集・登録

質問の登録・レビュー

Corpusの作成・ テスト環境へデプロイ

回答のテスト・結果分析

本番環境へデプロイ

回答できない質問や 回答精度が低い場合に、質問の追加やコンテンツの追加登録・修正を 繰り返し行い改善する

③WEA:Corpusの作成

• WEAに用意されているCorpus管理用ポータル「Watson Experience Manager」にアクセス

• Corpus管理、トレーニング、テストが可能

• 観光地の歴史を回答させるためにEnglish Wikipediaで観光地を検索し、htmlファイルを取得する

(ここでは清水寺にファイルを取得)

• Wikipediaから取得したhtmlファイルを回答コンテンツとしてCorpusに登録する

• 回答コンテンツを利用する質問を登録し、回答と紐づけを行う

④Corpusの切り替え

• WEAのQA APIを利用するため、Credentialsをアプリケーションに認識させる

• Bluemixはユーザー定義の環境変数を設定できるためこちらを利用する

• WEAのQAAPIを利用する場合は、BluemixのQuestion and Answerは不要でアプリから直接APIコールするように変更を加える

• 切り替え完了後、アプリケーションを起動し、動作を確認する。

• 利用Corpusが変更されたことで、観光地の歴史を応答することが可能に。

⑤質問収集・回答改善

• アプリケーションを利用したユーザーから実際に質問応答した内容を記録することで、想定していなかった質問を把握し、回答できるように質問と回答コンテンツを日々追加していく

• WEAには「Run Test」という質問と回答のランダムなサブセットを用いて質問応答の精度を検証する機能がある。 o 回答候補の上位100個の中に正解がある割合

o 回答の第1候補が正解である割合

本番運用しながら質問と回答用コンテンツを日々追加し、

継続的に精度検証をすることで回答精度を高めていく

【再掲】 BluemixとIBM Watsonの連携

ランタイム Watsonサービス

API

< Input >

< Output >

テキスト

画像データ

音声データ

言語分類

翻訳結果

画像解析

性格分析

質問応答

音声化

Watson Experience Manager

Corpus

QA API

Ground Truth

QA Pipeline

Dialog Service

Watson Engagement Advisor

< ユーザー個別定義環境 >

< IBM定義環境 >

Travel Corpus Healthcare

Corpus

IBM Watson

IBM定義Corpus

各種処理エンジン

個別 連携

連携

入出力データ

画像解析:Visual Recognition Visual

Recognition

• 画像に含まれる情報を「label_name」 と 「label_score」として出力

• 条件に「Classifier」を与えることで、事前に出力結果を絞ることが可能

http://visual-recognition-demo.mybluemix.net/

画像解析:AlchemyAPI(1/2) ~Image Tagging/Visual Search~ AlchemyAPI

http://www.alchemyapi.com/products/demo/alchemyvision

• Image Taggingは、Visual Recfnitionと同様に、「Tag」と「Score」を付与

• Visual Searchは、インプット画像の類似画像を検索することが可能

AlchemyAPI

画像解析:AlchemyAPI(2/2) ~Face Tagging~

http://www.alchemyapi.com/products/demo/face-detection

• Face Taggingは、有名人を特定し、「氏名」、「職業」を「Tag」として付与

• Face Taggingは、有名人以外の場合、「年齢」、「性別」を「Tag」として付与

性格分析:Personality Insights Personality

Insights

https://watson-pi-demo.mybluemix.net/

• SNSなどで個人が生成した文章データから性格を分析

• 細分化されたカテゴリー毎にスコアリング結果が出力される

WatsonQA応用編まとめ

• Watson Engagement Advisorを使うことで独自の質問応答を実装することができる

• BluemixとWatsonの連携は容易に可能であり、Bluemixの様々なサービスを組み合わせることでWatson活用アプリケーションの応用幅は大きな広がりを見せる

• BluemixとWatsonによって敷居が高かったコグニティブテクノロジーが簡単に試行錯誤できるようになった。

自社の環境でBluemixとWatsonを活用したら どういったことを実現できるか一度想像してみてください。

「クラウド」×「アジャイル」でアイデア創出からアプリ開発・改善まで支援

CTCブースにも遊びにきてください

BMXUGへの登録もお願いします

Bluemix UserGroup(BMXUG) facebookページ http://ibm.biz/bmxug-facebook