(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-12
(45)【発行日】2023-12-20
(54)【発明の名称】情報処理システム、情報処理方法および情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20231213BHJP
【FI】
G06N20/00 130
(21)【出願番号】P 2022108497
(22)【出願日】2022-07-05
(62)【分割の表示】P 2020213626の分割
【原出願日】2020-12-23
【審査請求日】2022-08-26
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】グェン テイミン
(72)【発明者】
【氏名】阿部 憲幸
【審査官】円子 英紀
(56)【参考文献】
【文献】特開2015-001888(JP,A)
【文献】米国特許第10614373(US,B1)
【文献】特開2019-212073(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 18/00-18/40
(57)【特許請求の範囲】
【請求項1】
入力データと当該入力データに対する教師データであるラベルとを含む学習データのセットにより機械学習モデルを学習させる学習サーバと、前記学習された機械学習モデルにユーザから入力される入力データを入力し、当該機械学習モデルにより出力されるラベルに基づいて応答データを出力する応答サーバとを含む情報処理システムにおいて、
前記学習データのセットを取得する初期データ取得手段と、
前記学習データのセットにより前記機械学習モデルを学習させる学習手段と、
前記学習データのセットにより学習された前記機械学習モデルに対してテストデータを入力し、前記テストデータが入力された機械学習モデルの出力に基づいて前記機械学習モデルの性能が所定の条件を満たしているか評価する評価手段と、
前記機械学習モデルの性能が前記所定の条件を満たしていると評価された場合に、前記学習された機械学習モデルを前記応答サーバに展開する展開手段と、
前記機械学習モデルの性能が前記所定の条件を満たしていないと評価された場合に、前記学習データのセットが検出条件を満たしているか判定する検出手段と、
前記検出条件を満たしていると判定された場合に、前記学習データのセットを更新するデータ更新手段と、
前記更新された学習データのセットにより前記機械学習モデルを再学習させる再学習手段と、
を含み、
前記評価手段の評価に応じて前記データ更新手段、前記再学習手段、前記評価手段の処理を繰り返
し、
前記検出手段は、正解率が閾値より低いラベルに属する入力データである対象入力データと当該ラベルに属する他の入力データとの類似性を示す第1指標と、当該ラベルと異なるラベルに属する入力データと前記対象入力データとの類似性を示す第2指標とを算出し、
前記データ更新手段は、前記第2指標が、前記対象入力データと前記対象入力データが属するラベルと異なるラベルに属する入力データのいずれかと類似することを示し、前記第1指標が前記対象入力データが属するラベルに属する他の入力データとの類似度が基準状態より低いことを示す場合に、前記対象入力データを前記学習データのセットから削除する、
情報処理システム。
【請求項2】
入力データと当該入力データに対する教師データであるラベルとを含む学習データのセットにより機械学習モデルを学習させる学習サーバと、前記学習された機械学習モデルにユーザから入力される入力データを入力し、当該機械学習モデルにより出力されるラベルに基づいて応答データを出力する応答サーバとを含む情報処理システムにおいて、
前記学習データのセットを取得する初期データ取得手段と、
前記学習データのセットにより前記機械学習モデルを学習させる学習手段と、
前記学習データのセットにより学習された前記機械学習モデルに対してテストデータを入力し、前記テストデータが入力された機械学習モデルの出力に基づいて前記機械学習モデルの性能が所定の条件を満たしているか評価する評価手段と、
前記機械学習モデルの性能が前記所定の条件を満たしていると評価された場合に、前記学習された機械学習モデルを前記応答サーバに展開する展開手段と、
前記機械学習モデルの性能が前記所定の条件を満たしていないと評価された場合に、前記学習データのセットが検出条件を満たしているか判定する検出手段と、
前記検出条件を満たしていると判定された場合に、前記学習データのセットを更新するデータ更新手段と、
前記更新された学習データのセットにより前記機械学習モデルを再学習させる再学習手段と、
を含み、
前記評価手段の評価に応じて前記データ更新手段、前記再学習手段、前記評価手段の処理を繰り返し、
前記検出手段は、前記ユーザから入力され前記機械学習モデルに入力される入力データのうち、前記機械学習モデルによりラベルが決定されなかった入力データの件数が閾値を超えるか否か判定し、
前記データ更新手段は、前記ラベルが決定されなかった入力データをクラスタに分類し、分類されたクラスタに基づいてラベル候補を管理者に提案し、
前記データ更新手段は、前記管理者が前記ラベル候補に基づいて入力するラベルおよび入力データのセットを前記学習データに追加する、
情報処理システム。
【請求項3】
入力データと当該入力データに対する教師データであるラベルとを含む学習データのセットにより機械学習モデルを学習させる学習サーバと、前記学習された機械学習モデルにユーザから入力される入力データを入力し、当該機械学習モデルにより出力されるラベルに基づいて応答データを出力する応答サーバとを含む情報処理システムにおいて、
前記学習データのセットを取得する初期データ取得手段と、
前記学習データのセットにより前記機械学習モデルを学習させる学習手段と、
前記学習データのセットにより学習された前記機械学習モデルに対してテストデータを入力し、前記テストデータが入力された機械学習モデルの出力に基づいて前記機械学習モデルの性能が所定の条件を満たしているか評価する評価手段と、
前記機械学習モデルの性能が前記所定の条件を満たしていると評価された場合に、前記学習された機械学習モデルを前記応答サーバに展開する展開手段と、
前記機械学習モデルの性能が前記所定の条件を満たしていないと評価された場合に、前記学習データのセットが検出条件を満たしているか判定する検出手段と、
前記検出条件を満たしていると判定された場合に、前記学習データのセットを更新するデータ更新手段と、
前記更新された学習データのセットにより前記機械学習モデルを再学習させる再学習手段と、
前記ユーザから入力データが入力された場合に、前記入力データをログストレージに記憶させるログ手段
と、
を含み、
前記評価手段の評価に応じて前記データ更新手段、前記再学習手段、前記評価手段の処理を繰り返し、
前記検出手段は、前記ユーザから入力され前記機械学習モデルに入力される入力データのうち、前記機械学習モデルにより決定されたラベルに対して当該ユーザが適切でないと回答した入力データの件数に基づいて前記学習データに追加する対象となるラベルを決定し、
前記データ更新手段は、前記ログストレージに格納された入力データから、前記対象となるラベルに対応する入力データを抽出し、前記学習データのセットに前記抽出された入力データと当該ラベルとを含む学習データを追加する、
情報処理システム。
【請求項4】
初期データ取得手段が、入力データと当該入力データに対する教師データであり応答データの作成に用いられるラベルとを含む学習データのセットを取得するステップと、
学習手段が、前記学習データのセットにより機械学習モデルを学習させるステップと、
評価手段が、前記学習データのセットにより学習された前記機械学習モデルに対してテストデータを入力し、前記テストデータが入力された機械学習モデルの出力に基づいて前記機械学習モデルの性能が所定の条件を満たしているか評価するステップと、
展開手段が、前記機械学習モデルの性能が前記所定の条件を満たしていると評価された場合に、前記学習された機械学習モデルにユーザから入力される入力データを入力し、当該機械学習モデルにより出力されるラベルに基づいて応答データを出力する応答サーバに、前記性能が評価された機械学習モデルを展開するステップと、
検出手段が、前記機械学習モデルの性能が前記所定の条件を満たしていないと評価された場合に、前記学習データのセットが検出条件を満たしているか判定するステップと、
データ更新手段が、前記検出条件を満たしていると判定された場合に、前記学習データのセットを更新するステップと、
再学習手段が、前記更新された学習データのセットにより前記機械学習モデルを再学習させるステップと、
を含み、
前記評価に応じて前記学習データのセットを更新するステップと、前記機械学習モデルを再学習させるステップと、前記機械学習モデルの性能を評価するステップとを繰り返
し、
前記判定するステップでは、正解率が閾値より低いラベルに属する入力データである対象入力データと当該ラベルに属する他の入力データとの類似性を示す第1指標と、当該ラベルと異なるラベルに属する入力データと前記対象入力データとの類似性を示す第2指標とを算出し、
前記更新するステップでは、前記第2指標が、前記対象入力データと前記対象入力データが属するラベルと異なるラベルに属する入力データのいずれかと類似することを示し、前記第1指標が前記対象入力データが属するラベルに属する他の入力データとの類似度が基準状態より低いことを示す場合に、前記対象入力データを前記学習データのセットから削除する、
情報処理方法。
【請求項5】
初期データ取得手段が、入力データと当該入力データに対する教師データであり応答データの作成に用いられるラベルとを含む学習データのセットを取得するステップと、
学習手段が、前記学習データのセットにより機械学習モデルを学習させるステップと、
評価手段が、前記学習データのセットにより学習された前記機械学習モデルに対してテストデータを入力し、前記テストデータが入力された機械学習モデルの出力に基づいて前記機械学習モデルの性能が所定の条件を満たしているか評価するステップと、
展開手段が、前記機械学習モデルの性能が前記所定の条件を満たしていると評価された場合に、前記学習された機械学習モデルにユーザから入力される入力データを入力し、当該機械学習モデルにより出力されるラベルに基づいて応答データを出力する応答サーバに、前記性能が評価された機械学習モデルを展開するステップと、
検出手段が、前記機械学習モデルの性能が前記所定の条件を満たしていないと評価された場合に、前記学習データのセットが検出条件を満たしているか判定するステップと、
データ更新手段が、前記検出条件を満たしていると判定された場合に、前記学習データのセットを更新するステップと、
再学習手段が、前記更新された学習データのセットにより前記機械学習モデルを再学習させるステップと、
を含み、
前記評価に応じて前記学習データのセットを更新するステップと、前記機械学習モデルを再学習させるステップと、前記機械学習モデルの性能を評価するステップとを繰り返し、
前記判定するステップでは、前記ユーザから入力され前記機械学習モデルに入力される入力データのうち、前記機械学習モデルによりラベルが決定されなかった入力データの件数が閾値を超えるか否か判定し、
前記更新するステップでは、前記ラベルが決定されなかった入力データをクラスタに分類し、分類されたクラスタに基づいてラベル候補を管理者に提案し、
前記更新するステップでは、前記管理者が前記ラベル候補に基づいて入力するラベルおよび入力データのセットを前記学習データに追加する、
情報処理方法。
【請求項6】
初期データ取得手段が、入力データと当該入力データに対する教師データであり応答データの作成に用いられるラベルとを含む学習データのセットを取得するステップと、
学習手段が、前記学習データのセットにより機械学習モデルを学習させるステップと、
評価手段が、前記学習データのセットにより学習された前記機械学習モデルに対してテストデータを入力し、前記テストデータが入力された機械学習モデルの出力に基づいて前記機械学習モデルの性能が所定の条件を満たしているか評価するステップと、
展開手段が、前記機械学習モデルの性能が前記所定の条件を満たしていると評価された場合に、前記学習された機械学習モデルにユーザから入力される入力データを入力し、当該機械学習モデルにより出力されるラベルに基づいて応答データを出力する応答サーバに、前記性能が評価された機械学習モデルを展開するステップと、
検出手段が、前記機械学習モデルの性能が前記所定の条件を満たしていないと評価された場合に、前記学習データのセットが検出条件を満たしているか判定するステップと、
データ更新手段が、前記検出条件を満たしていると判定された場合に、前記学習データのセットを更新するステップと、
再学習手段が、前記更新された学習データのセットにより前記機械学習モデルを再学習させるステップと、
ログ手段が、前記ユーザから入力データが入力された場合に、前記入力データをログストレージに記憶させるステップと、
を含み、
前記評価に応じて前記学習データのセットを更新するステップと、前記機械学習モデルを再学習させるステップと、前記機械学習モデルの性能を評価するステップとを繰り返し、
前記判定するステップでは、前記ユーザから入力され前記機械学習モデルに入力される入力データのうち、前記機械学習モデルにより決定されたラベルに対して当該ユーザが適切でないと回答した入力データの件数に基づいて前記学習データに追加する対象となるラベルを決定し、
前記更新するステップでは、前記ログストレージに格納された入力データから、前記対象となるラベルに対応する入力データを抽出し、前記学習データのセットに前記抽出された入力データと当該ラベルとを含む学習データを追加する、
情報処理方法。
【請求項7】
入力データと当該入力データに対する教師データであり応答データの作成に用いられるラベルとを含む学習データのセットを取得する初期データ取得手
段、
前記学習データのセットにより機械学習モデルを学習させる学習手
段、
前記学習データのセットにより学習された前記機械学習モデルに対してテストデータを入力し、前記テストデータが入力された機械学習モデルの出力に基づいて前記機械学習モデルの性能が所定の条件を満たしているか評価する評価手
段、
前記機械学習モデルの性能が前記所定の条件を満たしていると評価された場合に、前記学習された機械学習モデルにユーザから入力される入力データを入力し、当該機械学習モデルにより出力されるラベルに基づいて応答データを出力する応答サーバに、前記性能が評価された機械学習モデルを展開する展開手
段、
前記機械学習モデルの性能が前記所定の条件を満たしていないと評価された場合に、前記学習データのセットが検出条件を満たしているか判定する検出手
段、
前記検出条件を満たしていると判定された場合に、前記学習データのセットを更新するデータ更新手
段、および、
前記更新された学習データのセットにより前記機械学習モデルを再学習させる再学習手
段、
としてコンピュータを機能させ、
前記評価手段の評価に応じて前記データ更新手段、前記再学習手段、前記評価手段の処理を繰り返
し、
前記検出手段は、正解率が閾値より低いラベルに属する入力データである対象入力データと当該ラベルに属する他の入力データとの類似性を示す第1指標と、当該ラベルと異なるラベルに属する入力データと前記対象入力データとの類似性を示す第2指標とを算出し、
前記データ更新手段は、前記第2指標が、前記対象入力データと前記対象入力データが属するラベルと異なるラベルに属する入力データのいずれかと類似することを示し、前記第1指標が前記対象入力データが属するラベルに属する他の入力データとの類似度が基準状態より低いことを示す場合に、前記対象入力データを前記学習データのセットから削除する、
プログラム。
【請求項8】
入力データと当該入力データに対する教師データであり応答データの作成に用いられるラベルとを含む学習データのセットを取得する初期データ取得手段、
前記学習データのセットにより機械学習モデルを学習させる学習手段、
前記学習データのセットにより学習された前記機械学習モデルに対してテストデータを入力し、前記テストデータが入力された機械学習モデルの出力に基づいて前記機械学習モデルの性能が所定の条件を満たしているか評価する評価手段、
前記機械学習モデルの性能が前記所定の条件を満たしていると評価された場合に、前記学習された機械学習モデルにユーザから入力される入力データを入力し、当該機械学習モデルにより出力されるラベルに基づいて応答データを出力する応答サーバに、前記性能が評価された機械学習モデルを展開する展開手段、
前記機械学習モデルの性能が前記所定の条件を満たしていないと評価された場合に、前記学習データのセットが検出条件を満たしているか判定する検出手段、
前記検出条件を満たしていると判定された場合に、前記学習データのセットを更新するデータ更新手段、および、
前記更新された学習データのセットにより前記機械学習モデルを再学習させる再学習手段、
としてコンピュータを機能させ、
前記評価手段の評価に応じて前記データ更新手段、前記再学習手段、前記評価手段の処理を繰り返し、
前記検出手段は、前記ユーザから入力され前記機械学習モデルに入力される入力データのうち、前記機械学習モデルによりラベルが決定されなかった入力データの件数が閾値を超えるか否か判定し、
前記データ更新手段は、前記ラベルが決定されなかった入力データをクラスタに分類し、分類されたクラスタに基づいてラベル候補を管理者に提案し、
前記データ更新手段は、前記管理者が前記ラベル候補に基づいて入力するラベルおよび入力データのセットを前記学習データに追加する、
プログラム。
【請求項9】
入力データと当該入力データに対する教師データであり応答データの作成に用いられるラベルとを含む学習データのセットを取得する初期データ取得手段、
前記学習データのセットにより機械学習モデルを学習させる学習手段、
前記学習データのセットにより学習された前記機械学習モデルに対してテストデータを入力し、前記テストデータが入力された機械学習モデルの出力に基づいて前記機械学習モデルの性能が所定の条件を満たしているか評価する評価手段、
前記機械学習モデルの性能が前記所定の条件を満たしていると評価された場合に、前記学習された機械学習モデルにユーザから入力される入力データを入力し、当該機械学習モデルにより出力されるラベルに基づいて応答データを出力する応答サーバに、前記性能が評価された機械学習モデルを展開する展開手段、
前記機械学習モデルの性能が前記所定の条件を満たしていないと評価された場合に、前記学習データのセットが検出条件を満たしているか判定する検出手段、
前記検出条件を満たしていると判定された場合に、前記学習データのセットを更新するデータ更新手段、
前記更新された学習データのセットにより前記機械学習モデルを再学習させる再学習手段、および、
前記ユーザから入力データが入力された場合に、前記入力データをログストレージに記憶させるログ手段、
としてコンピュータを機能させ、
前記評価手段の評価に応じて前記データ更新手段、前記再学習手段、前記評価手段の処理を繰り返し、
前記検出手段は、前記ユーザから入力され前記機械学習モデルに入力される入力データのうち、前記機械学習モデルにより決定されたラベルに対して当該ユーザが適切でないと回答した入力データの件数に基づいて前記学習データに追加する対象となるラベルを決定し、
前記データ更新手段は、前記ログストレージに格納された入力データから、前記対象となるラベルに対応する入力データを抽出し、前記学習データのセットに前記抽出された入力データと当該ラベルとを含む学習データを追加する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理システム、情報処理方法および情報処理装置に関する。
【背景技術】
【0002】
近年、例えばチャットボットと呼ばれる、質問の応答を自動化するシステムが開発されている。このシステムでは質問が入力されると、その質問が予め定められた複数のラベルのいずれに対応するか判定し、判定されたラベルに対応する回答を出力する。近年では、この質問文から対応するラベルを判定するNLU(Natural Language Understanding)の処理において、機械学習モデルが多く用いられている。
【0003】
特許文献1には、自然言語理解システムをトレーニングさせるためのトレーニングデータに注釈を付けることを支援する手法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
機械学習モデルの学習に用いる学習データのセットの構成によって、学習後の機械学習モデルの性能が変化することが知られている。そのため、学習データのセットを作成する際に、管理者がその学習データのセットに問題がないか調査し編集する必要がある。管理者にとって学習データのセットを解析することは大きな負担となっていた。
【0006】
本発明は上記課題を鑑みてなされたものであって、その目的は、機械学習モデルの性能を確保するための学習データのセットの準備を容易にするための技術を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明にかかる情報処理システムは、入力データと当該入力データに対する教師データであるラベルとを含む学習データのセットにより機械学習モデルを学習させる学習サーバと、前記学習された機械学習モデルにユーザから入力される入力データを入力し、当該機械学習モデルにより出力されるラベルに基づいて応答データを出力する応答サーバとを含む情報処理システムであって、前記学習データのセットを取得する初期データ取得手段と、前記学習データのセットにより前記機械学習モデルを学習させる学習手段と、前記学習データのセットにより学習された前記機械学習モデルに対してテストデータを入力し、前記テストデータが入力された機械学習モデルの出力に基づいて前記機械学習モデルの性能が所定の条件を満たしているか評価する評価手段と、前記機械学習モデルの性能が前記所定の条件を満たしていると評価された場合に、前記学習された機械学習モデルを前記応答サーバに展開する展開手段と、前記機械学習モデルの性能が前記所定の条件を満たしていないと評価された場合に、前記学習データのセットを更新するデータ更新手段と、前記更新された学習データのセットにより前記機械学習モデルを再学習させる再学習手段と、を含み、前記評価手段の評価に応じて前記データ更新手段、前記再学習手段、前記評価手段の処理を繰り返す。
【0008】
また、本発明にかかる情報処理方法は、入力データと当該入力データに対する教師データであり応答データの作成に用いられるラベルとを含む学習データのセットを取得するステップと、前記学習データのセットにより前記機械学習モデルを学習させるステップと、前記学習データのセットにより学習された前記機械学習モデルに対してテストデータを入力し、前記テストデータが入力された機械学習モデルの出力に基づいて前記機械学習モデルの性能が所定の条件を満たしているか評価するステップと、前記機械学習モデルの性能が前記所定の条件を満たしていると評価された場合に、前記学習された機械学習モデルにユーザから入力される入力データを入力し、当該機械学習モデルにより出力されるラベルに基づいて応答データを出力する応答サーバに、前記性能が評価された機械学習モデルを展開するステップと、前記機械学習モデルの性能が前記所定の条件を満たしていないと評価された場合に、前記学習データのセットを更新するステップと、前記更新された学習データのセットにより前記機械学習モデルを再学習させるステップと、を含み、前記評価に応じて前記学習データのセットを更新するステップと、前記機械学習モデルを再学習させるステップと、前記機械学習モデルの性能を評価するステップとを繰り返す。
【0009】
また、本発明にかかる情報処理装置は、入力データと当該入力データに対する教師データであり応答データの作成に用いられるラベルとを含む学習データのセットを取得する初期データ取得手段と、前記学習データのセットにより前記機械学習モデルを学習させる学習手段と、前記学習データのセットにより学習された前記機械学習モデルに対してテストデータを入力し、前記テストデータが入力された機械学習モデルの出力に基づいて前記機械学習モデルの性能が所定の条件を満たしているか評価する評価手段と、前記機械学習モデルの性能が前記所定の条件を満たしていると評価された場合に、前記学習された機械学習モデルにユーザから入力される入力データを入力し、当該機械学習モデルにより出力されるラベルに基づいて応答データを出力する前記応答サーバに、前記性能が評価された機械学習モデルを展開する展開手段と、前記機械学習モデルの性能が前記所定の条件を満たしていないと評価された場合に、前記学習データのセットを更新するデータ更新手段と、前記更新された学習データのセットにより前記機械学習モデルを再学習させる再学習手段と、を含み、前記評価手段の評価に応じて前記データ更新手段、前記再学習手段、前記評価手段の処理を繰り返す。
【0010】
本発明の一形態では、情報処理システムは、前記機械学習モデルの性能が前記所定の条件を満たしていないと評価された場合に、前記学習データのセットが検出条件を満たしているか判定する検出手段、をさらに含み、前記データ更新手段は、前記検出条件を満たしていると判定された場合に、前記学習データのセットを更新してもよい。
【0011】
本発明の一形態では、前記検出手段は、前記学習データのセットにおけるラベルごとの入力データの数が検出条件を満たしているか判定し、前記データ更新手段は、前記検出条件を満たしていると判定された場合に、前記学習データのセットを更新してもよい。
【0012】
本発明の一形態では、前記データ更新手段は、前記機械学習モデルの性能が前記所定の条件を満たしていないと評価された場合に、改善パラメータに基づいて前記学習データのセットを更新し、情報処理システムは、前記学習データのセットの更新に応じて前記改善パラメータを更新するパラメータ更新手段をさらに含んでよい。
【0013】
本発明の一形態では、情報処理システムは、前記ユーザから入力データが入力された場合に、前記入力データをログストレージに記憶させるログ手段をさらに含み、前記検出手段は、前記学習データのセットについて入力データの数が不足するラベルが存在するか判定し、前記データ更新手段は、前記入力データの数が不足するラベルが存在すると判定された場合に、前記ログストレージに格納された入力データから、当該ラベルに対応する入力データを抽出し、前記学習データのセットに前記抽出された入力データと当該ラベルとを含む学習データを追加してよい。
【0014】
本発明の一形態では、前記データ更新手段は、前記入力データの数が不足するラベルが存在すると判定された場合に、前記学習データのセットにおいて当該ラベルに対応する入力データと、前記ログストレージに格納された入力データとに基づいて、前記ログストレージに格納された入力データから、当該ラベルに対応する入力データを抽出してよい。
【0015】
本発明の一形態では、情報処理システムは、前記ユーザから入力データが入力された場合に、前記入力データをログストレージに記憶させるログ手段と、前記ログストレージに格納された入力データから、いずれかのラベルに対応する入力データを抽出し、前記学習データに前記抽出された入力データと当該ラベルとのセットを追加するテストデータ追加手段と、をさらに含んでよい。
【発明の効果】
【0016】
本発明により、機械学習モデルの性能を確保するための学習データのセットを準備することが容易になる。
【図面の簡単な説明】
【0017】
【
図1】本発明の実施形態にかかる情報処理システムの一例を示す図である。
【
図2】情報処理システムが実現する機能を示すブロック図である。
【
図4】質問回答部の機能的な構成を示すブロック図である。
【
図5】情報処理システムにおいて、機械学習モデルの学習に関する処理を概略的に示すフロー図である。
【
図6】問題検出部の処理およびデータ変更部の処理を説明する図である。
【
図7】データ解析に関する処理の一例を示すフロー図である。
【
図8】学習データセットのサンプル数の調整を説明する図である。
【
図9】質問回答部の処理の一例を示すフロー図である。
【
図11】データ追加の処理の一例を示すフロー図である。
【
図12】類似度とユーザ質問の抽出との関係を説明する図である。
【発明を実施するための形態】
【0018】
以下では、本発明の実施形態を図面に基づいて説明する。同じ符号を付された構成に対しては、重複する説明を省略する。本実施形態では、チャットボットのように利用者から質問を受け付け、その質問が予め定められた複数のラベルのいずれに対応するか判定し、判定されたラベルに対応する回答を出力する情報処理システムについて説明する。
【0019】
以下では質問がテキストとして入力される場合について説明するが、質問は音声で入力されてもよい。またこの情報処理システムは、自然言語理解(NLU)を実現するための機械学習モデルを用いており、情報処理システムは学習データのセットで機械学習モデルを学習させ、学習済の機械学習モデルが利用者からの質問の分析に用いられる。
【0020】
図1は、本発明の実施形態にかかる情報処理システムの一例を示す図である。情報処理システムは、学習管理サーバ1と、問合せ対応サーバ2とを含む。学習管理サーバ1と問合せ対応サーバ2とはネットワークを介して接続され、問合せ対応サーバ2は複数の利用者端末3とネットワークを介して接続されている。利用者端末3は情報処理システムが提供するサービスの利用者であって、質問をする利用者により操作される。利用者端末3は、例えばスマートフォンやパーソナルコンピュータなどである。
【0021】
学習管理サーバ1はプロセッサ11、記憶部12、通信部13、入出力部14を含む。なお、学習管理サーバ1は、サーバコンピュータである。ここで、図示しないが、問合せ対応サーバ2は、サーバコンピュータであり、学習管理サーバ1と同様に、プロセッサ11、記憶部12、通信部13、入出力部14を含む。以下で説明される学習管理サーバ1および問合せ対応サーバ2のそれぞれの機能は、複数のサーバコンピュータにより実現されてもよい。
【0022】
プロセッサ11は、記憶部12に格納されているプログラムに従って動作する。またプロセッサ11は通信部13、入出力部14を制御する。なお、上記プログラムは、インターネット等を介して提供されるものであってもよいし、フラッシュメモリやDVD-ROM等のコンピュータで読み取り可能な記憶媒体に格納されて提供されるものであってもよい。
【0023】
記憶部12は、RAMおよびフラッシュメモリ等のメモリ素子とハードディスクドライブのような外部記憶装置とによって構成されている。記憶部12は、上記プログラムを格納する。また、記憶部12は、プロセッサ11、通信部13、入出力部14から入力される情報や演算結果を格納する。
【0024】
通信部13は、他の装置と通信する機能を実現するものであり、例えば無線LAN、有線LANを実現する集積回路などにより構成されている。通信部13は、プロセッサ11の制御に基づいて、他の装置から受信した情報をプロセッサ11や記憶部12に入力し、他の装置に情報を送信する。
【0025】
入出力部14は、表示出力デバイスをコントロールするビデオコントローラや、入力デバイスからのデータを取得するコントローラなどにより構成される。入力デバイスとしては、キーボード、マウス、タッチパネルなどがある。入出力部14は、プロセッサ11の制御に基づいて、表示出力デバイスに表示データを出力し、入力デバイスをユーザが操作することにより入力されるデータを取得する。表示出力デバイスは例えば外部に接続されるディスプレイ装置である。
【0026】
次に、情報処理システムが提供する機能について説明する。
図2は、情報処理システムが実現する機能を示すブロック図である。情報処理システムは、機能的に、初期データ決定部51と、学習部52と、性能評価部53と、問題検出部54と、データ変更部55と、モデル展開部56と、学習制御部57と、質問回答部58と、を含む。初期データ決定部51と、学習部52と、性能評価部53と、問題検出部54と、データ変更部55と、モデル展開部56と、学習制御部57との機能は、学習管理サーバ1に含まれるプロセッサ11によって記憶部12に格納されるプログラムが実行され、通信部13などを制御することにより実現される。質問回答部58は、問合せ対応サーバ2に含まれるプロセッサ11によって記憶部12に格納されるプログラムが実行され、通信部13などを制御することにより実現される。
【0027】
また情報処理システムは、データとして、学習データセット61、質問ログ62をさらに含む。これらは主に記憶部12に格納されてもよいし、別のサーバにより実現される実現されるデータベースやストレージに格納されてもよい。
【0028】
初期データ決定部51は、初期の学習データセット61を取得する。学習データセット61は複数の学習データを含んでいる。学習データのそれぞれは、質問データとその質問データに対する教師データであるラベルとを含む。
【0029】
図3は、学習データセット61の一例を示す図である。質問データは例えば
図3に示されるような質問のテキストであり、自然言語として入力された質問を表すデータである。質問データは質問のテキストが形態素解析などにより解析されることによって生成される解析結果であってもよい。学習の際に、学習部52が形態素解析を用いて、質問のテキストからなる質問データを単語群からなる質問データに変換し、変換された質問データが機械学習モデルに入力されてもよい。学習データに格納されるラベルは、予め定められた複数のラベルのうちいずれか1つである。ラベルは質問を入力したユーザの意図を示す情報であり、以下では「intent」と呼ぶこともある。あるラベルを含む学習データの数は複数であり、説明の容易のため、あるラベルを含む学習データの質問データ(質問テキスト)を、あるラベルに属する質問データ(質問テキスト)と記載する。
【0030】
学習部52は、学習データセット61により機械学習モデルを学習させる。また学習データが更新されると、学習部52は更新された学習データセット61により機械学習モデルを再学習させる。
【0031】
機械学習モデルは、質問データが入力されると、複数のラベルのうちいずれかを出力するよう構成されている。本実施形態では、機械学習モデル機械学習モデルとして、例えばCNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、BERT(Bidirectional Encoder Representations from Transformers)といったいわゆるDeep Learningを用い、形態素解析により分割された単語が入力される機械学習モデルが構築されてもよいし、形態素解析された単語から抽出された特徴的な単語により構成されるベクトルが入力されるランダムフォレスト、サポートベクタマシン(SVM)などの機械学習が実装された機械学習モデルが構築されてもよい。また機械学習モデルは外部のシステムにより提供される、その処理の詳細が不明なものであってもよい。
【0032】
性能評価部53は、学習データセット61により学習された機械学習モデルに対してテストデータを入力し、そのテストデータが入力された機械学習モデルの出力に基づいて前記機械学習モデルの性能が所定の条件を満たしているか評価する。テストデータは、複数のレコードを含み、各レコードは、質問データとその質問データに対する回答であるラベルとを含む。例えば、性能評価部53は、ラベルごとに、正解率を集計し、その正解率が所定の閾値より低いラベルが存在するか否かにより性能が所定の条件を満たしているか評価してよい。
【0033】
問題検出部54は、性能が所定の条件を満たしていないと評価された場合に、学習データセット61が予め定められた問題の検出条件を満たしているか判定する。
【0034】
データ変更部55は、問題の検出条件を満たしていると判定された場合に、学習データセット61を更新する。問題の検出および更新の具体的な手法については後述する。
【0035】
モデル展開部56は、性能が所定の条件を満たすと判定された場合は、学習済の機械学習モデルを実際の利用者からの質問に対して回答する問合せ対応サーバ2に展開する。機械学習モデルの展開は、学習済み機械学習モデルのパラメータを問合せ対応サーバ2へコピーすることにより行われてもよいし、学習済み機械学習モデルを含む仮想環境を問合せ対応サーバ2へコピーすることにより行われてもよい。また、クラウド上に構築された学習済の機械学習モデルへ実際の利用者からの問い合わせの質問データを入力するように質問データの入力先を切り替えることにより展開されてもよい。
【0036】
学習制御部57は、初期データ決定部51、学習部52、性能評価部53、問題検出部54、データ変更部55を制御し、学習データセット61の整備および機械学習モデルの学習を制御する。また性能評価部53により性能が所定の条件を満たすと判定された場合は、モデル展開部56に学習済の機械学習モデルを展開するよう指示する。
【0037】
質問回答部58は、利用者端末3から利用者が入力した質問を取得し、その質問に対する回答を出力する。また入力された質問を示す情報を質問ログ62に格納させる。
【0038】
図4は、質問回答部58の機能的な構成を示すブロック図である。質問回答部58は機能的に、自然言語処理部71、対話管理部72、回答生成部73を含む。これらの機能は、問合せ対応サーバ2に含まれるプロセッサ11によって記憶部12に格納されるプログラムが実行され、通信部13などを制御することにより実現される。
【0039】
自然言語処理部71は、いわゆる自然言語理解(NLU)を実現する機能である。自然言語処理部71は形態素解析を行い、自然言語処理部71は、形態素解析により質問のテキストから生成された質問データが入力され、ラベルを出力する機械学習モデルを含む。自然言語処理部71は、他のサーバにより実現される自然言語理解機能に対して質問のテキストまたは質問データを送信し、その結果を取得してもよい。なお、質問回答部58は利用者の音声により入力された質問音声を解析するASR(Automatic Speech Recognition)/STT(Speech to Text)機能をさらに含み、その出力が自然言語処理部71に入力されてもよい。
【0040】
対話管理部72は、自然言語処理部71から出力されるラベルに基づいて、回答生成部73から質問に対する回答のテキストを取得し、回答テキストを利用者端末3へ送信する。なお、質問回答部58は回答テキストを音声に変換するTTS(Text to Speech)機能をさらに含み、質問回答部58は回答テキストの代わりに変換された音声を利用者端末3へ出力してもよい。
【0041】
ここで、利用者からの質問およびその質問に対する回答を1ターンとして、問合せ対応サーバ2は、一連の複数のターンにより利用者の最終的に望む回答を出力するように構成されてよい。より具体的には、対話管理部72は、ある質問テキストまたは質問データに対して出力されるラベルに基づいて状態の遷移を管理し、回答生成部73にその遷移された状態に応じた回答を生成させてよい。例えば、1つめのターンにおける利用者の質問テキスト「パスワードを忘れた」に対して「forget_password」というラベルが出力された場合に、対話管理部72は回答生成部73に回答として「メールアドレスはわかりますか?(はい/いいえ)」を生成させ、次の利用者の質問テキスト「はい、わかります。」に対して「yes」というラベルが出力された場合に、対話管理部72は、対話管理部73に、「forget_password」から「yes」へのラベルの状態遷移に応じた回答「次のリンクからパスワードの再設定を行ってください。」を生成させてよい。
【0042】
また、対話管理部72は質問テキストまたは質問データと、ラベルを判定できたか否かを示す情報と、判定されたラベルと、回答に対する利用者のフィードバックと、を質問ログ62に格納する。
【0043】
回答生成部73は、対話管理部72の制御により、判定されたラベルに応じた回答テキストを生成する。なお、自然言語処理部71、対話管理部72、回答生成部73の処理の詳細は後述する。
【0044】
以下では、初期データ決定部51、学習部52、性能評価部53、問題検出部54、データ変更部55、モデル展開部56、および、学習制御部57による機械学習モデルの学習および学習データセット61の準備についてさらに説明する。
図5は、情報処理システムにおいて、機械学習モデルの学習に関する処理を概略的に示すフロー図である。
【0045】
はじめに、初期データ決定部51は、学習制御部57による指示に基づいて、初期の学習データセット61およびテストデータのセット(以下ではテストデータセットと記載する)を取得する(ステップS101)。テストデータセットは複数のテストデータを含み、テストデータは、質問データと、その質問データに対して出力されるべきラベルとを含む。
【0046】
次に、学習制御部57は学習部52の処理を開始させ、学習部52は、学習データセット61を用いて機械学習モデルを学習させる(ステップS102)。学習部52は、初めてステップS102が実行される際には初期データ決定部51により取得された学習データセット61により機械学習モデルを学習させる。
【0047】
機械学習モデルが学習させると、学習制御部57は性能評価部53の処理を開始させ、性能評価部53は、学習済の機械学習モデルが性能条件を満たすか判定する(ステップS104)。より具体的には、性能評価部53は、複数のテストデータのそれぞれについて、学習済の機械学習モデルにテストデータに含まれる質問データを入力し、その出力がテストデータに含まれるラベルと同じであるか(正解であるか)判定する。そして、性能評価部53は学習データのラベルごとに正解である割合を算出し、算出された割合が判定閾値より低いラベルが存在するか判定する。性能評価部53は算出された割合が判定閾値より低いラベルが存在しない場合は性能条件を満たすと判定し、そうでない場合は性能条件を満たさないと判定する。なお、性能評価部53は機械学習モデルにより出力されたラベルごとに正解である割合を求め、その割合にも基づいて性能条件を満たすか否かを判定してもよい。
【0048】
学習済の機械学習モデルが性能条件を満たさないと判定された場合には(ステップS104のN)、学習制御部57は改善ポリシーを調整する(ステップS105)。そして、学習制御部57は問題検出部54の処理を開始させ、問題検出部54は学習データセット61の問題点を検出する(ステップS106)。学習制御部57は、改善ポリシーに基づいて問題検出部54へ改善パラメータを渡し、問題検出部54はその改善パラメータに基づいて学習データセット61の問題点を検出してよい。改善ポリシーおよび改善パラメータの詳細については後述する。
【0049】
問題検出部54の処理が行われると、学習制御部57はデータ変更部55の処理を開始させ、データ変更部55は、検出された問題点に応じて、学習データセット61を更新する(ステップS107)。そして、ステップS102へ戻り、学習制御部57は学習部52の処理を開始させ、学習部52は、更新された学習データセット61を用いて機械学習モデルを再学習させる。2回目以降のステップS103以降の処理は1回目と同様であるため説明を省略する。
【0050】
一方、ステップS104において、学習済の機械学習モデルが性能条件を満たすと判定された場合には(ステップS104のY)、学習制御部57はモデル展開部56に処理を開始させ、モデル展開部56は学習済の機械学習モデルを問合せ対応サーバ2に展開する(ステップS108)。
【0051】
問題検出部54が問題点を検出する検出手法の数、およびデータ変更部55がデータを更新する更新手法の数は、それぞれ複数である。
図6は、問題検出部54の処理およびデータ変更部55の処理を説明する図である。検出処理の欄は、問題検出部54が学習データセット61の問題を検出する手法の種類を示し、問題の欄は、検出される問題の種類を示し、データ変更処理は検出された問題を改善するための学習データセット61の更新手法の種類を示している。
図6に示される手法およびその手法において行われる処理の詳細について以下に記載する。
【0052】
はじめに、「Data statistics」(データ解析)について記載する。
図7は、データ解析に関する処理の一例を示すフロー図である。
図7に示される処理は、ステップS105,S106,S107の処理の詳細のうち、データ解析に関わる処理を抜き出したものである。
【0053】
図7に示される処理においては、はじめに、学習制御部57は、改善ポリシーに含まれる改善パラメータである、データ件数の上限値および下限値を決定する(ステップS201)。データ件数の上限値および下限値は、以前に用いられた上限値および下限値と異なる値となるように決定されてよい。また仮に他の問題検出手法についての改善パラメータが変更された場合には、前回の上限値および下限値を変更せず用いるようにしてもよい。上限値および下限値は、予め定められた候補値のうちいずれかが選択されることにより決定されてよい。
【0054】
学習制御部57は、上限値および下限値を引数として問題検出部54のうちデータ解析のAPIを呼び出し、問題検出部54は、学習データセット61に含まれる学習データについて、ラベルごとに学習データの件数を集計する(ステップS202)。
【0055】
上限値および下限値は、データ解析のAPIが呼び出される際のパラメータでなくてもよい。例えば、データ解析のAPIがラベルごとに学習データの件数を集計し、学習制御部57がそのラベルごとの学習データの件数に応じて上限値および下限値を決定してもよい。例えば、学習制御部57は、ラベルごとの学習データの件数の最大値や最小値を取得し、その最大値より所定の値だけ小さい値を上限値とし、最小値より所定の値だけ大きい値を下限値としてもよい。
【0056】
データの件数が集計されると、学習制御部57は、集計された件数が上限値を超えるラベルが存在するか判定する(ステップS203)。
【0057】
件数が上限値を超えるラベルが存在する場合には(ステップS203のY)、学習制御部57は、「Too many samples」の問題が検出されたものとして、データ変更部55のうち「Sample Reduction」(学習データ削減)の処理のAPIを、件数が上限値を超えるラベルおよび上限値を引数として呼び出す。するとデータ変更部55は、件数が上限値を超えるラベルについて、学習データの件数を削減する(ステップS204)。データ変更部55は、上限値を超えるラベルを含む複数の学習データのそれぞれについて、同じラベルを含む質問データとの類似度の和を算出し、その和によりソートされた順位に基づいて削除する学習データを決定してもよい。例えば予め定められた順位の学習データが削除されてよい。また単に削除される学習データがランダムに決定されてもよい。件数が上限値を超えるラベルが存在しない場合はステップS204の処理はスキップされる。
【0058】
一方、件数が下限値より低いラベルが存在する場合には(ステップS205のY)、学習制御部57は、「Lack of samples」の問題が検出されたものとして、データ変更部55のうち「New sample collection」(学習データ取得)の処理のAPIを、下限値より低いラベルおよび下限値を引数として呼び出す。学習データ取得の処理では、データ変更部55は質問ログ62から、そのラベルに対応する質問データを抽出し、学習データセット61に抽出された質問データとそのラベルとを含む学習データを追加する。また追加の対象となる質問データは、学習データセット61においてそのラベルに対応する質問データと、質問ログ62に格納された質問データとに基づいて、質問ログ62から抽出される。これらの処理の詳細については後述する。
【0059】
図8は、学習データセット61の件数の調整を説明する図である。
図8には3つのグラフが記載されており、各グラフの縦軸が学習データの件数であり、ラベルごとに学習データの件数が示されている。
図8においてNmaxは件数の上限値、Nminは件数の下限値を示す。
【0060】
図8の上のグラフはデータ解析において求められたラベルごとの学習データ件数を示す。この例では2つのラベルについて学習データの件数が上限値を越えているので、その2つのラベルについて「Sample Reduction」(学習データ削減)の処理が実行され、学習データの数が上限値以下となるよう学習データセット61が変更される(
図8の真ん中のグラフの左側2つのラベル参照)。また、この例では4つのラベルについて学習データの件数が下限値より低いので、その4つのラベルについて「New sample collection」(データ追加)の処理が実行され、学習データの数が下限値以上となるよう学習データセット61が変更される(
図8の下のグラフの右側4つのラベル参照)。
【0061】
ラベルによる学習データの件数の違いが大きい場合に、機械学習モデルが、必要以上に件数の多いラベルを出力する傾向がある。このように学習データの件数を調整することにより、機械学習モデルの精度を確保することが可能になる。
【0062】
ここで、機械学習モデルが展開された後における、問合せ対応サーバ2の質問回答部58の処理と、質問ログ62について説明する。
図9は、質問回答部58の処理の一例を示すフロー図である。はじめに、質問回答部58の自然言語処理部71は、利用者からの入力に基づいて質問データを取得する(ステップS501)。自然言語処理部71は、利用者からの入力される質問テキストをそのまま質問データとして取得してもよいし、質問テキストを形態素解析して質問データを取得してもよい。
【0063】
自然言語処理部71は、取得された質問データを学習済の機械学習モデルに入力する(ステップS502)。そして、機械学習モデルがラベルを決定できない場合には(ステップS503のN)、対話管理部72は、質問に回答できない旨のメッセージを利用者に向けて送信し、質問ログ62に質問データを示す情報を対応ラベル未検出の旨とともに格納する(ステップS504)。
【0064】
機械学習モデルがラベルを決定できた場合には(ステップS503のY)、対話管理部72は決定されたラベルを回答生成部73に渡し、回答生成部73は、決定されたラベルに対する回答を生成する(ステップS505)。回答生成部73は単にラベルと関連付けて記憶された回答のテキストを取得することにより回答を生成してもよいし、回答生成部73は利用者または質問対象となる組織と関連付けて記録された情報を用いて動的に回答を生成してもよい。
【0065】
対話管理部72は、生成された回答を利用者端末3へ出力する(ステップS506)。ここで利用者端末3は、回答とともに、この回答が質問に対して適切であるか否かを入力させる画面などを出力し、利用者からの入力を問合せ対応サーバ2へ送信する。対話管理部72は、利用者端末3から、回答が適切であるか否かを示すフィードバックの情報を取得する(ステップS507)。回答が適切でないことを示す情報を取得した場合には(ステップS507のN)、対話管理部72は質問ログ62に質問データを示す情報、決定されたラベル、回答が適切でない旨を格納する(ステップS509)。回答が適切であることを示す情報を取得した場合には(ステップS507のY)、対話管理部72は質問ログ62に質問データを示す情報、決定されたラベル、回答が適切である旨を格納する(ステップS510)。
【0066】
図10は、質問ログ62の一例を示す図である。「ユーザ質問」は、質問データを示す情報であり、利用者により入力された質問のテキストである。「対応ラベル検出」は、機械学習モデルがラベルを決定できたか否かを示す情報であり、その値については「Yes」がラベルを決定できた旨を、「No」がラベルを決定できなかった旨を示す。「推測されたラベル」は機械学習モデルにより決定されたラベルである。「回答適切性」は利用者からの回答が適切であるか否かを示すフィードバックであり、その値については「Yes」は回答が適切であり、「No」は回答が適切でないことを示す。
【0067】
質問ログ62に格納されるこれらの情報は、以下に説明される問題検出部54およびデータ変更部55の処理の一部で用いられる。質問ログ62は機械学習モデルの展開後に生成されるものであるが、例えば状況の変化などによりその機械学習モデルの学習をやり直す場合に質問ログ62を用いた処理をすることは可能である。
【0068】
以下では、「New sample collection」(データ追加)の処理についてさらに詳細に説明する。
図11は、データ追加の処理の一例を示すフロー図である。
図11の処理は、学習データセット61において件数が少ないとされたラベルごとに実行される。
【0069】
データ変更部55は、学習データセット61から、処理対象となるラベルを含む学習データを選択する(ステップS301)。そしてデータ変更部55は、選択された学習データのそれぞれについて、質問ログ62に含まれる複数のユーザ質問のそれぞれと、選択された学習データに含まれる質問データとの類似度を算出する(ステップS302)。なお、選択された学習データのうち1つと、複数のユーザ質問のうち1つとのすべての組み合わせについて類似度が算出されてよい。
【0070】
データ変更部55は、ユーザ質問のテキストから形態素解析などにより抽出されるキーワード、または、質問データに含まれるキーワードにより文章ベクトルを生成し、生成される文章ベクトルの類似度を算出することにより、ユーザ質問と質問データとの類似度を算出してよい。また、いわゆるDeep Learningによりテキストを直接的に文章ベクトルに変換する機械学習モデルを予め構築し、データ変更部55は、その機械学習モデルにユーザ質問のテキストと質問データのテキストとを入力し、出力される文章ベクトルの類似度を算出してもよい。
【0071】
類似度が算出されると、データ変更部55は、複数のユーザ質問のうち、第1類似閾値
(例えば0.9)より大きい類似度が算出された学習データの数がN(例えば3)以上のものを抽出する(ステップS303:第1手法)。これは、多くの学習データに類似する質問を抽出する処理である。
【0072】
次に、データ変更部55は、複数のユーザ質問のうち、第1類似閾値より大きい類似度が算出された学習データの数がM(例えば1)以下のものを抽出する(ステップS304:第2手法)。これは、少ない学習データに類似する質問を抽出する処理である。
【0073】
次に、データ変更部55は、複数のユーザ質問のうち、第2類似閾値(例えば0.6)より大きく第1類似閾値未満の類似度が算出された学習データの数が1以上のものを抽出する(ステップS305:第3手法)。これは、学習データにおけるラベルに対応する質問の範囲を拡げるための質問を抽出する処理である。
【0074】
データ変更部55は、ステップS303からS305の処理により抽出されたユーザ質問に基づく質問データと、処理対象となるラベルとを含む学習データを、学習データセット61に追加する(ステップS306)。
【0075】
なお、ステップS306において抽出されたユーザ質問の数が、下限値から処理対象のラベルにおける学習データの件数を引いた値(追加予定数)より大きい場合には、データ変更部55は抽出されたユーザ質問から追加予定数のユーザ質問を選択し、選択されたユーザ質問について学習データを追加してよい。データ変更部55は、この処理において、ランダムにユーザ質問を選択してもよいし、第1から第3手法のそれぞれについて予め基準割合を設定しておき、第1から第3手法のそれぞれのうち、抽出されたユーザ質問の数を抽出された全体のユーザ質問の数で割って算出される割合が、基準割合を超えるもので抽出されたユーザ質問を削減することにより追加予定数のユーザ質問を選択してもよい。
【0076】
図12は、類似度とユーザ質問の抽出との関係を説明する図である。
図12の例において、学習データのレコードと質問ログ62のレコードとをつなぐ実線は、それらのレコードから算出される類似度が第1類似閾値以上であることを示し、破線は、それらのレコードから算出される類似度が第2類似閾値以上で第1類似閾値未満であることを示す。線がない場合は第2類似閾値以上の類似度が算出されなかったことを示す。
【0077】
Nが3でありMが1であるとすると、
図12に示される質問ログ62に含まれる4つのユーザ質問のうち、1番目のユーザ質問は3つ(N以上)の質問テキストとの類似度が第1類似閾値以上であるため第1手法により抽出される。2番目のユーザ質問は1つ(M以下)の質問テキストとの類似度が第1類似閾値以上であるため第2手法により抽出される。3番目のユーザ質問は、1つの質問テキストとの類似度が第2類似閾値以上であるため、第3手法により抽出される。単に多くの学習データの質問テキストと類似度の高いユーザ質問だけでなく、他のユーザ質問についても抽出することにより、ラベルに対応する質問が偏ることによる精度の低下を防ぐことができる。
【0078】
「New sample collection」の処理は、テストデータセットの整備に用いられてもよい。例えば、テストデータセットに含まれるテストデータについてデータ件数の少ないラベルが特定され、そのラベルについて「New sample collection」の処理が実行されてもよい。この場合はすべての処理において学習データセット61の代わりにテストデータセットを用いてよい。
【0079】
ユーザ質問の抽出は、他の手法により行われてもよい。例えば、学習データセット61を用いて、ユーザ質問が所定対象のラベルに対応するか否かを示すスコアを算出する評価用機械学習モデルを学習し、データ変更部55がその評価用機械学習モデルに質問ログ62のユーザ質問を入力した際に出力されるスコアが閾値を超えるか否かに基づいて、ユーザ質問を抽出してもよい。
【0080】
また、いわゆるディープラーニングにより、質問テキストが入力されると文章ベクトルを抽出する機械学習モデルを構築し、データ変更部55は、その機械学習モデルに学習データセット61に含まれ処理対象のラベルとともに学習データとして格納される質問テキストを入力し、出力された文章ベクトルの平均を取ってよい。さらに、データ変更部55は質問ログ62中のユーザ質問をその機械学習モデルに入力し、出力される文章ベクトルと、平均との類似度が閾値を超えるか否かに基づいて、ユーザ質問を抽出してもよい。
【0081】
次に、「Overlapped samples」の問題に対処するための「Overlap detection」および「Overlap resolution」の処理について説明する。問題検出部54は、「Overlap detection」のAPIが呼び出されると、互いに類似する質問データでありながら異なるラベルが設定された学習データを検出する。より具体的には、問題検出部54は、性能評価部53によって正解率が閾値より低いと判定されたラベル(対象ラベル)に属する質問文のそれぞれ(対象質問文と記載する)について、以下の2つの処理を実行する。1つ目の処理は、対象ラベルに属する他の質問文と対象質問文との類似性を示す第1指標を算出する処理である。2つめの処理は、他のラベルに属する質問文のそれぞれと対象質問文との類似性を示す第2指標を算出する処理である。
【0082】
そして、「Overlap resolution」のAPIが呼び出されたデータ変更部55は、対象質問文について第2指標が他のラベルに属する質問文のいずれかとの類似を示し、第1指標が対象ラベルに属する他の質問文との類似度が基準状態より低いことを示す場合に、その対象質問文を含む学習データを学習データセット61から削除する。
【0083】
図3に示される学習データセット61において、4番目の学習データと、6番目の学習データは、質問の意味が非常に近いが異なるラベルが付与されている。このような場合には機械学習モデルがうまく学習できず、出力されるラベルの正確性が低下する。このような場合に、学習データのうち不適切な学習データを削除することで、機械学習モデルの精度を向上させることができる。
【0084】
「Lack of intents」の問題に対処するための「Out-of-scope」および「Create intent」の処理について説明する。「Out-of-scope」のAPIが呼び出された問題検出部54は、質問ログ62中に、ラベルが決定されなかったユーザ質問の数が閾値を超えるか判定する。閾値を超える場合には、質問に対応するラベルが不足している可能性がある。
【0085】
そして、「Create intent」のAPIが呼び出されたデータ変更部55は、ラベルが決定されなかった複数のユーザ質問のテキストをクラスタリングし、所属するユーザ質問の件数が所定の値を超えるクラスタがある場合に、そのクラスタに属するユーザ質問をラベル候補として学習管理サーバ1の管理者に出力する。管理者は、出力された候補に基づいて追加するラベルと、出力されたユーザ質問のうち追加されたラベルに対応するユーザ質問とを入力する。データ変更部55は入力されたユーザ質問とラベルとを含む学習データを追加する。
【0086】
図10に示される質問ログ62のうち、4番目のデータは、機械学習モデルが対応するラベルを判定できていない。このようなケースが多数ある場合に、「Out-of-scope」および「Create intent」の処理によってより容易に学習データを追加することが可能になる。
【0087】
「Misunderstanding」の問題に対処するための「Prediction failure」の処理について説明する。「Prediction failure」のAPIが呼び出された問題検出部54は、質問ログ62中の、回答が適切でなかったとされるユーザ質問の数と、ユーザ質問の総数とをラベルごとに集計する。そして、ラベルごとに、回答が適切でないユーザ質問の数を総数で割ることにより求められる指標値が所定の閾値を超えるか否か判定する。閾値を超える場合はそのラベルについて判定ミスが多いことを示す。
【0088】
閾値を超えるラベルが存在する場合には、「New sample collection」のAPIが呼び出され、データ変更部44は、そのラベルの学習データ件数が現在の件数より多くなるように、質問ログ62からユーザ質問を抽出し、ユーザ質問を含む学習データを学習データセット61に追加する。
【0089】
図10に示される質問ログ62のうち、5番目のデータは、機械学習モデルが出力するラベルが適切でない。このようなケースが多数ある場合に、「Prediction failure」および「New sample collection」の処理によって学習データセット61を調整し、容易に機械学習モデルの精度を向上させることが可能になる。
【0090】
ここまで説明したように、機械学習モデルの評価と、その評価に応じた学習データセット61の問題の検出と学習データセット61の変更とを統制された環境で行うことにより、管理者がより容易に機械学習モデルの性能を確保するために学習データセット61を準備することができる。また機械学習モデルの学習に必要な時間が短縮されるため、環境の変化に応じて機械学習モデルを用いた質問対応を改良することが容易になる。
【符号の説明】
【0091】
1 学習管理サーバ、2 問合せ対応サーバ、3 利用者端末、11 プロセッサ、12 記憶部、13 通信部、14 入出力部、51 初期データ決定部、52 学習部、53 性能評価部、54 問題検出部、55 データ変更部、56 モデル展開部、57 学習制御部、58 質問回答部、61 学習データセット、62 質問ログ、71 自然言語処理部、72 対話管理部、73 回答生成部。