以下、サーバ装置、情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、ウェブサイトへの来訪者(以下、適宜「ユーザ」と言う。)の属性値を、リアルタイムに検知し、出力するサーバ装置を具備する情報システムについて説明する。
また、本実施の形態において、属性値が条件を満たしたユーザに対して、自動的にアクションを行うサーバ装置を具備する情報システムについて説明する。
また、本実施の形態において、管理者が選択した特定のユーザに対して、アクションを行うサーバ装置を具備する情報システムについて説明する。
また、本実施の形態において、非ログインユーザのCookieIDにより、ログインユーザと紐付けし、ログイン前の操作情報とログイン後の操作情報の両方を用いて、ユーザの属性値を取得するサーバ装置を具備する情報システムについて説明する。
図1は、本実施の形態における情報システムAの概念図である。情報システムAは、1または2以上のユーザ端末1、サーバ装置2、および管理端末3を備える。ユーザ端末1、管理端末3は、例えば、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン等であり、その種類は問わない。サーバ装置2は、例えば、ASPのサーバ、クラウドサーバ等である。但し、サーバ装置2の種類は問わない。ユーザ端末1とサーバ装置2とは、インターネット等のネットワークにより通信可能である。また、サーバ装置2と管理端末3とは、インターネット、LAN等のネットワークにより通信可能である。
図2は、本実施の形態における情報システムAのブロック図である。図3は、サーバ装置2のブロック図である。
ユーザ端末1は、ユーザ格納部11、ユーザ受付部12、ユーザ処理部13、ユーザ送信部14、ユーザ受信部15、およびユーザ出力部16を備える。
サーバ装置2は、格納部21、受信部22、処理部23、送信部24、および出力部25を備える。格納部21は、ユーザ情報格納部211、動的処理情報格納部212、および操作情報格納部213を備える。受信部22は、ログイン指示受信部221、操作情報受信部222、および選択指示受信部223を備える。処理部23は、ログイン処理部231、応答部232、操作情報蓄積部233、属性値取得部234、サムネイル画像取得部235、判断部236、条件処理実行部237、および指示ユーザ処理部238を備える。属性値取得部234は、スコア算出手段2341を備える。送信部24は、処理結果送信部241、およびユーザ端末送信部242を備える。出力部25は、属性値出力部251、およびサムネイル画像出力部252を備える。
管理端末3は、管理格納部31、管理受付部32、管理処理部33、管理送信部34、管理受信部35、および管理出力部36を備える。
ユーザ端末1を構成するユーザ格納部11は、各種の情報が格納される。各種の情報とは、例えば、ユーザ識別子、ユーザ端末識別子、ユーザの属性値等である。ユーザ識別子は、ユーザを識別する情報であり、例えば、IDである。ユーザ識別子は、電話番号、クレジットカード番号、メールアドレス等でも良い。ユーザ端末識別子は、ユーザ端末1を識別する情報であり、例えば、Cookie ID、セッション識別子、IPアドレス、MACアドレス等である。また、ユーザの属性値は、例えば、ユーザの性別、年齢等の静的属性値である。
ユーザ受付部12は、ユーザから指示や情報等の入力を受け付ける。指示や情報等とは、例えば、操作情報、ログイン指示等である。操作情報とは、ユーザのウェブサイトに対する操作に関する情報である。操作情報は、例えば、ボタンを押下したことを示す情報、アンカーを指示したことを示す情報、別のページに飛ぶための操作の情報、フィールドに入力した情報等である。操作情報は、例えば、「rightButtonON」(右マウスボタンが押下されたこと)、「drug object A」(オブジェクトAがドラッグされたこと)、「<購入商品ID>123 <数量>3」(123で識別される商品が3個購入されたこと)、「jump http://www.xxx.co.jp」(URL”http://www.xxx.co.jp”で特定されるウェブページにアクセスされたこと)等である。ここでの操作情報は、通常、プリミティブな操作の情報であるが、後述する管理者が見て、操作の意味や意義を判断できる情報であることは好適である。つまり、操作情報のデータ構造、情報の粒度等は問わない。操作情報は、通常、ユーザが行った操作を特定する情報であるが、ユーザの操作に起因する、サーバ装置2が行った処理に関する情報を含んでも良い。ログイン指示とは、ログインの指示である。ログイン指示は、例えば、ユーザ識別子を有する。ログイン指示は、例えば、ユーザ識別子とパスワードとを有する。なお、ウェブサイトは、ウェブページと言っても良い。ウェブサイトは、例えば、ECサイトである。但し、ウェブサイトの種類は問わない。
指示や情報等の入力手段は、タッチパネルやキーボードやマウスやメニュー画面によるもの等、何でも良い。ユーザ受付部12は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
ユーザ処理部13は、各種の処理を行う。各種の処理とは、例えば、ユーザ受付部12が受け付けた指示や情報等を、送信する構造の指示や情報等に変更する処理、ユーザ受信部15が受信した情報を出力する構造に変更する処理等である。
ユーザ送信部14は、各種の情報や指示等を送信する。各種の情報や指示等とは、例えば、操作情報、ログイン指示等である。ユーザ送信部14は、通常、サーバ装置2に情報や指示等を送信する。ユーザ送信部14は、操作情報に加えて、ユーザの属性値を送信しても良い。なお、ユーザの属性は、ユーザ格納部11に格納されており、例えば、ユーザの性別、年齢等である。ここで送信するユーザの属性は、例えば、静的属性値である。
ただし、ユーザ送信部14は、図示しない第二サーバ装置に情報や指示等を送信しても良い。かかる場合、第二サーバ装置からサーバ装置2に操作情報等が送信される。なお、第二サーバ装置については後述する。
ユーザ受信部15は、各種の情報を受信する。各種の情報とは、例えば、処理結果、ログイン処理の結果である。処理結果とは、後述する応答部232における処理の結果に関する情報である。処理結果は、例えば、飛び先のウェブページ、商品の購入指示の結果が記載されたパネル、エラーメッセージ等である。ログイン処理の結果は、ログイン処理が成功であったか、失敗であったかを示す情報、ログイン後のウェブページの情報等である。
ユーザ出力部16は、各種の情報を出力する。各種の情報とは、例えば、ユーザ受信部15が受信し、ユーザ処理部13が出力される構造に変更した情報であり、例えば、処理結果、ログイン処理の結果である。
ここで、出力とは、通常、ディスプレイへの表示であるが、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である、と考えても良い。
サーバ装置2を構成する格納部21は、各種の情報が格納される。各種の情報とは、例えば、後述するユーザ情報、後述する動的処理情報、操作情報、スコアを算出するための演算式の情報である。
ユーザ情報格納部211は、2以上のユーザ情報が格納される。ユーザ情報は、ユーザに関する情報であり、1または2以上の属性値を有する。1以上の属性値とは、通常、静的属性値であるが、動的属性値を含んでも良い。静的属性値とは、通常、変化しない属性値であるが、時々刻々とは変化しない属性値であると考えても良い。静的属性値は、例えば、氏名、年齢、住所、電話番号、クレジットカード番号、メールアドレス、ユーザ端末識別子、ユーザ識別子、パスワード等である。ユーザ端末識別子は、ユーザ端末1を識別する情報であり、例えば、Cookie ID、セッション識別子、IPアドレス、MACアドレス等である。ユーザ識別子は、ユーザを識別する情報であり、例えば、IDである。ユーザ識別子は、電話番号、クレジットカード番号、メールアドレス等でも良い。動的属性値は、ユーザの操作等により、動的に変化し得る属性値である。動的属性値には、例えば、リアルタイム動的属性値、履歴情報利用動的属性値がある。リアルタイム動的属性値は、リアルタイムに時々刻々と変化する属性値である。リアルタイム動的属性値は、例えば、ユーザが現在閲覧しているウェブページの滞在時間、現在の滞在の際の閲覧したウェブページ数等である。履歴情報利用動的属性値は、過去の来訪時の操作情報の履歴をも用いて取得される動的属性値である。履歴情報利用動的属性値は、例えば、購入回数、購入金額、総購入金額、平均滞在時間、平均PV数、来訪回数、後述するスコア等である。
動的処理情報格納部212は、1または2以上の動的処理情報が格納される。動的処理情報は、条件と、当該条件を満たした際に実行する処理を識別する処理識別子とを有する。動的処理情報は、さらに処理タイミングを特定する情報を有しても良い。ここで、条件とは、処理識別子に対応する処理を行うことを判断するための条件である。条件は、ユーザの1以上の属性値に関連する条件である。条件は、1以上の動的属性値を用いた条件であることは好適である。さらに、条件は、1以上のリアルタイム動的属性値、または1以上の履歴情報利用動的属性値を用いた条件であることは好適である。条件は、例えば、「<年齢>20代,<購入回数>5回以上,<スコア>70以上」等であえる。また、処理識別子は、ID、関数名、メソッド名、処理に対応するプログラムの番地等である。処理識別子は、実行可能なプログラムでも良い。処理識別子は、条件に対応する処理を実行するための情報であれば何でも良い。
操作情報格納部213は、ユーザごとに、1以上の操作情報が格納される。操作情報格納部213は、ユーザ識別子に対応付けて、1以上の操作情報が格納される。なお、受信された操作情報と操作情報格納部213に格納される操作情報とは異なっても良い。操作情報受信部222が受信する操作情報と、操作情報格納部213に蓄積される操作情報とは、例えば、データ構造等が異なっていても良い。例えば、操作情報受信部222が受信する操作情報がプリミティブな操作の情報(例えば、「rightButtonON」)であり、操作情報格納部213に蓄積される操作情報が操作の意味や意義が判断可能な情報(例えば、「○○ページが表示されました」)でも良い。かかる場合、処理部23が、受信された操作情報を用いて、操作情報格納部213に格納される操作情報を構成する。
受信部22は、各種の情報や指示等を受信する。各種の情報や指示等とは、例えば、ログイン指示、操作情報、選択指示である。
ログイン指示受信部221は、ユーザ端末1からログイン指示を受信する。ログイン指示とは、ログインの指示である。
操作情報受信部222は、ウェブサイトへの来訪者であるユーザのユーザ端末1から、1または2以上の操作情報を受信する。操作情報受信部222は、ユーザ端末1から直接的に操作情報を受信する必要はない。操作情報受信部222は、ユーザ端末1から入力された情報に基づいた操作情報を、後述する第二サーバ装置から受信しても良い。
選択指示受信部223は、管理端末3から選択指示を受信する。選択指示とは、ユーザを選択する指示である。選択指示は、通常、ユーザ識別子を有する。選択指示は、ユーザ端末識別子を有しても良い。なお、管理端末3の動作の詳細については後述する。管理端末3では、2以上の各ユーザに対して、属性値出力部251が出力した1以上の属性値を受信し、出力される。
処理部23は、各種の処理を行う。各種の処理とは、ログイン処理部231等が行う処理である。処理部23は、ウェブサイトに来訪中のユーザの閲覧に関する情報を、常時、取得する。閲覧に関する情報とは、ウェブサイトやウェブページの滞在時間、閲覧ページ数等である。つまり、例えば、処理部23は、ウェブサイトに来訪中のユーザの当該サイトやウェブページの滞在時間を、常時、計測する。また、処理部23は、受信された操作情報に基づいて、商品の購入処理、決済処理等を行う。また、処理部23は、受信された操作情報に基づいて、ユーザの動的属性値を更新する。
ログイン処理部231は、受信されたログイン指示に応じて、ユーザ端末1のユーザに対するログイン処理を実行する。なお、ログイン処理の実行は公知技術であるので、詳細な説明を省略する。また、ログイン処理の実行は、通常、ログイン処理の結果のユーザ端末1への送信を含む、とする。ログイン処理部231は、通常、正当なユーザ識別子等が受信されれば、ログインを許可し、ユーザ端末1と通信可能とする。ログイン処理部231は、通常、正当ではないユーザ識別子等が受信されれば、ログインを不許可とし、エラーメッセージをユーザ端末1に送信する。また、ログイン処理部231は、ログイン指示が有するユーザ識別子と、ユーザ端末識別子とを対応付ける処理を行うことは好適である。なお、ユーザ端末識別子は、ログイン指示に含まれていても良いし、ログイン指示と一緒に受信されても良い。
応答部232は、受信された操作情報に応じた処理を行う。操作情報に応じた処理とは、例えば、操作情報に対応するウェブページの送信、操作情報に対応する商品の購入処理、操作情報に対応する決済処理等である。処理は、操作情報に従っていれば、何でも良い。
応答部232は、処理を行い、処理結果を取得する。なお、処理結果とは、例えば、飛び先のウェブページ、商品の購入指示の結果が記載されたパネル、エラーメッセージ等である。また、応答部232の処理は、公知技術であるので、詳細な説明を省略する。
操作情報蓄積部233は、ユーザ端末識別子と対にして、操作情報受信部222が受信した操作情報を操作情報格納部213に蓄積する。操作情報蓄積部233は、ログイン指示に含まれるユーザ識別子と対にして、操作情報受信部222が受信した操作情報を操作情報格納部213に蓄積する。ユーザ端末識別子と対にすることは、ユーザ識別子と対にすることであっても良い。
操作情報蓄積部233は、ログイン処理部231のログイン処理の実行前に、操作情報と対に受信されたユーザ端末識別子に対応付けて、操作情報受信部222が受信した操作情報を操作情報格納部213に蓄積する。なお、対に受信することは、同時に受信する必要まではない。
操作情報蓄積部233は、ログイン処理部231のログイン処理の実行後に、ログイン指示または操作情報と対に受信されたユーザ端末識別子またはユーザ識別子に対応付けて、操作情報受信部222が受信した操作情報を操作情報格納部213に蓄積する。
属性値取得部234は、ウェブサイトに来訪中のユーザの1以上の属性値を取得する。ここで、1以上の属性値は、上述した静的属性値、動的属性値を含み得る。属性値取得部234は、受信された1以上の操作情報を用いて、ウェブサイトに来訪中のユーザの1以上の属性値を取得する。属性値取得部234は、通常、ユーザ情報格納部211から1以上の静的属性値を取得する。また、属性値取得部234は、通常、受信された1または2以上の操作情報を用いて、1以上の動的属性値を取得する。
また、属性値取得部234は、操作情報受信部222が受信した1または2以上の操作情報を用いて、動的に変化する属性値である1以上の動的属性値を取得する。
属性値取得部234は、ウェブサイトに来訪中のユーザの1以上の属性値であり、当該ユーザ以外のユーザである他ユーザの1以上の属性値と比較して、予め決められた条件を満たすほど特徴的な1以上の属性値を取得する。ここで、予め決められた条件を満たすとは、(1)ユーザの属性値と同じ属性値を有する人の割合が閾値以下または閾値より小さいこと、(2)他に同じ属性値を有する人が居ないこと、(3)ユーザの属性値と同じ属性値を有する人の数が閾値以下または閾値より少ないこと、(4)予め格納されている属性値と同じ属性値を有すること等である。
属性値取得部234は、一のユーザ端末1に対して、ログイン前に蓄積された1以上の操作情報およびログイン後に蓄積された1以上の操作情報を操作情報格納部213から取得し、取得した2以上の操作情報を用いて、1以上の属性値を取得する。
スコア算出手段2341は、一のユーザに対して、ユーザの1以上の属性値、ユーザのユーザ端末1から操作情報受信部222が受信した1以上の操作情報のうちの2以上の情報を用いて、一のユーザのスコアを算出する。
スコア算出手段2341は、例えば、属性値取得部234が取得したウェブサイトまたはウェブページの滞在時間、購入回数、購入金額、総購入金額、PV数、平均滞在時間、来訪回数のうちの1以上の情報をパラメータとする増加関数により、スコアを算出する。スコアとは、例えば、管理者から見たユーザの重要度を示す情報である。なお、PV数とは、ページビューの数である。
サムネイル画像取得部235は、属性値取得部234が1以上の属性値を用いて、ユーザごとにサムネイル画像を取得する。サムネイル画像取得部235は、例えば、ユーザの性別、年齢に対応する画像を格納部21から取得する。
サムネイル画像取得部235は、1以上の動的属性値を用いて、ユーザごとにサムネイル画像を取得することは好適である。
サムネイル画像取得部235は、例えば、ユーザの性別、年齢、スコア等の属性値を用いてサムネイル画像を取得する。サムネイル画像取得部235は、例えば、ユーザの性別、年齢に対応する元画像を格納部21から取得し、ユーザのスコアに応じたスコア画像を生成し、スコア画像を元画像に貼り付け、サムネイル画像を生成する。なお、かかる場合、性別、年齢に対応する元画像が格納部21に格納されている。
判断部236は、属性値取得部234が取得した1以上の属性値が、動的処理情報が有する条件を満たすか否かを判断する。判断部236は、属性値取得部234が取得した1以上の属性値が、動的処理情報格納部212の1以上の動的処理情報のうちのいずれかの動的処理情報が有する条件を満たすか否かを判断する。
条件処理実行部237は、判断部236における判断結果が条件を満たすとの判断結果である場合、当該判断結果に対応する条件と対になる処理識別子で識別される処理を実行する。
指示ユーザ処理部238は、選択指示に対応するユーザのユーザ端末1に対して、一の処理を行う。一の処理は、予め決められた処理でも良いし、選択指示が有する処理識別子に対応する処理でも良い。一の処理は、複数の処理を含んでも良い。一の処理は、例えば、広告配信、購入を促すレコメンド、割り引きクーポンの送付等である。
送信部24は、各種の情報を送信し得る。各種の情報とは、例えば、処理結果、ユーザ端末識別子である。
処理結果送信部241は、応答部232における処理の結果に関する処理結果をユーザ端末1に送信する。
ユーザ端末送信部242は、少なくともユーザ端末1からログイン指示を受信する前に、操作情報受信部222が操作情報を受信した場合に、ユーザ端末1に対応する識別子であるユーザ端末識別子をユーザ端末1に送信する。
出力部25は、各種の情報を出力する。ここで、出力とは、通常、外部の装置(管理端末3)への送信であるが、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である、と考えても良い。なお、出力部25は、後述する第二サーバ装置に対応する管理端末3に、各種の情報を送信しても良い。
属性値出力部251は、属性値取得部234が取得した1以上の属性値を出力する。属性値出力部251は、属性値取得部234が取得した1以上の動的属性値を出力する。属性値出力部251は、スコアを含む1以上の属性値を出力することは好適である。
サムネイル画像出力部252は、サムネイル画像取得部235が取得したサムネイル画像を出力する。
管理端末3を構成する管理格納部31には、各種の情報が格納される。各種の情報とは、例えば、管理者を識別する管理者識別子である。
管理受付部32は、各種の指示や情報等を受け付ける。各種の指示や情報等とは、例えば、選択指示、動的処理情報である。
各種の指示や情報等の入力手段は、タッチパネルやキーボードやマウスやメニュー画面によるもの等、何でも良い。管理受付部32は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
管理処理部33は、各種の処理を行う。各種の処理とは、管理受付部32が受け付けた指示や情報等を送信するデータの構造にする処理、管理受信部35はが受信した情報を出力するデータの構造にする処理等である。
管理送信部34は、各種の指示や情報等を送信する。管理送信部34は、通常、サーバ装置2に各種の指示や情報等を送信する。各種の指示や情報等とは、例えば、選択指示、動的処理情報である。
管理受信部35は、各種の情報を受信する。管理受信部35は、通常、サーバ装置2から各種の情報を受信する。各種の情報とは、例えば、ユーザごとの1以上の属性値、サムネイル画像である。
管理出力部36は、各種の情報を出力する。各種の情報とは、ユーザごとの1以上の属性値、サムネイル画像である。
ユーザ格納部11、格納部21、ユーザ情報格納部211、動的処理情報格納部212、操作情報格納部213、および管理格納部31は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
ユーザ格納部11等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報がユーザ格納部11等で記憶されるようになってもよく、通信回線等を介して送信された情報がユーザ格納部11等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報がユーザ格納部11等で記憶されるようになってもよい。
ユーザ処理部13、処理部23、ログイン処理部231、応答部232、操作情報蓄積部233、属性値取得部234、サムネイル画像取得部235、判断部236、条件処理実行部237、指示ユーザ処理部238、および管理処理部33は、通常、MPUやメモリ等から実現され得る。ユーザ処理部13等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
ユーザ送信部14、送信部24、処理結果送信部241、ユーザ端末送信部242、出力部25、属性値出力部251、サムネイル画像出力部252、および管理送信部34は、通常、無線または有線の通信手段で実現される。
ユーザ受信部15、受信部22、ログイン指示受信部221、操作情報受信部222、選択指示受信部223、および管理受信部35は、通常、無線または有線の通信手段で実現される。
ユーザ出力部16、および管理出力部36は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。ユーザ出力部16等は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報システムAの動作について説明する。まず、ユーザ端末1の動作について、図4のフローチャートを用いて説明する。
(ステップS401)ユーザ受付部12は、ログイン指示を受け付けたか否かを判断する。ログイン指示を受け付けた場合はステップS402に行き、ログイン指示を受け付けない場合はステップS405に行く。
(ステップS402)ユーザ処理部13は、ステップS401で受け付けたログイン指示から、送信するログイン指示を構成する。ユーザ送信部14は、当該ログイン指示をサーバ装置2に送信する。
(ステップS403)ユーザ受信部15は、ログイン処理の結果を受信したか否かを判断する。ログイン処理の結果を受信した場合はステップS404に行き、ログイン処理の結果を受信しない場合はステップS403に戻る。
(ステップS404)ユーザ出力部16は、ステップS403で受信されたログイン処理の結果を出力する。ステップS401に戻る。
(ステップS405)ユーザ受付部12は、ユーザから操作を受け付けたか否かを判断する。操作を受け付けた場合はステップS406に行き、操作を受け付けない場合はステップS410に行く。
(ステップS406)ユーザ処理部13は、ステップS405で受け付けられた操作に基づいて、操作情報を構成する。
(ステップS407)ユーザ送信部14は、ステップS406で構成された操作情報をサーバ装置2に送信する。
(ステップS408)ユーザ受信部15は、操作情報に応じた処理結果をサーバ装置2から受信したか否かを判断する。処理結果を受信した場合はステップS409に行き、処理結果を受信しない場合はステップS408に戻る。
(ステップS409)ユーザ出力部16は、ステップS408で受信された処理結果を出力する。ステップS401に戻る。
(ステップS410)ユーザ受信部15は、サーバ装置2から情報を受信したか否かを判断する。情報を受信した場合はステップS411に行き、情報を受信しない場合はステップS401に戻る。なお、かかる情報は、通常、サーバ装置2における処理の結果であり、例えば、クーポン、広告、メッセージ等である。
(ステップS411)ユーザ処理部13は、ステップS410で受信された情報を用いて出力される情報を構成する。ユーザ出力部16は、当該情報を出力する。ステップS401に戻る。
なお、図4フローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、サーバ装置2の動作について、図5のフローチャートを用いて説明する。
(ステップS501)ログイン指示受信部221は、ユーザ端末1からログイン指示を受信したか否かを判断する。ログイン指示を受信した場合はステップS502に行き、ログイン指示を受信しない場合はステップS504に行く。
(ステップS502)ログイン処理部231は、受信されたログイン指示に応じて、ユーザ端末1のユーザに対するログイン処理を実行する。なお、ログイン処理の実行には、通常、ログイン処理の結果のユーザ端末1への送信が含まれる。
(ステップS503)処理部23は、ユーザ端末識別子とユーザ識別子とを対応付ける。例えば、処理部23は、ログイン指示が有するユーザ端末識別子とユーザ識別子とを対にして格納部21に蓄積する。ステップS501に戻る。
(ステップS504)操作情報受信部222は、ウェブサイトへの来訪者であるユーザのユーザ端末1から操作情報等を受信したか否かを判断する。操作情報等を受信した場合はステップS505に行き、操作情報等を受信しない場合はステップS511に行く。なお、操作情報等とは、例えば、操作情報とユーザ端末識別子である。また、操作情報等とは、例えば、操作情報とユーザ識別子である。また、操作情報等とは、例えば、ユーザの1以上の属性値を含む。
(ステップS505)応答部232は、ステップS504で受信された操作情報に応じた処理を行う。なお、ここで、ユーザ端末送信部242は、ユーザ端末1からログイン指示を受信する前であることを確認し、操作情報受信部222が操作情報を受信した場合に、ユーザ端末1に対応する識別子であるユーザ端末識別子をユーザ端末1に送信しても良い。
(ステップS506)処理結果送信部241は、応答部232における処理の結果に関する処理結果をユーザ端末1に送信する。
(ステップS507)操作情報蓄積部233は、ログイン指示または操作情報と対に受信されたユーザ端末識別子またはユーザ識別子に対応付けて、ステップS504で受信された操作情報を操作情報格納部213に蓄積する。
(ステップS508)操作情報を送信したユーザ端末1に対応するユーザ端末識別子が新しいか否か(ユーザが最初の来訪か否か)を判断する。新しい場合はステップS509に行き、新しくない場合はステップS501に戻る。
(ステップS509)処理部23は、当該ユーザ端末識別子を受信された操作情報を対にして格納部21に蓄積する。
(ステップS510)ユーザ端末送信部242は、当該ユーザ端末識別子を、操作情報等を送信してきたユーザ端末1に送信する。ステップS501に戻る。
(ステップS511)選択指示受信部223は、管理端末3から選択指示を受信したか否かを判断する。選択指示を受信した場合はステップS512に行き、選択指示を受信しない場合はステップS514に行く。
(ステップS512)指示ユーザ処理部238は、選択指示に対応するユーザ識別子またはユーザ端末識別子を取得する。ステップS501に戻る。なお、選択指示に対応するユーザ識別子またはユーザ端末識別子とは、選択指示に含まれるユーザ識別子またはユーザ端末識別子でも良いし、選択指示に含まれるIDと対になるユーザ識別子またはユーザ端末識別子でも良い。なお、IDと対になるユーザ識別子またはユーザ端末識別子は、例えば、格納部21で管理されている。
(ステップS513)指示ユーザ処理部238は、ユーザ識別子またはユーザ端末識別子で識別されるユーザ端末1に対して、一の処理を行う。ステップS501に戻る。
(ステップS514)処理部23は、管理者通知処理を行う。管理者通知処理は、管理端末3に、現在、来訪中のユーザの情報を出力する処理である。管理者通知処理の具体例について、図6のフローチャートを用いて説明する。
(ステップS515)条件処理実行部237は、自動処理を行う。ステップS501に戻る。自動処理とは、条件に合致する来訪中のユーザのユーザ端末1に、条件に対応する処理を自動的に行うことである。自動処理の具体例について、図7のフローチャートを用いて説明する。
なお、図5フローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS514の管理者通知処理の具体例について、図6のフローチャートを用いて説明する。
(ステップS601)処理部23は、カウンタiに1を代入する。
(ステップS602)処理部23は、ウェブページに、i番目の来訪者が存在するか否かを判断する。i番目の来訪者が存在する場合はステップS603に行き、i番目の来訪者が存在しない場合は上位処理にリターンする。
(ステップS603)属性値取得部234は、i番目の来訪者のユーザ識別子を取得する。そして、属性値取得部234は、当該ユーザ識別子と対になる1以上の静的属性値をユーザ情報格納部211から取得する。
(ステップS604)属性値取得部234は、i番目の来訪者のユーザ識別子と対になる1以上の操作情報を操作情報格納部213から取得する。そして、属性値取得部234は、当該1以上の操作情報を用いて、1以上の動的属性値を取得する。なお、属性値取得部234は、格納部21に蓄積されている、当該ユーザの1以上の属性値を用いて、1以上の動的属性値を取得しても良い。なお、属性値取得部234は、新たに取得した1以上の動的属性値を、ユーザ識別子に対応付けて、ユーザ情報格納部211に蓄積することは好適である。
(ステップS605)スコア算出手段2341は、ステップS603で取得された1以上の静的属性値、ステップS604で取得された1以上の動的属性値のうちの、2以上の属性値を用いてスコアを算出する。なお、このスコアも動的属性値の一種であると考えても良い。
(ステップS606)サムネイル画像取得部235は、ステップS603で取得された1以上の静的属性値に対応する元画像を格納部21から取得する。
(ステップS607)サムネイル画像取得部235は、ステップS605で算出されたスコアを用いて、スコア画像を生成する。
(ステップS608)サムネイル画像取得部235は、ステップS606で取得された元画像とステップS607で生成されたスコア画像とを用いて、サムネイル画像を生成する。
(ステップS609)属性値出力部251は、属性値取得部234が取得した1以上の属性値(静的属性値および動的属性値)を管理端末3に送信する。
(ステップS610)ステップS608で生成されたサムネイル画像を管理端末3に送信する。
(ステップS611)処理部23は、カウンタiを1、インクリメントする。ステップS602に戻る。
次に、ステップS515の自動処理の具体例について、図7のフローチャートを用いて説明する。
(ステップS701)処理部23は、カウンタiに1を代入する。
(ステップS702)処理部23は、ウェブページに、i番目の来訪者が存在するか否かを判断する。i番目の来訪者が存在する場合はステップS703に行き、i番目の来訪者が存在しない場合は上位処理にリターンする。なお、i番目の来訪者が存在するか否かは、格納部21の情報を検査することにより判断可能である。つまり、来訪者のユーザの操作情報やユーザ識別子またはユーザ端末識別子は、常時、更新され、格納部21に格納されている。
(ステップS703)属性値取得部234は、i番目の来訪者のユーザ識別子を取得する。そして、属性値取得部234は、当該ユーザ識別子と対になる1以上の静的属性値または/および1以上の動的属性値を取得する。なお、ここで、図6の管理者通知の処理の際に取得した属性値を使用することは好適である。
(ステップS704)処理部23は、カウンタjに1を代入する。
(ステップS705)判断部236は、j番目の動的処理情報が動的処理情報格納部212に存在するか否かを判断する。j番目の動的処理情報が存在する場合はステップS706に行き、j番目の動的処理情報が存在しない場合はステップS711に行く。
(ステップS706)判断部236は、ステップS703で取得された1以上の属性値がj番目の動的処理情報が有する条件に合致するか否かを判断する。
(ステップS707)判断部236の判断結果が、条件に合致するとの判断結果である場合はステップS707に行き、条件に合致しないとの判断結果である場合はステップS710に行く。
(ステップS708)条件処理実行部237は、j番目の動的処理情報が有する処理識別子を取得する。
(ステップS709)条件処理実行部237は、ステップS707で取得した処理識別子で識別される処理を実行する。
(ステップS710)処理部23は、カウンタjを1、インクリメントする。ステップS605に戻る。
(ステップS711)処理部23は、カウンタiを1、インクリメントする。ステップS602に戻る。
次に、管理端末3の動作について、図8のフローチャートを用いて説明する。
(ステップS801)管理受信部35は、サーバ装置2からユーザの情報を受信したか否かを判断する。情報を受信した場合はステップS802に行き、情報を受信しない場合はステップS803に行く。なお、ユーザの情報には、1以上の属性値が含まれる。また、ユーザの情報に、サムネイル画像が含まれることは好適である。
(ステップS802)管理出力部36は、ステップS801で受信された情報を出力する。ステップS801に戻る。
(ステップS803)管理受付部32は、選択指示を受け付けたか否かを判断する。選択指示を受け付けた場合はステップS804に行き、選択指示を受け付けない場合はステップS805に行く。
(ステップS804)管理処理部33は、ステップS803で受け付けられた選択指示を送信するデータの構造にする。管理処理部33は、例えば、選択されたユーザのユーザ識別子を含む選択指示を構成する。そして、管理送信部34は、当該選択指示をサーバ装置2に送信する。ステップS801に戻る。
(ステップS805)管理受付部32は、動的処理情報を受け付けたか否かを判断する。動的処理情報を受け付けた場合はステップS806に行き、動的処理情報を受け付けない場合はステップS801に戻る。
(ステップS806)管理処理部33は、ステップS805で受け付けられた動的処理情報を送信する情報の構造に変更する。そして、管理送信部34は、当該動的処理情報をサーバ装置2に送信する。ステップS801に戻る。なお、ここで、送信された動的処理情報は、サーバ装置2で蓄積される。
なお、図8のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における情報システムAの具体的な動作について説明する。情報システムAの概念図は図1である。
今、サーバ装置2は、例えば、商品購入のECサイトのウェブページが格納されているサーバである、とする。そして、ユーザが、当該ECサイトを訪問し、商品を閲覧する、商品を購入する等の操作を行う、とする。
そして、今、サーバ装置2のユーザ情報格納部211には、図9に示す構造を有するユーザ情報管理表が格納されている。ユーザ情報管理表には、「ユーザ識別子」「氏名」「メールアドレス」「静的属性値」「動的属性値」を有するレコードが格納される。「静的属性値」は、ここでは「性別」「年齢」「未婚/既婚」「出身地」「メンバー」等を有する。「未婚/既婚」は未婚か既婚かを示す情報である。「メンバー」は本システムにメンバー登録されているか否か(メンバーが否か)を示す。ここでは、メンバーの値「1」に対応するユーザがメンバーであり、メンバーの値「0」に対応するユーザがメンバーではない。「動的属性値」は「リアルタイム動的属性値」「履歴情報利用動的属性値」を有する。「リアルタイム動的属性値」は、ここでは「滞在時間」「閲覧ページ数」を有する。「滞在時間」は現在の訪問におけるサイト内の滞在時間である。「閲覧ページ数」は現在の訪問におけるサイト内で閲覧したページ数である。「履歴情報利用動的属性値」は、ここでは「来訪回数」「購入回数」「総購入金額」「平均PV数」「スコア」等を有する。「来訪回数」は、今までにユーザが本ECサイトに来訪した回数である。「購入回数」は、今までにユーザが本ECサイトで商品を購入した回数である。「総購入金額」は、今までにユーザが本ECサイトで商品を購入した総金額である。「平均PV数」は、ユーザの1回の訪問あたりの平均の閲覧ページ数である。「スコア」は、ユーザのスコアである。ここでは、格納部21は、「来訪回数」「購入回数」「総購入金額」「平均PV数」のうちの1以上の属性値をパラメータとする増加関数によりスコアを算出する演算式を格納している、とする。また、この演算式は、静的属性値のうちの1以上の情報を用いてスコアを算出する演算式であることは好適である。演算式は、例えば、メンバー「1」の場合は、スコアの値を増加させるように算出する演算式でも良い。例えば、演算式は、例えば、メンバー「1」の場合は、スコアの値を1.1倍し、メンバー「0」の場合は、スコアの値を変更しない等であることは好適である。
また、動的処理情報格納部212には、図10に示す構造を有する動的処理情報管理表が格納される。動的処理情報管理表には、「ID」「条件」「処理タイミング」「処理識別子」を有するレコードが格納される。「ID」はレコードを識別する情報である。「条件」は処理を実行するための条件である。「処理タイミング」は処理を実行するためのタイミングを特定する情報である。なお、処理タイミングが「−」の場合は、条件を満たした場合に実行することを意味する。「処理タイミング」は、1日に1回のみ、1アクセスに対して1回のみ等でも良い。「処理識別子」は、条件に対応する処理を実行するための情報であり、ここでは、処理を特定する情報である。
動的処理情報管理表において、「ID=1」のレコードは、年齢が30代であり、購入回数が5回以上であり、スコアが70以上のユーザに対して、ログイン時に、「あなたを応援するクーポンをお届けします」というメッセージを送信し、ログイン後のユーザ端末1に、「クーポン1」というクーポンを送信することを示す。なお、「クーポン1」は、格納部21に格納されている、とする。また、「ID=2」のレコードは、「滞在時間が180秒以上であり、メンバーであり、スコアが50以上のユーザに対して、かかる条件を満たした際に、「何かお困りでしょうか? お困りの際は○○にご連絡下さい」というメッセージを送信することを示す。
また、格納部21には、ユーザの属性値の条件に対応する元画像が格納されている、としる。そして、格納部21には、スコア画像の元になる元スコア画像が格納されている、としる。
また、操作情報格納部213には、図11に示す構造を有する操作情報管理表が格納される。操作情報管理表には、ユーザごとに、1以上の操作情報が格納される。ここでは、操作情報管理表には、「ID」「ユーザ識別子」「日時」「操作種類識別子」「操作情報」を有するレコードが格納される。「ID」はレコードを識別する情報である。「日時」は、概ね操作が行われた日時、または操作情報が受信された日時である。「操作種類識別子」は操作情報の種類を示す情報である。操作種類識別子「a」は、操作情報がユーザの操作を特定する情報であることを示す。操作種類識別子「b」は、操作情報がサーバ装置2が実行した処理を特定する情報であることを示す。
かかる状況において、現在、11名のユーザが本ECサイトに来訪中であり、ECサイトで商品の情報を閲覧したり、商品を購入しようとしたりしている、とする。
そして、ユーザがユーザ端末1に対して操作を行うと、ユーザ端末1のユーザ受付部12は、ログイン指示または操作情報を受け付ける。そして、ユーザ処理部13は、送信する情報を構成する。次に、ユーザ送信部14は、構成された情報をサーバ装置2に送信する。
そして、サーバ装置2の受信部22は、ログイン指示または操作情報を受信する。そして、受信したログイン指示または操作情報に応じた処理を、ログイン処理部231または応答部232が行う。そして、処理結果送信部241は、応答部232における処理の結果に関する処理結果をユーザ端末1に送信する。
以上の処理により、ユーザは、本ECサイトにログインでき、また本ECサイトの商品情報を閲覧したり、商品を購入したりすることができる。
そして、サーバ装置2の操作情報蓄積部233は、受信された操作情報を操作情報管理表に蓄積する。なお、ユーザのログイン前は、操作情報蓄積部233は、ユーザ端末識別子(ここでは、CookieID)と対応付けて、操作情報を操作情報管理表に蓄積する。また、ログイン後は、ユーザ端末識別子と対応付いたユーザ識別子と対応付けて、操作情報を操作情報管理表に蓄積する。かかることにより、サーバ装置2は、本ECサイトの来訪者が、来訪の途中でログインした場合でも、ログイン前の操作情報とログイン後の操作情報とをシームレスに利用できる、
そして、処理部23は、以下のように管理者通知処理を行う。つまり、処理部23は、11名の各来訪者の属性値をユーザ情報管理表(図9)から取得する。そして、スコア算出手段2341は、1以上の属性値のうち、スコア算出に用いる1以上の属性値を用いて、スコアを算出し、ユーザ情報管理表の各ユーザのスコアを更新する。
次に、サムネイル画像取得部235は、取得された1以上の静的属性値に対応する元画像を格納部21から取得する。また、サムネイル画像取得部235は、算出されたスコアを用いて、スコア画像を生成する。次に、サムネイル画像取得部235は、元画像とスコア画像とを用いて、サムネイル画像を生成する。
そして、出力部25は、サムネイル画像取得部235が取得したサムネイル画像と属性値取得部234が取得した1以上の属性値とを、ユーザごとに管理端末3に送信する。
次に、管理端末3の管理受信部35は、サーバ装置2から、来訪者ごとに、サムネイル画像と1以上の属性値とを受信する。そして、管理出力部36は、受信された情報を出力する。かかる出力例は、図12である。1201がサムネイル画像、1202がサムネイル画像の中のスコア画像、1203がユーザの属性値である。なお、図12によれば、来訪中の4ユーザの属性値等が出力されているが、1204に示すように、現在の来訪者は11名である。管理者は、画面をスクロールすることにより、他の来訪者の属性値等も閲覧できる。
次に、条件処理実行部237は、以下のように自動処理を行う。つまり、判断部236は、11名の来訪者ごとに、図10の各動的処理情報の条件のうち、合う処理タイミングと対になる条件に合致するか否かを判断する。判断部236の判断結果が、条件に合致するとの判断結果である場合、条件処理実行部237は、条件と対になる処理識別子を取得する。そして、条件処理実行部237は、取得した処理識別子で識別される処理を実行する。
ここで、例えば、判断部236が、ユーザ「太田B男」のログイン時に、太田B男の1以上の属性値が「ID=1」の条件に合致すると判断した場合、条件処理実行部237は、図10の「ID=1」の処理識別子に対応する処理を実行する。
そして、太田B男のユーザ端末1のユーザ受信部15は、サーバ装置2からメッセージ「あなたを応援するクーポンをお届けします」を受信する。また、ユーザ受信部15は、「クーポン1」というクーポンを受信する。そして、太田B男のユーザ端末1のユーザ出力部16は、メッセージ「あなたを応援するクーポンをお届けします」と、「クーポン1」とを出力する。そして、太田B男は、クーポン1を利用して、お得に買い物が楽しめる。なお、メッセージやクーポンの出力は、ユーザが閲覧中のウェブページの中に出力されることは好適である。
また、管理端末3の管理者は、図12の画面を見て、1205のユーザ「田中C介」を選択した、とする。すると、管理受付部32は、田中C介の選択指示を受け付ける。そして、管理者は、田中C介に対して行うアクション「send(クーポン2);」を入力または選択した、とする。すると、管理処理部33は、受け付けられた選択指示を送信するデータの構造「send(クーポン2,3);」にする。なお、sendの第二引数は、田中C介のユーザ識別子「3」である。次に、管理送信部34は、当該選択指示「send(クーポン2,3);」をサーバ装置2に送信する。
次に、サーバ装置2の選択指示受信部223は、管理端末3から選択指示「send(クーポン2,3);」を受信する。次に、指示ユーザ処理部238は、選択指示に対応するユーザ識別子「3」を取得する。そして、指示ユーザ処理部238は、ユーザ識別子「3」で識別される田中C介のユーザ端末1に対して、クーポン2を送信する。なお、クーポン2は、例えば、格納部21に格納されている、とする。ただし、クーポン2は、選択指示に含まれていても良い。
次に、田中C介のユーザ端末1のユーザ受信部15は、サーバ装置2からクーポン2を受信する。そして、ユーザ処理部13は、受信されたクーポン2を用いて出力されるクーポン2を構成する。ユーザ出力部16は、当該クーポン2を出力する。
また、管理端末3の管理者は、図12の画面の1201のユーザの操作情報の詳細を見たいと思い、図12の1201のユーザを指示した、とする。すると、管理受付部32は、かかる指示を受け付ける。次に、管理処理部33は、ユーザ「山田A夫」のユーザ識別子「1」を取得する。次に、管理処理部33は、ユーザ識別子「1」と対になる操作情報を図11の操作情報管理表から取得する。そして、管理処理部33は、取得した1以上の操作情報を用いて、操作情報提示画面を構成する。次に、管理出力部36は、操作情報提示画面を出力する。かかる操作情報提示画面の例は、図13である。図13において、操作情報の種類(操作情報識別子)に応じた操作情報の出力が行われており、管理者はユーザに対して行うべきアクションを判断しやすくなる。
以上、本実施の形態によれば、ウェブサイトへの来訪者の状況がリアルタイムに把握できる。その結果、例えば、サイト運営の管理者は、ユーザに対して、より適切なアクションを起こすことができる。
また、本実施の形態によれば、ウェブサイトへの来訪者の属性値が特定の条件を満たす場合に、特定のアクションが自動的に実行できる。その結果、ユーザに対して、適切なアクションを自動的に起こすことができる。
また、本実施の形態によれば、サイト運営の管理者は、特定のユーザに対して、適切なアクションを起こすことができる。
また、本実施の形態によれば、ログイン前の操作情報とログイン後の操作情報の両方を用いて、ユーザの属性値が適切に取得できる。
また、本実施の形態によれば、ユーザのスコアを出力できる。その結果、例えば、サイト運営の管理者は、適切なユーザに対して、アクションを起こすことができる。
また、本実施の形態によれば、ユーザの属性値を用いて取得されたサムネイル画像を出力できる。その結果、例えば、サイト運営の管理者は、容易に、適切なユーザに対して、アクションを起こすことができる。
なお、本実施の形態において、サーバ装置2と管理端末3とは一体化された装置でも良い。かかる場合、サーバ装置2の出力部25は、通常、各種の情報を表示する。
また、本実施の形態において、情報システムは、1または2以上のユーザ端末1、1または2以上の第二サーバ装置4、サーバ装置5、および1または2以上の管理端末3を備える構成でも良い。かかる場合の情報システムは、情報システムBである、とする。また、第二サーバ装置4は、ユーザ端末1と通信し、操作情報をサーバ装置5に送信する装置である。また、第二サーバ装置4は、例えば、既存のECサイトのサーバである。そして、第二サーバ装置4から送信された操作情報等の情報がサーバ装置5によって受信され、サーバ装置5が操作情報を用いてユーザの1以上の動的属性値を取得する。また、サーバ装置5は、第二サーバ装置4に対応する管理端末3に、ユーザの1以上の属性値やサムネイル画像を送信する。また、第二サーバ装置4はサーバ装置5からの指示に基づいてユーザ端末1に対してアクションを起こす、またはサーバ装置5が直接的にユーザ端末1に対してアクションを起こす。なお、アクションとは、例えば、上述したクーポンの送付、広告の送付、メッセージの送付等である。
かかる場合の情報システムBの概念図を図14に示す。情報システムBは、1または2以上のユーザ端末1、1または2以上の第二サーバ装置4、サーバ装置5、および1または2以上の管理端末3を備える。第二サーバ装置4、サーバ装置5は、例えば、ASPのサーバ、クラウドサーバ等である。但し、第二サーバ装置4、サーバ装置5の種類は問わない。
かかる場合の情報システムBのブロック図を図15に示す。第二サーバ装置4は、第二格納部41、第二受信部42、第二処理部43、および第二送信部44を具備する。第二格納部41は、ユーザごとに1以上の静的属性値を格納している。第二受信部42は、ログイン指示受信部221、および第二操作情報受信部422を具備する。第二操作情報受信部422は、操作情報をユーザ端末1から受信する。第二処理部43は、ログイン処理部231、および応答部232を具備する。第二送信部44は、処理結果送信部241、ユーザ端末送信部242、および第二操作情報送信部443を具備する。第二操作情報送信部443は、操作情報をサーバ装置5に送信する。
サーバ装置5は、格納部21、受信部52、処理部53、送信部54、および出力部25を備える。受信部52は、第二サーバ装置4から操作情報を受信する操作情報受信部522、および選択指示受信部223を備える。処理部53は、操作情報蓄積部233、属性値取得部234、サムネイル画像取得部235、判断部236、条件処理実行部237、および指示ユーザ処理部238を備える。属性値取得部234は、スコア算出手段2341を備える。送信部54は、ユーザ端末送信部242を備える。
第二格納部41は、は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。第二格納部41に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が第二格納部41で記憶されるようになってもよく、通信回線等を介して送信された情報が第二格納部41で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が第二格納部41で記憶されるようになってもよい。
第二受信部42、および受信部52は、通常、無線または有線の通信手段で実現される。
第二処理部43、および処理部53は、通常、MPUやメモリ等から実現され得る。第二受信部42等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
第二送信部44、および送信部54は、は、通常、無線または有線の通信手段で実現される。
また、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態におけるサーバ装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、例えば、コンピュータがアクセス可能な記録媒体は、ユーザに関する情報であり、1以上の属性値を有する情報である2以上のユーザ情報が格納されるユーザ情報格納部を具備し、コンピュータを、ウェブサイトへの来訪者であるユーザのユーザ端末から、当該ユーザのウェブサイトに対する操作に関する操作情報を受信する操作情報受信部と、操作情報を用いて、ウェブサイトに来訪中のユーザの1以上の属性値を取得する属性値取得部と、属性値取得部が取得した1以上の属性値を出力する属性値出力部として機能させるためのプログラムである。
また、上記プログラムにおいて、コンピュータを、前記操作情報に応じた処理を行う応答部と、応答部における処理の結果に関する処理結果を前記ユーザ端末に送信する処理結果送信部として、コンピュータをさらに機能させるプログラムであることは好適である。
また、本実施の形態における管理端末を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、例えば、コンピュータを、サーバ装置からユーザごとの1以上の属性値を受信する管理受信部と、前記ユーザごとの1以上の属性値を出力する管理出力部36と、前記1以上のユーザのうちの、一のユーザの選択指示を受け付ける管理受付部と、前記一のユーザの選択指示を前記サーバ装置に送信する管理送信部として機能させるためのプログラムである。
(実施の形態2)
本実施の形態において、機械学習の学習処理で使用する1以上の学習パラメータ、および予測処理において使用する1以上の予測パラメータを有するテンプレートが格納されており、当該1以上の学習パラメータを用いて、学習処理を行い、学習器を取得し、学習器と1以上の予測パラメータとを用いて予測処理を取得し、予測結果を出力する情報処理装置を具備する情報システムについて説明する。なお、学習器は、予測処理のために使用される。予測処理は、1以上の説明変数を入力とし、1以上の目的変数を出力する処理である。また、学習器は、分類器、学習モデル、分類モデルと言っても良い。
また、本実施の形態において、2以上の各管理者毎のテンプレートを使用して、学習処理と予測処理とを行う情報処理装置を具備する情報システムについて説明する。なお、管理者は、情報処理装置を使用するので、ユーザと言っても良い。ただし、管理者は、情報処理装置の処理対象データの例であるユーザ情報に対応するユーザ(例えば、ECサイトで商品を購入するユーザ)とは、通常、異なる。
また、本実施の形態において、テンプレートを有さない管理者が使用する場合には、デフォルトのテンプレートを使用して、学習処理と予測処理とを行う情報処理装置を具備する情報システムについて説明する。
また、本実施の形態において、管理者が2以上のテンプレートから選択した一のテンプレートを使用することにより、学習処理と予測処理とを行う情報処理装置を具備する情報システムについて説明する。
また、本実施の形態において、テンプレートに後処理で使用するパラメータを有し、予測処理の結果である予測結果とパラメータとを用いた後処理を行う情報処理装置を具備する情報システムについて説明する。
また、本実施の形態において、商品を購入するユーザの分類(例えば、ロイヤルカスタマーであるか否かの判断)を行う情報処理装置を具備する情報システムについて説明する。
さらに、本実施の形態において、商品の需要予測を行う情報処理装置を具備する情報システムについて説明する。
図16は、本実施の形態における情報システムCの概念図である。情報システムCは、情報処理装置6、および1または2以上の端末装置7を備える。情報処理装置6は、機械学習の学習処理、および予測処理を行う装置である。情報処理装置6は、例えば、ASPのサーバ、クラウドサーバ等である。但し、情報処理装置6の種類は問わない。端末装置7は、管理者が使用する装置である。端末装置7は、例えば、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン等であり、その種類は問わない。また、情報処理装置6と端末装置7とは、インターネット、LAN等のネットワークにより通信可能である。
図17は、本実施の形態における情報システムCのブロック図である。図18は、情報処理装置6のブロック図である。
情報処理装置6は、格納部61、受付部62、処理部63、および出力部64を備える。格納部61は、教師元データ格納部611、対象データ格納部612、およびテンプレート格納部613を備える。受付部62は、識別子受付部621を備える。処理部63は、学習部631、予測部632、および後処理部633を備える。学習部631は、例えば、教師データ取得手段6311、学習手段6312、評価手段6313、および選択手段6314を備える。なお、学習部631は、例えば、教師データ取得手段6311、および学習手段6312のみでも良い。
端末装置7は、端末格納部71、端末受付部72、端末処理部73、端末送信部74、端末受信部75、および端末出力部76を備える。
格納部61には、各種の情報が格納される。各種の情報とは、例えば、後述する教師元データ、後述する教師データ、後述する対象データ、後述するテンプレート、各種のプログラムである。各種のプログラムは、例えば、後述する機械学習の学習処理、予測処理を行うプログラムである。各種のプログラムは、例えば、後述する統計処理を行うプログラムである。各種のプログラムは、例えば、後述する後処理を行うプログラムである。
なお、後述する教師元データ、後述する対象データ、後述するテンプレート等は、格納部61に存在することは好適であるが、図示しない外部の装置に存在しても良い。かかる場合、格納部61は、教師元データ格納部611、対象データ格納部612、およびテンプレート格納部613を備えない。また、受付部62は、図示しない外部の装置から後述する教師元データ、後述する対象データ、後述するテンプレート等を受信する。
教師元データ格納部611には、1または2以上の教師元データが格納される。教師元データは、学習部631が使用する教師データの元になる情報である。教師元データは、教師データと同じでも良い。
教師元データ格納部611は、上述したユーザ情報格納部211でも良い。つまり、教師元データは、例えば、ユーザ情報である。教師元データは、時を示す時情報を有することは好適である。教師元データは、動的属性値を含むことは好適である。ここでの動的属性値は、例えば、ユーザが商品を購入する場合の動作に関する情報である。動的属性値には、例えば、上述したリアルタイム動的属性値、上述した履歴情報利用動的属性値がある。リアルタイム動的属性値は、例えば、ユーザが現在閲覧しているウェブページの滞在時間、現在の滞在の際の閲覧したウェブページ数等である。履歴情報利用動的属性値は、過去の来訪時の操作情報の履歴をも用いて取得される動的属性値である。履歴情報利用動的属性値は、例えば、購入回数、購入金額、総購入金額、平均滞在時間、平均PV数、来訪回数、後述するスコア、セッションの平均間隔、平均購買単価等である。
教師データは、教師元データでも良いし、教師元データの一部でも良い。教師データは、教師元データから予め決められた演算により取得され得る説明変数を含んでも良い。演算は、例えば、2以上の情報の統計処理、一つの情報の加工処理である。教師データは、1または2以上の説明変数と、1または2以上の目的変数とを含む。
対象データ格納部612は、予測対象データが格納されている。予測対象データは、予測対象のデータである。予測対象データは、予測部632が予測処理のために使用する情報である。予測対象データは、1以上の説明変数の集合である。予測対象データは、1以上の素性の集合である、と言っても良い。予測対象データは、1または2以上の説明変数を含む。なお、予測対象データに含まれる説明変数は、通常、教師データに含まれる説明変数と同じである。
予測対象データは、例えば、上述したユーザ情報の全部または一部である。予測対象データは、例えば、特定のアクションを起こしたユーザのユーザ情報の全部または一部である。特定のアクションとは、例えば、初回インストール、初回ログイン、初回購入、ログイン、ECサイト上での予め決められた操作等であっても、サイト上でのランク等の特定の状態にあることでもよい。なお、初回インストールとは、例えば、初回のECアプリのインストールである。初回ログインとは、ユーザ登録完了後の初回のログインである。初回購入とは、例えば、ECサイトでの、何らかの商品の初めての購入である。
テンプレート格納部613には、1または2以上のテンプレートが格納される。テンプレートは、1または2以上の学習パラメータ、および1または2以上の予測パラメータを含む。テンプレートは、1または2以上の後処理パラメータを含んでも良い。テンプレートは、1または2以上の出力パラメータを含んでも良い。
テンプレートは、例えば、ファイルである。ただし、テンプレートは、データベースの表、データベースの表の中の一レコード等でも良い。テンプレートのデータ構造は問わない。
以下、各パラメータの詳細について説明する。
(1)学習パラメータ
学習パラメータは、機械学習の学習処理に関するデータである。学習パラメータは、通常、機械学習の学習処理のために使用されるデータである。学習パラメータは、例えば、機械学習の学習処理のモジュールに渡されるデータ、機械学習の学習処理のモジュールに渡されるデータを取得するためのデータ、機械学習の学習処理のモジュールを実行するタイミングを決定するためのデータである。
1以上の学習パラメータは、学習タイミングパラメータ、教師元データ選択用パラメータ、教師データ構成用パラメータ、学習器構成用パラメータのうちの1または2種類以上のパラメータを含むことは好適である。
(1−1)学習タイミングパラメータ
学習タイミングパラメータは、学習器を構成するタイミングを特定するデータである。学習タイミングパラメータは、例えば、定期的に学習処理を行う場合の期間を特定する情報である。学習タイミングパラメータは、例えば、学習対象の情報を受信する度に行うか(リアルタイムか)否かを示すデータである。学習タイミングパラメータは、例えば、管理者の指示により学習処理を行うか否かを示す情報である。
(1−2)教師元データ選択用パラメータ
教師元データ選択用パラメータとは、教師データを作成するための教師元データを選択するためのデータである。教師元データ選択用パラメータは、例えば、教師元データの検索式を構成するためのデータである。
教師元データ選択用パラメータは、例えば、学習期間パラメータ、学習対象パラメータである。
(1−2−1)学習期間パラメータ
学習期間パラメータは、教師元データに対応する時を特定する情報である。学習期間パラメータは、例えば、選択する教師元データの期間を特定する情報である。学習期間パラメータは、例えば、教師元データが有する時情報であり、合致する時情報を決定するための期間の情報である。
(1−2−2)学習対象パラメータ
学習対象パラメータは、学習対象を特定するためのデータである。学習対象パラメータは、教師元データが有する特定のデータを決定するためのデータである。学習対象パラメータは、例えば、教師ユーザ選択パラメータ、教師アイテム選択パラメータ、データソースパラメータである。
(a)教師ユーザ選択パラメータ
教師元データがユーザに関する情報(例えば、上述したユーザ情報)である場合に、教師ユーザ選択パラメータは、ユーザを選択するための情報であり、ユーザの静的属性値(例えば、性別、年齢)、ユーザの動的属性値(例えば、購入回数、スコア)のうちの1種類以上の情報である。
(b)教師アイテム選択パラメータ
教師元データがアイテムに関する情報(例えば、商品の販売情報)である場合に、教師アイテム選択パラメータは、アイテムを選択するための情報であり、アイテムの静的属性値(例えば、価格、商品の種類)、アイテムの動的属性値(例えば、販売数、販売総額)のうちの1種類以上の情報である。
(c)データソースパラメータ
データソースパラメータは、例えば、教師元データがウェブから得られた教師元データであるか、アプリから得られた教師元データであるかを識別する情報である。
(1−3)教師データ構成用パラメータ
教師データ構成用パラメータとは、教師データを構成する説明変数、または目的変数を取得するためのデータである。教師データ構成用パラメータは、例えば、集計期間パラメータ、平滑化度である。集計期間パラメータは、例えば、教師元データを構成する特定の情報を統計処理した結果である説明変数を算出する場合の対象となる教師元データの期間を特定するデータである。集計期間パラメータは、例えば、教師元データを構成する特定の情報を統計処理した結果である目的変数を算出する場合の対象となる教師元データの期間を特定するデータである。集計期間パラメータは、例えば、動的属性値の集計期間を特定する情報である。平滑化度は、教師元データを構成する時系列データを統計処理する場合の、平滑化の度合いを示すデータである。平滑化度は、例えば、0〜5であり、大きな数値ほど、平滑化の度合いを大きくすることを意味する。
(1−4)学習器構成用パラメータ
学習器構成用パラメータとは、学習器を取得するためのデータである。学習器構成用パラメータは、例えば、1または2以上の学習アルゴリズムパラメータ、学習器評価用パラメータ、学習精度パラメータである。なお、学習器評価用パラメータは、手法パラメータと言っても良い。
学習アルゴリズムパラメータは、学習器を取得するアルゴリズムを特定するデータである。学習アルゴリズムパラメータは、例えば、学習器を取得するアルゴリズムを識別する識別子である。
学習器評価用パラメータは、例えば、学習器を評価するアルゴリズムの識別子である。学習器評価用パラメータは、例えば、K分割法のKを示す値(自然数)である。学習器評価用パラメータは、例えば、学習器の評価アルゴリズムの識別子である。
学習精度パラメータは、学習器として採用される精度の閾値を示すデータである。学習精度パラメータは、例えば、適合率、再現率、F値、精度のうちの1以上の値に関する情報であり、例えば、「適合率、再現率、F値、または精度が閾値以上」「適合率、再現率、F値、または精度が閾値より大きい」である。
(2)予測パラメータ
予測パラメータは、機械学習の予測処理に関するデータである。予測パラメータは、通常、機械学習の予測処理のために使用されるデータである。1以上の予測パラメータは、例えば、予測タイミングパラメータ、予測期間パラメータ、予測対象パラメータである。
(2−1)予測タイミングパラメータ
予測タイミングパラメータは、予測処理を行うタイミングを特定するデータである。予測タイミングパラメータは、例えば、予測処理を行う頻度(繰り返し頻度)、予測処理を行う日時である。予測タイミングパラメータは、例えば、予測対象の情報を受信する度に行うか(リアルタイムか)否かを示すデータである。予測タイミングパラメータは、例えば、管理者の指示により予測処理を行うか否かを示す情報である。
(2−2)予測期間パラメータ
予測期間パラメータは、予測処理を行う対象の期間を特定するデータである。予測期間パラメータは、例えば、推論対象期間である。予測期間パラメータは、例えば、需要予測をする将来の時を特定する情報(例えば、1ヶ月後まで、2020年7月1日まで)、ロイヤルカスタマーになるか否かを判断する時期を特定する情報(例えば、今年の年末、2020/9/30まで)である。
(2−3)予測対象パラメータ
予測対象パラメータは、予測対象を特定するためのデータである。予測対象パラメータは、例えば、予測ユーザ選択パラメータ、予測アイテム選択パラメータである。
(2−3−1)予測ユーザ選択パラメータ
予測ユーザ選択パラメータは、ユーザを選択するための情報である。予測ユーザ選択パラメータは、例えば、ユーザ情報の検索条件を構成する情報である。予測ユーザ選択パラメータは、例えば、ユーザの静的属性値(例えば、性別、年齢)、ユーザの動的属性値(例えば、購入回数、スコア)のうちの1種類以上の情報である。予測ユーザ選択パラメータは、例えば、「アプリケーションをインストールしたユーザ」「初回にログインしたユーザ」「初回に商品を購入したユーザ」等である。
(2−3−2)予測アイテム選択パラメータ
予測アイテム選択パラメータは、アイテムを選択するための情報である。予測アイテム選択パラメータは、例えば、アイテムの検索条件を構成する情報である。予測アイテム選択パラメータは、例えば、アイテムの静的属性値(例えば、価格、商品の種類)、アイテムの動的属性値(例えば、販売数、販売総額)のうちの1種類以上の情報である。
(3)後処理パラメータ
後処理パラメータは、予測結果を用いた後処理のためのデータである。後処理パラメータは、例えば、後処理を行うモジュールに与えるデータである。予測結果が購入回数であり、出力情報がロイヤルユーザであるか否かを示す情報である場合に、後処理パラメータは、例えば、ロイヤルユーザであると判定するための閾値である。
(4)出力パラメータ
出力パラメータは、情報の出力時に使用されるデータである。出力パラメータは、例えば、出力種類パラメータ、出力態様パラメータ、出力媒体パラメータ、出力先パラメータである。
出力種類パラメータは、出力される情報の種類を特定するデータである。出力種類パラメータは、例えば、「予測結果」「出力情報」である。出力種類パラメータは、例えば、予測結果を出力するか否か、出力情報を出力するか否かを示す情報である。
出力態様パラメータは、情報の出力態様を特定するデータである。出力態様パラメータは、例えば、情報を文字列で出力するか、グラフ出力するか等である。出力態様パラメータは、例えば、「グラフ」「表」「文字列」である。
出力媒体パラメータは、情報の出力媒体を特定するデータである。出力媒体パラメータは、例えば、情報を蓄積するか、送信するか、表示するか等を特定するデータである。
出力媒体パラメータは、例えば、「ディスプレイ」「記録媒体」「通信」「メール」である。
出力先パラメータは、出力先を特定するデータである。出力先パラメータは、例えば、ディスクのフォルダ名、メールアドレス、送信先のサーバ名、送信先のサーバのIPアドレスである。
テンプレート格納部613には、管理者識別子に対応付けてテンプレートが格納されていることは好適である。管理者識別子は、例えば、ID、氏名、メールアドレス、電話番号等である。テンプレートは、通常、テンプレート識別子が対応付いている。テンプレート識別子は、テンプレートを識別する情報である。テンプレート識別子は、例えば、ID、テンプレート名である。テンプレート識別子は、予測処理の対象を特定する情報、または予測結果を特定する情報であることは好適である。
テンプレート格納部613には、デフォルトのテンプレートが格納されていることは好適である。
テンプレート格納部613は、各々、異なる対象の予測結果を出力するために使用される2以上のテンプレートが、テンプレート識別子に対応付けられて格納されていることは好適である。
受付部62は、種々の情報や指示等を受け付ける。種々の情報や指示等とは、例えば、管理者識別子、テンプレート識別子、動作指示、テンプレート、テンプレートを構成する1以上のパラメータである。管理者識別子は、管理者を識別する情報である。テンプレート識別子は、テンプレートを識別する情報である。テンプレート識別子は、例えば、ID、テンプレート名である。動作指示は、例えば、学習指示、予測指示である。学習指示は、学習処理を実行する指示である。予測指は、予測処理を実行する指示である。動作指示、学習指示、予測指示は、例えば、管理者識別子を有する。動作指示、学習指示、予測指示は、例えば、テンプレート識別子を有する。
ここで、受け付けとは、通常、端末装置7からの受信である。情報処理装置6がスタンドアロンで動作する場合、受け付け付け、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
識別子受付部621は、テンプレート識別子を受け付ける。識別子受付部621は、例えば、テンプレート識別子と管理者識別子とを受け付ける。
処理部63は、各種の処理を行う。各種の処理とは、例えば、学習部631、予測部632、後処理部633が行う処理である。
学習部631は、学習処理を行い、学習器を取得する。学習処理とは、機械学習のアルゴリズムによる学習処理である。なお、機械学習のアルゴリズムは、例えば、深層学習、SVR、ランダムフォレスト、決定木等である。ただし、機械学習のアルゴリズムは問わない。また、機械学習のアルゴリズムを用いて学習処理を行うことは、機械学習のアルゴリズムを実現する関数(例えば、TinySVM、fastText、TensorFlow の関数)に、2以上の教師データを与え、学習処理を実行することである。なお、関数は、メソッド、モジュール等と言っても良い。
学習部631は、使用するテンプレートが有する1以上の学習パラメータを取得し、当該1以上の学習パラメータに対応する1以上の教師元データであり、教師元データ格納部611に格納されている1以上の各教師元データから、学習処理に使用する教師データを取得し、1以上の教師データに対して、学習処理を行い、学習器を取得する。
学習部631は、例えば、1以上の教師元データ選択用パラメータを、使用する対象のテンプレートから取得する。次に、学習部631は、例えば、取得した1以上の教師元データ選択用パラメータを用いて、教師元データ格納部611から1以上の教師元データを選択する。そして、学習部631は、例えば、1以上の教師データ構成用パラメータを、使用する対象のテンプレートから取得する。次に、学習部631は、例えば、取得した1以上の教師データ構成用パラメータを用いて、取得した1以上の各教師元データから教師データを取得する。また、学習部631は、例えば、1以上の学習器構成用パラメータを、使用する対象のテンプレートから取得する。次に、学習部631は、例えば、1または2以上の教師データを用いて、1または2以上の学習処理を行い、1または2以上の学習器を取得する。次に、学習部631は、例えば、1以上の学習器と1以上の学習器構成用パラメータとを用いて、予測処理に使用する一の学習器を取得する。
学習部631は、例えば、使用する対象のテンプレートから学習期間パラメータを取得する。次に、学習部631は、当該学習期間パラメータにより特定される期間に該当する時情報を有し、学習対象パラメータに合致する情報を有する1以上の教師元データを、教師元データ格納部611から決定する。次に、学習部631は、使用する対象のテンプレートから1以上の教師データ構成用パラメータを取得する。次に、学習部631は、決定した1以上の各教師元データに対して、1以上の教師データ構成用パラメータを使用して、教師データを構成する1以上の説明変数と1以上の目的変数とを取得する。次に、学習部631は、1以上の説明変数と1以上の目的変数とを有する2以上の教師データに対して、学習処理を行い、1以上の学習器を取得する。次に、学習部631は、使用する対象のテンプレートから1以上の学習器構成用パラメータを取得する。次に、学習部631は、取得した1以上の各学習器を、取得した1以上の学習器構成用パラメータを用いて評価し、一の学習器を取得する。
学習部631は、例えば、受付部62が受け付けた管理者識別子に対応するテンプレートが有する1以上の学習パラメータを用いて、学習処理を行い、学習器を取得する。
学習部631は、例えば、受付部62が受け付けた管理者識別子とテンプレート識別子とに対応するテンプレートが有する1以上の学習パラメータを用いて、学習処理を行い、学習器を取得する。
学習部631は、例えば、識別子受付部621が受け付けたテンプレート識別子で識別されるテンプレートが有する1以上の学習パラメータを用いて、学習処理を行い、学習器を取得する。学習部631は、識別子受付部621が受け付けたテンプレート識別子で識別されるテンプレートに対応する1以上の教師元データであり、教師元データ格納部611に格納されている1以上の各教師元データから、学習処理に使用する教師データを取得し、当該1以上の教師データに対して、学習処理を行い、学習器を取得する。
学習部631は、例えば、受付部62が受け付けた管理者識別子に対応するテンプレートがテンプレート格納部613に存在しない場合には、デフォルトのテンプレートが有する1以上の学習パラメータを用いて、学習処理を行い、学習器を取得する。なお、学習部631は、デフォルトのテンプレートをテンプレート格納部613から読み出して、使用する。
学習部631は、例えば、1以上の動的属性値を含む1以上の教師データを用いて、学習処理を行い、学習器を取得する。
学習部631は、例えば、1以上の動的属性値に加えて、1以上の静的属性値をも含む1以上の教師データを用いて、学習処理を行い、学習器を取得する。
教師データ取得手段6311は、1または2以上の教師データを取得する。教師データ取得手段6311は、教師元データ格納部611の教師元データを用いて、1または2以上の教師データを取得する。
教師データ取得手段6311は、例えば、使用するテンプレートが有する1以上の学習パラメータを取得し、当該1以上の学習パラメータに対応する1以上の教師元データを教師元データ格納部611から取得し、当該1以上の各教師元データから、学習処理に使用する教師データを取得する。
教師データ取得手段6311は、例えば、学習期間パラメータが特定する期間に対応する時情報を有する1以上の教師元データから1以上の教師データを取得する。なお、1以上の教師元データは、教師元データ格納部611のデータである。
教師データ取得手段6311は、例えば、1以上の教師元データ選択用パラメータを用いて、教師元データ格納部611から1以上の教師元データを選択し、当該1以上の各教師元データから1以上の教師データ構成用パラメータを用いて教師データを取得する。なお、教師データ取得手段6311は、1以上の教師元データ選択用パラメータ、1以上の教師データ構成用パラメータをテンプレートから読み出す。
教師データ取得手段6311は、例えば、学習期間パラメータが特定する期間に対応する時情報を有する1以上の各教師元データから、集計期間パラメータが特定する集計期間に従って、1以上の各動的属性値の集計結果を算出し、算出した1以上の集計結果を説明変数として有し、かつ予測対象パラメータを目的変数とする1以上の教師データを取得する。
学習手段6312は、教師データ取得手段6311が取得した2以上の教師データに対して、学習処理を行い、学習器を取得する。
学習手段6312は、例えば、教師データ取得手段6311が取得した2以上の教師データに対して、2以上の異なるアルゴリズムの学習処理を行い、2以上の学習器を取得する。なお、異なるアルゴリズムの学習処理とは、例えば、深層学習、ランダムフォレスト、SVM、SVR、決定木等である。
評価手段6313は、1または2以上の各学習器に対して評価を行い、各学習器に対する評価結果を取得する。評価とは、学習器の精度に関する評価であり、例えば、K分割法、ホールドアウト法、交差検定、混合行列等を利用した評価である。評価手段6313が行う評価アルゴリズムは固定的でも良いし、学習器構成用パラメータに従って、動的に変わっても良い。
評価手段6313は、例えば、1以上の各学習器に対して手法パラメータに基づく評価を行い、2以上の各学習器に対する評価結果を取得する。
選択手段6314は、1または2以上の各学習器の評価結果に基づいて、一の学習器を選択する。選択手段6314は、通常、最も評価結果が良い(通常、精度が高い)一の学習器を選択する。なお、選択手段6314は、学習器を取得できないことがあっても良い、とする。
予測部632は、使用するテンプレートが有する1以上の予測パラメータと学習器とを用いて、対象データ格納部612に格納されている予測対象データに対して予測処理を行い、予測結果を取得する。予測結果の取得は、あらかじめ設定されるクエリに合致すると行われる予測処理から得られるものでもよい。なお、学習器は、学習部631が取得した情報である。また、予測処理とは、機械学習のアルゴリムの予測処理である。なお、機械学習のアルゴリズムは、例えば、深層学習、SVR、ランダムフォレスト、決定木等である。ただし、機械学習のアルゴリズムは問わない。また、機械学習のアルゴリズムを用いて予測処理を行うことは、機械学習のアルゴリズムにより予測処理を行う関数(例えば、TinySVM、fastText、TensorFlow の関数)に、学習器と1以上の予測対象データとを与え、実行することである。なお、関数は、メソッド、モジュール等と言っても良い。
予測部632は、例えば、受付部62が受け付けた管理者識別子に対応するテンプレートに含まれる1以上の予測パラメータを用いて、予測処理を行い、予測結果を取得する。予測部632は、例えば、受付部62が受け付けた管理者識別子とテンプレート識別子とに対応するテンプレートが有する1以上の予測パラメータを取得し、当該1以上の予測パラメータを用いて、予測処理を行い、予測結果を取得する。
予測部632は、例えば、受付部62が受け付けた管理者識別子に対応するテンプレートがテンプレート格納部613に存在しない場合には、デフォルトのテンプレートが有する1以上の予測パラメータを用いて、予測処理を行い、予測結果を取得する。
予測部632は、例えば、識別子受付部621が受け付けたテンプレート識別子で識別されるテンプレートが有する1以上の予測パラメータと学習部631が取得した学習器とを用いて、対象データ格納部612に格納されている予測対象データに対して予測処理を行い、予測結果を取得する。
予測部632は、例えば、テンプレートが有する1以上の予測パラメータを用いて、予測対象のデータである1以上の予測対象データが格納されている対象データ格納部612から予測対象データを取得し、選択手段6314が選択した学習器を用いて、予測対象データに対して予測処理を行い、予測結果を取得する。
予測部632は、例えば、テンプレートが有する予測期間パラメータに従った期間の予測結果を取得する。予測部632は、例えば、テンプレートが有する予測期間パラメータに対応する学習器を取得し、当該学習器を用いて、予測対象データに対して予測処理を行い、予測結果を取得する。
予測部632は、例えば、予測タイミングパラメータにより特定されるタイミングで、予測処理を行い、予測結果を取得する。
予測部632は、例えば、1以上の動的属性値を含む1以上の予測対象データを用いて、予測処理を行い、予測結果を取得する。なお、予測結果は、例えば、ユーザのカテゴリー、ユーザの購入回数、ユーザの購入金額等であるまた、1以上の動的属性値は説明変数であり、予測結果は目的変数である。
予測部632は、例えば、1以上の静的属性値をも含む1以上の予測対象データを用いて、予測処理を行い、予測結果を取得する。なお、1以上の静的属性値は説明変数である。
予測部632は、例えば、予測ユーザ選択パラメータに対応するユーザの1以上の各動的属性値の集計結果を算出し、当該算出した1以上の集計結果を説明変数として有する説明変数群と学習器とを用いて、予測処理を行い、予測結果を取得する。
予測部632は、例えば、予測アイテム選択パラメータに対応するアイテムの販売結果に関する1以上の情報を取得し、当該1以上の情報を説明変数として有する説明変数群と学習器とを用いて、予測処理を行い、将来の販売結果に関する情報である予測結果を取得する。
後処理部633は、1以上の後処理パラメータを用いて、予測結果に対して、処理を行い、出力情報を取得する。後処理部633は、例えば、1以上の後処理パラメータを使用するテンプレートから取得し、当該1以上の後処理パラメータと予測結果とを用いて、出力情報を取得する。
後処理部633は、例えば、後処理パラメータを用いて、特定のユーザに該当するか否かを判断し、判断結果を用いて、出力情報を取得する。なお、特定のユーザは、例えば、ロイヤルカスタマーである。後処理部633は、例えば、予測部632が取得した購入回数または購入金額である予測結果と後処理パラメータである閾値とを用いて、予測結果が閾値以上(または閾値より大きい)であるか否かを判断し、閾値以上(または閾値より大きい)場合に、当該ユーザをロイヤルカスタマーとする出力情報を取得する。なお、出力情報は、例えば、ユーザ識別子とユーザカテゴリー識別子、特定のカテゴリーに属するユーザのユーザ識別子である。ユーザカテゴリー識別子は、ユーザのカテゴリーを識別する情報である。
出力部64は、例えば、予測結果を出力する。出力部64は、例えば、出力情報を出力する。出力部64は、例えば、予測結果に代えて、または予測結果に加えて、出力情報を出力する。
出力部64は、例えば、出力パラメータに従って、情報を出力する。出力部64は、例えば、出力種類パラメータが示す種類の情報(例えば、予測結果、出力情報のうちの1種類以上)を、出力態様パラメータが示す態様(例えば、文字列、グラフ等)で、出力媒体パラメータが示す出力媒体のうち出力先パラメータが示す出力先(例えば、記録媒体のフォルダA、ディスプレイ、外部装置X等)に出力する。
ここで、出力とは、通常、端末装置7への送信である。ただし、情報処理装置6がスタンドアロンの場合、出力とは、例えば、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
端末装置7を構成する端末格納部71には、各種の情報が格納される。各種の情報とは、例えば、管理者識別子、端末識別子等である。端末識別子は、端末装置7を識別する情報であり、例えば、Cookie ID、セッション識別子、IPアドレス、MACアドレス等である。
端末受付部72は、管理者から指示や情報等の入力を受け付ける。指示や情報等とは、例えば、テンプレート識別子、動作指示、学習指示、予測指示、テンプレート、テンプレートを構成する1以上のパラメータである。指示や情報等の入力手段は、タッチパネルやキーボードやマウスやメニュー画面によるもの等、何でも良い。
端末処理部73は、各種の処理を行う。各種の処理とは、例えば、端末受付部72が受け付けた指示や情報等を、送信する構造の指示や情報等に変更する処理、端末受信部75が受信した情報を出力する構造に変更する処理等である。
端末送信部74は、各種の情報や指示等を送信する。各種の情報や指示等とは、例えば、管理者識別子、テンプレート識別子、動作指示、テンプレート、テンプレートを構成する1以上のパラメータである。端末送信部74は、通常、情報処理装置6に情報や指示等を送信する。
端末受信部75は、各種の情報を受信する。各種の情報とは、例えば、予測結果、出力情報である。
端末出力部76は、各種の情報を出力する。各種の情報とは、例えば、端末受信部75が受信し、端末処理部73が出力される構造に変更した情報であり、例えば、予測結果、出力情報である。
ここで、出力とは、通常、ディスプレイへの表示であるが、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である、と考えても良い。
格納部61、教師元データ格納部611、対象データ格納部612、テンプレート格納部613、および端末格納部71は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部61等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部61等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部61等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部61等で記憶されるようになってもよい。
受付部62、識別子受付部621、および端末受信部75は、通常、無線または有線の通信手段で実現される。
処理部63、学習部631、予測部632、後処理部633、教師データ取得手段6311、学習手段6312、評価手段6313、選択手段6314、および端末処理部73は、プロセッサやメモリ等から実現され得る。処理部63等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、プロセッサは、CPU、MPU、GPU等であり、その種類は問わないことは言うまでもない。
出力部64、および端末送信部74は、通常、無線または有線の通信手段で実現される。
端末受付部72は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
端末出力部76は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。端末出力部76は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報処理装置6の動作について、図19のフローチャートを用いて説明する。
(ステップS1901)受付部62は、テンプレート等を受信したか否かを判断する。テンプレート等を受信した場合はステップS1902に行き、テンプレート等を受信しなかった場合はステップS1903に行く。なお、テンプレート等とは、例えば、テンプレートのみ、テンプレートと管理者識別子、テンプレートとテンプレート識別子、テンプレートと管理者識別子とテンプレート識別子である。なお、テンプレート等は、テンプレート全体でも良いが、更新または追記されるテンプレートの一部でも良い。
(ステップS1902)処理部63は、ステップS1901で受信されたテンプレートを、管理者識別子等に対応付けてテンプレート格納部613に蓄積する。ステップS1901に戻る。管理者識別子等とは、管理者識別子、管理者識別子とテンプレート識別子、またはテンプレート識別子である。なお、ステップS1901で受信された情報がテンプレートの一部である場合、処理部63は、当該テンプレートの一部を管理者識別子等に対応付けてテンプレート格納部613に蓄積する。
(ステップS1903)処理部63は、学習処理を行うか否かを判断する。学習処理を行う場合はステップS1904に行き、学習処理を行わない場合はステップS1908に行く。なお、学習処理を行う場合は、例えば、端末装置7から学習指示を受信した場合、予め決められたタイミングになった場合である。予め決められたタイミングは、例えば、定期的なタイミングで、予め決められた時である。予め決められたタイミングは、例えば、格納部61に格納されている日時になった時である。
(ステップS1904)学習部631は、カウンタiに1を代入する。
(ステップS1905)学習部631は、i番目の学習対象が存在するか否かを判断する。i番目の学習対象が存在する場合はステップS1906に行き、i番目の学習対象が存在しない場合はステップS1901に戻る。
なお、i番目の学習対象は、例えば、受信された学習指示に示されている。学習指示に示されている学習対象は、例えば、学習指示に含まれるテンプレート識別子で識別されるテンプレートを用いた学習処理の対象である。学習指示に示されている学習対象は、例えば、学習指示に含まれる管理者識別子と対になるテンプレートを用いた学習処理の対象である。また、i番目の学習対象は、例えば、テンプレート格納部613のi番目のテンプレートを用いた学習処理の対象である。また、i番目の学習対象は、例えば、テンプレート格納部613のテンプレートに含まれる学習タイミングパラメータが示すタイミングを満たすテンプレートに対応する学習処理の対象である。
(ステップS1906)学習部631は、i番目の学習対象を用いて、学習処理を行う。学習処理の例について、図20のフローチャートを用いて説明する。
(ステップS1907)学習部631は、カウンタiを1、インクリメントする。ステップS1905に戻る。
(ステップS1908)処理部63は、予測処理を行うか否かを判断する。予測処理を行う場合はステップS1909に行き、予測処理を行わない場合はステップS1901に戻る。なお、予測理を行う場合は、例えば、端末装置7から予測指示を受信した場合、予め決められたタイミングになった場合である。予め決められたタイミングは、例えば、定期的なタイミングで、予め決められた時である。予め決められたタイミングは、例えば、格納部61に格納されている日時になった時である。予め決められたタイミングは、例えば、テンプレートに含まれる予測対象パラメータ(例えば、「アプリケーションをインストールしたユーザ」「初回にログインしたユーザ」「初回に商品を購入したユーザ」)に合致することを示す情報(例えば、「アプリケーションをインストールした旨の情報」「ユーザのログインIDとパスワード」「商品の購入指示」)を受信した時である。
(ステップS1909)予測部632は、カウンタiに1を代入する。
(ステップS1910)予測部632は、i番目の予測対象が存在するか否かを判断する。i番目の予測対象が存在する場合はステップS1911に行き、i番目の予測対象が存在しない場合はステップS1901に戻る。
なお、i番目の予測対象は、例えば、予測指示に含まれるテンプレート識別子で識別されるテンプレートを用いた予測処理の対象である。予測指示に示されている予測対象は、例えば、予測指示に含まれる管理者識別子と対になるテンプレートを用いた予測処理の対象である。また、i番目の予測対象は、例えば、テンプレート格納部613のi番目のテンプレートを用いた予測処理の対象である。また、i番目の予測対象は、例えば、テンプレート格納部613のテンプレートに含まれる予測タイミングパラメータが示すタイミングを満たすテンプレートに対応する予測処理の対象である。
(ステップS1911)予測部632は、i番目の予測対象に対する予測処理を行う。予測処理について、図22のフローチャートを用いて説明する。
(ステップS1912)出力部64は、出力処理を行う。出力処理の例について、図23のフローチャートを用いて説明する。
(ステップS1913)予測部632は、カウンタiを1、インクリメントする。ステップS1910に戻る。
なお、図19のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS1906の学習処理の例について、図20のフローチャートを用いて説明する。
(ステップS2001)学習部631は、管理者識別子を取得する。なお、学習部631は、例えば、受信された指示等が有する管理者識別子を取得する。
(ステップS2002)学習部631は、テンプレート識別子を取得する。なお、ここで、テンプレート識別子を取得できない場合もある。また、学習部631は、例えば、受信された指示等が有するテンプレート識別子を取得する。
(ステップS2003)学習部631は、ステップS2001で取得した管理者識別子、またはステップS2001で取得した管理者識別とステップS2002で取得したテンプレート識別子に対応するテンプレートが存在するか否かを判断する。テンプレートが存在する場合はステップS2004に行き、テンプレートが存在しない場合はステップS2005に行く。
(ステップS2004)学習部631は、ステップS2001で取得した管理者識別子、またはステップS2001で取得した管理者識別とステップS2002で取得したテンプレート識別子に対応するテンプレートを、テンプレート格納部613から取得する。
(ステップS2005)学習部631は、デフォルトのテンプレートをテンプレート格納部613から取得する。
(ステップS2006)学習部631は、取得したテンプレートの中に、学習タイミングパラメータが存在するか否かを判断する。学習タイミングパラメータが存在する場合はステップS2007に行き、学習タイミングパラメータが存在しない場合はステップS2008に行く。
(ステップS2007)教師データ取得手段6311は、テンプレートの中に学習タイミングパラメータが特定するタイミングを満たすか否か(学習するタイミングであるか否か)を判断する。学習タイミングパラメータが特定するタイミングを満たす場合はステップS2008に行き、満たさない場合は上位処理にリターンする。
(ステップS2008)教師データ取得手段6311は、取得したテンプレートの中に、教師元データ選択用パラメータが存在するか否かを判断する。教師元データ選択用パラメータが存在する場合はステップS2009に行き、存在しない場合はステップS2010に行く。
(ステップS2009)教師データ取得手段6311は、テンプレートの中の教師元データ選択用パラメータに対応する教師元データを教師元データ格納部611から取得する。
(ステップS2010)教師データ取得手段6311は、学習で使用する候補のすべての教師元データを教師元データ格納部611から取得する。
(ステップS2011)教師データ取得手段6311は、ステップS2009またはステップS2010で取得した2以上の教師元データを用いて、2以上の教師データを取得する処理を行う。かかる教師データ取得処理の例について、図21のフローチャートを用いて説明する。
(ステップS2012)学習手段6312は、テンプレートの中に学習アルゴリズムパラメータが存在するか否かを判断する。学習アルゴリズムパラメータが存在する場合はステップS2013に行き、学習アルゴリズムパラメータが存在しない場合はステップS2020に行く。
(ステップS2013)学習手段6312は、ステップS2011で取得された2以上の教師データを用いて、学習アルゴリズムパラメータにより特定される1または2以上の各アルゴリズムにより学習処理を行い、1または2以上の学習器を取得する。
(ステップS2014)評価手段6313は、テンプレートの中に学習器評価用パラメータが存在するか否かを判断する。学習器評価用パラメータが存在する場合はステップS2015に行き、学習器評価用パラメータが存在しない場合はステップS2016に行く。
(ステップS2015)評価手段6313は、学習器評価用パラメータに従った評価方法により、取得された1または2以上の各学習器を評価し、評価結果を取得する。
(ステップS2016)評価手段6313は、取得された1または2以上の各学習器をデフォルト評価方法で評価し、評価結果を取得する。
(ステップS2017)選択手段6314は、テンプレートの中に学習精度パラメータが存在するか否かを判断する。学習精度パラメータが存在する場合はステップS2018に行き、学習精度パラメータが存在しない場合はステップS2019に行く。
(ステップS2018)選択手段6314は、評価結果が最良の学習器の精度が、学習精度パラメータを満たすか否かを判断する。学習精度パラメータを満たす場合はステップS2019に行き、学習精度パラメータを満たさない場合は上位処理にリターンする。
(ステップS2019)学習部631は、評価結果が最良の学習器を、管理者識別子、またはテンプレート識別子、または管理者識別子とテンプレート識別子に対応付けて、格納部61に蓄積する。上位処理にリターンする。
(ステップS2020)学習手段6312は、ステップS2011で取得された2以上の教師データを用いて、デフォルトの学習処理を行い、学習器を取得する。
(ステップS2021)学習手段6312は、ステップS2020で取得した学習器を、管理者識別子、またはテンプレート識別子、または管理者識別子とテンプレート識別子に対応付けて、格納部61に蓄積する。上位処理にリターンする。
次に、ステップS2011の教師データ取得処理の例について、図21のフローチャートを用いて説明する。
(ステップS2101)教師データ取得手段6311は、カウンタiに1を代入する。
(ステップS2102)教師データ取得手段6311は、i番目の教師元データが存在するか否かを判断する。i番目の教師元データが存在する場合はステップS2103に行き、i番目の教師元データが存在しない場合は上位処理にリターンする。
(ステップS2103)教師データ取得手段6311は、カウンタjに1を代入する。
(ステップS2104)教師データ取得手段6311は、教師データを構成するj番目の要素が存在するか否かを判断する。j番目の要素が存在する場合はステップS2105に行き、j番目の要素が存在しない場合はステップS2112に行く。なお、教師データを構成する要素は予め決められている。
(ステップS2105)教師データ取得手段6311は、j番目の要素が、テンプレートの中のいずれかの教師データ構成用パラメータに対応するか否かを判断する。教師データ構成用パラメータに対応する場合はステップS2106に行き、教師データ構成用パラメータに対応しない場合はステップS2107に行く。
(ステップS2106)教師データ取得手段6311は、i番目の教師元データに対応する情報であり、j番目の要素に対応する情報を取得し、当該情報と教師データ構成用パラメータとを用いて、j番目の要素を取得する。
なお、j番目の要素は、例えば、i番目の教師元データの中の一の要素を教師データ構成用パラメータに従って加工した情報、i番目の教師元データの中の2以上の要素を教師データ構成用パラメータに従って演算して取得される情報、複数の各教師元データが有する一の要素を教師データ構成用パラメータに従って統計処理(例えば、平均値の算出、総和)して取得される情報である。
(ステップS2107)教師データ取得手段6311は、i番目の教師元データの中の、j番目の要素に対応する1以上の情報を用いて、j番目の要素を取得する。
なお、j番目の要素は、例えば、i番目の教師元データの中の一の要素、i番目の教師元データの中の2以上の要素を演算して取得される情報、複数の各教師元データが有する一の要素を統計処理(例えば、平均値の算出、総和)して取得される情報である。
(ステップS2108)教師データ取得手段6311は、教師データを構成するj番目の要素が説明変数であるか、目的変数であるかを判断する。説明変数であればステップS2109に行き、目的変数であればステップS2110に行く。
(ステップS2109)教師データ取得手段6311は、j番目の要素に説明変数である旨のフラグを付与する。
(ステップS2110)教師データ取得手段6311は、j番目の要素に目的変数である旨のフラグを付与する。
(ステップS2111)教師データ取得手段6311は、カウンタjを1、インクリメントする。ステップS2104に戻る。
(ステップS2112)教師データ取得手段6311は、説明変数の1以上の要素、および目的変数の1以上の要素を用いて、i番目の教師データを構成ある。
(ステップS2113)教師データ取得手段6311は、カウンタiを1、インクリメントする。ステップS2102に戻る。
次に、ステップS1911の予測処理の例について、図22のフローチャートを用いて説明する。図22のフローチャートにおいて、図20のフローチャートと同一のステップについて、その説明を省略する。
(ステップS2201)予測部632は、取得されたテンプレートの中に、予測タイミングパラメータが存在するか否かを判断する。予測タイミングパラメータが存在する場合はステップS2202に行き、予測タイミングパラメータが存在しない場合はステップS2203に行く。
(ステップS2202)予測部632は、テンプレートの中に予測タイミングパラメータを満たすタイミングであるか否かを判断する。予測タイミングパラメータを満たすタイミングであればステップS2203に行き、予測タイミングパラメータを満たすタイミングでなければ上位処理にリターンする。
(ステップS2203)予測部632は、テンプレートの中に予測対象パラメータが存在するか否かを判断する。予測対象パラメータが存在する場合はステップS2204に行き予測対象パラメータが存在しない場合はステップS2205に行く。
(ステップS2204)予測部632は、予測対象パラメータに合致する1以上の予測対象データを取得する。なお、予測対象データは、1以上の説明変数を有する。
(ステップS2205)予測部632は、すべての対象データを取得する。
(ステップS2206)予測部632は、カウンタiに1を代入する。
(ステップS2207)予測部632は、i番目の予測対象データが存在するか否かを判断する。i番目の予測対象データが存在する場合はステップS2208に行き、i番目の予測対象データが存在しない場合は上位処理にリターンする。
(ステップS2208)予測部632は、テンプレートの中に予測期間パラメータが存在するか否かを判断する。予測期間パラメータが存在する場合はステップS2209に行き、予測期間パラメータが存在しない場合はステップS2210に行く。
(ステップS2209)予測部632は、予測期間パラメータに対応する学習器を取得する。予測部632は、i番目の対象データと取得した学習器とを用いて、予測処理を行い、予測期間パラメータに従った予測結果を取得する。なお、予測期間パラメータに対応する学習器は、学習部631により取得され、予測期間パラメータに対応付けて、格納部61に格納されている、とする。
(ステップS2210)予測部632は、予測処理に使用するデフォルトの学習器を取得する。予測部632は、i番目の対象データと取得した学習器とを用いて、予測処理を行い、予測結果を取得する。
(ステップS2211)予測部632は、ステップS2209またはステップS2210で取得した予測結果を、i番目の予測対象データに対応付けて、格納部61に蓄積する。
(ステップS2212)後処理部633は、後処理を行うか否かを判断する。後処理を行う場合はステップS2213に行き、後処理を行わない場合はステップS2216に行く。
なお、後処理を行うか否かは、予め決められていても良いし、後処理部633は、テンプレートの中に後処理パラメータが存在するか否かを判断し、存在する場合のみ、後処理を行うと判断しても良い。
(ステップS2213)後処理部633は、テンプレートの中に後処理パラメータが存在するか否かを判断する。テンプレートの中に後処理パラメータが存在する場合はステップS2214に行き、テンプレートの中に後処理パラメータが存在しない場合はステップS2215に行く。
(ステップS2214)後処理部633は、後処理パラメータを用いて、予測結果に対して、後処理を行う。後処理部633は、後処理により取得した出力情報を、i番目の予測対象データに対応付けて格納部61に蓄積する。
(ステップS2215)後処理部633は、予測結果に対して、デフォルトの後処理を行う。後処理部633は、後処理により取得した出力情報を、i番目の予測対象データに対応付けて格納部61に蓄積する。
(ステップS2216)予測部632は、カウンタiを1、インクリメントする。ステップS2207に戻る。
次に、ステップS1912の出力処理の例について、図23のフローチャートを用いて説明する。
(ステップS2301)出力部64は、テンプレートの中に出力種類パラメータが存在するか否かを判断する。出力種類パラメータが存在する場合はステップS2302に行き、出力種類パラメータが存在しない場合はステップS2304に行く。
(ステップS2302)出力部64は、テンプレートの中の出力種類パラメータに対応する1または2以上の各種類の情報を取得する。
(ステップS2303)出力部64は、デフォルトの出力対象の情報を取得する。
(ステップS2304)出力部64は、テンプレートの中に出力態様パラメータが存在するか否かを判断する。出力態様パラメータが存在する場合はステップS2305に行き、出力態様パラメータが存在しない場合はステップS2306に行く。
(ステップS2305)出力部64は、テンプレートの中に出力態様パラメータに従って、ステップS2302またはステップS2304で取得した情報を出力する態様の情報に構成する。
(ステップS2306)出力部64は、取得した情報をデフォルトの出力態様の情報に構成する。
(ステップS2307)出力部64は、テンプレートの中に出力先パラメータが存在するか否かを判断する。出力先パラメータが存在する場合はステップS2308に行き、出力先パラメータが存在しない場合はステップS2309に行く。
(ステップS2308)出力部64は、出力先パラメータに従った先に、取得した情報を出力する。
(ステップS2309)出力部64は、デフォルトの出力先に、取得した情報を出力する。
なお、図23のフローチャートにおいて、テンプレートの中の出力媒体パラメータに応じて、異なる媒体に情報を出力しても良い。
次に、端末装置7の動作例について、図24のフローチャートを用いて説明する。
(ステップS2401)端末受付部72は、管理者からテンプレート等を受け付けたか否かを判断する。テンプレート等を受け付けた場合はステップS2402に行き、テンプレート等を受け付けなかった場合はステップS2403に行く。
(ステップS2402)端末処理部73は、テンプレート等を送信するデータ構造にする。端末送信部74は、構成されたテンプレート等を情報処理装置6に送信する。ステップS2401に戻る。なお、送信したテンプレートは、情報処理装置6で蓄積される。
(ステップS2403)端末受付部72は、管理者から学習指示を受け付けたか否かを判断する。学習指示を受け付けた場合はステップS2404に行き、学習指示を受け付けなかった場合はステップS2405に行く。
(ステップS2404)端末処理部73は、学習指示を送信するデータ構造にする。端末送信部74は、構成された学習指示を情報処理装置6に送信する。ステップS2401に戻る。なお、学習指示の送信により、情報処理装置6で学習器が構成され蓄積される。
(ステップS2405)端末受付部72は、管理者から予測指示を受け付けたか否かを判断する。予測指示を受け付けた場合はステップS2406に行き、予測指示を受け付けなかった場合はステップS2401に戻る。
(ステップS2406)端末処理部73は、予測指示を送信するデータ構造にする。端末送信部74は、構成された予測指示を情報処理装置6に送信する。
(ステップS2407)端末受信部75は、ステップS2406における予測指示の送信に応じて、出力情報等を情報処理装置6から受信したか否かを判断する。出力情報等を受信した場合はステップS2408に行き、出力情報等を受信しなかった場合はステップS2407に戻る。
(ステップS2408)端末処理部73は、出力情報等を出力するデータ構造にする。端末出力部76は、構成された出力情報等を出力する。ステップS2401に戻る。
以下、本実施の形態における情報システムCの具体的な動作について説明する。以下の具体例において、情報処理装置6は、ウェブサイトへの来訪者(以下、適宜「ユーザ」と言う。)の属性値を、リアルタイムに検知し、蓄積した実施の形態1のサーバ装置2の情報を使用する。なお、サーバ装置2は、上述した通り、ウェブサイトへの来訪者であるユーザのユーザ端末1から、1または2以上の操作情報を受信し、蓄積する。操作情報は、上述したように、プリミティブな操作の情報(例えば、「rightButtonON」)でも良いし、操作の意味や意義が判断可能な情報(例えば、「ログイン」「ログアウト」「購入 商品A」「移動 ページX」「○○ページが表示されました」)でも良い。
そして、ここでは、サーバ装置2が蓄積した操作情報が、情報処理装置6の教師元データを構成する、とする。つまり、今、情報処理装置6の教師元データ格納部611には、図25に示す教師元データ管理表が格納されている、とする。教師元データ管理表は、図11の操作情報管理表と同じ構造でも良い。図25に示す教師元データ管理表の「データソース」とは、操作情報に対応する操作が行われた元を示し、ここでは、「web」または「app」の情報を採り得る。「web」は、ウェブページに対して操作が行われたことを示す。「app」は、アプリケーションに対して操作が行われたことを示す。
なお、情報処理装置6は、かかるサーバ装置2の機能の全部または一部を有しても良い。つまり、実施の形態1で説明した情報システムAの動作により、情報処理装置6の教師元データ格納部611には、図25に示す教師元データ管理表が格納されても良い。また、情報処理装置6の教師元データ格納部611の教師元データ管理表は、サーバ装置2から受信されても良い。
そして、テンプレート格納部613には、図26に示す構造を有するテンプレート管理表が格納されている、とする。テンプレート管理表は、テンプレートを管理する表である。テンプレート管理表は、「ID」「管理者識別子」「テンプレート識別子」「テンプレート」を有するレコードを1以上管理する。「ID」は、レコードを識別する情報である。「管理者識別子」はテンプレートを使用する管理者の識別子である。「管理者識別子」はテンプレートを保有する管理者の識別子であっても良い。「テンプレート識別子」は、テンプレートの識別子であり、ここでは、テンプレートの名前である。「テンプレート」は、ここでは、テンプレートのファイル名である。また、「テンプレート」に対応するテンプレートのファイルは、テンプレート格納部613に格納されている、とする。
かかる状況において、以下の3つの具体例を説明する。具体例1は、テンプレートが蓄積される具体例である。具体例2は、情報処理装置6がユーザの分類を行う具体例である。具体例3は、情報処理装置6が商品の需要予測を行う具体例である。
(具体例1)
上記の状況において、管理者識別子「M01」で識別される管理者1は、端末装置7に表示されている図27の画面に対して、テンプレートを構成する情報を、図27に示すように入力した、とする。なお、入力画面及びその方法は、yaml等のエディタを用いて入力し、あるいは当該エディタを用いて階層的に入力すること等でも良い。つまり、テンプレートを構成する情報の与え方は問わないことは言うまでもない。
すると、端末受付部72は、管理者1からテンプレートを受け付ける。そして、端末処理部73は、テンプレートと管理者識別子「M01」とを送信するデータ構造にする。次に、端末送信部74は、構成されたテンプレートと管理者識別子「M01」とを情報処理装置6に送信する。
次に、情報処理装置6の受付部62は、テンプレート等を受信する。次に、処理部63は、受信したテンプレートの情報を用いてファイルを構成し、当該ファイルをテンプレート格納部613に蓄積する。次に、処理部63は、受信した管理者識別子「M01」と、テンプレートが有するモデル名「ロイヤルカスタマー分類」とテンプレートのファイル名「tp_m01_1.txt」とからレコードを構成し、当該レコードをテンプレート管理表に書き込む。なお、かかるレコードは、図26の「ID=1」のレコードである。
また、「tp_m01_1.txt」のテンプレートの例は、図28である。図28において、「<学習タイミングパラメータ>学習指示の受信」は、学習指示の受信をトリガーとして、学習部631が学習処理を行うことを示す。「<学習期間パラメータ>2019−06−01 〜 2019−12−31」は、日時が「2019/06/01〜2019/12/31」の期間の教師元データを用いて、学習処理を行うことを示す。「<教師ユーザ選択パラメータ>−」等の「−」は、パラメータの規定が存在しないこと、デフォルトのデータを使用すること、デフォルトの処理を行うこと等のうちのいずれかを示す。「<データソースパラメータ>web」は、データソースが「web」の教師元データを用いて、学習処理を行うことを示す。「<集計期間パラメータ>30」は、教師データの素性(特徴,または特徴量と言っても良い)として使用する情報の中で、統計処理を行った結果の各情報は、初回購買後(初回の商品の購入時以降)30日間の教師元データを用いた統計処理の結果の情報であることを示す。「<正解データ集計日数>60」は、正解データ(ここでは、予め決められている「購入回数」)を算出する場合の集計日数が60日であることを示す。なお、「<正解データ集計日数>60」は、目的変数を取得する場合に使用される情報であり、予測処理だけではなく、学習処理にも使用される。「<予測期間パラメータ>2020−01−01 〜 2020−03−01」は、予測処理を行う日が、「2020−01−01〜2020−03−01」の間であることを示す。「<ロイヤル判定とする閾値>2」は、ロイヤルカスタマーであると判断するユーザは、購入回数が2回以上のユーザであることを示す。「<出力種類パラメータ>ロイヤルカスタマーのユーザ識別子」は、ロイヤルカスタマーのユーザ識別子を出力する情報とすることを示す。「<出力態様パラメータ>文字列,日別棒グラフ」は、出力される情報は、「ロイヤルカスタマーのユーザ識別子(文字列)」および「ロイヤルカスタマーのユーザ識別子の数の日別の棒グラフ」であることを示す。「<出力媒体パラメータ>HDD,メール」は、出力される情報が、HDDへ蓄積される、およびメールで送信されることを示す。「<HDD>/root/admin/x/」はHDDへの蓄積先を示す。「<メール>admin1@x.jp, admin2@x.jp」は、出力される情報の送信先のメールアドレスを示す。
(具体例2)
情報処理装置6のテンプレート格納部613に、図26のテンプレート管理表、図28のテンプレート等が格納されている、とする。
そして、情報処理装置6の受付部62は、管理者識別子「M01」とテンプレート識別子「ロイヤルカスタマー分類」とを有する動作指示を端末装置7から受信した、とする。なお、動作指示は、学習指示、および予測指示を含む、とする。
すると、情報処理装置6は、以下のように動作する。つまり、情報処理装置6の学習部631は、図28のテンプレートに基づいて、図25の教師元データを用いて、学習処理を行う。
つまり、まず、処理部63は、テンプレートの「<学習タイミングパラメータ>学習指示の受信」を参照し、学習処理を行う、と判断する。なお、動作指示の受信は、学習指示の受信にも該当する、とする。
次に、学習部631の教師データ取得手段6311は、「<学習期間パラメータ>2019−06−01〜2019−12−31」「<データソースパラメータ>web」を参照し、日時が「2019−06−01〜2019−12−31」の期間内の日時であり、データソースが「web」である教師元データを教師元データ管理表(図25)から取得する。
次に、教師データ取得手段6311は、テンプレートの「<集計期間パラメータ>30日」を参照し、統計処理すべき動的属性値を取得する。つまり、教師データ取得手段6311は、各ユーザごとに、取得した1以上の教師元データに対して統計処理し、初回購入後から30日間の「来訪回数」、初回購入後から30日間の「総購入金額(円)」、初回購入後から30日間の「平均PV数」、初回購入後から30日間の「セッション平均間隔」、初回購入後から30日間の「平均滞在時間」、初回購入後から30日間の「平均購買単価」等の説明変数を取得する。なお、図25のような教師元データ(操作情報)から、初回購入後から30日間の「来訪回数」等を取得する処理は公知技術により可能である。
また、教師データ取得手段6311は、各ユーザごとに、説明変数を構成する予め決められた静的属性値(例えば、性別、年齢、メンバー等)を取得する。
また、教師データ取得手段6311は、テンプレートの「<正解データ集計日数>60」を参照し、各ユーザごとに、60日間の正解データ(ここでは、「購入回数」)を取得する。なお、この「購入回数」は、目的変数である。また、正解データが「購入回数」であることは、教師データ取得手段6311が予め知っている、(プログラムされている)、とする。
次に、教師データ取得手段6311は、各ユーザごとに、2以上の説明変数、および一の目的変数を有する教師データを構成する。なお、かかるユーザごとの教師データの例は、図29である。教師データは、「静的属性値」「動的属性値」を有する。「動的属性値」は、ここでは、「履歴情報利用動的属性値」である。図29は、教師データ管理表である。
次に、学習手段6312は、複数のユーザの教師データを用いて、学習処理を行い、学習器を構成する。次に、学習手段6312は、当該学習器を、テンプレートに対応付けて、格納部61に蓄積する。
次に、予測部632は、テンプレートの「<予測期間パラメータ>2020−01−01 〜 2020−03−01」を参照し、期間「2020−01−01 〜 2020−03−01」の各日のユーザの購入回数(累積)を、ユーザごと、日ごとに予測し、ユーザごと、日ごとの予測結果を取得する。
次に、後処理部633は、ユーザごと、日ごとの購入回数と「<ロイヤル判定とする閾値>2」とを用いて、日ごとに、各ユーザが「ロイヤルカスタマーであるか否か(の購入回数(累積)が2回以上と予測されたか否か)を判断する。そして、後処理部633は、テンプレートの「<出力種類パラメータ>ロイヤルカスタマーのユーザ識別子」を参照し、日ごとに、ロイヤルカスタマーであるユーザ識別子を取得する。なお、かかる日ごとのユーザ識別子は、ここでは、出力情報である。後処理部633は、日ごとに、新たにロイヤルカスタマーになるユーザのユーザ識別子を取得しても良い。
次に、出力部64は、テンプレートの「<出力態様パラメータ>文字列,日別棒グラフ」を参照し、「日ごとのユーザ識別子」の文字列、および日別棒グラフを構成する。また、出力部64は、「<出力媒体パラメータ>HDD,メール」「<出力先パラメータ><HDD>/root/admin/x/ <メール>admin1@x.jp, admin2@x.jp」を参照し、構成した文字列および日別棒グラフを、HDDのフォルダ「/root/admin/x/」に蓄積し、「admin1@x.jp, admin2@x.jp」の2名にメール送信する。なお、日別棒グラフは、例えば、日を横軸、ロイヤルカスタマーの数を縦軸とする棒グラフであり、かかる棒グラフを構成する技術は公知技術である。また、ロイヤルカスタマーの数は、累積のロイヤルカスタマーの数でも良いし、新たにロイヤルカスタマーになるユーザの数でも良い。
(具体例3)
今、テンプレート格納部613には、図26に示すテンプレート管理表、テンプレート「tp_m01_1.txt」(図28)、およびテンプレート「tp_m01_2.txt」(図30)等が格納されている、とする。図30は、需要予測のためのテンプレートである。また、図30の需要予測のためのテンプレートは、図26の「ID=2」のレコードに対応する。つまり、図30の需要予測のためのテンプレートのファイル名は、「tp_m01_2.txt」である。
図30のテンプレートの「<教師ユーザ選択パラメータ>商品A」は、商品Aの販売を示す教師元データを選択することを示す。「<学習期間パラメータ>2019−06−01 〜 2019−12−31」は、日時が「2019/06/01〜2019/12/31」の期間の教師元データを選択することを示す。テンプレートの「<集計期間パラメータ>60」は、教師データの素性(特徴,または特徴量と言っても良い)として使用する情報の中で、統計処理を行った結果の各情報は、初回購買後(初回の商品の購入時以降)60日間の教師元データを用いた統計処理の結果の情報であることを示す。「<平滑化度>5」は、統計処理における平滑化の度合いが「5」であることを示す。「<学習精度パラメータ>0.7」は、学習器を評価した場合の精度が「0.7」以上でなければ、その学習器を使用しないことを示す。「<予測期間パラメータ>1ヶ月後」は、需要予測は、1ヶ月後の需要予測を行うことを示す。「<出力種類パラメータ>予測結果」は、出力される情報が予測結果であることを示す。なお、ここでの予測結果は、需要の予測結果であり、商品Aの1ヶ月後の予測販売数である。
かかる状況において、管理者識別子「M01」で識別される管理者1は、端末装置7に、動作指示を入力した、とする。すると、端末装置7は、管理者識別子「M01」を有する動作指示を情報処理装置6に送信する。
情報処理装置6は、管理者識別子「M01」をキーとして図26のテンプレート管理表を検索し、2つのテンプレートを選択し、当該2つのテンプレートから一のテンプレートを選択する画面を構成し、端末装置7に送信する。
端末装置7は、テンプレートの選択用画面を受信し、出力する。係る画面例は、図31である。なお、図31において、3101「ロイヤルカスタマー分類」「需要予測」の2つのテンプレートのメニュー項目(3101,3102)が表示されている。
次に、管理者1は、図31の画面から3102の「需要予測」のメニュー項目を選択した、とする。すると、端末装置7は、当該選択された「需要予測」のテンプレート識別子を有する動作指示を受け付け、当該動作指示を情報処理装置6に送信する。
次に、情報処理装置6は、「需要予測」を有する動作指示を受信する。次に、情報処理装置6は、テンプレート「需要予測」に従った学習処理、および予測処理を行う。
つまり、学習部631の教師データ取得手段6311は、テンプレート「需要予測」を参照し、日時が「2019/06/01〜2019/12/31」の期間の教師元データであり、「商品A」の購入を示す教師元データを、図25の教師元データ管理表から選択する。
次に、教師データ取得手段6311は、テンプレートの「<学習期間パラメータ>2019−06−01 〜 2019−12−31」、「<集計期間パラメータ>60」を参照し、「2019−06−01 〜 2019−12−31」が示す期間の各日ごとに、当該日を最後の日とする60日間の1以上の各情報を統計処理し、1以上の動的属性値を取得する。つまり、教師データ取得手段6311は、各日ごとに、取得した1以上の教師元データから、60日間の「来訪回数」、60日間の「総購入金額(円)」、60日間の「平均PV数」、60日間の「セッション平均間隔」、60日間の「平均滞在時間」、60日間の「平均購買単価」等の説明変数を取得する。なお、かかる統計処理の場合に、「<平滑化度>5」に従った平滑化の処理を行う。
また、教師データ取得手段6311は、テンプレートの「<学習期間パラメータ>2019−06−01 〜 2019−12−31」、「<予測期間パラメータ>1ヶ月後」を参照し、教師元データ管理表を用いて、「2019−06−01 〜 2019−12−31」が示す期間の各日ごとに、1ヶ月後の1日の「商品A」の販売数を取得する。かかる販売数は、目的変数である。
次に、教師データ取得手段6311は、各日ごとに、2以上の説明変数、および一の目的変数を有する教師データを構成する。
次に、学習手段6312は、複数の日の教師データを用いて、学習処理を行い、学習器を構成する。次に、学習手段6312は、当該学習器を、テンプレートに対応付けて、格納部61に蓄積する。
次に、評価手段6313は、テンプレートの「<学習精度パラメータ>0.7」を参照し、評価に関するパラメータ「<学習器評価用パラメータ>」「<学習精度パラメータ>」のいずれかに値が入っているので、与えられたパラメータを用いて、学習器を評価する、と判断する。次に、評価手段6313は、取得された学習器を、例えば、デフォルトの評価方法であるK分割法を用いて評価し、精度「0.91」を得た、とする。
次に、選択手段6314は、テンプレートの「<学習精度パラメータ>0.7」を参照し、評価手段6313が取得した精度「0.91」が「0.7以上」を満たすので、当ギア学習器は使用可能である、と判断する。
次に、予測部632は、テンプレートの「<集計期間パラメータ>60」「<予測期間パラメータ>1ヶ月後」を参照し、昨日までの最近60日間の教師元データから2以上の説明変数を取得する。次に、予測部632は、蓄積された学習器と当該2以上の説明変数を、予測処理を行うモジュールに与え、当該モジュールを実行し、予測結果(例えば、「1286」)を取得する。かかる予測結果は、商品Aの1ヶ月後の売上予測である。
次に、出力部64は、テンプレートの「<出力種類パラメータ>予測結果」に従って、予測結果「1286」を出力する。ここでは、例えば、出力部64は、予測結果「商品Aの1ヶ月後の販売予測数は「1286」です。」を、端末装置7に送信する。
次に、端末装置7は、予測結果「商品Aの1ヶ月後の販売予測数は「1286」です。」を受信し、出力する。
以上、本実施の形態によれば、機械学習のアルゴリズムにより学習処理および予測処理を行う場合に、使用する種々のパラメータを有するテンプレートを用いて、柔軟にカスタマイズ可能な学習処理および予測処理が行える。
また、本実施の形態によれば、情報処理装置を使用する管理者ごとに、異なるテンプレートを使用して、学習処理および予測処理が行える。
また、本実施の形態によれば、テンプレートを定義していない管理者でも、デフォルトのテンプレートを使用して、容易に学習処理および予測処理が行える。
また、本実施の形態によれば、ユーザが選択したテンプレートを使用して、容易に学習処理および予測処理が行える。
また、本実施の形態によれば、学習処理の前処理である教師データの選択処理で使用する学習期間パラメータをテンプレートにより指定できる。
また、本実施の形態によれば、学習処理の後処理で使用する手法パラメータを、テンプレートにより指定できる。
また、本実施の形態によれば、予測処理において使用する予測期間パラメータをテンプレートにより指定できる。
また、本実施の形態によれば、予測処理を行うタイミングをテンプレートにより指定できる。
また、本実施の形態によれば、予測処理後の後処理で使用する後処理パラメータをテンプレートにより指定できる。
また、本実施の形態によれば、ユーザのカテゴリーを含む予測結果を取得できる。本実施の形態によれば、例えば、商品を購入するユーザの分類予測を得ることができる。
また、本実施の形態によれば、ユーザの1以上の静的属性値をも用いて、学習処理および予測処理を行うことにより、ユーザのカテゴリーを含む予測結果を取得できる。
さらに、本実施の形態によれば、商品を購入するユーザの情報を用いて、商品の需要予測が可能となる。
なお、本実施の形態において、テンプレートは流通可能であることは好適である。つまり、例えば、一の管理者のテンプレートを、他の者が使用して、学習処理、予測処理を行っても良い。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置6を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、機械学習の学習処理に関するパラメータである1以上の学習パラメータ、機械学習の予測処理に関するパラメータである1以上の予測パラメータを有するテンプレートが格納されるテンプレート格納部と、教師データの元になる1以上の教師元データが格納される教師元データ格納部と、予測対象のデータである予測対象データが格納されている対象データ格納部とにアクセス可能なコンピュータを、前記テンプレートが有する前記1以上の学習パラメータを取得し、当該1以上の学習パラメータに対応する1以上の教師元データであり、前記教師元データ格納部に格納されている1以上の各教師元データから、学習処理に使用する教師データを取得し、当該1以上の教師データに対して、学習処理を行い、学習器を取得する学習部と、
前記テンプレートが有する前記1以上の予測パラメータと記学習部が取得した学習器とを用いて、前記対象データ格納部に格納されている予測対象データに対して予測処理を行い、予測結果を取得する予測部と、前記予測結果を出力する出力部として機能させるためのプログラムである。
また、図32は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の情報処理装置6等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図32は、このコンピュータシステム300の概観図であり、図33は、システム300のブロック図である。
図32において、コンピュータシステム300は、CD−ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
図33において、コンピュータ301は、CD−ROMドライブ3012に加えて、MPU3013と、CD−ROMドライブ3012等に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム300に、上述した実施の形態の情報処理装置6等の機能を実行させるプログラムは、CD−ROM3101に記憶されて、CD−ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD−ROM3101またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ301に、上述した実施の形態の情報処理装置6等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。