(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-12
(45)【発行日】2024-01-22
(54)【発明の名称】学習モデル管理システム、学習モデル管理方法、およびプログラム
(51)【国際特許分類】
G06Q 50/10 20120101AFI20240115BHJP
【FI】
G06Q50/10
(21)【出願番号】P 2019211869
(22)【出願日】2019-11-22
【審査請求日】2022-11-11
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100114775
【氏名又は名称】高岡 亮一
(74)【代理人】
【識別番号】100121511
【氏名又は名称】小田 直
(74)【代理人】
【識別番号】100208580
【氏名又は名称】三好 玲奈
(72)【発明者】
【氏名】白河 祐貴
【審査官】太田 龍一
(56)【参考文献】
【文献】国際公開第2016/151618(WO,A1)
【文献】特開2016-191973(JP,A)
【文献】特開2019-087101(JP,A)
【文献】特表2021-500654(JP,A)
【文献】特開2016-018308(JP,A)
【文献】米国特許出願公開第2016/0358068(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
学習モデルの推定結果の提供先からのフィードバックに基づき、該学習モデルの性能評価を行う学習モデル管理システムであって、
前記性能評価を行うために必要なフィードバックの件数を特定するための情報の入力を受け付ける受付手段と、
前記受付手段により受け付けた入力に対応する件数のフィードバックが集まる前に、該件数よりも少ない件数による性能の仮評価を行う評価手段と、
前記評価手段により複数回、行われた仮評価の結果に基づき前記学習モデルの性能の劣化が検出された場合に、当該性能の劣化に対応する通知を提供する提供手段と、
を有することを特徴とする学習モデル管理システム。
【請求項2】
前記評価手段により複数回、行われた前記仮評価の結果から求めた、前記学習モデルの性能の変化傾向に基づいて、前記学習モデルの性能が劣化しているか否かを判断することを特徴とする請求項1に記載の学習モデル管理システム。
【請求項3】
前記通知は、前記受付手段により受け付けた入力に対応する件数のフィードバックを要求するための通知であることを特徴とする請求項1または2に記載の学習モデル管理システム。
【請求項4】
前記通知は、フィードバックの収集対象としてレコメンドするユーザを、予め定義した1または複数種類のユーザ属性に基づいて特定するための情報を含むことを特徴とする請求項3に記載の学習モデル管理システム。
【請求項5】
前記通知は、予め保存したユーザテーブルから、前記ユーザ属性に基づいて特定したユーザの情報を抜き出すことによって作成した、レコメンドリストを含むことを特徴とする請求項4に記載の学習モデル管理システム。
【請求項6】
前記受付手段により受け付けた入力に対応する件数のフィードバックを用いた性能評価の結果に従い、前記学習モデルに関して再学習が実行される、請求項1~5の何れか1項に記載の学習モデル管理システム。
【請求項7】
前記再学習は、前記フィードバックに含まれる少なくとも一部のデータを、学習データとして用いることで実行されることを特徴とする請求項6に記載の学習モデル管理システム。
【請求項8】
学習モデルの推定結果の提供先からのフィードバックに基づき、該学習モデルの性能評価を行う
学習モデル管理システムにおける学習モデル管理方法であって、
前記性能評価を行うために必要なフィードバックの件数を特定するための情報の入力を受け付ける受付工程と、
前記受付工程により受け付けた入力に対応する件数のフィードバックが集まる前に、
前記学習モデル管理システムが該件数よりも少ない件数による性能の仮評価を行う評価工程と、
前記評価工程により複数回、行われた仮評価の結果に基づき前記学習モデルの性能の劣化が検出された場合に、
前記学習モデル管理システムが当該性能の劣化に対応する通知を提供する提供工程と、
を有することを特徴とする学習モデル管理方法。
【請求項9】
請求項1乃至7の何れか1項に記載の学習モデル管理システムの各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習モデルを管理する技術に関し、より詳細には、学習データが少ない場合の、学習モデルの管理の信頼性を高める技術に関する。
【背景技術】
【0002】
機械学習機能を用いるシステムでは、予め、学習データを用いて学習モデルを調整したあとで、運用を開始する。一般的に、学習モデルは、様々な理由で、運用時間の経過と共に予測精度が劣化していくことが知られている。
【0003】
これに対して、従来より、システムの運用中に学習モデルを定期的に更新することで、予測精度を劣化から回復させ或いは向上させる技術が知られている。例えば、下記特許文献1のシステムでは、所定量の学習データが蓄積されるたびに自動的に予測精度を評価し、その評価結果が基準値を下回っている場合に、学習モデルの再学習を行う。そして、その再学習後の予測精度が、運用中の学習モデルの予測精度を上まわると判断された場合に、その運用中の学習モデルに対する更新処理を行う。特許文献1の学習モデルは、このような評価・学習・更新のサイクル(以下、“継続的学習サイクル”と記す)を実行することで、予測精度の回復・向上を図っている。
【0004】
加えて、特許文献1のシステムは、再学習した学習モデルと運用中の学習モデルとで予測精度を単純に比較して評価するのではなく、運用コストに鑑みた評価を行う技術も提案している。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述したように、学習モデルは、継続的学習サイクルを実行することで、予測精度を劣化から回復させたり向上させたりできる。ここで、一般的に、学習モデルに対する評価の信頼性は、その評価の際に学習モデルへ入力する学習データの“ばらつき”、“量”、“新しさ”等に依存する。すなわち、学習モデルの評価においては、例えば少量の学習データのみを用いて予測精度の評価を実施しても、信頼性のある評価結果が得られない可能性が高く、そのため、多くのシステムでは、学習データが一定量に満たない場合は評価を実施しない。したがって、学習データの流入頻度(収集頻度)が少ないシステムでは、継続的学習サイクルの実行頻度が少なく、その結果、予測精度が劣化した状態であるにもかかわらずそのまま運用を続けなければならなくなる場合も多い。
【0007】
このため、継続的学習サイクルを充分な頻度で実行して必要な予測精度を維持するためには、学習データ(すなわちユーザからのフィードバックデータ)を、継続的に収集し続ける必要がある。しかしながら、常時継続してフィードバックデータを積極的に収集するよう運用することは、システムリソースなど、運用コストを増大させる原因となる。
【0008】
本発明は、上記課題を解決するためになされたものであり、従来の継続的学習サイクル改良するための仕組みを提供する。
【課題を解決するための手段】
【0009】
本発明の一実施形態に係る学習モデル管理システムは、学習モデルの推定結果の提供先からのフィードバックに基づき、該学習モデルの性能評価を行うシステムであって、前記性能評価を行うために必要なフィードバックの件数を特定するための情報の入力を受け付ける受付手段と、前記受付手段により受け付けた入力に対応する件数のフィードバックが集まる前に、該件数よりも少ない件数による性能の仮評価を行う評価手段と、前記評価手段により複数回、行われた仮評価の結果に基づき前記学習モデルの性能の劣化が検出された場合に、当該性能の劣化に対応する通知を提供する提供手段と、を有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、従来の継続的学習サイクル改良するための仕組みを提供することが可能となる。
【図面の簡単な説明】
【0011】
【
図1】本発明の各実施形態に係るネットワーク構成を示す概念図である。
【
図2】各実施形態に係るハードウエア構成を示すブロック図である。
【
図3】(A)~(D)ともに、本発明の各実施形態に係るソフトウェア構成を示すブロック図である。
【
図4】各実施形態における、学習モデルの予測精度とフィードバックデータ数の関係を示すグラフである。
【
図5】各実施形態に係るモデル管理システムで継続的学習サイクルを設定する画面を示す概念図である。
【
図6】各実施形態に係る学習モデルが劣化したときの予測精度と試行回数との関係を示すグラフである。
【
図7】各実施形態に係る継続的学習サイクルを説明するためのフローチャートである。
【
図8】実施形態2に係るレコメンド機能を説明するための図であり、設定画面の概念図である。
【
図9】実施形態2に係るレコメンド機能を説明するための図であり、レコメンド結果を示す表である。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態について、図面を用いて説明する。
[実施形態1]
<ネットワーク構成>
【0013】
図1は、実施形態1に係るネットワーク構成の一例を示す図である。
図1に示したように、本実施形態のシステムは、学習モデル管理システム101と、予測システム102、業務システム103、端末104とを含む。これらシステム101-103および端末104は、ネットワーク105を介して相互に接続されている。
【0014】
学習モデル管理システム101は、継続的学習サイクルを実行するための機能を提供する。すなわち、学習モデル管理システム101は、学習モデルの評価・学習・更新を実行する機能を備えており、また、それらを実行するために複数種類のデータ格納部(後述)を備えている。
【0015】
予測システム102は、運用中学習モデル(後述)に基づき、任意の事象に対して、予測機能を提供するシステムである。
業務システム103は、業務に関する要求を端末104から受信し、これ処理して、応答を返送する、フロントエンドとしての機能を提供する。
【0016】
端末104は、ユーザが所望の処理を実行するための情報処理端末である。
ネットワーク105は、例えば、インターネット等のLAN、WAN、電話回線、専用デジタル回線、ATMやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等のいずれかまたは組み合わせにより実現される、通信ネットワークである。
【0017】
なお、本実施形態に代えて、業務システム103と予測システム102とを一体化した構成を採用してもよいし、学習モデル管理システム101、予測システム102および業務システム103を一体化した構成を採用してもよい。
【0018】
<ハードウェア構成>
図2は、本実施形態で使用する学習モデル管理システム101の、バードウェア構成の例を概略的に示すブロック図である。なお、予測システム102、業務システム103および端末104のハードウェア構成も同様でよいので、説明を省略する。
【0019】
図2において、CPU201(Central Processing Unit)は、例えばオペレーティングシステム上で各種アプリケーションプログラムを動作させることで、学習モデル管理システム101の全体を制御して各種処理を実行する。
【0020】
RAM(Random Access Memory)202は、CPU201の作業領域等として使用される。
ROM(Read Only Memory)203は、ブートプログラムを格納する。このブートプログラムを用いて、CPU201は、オペレーティングシステムを起動する。
【0021】
キーボードコントローラ204は、キーボード208や図示しないポインティングデバイス(マウス、タッチパッド、タッチパネル、トラックボールなど)からの操作入力を受け付ける。
【0022】
ディスプレイコントローラ205は、ディスプレイ209の表示を制御する。
ディスクコントローラ206は、各種データを記憶するハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)等の記憶装置210へのデータアクセスを制御する。
【0023】
ネットワークインターフェース207は、LANなどのネットワークに接続されて、ネットワークに接続された他の機器と通信する。
内部バス211は、CPU201を、RAM202、ROM203、各種コントローラ204~206やネットワークI/F207と接続する。
<システム構成>
【0024】
図3は、本実施形態に係るソフトウェア構成の一例を概略的に示すブロック図である。以下、
図3を用いて、学習モデル管理システム101、予測システム102、業務システム103および端末104のシステム構成を説明し、その後で、具体的なデータと処理について説明する。
【0025】
図3(A)は、学習モデル管理システム101のソフトウェア構成例を示す。
上述のように、学習モデル管理システム101は、継続的学習サイクルを実行するための機能を提供する。
【0026】
通信部311は、ネットワークI/F207を介して予測システム102や業務システム103、端末104などの外部の機器と通信するための、ソフトウェアモジュールである。
【0027】
Webアプリケーション管理部312は、端末104のWebブラウザ340(後述)からの要求に応じて、HTMLやJavaScript(登録商標)などのWebコンテンツから成るWebアプリケーションを提供するソフトウェアである。また、Webアプリケーション管理部312は、Webアプリケーション動作させるためのWebAPIも提供しており、業務システム103や端末104との間でデータを送受信する。
【0028】
ユーザ情報格納部313は、業務システム103などから入力されたユーザ情報を格納してデータベース化するソフトウェアである。データの格納には、記憶装置210が使用される。
【0029】
フィードバックデータ格納部314は、業務システム103や端末104などから入力されたフィードバックデータを、学習データとして格納してデータベース化するソフトウェアである。データの格納には、記憶装置210が使用される。本実施形態では、フィードバックデータ格納部314に格納されるフィードバックデータが、ユーザから収集したデータであることを想定している。
ユーザ情報格納部313およびフィードバックデータ格納部314に格納されるデータの例は後述する。
【0030】
学習モデル評価部315は、学習モデルの評価を実施するソフトウェアモジュールである。学習モデル評価部315が学習モデルを評価する際には、フィードバックデータ格納部314に格納されているフィードバックデータを、学習データとして使用する。
【0031】
学習モデル学習部316は、学習モデルを学習させて、新しい学習モデルを作成するソフトウェアモジュールである。学習モデル学習部316は、新しい学習モデルを作成する際に、学習データとして、フィードバックデータ格納部314に格納されているフィードバックデータを使用する。
学習モデル評価部315および学習モデル学習部316の動作の詳細に関しては、後述する。
【0032】
学習モデル更新指示部317は、予測システム102で運用中の学習モデル322を、学習モデル学習部316で作成した新しい学習モデルに更新するか否かの判断を行うソフトウェアモジュールである。更新すると判断した場合、学習モデル更新指示部317は、予測システム102の学習モデル更新部323に更新指示を送る。
【0033】
継続的学習サイクル実行部318は、学習モデル評価部315、学習モデル学習部316および学習モデル更新指示部317を制御する。この制御により、学習モデル評価部315、学習モデル学習部316および学習モデル更新指示部317は、継続的学習サイクル、すなわち運用中の学習モデル322に対する評価・学習・更新の繰り返しを実行する。継続的学習サイクル実行部318の具体的な処理については、後述する。
【0034】
フィードバックデータ収集通知部319は、フィードバックデータの収集が必要であると判断された場合に、電子メール等の手段で予め登録された宛先に通知する、ソフトウェアモジュールである。フィードバックデータ収集通知部319の処理内容については、後述する。
【0035】
図3(B)は、予測システム102のソフトウェアの構成例を示す。
上述したように、予測システム102は、運用中学習モデル322(後述)を用いて、所望の事象に対して、予測機能を提供する。
【0036】
通信部321は、ネットワークI/F207を介して、学習モデル管理システム101や業務システム103、端末104などの外部機器と通信するための、ソフトウェアモジュールである。
【0037】
運用中学習モデル322は、本運用されている学習モデルである。学習モデルとは、入力されたデータに対して予測結果を出力するソフトウェアモジュールである。運用中学習モデル322の動作については、学習モデル評価部315および学習モデル学習部316の動作とともに、後述する。
【0038】
学習モデル更新部323は、学習モデル管理システム101などの外部システムから通信部321を介して受信した指示に応答して、運用中学習モデル322を更新するための、ソフトウェアモジュールである。
【0039】
図3(C)は、業務システム103のソフトウェアの構成例を示す。
上述したように、業務システム103は、業務に関する要求を端末104から受信し、これ処理して、応答を返送する。なお、通常の業務システムは、業務の内容に応じて様々な機能を備えているが、ここでは、業務システム103について、本実施形態の特徴を理解するために必要な最低限の説明のみを行う。
【0040】
通信部331は、ネットワークI/F207を介して、学習モデル管理システム101や予測システム102、端末104などの外部機器と通信するための、ソフトウェアモジュールである。
【0041】
Webアプリケーション管理部332は、端末104のWebブラウザ340(後述)からの要求に応じて、HTMLやJavaScriptなどのWebコンテンツから成るWebアプリケーションを提供するソフトウェアである。具体的には、Webアプリケーション管理部332は、Webブラウザ340に、業務アプリケーションを提供する。そして、Webブラウザ340を介して業務アプリケーションへ入力されたデータを処理するとともに、必要に応じて学習モデル管理システム101や予測システム102と通信する。例えば、端末104のユーザが、Webブラウザ340上の業務アプリケーションを用いて、ある事象に対する予測を要求した場合、Webアプリケーション管理部332は、予測システム102に対して、その予測の結果を要求する。また、端末104のユーザが、Webブラウザ340上の業務アプリケーションへ、ユーザ情報やフィードバックデータを入力した場合、Webアプリケーション管理部332は、入力されたデータを、学習モデル管理システム101へ転送する。
【0042】
図3(D)は、端末104のソフトウェアの構成例を示す。
Webブラウザ340は、通信部341、スクリプト実行部342および表示部343を備える。
【0043】
通信部341は、ネットワークI/F207を介して、学習モデル管理システム101および業務システム103のWebアプリケーション管理部312、332から、Webアプリケーションを取得するためのソフトウェアモジュールである。
【0044】
スクリプト実行部342は、通信部341が取得したWebアプリケーションに含まれる、JavaScriptなどを解析・実行するソフトウェアモジュールである。
表示部343は、スクリプト実行部342がHTMLやCSS、JavaScriptを実行することで生成される、ユーザインタフェースを表示するソフトウェアモジュールである。
【0045】
なお、本実施形態では、ユーザ情報やフィードバックデータを学習モデル管理システム101の格納部に格納しているが、それらのデータを業務システム103内のデータベース等に格納して学習モデル管理システム101が必要に応じて取得する構成でもよい。また、端末104がシステム101、103と通信するためのクライアントアプリケーションとしてWebアプリケーションを用いているが、ネイティブアプリケーションを用いてもよい。
【0046】
次に、学習モデル管理システム101の学習モデル評価部315、学習モデル学習部316および運用中学習モデル322の動作について説明する。
【0047】
本実施形態では、ユーザに適合する不動産物件を勧めるための、簡易的なシステムを例にとって説明する。運用中学習モデル322は、性別や年齢、家族構成、年収、希望地域などの入力データに基づいて、お勧めの物件を出力(推定)する学習モデルとする。この入力データとしては、ユーザ情報格納部313に格納されたユーザ情報を用いる。ユーザ情報のデータの例を、表1に示す。
表1のユーザの情報は、例えば、本システムを利用しているユーザ(サービス利用者や顧客など)または管理者(サービス提供者や営業担当者など)によって登録される。
【0048】
【0049】
次に、学習モデル学習部316が、運用中学習モデル322として使用する学習モデルを学習する方法について説明する。
表2は、学習データ、すなわちユーザからのフィードバックデータの例を示している。これらのデータは、フィードバックデータ格納部314に格納される。
【0050】
【0051】
学習データとは、学習モデルを学習する際に使用する入力データと教師データ(正解データ)との組み合わせである。表2に示した各項目のうち、入力データは、“物件ID”、“性別”、“年齢”、“家族構成”および“年収”であり、また、教師データは、“結果”である。ここで、“物件ID”は、各物件を特定するIDであり、それぞれの“希望地域”(表1参照)に対応する物件の集合を意味している。
【0052】
学習モデル学習部316は、表2のフィードバックデータを用いて、“教師あり学習”を用いたパターン認識モデルの一つである、SVM(Support Vector Machine)に基づく学習を行う。ここで、SVMは、あくまで一例であり、その他の手法、例えば二項分類を行うアルゴリズムを用いる方法や、ニューラルネットワークを用いる方法など、様々な機械学習アルゴリズムを適用することが可能である。
【0053】
表2のフィードバックデータは、本実施形態のシステムを利用するユーザがアンケート等の手段を通して入力してもよいし、管理者がユーザからのヒアリング等に基づいて入力してもよい。表2のフィードバックデータは、1ユーザにつき0件以上存在するものとする。
最後に、学習モデル評価部315が、運用中学習モデル322を評価する方法について、説明する。
【0054】
学習モデル評価部315は、表2のフィードバックデータを用いて運用中学習モデル322にお勧めの物件を出力(推定)させ、その時の正解率(accuracy)を予測精度として算出することで、この運用中学習モデル322を評価する。このとき、信頼性のある予測精度を得るためには、表2のフィードバックデータのうち、学習モデルの学習時に使用したフィードバックデータとは異なるものを、評価用のフィードバックデータとして使用することが望ましい。
【0055】
なお、本実施形態では、予測精度の指標として正解率(accuracy)を用いたが、学習モデルの特性に応じて、例えば適合率(precision)や再現率(recall)など、他の指標を用いることもできる。
【0056】
このように、本実施形態では、学習モデル評価部315が、予測システム102内に形成した運用中学習モデル322に対して推定を行わせる。但し、予測システム102の負荷を低減するために、同一の学習モデルを学習モデル管理システム101に配備し、その学習モデルに対してを行わせることにしてもよい。
【0057】
上述のように、学習モデルの予測精度に対する信頼性を充分に高くするためには、その学習モデルの入力パラメータ数に対して充分な量の学習データを用いて評価することが望まれる。
【0058】
図4は、運用中学習モデル322の、予測精度とフィードバックデータ数との関係を示すグラフである。
図4において、実線401は、学習モデルの予測精度の時間的変化を表しており、また、点線402は、フィードバックデータ数(蓄積数)の時間的変化を表している。
【0059】
実線401が示すように、一般に、学習モデルの予測精度は、運用時間に応じて低下する。一方、点線402が示すように、フィードバック数は、運用時間に応じて増加する。そして、フィードバックデータ数が所定数を超えると、継続的学習サイクル実行部318が継続的学習サイクル(評価・学習・更新)を実行するので、予測精度が上昇する。
図4の例では、8ヶ月目にフィードバックデータが所定数(この例では1000件)を超えたので、継続的学習サイクル実行部318が継続的学習サイクルを実行し、その結果、9ヶ月目の予測精度が上昇している。また、継続的学習サイクルの実行に伴い、フィードバックデータを廃棄する。その後、学習モデル管理システム101のフィードバックデータ格納部314へ、新しいフィードバックデータが逐次蓄積される。更新実行後にフィードバックデータを廃棄するのは、最新のフィードバックデータを使用するためである。
【0060】
このように、
図4の学習モデルでは、評価が実行される条件は、フィードバックデータ数が1000を超えることである。その一方で、フィードバックデータ数が1000以下であるために継続的学習サイクルが実行されない期間(0~8ヶ月目)は、学習モデルの予測精度が劣化し続ける可能性がある。しかも、この間に、実際に学習モデルの評価が実行されているわけではないため、このシステムの管理者は、学習モデルの予測精度劣化の程度に気付くことが難しい。
仮に学習モデルの予測精度の劣化に気付いたとしても、学習データが不十分の可能性もある。再学習のための学習データには、フィードバックデータの少なくとも一部とそれらに対応する入力パラメータが用いられるためである。前述した継続的学習サイクルが実行されない期間は、フィードバックデータの絶対数が少ないため、そのままでは再学習を実行することができない。したがって、学習モデルを更新、置換することにより、予測精度を向上させることが困難である。
【0061】
以上の説明からわかるように、学習モデルの予測精度が劣化する速さに対して、フィードバックデータ数が増加する速さが小さい場合、継続的学習サイクルが実行される時間間隔が長くなる。そのため、学習モデルは、予測精度が劣化した状態で運用されてしまうおそれがある。
【0062】
これに対して、本実施形態では、以下の仕組みにより、フィードバックデータ数の増加が少ないために継続的学習サイクルが実行される時間間隔が長い場合でも、学習モデルの予測精度を充分高い状態に維持できる。
【0063】
以下、本実施形態に係る学習モデルについて、
図5および
図6を用いて説明する。
図5は、本実施形態に係る継続的学習サイクルのパラメータ設定を行う画面を示す概念図である。
【0064】
図5の画面501は、学習モデル管理システム101のWebアプリケーション管理部312から端末104へ提供されたウエブアプリケーションに基づいて、Webブラウザ340が、表示部343へ表示させる。
【0065】
本実施形態では、この画面501の操作は、運用中学習モデル322の管理者によって行われることとする。
図5からわかるように、画面501により、“評価条件”、“学習条件”および“モデルの更新条件”に関する設定が行われる。
【0066】
“評価条件”の設定において、ラジオボタン511は、学習モデル評価部315に運用中学習モデル322の評価を自動的に実行させるか否か、すなわち、継続的学習サイクルを自動的に実行するか否かを選択するための設定ボタンである。ラジオボタン511で、“自動的に評価する”を選択した場合は、プルダウンメニュー512以降の設定を行う。一方、ラジオボタン511で、“自動的に評価しない”を選択した場合は、プルダウンメニュー512以降の設定は行わない。
【0067】
なお、運用中学習モデル322の予測精度を向上させるためには、ラジオボタン511で、常に“自動的に評価する”を選択しておくことが望ましい。しかし、学習モデル管理システム101のコンピュータリソースの制限や、本実施形態のシステムが従量課金制のSaaSとして提供される場合などに鑑みて、本実施形態のUIでは、“自動的に評価しない”を選択できるようにした。同様の理由により、本実施形態のUIは、最適化されていない設定項目を他にも含んでおり、全ての設定項目が本発明に必要ななわけではない。
【0068】
プルダウンメニュー512は、学習モデル評価部315が運用中学習モデル322を評価する頻度を設定するための設定ボタンである。
テキストボックス513は、学習モデル評価部315が運用中学習モデル322を評価するために必要なフィードバックデータ数(以下、“最小フィードバック数”と記す)を設定するために使用される。
【0069】
すなわち、継続的学習サイクル実行部318は、評価に使用可能なフィードバックデータの数が最小フィードバック数を超えるたびに、学習モデル評価部315に、運用中学習モデル322の評価を行わせる。一方、継続的学習サイクル実行部318は、評価に使用可能なフィードバックデータの数が最小フィードバックデータ数を満たさないときは、信頼性のある評価結果を得られないと判断して、運用中学習モデル322の評価を実行しない。
【0070】
プルダウンメニュー514は、学習モデル評価部315が評価を実行する際に使用するフィードバックデータの、ソースを選択するための設定ボタンである。本実施形態では、表2のテーブルが選択される。
【0071】
ラジオボタン515は、本実施形態の特徴である“仮評価”を、継続的学習サイクル実行部318が学習モデル評価部315に実行させるか否かを指定するための、設定ボタンである。
【0072】
テキストボックス516は、予測精度劣化判定回数を設定するために使用される。後述するように、継続的学習サイクル実行部318は、“仮評価”がなされた回数が予測精度劣化判定回数に達した場合に、運用中学習モデル322の予測精度が劣化しているか否かを判断する。
【0073】
テキストボックス517は、上述のようにして“運用中学習モデル322の予測精度が劣化している可能性がある”と判断された場合に、その旨を通知する宛先を指定するために使用される。後述するように、継続的学習サイクル実行部318の制御により、フィードバックデータ収集通知部319が、テキストボックス517で指定された宛先へ、フィードバックデータを収集する必要があるとの通知を行う。本実施形態では、このテキストボックス517で、運用中学習モデル322の管理者の宛先を指定する。
以上の“評価条件”の設定については、
図6を用いて詳細に後述する。
【0074】
“学習条件”の設定において、ラジオボタン521は、ラジオボタン511で“自動的に評価する”が選択された場合に、この選択に付随する設定を行うために使用する。具体的には、このラジオボタン521により、運用中学習モデル322を評価した後の再学習について、“評価実行後常に学習する”、“予測精度が閾値を下回った場合に学習する”または“自動的に学習しない”のいずれかが選択される。
【0075】
テキストボックス522は、ラジオボタン521で“予測精度が閾値を下回った場合に学習する”が選択された場合に、その閾値を指定するためのテキストボックスである。
【0076】
“モデルの更新条件”の設定において、ラジオボタン531は、ラジオボタン511、521で評価および学習の両方を自動的に行うよう設定した場合に、この選択に付随する選択を行うために使用される。すなわち、ラジオボタン511で“自動的に評価する”が選択され、且つ、ラジオボタン521で“評価実行後に常に学習する”または“予測精度が閾値を下回った場合に学習する”が選択された場合に、ラジオボタン531の設定が有効になる。ラジオボタン531で“予測精度が向上した場合に自動的に更新する”が選択された場合、継続的学習サイクル実行部318は、再学習で得られた学習モデルを学習モデル評価部315に評価させる。そして、その予測精度が運用中学習モデル322の予測精度より高い場合、継続的学習サイクル実行部318は、運用中学習モデル322の更新を学習モデル更新指示部317に行わせる。一方、ラジオボタン531で“自動的に更新しない”が選択された場合は、運用中学習モデル322は自動では行われない。
【0077】
保存ボタン541は、画面501での設定内容を保存するために使用される。
キャンセルボタン542は、画面501での設定内容を破棄するために使用される。
【0078】
図6は、運用中学習モデル322に対する仮評価について説明するためのグラフであり、試行回数と仮評価結果(予測精度)の相関を示している。以下、
図6を参照して、本実施形態に係る仮評価処理、すなわち、継続的学習サイクル実行部318に、仮評価の結果を用いて、運用中学習モデル322の予測精度が劣化している可能性があるか否かを判断させる方法について、説明する。
【0079】
ここで、仮評価は、評価に使用可能なフィードバックデータの数が、テキストボックス513で設定した最小フィードバックデータ数には達していないが、仮評価用に定めた所定数には達している場合に、実行される。
【0080】
仮評価の評価方法は、通常の評価方法と比較して、継続的学習サイクル実行部318が継続的学習サイクルを実行することにより行われる点では一致するが、評価後の処理が異なる。以下の説明では、これら2種類の評価方法を区別するために、最小フィードバックデータ数(上述)を満たす場合に実行される評価処理を“本評価”と呼び、最小フィードバックデータ数を満たさなかった場合に実行される評価処理を“仮評価”と記す。これら本評価および仮評価は、継続的学習サイクル実行部318からの命令に基づき、学習モデル評価部315によって実行される。
【0081】
仮評価は、学習モデル評価部315が、フィードバックデータの数が最小フィードバックデータ数に満たない状態で実行されるため、信頼性のある評価結果は得られない。しかしながら、学習モデル評価部315が仮評価を複数回繰り返すことで、運用中学習モデル322の予測精度の変化傾向を把握することはできる。
図6にプロットされた点551は、それぞれ、運用中学習モデル322に対する仮評価によって算出された、“予測精度”である。
【0082】
継続的学習サイクル実行部318は、仮評価を、テキストボックス516で指定した回数(本実施形態では10回)だけ実行する。そして、これらの仮評価結果(予測精度)の相関係数を算出する。算出された相関係数が強い負の相関(例えば、-0.7以下)を示している場合、継続的学習サイクル実行部318は、本評価を行う必要があると判断する。上述のように、本評価行うためには、最小フィードバックデータ数以上のフィードバックデータを収集する必要がある。このため、継続的学習サイクル実行部318は、フィードバックデータ収集通知部319に対して、フィードバックデータを収集すべきであるとの通知をテキストボックス517に指定された宛先へ行うように、命令する(後述)。
【0083】
図7は、継続的学習サイクル実行部318による継続的学習サイクルを説明するためのフローチャートである。継続的学習サイクル実行部318の処理手順は、継続的学習サイクルに関する設定内容(
図5参照)に応じて異なるが、ここでは、画面501に示した各設定と一致する場合について説明する。
【0084】
まず、ステップS611で、継続的学習サイクル実行部318は、プルダウンメニュー514で指定したソースをチェックする。そして、継続的学習サイクル実行部318は、評価に使用可能なフィードバックデータの数を、閾値(テキストボックス513で指定された最小フィードバックデータ数、以下“第1の最小フィードバックデータ数”と記す)と比較する。その比較の結果、評価に使用可能なフィードバックデータの数が第1の最小フィードバックデータ数を超えている場合は、処理はステップS612へ進み、“本評価”に係る処理が実行される。一方、評価に使用可能なフィードバックデータの数が第1の最小フィードバックデータ数以下である場合、処理はステップS617へ進み、“仮評価”に係る処理が実行される。
【0085】
ステップS612では、継続的学習サイクル実行部318が、学習モデル評価部315に、運用中学習モデル322の本評価を実行させる。この本評価には、プルダウンメニュー514で指定したソースに対応する、フィードバックデータが使用される。
【0086】
続いて、ステップS613で、継続的学習サイクル実行部318は、ステップS612での評価結果である“予測精度”を、テキストボックス522で指定した閾値と比較する。そして、予測精度が閾値以上である場合は、処理を終了する。その結果、運用中学習モデル322は、更新されることなく、運用を続ける。
【0087】
一方、ステップS613で、予測精度が閾値を下回っていると判断された場合、処理はステップS614へ進む。ステップS614では、継続的学習サイクル実行部318が、学習モデル学習部316に、学習モデルの再学習(新しい学習モデルの作成)を実行させる。この再学習では、プルダウンメニュー514で指定したソースのフィードバックデータが使用される。
【0088】
さらに、継続的学習サイクル実行部318は、学習モデル評価部315に、このステップS614で作成した新しい学習モデルの本評価を実行させる。上述したように、学習モデルの学習に使用したフィードバックデータをその学習モデルの評価でも使用すると、信頼性のある評価結果を得ることが困難となる。このため、ステップS614でも、学習と本評価とは、相互に異なるフィードバックデータを使用して行う。
【0089】
次に、ステップS615で、継続的学習サイクル実行部318は、ステップS614で評価した新しい学習モデルの予測精度を、ステップS612で評価した運用中学習モデル322の予測精度と比較する。そして、新しい学習モデルの予測精度が運用中学習モデル322の予測精度を上回っている場合、処理はステップS616に進み、上回っていない場合、処理は終了する。
【0090】
なお、継続的学習サイクル実行部318が、ステップS615で“上回っていない”と判断した場合に、ステップS614に戻り、学習に使用するデータと評価に使用するデータの割合を変更して、再学習および評価を再度実行しても良い。そして、ステップS615で“上回っている”と判断されるまで、または、再学習および評価の実行回数が所定の上限に達するまで、再学習および評価を繰り返すことにより、予測精度の高い学習モデルが作成される可能性を高めることができる。
【0091】
ステップS616では、継続的学習サイクル実行部318が、学習モデル更新指示部317に、運用中学習モデル322の更新を指示する。この指示を受けると、学習モデル更新指示部317は、学習モデル更新部323に指示して、運用中学習モデル322を、ステップS614で作成した新しい学習モデルに更新(デプロイ)させる。
【0092】
上述のように、ステップS611で、評価に使用可能なフィードバックデータの数が第1の最小フィードバックデータ数以下であると判断された場合には、処理はステップS617へ進み、“仮評価”に係る処理が実行される。
【0093】
ステップS617で、継続的学習サイクル実行部318は、プルダウンメニュー514で指定したソースをチェックし、仮評価に使用可能なフィードバックデータの数を、所定の閾値(以下、“第2の最小フィードバックデータ数”と記す)と比較する。この比較の結果、仮評価に使用可能なフィードバックデータの数が第2の最小フィードバックデータ数を超えている場合は、処理はステップS618へ進み、超えていない場合は処理は終了する。ここで、第2の最小フィードバックデータ数は、第1の最小フィードバックデータ数よりも小さい値であり、例えば、第1の最小フィードバックデータ数の10%と定義される。
【0094】
次に、ステップS618で、継続的学習サイクル実行部318は、学習モデル評価部315に、運用中学習モデル322の仮評価を実行させる。この仮評価には、プルダウンメニュー514で指定したソースに対応する、フィードバックデータが使用される。
続いて、ステップS619で、継続的学習サイクル実行部318は、テキストボックス516で指定された判定回数分の仮評価結果を用いて、相関係数を計算する。
【0095】
ステップS620で、継続的学習サイクル実行部318は、ステップS619で計算した相関係数に基づいて、予測精度が劣化傾向にあるか否か(強い負の相関があるか否か)を判断する。そして、予測精度が劣化傾向にあると判断した場合、処理はステップS621に進み、予測精度が劣化傾向にないと判断した場合、処理は終了する。
【0096】
ステップS621で、継続的学習サイクル実行部318は、フィードバックデータ収集通知部319に指示して、テキストボックス517で指定した宛先への通知を行わせる。上述のように、この通知は、本評価を実行するためにフィードバックデータを収集するように管理者に促す通知である。
【0097】
以上のように、本実施形態によれば、フィードバックデータ数が少ない場合に、運用中学習モデル322の仮評価を行うことで、この運用中学習モデル322の予測精度が劣化傾向にあるか否かを判断することができる。そして、予測精度が劣化傾向にあると判断した場合には、フィードバックデータの収集を促す通知を行うことで、フィードバックデータの収集を必要とするタイミングを管理者に把握させることができる。更に、その後に収集したフィードバックデータを用いて、継続的学習サイクルを実行することで、予測精度の低い学習モデルが運用され続けるという不都合を回避することができる。
【0098】
[実施形態2]
上述の実施形態1では、フィードバックデータ数が少なく運用中学習モデル322の本評価が実行できない場合に、仮評価を行うことにより予測精度の劣化傾向を検出して、本評価を実行するためのフィードバックデータの収集を管理者に促す仕組みを説明した。
【0099】
しかし、運用中学習モデル322の管理者にとっては、学習モデルの予測精度を向上させるために、どのようなユーザからフィードバックデータを収集すればよいのかを、判断しづらい。例えば、汎用的なユーザに対して予測を行う学習モデルを運用したい場合、過学習を回避するために、収集するフィードバックデータの各属性にばらつきがある方が望ましい。その一方で、特定の属性を有するユーザに対象を絞って予測を行う学習モデルを運用したい場合には、フィードバックデータの収集コストの観点から、対象外のフィードバックデータは極力収集しないことが望まれる。このため、本実施形態では、上述の実施形態1に係る通知に加え、所望の属性を有するユーザからのフィードバックデータを収集するように、管理者にレコメンド(推奨)するための仕組みを設けた。
【0100】
なお、本実施形態では、実施形態1と異なる部分のみを説明し、共通する事項については説明を省略する。
【0101】
図8は、重点的に収集したい属性を設定するための設定画面の例である。また、
図9は、継続的学習サイクル実行部318がレコメンド結果として管理者に通知する内容の例を示した表である。
図8において、画面701は、画面501のラジオボタン515で、仮評価の実行を“する”に設定した場合に設定可能となる画面である。
【0102】
ラジオボタン711は、フィードバックデータ収集対象ユーザをレコメンドする機能の有効/無効を設定するために使用される設定ボタンである。ラジオボタン711で、“する”を選択した場合はレコメンド機能が有効になり、“しない”を選択した場合はレコメンド機能が無効になる。
【0103】
プルダウンメニュー721は、収集対象となるユーザ情報が格納されたソースを指定するために使用される。例えば、プルダウンメニュー721で、ユーザ情報格納部313に格納されている複数の表(表1参照)の中から、ソースとして使用する表を指定する。
【0104】
プルダウンメニュー722は、不足している属性値を判断するために継続的学習サイクル実行部318が使用する、フィードバックデータのソースを指定するために使用される。
【0105】
プルダウンメニュー723は、属性マップを指定するために使用される。本実施形態において、属性マップとは、不足している属性値が取り得る範囲、または、条件指定で絞り込んで収集したい属性値が取り得る範囲を、定義したマップである。以下、属性マップの例を、YAML(Yaml Ain't Markup Language)形式で示す。
【0106】
### 属性マップの定義 ###
AttributeMap:
gender:
attributeName: 性別
values:
- 男
- 女
valueType: GENDER
age:
attributeName: 年齢
values:
- 15-19
- 20-24
- 25-29
- 30-34
- 35-39
- 40-44
- 45-49
- ...
valueType: range<int>
unit: 歳
familyStructure:
attributeName: 家族構成
values:
- 大人1人
- 大人2人
- 大人1人子1人
- 大人1人子2人
- 大人2人子1人
- 大人2人子2人
- ...
valueType: FAMILY_STRUCTURE
income:
attributeName: 年収
values:
- 200-399
- 400-599
- 600-799
- 800-999
- ...
valueType: range<int>
unit: 万
【0107】
上述の属性マップにおいて、属性“gendaer”、“age”、“familyStructure”および“income”は、それぞれ、上述の表2における“性別”、“年齢”、“家族構成”および“年収”に対応している。各属性の定義は、表2に示した入力データ項目と対応付けられる。例えば、属性“income”については、“attributeName”の値として、“年収”を指定し、“values”で、値の取り得る範囲を定義し、“valueType”で、値の形式を定義し、かつ、“unit”で、値の単位を定義している。
【0108】
図7において、ラジオボタン731は、レコメンドするユーザ属性を指定するためのボタンである。
ラジオボタン731で、“不足している属性を有するユーザを優先”を選択した場合、継続的学習サイクル実行部318は、各属性内で同種データの個数のばらつきが小さくなるような属性を有するユーザをレコメンドする。ここで、各属性内の“同種データ”とはプルダウンメニュー723で指定した属性マップの“values”の値を指し、“ばらつき”とは確率論における分散(variance)の値を指す。レコメンドの対象となるユーザは、プルダウンメニュー722で指定されたフィードバックデータに対応するユーザから抽出される。
【0109】
一方、ラジオボタン731で、“収集対象のユーザの属性を指定”を選択した場合、継続的学習サイクル実行部318は、項目741で指定した各属性を有するユーザをレコメンドする。
【0110】
項目741には、上述のプルダウンメニュー723で指定した属性マップで定義された各属性が、チェックボックスとともに表示される。そして、所望のチェックボックスをチェックすることにより、指定する属性を選択できる。更に、項目741には、各属性に対応させて、プルダウンメニューが表示される。これらのプルダウンメニューを用いて、各属性に対応する選択肢から、いずれか1つの値を選択できる。但し、画面701には示していないが、一つの属性に対して複数の選択肢を選択できるようにしてもよい。
【0111】
以上の設定に従って、継続的学習サイクル実行部318は、実施形態1で説明したステップS621の処理を実行する際に、
図9に示すレコメンド結果を作成する。そして、継続的学習サイクル実行部318は、テキストボックス517(
図5参照)で指定した宛先への通知を、フィードバックデータ収集通知部319に実行させる。
【0112】
図9において、指定結果781は、継続的学習サイクル実行部318がレコメンド結果を作成する際に選択した、収集対象の属性とその値である。
【0113】
リスト782は、継続的学習サイクル実行部318が作成した、フィードバックデータ収集対象ユーザについてのレコメンド結果である。ここで、リスト782に含まれるユーザは、プルダウンメニュー721で指定した、ユーザ情報のソースに記録されたユーザである。但し、指定結果781を通知情報に含めることにしたので、学習モデル管理システム101に登録されたユーザ(表1参照)以外からフィードバックデータを収集することも、可能である。
【0114】
ラジオボタン751は、リスト782に含まれるユーザに対して直接フィードバックを要求するか否かを選択するボタンである。ラジオボタン751で、“する”を選択した場合、以下の各フォーム761~763の設定結果にしたがって、ユーザに直接フィードバックを要求する。一方、ラジオボタン751で、“しない”を選択した場合、ユーザにはフィードバックを要求しない。
【0115】
プルダウンメニュー761は、継続的学習サイクル実行部318がリスト782のユーザに要求メールを送る際の、宛先メールアドレスの属性名(例えば、表1の“メールアドレス”)を指定するために使用される。
【0116】
テキストボックス762には、継続的学習サイクル実行部318がリスト782のユーザに直接送るフィードバック要求電子メールの、件名欄の記載が入力される。
テキストボックス763には、継続的学習サイクル実行部318がリスト782のユーザに直接送るフィードバック要求電子メールの、本文が入力される。
【0117】
テキストボックス763内に本文を入力する際には、
図7の例のように、ユーザにフィードバックデータを入力させるWebサイトのURLを含ませてもよい。或いは、HTMLメールを用いて、フィードバックデータを入力させるフォームを本文中に含ませてもよい。
【0118】
なお、本実施形態では、ユーザへフィードバックを直接要求する手段として、電子メールを例にあげたが、要求方法はこれに限定されるものではない。例えば、図示しない郵送システムを利用して、リスト782(
図9参照)中の住所にアンケート用紙等を送付する方法や、リスト782の電話番号に対してテキストボックス763に入力した内容をメッセージとして送信する方法などでもよい。
【0119】
保存ボタン771は、画面701の設定を保存するためのボタンである。
ボタン772は、画面701の設定を保存せずに終了するためのボタンである。
【0120】
以上のように、運用中学習モデル322の管理者がフィードバックデータの収集方法や通知に関する設定を行うことで、収集すべき属性を有するユーザを把握できるとともに、そのユーザに対して自動でフィードバックを要求することが可能となる。
【符号の説明】
【0121】
501,701 画面
511,515,521,531,711,731,751 ラジオボタン
512,514,721-723,761 プルダウンメニュー
513,516,517,522,762,863 テキストボックス
541,771 保存ボタン
542,772 キャンセルボタン
741 項目
781 指定結果
782 リスト