(57)【要約】【課題】学習データを用いて生成されるモデルを用いてユーザに好適な処理結果を提供する。【解決手段】計算機システムは、学習データを用いてモデルを生成するモデル生成システムと、モデルによる予測処理を利用するユーザに応じて作成されたモデル生成用データをユーザに対応付けて記録し、ユーザを所定のグループ条件に従ってグループ分けし、グループに属するユーザに応じて作成されたモデル生成用データを含む学習データをモデル生成システムに与えてグループに対応する統合モデルを生成させるモデル管理システムとを有する。【選択図】図１
2020201445.tif 000002
【特許請求の範囲】
【請求項１】
学習データを用いてモデルを生成するモデル生成システムと、
前記モデルによる予測処理を利用するユーザに応じて作成されたモデル生成用データを前記ユーザに対応付けて記録し、前記ユーザを所定のグループ条件に従ってグループ分けし、前記グループに属するユーザに応じて作成されたモデル生成用データを含む学習データを前記モデル生成システムに与えて前記グループに対応する統合モデルを生成させるモデル管理システムと、
を有する計算機システム。
【請求項２】
前記モデルおよび前記統合モデルの少なくとも一方による予測処理を含むサービスを前記ユーザに提供するアプリケーションを実行するアプリケーション管理システムを更に有し、
前記グループ条件は、前記アプリケーションの種別と前記ユーザの属性とに基づいて規定される、
請求項１に記載の計算機システム。
【請求項３】
前記モデルおよび前記統合モデルは、音声認識処理のための予測モデルであり、
前記グループ条件は、前記アプリケーションの種別と、前記ユーザの属性と、前記音声認識処理から出力されたテキストの類似度とに基づいて規定される、
請求項２に記載の計算機システム。
【請求項４】
前記アプリケーション管理システムは、クラウド上に構築され、通信ネットワークを介して複数のユーザがアプリケーションを利用するシステムである、
請求項２に記載の計算機システム。
【請求項５】
前記モデル管理システムは、前記グループ分けを実行したときに所定の統合条件が満たされている場合に、前記モデル生成システムに前記グループに対応する統合モデルを生成させる、
請求項１に記載の計算機システム。
【請求項６】
前記統合条件には、グループに属するユーザのモデル生成用データの総量が所定の閾値を超えたというデータ量条件が含まれる、
請求項５に記載の計算機システム。
【請求項７】
前記統合条件には、適用されているモデルによる処理の精度が所定の閾値を下回ったという精度条件が含まれる、
請求項５に記載の計算機システム。
【請求項８】
モデル評価用データを用いてモデルを評価するモデル評価システムを更に有し、
前記モデル生成システムは、前記統合モデルを生成すると、該統合モデルを前記モデル評価システムに評価させ、評価結果を前記統合モデルとともに前記モデル管理システムに提供し、
前記モデル管理システムは、前記評価結果に基づいて前記統合モデルの採否を決定する、
請求項１に記載の計算機システム。
【請求項９】
前記モデル管理システムは、前記評価結果に基づく情報を前記ユーザに提示して前記統合モデルの採否の判断を促し、前記ユーザが前記統合モデルを採用すると判断した場合、前記ユーザについて前記統合モデルを採用する、
請求項８に記載の計算機システム。
【請求項１０】
前記モデル管理システムは、前記統合モデルの採否を決定するための採用条件を複数有し、該複数の採用条件に付与された優先度に応じて前記統合モデルの採否を決定する、
請求項８に記載の計算機システム。
【請求項１１】
学習データを用いて生成されたモデルに基づいて統合モデルを生成するモデル生成方法であって、
コンピュータが、
前記モデルによる予測処理を利用するユーザに応じて作成されたモデル生成用データを前記ユーザに対応付けて記録し、
前記ユーザを所定のグループ条件に従ってグループ分けし、
前記グループに属するユーザに応じて作成されたモデル生成用データを含む学習データを用いて前記グループに対応する統合モデルを生成する、
モデル生成方法。
【請求項１２】
学習データを用いてモデルを生成するモデル生成システムに統合モデルを生成させるためのモデル管理プログラムであって、
コンピュータに、
前記モデルによる予測処理を利用するユーザに応じて作成されたモデル生成用データを前記ユーザに対応付けて記録する手順と、
前記ユーザを所定のグループ条件に従ってグループ分けする手順と、
前記グループに属するユーザに応じて作成されたモデル生成用データを含む学習データを前記モデル生成システムに与えて前記グループに対応する統合モデルを生成させる手順とを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習データを用いて生成されるモデルを利用者に応じてカスタマイズする技術に関する。
【背景技術】
【０００２】
近年では、機械学習の進歩により音声認識技術も発達し、その技術を利用したサービスやアプリケーションが増加してきた。以下、アプリケーションをアプリと略すことがある。さらに、そのような音声認識技術を活用したアプリをクラウドコンピューティングのサービスとして提供する形態も一般化してきた。
【０００３】
音声認識技術の分野では、認識対象の音声の音響的特徴を分析するための音響モデルと、単語の並び等の言語的特徴を分析するための言語モデルを利用する方法が広く知られている。以下、モデルと称した場合には音響モデルと言語モデルの両方が含まれる。
【０００４】
音声認識技術を利用したアプリでは、そのアプリが標準として提供するモデルに対して、アプリを利用するユーザが独自にカスタマイズすることが可能である。例えば、あるユーザのよく使う用語をモデルに追加することで、そのユーザの発話した音声をより精度良く認識することが期待される。
【０００５】
特許文献１に開示されたシステムでは、複数のドメインに対応する複数の言語モデリングコンポーネントのリストを利用者に提示し、カスタマイズに利用する言語モデリングコンポーネントを選択させる。利用者がリストから言語モデリングコンポーネントを選択すると、システムは、選択された言語モデリングコンポーネントの組合せとヒントとに基づいてカスタマイズした言語モデルを生成する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１７−５１５１４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に開示された技術では、利用者に、複数の言語モデリングコンポーネントを提示して、カスタマイズに利用する言語モデリングコンポーネントを選択させる。しかし、例えば他の利用者がカスタマイズした複数の既存の言語モデルを提示された利用者が、提示された言語モデルのうちどの言語モデルが自分の音声を認識する精度の向上に寄与するか判別できるとは限らない。また、同じアプリを利用している利用者が多数存在する場合、多数の言語モデルが利用者に提示されることになると考えられる。そうなると、利用者が適切に言語モデルを選択することが困難となる場合がある。
【０００８】
本開示のひとつの目的は、学習データを用いて生成されるモデルを用いてユーザに好適な処理結果を提供することを支援する技術を提供することである。
【課題を解決するための手段】
【０００９】
本開示のひとつの態様による計算機システムは、学習データを用いてモデルを生成するモデル生成システムと、前記モデルによる予測処理を利用するユーザに応じて作成されたモデル生成用データを前記ユーザに対応付けて記録し、前記ユーザを所定のグループ条件に従ってグループ分けし、前記グループに属するユーザに応じて作成されたモデル生成用データを含む学習データを前記モデル生成システムに与えて前記グループに対応する統合モデルを生成させるモデル管理システムと、を有する。
【発明の効果】
【００１０】
本開示のひとつの態様によれば、学習データを用いて生成されるモデルを用いてユーザに好適な処理結果を提供することを支援することができる。
【図面の簡単な説明】
【００１１】
【図１】機械学習システムの実施の一形態を示す図である。
【図２】図１に示したモデル管理計算機、アプリ管理計算機、アプリ実行計算機、モデル生成計算機および評価実行計算機に共通する要素の構成例を示す図である。
【図３】図１に示したモデル管理テーブルの構成例を示す図である。
【図４】図１に示した利用者情報テーブルの構成例を示す図である。
【図５】図１に示したアプリ情報テーブルの構成例を示すである。
【図６】図１に示したモデル情報テーブルの構成例を示す図である。
【図７】図１に示した学習データテーブルの構成例を示す図である。
【図８】図１に示したグループ情報テーブルの構成例を示す図である。
【図９】図１に示したグループ条件テーブルの構成例を示す図である。
【図１０】図１に示した統合条件テーブルの構成例を示す図である。
【図１１】図１に示したモデル採用条件テーブルの構成例を示す図である。
【図１２】図１に示した評価結果テーブルの構成例を示す図である。
【図１３】図１に示したモデルの管理計算機が有するモデル管理プログラムが実行する処理を説明するためのフローチャートである。
【図１４】図１に示したモデル生成計算機が有するモデル生成プログラムが実行する処理を説明するためのフローチャートである。
【図１５】図１に示した評価実行計算機が有する評価実行プログラムが実行する処理を説明するためのフローチャートである。
【図１６】図１に示したモデル管理計算機が有するグループ管理プログラムが実行する処理を説明するためのフローチャートである。
【図１７】図１に示したモデル管理計算機が有する通知管理プログラムが実行する処理を説明するためのフローチャートである。
【図１８】図１の示したモデル管理計算機が有するモデル統合プログラムが実行する処理を説明するためのフローチャートである。
【図１９】図１に示した通知管理プログラムが、モデル生成の通知をアプリ利用者のアプリに表示した画面例を示す図である。
【発明を実施するための形態】
【００１２】
以下に本実施形態を図面を用いて説明する。なお、本形態では、会議の音声データを音声認識することで議事録作成を支援するアプリを取り上げ、アプリ利用者が使用するモデルを改善するカスタムモデル管理システムについて説明するが、本形態は、本開示の説明のための例示であり、同様の処理が可能な他の構成あるいは形態を制限するものではない。
【００１３】
図１は、本実施形態による機械学習システムを示す図である。
【００１４】
本形態は図１に示すように、モデル管理システム２０００と、アプリケーション管理システム３０００と、モデル生成システム４０００と、評価システム５０００とを有する。
【００１５】
アプリ利用者１０００は、１つ以上の利用者計算機１０１０を用いて、アプリ実行計算機３２００で実行される、１つ以上のアプリＰ３０００を利用する。利用者計算機１０１０は、１つ以上のネットワーク１１００およびネットワーク機器１２００を介して他のシステムと通信する。
【００１６】
モデル管理システム２０００は、１つ以上のモデル管理計算機２１００を備え、モデルの管理を担い、アプリ利用者１０００の要求を受け付ける。具体的には、モデルによる予測処理を利用するアプリ利用者１０００に応じて作成されたモデル生成用データをアプリ利用者１０００に対応付けて記録し、アプリ利用者１０００を所定のグループ条件に従ってグループ分けし、グループに属するアプリ利用者１０００に応じて作成されたモデル生成用データを含む学習データをモデル生成システム４０００に与えてグループに対応する統合モデルを生成させる。モデル管理システム２０００は、１つであってもよいし複数あってもよい。
【００１７】
モデル管理計算機２１００は、モデル管理の手段を提供するモデル管理プログラムＰ２０００と、ユーザのグループを管理する手段を提供するグループ管理プログラムＰ２１００と、アプリ利用者１０００への通知の手段を提供する通知管理プログラムＰ２２００と、モデルを統合する手段を提供するモデル統合プログラムＰ２３００と、モデルとアプリ、利用者等の関係情報を含むモデル管理テーブルＴ２０００と、利用者の情報を含む利用者テーブルＴ２１００と、アプリの情報を含むアプリ情報テーブルＴ２２００と、モデルの情報を含むモデル情報テーブルＴ２３００と、モデル生成のための学習データの情報を含む学習データテーブルＴ２４００と、利用者のグループの情報を含むグループ情報テーブルＴ２５００と、グループを構成する条件情報を含むグループ条件テーブルＴ２６００と、カスタムモデルを統合する条件情報を含む統合条件テーブルＴ２７００と、カスタムモデルをアプリに採用する条件情報を含む採用条件テーブルＴ２８００と、モデル評価の結果情報を含む評価結果テーブルＴ２９００と、モデルの実態であるモデルファイルＦ２０００と、学習データの実態である学習データファイルＦ２１００とを備える。
【００１８】
アプリケーション管理システム３０００は、クラウド上に構築され、ネットワーク１１００およびネットワーク機器１２００からなる通信ネットワークを介してユーザである複数のアプリ利用者がアプリケーションを利用し、アプリの実行を管理するものであって、１つ以上のアプリ管理計算機３１００と、１つ以上のアプリ実行計算機３２００とを備える。アプリケーション管理システム３０００は、１つであってもよいし複数あってもよい。このように構成されることで、クラウド上でアプリケーションが利用者にサービスを提供することとなり、それにより、モデル生成用データの収集と、予測処理に用いるモデルの更新とが容易であり、容易に共有して予測精度を向上させることができる。また、アプリケーション管理システム３０００は、モデル生成システム４０００にて生成されたモデルおよび統合モデルの少なくとも一方による予測処理を含むサービスを利用者に提供するアプリケーションを実行する。なお、モデル生成システム４０００にて生成されたモデルおよび統合モデルは、後述するように音声認識処理のための予測モデルが考えられる。
【００１９】
アプリ管理計算機３１００は、１つ以上のアプリ管理プログラムＰ３０００を備える。アプリ実行計算機３２００は、１つ以上のアプリＰ３１００を備える。アプリ管理プログラムＰ３０００は、アプリＰ３１００の稼働情報、性能情報、ログ情報、利用中のモデル情報、アプリに入力されたデータを管理する手段を備え、ネットワーク１１００およびネットワーク機器１２００を介して他のシステムと通信する。アプリ利用者１０００は、利用者計算機１０１０からネットワーク１１００およびネットワーク機器１２００を介してアプリＰ３１００と通信して利用する。アプリＰ３１００は、ネットワーク１１００およびネットワーク機器１２００を介して、他のシステムと通信する。
【００２０】
モデル生成システム４０００は、学習データを用いて機械学習を実行し、アプリが使用するためのモデルを生成するものであって、１つ以上のモデル生成計算機４１００を備える。機械学習とは学習データを解析して特徴を抽出することをいう。所定の処理を実行するためのモデルを生成するのに機械学習を用いることができる。本実施形態では所定の処理は音声認識である。モデル生成システム４０００は、１つであってもよいし複数あってもよい。
【００２１】
モデル生成計算機４１００は、１つ以上のモデル生成プログラムＰ４０００を備える。モデル生成プログラムＰ４０００は、ネットワーク１１００およびネットワーク機器１２００を介して、他のシステムと通信する。
【００２２】
モデル評価システム５０００は、モデル評価用データを用いてモデルの評価を実施するものであって、１つ以上の評価実行計算機５１００を備える。モデル評価用データは、一例として、正解である文あるいは単語などのテキストが予め分かっている音声データである。その音声データに対する音声認識の結果として得られるテキストと、正解であるテキストとの一致の度合いが評価結果となる。モデル評価システム５０００は、１つであってもよいし複数あってもよい。評価実行計算機５１００は、評価実行プログラムＰ５０００を備え、モデルの評価処理を実行する。評価実行計算機５１００は、ネットワーク１１００およびネットワーク機器１２００を介して、他のシステムと通信する。
【００２３】
上述したモデル管理計算機２１００、アプリ管理計算機３１００、アプリ実行計算機３２００、モデル生成計算機４１００および評価実行計算機５１００は、１つ以上のネットワーク１１００および１つ以上のネットワーク機器１２００によって互いに接続される。ネットワーク１１００の一例はインターネットであり、Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ（ＶＰＮ）であってもよいし、その他のネットワークであってもよい。
【００２４】
なお、本願で記載の以外の物理機器や、機器同士を接続する配線等があってもよい。
【００２５】
図２は、図１に示したモデル管理計算機２１００、アプリ管理計算機３１００、アプリ実行計算機３２００、モデル生成計算機４１００および評価実行計算機５１００に共通する要素の構成例を示す図である。
【００２６】
図２に示すように、図１に示したモデル管理計算機２１００、アプリ管理計算機３１００、アプリ実行計算機３２００、モデル生成計算機４１００および評価実行計算機５１００の計算機１９１０は、メモリ１９２０と、ＣＰＵ１９３０と、入出力ＩＦ１９４０と、記憶装置１９５０と、ＮＷ  ＩＦ１９６０と、ＧＰＵ１９７０とを備え、これらは内部バス１９８０で接続されている。
【００２７】
プログラムは、記憶装置１９５０に格納されており、メモリ１９２０にロードされ、ＣＰＵ１９３０で実行される。なお、本願のシステムが有するすべての計算機１９１０のメモリにはＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）Ｐ１０００がロードされ、ＣＰＵ１９３０で実行される。
【００２８】
上述したすべての計算機は、物理的な計算機であっても、物理的な計算機上で動作する仮想的な計算機であってもよい。また、各計算機の記憶装置は必須要素ではなく、例えば外部ストレージ装置でもよく、ストレージ装置の機能を論理的に提供するストレージサービスであってもよい。
【００２９】
各計算機が備えるＮＷ  ＩＦの一例としては、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ  （ＮＩＣ）が挙げられるが、これ以外であってもよい。
【００３０】
また、ディスプレイ等の出力装置、キーボード、マウスといった入出力ＩＦを備えてもよいし、Ｓｅｃｕｒｅ  Ｓｈｅｌｌ（ＳＳＨ）といった手段によりネットワーク経由で当該計算機が遠隔管理される場合には、入力ＩＦは必須の要素ではない。なお、ＧＰＵ１９７０は、必須要素ではない。
【００３１】
上記の各計算機に含まれるプログラムとテーブルは、各計算機が備える記憶装置に含まれていてもよい。加えて、すべてのプログラムは各計算機が備えるＣＰＵによって実行される。
【００３２】
なお、本願のシステムに含まれるすべてのプログラムは、上述したように異なる複数の計算機で実行されてもよいし、一つの計算機で実行されてもよい。また、各プログラムは、一つの計算機ですべてのステップが実行されてもよいし、ステップ毎に異なる計算機で実行されてもよい。
【００３３】
また、本願で記載された以外の構成要素や、構成要素を接続する配線等が計算機１９１０に含まれてもよい。
【００３４】
図３は、図１に示したモデル管理テーブルＴ２０００の構成例を示す図である。
【００３５】
モデル管理テーブルＴ２０００は、利用者が利用しているアプリと、各アプリが利用しているモデルと、利用者とアプリが属しているグループの管理に必要な情報を備え、どの利用者がどのアプリを利用し、どのグループに属しているかを示すものであって、図３に示すように、利用者識別子Ｔ２００１と、アプリ識別子Ｔ２００２と、モデル識別子Ｔ２００３と、グループ識別子Ｔ２００４とを含む。
【００３６】
利用者識別子Ｔ２００１は、アプリの利用者を一意に特定するための情報であり、例えば連番数字や、利用者のアカウント名や、社員ＩＤを用いてもよく、利用者を識別できる値であればそれ以外でもよい。
【００３７】
アプリ識別子Ｔ２００２は、利用者が利用中のアプリを一意に特定するための情報であり、例えば連番数字やアプリＩＤを用いてもよく、アプリを識別できる値であればそれ以外でもよい。
【００３８】
モデル識別子Ｔ２００３は、アプリが利用中のモデルを一意に特定するための情報であり、例えばモデル名称やモデルＩＤを用いてもよく、モデルを識別できる値であればそれ以外でもよい。例えば、利用者識別子がＵ−１の利用者においては、Ｍｄｌ−１によって識別されるモデルをベースとして用い、Ｍｄｌ−２によって識別されるモデルをカスタムとして用いてこれらが組み合わされてモデルが適用されることを示している。
【００３９】
グループ識別子Ｔ２００４は、利用者が属するグループを一意に特定するための情報であり、例えばグループ名称やグループＩＤを用いてもよく、グループを識別できる値であればそれ以外でもよい。
【００４０】
図４は、図１に示した利用者情報テーブルＴ２１００の構成例を示す図である。
【００４１】
利用者情報テーブルＴ２１００は、アプリを利用する利用者に関する情報を備え、図４に示すように、利用者識別子Ｔ２１０１と、利用者登録名Ｔ２１０２と、第一情報Ｔ２１０３と、第二情報Ｔ２１０４と、第三情報Ｔ２１０５とを備える。
【００４２】
利用者識別子Ｔ２１０１は、アプリの利用者を一意に特定するための情報であり、例えば連番数字や、利用者のアカウント名や、社員ＩＤを用いてもよく、利用者を識別できる値であればそれ以外でもよい。
【００４３】
利用者登録名Ｔ２１０２は、利用者がアプリ利用のために登録した名称であり、例えば氏名、アカウント名、番号を用いてよい。
【００４４】
第一情報Ｔ２１０３は、利用者の属性を示す第一の情報であり、例えば利用者の属する業界種別の情報を用いてよい。
【００４５】
第二情報Ｔ２１０４は、利用者の属性を示す第二の情報であり、例えば利用者の属する企業名や組織名を用いてよい。
【００４６】
第三情報Ｔ２１０５は、利用者の属性を示す第三の情報であり、例えば利用者の属する部署情報を用いてよい。
【００４７】
上述した第一情報Ｔ２１０３、第二情報Ｔ２１０４および第三情報Ｔ２１０５は、利用者が組織に属する場合、その所属部署等の属性を示し、利用者登録時に、例えば従業員データなどから取得しておくことが考えられる。
【００４８】
図５は、図１に示したアプリ情報テーブルＴ２２００の構成例を示すである。
【００４９】
アプリ情報テーブルＴ２２００は、利用者が使用するアプリ情報を備え、図５に示すように、アプリ識別子Ｔ２２０１と、アプリ種別Ｔ２２０２と、基準モデル情報Ｔ２２０３と、実行場所情報Ｔ２２０４とを含む。
【００５０】
アプリ識別子Ｔ２２０１は、利用者が利用中のアプリを一意に特定するための情報であり、例えば連番数字やアプリＩＤを用いてもよく、アプリを識別できる値であればそれ以外でもよい。このアプリ識別子Ｔ２２０１は、利用者がアプリを利用するタイミングで生成されるものであって、そのため、同一のソフトウェアであっても、利用者毎に異なるものとなる。
【００５１】
アプリ種別Ｔ２２０２は、利用者が使用しているアプリの種別を一意に特定するための情報であり、例えばアプリ名称を示す文字列を用いてよい。
【００５２】
基準モデル情報Ｔ２２０３は、当該アプリを実行環境に配備した際にデフォルトで利用されるモデルを一意に特定するための情報であり、モデル名称やモデルＩＤを用いてもよく、モデルを識別できる値であればそれ以外でもよい。
【００５３】
実行場所情報Ｔ２２０４は、アプリが実行される計算環境を一意に特定するための情報であり、例えば計算機のホスト名、ＩＰアドレス、仮想マシン名を用いてもよく、計算環境を識別できる値であればそれ以外でもよい。
【００５４】
これらの情報は、アプリ識別子Ｔ２２０１が利用者毎に設定されるため、アプリを利用している利用者だけ存在することとなり、これらを参照することで、利用者のそれぞれが使っているアプリが何かを把握することができる。
【００５５】
図６は、図１に示したモデル情報テーブルＴ２３００の構成例を示す図である。
【００５６】
モデル情報テーブルＴ２３００は、アプリが利用するモデル情報を備え、図６に示すように、モデル識別子Ｔ２３０１と、モデル登録名Ｔ２３０２と、学習データ識別子Ｔ２３０３と、モデル作成者Ｔ２３０４とを備える。
【００５７】
モデル識別子Ｔ２３０１は、アプリが利用中のモデルを一意に特定するための情報であり、例えばモデル名称やモデルＩＤを用いてもよく、モデルを識別できる値であればそれ以外でもよい。
【００５８】
モデル登録名Ｔ２３０２は、モデルの名称を特定する情報であり、モデル作成者であるアプリ利用者１０００またはモデル生成プログラムＰ４０００により付与される。
【００５９】
学習データ識別子Ｔ２３０３は、アプリ利用者によりモデルを生成するために使用されたデータを識別する情報であり、例えば連番やデータＩＤを用いてもよく、学習データを識別できる値であればそれ以外でもよい。また、モデルがアプリ利用者以外の、例えばアプリ開発者やモデル開発者により生成されている場合、学習データ識別子にはアプリ利用者以外により生成されたモデルであることを識別できる値、例えば「―」などを用いてよく、アプリ利用者以外により生成されたモデルであることを識別できる値であればそれ以外でもよい。
【００６０】
モデル作成者Ｔ２３０４は、当該モデルを生成したアプリ利用者を一意に特定するための情報であり、利用者情報Ｔ２００１の値を使用することができる。また、モデルがアプリ利用者以外の、例えばアプリ開発者やモデル開発者により生成されている場合、モデル作成者Ｔ２２０３には、アプリ利用者以外がモデル作成者であることを識別できる値、例えば「―」などを用いてよく、アプリ利用者以外がモデル作成者であることを識別できる値であればそれ以外でもよい。
【００６１】
図７は、図１に示した学習データテーブルＴ２４００の構成例を示す図である。
【００６２】
学習データテーブルＴ２４００は、アプリ利用者がモデル生成する際にどのようなデータを使用したかを示した情報を含み、図７に示すように、学習データ識別子Ｔ２４０１と、第一学習データＴ２４０２と、第二学習データＴ２４０３とを備える。
【００６３】
学習データ識別子Ｔ２４０１は、モデルを生成するために使用されたデータを識別する情報であり、例えば連番やデータＩＤを用いてもよく、学習データを識別できる値であればそれ以外でもよい。
【００６４】
第一学習データＴ２４０２は、モデルを生成するために使用されたデータを表すものであり、例えば、音声認識の精度を向上させるために追加した固有名詞などの単語の一覧や、単語一覧の記載されたファイルの名称や、データの格納されたデータベース情報を用いてもよく、モデルの生成に使用したデータを識別できる値であれば、それ以外でもよい。
【００６５】
第二学習データＴ２４０３は、モデルを生成するために使用されたデータを表すものであり、例えば、音声認識の精度を向上させるために追加した例文の一覧や、例文一覧の記載されたファイルの名称や、データの格納されたデータベース情報を用いてもよく、モデルの生成に使用したデータを識別できる値であれば、それ以外でもよい。
【００６６】
図８は、図１に示したグループ情報テーブルＴ２５００の構成例を示す図である。
【００６７】
グループ情報テーブルＴ２５００は、アプリ利用者が所属するグループの情報や、学習データをまとめる単位となるグループを作成するために使用したグループ条件の情報や、グループ条件に従って評価した結果情報を含み、図８に示すように、グループ識別子Ｔ２５０１と、メンバー情報Ｔ２５０２と、グループ条件識別子Ｔ２５０３と、グループ評価結果Ｔ２５０４と、を備える。
【００６８】
グループ識別子Ｔ２５０１は、利用者が属するグループを一意に特定するための情報であり、例えばグループ名称やグループＩＤを用いてもよく、グループを識別できる値であればそれ以外でもよい。
【００６９】
メンバー情報Ｔ２５０２は、当該グループに属するアプリ利用者の集合を表すものであり、利用者情報テーブルＴ２１００の利用者識別子Ｔ２１０１を用いてもよく、利用者を特定できるものであれば、それ以外でもよい。
【００７０】
グループ条件識別子Ｔ２５０３は、当該グループに属する利用者を選別するための条件情報を表すものであり、グループ条件テーブルＴ２６００のグループ条件識別子Ｔ２６０１（図９参照）の値を用いてもよく、グループ条件を特定できるものであれば、それ以外でもよい。
【００７１】
グループ評価結果Ｔ２５０４は、当該グループのグループ条件識別子Ｔ２５０３を評価した結果を表すものであり、例えば、「アプリ種別＝議事録作成支援、業界＝金融、組織＝Ａ銀行、類似度＝０．９」といった文字列で表してもよい。なお、類似度とは、例えば、アプリ種別が議事録作成支援である場合は、議事録のテキストデータの類似度であり、アプリ種別がコールセンターである場合は、オペレータの発言内容の類似度である。
【００７２】
図９は、図１に示したグループ条件テーブルＴ２６００の構成例を示す図である。
【００７３】
グループ条件テーブルＴ２６００は、利用者のグループを作成する際に満たす条件情報を含み、図９に示すように、グループ条件識別子Ｔ２６０１と、グループ条件Ｔ２６０２とを含む。
【００７４】
グループ条件識別子Ｔ２６０１は、グループ条件を特定するための情報であり、例えば、任意の文字列や、連番等、の値を用いてもよい。
【００７５】
グループ条件Ｔ２６０２は、複数のアプリ利用者を有するグループを作成する際に満たす条件情報を表し、例えば、アプリが一致であり、利用者の属性となる業界および組織が一致であり、音声認識処理から出力されたテキストの類似度が０．８を超えることを示す「アプリ種別：一致、業界：一致、組織：一致、類似度：＞０．８」といった文字列によってグループ条件を規定してもよい。
【００７６】
このように、利用者とアプリの種別とに基づいてグループ分けを行うので、類似性のあるモデル生成データをユーザ同士で共有することができる。またその際に、音声認識処理の出力履歴に含まれるテキストの類似度による条件によりグループ分けを行うことで、適切なグループ分けが可能となる。
【００７７】
図１０は、図１に示した統合条件テーブルＴ２７００の構成例を示す図である。
【００７８】
統合条件テーブルＴ２７００は、同一グループに属する利用者が生成したモデルを統合するかを判断する条件情報を含み、図１０に示すように、統合条件テーブルＴ２７００は、統合条件識別子Ｔ２７０１と、統合条件Ｔ２７０２と、統合条件ステータスＴ２７０３とを含む。
【００７９】
統合条件識別子Ｔ２７０１は、統合条件を特定するための情報であり、例えば、任意の文字列や、連番等、の値を用いてもよい。
【００８０】
統合条件Ｔ２７０２は、同一グループに属する利用者が生成したモデルを統合するかを判断する条件情報であり、例えば、データ量条件としてグループに属する利用者のモデル生成用データの総量が１００単語を超えたことを示す「学習データサイズ＞１００単語」といった文字列で表したり、精度条件として適用されているモデルによる処理の精度が８０％未満となったことを示す「音声認識精度＜８０％」といった文字列で表したりしてもよい。このように、学習すべきカスタマイズのデータが増えたことを統合モデル生成のトリガとするので、適切な時期に統合モデルの生成を実行することができる。また、予測処理の精度が低下したことを統合モデル生成のトリガとすれば、適切な時期に統合モデルの生成を実行することができる。
【００８１】
統合条件ステータスＴ２７０３は、当該統合条件の利用可否を表す情報であり、例えば、「有効」「無効」といった文字列を用いてもよいし、数字や記号を用いてもよい。この統合条件ステータスＴ２７０３は、利用者がＯＮ／ＯＦＦすることができる。
【００８２】
図１１は、図１に示したモデル採用条件テーブルＴ２８００の構成例を示す図である。
【００８３】
モデル採用条件テーブルＴ２８００は、統合されたモデルを採用する条件情報を備え、図１１に示すように、モデル採用条件識別子Ｔ２８０１と、モデル採用条件Ｔ２８０２と、モデル採用手段Ｔ２８０３と、優先度Ｔ２８０４とを含む。
【００８４】
モデル採用条件識別子Ｔ２８０１は、モデル採用条件を特定するための情報であり、例えば、任意の文字列や、連番等、の値を用いてもよい。
【００８５】
モデル採用条件Ｔ２８０２は、生成したモデルをアプリ用に採用する条件を表した情報であり、例えば、「音声認識精度＞９０％」といった文字列で表してもよい。
【００８６】
モデル採用手段Ｔ２８０３は、前期モデル採用条件を満足するモデルをアプリ用に採用する手段を表した情報であり、例えば、モデル生成後にモデル情報と採否確認情報を利用者に通知して利用者がモデルの採用を決定する手段を「利用者通知」と表したり、モデル採用条件を満足する場合に自動的にアプリのモデルを新しいモデルに入れ替える手段を「自動入れ替え」と表したりしてもよい。
【００８７】
優先度Ｔ２８０４は、モデル採用条件を評価する順序を表す情報であり、例えば、数字や文字列で表してもよい。また、常にモデル採用条件を評価する場合に、例えば「０」や「常に使用」といった値を用いてもよい。また、一時的に評価対象外とするために、「−１」や「無効」といった値を用いてもよい。図１１に示したものにおいては、数字が大きなほど優先度が高くなっている。そのため、例えば、音声認識精度が９７％である場合は、モデル採用条件識別子ＭＣ−１，ＭＣ−２のいずれにも該当するものの、モデル採用条件識別子ＭＣ−２による採用条件が適用され、自動入れ替えが実施されることになる。
【００８８】
図１２は、図１に示した評価結果テーブルＴ２９００の構成例を示す図である。
【００８９】
評価結果テーブルＴ２９００は、モデル評価システム５０００が評価したモデルの評価結果情報を備え、評価結果識別子Ｔ２９０１と、評価対象アプリＴ２９０２と、評価対象モデルＴ２９０３と。評価結果Ｔ２９０４と、評価実行日時Ｔ２９０５とを含む。
【００９０】
評価結果識別子Ｔ２９０１は、評価結果情報を一意に特定するための識別子であり、評価実行プログラムＰ５０００によって、例えば連番等、の値が付与される。
【００９１】
評価対象アプリＴ２９０３は、評価対象のアプリを一意に特定するための値であり、アプリ情報テーブルＴ２２００のアプリ識別子Ｔ２２０１を用いてもよく、評価対象のアプリが識別できる値であれば、それ以外でもよい。
【００９２】
評価対象モデルＴ２９０３は、評価対象のモデルを一意に特定するための値であり、モデル情報テーブルＴ２３００のモデル識別子Ｔ２３０１を用いてもよく、評価対象のモデルが識別できる値であれば、それ以外でもよい。
【００９３】
評価結果Ｔ２９０４は、評価対象のモデルの評価結果を表す情報であり、評価実行プログラムP５０００自身が評価対象モデルを用いて評価用データの音声認識処理を実行し、音声認識結果の精度を評価したり、アプリ管理プログラムＰ３０００が管理するアプリが実行した音声認識の結果のログ情報を評価実行プログラムＰ５０００が取得し、その音声認識結果の精度を評価したりした値であり、数値や記号、または「音声認識精度＝０．９２」といった文字列で表してもよい。
【００９４】
評価実行日時Ｔ２９０５は、評価実行プログラムＰ５１００が実行された日時を表す情報であり、「２０１９／４／１  １０：００」といった文字列で表してもよい。
【００９５】
以下に、上記のように構成された機械学習システムにおける処理について説明する。
【００９６】
図１３は、図１に示したモデル管理計算機２１００が有するモデル管理プログラムＰ２０００が実行する処理を説明するためのフローチャートであり、モデル管理プログラムＰ２０００が、利用者計算機１０１０を介して送信された、アプリ利用者１０００からのモデル生成要求を受信し、前記要求に対する処理を実行する処理を示す。
【００９７】
モデル管理プログラムＰ２０００が実行されると、モデル管理プログラムＰ２０００は、モデルによる予測処理である音声認識処理を利用するアプリ利用者１０００からのモデル生成要求の待受を開始する（ステップＳ１０００）。
【００９８】
モデル管理プログラムＰ２０００が、アプリ利用者１０００からのモデル生成要求を受信すると（ステップＳ１００１）、モデル管理プログラムＰ２０００はまず、モデル生成要求を解析する（ステップＳ１００２）。アプリ利用者１０００からのモデル生成要求には、例えばアプリ利用者１０００の識別情報、アプリ利用者１０００が利用しているアプリの情報、モデル生成に用いる学習データ等が含まれているため、モデル管理プログラムＰ２０００は、受信されたモデル生成要求に含まれる情報、例えばアプリ利用者１０００の識別情報、アプリ利用者１０００が利用しているアプリの情報、モデル生成に用いる学習データ等を解析する。
【００９９】
次に、モデル管理プログラムＰ２０００は、モデル生成要求に含まれる学習データを解析して第一学習データＴ２４０２と、第二学習データＴ２４０３とを抽出し、学習データ識別子Ｔ２４０１を付与し、新しいレコードとして学習データテーブルＴ２４００に追記する（ステップＳ１００３）。学習データはファイルシステムやストレージサービスに格納し、そのファイルパスやアクセスアドレスを第一学習データＴ２４０２と、第二学習データＴ２４０３に記載してもよい。
【０１００】
次に、モデル管理プログラムＰ２０００は、モデル生成要求に含まれる情報と、学習データテーブルＴ２４００に登録されている学習データとを用いて、モデル生成プログラムＰ４０００にモデル生成要求を送信する（ステップＳ１００４）。モデル生成要求には、例えばアプリ利用者１０００の識別情報、アプリ利用者１０００が利用しているアプリの識別情報、学習データ識別子Ｔ２４０１等が含まれる。
【０１０１】
その後、モデル管理プログラムＰ２０００は、モデル生成プログラムＰ４０００から、モデル生成結果を受信すると（ステップＳ１００５）、受信したモデル生成結果と、モデル採用条件テーブルＴ２８００のモデル採用条件Ｔ２８０２と優先度Ｔ２８０４とを用いて、モデル採否処理を実行する（ステップＳ１００６）。なお、モデル管理プログラムＰ２０００がモデル生成プログラムＰ４０００から受信するモデル生成結果には、例えばアプリ利用者１０００の識別情報、アプリ利用者１０００が利用しているアプリの識別情報、生成されたモデルの識別情報、生成されたモデルの評価情報等が含まれる。モデル採否処理は、優先度Ｔ２８０４が最も高優先度なモデル採否条件のみ実行してよいし、優先度Ｔ２８０４の高優先度から順にモデル採用条件を評価して条件を満足するものを実行してもよい。
【０１０２】
次に、モデル管理プログラムＰ２０００は、アプリ利用者１０００から受信したモデル生成要求に含まれるアプリ利用者の識別情報およびアプリ情報と、ステップＳ１００５で受信したモデル生成結果に含まれる生成されたモデルの識別情報とに基づいて、モデル管理テーブルＴ２０００にモデル管理情報を格納し（ステップＳ１００７）、処理を終了する（ステップＳ１００８）。その際、モデル管理テーブルＴ２０００のレコードに、既に当該の利用者識別子とアプリ識別子の値を有するレコードがある場合は、当該レコードの情報を更新し、当該の利用者識別子とアプリ識別子の値を有するレコードがない場合は、新規レコードを作成して情報格納する。
【０１０３】
このようにして、モデルによる音声認識処理を利用する利用者に応じてモデル生成システム４０００にて生成されたモデル生成用データが、利用者に対応付けて記録されることになる。
【０１０４】
図１４は、図１に示したモデル生成計算機４１００が有するモデル生成プログラムＰ４０００が実行する処理を説明するためのフローチャートであり、図１３に示したステップＳ１００４にてモデル管理プログラムＰ２０００から送信されたモデル生成要求に対する処理を示す。
【０１０５】
モデル生成プログラムＰ４０００が実行されると、モデル生成プログラムＰ４０００は、図１３に示したステップＳ１００４にてモデル管理プログラムＰ２０００から送信されたモデル生成要求の待受を開始する（ステップＳ２０００）。
【０１０６】
モデル生成プログラムＰ４０００が、モデル管理プログラムＰ２０００から送信されたモデル生成要求を受信すると（ステップＳ２００１）、モデル生成プログラムＰ４０００はまず、受信したモデル生成要求に含まれる学習データ識別子Ｔ２４０１が示す学習データを取得する（ステップＳ２００２）。ステップＳ２００１にて受信したモデル生成要求には、例えばアプリ利用者１０００の識別情報、アプリ利用者１０００が利用しているアプリの識別情報、学習データ識別子Ｔ２４０１等が含まれているため、モデル生成プログラムＰ４０００は、受信したモデル生成要求に含まれる学習データ識別子Ｔ２４０１が示す学習データを取得することができる。
【０１０７】
次に、モデル生成プログラムＰ４０００は、ステップＳ２００１にて受信したモデル生成要求に含まれるアプリ利用者１０００の識別情報、アプリ利用者１０００が利用しているアプリの識別情報を用い、モデル管理テーブルＴ２０００を参照し、利用しているモデルのモデル識別子Ｔ２００３を特定する。そして、ステップＳ２００２にて取得した学習データと、モデル識別子Ｔ２００３により特定したモデルを用いて機械学習を実行し、新しいモデル（以下、カスタムモデルと称する）を生成する（ステップＳ２００３）。
【０１０８】
次に、モデル生成プログラムＰ４０００は、評価実行プログラムＰ５０００に対してカスタムモデルの評価要求を送信する（ステップＳ２００４）。この評価要求には、例えば、アプリの識別情報、ステップＳ２００３にて生成したカスタムモデルと、ステップＳ２００２にて取得した学習データと、アプリ管理プログラムＰ３０００が管理するログ情報とアプリ入力データ情報等が含まれる。
【０１０９】
その後、モデル生成プログラムＰ４０００は、評価要求に対する評価結果を評価実行プログラムＰ５０００から受信すると（ステップＳ２００５）、ステップ２００３にて生成したモデル生成結果をモデル生成要求元に送信し（ステップＳ２００６）、処理を終了する（ステップＳ２００７）。なお、評価実行プログラムＰ５０００から受信した評価結果は、評価テーブルＴ２９００の評価結果識別子Ｔ２９０１であってもよいし、または、評価結果テーブルＴ２９００の当該レコードの情報を一部または全部を含んでもよい。また、モデル生成要求元に送信するモデル生成結果には、例えばアプリ利用者１０００の識別情報、アプリ利用者１０００が利用しているアプリの識別情報、生成されたモデルの識別情報、生成されたモデルの評価情報、評価結果識別子Ｔ２９０１等が含まれる。
【０１１０】
図１５は、図１に示した評価実行計算機５１００が有する評価実行プログラムＰ５０００が実行する処理を説明するためのフローチャートであり、図１４に示したステップＳ２００４にてモデル生成プログラムＰ４０００から送信されたモデル評価要求に対する処理を示す。
【０１１１】
評価実行プログラムＰ５０００が実行されると、評価実行プログラムＰ５０００は、図１４に示したステップＳ２００４にてモデル生成プログラムＰ４０００から送信されたモデル評価要求の待受を開始する（ステップＳ３０００）。
【０１１２】
評価実行プログラムＰ５０００は、モデル生成プログラムＰ４０００から送信されたモデル評価要求を受信すると（ステップＳ３００１）、まず、モデル評価要求に含まれるアプリ入力データを抽出し、評価データとして保持する（ステップＳ３００２）。なお、アプリ入力データは、例えば、議事録作成支援アプリの場合、当該アプリを過去に利用した際に入力された会議音声データなどであってよい。なお、ステップＳ３００１にて受信されたモデル評価要求には、アプリ識別情報、ステップＳ２００３にてモデル生成プログラムＰ４０００が生成したカスタムモデルと、ステップＳ２００２にてモデル生成プログラムＰ４０００が取得した学習データと、アプリ管理プログラムＰ３０００が管理するログ情報とアプリ入力データ情報等が含まれる。
【０１１３】
次に、評価実行プログラムＰ５０００は、モデル評価要求に含まれるアプリ識別情報を用い、同じアプリを評価実行計算機５１００で評価用アプリとして動作させる（ステップＳ３００３）。例えば、当該アプリの実行プログラムをコピーしてもよく、当該アプリが格納された仮想マシンのイメージファイルを取得して仮想マシンとして動作させてもよく、当該アプリが格納されたコンテナイメージファイルを取得してコンテナとして動作させてもよい。また、動作させる評価用アプリは複数であってもよい。
【０１１４】
次に、評価実行プログラムＰ５０００は、ステップＳ３００３にて動作させた評価用アプリに対して、ステップＳ３００２にて保持した評価データを入力として与えて、評価を実行する（ステップＳ３００４）。なお、評価用アプリを複数動作させる場合は、評価データを複数に分割して、複数の評価用アプリに分散して入力することで、評価実行を分散してもよい。さらに、評価の実行を開始した日時の情報を、次のステップで使用するためにメモリに一時的に格納する。
【０１１５】
次に、評価実行プログラムＰ５０００は、評価実行の結果を取得し、評価結果テーブルＴ２９００の評価結果識別子Ｔ２９０１を生成して新規レコードを追加し、評価対象アプリの識別情報Ｔ２９０２と、評価対象モデル情報Ｔ２９０３と、評価結果Ｔ２９０４と、評価実行日時Ｔ２９０５と、を当該レコードに格納する（ステップＳ３００５）。
【０１１６】
その後、評価実行プログラムＰ５０００は、ステップＳ３００１にて受信したモデル評価要求の要求元に評価結果を送信し（ステップＳ３００６）、処理を終了する（ステップＳ３００７）。評価結果は、例えば、評価テーブルＴ２９００の評価結果識別子Ｔ２９０１であってもよいし、または、評価結果テーブルＴ２９００の当該レコードの情報を一部または全部を含んでもよい。
【０１１７】
図１６は、図１に示したモデル管理計算機２１００が有するグループ管理プログラムＰ２１００が実行する処理を説明するためのフローチャートであり、グループ条件テーブルＴ２６００とモデル管理テーブルＴ２０００の情報を用いて、グループ情報を生成する処理を示す。この処理は、例えば、利用者がカスタムモデルを生成したタイミングや新規の利用者が増えたタイミング、あるいは定期的に、図１３〜図１５に示した処理とは異なるタイミングで行われている。
【０１１８】
グループ管理プログラムＰ２１００が実行されると（ステップＳ４０００）、グループ管理プログラムＰ２１００は、まず、グループ条件テーブルＴ２６００の全レコードを取得し（ステップＳ４００１）、また、モデル管理テーブルＴ２０００の全レコードを取得する（ステップＳ４００２）。
【０１１９】
次に、グループ管理プログラムＰ２１００は、ステップＳ４００１にて取得したグループ条件テーブルのレコードの一つを取り出し（ステップＳ４００３）、また、ステップＳ４００２にて取得したモデル管理テーブルＴ２０００のレコードの一つを取り出す（ステップＳ４００４）。
【０１２０】
次に、グループ管理プログラムＰ２１００は、ステップＳ４００４にて取り出されたモデル管理情報が、ステップＳ４００３にて取り出されたグループ条件を満足するか評価する（ステップＳ４００５）。例えば、図９に示したグループ条件テーブルＴ２６００では、まずグループ条件識別子が「Ｃｏｎｄ−１」のグループ条件「アプリ種別：一致、業界：一致、組織：一致、類似度：＞０．８」が評価対象となる。
【０１２１】
次に、図３に示したモデル管理テーブルＴ２０００では、まず利用者識別子が「Ｕ−１」かつアプリ識別子「Ａｐｐ−１」のレコードが評価対象となる。この場合、アプリ利用者「Ｕ−１」の情報は、図４に示した利用者情報テーブルＴ２１００の利用者識別子Ｔ２１０１が「Ｕ−１」の情報となる。
【０１２２】
さらに、アプリ識別子「Ａｐｐ−１」の情報は、図５に示したアプリ情報テーブルＴ２２００のアプリ識別子Ｔ２２０１が「Ａｐｐ−１」の情報となる。
【０１２３】
グループ管理プログラムＰ２１００は、これら情報を参照し、利用者識別子「Ｕ−１」かつアプリ識別子「Ａｐｐ−１」から、「アプリ種別：議事録作成支援、業界：金融業界、組織：Ａ銀行」であることを取得する。
【０１２４】
そして、モデル管理テーブルの、現在評価していない各レコードについて、順に同じ処理をし、「アプリ種別、業界、組織」情報を取得する。例えば、利用者識別子「Ｕ−２」かつアプリ識別子「Ａｐｐ−２」では、「アプリ種別：議事録作成支援、業界：金融業界、組織：Ａ銀行」であることが取得される。
【０１２５】
利用者識別子「Ｕ−１」かつアプリ識別子「Ａｐｐ−１」と利用者識別子「Ｕ−２」かつアプリ識別子「Ａｐｐ−２」は、グループ条件のうち、「アプリ種別：一致、業界：一致、組織：一致」を満足するので、次に類似度の算出を実行する。
【０１２６】
類似度は、各アプリのログ情報をアプリ管理プログラムＰ３０００から取得し、形態素解析によるキーワードの出現頻度の分析、Ｗｏｒｄ２Ｖｅｃを用いた文章間の類似度算出、あるいはクラスタリング分析手法を用いて算出してもよい。
【０１２７】
算出された類似度が、グループ条件「類似度：＞０．８」を満足する場合、グループ条件を満足した利用者識別子と、グループ条件識別子と、グループ評価結果とを、グループ管理プログラムＰ２１００が管理するメモリ上に記録する。
【０１２８】
そして、全てのレコードが評価済みであれば（ステップＳ４００６）、グループ管理プログラムＰ２１００は、グループ情報テーブルＴ２５００に新規レコードを追加し、グループ識別子Ｔ２５０１の値を格納し、ステップＳ４００５にてグループ条件を満足すると評価した利用者識別子をメンバー情報Ｔ２５０２に格納し、評価に使用したグループ条件をグループ条件識別子Ｔ２５０３に格納し、評価結果をグループ評価結果Ｔ２５０４に格納する（ステップＳ４００７）。
【０１２９】
一方、ステップＳ４００５にてグループ条件を満足しない場合や、モデル管理テーブルのレコードのうち、まだグループ条件を評価していないレコードがある場合は、ステップＳ４００４の処理に戻る。
【０１３０】
そして、全てのレコードが評価済みであれば（ステップＳ４００８）、処理を終了する（ステップＳ４００９）。
【０１３１】
一方、グループ条件テーブルのレコードのうち、まだグループ条件を評価していないレコードがある場合は、ステップＳ４００３の処理に戻る。
【０１３２】
このようにして、グループ管理プログラムＰ２１００によって、音声認識処理を利用する利用者が所定のグループ条件に従ってグループ分けされることになる。
【０１３３】
図１７は、図１に示したモデル管理計算機２１００が有する通知管理プログラムＰ２２００が実行する処理を説明するためのフローチャートであり、通知要求を受信して通知する処理を示す。
【０１３４】
通知管理プログラムＰ２２００が実行されると、通知管理プログラムＰ２２００は、通知要求の待受を開始する（ステップＳ５０００）。
【０１３５】
通知管理プログラムＰ２２００は、通知要求を受信すると（ステップＳ５００１）、受信した通知要求の内容を解析し、通知先のアプリの特定、通知内容の整形、通知に対する回答要否の特定、などを実行する（ステップＳ５００２）。なお、通知要求には、例えばアプリ利用者１０００の識別情報、アプリ利用者１０００が利用しているアプリの識別情報、当該アプリが使用するモデル情報、当該モデルの評価情報、通知回答の要否、等が含まれ、通知要求は、図１３に示したステップＳ１００６にてモデル管理プログラムＰ２０００が送信してもよく、他のプログラムが送信してもよい。
【０１３６】
次に、通知管理プログラムＰ２２００は、アプリ利用者１０００が利用しているアプリに対して、ステップＳ５００２にて解析した通知内容を送信する（ステップＳ５００３）。
【０１３７】
その後、通知管理プログラムＰ２２００は、ステップＳ５００３にてアプリへ送信した通知の回答を受信すると（ステップＳ５００４）、通知要求の要求元に対して、受信した通知の回答を通知結果として送信し（ステップＳ５００５）、処理を終了する（ステップＳ５００６）。なお、通知結果には、例えば、通知処理の成功または失敗を示す値、ステップＳ５００４で受信した回答情報、等が含まれる。また、通知要求において、通知に対する回答が必要であると指定されていない場合は、回答の受信を待たずステップＳ５００５へ進む。
【０１３８】
通知に対する回答が必要な場合は、例えば、モデル管理プログラムＰ２０００が、生成したモデル採用の可否を利用者に通知し、その可否の回答を要する場合が挙げられるが、それに限定されない。
【０１３９】
図１８は、図１の示したモデル管理計算機２１００が有するモデル統合プログラムＰ２３００が実行する処理を説明するためのフローチャートであり、統合条件テーブルＴ２７００の情報に従いモデル統合する処理を示す。なお、モデル統合プログラムＰ２３００は、モデル管理プログラムＰ２０００により定期的に起動してもよいし、アプリ利用者１０００からモデル統合の要求を受けて起動してもよい。
【０１４０】
モデル統合プログラムＰ２３００が起動すると（ステップＳ６０００）、モデル統合プログラムＰ２３００は、モデル管理テーブルＴ２０００の全てのレコードを取得し（ステップＳ６００１）、また、統合条件テーブルＴ２７００の全てのレコードを取得する（ステップＳ６００２）。ただし、統合条件ステータスＴ２７０３に未使用を示す値、例えば「無効」の文字列など、が格納されている場合、当該レコードは取得しない。
【０１４１】
次に、モデル統合プログラムＰ２３００は、ステップＳ６００１にて取得したモデル管理テーブルＴ２０００のレコードの一つを取り出し（ステップＳ６００３）、また、ステップＳ６００２にて取得した統合条件テーブルＴ２７００のレコードの一つを取り出す（ステップＳ６００４）。
【０１４２】
次に、モデル統合プログラムＰ２３００は、モデル管理情報に含まれるグループ識別子Ｔ２００４が同じモデル管理情報をステップＳ６００１で取得したモデル管理テーブルＴ２０００から探し、統合条件Ｔ２７０２を評価するための情報を、学習データテーブルＴ２４００、評価結果テーブルＴ２９００、アプリ管理プログラムＰ３０００から取得し、統合条件を評価する（ステップＳ６００５）。
【０１４３】
統合条件を満足する場合は、統合条件を満足したグループ情報に含まれるモデル情報を参照し、そのモデル識別子Ｔ２３０１が有する学習データ識別子Ｔ２３０３を取得する。学習データ識別子にアプリ利用者以外により生成されたモデルであることを識別できる値、例えば「―」などが格納されている場合は、その学習データ識別子は取得しない。取得した全ての学習データ識別子Ｔ２３０３が示す学習データを学習データテーブルＴ２４００から取得し、一つの学習データとして統合する（ステップＳ６００６）。
【０１４４】
一方、統合条件を満足しない場合は、ステップＳ６００４における処理に戻る。
【０１４５】
モデル統合プログラムＰ２３００は、結合した学習データを用いて、モデル生成プログラムＰ４０００にモデル生成要求を送信する（ステップＳ６００７）。このようにして、モデル管理システム２０００は、グループに属する利用者に応じて作成されたモデル生成用データを含む学習データをモデル生成システムに与えてグループに対応する統合モデルを生成させることになる。
【０１４６】
その後、モデル統合プログラムＰ２３００は、モデル生成プログラムＰ４０００からモデル生成結果を受信すると（ステップＳ６００８）、受信したモデル生成結果と、モデル採用条件テーブルＴ２８００のモデル採用条件Ｔ２８０２と優先度Ｔ２８０４とを用いて、モデル採否処理を実行する（ステップＳ６００８）。モデル採否処理は、優先度Ｔ２８０４が最も高優先度なモデル採否条件のみ実行してよいし、優先度Ｔ２８０４の高優先度から順にモデル採用条件を評価して条件を満足するものを実行してもよい。なお、モデル生成プログラムＰ４０００から受信したモデル生成結果には、例えばアプリ利用者１０００の識別情報、アプリ利用者１０００が利用しているアプリの識別情報、生成されたモデルの識別情報、生成されたモデルの評価情報等が含まれる。このように、生成された統合モデルの評価結果に基づいて統合モデルの採否を決定するため、評価を得た信頼度の高い統合モデルを得ることができる。また、モデル採用手段Ｔ２８０３にて利用者通知とされた場合は、評価結果に基づく情報を利用者に提示して統合モデルの採否の判断を促し、利用者が統合モデルを採用すると判断した場合、その利用者について統合モデルを採用することとなり、利用者の意思に基づいて統合モデルを適用することができる。さらに、統合モデルの採否を決定するための複数の採用条件に付与された優先度に応じて統合モデルの採否を決定することで、統合モデルの採否を決定するための複数の採用条件を設定しておきながらも利用者に応じた統合モデルを適用することができる。
【０１４７】
次に、モデル統合プログラムＰ２３００は、受信したモデル生成結果をもとに、モデル管理テーブルＴ２０００にモデル管理情報を格納する（ステップＳ６０１０）。モデル管理テーブルＴ２０００のレコードに、既に当該の利用者識別子とアプリ識別子の値を有するレコードがある場合は、当該レコードの情報を更新し、当該の利用者識別子とアプリ識別子の値を有するレコードがない場合は、新規レコードを作成して情報格納する。
【０１４８】
モデル統合プログラムＰ２３００は、統合条件テーブルの全てのレコードが評価済みの場合であって（ステップＳ６０１１）、モデル管理テーブルの全てのレコードが評価済みの場合（ステップＳ６０１２）、処理を終了する（ステップＳ６０１３）。
【０１４９】
一方、統合条件テーブルのレコードのうち、まだ評価していないレコードがある場合は、ステップＳ６００４の処理に戻り、また、モデル管理テーブルのレコードのうち、まだグループ条件を評価していないレコードがある場合はＳ６００３の処理に戻る。
【０１５０】
このように、モデル統合プログラムＰ２３００が、グループ分けを実行したときに所定の統合条件が満たされている場合に、モデル生成システム４０００にグループに対応する統合モデルを生成させることにより、グループについての適切な統合モデルを迅速に適用可能とすることができる。
【０１５１】
図１９は、図１に示した通知管理プログラムＰ２２００が、モデル生成の通知をアプリ利用者１０００のアプリＰ３１００に表示した画面例を示す図である。
【０１５２】
本画面例は図１９に示すように、アプリＰ３１００が議事録作成支援アプリである場合の画面Ｇ１０００を示す。
【０１５３】
画面Ｇ１０００上には、通知管理プログラムＰ２２００がアプリＰ３１００に送信した通知内容Ｇ１００１が表示されている。
【０１５４】
通知内容Ｇ１００１には、例えば、アイコンと、通知メッセージと、詳細情報をさらに表示するためのリンクやボタンと、利用者１０００の通知に対するアクションを選択可能な複数のボタンなどを表示させてよい。アクションは、「ＯＫ」「キャンセル」の他にも、モデルの採否を選択するために「採用」「不採用」としてもよい。
【０１５５】
通知内容Ｇ１００１は、バナー形式での表示の他にも、利用者計算機１０１０のオペレーティングシステムが備える通知機能、例えばタスクトレイの通知機能などを利用してもよく、画面Ｇ１０００の上部にリボン状に表示させてもよいし、アプリＰ３１００がさらに利用者１０００のスマートフォンやタブレットといった端末に通知を送信して表示させてもよく、通知内容が表示されればその他の方法でもよい。
【０１５６】
通知内容Ｇ１００１に表示されているアクションを利用者１０００が選択した場合、選択した項目の情報は通知管理プログラムＰ２２００へ送信される。ただし、通知内容Ｇ１００１に利用者１０００のアクションを選択するためのボタン等が無い場合には、通知管理プログラムＰ２２００への選択項目の送信は実行されない。
【０１５７】
上述したように本形態においては、ユーザをグループ分けし、グループに属するユーザに応じて作成されたモデル生成用データを機械学習することにより当該グルームに対応する統合モデルを生成するので、モデルを用いた予測処理によりユーザに提供される処理結果の向上を支援することができる。具体的には、アプリ利用者１０００は他の利用者のカスタムモデルの詳細を把握しなくとも、同じドメインに属する複数の利用者にとって精度の高いモデルを利用可能となり、アプリ利用者の満足度向上が期待される。
【０１５８】
音声認識技術を活用するアプリがクラウドコンピューティングのように共通の基盤で提供される場合、複数のユーザが同じアプリを共通基盤上で個別に利用することが考えられる。その際、基盤は共通ではあるがアプリの実行環境は個々の利用者毎に隔離されているため、個々の利用者は自身のアプリの音声認識精度を向上させるためにモデルのカスタマイズを実施する。
【０１５９】
一方、同じアプリを利用する複数ユーザのうち、所属する業界が同じであったり、同じ企業内で職種の近い部署に所属していたりするユーザは、音声認識の対象となる発話の内容が近いことが多い。例えば、会議の音声データを音声認識する議事録作成支援アプリの場合、同じ業界のユーザ同士であれば共通の業界用語が含まれることが多いと考えられる。そのような場合、上述した実施の形態の構成および手段を採用することでえ、他のユーザがカスタマイズしたモデルも利用することができ、個々の利用者が個別にカスタマイズするよりも、音声認識の精度向上が期待できる。
【０１６０】
なお、上述した実施の形態においては、予測処理として音声認識処理を例に挙げて説明したが、予測処理としては画像認識等の他の例も考えられ、音声認識処理には限定されない。
【符号の説明】
【０１６１】
１０００…アプリ利用者、１０１０…利用者計算機、１１００…ネットワーク、１２００…ネットワーク機器、２０００…モデル管理システム、２１００…モデル管理計算機、３０００…アプリケーション管理システム、３１００…アプリ管理計算機、３２００…アプリ実行計算機、４０００…モデル生成システム、４１００…モデル生成計算機、５０００…モデル評価システム、５１００…評価実行計算機
【図１】
2020201445.tif 000003
【図２】
2020201445.tif 000004
【図３】
2020201445.tif 000005
【図４】
2020201445.tif 000006
【図５】
2020201445.tif 000007
【図６】
2020201445.tif 000008
【図７】
2020201445.tif 000009
【図８】
2020201445.tif 000010
【図９】
2020201445.tif 000011
【図１０】
2020201445.tif 000012
【図１１】
2020201445.tif 000013
【図１２】
2020201445.tif 000014
【図１３】
2020201445.tif 000015
【図１４】
2020201445.tif 000016
【図１５】
2020201445.tif 000017
【図１６】
2020201445.tif 000018
【図１７】
2020201445.tif 000019
【図１８】
2020201445.tif 000020
【図１９】
2020201445.tif 000021