以下に、本願に係る判定装置、判定方法及び判定プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る判定装置、判定方法及び判定プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
〔1.判定処理の一例〕
まず、図1を用いて、実施形態に係る判定処理の一例について説明する。図1は、実施形態に係る判定処理の一例を示す図である。図1では、本願に係る判定装置100によって、ユーザに提供されるサービスにおける利用状況と、ユーザの在宅可能性との関係性に基づいて、ユーザの在宅可能性を判定する処理が行われる例を示す。
図1に示す判定装置100は、ネットワークを介してユーザに提供されるサービスにおける利用状況を取得し、取得した利用状況とユーザの在宅可能性との関係性に基づいて、ユーザの在宅可能性を判定する処理を行うサーバ装置である。なお、実施形態では、サービスとして、インターネット等のネットワークを介して提供される種々のウェブサービスを例として挙げる。
図1に示すサービスサーバ30は、サービスをユーザに提供するサーバ装置である。例えば、サービスサーバ30は、ウェブサービスを提供するウェブサーバである。一例として、サービスサーバ30は、ユーザからログインを受け付けた場合に、当該ユーザ向けにカスタマイズされたポータルサイトを提供するポータルサービスを提供する。また、サービスサーバ30は、検索サービスや、ショッピングサービスや、オークションサービスや、情報提供サービス(例えば地図情報サービスや、ナビゲーションサービスや、ニュースサービスや、天気予報サービス)や、タスク設定やスケジュールを登録するカレンダーサービス等の各種サービスを提供してもよい。なお、図1での図示は省略しているが、実施形態に係るサービスサーバ30は1台に限らず、複数台存在していてもよい。
図1に示すユーザ端末10は、ユーザに利用されるスマートフォン等の情報処理端末である。また、図1に示すユーザU01は、サービスサーバ30から提供されるサービスを利用するユーザの一例である。図1に示す例では、ユーザ端末10は、ユーザU01によって利用されるものとする。なお、図1での図示は省略しているが、実施形態に係るユーザ端末10は1台に限らず、複数台存在していてもよい。すなわち、ユーザU01は、複数台のユーザ端末10を所持していてもよい。なお、以下では、ユーザをユーザ端末10と読み替える場合がある。例えば、「ユーザU01がサービスサーバ30にアクセスする」という記載は、実際には、「ユーザU01が利用するユーザ端末10がサービスサーバ30にアクセスする」という状況を示す場合がある。
図1に示すサービス提供者40は、オフラインにおいてユーザU01にサービスを提供する提供者である。図1の例では、サービス提供者40は、ユーザU01に荷物を宅配する宅配サービスを提供する。なお、サービス提供者40は、判定装置100と通信可能な情報処理端末であるサービス提供者装置50(図1での図示は省略する)を所持し、利用するものとする。
図1に示す例において、判定装置100は、ユーザU01の在宅可能性を判定し、判定した結果をサービス提供者40に送信する。すなわち、判定装置100は、サービス提供者40がユーザU01の自宅に荷物を宅配しようとする際に、ユーザU01が不在である可能性を事前に通知したり、ユーザU01よりも在宅可能性の高い他のユーザの情報を通知したりする。これにより、判定装置100は、円滑なサービスの提供を可能にする。以下、図1を用いて、判定装置100による実施形態に係る判定処理の流れについて説明する。
まず、ユーザU01は、ユーザ端末10を介して、サービスサーバ30から提供される各種サービスを利用する(ステップS11)。例えば、ユーザU01は、サービスサーバ30が提供するポータルサービスを利用する。ユーザU01は、飲食店や交通機関等を予約する予約サービスや、カレンダーサービスや、ショッピングサービスを利用してもよい。判定装置100は、ユーザU01がサービスを利用した際の、サービスにおける利用状況を取得する(ステップS12)。判定装置100は、取得した利用状況を利用状況記憶部121に格納する。
実施形態において、サービスにおける利用状況とは、サービスにおいてユーザU01が採った行動に関するログ情報(行動履歴や利用履歴)や、サービスを利用する際にユーザU01が送受信した情報や、サービスを利用する際のユーザU01のコンテキスト(context)に関する情報を含む。また、サービスにおける利用状況には、サービスを利用するユーザU01の属性情報(ユーザU01の年齢や性別、居住地、職種、勤務先等)が含まれてもよい。
判定装置100は、利用状況として、例えば、サービスを利用する際のユーザU01の位置情報を取得する。具体的には、判定装置100は、ユーザ端末10が有するGPS(Global Positioning System)機能によって取得された位置情報を、サービスに対してログインが行われた時点や、ログイン中の所定時間ごと(例えば1分ごと)に取得する。なお、判定装置100が取得する位置情報は、GPS機能によって取得される位置情報に限られず、例えば、サービスにアクセスしたユーザ端末10のIPアドレス等から推定される位置情報であってもよい。また、位置情報は、経度や緯度を示す具体的な数値であってもよいし、所定の地域を示す住所情報等であってもよい。この場合、判定装置100は、例えば、位置情報と住所情報とを関連付けるための定義データベース等を参照し、取得した位置情報から住所情報を特定する。
なお、実施形態において、判定装置100は、ユーザU01の自宅や勤務先等の位置を種々の手法により特定してよい。例えば、判定装置100は、ユーザU01が所定のサービスにおいて登録したユーザ情報(例えば、サービスに対する会員登録においてサービス側に提示する情報など)に基づいて、ユーザU01の住所や勤務先を特定してもよい。あるいは、判定装置100は、ユーザ端末10から継続的に取得した位置情報において、早朝や夜間に頻繁に観測される位置情報が示す位置を自宅と推定し、ユーザU01の自宅の位置を特定してもよい。また、判定装置100は、平日昼間に頻繁に観測される位置情報が示す位置を勤務先と推定し、ユーザU01の勤務先の位置を特定してもよい。
また、判定装置100は、利用状況として、飲食店や交通機関や宿泊施設等の予約サービスにおいて、ユーザU01が予約を行ったスケジュール情報を取得してもよい。また、判定装置100は、利用状況として、ショッピングサービスにおいてユーザU01が商品を購入したことや、当該商品の配送日時を指定したスケジュール情報を取得してもよい。また、判定装置100は、利用状況として、サービスを利用する際のユーザ端末10の通信状況等を取得してもよい。例えば、判定装置100は、ユーザ端末10が、ユーザU01の自宅に設置されているIoT(Internet of Things)機器と、Bluetooth(登録商標)等の近距離通信を行っているという状況を取得する。このように、判定装置100は、利用状況として、サービスの利用に際してユーザ端末10から取得可能な種々の情報を取得する。なお、判定装置100は、ユーザU01のサービスにおける利用状況を、ユーザ端末10から取得してもよいし、サービスサーバ30から取得してもよい。
また、判定装置100は、曜日や時間帯ごとに対応付けて、ユーザU01の利用状況を所定期間(例えば1ヶ月や1年間など)に渡って継続的に取得してもよい。判定装置100は、継続的に利用状況を取得することにより、ユーザU01に提供されるサービスにおけるユーザU01の利用状況を、曜日や時間帯ごとに対応付けて蓄積することができる。
そして、判定装置100は、利用状況に基づいて、ユーザU01の在宅可能性を判定する(ステップS13)。例えば、判定装置100は、取得された利用状況とユーザU01の在宅可能性との関係性を定義付けるための定義が記述されたデータベース(図1の例では、「定義ファイル」と表記する)を保持する。定義ファイルの内容は、例えば判定装置100の管理者等によって設定される。
定義ファイルでは、サービスにおける利用状況と在宅可能性との関係性が定義される。具体的には、定義ファイルには、判定の対象となる時間において、サービスにおける特定の利用状況が観測される場合に、在宅している可能性がどのくらいあるかといった指標値(スコア)が定義付けられる。例えば、図1の例では、定義ファイルには、ある利用状況が観測される場合のユーザの在宅可能性が「−100」から「100」までのスコアで示されるとする。この例では、スコアが大きいほど、ユーザU01の在宅可能性が相対的に高いことを示している。また、判定装置100は、判定の対象となる時間(以下、「対象日時」と表記する)において、複数の利用状況が観測される場合には、かかるスコアを加算して、判定対象となるユーザの在宅可能性を判定するものとする。また、詳細は後述するが、スコアは必ずしも固定されたものではなく、例えば学習によって動的に変化するものであってもよい。また、スコアは全ユーザに対して共通するものではなく、ユーザごとに動的に変化するものであってもよい。また、スコアは、あくまで在宅可能性を相対的に示すものであり、数値そのものが絶対的な意味を有しなくてもよい。
一例として、定義ファイルには、対象日時において、ユーザ端末10から取得された位置情報が、ユーザU01の自宅の位置から所定範囲内(例えば、自宅から数10メートル以内の範囲等)である場合には、ユーザU01の在宅可能性を示すスコアが「60」である、といった定義が記述される。これは、対象日時において、ユーザ端末10から取得された位置情報が、ユーザU01の自宅近傍を示している場合には、ユーザU01が在宅である可能性が相対的に高いと推定されることを示している。
なお、定義ファイルには、対象日時において推定される利用状況に関するスコアが記述されていてもよい。例えば、定義ファイルには、対象日時から所定時間前における、ユーザ端末10から取得された位置情報が、ユーザU01の自宅の位置から所定範囲内(例えば、その所定時間後にユーザU01が自宅まで帰宅可能であると推定される範囲)である場合には、ユーザU01の在宅可能性を示すスコアが「40」である、といった定義が記述されてもよい。あるいは、定義ファイルには、対象日時から所定時間前において、ユーザ端末10から取得された位置情報が、ユーザU01の自宅の位置から所定範囲外である場合には、ユーザU01の在宅可能性を示すスコアが「−40」である、といった定義が記述されてもよい。なお、これらのスコアは、ユーザU01が所在する位置に応じて変動してもよい。例えば、対象日時から所定時間前において、ユーザ端末10から取得された位置情報が、ユーザU01の自宅の位置から極めて遠方(例えば海外の国など)を示す位置情報であるとする。この場合には、ユーザU01が対象日時において在宅することは不可能と推定されることから、ユーザU01の在宅可能性を示すスコアが「−100」である、と定義されてもよい。
また、別の例として、定義ファイルには、対象日時において、ユーザU01が飲食店や宿泊施設の予約などのスケジュール情報を登録している場合、その対象日時におけるユーザU01の在宅可能性を示すスコアが「−30」である、といった定義が記述されてもよい。これは、対象日時が、ユーザU01が飲食店等を予約した時間と重複しているのであれば、その対象日時には、ユーザU01が在宅である可能性が比較的低いと推定されるからである。
また、別の例として、定義ファイルには、対象日時において、ユーザU01がショッピングサービスを利用して購入した商品の配送を指定した場合、その対象日時におけるユーザU01の在宅可能性を示すスコアが「50」である、といった定義が記述される。これは、対象日時が、ユーザU01が配送を指定した時間と重複しているのであれば、その対象日時には、ユーザU01が在宅である可能性が比較的高いと推定されることを示している。このように、判定装置100は、サービスにおける利用状況と、ユーザU01の在宅可能性との関係性を示す複数の定義を保持する。
そして、判定装置100は、これらの定義ファイルに基づいて、判定対象とする時間におけるユーザU01の在宅可能性を判定する。例えば、判定装置100は、サービス提供者40から指定された時間を対象日時として、ユーザU01の在宅可能性を判定する。
例えば、判定装置100は、サービス提供者40から、「現時点から2時間後」におけるユーザU01の在宅可能性を判定することを依頼されたとする。この場合、判定装置100は、ユーザU01のサービスにおける利用状況のうち、在宅可能性と関係性のある利用状況を抽出し、抽出した利用状況に対応するスコアを算出することで、現時点から2時間後におけるユーザU01の在宅可能性を判定する。
例えば、現時点におけるユーザU01の位置情報が、ユーザU01の自宅近傍を示すものや、2時間以内にユーザU01が自宅まで帰宅可能であると推定される位置を示すものであったとする。この場合、判定装置100は、ユーザU01の在宅可能性を示すスコアに、上記したスコアである「60」、もしくは「40」を加算する。また、ユーザU01が、対象日時(すなわち、現時点から2時間後)において、ショッピングサービスを利用して購入した商品の配送を指定していたとする。この場合、判定装置100は、ユーザU01の在宅可能性を示すスコアに、上記したスコアである「50」を加算する。そして、ユーザU01のサービスにおける利用状況であって、ユーザU01の在宅可能性を測るために用いられる利用状況は、上記以外には抽出されなかったとする。この場合、判定装置100は、現時点から2時間後におけるユーザU01の在宅可能性を示すスコアを「110」、もしくは「90」と判定する。
そして、判定装置100は、算出したスコアに基づいて判定される、ユーザU01の在宅可能性をサービス提供者40に送信する(ステップS14)。例えば、判定装置100は、算出したスコアを正規化してパーセント表記した在宅可能性を、サービス提供者40が所持するサービス提供者装置50に送信する。
サービス提供者40は、判定装置100から送信された在宅可能性に基づいて、サービスを提供する(ステップS15)。例えば、サービス提供者40は、ユーザU01が在宅している可能性が比較的高いという判定結果を判定装置100から受信した場合、実際にユーザU01の自宅を訪問し、荷物を宅配するサービスを提供する。あるいは、サービス提供者40は、ユーザU01が在宅している可能性が比較的低いという判定結果を判定装置100から受信した場合、その対象日時ではなく、別の日時にユーザU01の自宅に荷物を宅配するサービスを提供してもよい。あるいは、サービス提供者40は、自宅に訪問する前に、ユーザU01の在宅を確認する電話をユーザU01に掛けるようにしてもよい。あるいは、サービス提供者40は、ユーザU01よりも在宅可能性が高い、他のユーザが近傍に所在している場合には、他のユーザを優先して訪問するようにしてもよい。
なお、判定装置100は、事前に定義された判定要素に基づいて在宅可能性を判定するのみならず、所定の学習処理を行い、判定の精度を向上させてもよい。
例えば、ステップS15において、サービス提供者40は、実際にユーザU01にサービスを提供したことで、ユーザU01の在宅を確認することができる。すなわち、サービス提供者40は、ユーザU01が実際に在宅していたか否かを示す結果情報を取得することができる。言い換えれば、サービス提供者40は、判定装置100が判定した結果が正解であったか否かを示す結果情報を取得する。
サービス提供者40は、例えばサービス提供者装置50を介して、ユーザU01が在宅していたか否かを示す結果情報を判定装置100に送信する(ステップS16)。
判定装置100は、サービス提供者40から送信された結果情報に基づいて、ユーザU01の在宅可能性の判定に用いられた利用状況と、結果情報との相関性を学習する。そして、判定装置100は、学習を反映し、ユーザU01の在宅可能性を判定するための算出式(モデル)を生成する(ステップS17)。詳細は後述するが、一例として、判定装置100は、ユーザU01が在宅していたか否かという結果情報を目的変数とし、判定において用いた各利用状況を説明変数として、回帰分析手法による学習を行う。これにより、判定装置100は、ユーザU01の在宅可能性の判定において、どのような説明変数(利用状況)が寄与したかといった情報を導出することができる。判定装置100は、生成したモデルをモデル記憶部125に格納する。
判定装置100は、上記のモデルをユーザごとに生成する。仮に、ユーザU01が、ユーザ端末10を自宅に置いたまま外出する傾向が強い場合には、ユーザ端末10から取得される位置情報は、在宅可能性に寄与しない可能性が高い。また、仮に、ユーザU01が、サービスにおいてスケジュール登録したとしても、そのスケジュール通りに行動する傾向が弱い場合には、登録されたスケジュール情報は、在宅可能性に寄与しない可能性が高い。このように、判定装置100は、各ユーザのサービスにおける利用状況に加えて、個人の行動の特性等をふまえて在宅可能性が導出できるよう、ユーザごとのモデルを生成する。この場合、判定装置100は、結果情報を取得するたびに、モデル記憶部125に格納されているモデルを更新するようにしてもよい。
また、判定装置100は、学習の進行に合わせて、ユーザU01に適用する定義ファイルを更新してもよい。例えば、上記のように、ユーザ端末10から取得される位置情報が在宅可能性の判定に寄与しないという傾向が強いユーザに関しては、判定装置100は、学習結果に応じて、位置情報に対応するスコアが、他のユーザと比して低く算出されるような重みを付してもよい。あるいは、判定装置100は、登録したスケジュールや、指定した配送日時を正確に守るユーザについては、それらの利用状況に対応するスコアが、他のユーザと比して高く算出されるような重みを付してもよい。
また、判定装置100は、曜日や時間帯を加味した判定を行ってもよい。仮に、対象日時に対応した利用状況がユーザU01から取得できなかった場合でも、判定装置100は、過去の同じ曜日や、過去の同じ時間帯における在宅可能性を判定し、その結果情報を取得している可能性がある。この場合、判定装置100は、例えば、過去の同じ曜日や、過去の同じ時間帯におけるユーザU01の在宅可能性を反映させて、対象日時におけるユーザU01の在宅可能性を判定してもよい。具体的には、判定装置100は、ユーザU01が、過去の同じ曜日や同じ時間帯に在宅していた場合、今回の対象日時において、在宅可能性を相対的に高く算出するなどの調整を行ってもよい。
なお、判定装置100は、結果情報を必ずしもサービス提供者40から取得するのではなく、ユーザ端末10から取得された情報に基づいて、ユーザU01が在宅していたという蓋然性が高い事象が成立した場合に、その時間においてユーザU01は在宅していた、と仮定して学習を行ってもよい。
具体的には、判定装置100が、「現時点から2時間後」におけるユーザU01の在宅可能性を判定したとする。そして、現時点から2時間後(対象日時)において取得されたユーザ端末10の位置情報が、ユーザU01の自宅を示す位置情報であったとする。この場合、対象日時において、ユーザU01は在宅であったという蓋然性が極めて高い。このとき、判定装置100は、その対象日時における結果は「在宅であった」と仮定して、学習を行ってもよい。これにより、判定装置100は、サービス提供者40からのフィードバックを受けずとも、自己が取得するデータのみで、モデルを強化していくことができる。なお、判定装置100は、位置情報以外の情報を用いて学習を行ってもよい。例えば、判定装置100は、対象日時において、ユーザU01の自宅に設置されたIoT機器とユーザ端末10が近距離通信を行われたという事象や、ユーザU01の自宅のインターホンにおいて応答がなされたという事象(例えば、インターホンに音声情報の入力が観測され、その情報がネットワークを介して判定装置100に取得された場合など)を、「ユーザU01は在宅であった」ことを示す正解データと仮定してもよい。
以上、図1を用いて説明してきたように、実施形態に係る判定装置100は、ユーザU01に提供されるサービスにおける利用状況を取得する。そして、判定装置100は、取得された利用状況と、ユーザU01の在宅可能性との関係性に基づいて、ユーザU01の在宅可能性を判定する。
このように、判定装置100は、サービスにおける利用状況に基づいてユーザU01の在宅可能性を判定するため、ユーザU01が意識的に在宅登録などを行わずとも、ユーザU01の日常的な行動に基づいて、ユーザU01の在宅可能性を判定することができる。また、判定装置100は、サービスの利用状況に基づいて判定を行うため、例えば、ユーザU01がスケジュール登録したタイミングや、配送日時を指定したタイミングなど、リアルタイムな情報を判定させて、ユーザU01の在宅可能性を判定することができる。これにより、判定装置100は、スケジュール登録を行っていないユーザの在宅可能性を判定したり、リアルタイムに変化する状況に応じて在宅可能性を判定したりすることができる。以下、このような処理を行う判定装置100、及び、判定装置100を含む判定処理システム1の構成等について、詳細に説明する。
〔2.判定処理システムの構成〕
図2を用いて、実施形態に係る判定装置100が含まれる判定処理システム1の構成について説明する。図2は、実施形態に係る判定処理システム1の構成例を示す図である。図2に例示するように、実施形態に係る判定処理システム1には、ユーザ端末10と、サービスサーバ30と、サービス提供者装置50と、判定装置100とが含まれる。これらの各種装置は、ネットワークNを介して、有線又は無線により通信可能に接続される。なお、図2に示した判定処理システム1には、複数台のユーザ端末10や、複数台のサービスサーバ30や、複数台のサービス提供者装置50が含まれてもよい。
ユーザ端末10は、例えば、スマートフォンや、デスクトップ型PC(Personal Computer)や、ノート型PCや、タブレット型端末や、携帯電話機、PDA(Personal Digital Assistant)、ウェアラブルデバイス(Wearable Device)等の情報処理装置である。さらに、ユーザ端末10には、情報処理機能を有する種々のスマート機器が含まれてもよい。例えば、ユーザ端末10には、TV(Television)や設置型スピーカなどのスマート家電や、自動車などのスマートビークル(Smart vehicle)や、ドローン(drone)、家庭用ロボットなどが含まれてもよい。
ユーザ端末10は、ユーザによる操作に従って、サービスサーバ30にアクセスすることで、サービスサーバ30から提供されるウェブサイトからウェブページを取得する。そして、ユーザ端末10は、取得したウェブページを表示装置(例えば、液晶ディスプレイ)に表示する。また、ユーザ端末10は、ユーザがサービスを利用する場合には、当該サービスに関する情報を検知し、検知した情報をサービス側に送信してもよい。例えば、ユーザ端末10は、ユーザが所定のサービスを利用するタイミングで、検知した位置情報をサービスサーバ30に送信するようにしてもよい。
サービスサーバ30は、ユーザ端末10からアクセスされた場合に、各種サービスを提供するサーバ装置である。サービスサーバ30は、例えば、ポータルサイト、ニュースサイト、天気予報サイト、ショッピングサイト、オークションサイト、ファイナンス(株価)サイト、路線検索サイト、地図提供サイト、旅行情報サイト、飲食店紹介サイト、飲食店等の予約サイト、ウェブブログ、SNS(Social Networking Service)などに関する各種ウェブページを介して、各種サービスを提供する。
また、サービスサーバ30は、サービスにおけるユーザの利用状況を取得する。例えば、サービスサーバ30がポータルサイトに係るサービスを提供する場合には、サービスサーバ30は、利用状況として、ユーザの登録情報(性別や年齢等の属性情報)や、ログイン時の位置情報等を取得する。また、サービスサーバ30がショッピングサイトやオークションサイト等の購買に係るサービスを提供する場合には、サービスサーバ30は、利用状況として、ユーザが商品を購入する頻度や購入価格、また、商品の配送として指定する日時等の情報を取得する。また、サービスサーバ30は、上記以外のサービスにおいても、ユーザがサービスを利用するたびに、サービスにおける様々な利用状況を取得する。また、サービスサーバ30は、サービスにおけるユーザの利用状況を判定装置100に送信してもよい。
サービス提供者装置50は、サービス提供者40によって利用される情報処理装置である。なお、サービス提供者装置50は、サービス提供者40の各々が利用する端末であってもよいし、サービス側が設置するサーバであってもよい。また、サービス提供者装置50は、1台の装置として構成されるのではなく、サーバと端末の組合せ等であってもよい。
サービス提供者装置50は、例えば、判定装置100から送信されるユーザごとの在宅可能性を受信する。また、サービス提供者装置50は、サービス提供者40による操作に従って、実際にユーザが在宅であったか否かを示す結果情報を判定装置100に送信してもよい。
判定装置100は、ユーザに提供されるサービスにおける利用状況を取得し、取得した利用状況と、ユーザの在宅可能性との関係性に基づいて、ユーザの在宅可能性を判定するサーバ装置である。なお、判定装置100は、ユーザにサービスを提供するサービスサーバ30としての機能を兼ねていてもよい。
〔3.判定装置の構成〕
次に、図3を用いて、実施形態に係る判定装置100の構成について説明する。図3は、実施形態に係る判定装置100の構成例を示す図である。図3に示すように、判定装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、判定装置100は、判定装置100を利用する管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
(通信部110について)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。かかる通信部110は、ネットワークNと有線又は無線で接続され、ネットワークNを介して、ユーザ端末10や、サービスサーバ30や、サービス提供者装置50との間で情報の送受信を行う。
(記憶部120について)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部120は、利用状況記憶部121と、モデル記憶部125と、提供日程記憶部129とを有する。
(利用状況記憶部121について)
利用状況記憶部121は、サービスにおける利用状況に関する情報を記憶する。図3に示すように、利用状況記憶部121は、情報を記憶するデータテーブルとして、属性テーブル122と、利用状況テーブル123と、定義テーブル124とを有する。
(属性テーブル122について)
属性テーブル122は、サービスに登録されたユーザの属性情報を記憶する。図4に、実施形態に係る属性テーブル122の一例を示す。図4は、実施形態に係る属性テーブル122の一例を示す図である。図4に示した例では、属性テーブル122は、「ユーザID」、「所有端末ID」、「性別」、「年齢」、「自宅位置」、「職種」、「勤務時間」といった項目を有する。
「ユーザID」は、ユーザを識別する識別情報である。「所有端末ID」は、ユーザが利用するユーザ端末10を識別する識別情報である。所有端末IDは、例えば、ユーザ端末10を利用してサービスにアクセスした際に、当該ユーザ端末10の固有の識別情報(デバイスID等)がサービスサーバ30等によって認識されることにより、取得される。あるいは、所有端末IDは、サービスを利用するユーザがサービス側に登録を行うことによってサービス側に取得されてもよい。
なお、所有端末IDとして登録される情報には、端末の種別が含まれてもよい。具体的には、所有端末IDとして登録される情報には、その端末が、ユーザに携帯される端末(スマートフォンやウェアラブルデバイス)であるか、あるいは、一般的には携帯されない端末(自宅に設置されるスピーカなどのIoT機器や、デスクトップパソコンなど)であるか、といった情報が含まれてもよい。なお、本明細書中では、図4に示したような識別情報を参照符号として用いる場合がある。例えば、ユーザID「U01」によって識別されるユーザを「ユーザU01」と表記する場合がある。
「性別」は、サービスを利用するユーザの性別を示す。「年齢」は、ユーザの年齢を示す。「自宅位置」は、ユーザの自宅が所在する位置を示す。なお、「自宅位置」には、具体的な住所ではなく、ユーザの自宅に対応する位置情報(例えば、経度及び緯度)が記憶されてもよい。「職種」は、ユーザの職種を示す。「勤務時間」は、ユーザの勤務時間を示す。なお、職種や勤務時間は、ユーザがサービスに登録を行うことでサービス側に取得された情報であってもよいし、ユーザの利用状況に基づいて推定された情報であってもよい。例えば、判定装置100は、ユーザ端末10から送信される位置情報のうち、平日昼間に頻繁に観測される位置情報に基づいて、ユーザU01の勤務先の位置を特定する。さらに、判定装置100は、サービスが保持する地図情報等に基づいて、当該位置に所在する会社名や、会社が属する職種等を特定する。そして、判定装置100は、特定した情報をユーザと対応付けて、属性テーブル122に記憶する。
すなわち、図4に示したデータの一例は、ユーザID「U01」で識別されるユーザU01に関する属性情報であり、ユーザU01が利用するユーザ端末10は、所有端末ID「A01」や「A02」で識別されることを示している。また図4では、ユーザU01の性別は「男性」であり、年齢は「30歳代」であり、住所は「A県・・・」であり、職種は「会社員(日勤)」であり、勤務時間は「9時〜17時」であることを示している。
なお、属性テーブル122に記憶される属性情報は、必ずしも正確な情報でなくともよい。例えば、判定装置100は、サービスの利用状況から推定される「推定性別」や「推定年齢」等を属性テーブル122に記憶してもよい。
(利用状況テーブル123について)
続いて、図5に、実施形態に係る利用状況テーブル123の一例を示す。図5は、実施形態に係る利用状況テーブル123の一例を示す図である。利用状況テーブル123は、サービスにおけるユーザの利用状況を記憶する。図5に示した例では、利用状況テーブル123は、「ユーザID」、「利用ログID」、「取得日時」、「サービス」、「情報種別」、「取得情報」、「曜日情報」といった項目を有する。
「ユーザID」は、図4に示した同様の項目と対応する。「利用ログID」は、ユーザがサービスを利用した行動履歴(ログ)を識別する識別情報を示す。「取得日時」は、ユーザの利用ログが取得された日時を示す。例えば、取得日時は、ユーザがサービスにログインした日時や、ユーザがサービスにスケジュールを登録した日時や、飲食店への予約を登録した日時等である。このため、取得日時は、在宅可能性の判定対象となる日時とは関係のない場合もある。例えば、スケジュール情報の場合、スケジュールが登録されたタイミングではなく、スケジュールとして登録された日程が、在宅可能性の判定対象となる日時と関係を有する。
「サービス」は、ユーザが利用したサービスの種別を示す。「情報種別」は、利用状況として取得された情報の種別を示す。「取得情報」は、取得された利用状況の具体的な内容を示す。すなわち、取得情報は、ユーザの在宅可能性を判定する際の、在宅可能性の判定対象となる日時との関係を示す情報を含む場合がある。例えば、スケジュール情報の場合、スケジュールとして登録された日程が、在宅可能性の判定対象となる日時と関係を有することになる。なお、図5に示した例では、取得情報の一部を「C01」といった概念的な表記で示しているが、実際には、取得情報が位置情報である場合には、具体的な緯度や経度を示す位置情報や、住所や地域を示す情報が記憶される。「曜日情報」は、利用状況のうち、在宅可能性の判定対象となる日時と関係を有する曜日を示す。
すなわち、図5に示したデータの一例では、ユーザU01のサービスにおけるログとして、利用ログID「B01」で識別される利用ログB01が記憶されていることを示している。また、利用ログB01は、取得日時が「2017年4月20日 12:00」であり、「地図・交通」に関するサービスにおけるログであり、利用状況として取得された情報種別は「位置情報」であり、その取得情報は「C01」であることを示している。また、利用ログB01として取得された情報が、在宅可能性の判定対象となる曜日は「木」曜日であることを示している。
(定義テーブル124について)
続いて、図6に、実施形態に係る定義テーブル124の一例を示す。図6は、実施形態に係る定義テーブル124の一例を示す図である。定義テーブル124は、在宅可能性と利用状況との関係性を定義した情報を記憶する。例えば、定義テーブル124に記憶される情報とは、図1の説明で示した定義ファイルに記述された情報に対応する。図6に示した例では、定義テーブル124は、「定義ID」、「利用状況」、「スコア」といった項目を有する。
「定義ID」は、各定義を識別する識別情報を示す。「利用状況」は、サービスにおける具体的な利用状況の内容を示す。「スコア」は、判定対象の日時において、定義された利用状況が取得された場合に、ユーザの在宅可能性を示すスコアとして加算される数値を示す。
すなわち、図6に示したデータの一例では、定義ID「K01」で識別される定義K01は、対象日時において、任意のサービスで「位置情報が自宅の近傍」であるという利用状況が取得された場合には、そのユーザの在宅可能性を示すスコアとして「60」を加算することを示している。また、他の例として、定義K11は、対象日時において、任意のサービスで「スケジュール登録」されたという利用状況が取得された場合には、そのユーザの在宅可能性を示すスコアとして「−30」を加算することを示している。また、他の例として、定義K21は、対象日時において、過去の同じ曜日において在宅していた、という履歴がユーザに存在する場合には、そのユーザの在宅可能性を示すスコアとして「5」を加算することを示している。
(モデル記憶部125について)
モデル記憶部125は、利用状況と在宅可能性との関係性に関する学習と、学習の結果として生成されたモデルに関する情報を記憶する。図3に示すように、モデル記憶部125は、情報を記憶するデータテーブルとして、学習データテーブル126と、モデルテーブル127とを含む。
(学習データテーブル126について)
学習データテーブル126は、在宅可能性を判定するモデルを生成するための学習に関する情報を記憶する。図7に、実施形態に係る学習データテーブル126の一例を示す。図7は、実施形態に係る学習データテーブル126の一例を示す図である。図7に示した例では、学習データテーブル126は、「学習データID」、「ユーザID」、「対象日時」、「対象曜日」、「在宅結果情報(目的変数)」、「利用状況データ(説明変数)」といった項目を有する。
「学習データID」は、モデルを生成するための学習データを識別する識別情報を示す。なお、学習データは、例えばユーザごとに蓄積される。「ユーザID」は、図4に示した同様の項目に対応する。
「対象日時」は、在宅可能性を判定した対象となった日時を示す。「対象曜日」は、在宅可能性を判定した対象となった曜日を示す。
「在宅結果情報(目的変数)」は、判定対象の日時において正解か不正解かを示した結果情報である。例えば、判定を行った日時において、ユーザが在宅であれば在宅結果情報には「1」が記憶される。一方、判定を行った日時において、ユーザが在宅でなければ在宅結果情報には「0」が記憶される。なお、在宅結果情報は、上記の例に限らず、例えば、判定装置100がユーザの在宅可能性を「あり」か「なし」かで判定したような場合には、在宅結果情報には、その判定が正解であったか(この場合「1」が記憶される)、あるいは不正解であったか(この場合、「0」が記憶される)、という判定の正否に関する情報が記憶されてもよい。
「利用状況データ(説明変数)」は、判定対象の日時におけるユーザの利用状況データを示す。なお、図7の例では、利用状況データを「G01」といったように概念的に表記しているが、実際には、利用状況データには、サービスにおける複数の利用状況が羅列されたデータが記憶される。すなわち、利用状況データは、ユーザのサービスにおける利用状況から抽出された特徴情報の集合体であり、ユーザの在宅可能性を判定するために用いられた全ての利用状況が含まれたものである。
すなわち、図7に示したデータの一例では、学習データID「E01」で識別される学習データE01は、学習の対象がユーザU01であることを示している。そして、学習データE01に含まれる学習データの一例は、判定の対象日時が「2017年4月13日 12:00」であり、対象曜日が「木」曜日であり、在宅結果情報が「1」であった場合の利用状況データが「G01」であったことを示している。
(モデルテーブル127について)
次に、図8に、実施形態に係るモデルテーブル127の一例を示す。図8は、実施形態に係るモデルテーブル127の一例を示す図である。図8に示すように、モデルテーブル127は、「モデルID」、「ユーザID」といった項目を有する。
「モデルID」は、モデルを識別する識別情報を示す。「ユーザID」は、モデルに対応するユーザを識別する識別情報を示す。
すなわち、図8に示したデータの一例では、モデルID「M01」によって識別されるモデルM01は、ユーザU01に対応したモデルであり、モデルID「M02」によって識別されるモデルM02は、ユーザU02に対応するモデルであることを示している。このように、モデルは、ユーザごとに生成される。
(提供日程記憶部129について)
提供日程記憶部129は、サービス提供者40に提供される情報を記憶する。具体的には、提供日程記憶部129に記憶される情報は、サービス提供者40に対して各ユーザの在宅可能性を示すリストであり、どの日程にサービスを提供すべきか(言い換えれば、どの日程にユーザの自宅を訪問すべきか)をサービス提供者40が認識するための情報である。図9に、実施形態に係る提供日程記憶部129の一例を示す。図9は、実施形態に係る提供日程記憶部129の一例を示す図である。図9に示すように、提供日程記憶部129は、「サービスID」、「対象日時」、「判定日時」、「提供対象ユーザID」、「在宅可能性」といった項目を有する。
「サービスID」は、サービスを識別する識別情報を示す。図9で示したサービスとは例えば、配送サービスや、訪問営業サービス等、ユーザの自宅に訪問することを要するオフラインサービスである。
「対象日時」は、ユーザの在宅可能性を判定する対象となる日時を示す。例えば、対象日時は、サービスからの要求に基づき設定される。具体的には、判定装置100は、配送サービスを提供するサービスH01から、「2017年4月30日 12:00」における各ユーザの在宅可能性の判定について要求を受け付けた場合に、対象日時を「2017年4月30日 12:00」として、在宅可能性の判定を行う。「判定日時」は、ユーザの在宅可能性を判定した日時である。なお、判定日時は、判定処理を行うタイミングそのものではなく、判定結果を出す締め切り時間であってもよい。例えば、図9の例では、判定装置100は、「2017年4月30日 10:00」の前までは、ユーザの利用状況の取得と、在宅可能性の判定を繰り返し行っており、最終的に「2017年4月30日 10:00」の時点において、ユーザの在宅可能性の判定結果を出すようにしてもよい。また、対象日時と判定日時は、同じ日時が設定されてもよい。この場合、判定装置100は、例えば、サービス提供者40がユーザにサービスを提供するまでユーザの在宅可能性を判定し続ける。
「提供対象ユーザID」は、サービスが提供される対象となるユーザを識別する識別情報を示す。「在宅可能性」は、ユーザごとの在宅可能性を示す。例えば、「在宅可能性」は、判定装置100が算出したスコア等を正規化し、パーセント表記された数値が記憶される。なお、在宅可能性は、必ずしも固定された数値が記憶されるのではなく、判定日時が経過するまで、取得された利用状況に基づいて判定処理が行われる度に更新されてもよい。
すなわち、図9に示したデータの一例では、サービスID「H01」で識別されるサービスH01の顧客ユーザに関して、対象日時「2017年4月30日 12:00」における在宅可能性の判定を行った例を示している。なお、この場合の判定日時は「2017年4月30日 10:00」である。そして、判定の結果として、例えば、提供対象ユーザID「U13」で識別されるユーザU13の在宅可能性は「95」%であり、ユーザU08の在宅可能性は「93」%であることが導出されたことを示している。
(制御部130について)
図3に戻って説明を続ける。制御部130は、例えば、コントローラ(controller)であり、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、判定装置100内部の記憶装置に記憶されている各種プログラム(判定プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
図3に示すように、制御部130は、取得部131と、判定部132と、生成部133と、決定部134と、送信部135とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部130が有する各処理部の接続関係は、図3に示した接続関係に限られず、他の接続関係であってもよい。
(取得部131について)
取得部131は、各種情報を取得する。例えば、取得部131は、ユーザに提供されるサービスにおける利用状況を取得する。具体的には、取得部131は、ネットワークを介して利用可能なサービスであって、例えば、ユーザ端末10を介して利用するウェブサービスにおける利用状況を取得する。なお、サービスはウェブサービスに限らず、例えば、ユーザ端末10にインストールされたアプリケーションプログラム(以下、「アプリ」と表記する)を介して利用されるサービスであってもよい。
例えば、取得部131は、利用状況として、サービスを利用する際のユーザの位置情報を取得する。また、取得部131は、ユーザの自宅の位置を示す位置情報や、勤務先の位置を示す位置情報等、ユーザの拠点となる位置を示す位置情報を取得してもよい。例えば、取得部131は、サービスに登録された情報に基づいて、ユーザの自宅や勤務先等を特定し、特定された位置の位置情報を取得する。
また、取得部131は、取得された位置情報が示す位置から、ユーザの自宅まで当該ユーザが移動した場合に経過すると推定される時間情報を取得してもよい。例えば、取得部131は、ユーザが所在する現在地を示す位置情報と、当該ユーザの自宅を示す位置情報との距離情報を取得することで、ユーザが移動した場合に経過すると推定される時間情報を取得する。この場合、取得部131は、例えば、位置情報の推移からユーザの移動手段を推定し、推定した移動手段が採用されたと仮定して、移動に掛かる時間を推定してもよい。
また、取得部131は、ユーザが利用するサービスによっては、より精度の高い時間情報を取得することもできる。例えば、ユーザ端末10においてカーナビアプリが実行されている場合には、取得部131は、カーナビアプリを提供するサービスサーバ30や、カーナビアプリが実行されているユーザ端末10から、ユーザが自宅まで移動した場合に経過すると推定される時間情報を取得することができる。
また、取得部131は、購買に係るサービスの利用において、ユーザが指定した配送日程に関する情報を取得してもよい。例えば、取得部131は、ユーザが商品を注文した場合に、配送日時として指定した日程に関する情報を取得する。
また、取得部131は、スケジュール管理に関するサービスの利用において、ユーザが登録したスケジュール情報を取得してもよい。例えば、取得部131は、カレンダーアプリやタスク管理アプリ等を介して提供されるスケジュール管理に関するサービスの利用において、ユーザが登録した予定をスケジュール情報として取得する。
なお、取得部131は、スケジュール情報として、日程に関する情報のみならず、種々の情報を取得してもよい。例えば、取得部131は、スケジュールに場所が登録されている場合には、その場所に関する位置情報を取得してもよい。この場合、後述する判定処理において、例えばスケジュール登録された場所がユーザの自宅等であれば、登録された日時においてユーザを在宅している可能性が高いと判定することができる。あるいは、スケジュール登録された場所がユーザの自宅以外であれば、登録された日時においてユーザを在宅している可能性が低いと判定することができる。
また、取得部131は、交通機関、旅行、飲食施設、もしくは宿泊施設の少なくともいずれか一つの予約に係るサービスの利用において、ユーザが予約した予約日程に関する情報を取得してもよい。なお、取得部131は、予約情報として、上記のスケジュール情報と同様に、位置情報をあわせて取得してもよい。
また、取得部131は、サービスにおける利用状況として、ユーザがサービスに登録した属性情報のうち、ユーザの職種又は勤務時間に関する情報を取得してもよい。
また、取得部131は、サービスの利用に用いられる情報機器であって、ユーザの自宅に設置された情報機器における通信状況に関する情報を取得してもよい。例えば、取得部131は、ユーザが携帯するユーザ端末10と、ユーザの自宅に設置されたIoT機器との間で近距離通信が行われているといった通信状況に関する情報を取得する。なお、取得部131は、自宅に限られず、様々な場所に設置された情報機器やアクセスポイントとの通信状況を取得してもよい。これにより、取得部131は、ユーザが外出している場合であっても、どのような位置において通信を行っているかといった情報を取得できるので、結果として、ユーザが所在する位置を取得することができる。
取得部131は、上記で例示した以外のサービスにおいても、ユーザの利用状況について適宜取得してもよい。取得部131は、取得した情報を利用状況記憶部121に格納する。
(判定部132について)
判定部132は、取得部131によって取得された利用状況と、ユーザの在宅可能性との関係性に基づいて、当該ユーザの在宅可能性を判定する。判定部132は、例えば、サービスにおける利用状況と、在宅可能性との関係性を定義付けた情報が記述された定義ファイルを参照して、ユーザの在宅可能性を判定する。
例えば、判定部132は、ユーザの位置情報に基づいて、ユーザの在宅可能性を判定する。具体的には、判定部132は、対象日時において、ユーザ端末10から取得されたユーザの位置情報がユーザの自宅近傍を示している場合には、ユーザの在宅可能性を比較的高く判定する。
また、判定部132は、取得された位置情報が示す位置から、ユーザの自宅までユーザが移動した場合に経過すると推定される時間情報が取得された場合には、時間情報に基づいて、所定時間後におけるユーザの在宅可能性を判定してもよい。すなわち、判定部132は、現時点で、対象日時においてユーザが自宅に所在するという情報が得られなくとも、例えば、現時点から対象日時までに、移動によってユーザが自宅に到達可能な範囲に所在するという情報が得られれば、所定時間後(すなわち、対象日時)におけるユーザの在宅可能性を高く判定する。
また、判定部132は、購買に係るサービスの利用においてユーザが指定した配送日程に関する情報が取得された場合には、配送日程に関する情報に基づいて、ユーザの在宅可能性を判定してもよい。一般に、ユーザが配送日程を指定した日時は、そのユーザが在宅である可能性が高いといえる。このため、判定部132は、配送日程に関する情報に基づいて判定処理を行うことで、ユーザの在宅可能性を精度よく判定することができる。
また、判定部132は、スケジュール管理に関するサービスの利用において、ユーザの登録したスケジュール情報が取得された場合には、スケジュール情報に基づいて、ユーザの在宅可能性を判定してもよい。一般に、ユーザがスケジュールを登録した場合、そのユーザが在宅である可能性が低いといえる。このため、判定部132は、スケジュール情報に基づいて判定処理を行うことで、ユーザの在宅可能性を精度よく判定することができる。
また、判定部132は、交通機関、旅行、飲食施設、もしくは宿泊施設の少なくともいずれか一つの予約に係るサービスの利用において、ユーザの予約した予約日程に関する情報が取得された場合には、予約日程に関する情報に基づいて、ユーザの在宅可能性を判定してもよい。
また、判定部132は、ユーザの職種又は勤務時間に関する情報に基づいて、ユーザの在宅可能性を判定してもよい。例えば、判定部132は、ユーザの職種又は勤務時間に基づいて、ユーザが勤務中である時間帯を特定し、特定した時間においては在宅可能性が比較的低いと判定する。また、判定部132は、ユーザの自宅と勤務先の位置情報に基づいて、ユーザの通勤時間を推定してもよい。さらに、判定部132は、推定した通勤時間と、ユーザの勤務時間とに基づいて、ユーザが出社するタイミングや、帰宅するタイミングを推定してもよい。そして、判定部132は、ユーザが自宅から離れていると推定される時間においては在宅可能性を低く判定し、ユーザが勤務先から自宅に戻ってきていると推定される時間においては在宅可能性を高く判定してもよい。
また、判定部132は、サービスの利用に用いられる情報機器であって、ユーザの自宅に設置された情報機器における通信状況に関する情報が取得された場合には、通信状況に関する情報に基づいて、ユーザの在宅可能性を判定してもよい。一般に、ユーザが携帯すると想定されるユーザ端末10と、自宅に設置された情報機器との近距離通信等が行われている場合には、ユーザは在宅していると推測される。このため、判定部132は、自宅に設置された情報機器との通信状況に基づいて判定処理を行うことで、ユーザの在宅可能性を精度よく判定することができる。
判定部132は、判定処理において、上記したような利用状況を適宜組み合わせて判定処理を行ってもよい。例えば、判定部132は、判定対象の日時において、判定に用いることのできる利用状況が重複している場合には、重複した利用状況に対応するスコアを加算して、ユーザの在宅可能性を判定する。具体的には、判定部132は、判定対象の日時においてスケジュール登録がされており、さらに、自宅から遠方の位置に所在し、さらに、宿泊施設に予約を行っているユーザについては、それらの利用状況に対応するスコアを加算して在宅可能性を判定する。判定部132は、ユーザの行動を示すと想定される複数の利用状況に基づいて判定を行うことで、判定の精度を向上させることができる。
なお、判定部132は、所定の学習処理を経て生成部133によって生成されるモデルであって、ユーザごとに生成されたモデルを用いて、ユーザの在宅可能性を判定してもよい。
また、判定部132は、過去の在宅履歴に基づいて、ユーザの在宅可能性を判定してもよい。例えば、判定部132は、曜日ごとにユーザの在宅可能性を判定してもよい。また、判定部132は、時間帯ごとにユーザの在宅可能性を判定してもよい。
すなわち、判定対象の日時において、過去の同じ曜日におけるユーザの在宅履歴が存在する場合には、在宅履歴の傾向に基づいて、判定部132は、ユーザが在宅しているか否かを推定してもよい。同様に、判定対象の日時において、過去の同じ時間帯(例えば、判定対象の日時の前後1時間に対応する時間帯)におけるユーザの在宅履歴が存在する場合には、在宅履歴の傾向に基づいて、判定部132は、ユーザが在宅しているか否かを推定してもよい。なお、後述するように、判定部132は、生成部133が生成したモデルを用いて判定処理を行うことで、上記のような過去のユーザの在宅傾向等を加味した判定を行うことができる。
なお、判定部132は、オフラインにおいてサービスを行うサービス提供者40から要求を受け付けて、そのサービスの顧客となるユーザの在宅可能性を判定してもよいし、常時、不特定のユーザの在宅可能性を判定していてもよい。
例えば、判定部132は、サービス提供者40から要求を受け付けて判定を行う場合、例えば、判定対象とするユーザのリストや、判定対象とする日時に関する情報を取得する。そして、判定部132は、要求を受け付けたことを契機として、判定対象とする日時における、判定対象とするユーザの在宅可能性を判定する。例えば、判定部132は、「現時点から2時間後」に、宅配サービスを行おうとするサービス提供者40から要求を受け付ける。この場合、判定部132は、「現時点から2時間後」を判定対象の日時(図9で示す「対象日時」に対応)と設定し、判定対象の日時の所定時間前(例えば10分前など)を判定の締切日時(図9で示す「判定日時」に対応)と設定する。そして、判定部132は、サービス提供者40の顧客ユーザを対象として、在宅可能性を判定する。
(生成部133について)
生成部133は、取得部131によって取得された利用状況と、ユーザが在宅であったか否かを示す結果情報との関係性を学習することにより、当該ユーザの在宅可能性を算出するモデルを生成する。具体的には、生成部133は、判定対象に用いた利用状況と、その判定における結果情報とに基づいて、どのような利用状況が、実際にユーザが在宅していたか否かという判定に寄与していたのか、といった傾向を学習する。
例えば、利用状況に対して事前に定義された在宅可能性のスコアは、ユーザによっては、異なるスコアの方が適切な場合がありうる。具体的には、判定対象のユーザが、スケジュールを登録した通りの行動を採らない傾向にあるユーザであったり、指定した配送日時に在宅しない傾向にあるユーザであったりする場合がある。一方で、判定対象のユーザが、スケジュールに登録した行動を正確に実行する傾向のユーザである場合もある。このように、各ユーザについて同じ利用状況が取得された場合でも、それぞれのユーザによって、在宅可能性を判定するために寄与する利用状況は異なることが想定される。
そこで、生成部133は、実際にユーザが在宅していたか否かといった結果情報(すなわち、正解データ)を取得し、判定に用いた利用状況と結果との関係性を学習することで、学習を反映させたモデルをユーザごとに生成する。そして、判定部132は、生成部133によって生成されたモデルを用いて判定を行う。これにより、判定部132は、より判定の精度を向上させることができる。
以下に、モデル生成について具体的に説明する。なお、以下で示す学習手法やモデルは一例であり、生成部133は、既知の様々な手法を用いて、どのようなモデルを生成してもよい。すなわち、生成部133は、実施形態に係る判定処理に対して、ユーザが在宅していたか否かという結果をフィードバックすることが可能であれば、いずれの学習手法を用いてもよい。
例えば、生成部133は、判定対象の日時においてユーザが在宅していたか否かを示した結果情報を、回帰分析における目的変数とする。そして、生成部133は、判定に用いられた各種利用状況を、回帰分析における説明変数とする。そして、生成部133は、目的変数と説明変数とを用いて、在宅可能性を判定するためのモデルを生成する。なお、以下に説明する例では、図6で示した定義テーブル124に記載された利用状況を処理に用いるが、各スコアの数値については考慮しないものとする。また、ユーザが結果的に在宅であった例を正例とし、ユーザが結果的に在宅でなかった例を負例として学習を行う例を示す。
例えば、生成部133は、実際にユーザが在宅していたか否かと、判定に用いた利用状況との関係を示す式を生成する。さらに、生成部133は、サービスにおける各々の利用状況が、ユーザが在宅であるという事象に対して、どのような重みを有するかを算出する。これにより、生成部133は、ユーザが在宅であるという事象に対して、個々の説明変数がどのくらい寄与するのかといった情報を得ることができる。例えば、生成部133は、ユーザの一例であるユーザU01に関するモデルを生成する場合には、下記式(1)を作成する。
y(ユーザU01) = ω1・x1 + ω2・x2 + ω3・x3 ・・・+ ωN・xN ・・・(1)(Nは任意の数)
上記式(1)において、「y(ユーザU01)」は、「ユーザU01が実際に在宅していたか否か」という事象を示す。例えば、上記式(1)の例では、「y」を、「1」(在宅していた)か、「−1」(在宅していた)で表すものとする。なお、生成部133は、算出を容易にするため、適宜、yの値として「−1」と「1」以外の数値を用いてもよい。
また、上記式(1)において、「x」は、説明変数であり、ユーザU01のサービスにおける利用状況に対応する。具体的には、上記式(1)における「x1」は、ユーザU01の位置情報(より具体的には、「自宅近傍の位置情報」)であるものとする。例えば、「x1」は、判定対象の日時において、ユーザU01の「自宅近傍の位置情報」が取得されているか否かを示す。また、上記式(1)における「x2」は、ユーザU01のスケジュール情報であるものとする。例えば、「x2」は、判定対象の日時において、ユーザU01がスケジュールの登録を行っているか否かを示す。また、上記式(1)における「x3」は、ユーザU01の配送日程に関する情報である。例えば、「x3」は、判定対象の日時において、ユーザU01が商品の配送の指定を行っているか否かを示す。すなわち、上記式(1)の右辺は、図5で示したような、ユーザU01が利用するサービスにおける利用状況から抽出された各種情報に対応する。
また、上記式(1)において、「ω」は、「x」の係数であり、所定の重み値を示す。具体的には、「ω1」は、「x1」の重み値であり、「ω2」は、「x2」の重み値であり、「ω3」は、「x3」の重み値である。このように、上記式(1)は、利用状況から抽出された各種情報に対応する説明変数「x」と、所定の重み値「ω」とを含む変数(例えば、「ω1・x1」)を組合せることにより作成される。
例えば、判定対象の日時を、仮に「T1」とする。そして、T1において、ユーザU01のサービスにおける利用状況として取得された情報が、「自宅近傍を示す位置情報」と、「スケジュール情報」であったものとする。また、T1において、「配送日程の指定」はされていなかったものとする。そして、T1では、結果としてユーザU01が「在宅であった」という情報が得られたとする。この場合、上記式(1)は、下記式(2)のように示される。
y(=1)(ユーザU01、T1) = ω1・x1(自宅近傍を示す位置情報) + ω2・x2(スケジュール情報) + ω3・0 ・・・(2)
上記式(2)で示されるように、利用状況が取得されなかった「x3」については「0」の値が代入される。この場合、少なくとも正例(y=1)の判定に寄与していた情報は、「自宅近傍を示す位置情報」か、「スケジュール情報」である。
また、判定対象の日時を、仮に「T2」とする。そして、T2において、ユーザU01のサービスにおける利用状況として取得された情報が、「スケジュール情報」と「配送日程の指定」であったとする。そして、T2では、結果としてユーザU01が「在宅でなかった」という情報が得られたとする。この場合、上記式(1)は、下記式(3)のように示される。
y(=−1)(ユーザU01、T2) = ω1・0 + ω2・x2(スケジュール情報) + ω3・x3(配送日程の指定) ・・・(3)
上記式(3)で示されるように、利用状況が取得されなかった「x1」及び「x2」については「0」の値が代入される。この場合、少なくとも負例(y=−1)の判定に寄与していた情報は、「スケジュール情報」か「配送日程の指定」である。
そして、生成部133は、上記式(2)や(3)のように、判定対象の日時ごとに式を生成し、生成した式を回帰分析のサンプルとする。そして、生成部133は、サンプルとなる式の演算処理を行うことにより、所定の重み値「ω」に対応する値を導出する。また、生成部133は、上記式(2)のようなサンプルとなる式を随時生成する。そして、生成部133は、生成した式の増加に従い、回帰的に上記式(2)や(3)を満たすような所定の重み値「ω」を決定する。言い換えれば、生成部133は、所定の説明変数が目的変数「y」に与える影響を示す重み値「ω」を決定する。
仮に、ユーザU01が「在宅していた」という事象に対して、「自宅近傍を示す位置情報」が他の変数と比較して寄与しているのであれば、「自宅近傍を示す位置情報」に対応する重み値「ω1」の値は、他の変数と比較して大きな正の値が算出されると推定される。また、ユーザU01が「在宅でなかった」という事象に対して、「スケジュール情報」が他の変数と比較して寄与しているのであれば、「スケジュール情報」に対応する重み値「ω2」の値は、他の変数と比較して大きな負の値が算出されると推定される。また、ユーザU01が在宅していたか否かという事象に対して、「配送日程の指定」が他の変数と比較して寄与していないのであれば、「配送日程の指定」に対応する重み値「ω3」の値は、学習が進むにつれ、「0」へと漸近していくと推定される。
なお、上記の例では、説明変数として3種類の利用状況を示したが、実際には、上記式(2)や(3)には、取得部131が取得した種々の利用状況に対応した種々の説明変数が含まれる。すなわち、生成部133は、図5や図6等で例示したような、利用状況から抽出される種々の情報を説明変数として、モデルを生成する。
上記のようにして、生成部133は、ユーザが在宅であるという事象と、サービスにおける利用状況とを関連付けるモデルを生成する。なお、上記式(2)を用いた算出処理では、左辺を「1」や「−1」とするのではなく、所定の誤差を想定し、かかる誤差との差異を2乗した値が最小値となるよう近似する最小二乗法などの手法を用いて、「ω」の最適解を算出してもよい。
なお、生成部133は、生成したモデルに、利用状況から抽出される情報を代入する場合には、「スケジュール情報」などの「有る」か「無し」かによって判定される変数については、「1」や「0」の数値を代入する。また、生成部133は、位置情報などの動的な値に関しては、例えば、自宅までの距離に応じた数値を適宜代入するようにしてもよい。例えば、生成部133は、既知の手法に従い、位置情報などの説明変数となりうる利用状況に関して、モデルで扱うことができるよう正規化するなど、様々な既知の手法を応用してもよい。
また、生成部133は、モデルを生成した後に、取得部131が新たな利用状況を取得した場合には、随時、モデルを更新してもよい。これにより、生成部133は、ユーザの在宅可能性を判定するためのモデルを最適化していくことができる。
また、生成部133は、上記のように、利用状況と在宅可能性との関係性を学習した場合に、学習結果を定義テーブル124に反映させるようにしてもよい。上記のように、生成部133は、各々の利用状況がユーザの在宅であるか否かに対して寄与する値(この例では、重み値ω)を、正の値か負の値で示すことができる。このため、生成部133は、算出した重み値に基づいて、各利用状況に対応するスコアを算出することで、例えば予め定義されていなかった利用状況についても、適切なスコアを付与することができる。より具体的には、学習に応じて、ユーザが在宅しているという判定に寄与する利用状況には正のスコアを付与され、ユーザが在宅していないという判定に寄与する利用状況には負のスコアを付与される。
生成部133は、学習に関する情報や生成したモデルをモデル記憶部125に格納する。そして、判定部132は、学習の結果、重み値が代入された上記式(1)のようなモデルを用いて判定を行ってもよいし、ユーザに応じてスコアが定義された(調整された)定義テーブル124の情報を用いて判定を行ってもよい。
なお、生成部133は、必ずしもサービス提供者40によってオフラインサービスが提供された際の結果情報を正解データとしなくてもよい。例えば、生成部133は、ユーザが在宅している蓋然性が極めて高い情報を取得し、取得した情報に基づいて、ユーザが在宅していたか否かという結果情報を取得してもよい。これにより、生成部133は、実際にユーザにオフラインサービスが提供されなくても学習を行うことができるため、結果情報のサンプル数の不足を補うことができる。
(決定部134について)
決定部134は、判定部132によって判定されたユーザの在宅可能性に基づいて、当該ユーザに所定のサービス(宅配サービス等のオフラインサービスを意味する)を提供する態様を決定する。
例えば、決定部134は、所定のサービスが提供される顧客ユーザの在宅可能性に基づいて、所定のサービスを提供する順番を決定する。具体的には、決定部134は、判定対象の日時において、所定のサービスの顧客ユーザにおける在宅可能性を高い順にソートする。そして、決定部134は、ソートした情報をリストとして、送信可能なファイルを作成する。
また、決定部134は、判定対象とされたユーザについて、どのタイミングで所定のサービスを提供すればよいかといった日程を決定してもよい。すなわち、決定部134は、判定部132が判定したいくつかの判定対象日時において、当該ユーザの在宅可能性の高い日時を抽出する。そして、決定部134は、在宅可能性の高い日時を順にソートすることで、当該ユーザに対して、どのようなタイミング(日程)で所定のサービスを提供すべきであるかを決定する。
決定部134は、所定のサービスを提供する態様を決定した場合、決定した情報を送信部135に送る。
(送信部135について)
送信部135は、所定のサービスを提供する提供者に、決定部134によって決定された態様に関する情報を送信する。
例えば、送信部135は、ある時間帯において、所定のサービスを顧客ユーザに提供する順番を示したリストをサービス提供者40に送信する。あるいは、送信部135は、あるユーザに関して、所定のサービスを提供するタイミングとして適切な日程を示したリストをサービス提供者40に送信する。
〔4.ユーザ端末の構成〕
次に、図10を用いて、実施形態に係るユーザ端末10の構成について説明する。図10は、実施形態に係るユーザ端末10の構成例を示す図である。図10に示すように、ユーザ端末10は、通信部11と、入力部12と、表示部13と、検知部14と、記憶部15と、制御部16とを有する。なお、ユーザ端末10が有する各処理部の接続関係は、図10に示した接続関係に限られず、他の接続関係であってもよい。
通信部11は、ネットワークNと有線又は無線で接続され、サービスサーバ30や判定装置100との間で情報の送受信を行う。例えば、通信部11は、NIC等によって実現される。
入力部12は、ユーザから各種操作を受け付ける入力装置である。例えば、入力部12は、ユーザ端末10に備えられた操作キー等によって実現される。また、入力部12には、画像を撮影するための撮像装置(カメラ等)や、音声を集音する集音機器(マイク等)が含まれてもよい。
表示部13は、各種情報を表示するための表示装置である。例えば、表示部13は、液晶ディスプレイ等によって実現される。なお、ユーザ端末10にタッチパネルが採用される場合には、入力部12の一部と表示部13とは一体化される。
検知部14は、ユーザ端末10に対する各種操作や、ユーザ端末10の周囲の環境情報等を検知する。例えば、検知部14は、各種情報を検知するセンサやアンテナにより実現される。具体的には、検知部14は、ユーザ端末10と接続されている機器に関する通信状況や、ユーザ端末10の周囲の照度や騒音、ユーザ端末10の物理的な動き、ユーザ端末10の位置情報等を検知する。
例えば、検知部14は、入力部12に入力された情報に基づいて、ユーザの操作を検知する。すなわち、検知部14は、入力部12に画面をタッチする操作の入力があったことや、音声の入力があったこと等を検知する。また、検知部14は、ユーザによって所定のアプリが起動されたことを検知してもよい。かかるアプリがユーザ端末10内の撮像機能(例えば、カメラ)を動作させるアプリである場合、検知部14は、ユーザによって撮像機能が利用されていることを検知する。また、検知部14は、ユーザ端末10内に備えられた加速度センサやジャイロセンサ等で検知されたデータに基づき、ユーザ端末10自体が動かされているといった操作を検知してもよい。例えば、検知部14は、ジャイロセンサ等で検知されたデータに基づき、ユーザ端末10がユーザの手の中にあることや、ユーザが片手でユーザ端末10を取り扱っていること等を検知する。
また、検知部14は、ユーザ端末10の現在位置を検知する。具体的には、検知部14は、GPS(Global Positioning System)衛星から送出される電波を受信し、受信した電波に基づいてユーザ端末10の現在位置を示す位置情報(例えば、緯度及び経度)を取得する。
なお、検知部14は、GPS以外の種々の手法により位置情報を取得してもよい。例えば、ユーザ端末10が駅改札や商店等で使用される非接触型ICカードと同等の機能を備えている場合(もしくは、ユーザ端末10が非接触型ICカードの履歴を読み取る機能を備えている場合)、ユーザ端末10によって駅での乗車料金の決済等が行われた情報とともに、使用された位置が記録される。検知部14は、かかる情報を検知し、位置情報として取得する。また、検知部14は、ユーザ端末10が特定のアクセスポイントと通信を行う際には、アクセスポイントから取得可能な位置情報を検知してもよい。また、位置情報は、ユーザ端末10が備える光学式センサや、赤外線センサや、磁気センサ等によって取得されてもよい。
また、検知部14は、ユーザ端末10に接続される外部装置を検知する。例えば、検知部14は、外部装置との相互の通信パケットのやり取りや、外部装置が発する信号等に基づいて、外部装置を検知する。具体的には、検知部14は、外部装置が利用しているWifiやBluetooth等の電波を検知する。また、検知部14は、外部装置と通信が確立する場合に、外部装置との接続の種類を検知してもよい。例えば、検知部14は、外部装置と有線で接続されているか、無線通信で接続されているかを検知する。また、検知部14は、無線通信で用いられている通信方式等を検知してもよい。また、検知部14は、外部装置が発する電波を検知する電波センサや、電磁波を検知する電磁波センサ等によって取得される情報に基づいて、外部装置を検知してもよい。外部装置の一例は、ユーザ端末10を利用するユーザが利用する他のデバイス(他のユーザ端末10)であり、例えば、ウェアラブルデバイスや、設置型のIoT機器等である。
また、検知部14は、ユーザ端末10における環境を検知する。検知部14は、ユーザ端末10に備えられた各種センサや機能を利用し、環境に関する情報を検知する。例えば、検知部14は、ユーザ端末10の周囲の音を収集するマイクロフォンや、ユーザ端末10の周囲の照度を検知する照度センサや、ユーザ端末10の物理的な動きを検知する加速度センサ(又は、ジャイロセンサなど)や、ユーザ端末10の周囲の湿度を検知する湿度センサや、ユーザ端末10の所在位置における磁場を検知する地磁気センサ等を利用する。そして、検知部14は、各種センサを用いて、種々の情報を検知する。例えば、検知部14は、ユーザ端末10の周囲における騒音レベルや、ユーザ端末10の周囲がユーザの虹彩を撮像に適する照度であるか等を検知する。さらに、検知部14は、カメラで撮影された写真や映像に基づいて周囲の環境情報を検知してもよい。
また、ユーザ端末10は、検知部14によって検知された情報に基づいて、ユーザ端末10のコンテキストを示すコンテキスト情報を取得するようにしてもよい。上述のように、ユーザ端末10は、内蔵された各種センサ(検知部14)により、位置、加速度、温度、重力、回転(角速度)、照度、地磁気、圧力、近接、湿度、回転ベクトルといった、種々の物理量をコンテキスト情報として取得する。また、ユーザ端末10は、内蔵する通信機能を利用して、各種装置との接続状況(例えば、通信の確立に関する情報や、利用している通信規格)などを、コンテキスト情報として取得してもよい。
(記憶部15について)
記憶部15は、各種情報を記憶する。記憶部15は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部15には、サービス情報記憶部151が含まれる。
サービス情報記憶部151は、例えば、ユーザが利用したサービスに関する情報を記憶する。具体的には、サービス情報記憶部151は、ユーザが利用したサービスにおける行動履歴(ログ)を記憶する。例えば、サービス情報記憶部151は、ユーザ端末10内にインストールされたアプリの使用履歴を記憶する。なお、ユーザ端末10は、例えば判定装置100の指示に従い、一定時間ごとに、サービス情報記憶部151に記憶された情報を判定装置100にアップロードするようにしてもよい。
制御部16は、コントローラであり、例えば、CPUやMPU等によって、ユーザ端末10内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部16は、コントローラであり、例えば、ASICやFPGA等の集積回路により実現される。
制御部16は、ユーザ端末10において行われる各種処理を制御する。図10に示すように、制御部16は、受信部161と、取得部162と、送信部163とを有し、以下に説明する情報処理の機能や作用を実現または実行する。
受信部161は、各種情報を受信する。例えば、受信部161は、サービスサーバ30や判定装置100から送信される情報を受信する。また、受信部161は、検知部14が検知する各種情報を受信する。
取得部162は、各種情報やデータを取得する。例えば、取得部162は、サービスサーバ30にアクセスすることで、ユーザが閲覧を所望するウェブページを取得する。また、取得部162は、アプリのダウンロードサイト等を介して、サービスの利用に用いるためのアプリに関する情報を取得する。
送信部163は、各種情報を送信する。例えば、送信部163は、検知部14によって検知されたユーザ端末10の利用状況に関する情報を、サービスサーバ30や判定装置100に送信する。また、送信部163は、記憶部15等を参照し、ユーザ端末10に蓄積されたサービスの利用状況に関する情報を判定装置100に送信する。
〔5.処理手順〕
次に、図11、図12、図13及び図14を用いて、実施形態に係る判定装置100による処理の手順について説明する。まず、図11を用いて、在宅可能性を判定する処理手順を説明する。図11は、実施形態に係る処理手順を示すフローチャート(1)である。
図11に示すように、判定装置100は、サービスにおける利用状況を取得する(ステップS101)。そして、判定装置100は、例えば定義テーブル124等を参照することで、判定の対象となる対象日時における利用状況と、在宅可能性との関係性を参照する(ステップS102)。
続けて、判定装置100は、参照した情報に基づいて、ユーザごとに、在宅可能性を示す指標値となるスコアを算出する(ステップS103)。そして、判定装置100は、算出したスコアに基づいて、ユーザの在宅可能性を判定する(ステップS104)。
次に、図12を用いて、モデル生成に関する処理手順を説明する。図12は、実施形態に係る処理手順を示すフローチャート(2)である。
判定装置100は、サービスにおける利用状況を取得する(ステップS201)。そして、判定装置100は、利用状況を蓄積する(ステップS202)。なお、判定装置100は、利用状況とともに、任意の判定対象日時における、利用状況ごとの結果情報についても蓄積するものとする。
そして、判定装置100は、学習に充分な利用状況が蓄積されたか否かを判定する(ステップS203)。学習に充分な利用状況が蓄積されていない場合(ステップS203;No)、判定装置100は、利用状況を取得する処理を継続する。
一方、学習に充分な利用状況が蓄積された場合(ステップS203;Yes)、判定装置100は、学習結果に基づいて、ユーザごとのモデルを生成する(ステップS204)。判定装置100は、生成したモデルを記憶部120に格納する(ステップS205)。
次に、図13を用いて、モデル更新に関する処理手順を説明する。図13は、実施形態に係る処理手順を示すフローチャート(3)である。
判定装置100は、例えばサービス提供者から、判定の要求を受け付けたか否かを判定する(ステップS301)。判定の要求を受け付けていない場合(ステップS301;No)、判定装置100は、判定の要求を受け付けるまで待機する。
一方、判定の要求を受け付けた場合(ステップS301;Yes)、判定装置100は、ユーザのサービスにおける利用状況を取得する(ステップS302)。そして、判定装置100は、取得した利用状況をモデルに入力し、ユーザに対応したモデルを用いて、当該ユーザの在宅可能性を判定する(ステップS303)。
その後、判定装置100は、結果情報を取得したか否かを判定する(ステップS304)。結果情報を取得していない場合(ステップS304;No)、判定装置100は、取得するまで待機する。一方、結果状況を取得した場合(ステップS304;Yes)、判定装置100は、取得した結果情報に基づいて、モデルを更新する(ステップS305)。判定装置100は、ステップS301からステップS305の処理を繰り返すことで、ユーザごとに最適化されたモデルを生成する。
次に、図14を用いて、所定のサービスを提供するサービス提供者40に情報を送信する処理の手順を説明する。図14は、実施形態に係る処理手順を示すフローチャート(4)である。
まず、判定装置100は、サービス提供者40から要求を受け付けた場合に、当該所定のサービスの顧客となる各ユーザの在宅可能性を判定する(ステップS401)。なお、判定装置100は、ステップS401の時点で、各ユーザの利用状況を取得しているものとする。
そして、判定装置100は、判定した在宅可能性順にユーザを整列させる(ステップS402)。具体的には、判定装置100は、在宅可能性が高い順にユーザを整列(ソート)させたリストを生成する。
そして、判定装置100は、例えばサービス提供者40によって設定された判定日時を経過したか否かを判定する(ステップS403)。判定日時を経過していない場合(ステップS403;No)、判定装置100は、判定対象日時における各ユーザの在宅可能性を判定する処理を継続する。
一方、判定日時を経過した場合(ステップS403;Yes)、判定装置100は、在宅可能性の高い順に、サービス提供順を決定する(ステップS404)。そして、判定装置100は、決定した情報をサービス提供者40に送信する(ステップS405)。
〔6.変形例〕
上述した判定装置100は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、判定装置100の他の実施形態について説明する。
〔6−1.利用状況〕
判定装置100は、上述した実施形態において例示した利用状況以外に、種々の利用状況を取得してもよい。
例えば、判定装置100は、サービスにおける利用状況として、ユーザのSNSへの書き込みや、SNSへの投稿情報を取得してもよい。例えば、SNSへの書き込みや投稿情報には、ユーザ端末10の位置情報が含まれる場合がある。
また、判定装置100は、テキスト解析等を用いて、SNSへの書き込み等からスケジュール情報を取得してもよい。例えば、SNSの書き込みには、「20日にAAA県に行っています」や、「15日にはBBB県に行っていました」といったテキストが含まれる場合がある。判定装置100は、形態素解析等を用いて、これらのテキストをスケジュール情報に変換し、これらのテキストに基づいてスケジュール情報を取得してもよい。
また、判定装置100は、サービスにおける利用状況として、路線検索サービスにおける検索履歴等を取得してもよい。例えば、ユーザが、自宅から離れた地域の路線について検索を行った場合、その検索に係る日時においては、ユーザが自宅にいない可能性が高いと推定できる。このため、判定装置100は、路線検索のログを在宅可能性の判定処理の一要素として用いてもよい。
また、判定装置100は、サービスにおける利用状況として、天気情報サービスにおける検索履歴等を取得してもよい。例えば、ユーザが、自宅から離れた地域の天気について検索を行った場合、その検索に係る日時においては、ユーザが自宅にいない可能性が高いと推定できる。このため、判定装置100は、天気情報サービスのログを在宅可能性の判定処理の一要素として用いてもよい。
また、判定装置100は、ユーザ端末10で起動されているアプリに関する情報を取得してもよい。例えば、ユーザが、カーナビアプリを起動している場合には、ユーザは自宅にいない可能性が高いと推定できる。あるいは、ユーザが、自宅に設置された家電を操作するアプリを起動している場合には、ユーザは自宅にいる可能性が高いと推定できる。このように、判定装置100は、アプリの起動や操作情報に基づいて、在宅可能性を判定してもよい。
〔6−2.サービスの享受〕
実施形態では、ユーザの在宅可能性を判定する処理について説明した。しかし、例えばサービスが宅配サービス等である場合、必ずしもユーザは在宅していなくてもサービスを享受できる場合がある。
具体的には、ユーザが宅配ボックスを設置していたり、ユーザの同居人が在宅であったりする場合、ユーザは、ユーザ自身が在宅でなくてもサービスを享受することができる。このため、判定装置100は、ユーザが宅配ボックスを設置しているか否か、あるいは、ユーザに同居人がいるか否かといった情報を取得し、取得した情報に基づいて、総合的に判定を行ってもよい。
例えば、判定装置100は、宅配サービスから送信される結果情報に基づいて、「ユーザが在宅していない利用状況においても宅配が完了した」といった結果情報が所定数取得された場合に、当該ユーザが宅配ボックスを設置していると判定する。そして、判定装置100は、かかる情報を加味して、在宅可能性の判定を要求したサービスが宅配サービス等である場合には、当該ユーザの在宅可能性を高く判定する。
あるいは、判定装置100は、宅配サービスから送信される結果情報に基づいて、「ユーザが在宅していない利用状況においても宅配が完了した」といった結果情報が所定数取得された場合に、当該ユーザに同居人がいると判定する。そして、判定装置100は、かかる情報を加味して、在宅可能性の判定を要求したサービスが、宅配サービスや訪問営業サービスや集金サービス等である場合、当該ユーザの在宅可能性を高く判定する。
上記のように、判定装置100は、必ずしもユーザの在宅可能性のみを判定するのではなく、「ユーザがサービスを享受可能であるか否か」を判定してもよい。すなわち、判定装置100は、ユーザに提供されるサービスにおける利用状況を取得し、取得した利用状況と、ユーザが宅配サービスを享受可能か否かを示す可能性との関係性に基づいて、ユーザが当該宅配サービスを享受可能か否かを示す可能性を判定してもよい。
これにより、判定装置100は、在宅可能性に限らず、ユーザがサービスを享受可能であれば、その情報をサービス提供者40に伝えることができるため、サービスを円滑に進めるために有用な情報を提供することができる。
〔6−3.全体情報の利用〕
上記実施形態では、ユーザごとの利用状況を用いて、ユーザに対応したモデルを生成する例を示した。ここで、判定装置100は、ユーザ個人の情報のみならず、判定対象となったユーザの全体から取得される傾向等を反映させた判定処理を行ってもよい。
例えば、在宅可能性の判定において、利用状況のうち、どのような情報がより寄与するか否かは、個人ごとに傾向があるとともに、ユーザ全体においても傾向があると想定される。このため、判定装置100は、特定のユーザの学習を、他のユーザにおける利用状況と結果情報との関係性を利用して行ってもよい。
例えば、判定装置100は、判定対象となるユーザと類似する属性を有するユーザを抽出する。具体的には、判定装置100は、判定対象となるユーザと、性別や年齢や居住地等が類似するユーザを抽出する。そして、判定装置100は、抽出したユーザから取得された利用状況と結果情報との関係性を示す式を生成する。そして、判定装置100は、生成した式を、判定対象となるユーザの学習に利用する。これにより、判定装置100は、個人のユーザのみならず、全体の傾向が反映されたモデルを生成することができる。
〔6−4.在宅可能性〕
実施形態では、在宅可能性をパーセント表記する例を示したが、判定装置100は、必ずしも在宅可能性をパーセントのような割合で示すことを要しない。例えば、判定装置100は、具体的な数値で在宅可能性を示さず、所定のサービスが提供される全ユーザにおける相対的な在宅可能性(例えば、所定のサービスを提供する優先順など)を示すだけでもよい。
〔6−5.ユーザ端末〕
上記実施形態では、図10を用いてユーザ端末10の構成例を示したが、ユーザ端末10は、図10で示した構成を必ずしも全て有していなくてもよい。ユーザ端末10には、上述のように、スマートフォンやタブレット端末のようなスマートデバイスのみならず、通信機能を有する眼鏡型端末や、あるいは、ユーザの心拍を記憶する心拍測定器など、種々のウェアラブルデバイスが含まれる。この場合、ユーザ端末10は、必ずしもユーザから入力を受け付けるのではなく、自動的にユーザのサービスにおける利用状況を取得し、取得した情報を通信ネットワークに送信するなどの機能を持ちうる。すなわち、ユーザ端末10は、いわゆるIoTを実現するような、所定の通信機能を有するデバイスであれば、必ずしも図10で示した構成を有していなくてもよい。
〔7.ハードウェア構成〕
上述してきた実施形態に係る判定装置100やユーザ端末10は、例えば図15に示すような構成のコンピュータ1000によって実現される。以下、判定装置100を例に挙げて説明する。図15は、判定装置100の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
CPU1100は、ROM1300又はHDD1400に記憶されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を記憶する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を記憶する。通信インターフェイス1500は、通信網500(図2に示したネットワークNに対応)を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを、通信網500を介して他の機器へ送信する。
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、入出力インターフェイス1600を介して生成したデータを出力装置へ出力する。
メディアインターフェイス1700は、記録媒体1800に記憶されたプログラム又はデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る判定装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。また、HDD1400には、記憶部120内のデータが記憶される。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から通信網500を介してこれらのプログラムを取得してもよい。
〔8.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図3に示した判定部132と、決定部134とは統合されてもよい。また、例えば、記憶部120に記憶される情報は、ネットワークNを介して、外部に備えられた所定の記憶装置に記憶されてもよい。
また、上記実施形態では、判定装置100が、例えば、利用状況を取得する取得処理と、在宅可能性を判定する判定処理と、モデルを生成する生成処理とを行う例を示した。しかし、上述した判定装置100は、取得処理を行う取得装置と、判定処理を行う判定装置と、生成処理を行う生成装置とに分離されてもよい。この場合、取得装置は、少なくとも取得部131を有する。判定装置は、少なくとも判定部132を有する。生成装置は、少なくとも生成部133を有する。そして、上記の判定装置100による処理は、受付装置と、判定装置と、配信装置との各装置を有する判定処理システム1によって実現される。
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔9.効果〕
上述してきたように、実施形態に係る判定装置100は、取得部131と、判定部132とを有する。取得部131は、ユーザに提供されるサービスにおける利用状況を取得する。判定部132は、取得部131によって取得された利用状況と、ユーザの在宅可能性との関係性に基づいて、ユーザの在宅可能性を判定する。
このように、実施形態に係る判定装置100は、ユーザに提供されるサービスにおける利用状況といった、ユーザの行動を示すと想定される種々の情報に基づいて、ユーザの在宅可能性を判定する。これにより、判定装置100は、ユーザの在宅可能性を精度よく判定することができる。
また、実施形態に係る判定装置100は、取得部131によって取得された利用状況と、ユーザが在宅であったか否かを示す結果情報との関係性を学習することにより、ユーザの在宅可能性を算出するモデルを生成する生成部133をさらに有する。判定部132は、生成部133によって生成されたモデルを用いて、ユーザの在宅可能性を判定する。
このように、実施形態に係る判定装置100は、予め定義された関係性のみならず、学習によって在宅の結果が反映されたモデルを用いてユーザの在宅可能性を判定してもよい。これにより、判定装置100は、ユーザの在宅可能性を精度よく判定することができる。
また、判定部132は、曜日ごとにユーザの在宅可能性を判定する。また、判定部132は、時間帯ごとにユーザの在宅可能性を判定する。
このように、実施形態に係る判定装置100は、曜日や時間帯ごとに在宅可能性を判定する。これにより、判定装置100は、過去のユーザの行動履歴等に基づいて判定を行うことができるため、判定の精度を向上させることができる。
また、取得部131は、ユーザの位置情報を取得する。判定部132は、位置情報に基づいて、ユーザの在宅可能性を判定する。
このように、実施形態に係る判定装置100は、サービスの利用に基づく、ユーザの日常的な行動情報に基づいて、ユーザの在宅可能性を判定することができる。これにより、判定装置100は、ユーザに在宅登録のような負担を掛けることなく判定処理を行うことができる。
また、取得部131は、取得部131によって取得された位置情報が示す位置からユーザの自宅までユーザが移動した場合に経過すると推定される時間情報を取得する。判定部132は、時間情報に基づいて、所定時間後におけるユーザの在宅可能性を判定する。
このように、実施形態に係る判定装置100は、単に位置情報を用いるのではなく、対象日時までの距離や移動時間を反映させて判定処理を行うことができる。これにより、判定装置100は、判定処理の精度を向上させることができる。
また、取得部131は、購買に係るサービスの利用において、ユーザが指定した配送日程に関する情報を取得する。判定部132は、配送日程に関する情報に基づいて、ユーザの在宅可能性を判定する。
このように、実施形態に係る判定装置100は、配送日時を指定したタイミングなど、リアルタイムな情報を反映させて、ユーザの在宅可能性を判定することができる。これにより、判定装置100は、ユーザの行動を的確に反映させた判定処理を行うことができる。
また、取得部131は、スケジュール管理に関するサービスの利用において、ユーザが登録したスケジュール情報を取得する。判定部132は、スケジュール情報に基づいて、ユーザの在宅可能性を判定する。
このように、実施形態に係る判定装置100は、スケジュール登録を行ったタイミングなど、リアルタイムな情報を判定させて、ユーザの在宅可能性を判定することができる。これにより、判定装置100は、ユーザの行動を的確に反映させた判定処理を行うことができる。
また、取得部131は、交通機関、旅行、飲食施設、もしくは宿泊施設の少なくともいずれか一つの予約に係るサービスの利用において、ユーザが予約した予約日程に関する情報を取得する。判定部132は、予約日程に関する情報に基づいて、ユーザの在宅可能性を判定する。
このように、実施形態に係る判定装置100は、サービスを利用した予約情報など、ユーザの日常的なサービスの利用状況に基づいて判定処理を行う。すなわち、判定装置100は、ユーザに特に負担を掛けることなく判定処理に用いる情報を取得することができる。
また、取得部131は、利用状況として、ユーザがサービスに登録した属性情報のうち、ユーザの職種又は勤務時間に関する情報を取得する。判定部132は、ユーザの職種又は勤務時間に基づいて、ユーザの在宅可能性を判定する。
このように、実施形態に係る判定装置100は、ユーザの属性情報を用いて処理を行うことで、判定処理の精度を向上させることができる。
また、取得部131は、サービスの利用に用いられる情報機器であって、ユーザの自宅に設置された情報機器における通信状況に関する情報を取得する。判定部132は、通信状況に関する情報に基づいて、ユーザの在宅可能性を判定する。
このように、実施形態に係る判定装置100は、ユーザ端末10等の情報機器同士の通信状況を取得することにより、ユーザが自宅において通信を行っているか否かを精度よく判定できる。結果として、判定装置100は、在宅可能性の判定精度を向上させることができる。
また、実施形態に係る判定装置100は、判定部132によって判定されたユーザの在宅可能性に基づいて、ユーザに所定のサービスを提供する態様を決定する決定部134と、所定のサービスを提供する提供者に、決定部134によって決定された態様に関する情報を送信する送信部135と、をさらに有する。
このように、実施形態に係る判定装置100は、オフラインサービス等を提供するサービス提供者に判定結果を送信してもよい。これにより、判定装置100は、ユーザが在宅しているか否かによって効率が変わるサービスにとって有用な情報を提供することができる。
また、実施形態に係る判定装置100は、ユーザに提供されるサービスにおける利用状況を取得する取得部131と、取得部131によって取得された利用状況と、ユーザが宅配サービスを享受可能か否かを示す可能性との関係性に基づいて、ユーザが宅配サービスを享受可能か否かを示す可能性を判定する判定部132とを有していてもよい。
このように、実施形態に係る判定装置100は、在宅可能性のみならず、ユーザがサービスを享受できるか否かの判定を行ってもよい。これにより、判定装置100は、より多様な観点から、サービスにとって有用な情報を提供することができる。
以上、本願の実施形態を図面に基づいて詳細に説明したが、これは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。