チャットボットの構築に必要となる機械学習以外の内容を解説した資料です。この資料は Money Forward 社内で開かれた MLOps についての勉強会のために作成しました。
## Reference
Cathy Pearl 著, 川本 大功 監訳, 高橋 信夫 訳 デザイニング・ボイスユーザーインターフェース O’Reilly Japan 2018年 https://www.oreilly.co.jp/books/9784873119618/
対話型アプリケーション入門Asei Sugiyama
View Slide
要旨対話型アプリケーションの一般的な内容について共有しますCathy Pearl 著, 川本 大功 監訳, 高橋 信夫 訳 デザイニング・ボイスユーザーインターフェース O’Reilly Japan 2018年https://www.oreilly.co.jp/books/9784873119618/
TOC1. 対話アプリケーション概要 <-2. 対話アプリケーションに固有な課題3. 対話アプリケーションの運用
1. 対話アプリケーション概要対話の分類対話と自然言語処理アーキテクチャ
対話の分類: 目的志向何らかの目的を達成するための対話ユーザーが情報や資源を相手に渡すことで、相手に何かを行ってもらう業務や手続きはこれ新型コロナ対策パーソナルサポート@東京 https://www.metro.tokyo.lg.jp/tosei/koho/sns/line/index.html
対話の分類: 非目的志向目的の達成を意図しない対話相手と情報や感情を交換するエンターテイメントや日々の交流はこれエアフレンド https://airfriend.ai/ja/
実際の対話目的志向の対話でも、情報や感情の交換が行われるフォームの入力とは異なりキャラクター性を考える必要が出てくるDavid N. Blank-Edelman 編 山口 能迪 監訳 渡邉 了介 訳 SREの探求 O’Reilly Japan 2021年https://www.oreilly.co.jp/books/9784873119618/
対話と自然言語処理自然言語処理タスクの定義分類法自然言語タスク
自然言語処理タスクの定義目的志向の対話を前提とする目的志向の対話では、目的の達成に必要な情報の集合があり、それを対話によりインタラクティブに伝えていくこれは状態遷移機械と捉えられる: 1回の発話により、取得している情報の状態が遷移する
分類法 (1/2)一問一答型状態を持たず、1入力に対して1回の出力を行うフローチャート型状態遷移が定義され、入力に対してそれぞれの状態に応じた出力を行うCathy Pearl 著, 川本 大功 監訳, 高橋 信夫 訳 デザイニング・ボイスユーザーインターフェース O’Reilly Japan 2018年https://www.oreilly.co.jp/books/9784873119618/
分類法 (2/2)オープンエンド型事前定義された状態遷移を持たず、入力に対して連続的な対話を行う学術的な研究の対象ではあるものの、業務利用は困難Sowmya Vajjala, Bodhisattwa Majumder, Anuj Gupta, Harshit Surana 著 中山光樹 訳 実践 自然言語処理 O’Reilly Japan 2021年https://www.oreilly.co.jp/books/9784873119618/
自然言語タスクスロットの抽出: 対話を通じて取得したい情報を、入力文から抽出するインテントの分類: 入力文を分類し、遷移先の状態を決定するそして莫大な同義語・類義語の整備Sowmya Vajjala, Bodhisattwa Majumder, Anuj Gupta, Harshit Surana 著 中山 光樹 訳 実践 自然言語処理 O’Reilly Japan 2021年 https://www.oreilly.co.jp/books/9784873119618/
アーキテクチャ対話アプリケーションの利点と欠点アーキテクチャ考慮すべき点
対話アプリケーションの利点と欠点利点: ユーザーが慣れ親しんだインターフェイスを利用できる欠点: 目的に最適化されたインターフェイスと比較すると操作が煩雑になる
アーキテクチャUI: すでにあるアプリケーションやロボットAPI受付: リクエストを受け付けて即座に返答する返答: 適切なユーザーにメッセージを送付するバックエンド他のシステムや機械学習システムに問い合わせ
実例LINE の社内アプリの構築例典型的な Webアプリケーションと同じLINE社員を支えるLINE CAREの裏側(BOTを入れてみた話)https://engineering.linecorp.com/ja/blog/inside-line-care/
考慮すべき点基本的には API は状態を持つべきでない一方、対話には状態があるため状態の管理が必要状態をAPI の入出力に含める状態管理用のサービスを作る状態を持つことを許容する
TOC1. 対話アプリケーション概要2. 対話アプリケーションに固有な課題 <-3. 対話アプリケーションの運用
2. 対話アプリケーションに固有な課題発話の選択肢の多さ対話の状態の選択肢の多さキャラクター性
発話の選択肢の多さユーザーの発話を列挙することは到底不可能解決策: ユーザーに質問する考慮事項: 最初の一言目考慮事項: 話しかける or 話しかけられるのを待つ
ユーザーの発話を列挙することは到底不可能入力フォームとは異なり、入力値のバリデーションが不可能か著しく困難目的と合致する発言だけではなく、目的と一致しない発言も入力に含まれる
解決策: ユーザーに質問する基本的にユーザーに会話を先導させない話しかけられたらいきなり質問するCathy Pearl 著, 川本 大功 監訳, 高橋 信夫 訳 デザイニング・ボイスユーザーインターフェース O’Reilly Japan 2018年https://www.oreilly.co.jp/books/9784873119618/
考慮事項: 最初の一言目いきなり目的志向の会話をはじめると、ユーザーの体験が悪いまずは信頼関係の構築からはじめるCathy Pearl 著, 川本 大功 監訳, 高橋 信夫 訳 デザイニング・ボイスユーザーインターフェース O’Reilly Japan 2018年https://www.oreilly.co.jp/books/9784873119618/
考慮事項: 話しかける or 話しかけられるのを待つ基本はこちらから話しかけるユーザーに話しかけられるのを待つだけでは利用されないため、さまざまなプロモーションが必要話しかける場合はいつ話しかけるタイミングについて、サービスの体験と合わせた設計が必要Cathy Pearl 著, 川本 大功 監訳, 高橋 信夫 訳 デザイニング・ボイスユーザーインターフェースO’Reilly Japan 2018年 https://www.oreilly.co.jp/books/9784873119618/
対話の状態の選択肢の多さ対話の状態を列挙することは不可能解決策: エスカレーション先を用意し、なんでもやらない考慮事項: 過去の入力を利用する
対話の状態を列挙することは不可能クローズドな質問に対して、ユーザーが質問に必ず答えられるのならばまだ可能 (選択肢を提示し、その中のどれか聞けば良い)ユーザーがあやふやな情報しか持っていないケースでは選択肢から選ぶことすらもできず、次の予測が困難多様なユーザーの状態を列挙することは不可能
解決策: エスカレーション先を用意し、なんでもやらない別の情報源に誘導する別の窓口に誘導するバックグラウンドでエスカレーションし、人間にスイッチする新型コロナ対策パーソナルサポート@東京 https://www.metro.tokyo.lg.jp/tosei/koho/sns/line/index.html
考慮事項: 過去の入力を利用するClippy は何度消しても現れたユーザーが以前に入力したことを記録しておき、新たな問い合わせで利用するCathy Pearl 著, 川本 大功 監訳, 高橋 信夫 訳 デザイニング・ボイスユーザーインターフェース O’Reilly Japan 2018年https://www.oreilly.co.jp/books/9784873119618/
キャラクター性対話の設計には専門的なスキルが必要解決策: 何度もレビューする & 実際の反応をもとに改善する考慮事項: アイコン
対話の設計には専門的なスキルが必要普段我々は会話しているにもかかわらず、対話を書き始めると不自然なものになる手作りのアクセサリーを販売する場合に適したキャラクターと、家を販売する場合に適したキャラクターは違う
解決策: 何度もレビューする & 実際の反応をもとに改善するサポートしたい主な対話を書き起こして読み合わせる実際に使ってもらった反応をもとに改善するCathy Pearl 著, 川本 大功 監訳, 高橋 信夫 訳 デザイニング・ボイスユーザーインターフェース O’Reilly Japan 2018年https://www.oreilly.co.jp/books/9784873119618/
考慮事項: アイコン見た目はとても重要たとえ業務用アプリケーションであったとしても、数字で現れる (複数事例あり)Cathy Pearl 著, 川本 大功 監訳, 高橋 信夫 訳 デザイニング・ボイスユーザーインターフェース O’Reilly Japan 2018年https://www.oreilly.co.jp/books/9784873119618/
3. 対話アプリケーションの運用フィードバックの収集フィードバックの例運用
フィードバックの収集さまざまなフィードバックを集めることは重要ユーザーの入力に頼り切ってはいけない業務で入力するようにお願いしても3割、通常は数%収集するデータの例タスク完了率離脱率滞在時間アンケート
運用離脱率の高い箇所を特定して改善対話の調整辞書の調整冗談のように手間がかかる変えてみたらなんか違うとか「前のほうが良かった」ならまだしも「ずっとだめ」とか「ずっとだめ」の根拠を聞いたら「最近使ってない」とか「入力が面倒なのでボタンの選択式にしてくれ」という事実がわかったりする
まとめ対話アプリケーションはフローチャートにしたがって状態遷移を行い、情報をユーザーから収集するアプリケーションユーザー主導の対話は複雑さが増してしまうため、ユーザーに質問を行うのが良い見た目は大事、とても大事長時間の操作は対話アプリケーションでは煩雑になるため、専用のインターフェイスについても検討が必要