watsonqa応用編~bluemixとwatson engagement advisor(wea)連携~
TRANSCRIPT
自己紹介
• 名前:原田 一樹
• 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: 資格準備中(?)
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
”教育”の観点でサービスを分類
言語識別サービス
言語翻訳サービス
音声のテキスト化
テキストの音声化
顧客モデル化サービス 関係性の抽出サービス
画像認識サービス
概念拡張サービス トレードオフ分析
概念拡張サービス 質問応答サービス
①特別な教育不要(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)」 を利用する必要がある。
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
3
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
テキスト
音声
①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を活用したら どういったことを実現できるか一度想像してみてください。
BMXUGへの登録もお願いします
Bluemix UserGroup(BMXUG) facebookページ http://ibm.biz/bmxug-facebook