以下に、本願に係る生成装置、生成方法、生成プログラム、行列データ、及び学習用データを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法、生成プログラム、行列データ、及び学習用データが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
(実施形態)
〔1.生成処理〕
まず、図1及び図2を用いて、実施形態に係る生成処理の一例について説明する。図1及び図2に示す例では、生成装置100(図3参照)が、ユーザの端末装置10から取得された可変量のデータ群から学習に用いるデータ(以下、「学習データ」ともいう)を生成する場合を示す。図1及び図2は、実施形態に係る生成処理の一例を示す図である。具体的には、図1は、生成装置100が、学習に用いるデータの統計的な特徴量である統計的特徴量に対応する統計的データ(以下、「第1学習用データ」ともいう)を生成する場合を示す。また、図2は、生成装置100が、後述する設定値に対応するレコード数(以下、「統一レコード数」ともいう)に成形されたデータ(以下、「第2学習用データ」ともいう)を生成する場合を示す。
〔生成システムの構成〕
図1及び図2の説明に先立って、図3を用いて生成システム1の構成について説明する。図3は、実施形態に係る生成システムの構成例を示す図である。図3に示すように、生成システム1は、端末装置10と、生成装置100とが含まれる。端末装置10と、生成装置100とは所定のネットワークNを介して、有線または無線により通信可能に接続される。なお、図3に示した生成システム1には、複数台の端末装置10や、複数台の生成装置100が含まれてもよい。
端末装置10は、ユーザによって利用される情報処理装置である。端末装置10は、ユーザによる種々の操作を受け付ける。なお、以下では、端末装置10をユーザと表記する場合がある。すなわち、以下では、ユーザを端末装置10と読み替えることもできる。なお、上述した端末装置10は、例えば、スマートフォンや、タブレット型端末や、ノート型PC(Personal Computer)や、デスクトップPCや、携帯電話機や、PDA(Personal Digital Assistant)等により実現される。図1は、端末装置10がスマートフォンである場合を示す。また、端末装置10は、GPS(Global Positioning System)センサ等の機能を有し、ユーザの位置を検知し、取得可能であるものとする。例えば、端末装置10は、生成装置100に位置情報等の行動情報を送信する。
また、端末装置10は、温度センサや気圧センサ等の種々の機能を有し、温度や気圧等のユーザの置かれている周辺情報を検知し、取得可能であってもよい。また、端末装置10は、心拍センサ等の種々の機能を有し、ユーザの生体情報を検知し、取得可能であってもよい。例えば、端末装置10を利用するユーザは、端末装置10と通信可能なウェアラブルデバイスを身に付けることにより、端末装置10によりユーザ自身の生体情報を取得可能としてもよい。例えば、端末装置10を利用するユーザは、端末装置10と通信可能なリストバンド型のウェアラブルデバイスを身に付けることにより、端末装置10によりユーザ自身の心拍(脈拍)に関する情報を端末装置10が取得可能としてもよい。例えば、端末装置10は、上述した各種情報を収集し、生成装置100へ送信する。例えば、端末装置10は、ユーザのコンテキストに関する情報(以下、「コンテキストデータ」ともいう)を収集し、生成装置100へ送信する。例えば、ここでいうコンテキストとは、ユーザが置かれた環境等を含む概念であってもよい。
ここでいう、ユーザのコンテキストデータは、例えば、ユーザのコンテキストを示す情報である。例えば、コンテキストデータには、ユーザの属性に関する情報が含まれてもよい。例えば、コンテキストデータには、ユーザがどのようなユーザであるかを示す情報が含まれてもよい。例えば、コンテキストデータには、年齢、性別、プロフィール、興味などの種々のユーザの属性に関する情報が含まれてもよい。
例えば、コンテキストデータには、ユーザの行動履歴に関する情報が含まれてもよい。例えば、コンテキストデータには、ユーザの行動の種別や内容や時間や場所に関する情報が含まれてもよい。例えば、コンテキストデータには、ユーザが行った行動の種別(例えば、コンテンツ閲覧や検索等)や内容(具体的なニュース記事や検索クエリ等)に関する情報が含まれてもよい。例えば、コンテキストデータには、利用サービスに関する情報が含まれてもよい。例えば、コンテキストデータには、ユーザがその場所に位置した滞在(滞留)時間や、場所の属性(商業地や住宅地等)や時間の属性(朝や夜等)などの種々の時間や場所に関する情報が含まれてもよい。
例えば、コンテキストデータには、ユーザが利用する端末装置10に関する情報が含まれてもよい。例えば、コンテキストデータには、端末装置10のユーザエージェント(User Agent:UA)に関する情報が含まれてもよい。例えば、ユーザエージェントは、OS(Operating System)名、OSのバージョン、ブラウザ名、ブラウザのバージョン、言語といった種々の情報が含まれてもよい。
例えば、コンテキストデータには、ユーザの通信環境に関する情報が含まれてもよい。例えば、コンテキストデータには、Wi−Fi(登録商標)(Wireless Fidelity)等の所定の無線LANの通信方式や第3世代移動通信システム(以下、「3G」ともいう)や第4世代移動通信システム(以下、「4G」ともいう)等の端末装置10の通信規格による通信方式等のユーザの通信環境に関する情報が含まれてもよい。例えば、コンテキストデータには、IP(Internet Protocol)アドレス等のユーザの通信環境に関する情報が含まれてもよい。
例えば、コンテキストデータには、環境のコンテキストに関する情報が含まれてもよい。例えば、コンテキストデータには、ユーザの周囲がどんな環境かを示す情報が含まれてもよい。例えば、コンテキストデータには、天気、天候、気温、気圧などの種々の情報(周辺情報)が含まれてもよい。例えば、コンテキストデータには、操作内容に関する情報が含まれてもよい。例えば、コンテキストデータには、ユーザや端末装置10の状況やユーザや端末装置10の環境(背景)に基づいて推定されるユーザの状況等に関する情報が含まれてもよい。また、コンテキストデータには、ユーザに提供されるコンテンツの内容、ユーザが反応したコンテンツの内容、ユーザの属性、ユーザの現在位置、現在時刻、ユーザが置かれた物理環境、ユーザが置かれた社会環境、ユーザの運動状態、および、推定されるユーザの感情等の種々の情報が含まれてもよい。なお、上記は例示であり、コンテキストデータには、上記に限らず種々の情報が含まれてもよい。
生成装置100は、所定のモデルの学習に用いるデータの基準を示すデータ条件と、コンテキストデータ群とに基づいて、データ条件に対応する学習用データを生成する情報処理装置である。
ここから、図1及び図2を用いて生成処理について説明する。図1及び図2の例では、生成装置100がユーザU1及びユーザU2のコンテキストデータ(以下、「ログ」や「レコード」ともいう)を対象に学習用データを生成する場合を示すが、生成装置100は、ユーザU1〜ユーザUn等の多数のユーザのコンテキストデータを取得し、生成処理を行うものとする。このように、「ユーザU*(*は任意の数値)」と記載した場合、そのユーザはユーザID「U*」により識別されるユーザであることを示す。例えば、「ユーザU1」と記載した場合、そのユーザはユーザID「U1」により識別されるユーザである。なお、図1及び図2の例では、所定要素の基準に対応してデータ量が可変であるユーザのコンテキストデータ群(以下、「バッグ」ともいう)を処理対象とする場合を示す。例えば、各バッグには、各所定期間内に取得されたログ(コンテキストデータ)が含まれる。
(第1学習用データの生成)
まず、図1を用いて第1学習用データの生成処理について説明する。図1中の時系列INF11は、ユーザU1のアクセスを概念的に示す。例えば、時系列INF11は、ユーザU1についてログA〜G等のコンテキストデータが取得されたタイミングを示す。例えば、図1中のログAは、図6中のコンテキストデータ記憶部122に示す履歴ID「LG1−1」により識別されるコンテキストデータに対応する。また、例えば、図1中のログBは、図6中のコンテキストデータ記憶部122に示す履歴ID「LG1−2」により識別されるコンテキストデータに対応する。詳細は後述するが、コンテキストデータには、「日時」、「IPアドレス」、「通信規格」、「端末情報」、「位置」、「利用サービス」、「検索クエリ」といった種々の情報が含まれる。
まず、生成装置100は、ユーザU1のログにおいて、所定期間に含まれるコンテキストデータ群を一つのバッグに含めると決定する(ステップS11)。図1の例では、生成装置100は、ログA〜Dの4個のコンテキストデータをバッグBG1−1に含めると決定する。上記のように、「バッグBG*(*は任意の数値)」と記載した場合、そのバッグはバッグID「BG*」により識別されるバッグであることを示す。例えば、「バッグBG1−1」と記載した場合、そのバッグはバッグID「BG1−1」により識別されるバッグである。
このように、バッグBG1−1には、4個のコンテキストデータ(ログA〜D)が含まれる。すなわち、バッグBG1−1のレコード数は「4」である。また、図1の例では、各コンテキストデータからは1000個の特徴量が抽出される場合を示す。この場合、各コンテキストデータの特徴量数は1000個となる。例えば、各コンテキストデータの特徴量には、「特徴量2−1(デバイスDA)」や「特徴量2−2(デバイスDB)」や「特徴量2−1000(クエリQZ)」といった1000個の特徴量(図10参照)が抽出される。
そのため、バッグBG1−1には4個のコンテキストデータが含まれるため、バッグBG1−1は、4個のコンテキストデータの各特徴量を合わせた4000(4×1000)個の特徴量を含む。すなわち、バッグBG1−1の特徴量数(図1中の「総特徴量数」に対応)は、4000個となる。
また、生成装置100は、ユーザU1のログにおいて、所定期間に含まれるコンテキストデータ群を一つのバッグに含めると決定する(ステップS12)。図1の例では、生成装置100は、ログE等の400個のコンテキストデータをバッグBG1−2に含めると決定する。このように、バッグBG1−2には、400個のコンテキストデータ(ログE等)が含まれる。すなわち、バッグBG1−2のレコード数は「400」である。また、図1の例では、各コンテキストデータからは1000個の特徴量が抽出される。例えば、各コンテキストデータの特徴量には、「特徴量2−1(デバイスDA)」や「特徴量2−2(デバイスDB)」や「特徴量2−1000(クエリQZ)」といった1000個の特徴量が抽出される。
そのため、バッグBG1−2には400個のコンテキストデータが含まれるため、バッグBG1−2は、400個のコンテキストデータの各特徴量を合わせた400000(400×1000)個の特徴量を含む。すなわち、バッグBG1−2の特徴量数(図1中の「総特徴量数」に対応)は、400000個となる。
このように、バッグBG1−1とバッグBG1−2とでは、含まれる特徴量数が異なるため、例えば特徴量数が多いバッグBG1−2の特徴量に合せて学習を行う場合、バッグBG1−1が対応する特徴量が少ない。そのため、可変量データを対象とする場合、単純に特徴量を用いて学習すると十分な学習ができず学習精度が低下する等、柔軟な学習を行うことが難しい。
そこで、生成装置100は、各バッグのコンテキストデータ群から統計的なデータを生成する。例えば、生成装置100は、所定の条件に基づいて、各バッグのコンテキストデータ群から統計的なデータを生成する。具体的には、生成装置100は、統計的特徴量の指定を含むデータ条件と、コンテキストデータ群とに基づいて、第1学習用データを生成する。
図1の例では、生成装置100は、図7に示すデータ条件記憶部123中の「統計的特徴量」に格納された統計的特徴量の指定に基づいて、第1学習用データを生成する。ここで、図7に示すデータ条件記憶部123中の「統計的特徴量」には、「特徴量1−1」や「特徴量1−2」や「特徴量1−100」といった項目が含まれる。このように、「統計的特徴量」には、「特徴量1−1」〜「特徴量1−100」の100個の統計的特徴量に対応する項目が含まれる。図1の例では、図7中の条件ID「CD1」により識別される条件(以下、「条件CD1」ともいう)を用いる場合を示す。
図7中の条件CD1における「特徴量1−1」に対応する特徴量は、レコード数を示す統計的特徴量であることを示す。また、図7中の条件CD1における「特徴量1−2」に対応する特徴量は、サービス数を示す統計的特徴量であることを示す。また、図7中の条件CD1における「特徴量1−100」に対応する特徴量は、関連商品数を示す統計的特徴量であることを示す。なお、上記の統計的特徴量は、一例であり、目的に応じて種々の統計的特徴量が用いられてもよい。例えば、統計的特徴量は、レコード数やサービス数等の数に限らず、平均値、最大、最小、分散、標準偏差などの種々の統計量に対応する特徴量であってもよい。
生成装置100は、バッグBG1−1に対応する第1学習用データを生成する(ステップS13)。生成装置100は、上述したような「特徴量1−1」〜「特徴量1−100」に対応する統計的特徴量に対応する第1学習用データをバッグBG1−1中のコンテキストデータ群から生成する。図1の例では、生成装置100は、生成情報INF12に示すように、バッグBG1−1に対応する第1学習用データを生成する。
図1の例では、生成装置100は、バッグBG1−1に対応する第1学習用データとして、「特徴量1−1(レコード数)」が「4」であることを示すデータを生成する。また、生成装置100は、バッグBG1−1に対応する第1学習用データとして、「特徴量1−2(サービス数)」が「2」であることを示すデータを生成する。また、生成装置100は、バッグBG1−1に対応する第1学習用データとして、「特徴量1−100(関連商品数)」が「1」であることを示すデータを生成する。また、生成装置100は、図8の第1学習用データ記憶部124に示すバッグBG1−2のような他のバッグに対応する第1学習用データを生成する。
次に、ユーザU2のコンテキストデータからの第1学習用データの生成について説明する。図1中の時系列INF21は、ユーザU2のアクセスを概念的に示す。例えば、時系列INF21は、ユーザU2についてログJ〜L等のコンテキストデータが取得されたタイミングを示す。例えば、図1中のログJは、図6中のコンテキストデータ記憶部122に示す履歴ID「LG2−1」により識別されるコンテキストデータに対応する。また、例えば、図1中のログKは、図6中のコンテキストデータ記憶部122に示す履歴ID「LG2−2」により識別されるコンテキストデータに対応する。コンテキストデータには、「日時」、「IPアドレス」、「通信規格」、「端末情報」、「位置」、「利用サービス」、「検索クエリ」といった種々の情報が含まれる。
また、生成装置100は、ユーザU2のログにおいて、所定期間に含まれるコンテキストデータ群を一つのバッグに含めると決定する(ステップS14)。図1の例では、生成装置100は、ログJ等の20個のコンテキストデータをバッグBG2−1に含めると決定する。このように、バッグBG2−1には、20個のコンテキストデータ(ログJ等)が含まれる。すなわち、バッグBG2−1のレコード数は「20」である。また、図1の例では、各コンテキストデータからは1000個の特徴量が抽出される。例えば、各コンテキストデータの特徴量には、「特徴量2−1(デバイスDA)」や「特徴量2−2(デバイスDB)」や「特徴量2−1000(クエリQZ)」といった1000個の特徴量が抽出される。
生成装置100は、バッグBG2−1に対応する第1学習用データを生成する(ステップS15)。生成装置100は、上述したような「特徴量1−1」〜「特徴量1−100」に対応する統計的特徴量に対応する第1学習用データをバッグBG2−1中のコンテキストデータ群から生成する。図1の例では、生成装置100は、生成情報INF22に示すように、バッグBG2−1に対応する第1学習用データを生成する。
図1の例では、生成装置100は、バッグBG2−1に対応する第1学習用データとして、「特徴量1−1(レコード数)」が「20」であることを示すデータを生成する。また、生成装置100は、バッグBG2−1に対応する第1学習用データとして、「特徴量1−2(サービス数)」が「1」であることを示すデータを生成する。また、生成装置100は、バッグBG2−1に対応する第1学習用データとして、「特徴量1−100(関連商品数)」が「5」であることを示すデータを生成する。また、生成装置100は、ユーザU2の他のバッグや他のユーザのバッグについても第1学習用データを生成する。
上記のように、バッグBG1−1、バッグBG1−2、バッグBG2−1等に含まれるコンテキストデータ数が可変であるため、各バッグに対応する特徴量数(図1中の総特徴量数)が異なる。そのため、各バッグに含まれるデータをそのまま用いて学習を行なった場合、十分な学習ができず学習精度が低下する等、柔軟な学習を行うことが難しい。一方、生成装置100は、各バッグに対応する第1学習用データを生成することにより、可変量データを対象とする場合であっても、柔軟な学習を可能にするデータを生成することができる。
(第2学習用データの生成)
次に、図2を用いて第2学習用データの生成処理について説明する。図1に示すように、生成装置100は、各バッグに含まれるコンテキストデータ群の統計的特徴量に対応する第1学習用データを生成する。一方で、コンテキストデータ群を統計量に変換したデータのみならず、コンテキストデータ群(生データ)も学習データに含まれることが望ましい。
しかしながら、各バッグに含まれるデータは可変量であるため、各バッグのレコード数が異なるため、バッグ内のコンテキストデータ群(生データ)をそのまま用いることは難しい。また、バッグに対応する所定期間の時間や長さが異なるので、正規化した場合の意味付けも難しい。また、単純にバックのレコードをデータ数の総計で割り算するなどにより、纏めることも考えられるが、単純な割り算では、1レコードの場合の「1」と3レコードの場合の「0.3」の差の意味が不明となる。
そこで、生成装置100は、各バッグのコンテキストデータ群を設定値に対応するレコード数に成形されたデータである第2学習用データを生成することにより、各バッグのコンテキストデータ群のデータサイズを統一する。例えば、生成装置100は、各バッグのコンテキストデータ群のレコード数を設定値に対応する統一レコード数に圧縮または増幅することにより、各バッグに対応する第2学習用データを生成する。このように、生成された各バッグの第2学習用データは、同じ特徴量数を有する同じ統一レコード数のデータであるため、種々の学習に用いることが可能となる。
ここから、生成装置100による第2学習用データの生成を具体的に説明する。なお、図2の例では、統一レコード数は「3」である場合を説明する。また、図2の例では、第2学習用データの生成例として、ユーザU1に対応するバッグBG1−2及びユーザU2に対応するバッグBG2−1を対象とする場合を示す。
まず、生成装置100は、ユーザU1について、バッグBG1−2のコンテキストデータ群から行列を生成する(ステップS21)。具体的には、生成装置100は、バッグBG1−2に含まれるレコード数が「400」であり、各レコードの特徴量が「1000」である、コンテキストデータ群から行列を生成する。図2の例では、生成装置100は、バッグBG1−2のコンテキストデータ群から行列M21(以下「第1行列M21」ともいう)を生成する。
図2に示す第1行列M21は、行を各特徴量とし、列を各レコードとする行列を示す。例えば、第1行列M21中の各行「#1」〜「#1000」は、「特徴量2−1(デバイスDA)」〜「特徴量2−1000(クエリQZ)」といった1000個の特徴量(図10参照)の各々に対応する。例えば、第1行列M21中の行「#1」は、「特徴量2−1(デバイスDA)」に対応する。また、第1行列M21中の行「#2」は、「特徴量2−2(デバイスDB)」に対応する。
また、例えば、第1行列M21中の各列「#1」〜「#400」は、バッグBG1−2に含まれる各レコードに対応する。例えば、第1行列M21中の列「#1」は、ユーザU1のコンテキストデータであるログEに対応する。また、第1行列M21中の列「#2」は、ユーザU1のコンテキストデータであるログFに対応する。また、第1行列M21中の列「#3」は、ユーザU1のコンテキストデータであるログGに対応する。
例えば、第1行列M21における行「#1」と列「#1」とが交差する要素は、ログEにおける「特徴量2−1(デバイスDA)」に対応する値を示す。また、例えば、第1行列M21における行「#2」と列「#1」とが交差する要素は、ログEにおける「特徴量2−2(デバイスDB)」に対応する値を示す。また、例えば、第1行列M21における行「#1」と列「#2」とが交差する要素は、ログFにおける「特徴量2−1(デバイスDA)」に対応する値を示す。
生成装置100は、第1行列M21を用いて第2学習用データを生成する(ステップS22)。図2の例では、生成装置100は、1000行400列の第1行列M21(行列データ)を統一レコード数「3」に対応する1000行3列のデータに変換することにより、第2学習用データを生成する。このように、生成装置100は、対象とするバッグに含まれるレコード数が統一レコード数よりも多い場合、レコード数を圧縮することにより、第2学習用データを生成する。
ここで、生成装置100は、第2学習用データの生成に所定の行列データ(以下、「第2行列」ともいう)を用いる。例えば、生成装置100は、図9中の行列データ記憶部125に示すような行列データ(第2行列)を用いて、第2学習用データを生成する。
図9中の行列データ記憶部125は、行列データ群125−1や行列データ群125−2等のように統一レコードの設定値ごとに情報(テーブル)を記憶する。例えば、行列データ群125−1は、統一レコード数の設定値が「3」である場合に用いられる行列データを示す。すなわち、図2に示す例では、生成装置100は、統一レコード数の設定値が「3」であるため、行列データ群125−1に示す行列データを用いる。このように、生成装置100は、所定の範囲の各自然数及び設定値に対応する複数の第2行列のうち、コンテキストデータ群のレコード数及び設定値に対応する第2行列を用いることにより、第2学習用データを生成する。
図9に示す行列データ群125−1や行列データ群125−2等は、「行列ID」、「対象レコード数」、「行列データ」といった項目を有する。また、「行列データ」は、各「レコード」と各「統一レコード」とに対応する行列データが格納される。このように、「行列データ」は、行を「レコード」とし、列を「統一レコード」とする行列データが格納される。
「行列ID」は、各行列を識別するための識別情報を示す。「対象レコード数」は、対応する行列が用いられる対象のレコード数を示す。「行列データ」は、行列データを示す。具体的には、「行列データ」は、統計的特徴量に対応する統計的データである行列データを示す。
なお、図9の例では、行列IDに含まれる数字は、統一レコード数やレコード数に対応する。例えば、行列ID「MT3−1」は、統一レコード数が「3」であり、対象レコード数が「1」である場合に用いられる行列データであることを示す。すなわち、行列ID「MT3−1」により識別される行列データ(以下、「行列MT3−1」ともいう)は、レコード数が「1」であるバッグのコンテキストデータ群から、統一レコード数「3」に増幅した第2学習用データを生成する場合に用いられる第2行列であることを示す。上記のように、「行列MT*(*は任意の数値または文字列)」と記載した場合、その行列は行列ID「行列MT*」により識別される行列であることを示す。
また、例えば、行列ID「MT3−400」は、統一レコード数が「3」であり、対象レコード数が「400」である場合に用いられる行列データであることを示す。すなわち、行列MT3−400は、レコード数が「400」であるバッグのコンテキストデータ群から、統一レコード数「3」に圧縮した第2学習用データを生成する場合に用いられる第2行列であることを示す。
例えば、生成装置100は、行列データ記憶部125に記憶された複数の行列データのうち、第2学習用データの生成に用いる行列データを決定する。例えば、生成装置100は、対象とするバッグに含まれるレコード数を行の数とし、統一レコード数(設定値)を列の数とする行列データを第2学習用データの生成に用いる行列データを決定する。図2の例では、生成装置100は、バッグに含まれるレコード数「400」及び統一レコード数「3」に対応する400行3列の行列MT3−400(以下、「第2行列MT3−400」ともいう)を、第2学習用データの生成に用いる行列データとして決定する。そして、生成装置100は、1000行400列の第1行列M21と、第2行列MT3−400との積により、第2学習用データM31を生成する。
例えば、第2行列MT3−400において、レコード「#1」の行と統一レコード「#1」の列とが交差する箇所は、第2行列MT3−400の1行1列目の要素に対応する。また、例えば、図2の例では、第2行列MT3−400において、レコード「#1」の行と統一レコード「#2」の列とが交差する箇所は、第2行列MT3−400の1行2列目の要素に対応する。
生成装置100は、1000行400列の第1行列M21と、400行3列の第2行列MT3−400との積により、1000行3列の行列データである第2学習用データM31を生成する。なお、第2学習用データM31は、各列「#1」〜「#3」を成形後のコンテキストデータとすることにより、3つの成形後のコンテキストデータとして生成される。このように、生成装置100は、バッグBG1−2から、「特徴量2−1(デバイスDA)」や「特徴量2−2(デバイスDB)」や「特徴量2−1000(クエリQZ)」といった1000個の特徴量を含む成形後のコンテキストデータを3つ生成する。なお、生成装置100は、ユーザU1について、バッグBG1−1や他のバッグから同様に3つの成形後のコンテキストデータを生成する。
また、生成装置100は、ユーザU2について、バッグBG2−1のコンテキストデータ群から行列を生成する(ステップS23)。具体的には、生成装置100は、バッグBG2−1に含まれるレコード数が「20」であり、各レコードの特徴量が「1000」である、コンテキストデータ群から行列を生成する。図2の例では、生成装置100は、バッグBG2−1のコンテキストデータ群から行列M22(以下「第1行列M22」ともいう)を生成する。
図2に示す第1行列M22は、行を各特徴量とし、列を各レコードとする行列を示す。例えば、第1行列M22中の各行「#1」〜「#1000」は、「特徴量2−1(デバイスDA)」〜「特徴量2−1000(クエリQZ)」といった1000個の特徴量の各々に対応する。例えば、第1行列M22中の行「#1」は、「特徴量2−1(デバイスDA)」に対応する。また、第1行列M22中の行「#2」は、「特徴量2−2(デバイスDB)」に対応する。
また、例えば、第1行列M22中の各列「#1」〜「#20」は、「バッグBG2−1に含まれる各レコードに対応する。例えば、第1行列M22中の列「#1」は、ユーザU2のコンテキストデータであるログJに対応する。また、第1行列M22中の列「#2」は、ユーザU2のコンテキストデータであるログKに対応する。また、第1行列M22中の列「#3」は、ユーザU2のコンテキストデータであるログLに対応する。
例えば、第1行列M22における行「#1」と列「#1」とが交差する要素は、ログJにおける「特徴量2−1(デバイスDA)」に対応する値を示す。また、例えば、第1行列M22における行「#2」と列「#1」とが交差する要素は、ログJにおける「特徴量2−2(デバイスDB)」に対応する値を示す。また、例えば、第1行列M22における行「#1」と列「#2」とが交差する要素は、ログKにおける「特徴量2−1(デバイスDA)」に対応する値を示す。
生成装置100は、第1行列M22を用いて第2学習用データを生成する(ステップS24)。図2の例では、生成装置100は、1000行20列の第1行列M22(行列データ)を統一レコード数「3」に対応する1000行3列のデータに変換することにより、第2学習用データを生成する。このように、生成装置100は、対象とするバッグに含まれるレコード数が統一レコード数よりも多い場合、レコード数を圧縮することにより、第2学習用データを生成する。
例えば、生成装置100は、行列データ記憶部125に記憶された複数の行列データのうち、第2学習用データの生成に用いる行列データを決定する。図2の例では、生成装置100は、バッグに含まれるレコード数「20」及び統一レコード数「3」に対応する20行3列の行列MT3−20(以下、「第2行列MT3−20」ともいう)を、第2学習用データの生成に用いる行列データとして決定する。そして、生成装置100は、1000行20列の第1行列M22と、20行3列の第2行列MT3−20との積により、第2学習用データM32を生成する。
例えば、第2行列MT3−20において、レコード「#1」の行と統一レコード「#1」の列とが交差する箇所は、第2行列MT3−20の1行1列目の要素に対応する。また、例えば、図2の例では、第2行列MT3−20において、レコード「#1」の行と統一レコード「#2」の列とが交差する箇所は、第2行列MT3−20の1行2列目の要素に対応する。
生成装置100は、1000行20列の第1行列M22と、20行3列の第2行列MT3−20との積により、1000行3列の行列データである第2学習用データM32を生成する。なお、第2学習用データM32は、各列「#1」〜「#3」を成形後のコンテキストデータとすることにより、3つの成形後のコンテキストデータとして生成される。このように、生成装置100は、バッグBG2−1から、「特徴量2−1(デバイスDA)」や「特徴量2−2(デバイスDB)」や「特徴量2−1000(クエリQZ)」といった1000個の特徴量を含む成形後のコンテキストデータを3つ生成する。なお、生成装置100は、ユーザU2についての他のバッグや他のユーザのバッグから同様に3つの成形後のコンテキストデータを生成する。
このように、生成装置100は、種々のレコード数の異なるバッグ内のコンテキストデータ群から統一レコード数にレコード数が統一され、同じ特徴量数を有する第2学習用データを生成することにより、各バッグのレコード数が異なる場合であっても、バッグ内のコンテキストデータを種々の学習に用いることが可能となる。
上述したように、生成装置100は、可変量のデータが含まれるバッグについて、第1学習用データや第2学習用データ等の成形したデータを生成する。これにより、生成装置100は、可変量データを対象とする場合であっても、柔軟な学習を可能にするデータを生成することができる。
(1−1.バッグ)
生成装置100は、各バッグのパラメータを動的に調整してもよい。このように、生成装置100は、各バッグに関するパラメータを適宜変更してもよい。例えば、生成装置100は、期間や最大量や写像パラメータやノイズ除去のパラメータや頻度などによるサンプリングパラメータ等の種々のパラメータをバッグに応じて変動させてもよい。例えば、生成装置100は、各バッグに含まれるデータの最大量を変動させてもよい。例えば、生成装置100は、各バッグに応じて対応する所定期間の長さやそのバッグに含まれるコンテキストデータのレコード数の最大値を変動させてもよい。
例えば、生成装置100は、各バッグに含まれるデータから生成した第1学習用データや第2学習用データを認証モデルの生成や認証モデルを用いた認証に用いる場合、アクセスの多いユーザについては、各バッグの期間を短くしてもよい。例えば、生成装置100は、各バッグに含まれるデータから生成した第1学習用データや第2学習用データを認証モデルの生成に用いる場合、ユーザU1よりもユーザU2の方がアクセスの多い場合、ユーザU1の各バッグの期間をユーザU2の各バッグの期間よりも長くしてもよい。また、例えば、生成装置100は、位置情報の変動が少なすぎるユーザの場合、バッグの期間を長くしてもよい。なお、ここでいうバッグの期間とは、バッグに含まれるコンテキストデータを収集する期間を意味する。
例えば、生成装置100は、位置情報から推定した精度が所定の閾値以下の場合、バッグの期間を長くしてもよい。例えば、生成装置100は、各バッグに含まれるデータから生成した第1学習用データや第2学習用データを、認証モデルを用いた認証に用いる場合、認証の精度が所定の閾値以下の場合、バッグの期間を長くしてもよい。
また、生成装置100は、フィードバックさせてバッグのパラメータを動的に変動させてもよい。例えば、生成装置100は、ユーザのコンテキストまたは学習の結果に応じて、バッグのパラメータを変更してもよい。例えば、生成装置100は、モデルの精度や学習の結果に応じて、バッグの期間を変更してもよい。例えば、生成装置100は、認証モデルの認証精度が所定の閾値未満である場合、バッグの期間を長くするように変更してもよい。
(1−2.第1学習用データ)
また、生成装置100は、第1学習用データとして、上記に限らず種々のデータを生成してもよい。例えば、生成装置100は、バッグに含まれるコンテキストデータ群におけるデータの時系列的変化を解析することにより第1学習用データを生成してもよい。例えば、生成装置100は、バッグに含まれる時系列解析の波の形に基づいて第1学習用データを生成してもよい。
例えば、生成装置100は、バッグに含まれるコンテキストデータ群における変位(リズム、上がる、下がる、凸凹など)に基づいて、第1学習用データを生成してもよい。例えば、生成装置100は、「特徴量1−10」として、時系列における生体情報(例えば血圧)の「変化」に関する第1学習用データを生成してもよい。
例えば、生成装置100は、「特徴量1−10」として、時系列において血圧の上昇度合いに応じた第1学習用データを生成してもよい。例えば、生成装置100は、「特徴量1−10」として、時系列において血圧の上昇度合いが大きい程大きくなる、0〜1までの値を第1学習用データとして生成してもよい。また、例えば、生成装置100は、注意力散漫度やデータ変換や意味付けやラベリング等の種々の第1学習用データを生成してもよい。
また、例えば、生成装置100は、コンテキストデータ群に基づいて推定されるユーザの状況に関する第1学習用データを生成してもよい。例えば、生成装置100は、バッグに含まれるコンテキストデータ群に基づいてユーザの状況を推定してもよい。例えば、生成装置100は、ユーザの位置情報やコンテンツの閲覧等の種々の行動情報に基づいて、ユーザがどのような状況であるかを推定してもよい。
例えば、生成装置100は、ユーザの位置履歴情報やコンテンツの閲覧等の種々の行動履歴情報に基づいて、ユーザがどのような状況であるかを推定してもよい。例えば、生成装置100は、ユーザが夜に所定の行動を行う傾向がある場合、バッグに含まれるコンテキストデータ群に対応する時点が夜である場合、ユーザが所定の行動を行う可能性が高い状況であると推定してもよい。また、例えば、生成装置100は、ユーザの位置がユーザの自宅と推定される位置から所定の範囲内に位置する場合、ユーザが家に所在して、寛いでいる可能性が高い状況であると推定してもよい。
なお、上記は一例であり、生成装置100は、種々の情報等に基づいて種々のユーザの心理状態等の種々の状況を推定してもよい。
(1−3.行列データ)
また、生成装置100は、行列データ記憶部125に記憶される第2行列を外部の情報処理装置から取得してもよい、生成してもよい。例えば、生成装置100は、所定のビジネスロジックや第2行列を生成する情報処理装置の管理者等の経験的に基づいて手動で設定された第2行列を取得してもよい。また、例えば、生成装置100は、機械学習等の手法により生成された第2行列を取得してもよい。
また、例えば、生成装置100は、機械学習等の手法により第2行列を生成してもよい。例えば、生成装置100は、正解情報(正例)や不正解情報(負例)に基づいて、第2行列を生成してもよい。例えば、生成装置100は、ユーザについて正しく認証がされた場合のコンテキストデータ群に基づいて、第2行列を生成してもよい。例えば、生成装置100は、ユーザについて正しく認証がされた場合のコンテキストデータ群との積により生成される第2学習用データを用いた認証の精度が高くなるよう、第2行列を生成してもよい。
また、例えば、生成装置100は、機械学習等の手法により第2行列を生成してもよい。例えば、生成装置100は、各対象レコード数(レコード数M)毎にモデル(行列生成モデル)を生成し、生成した行列生成モデルを用いて第2行列を生成してもよい。例えば、生成装置100は、各対象レコード数(レコード数M)と各統一レコード数である設定数(設定数N)との組合せ毎にモデル(行列生成モデル)を生成し、生成した行列生成モデルを用いて第2行列を生成してもよい。例えば、生成装置100は、過去のデータで、レコード数Mを行の数とし、設定数Nを列の数とする行列(M×N行列)に写像し、問題の判別精度が略最大になるように調整することにより、行列生成モデルを生成してもよい。
例えば、生成装置100は、正解情報(正例)や不正解情報(負例)に基づいて、行列生成モデルを生成してもよい。例えば、生成装置100は、ユーザについて正しく認証がされた場合のコンテキストデータ群に基づいて、行列生成モデル等を生成してもよい。例えば、生成装置100は、ユーザについて正しく認証がされた場合のコンテキストデータ群を入力した場合に第2行列により生成される第2学習用データを用いた認証の精度が高くなるよう、行列生成モデルを生成してもよい。
(1−4.モデルの生成)
なお、生成装置100は、生成した第1学習用データや第2学習用データを用いて、種々のモデル等を生成してもよい。例えば、生成装置100は、第1学習用データ記憶部124に示すような第1学習用データや、第2学習用データ記憶部126に示すような第2学習用データを用いて、ユーザを認証するモデル(認証モデル)やユーザの行動を予測するモデル(予測モデル)等の種々のモデルを生成してもよい。
例えば、生成装置100は、正解情報(正例)や不正解情報(負例)に基づいて、認証モデル等を生成してもよい。例えば、生成装置100は、ユーザについて正しく認証がされた場合のコンテキストデータ群とユーザを一意に特定可能な情報(例えばユーザID)とに基づいて、認証モデル等を生成してもよい。例えば、生成装置100は、ユーザについて正しく認証がされた場合のコンテキストデータ群から生成された第1学習用データや第2学習用データに基づいて、認証モデル等を生成してもよい。
例えば、生成装置100は、種々の認証モデルを用いてもよい。例えば、生成装置100は、多クラス分類モデルを認証モデルとして用いてもよい。例えば、生成装置100は、いわゆるマルチラベル問題に対応するモデルを用いて、ユーザを認証してもよい。例えば、生成装置100は、カーネル法に関する技術を用いて、ユーザを認証してもよい。例えば、生成装置100は、特殊な特徴量(例えば、xの2乗等)を組み合わせることにより、空間を多次元に分類する手法を用いて、ユーザを認証してもよい。また、例えば、生成装置100は、非線型分類に関する技術を用いて、ユーザを認証してもよい。
例えば、生成装置100は、ユーザの過去のログを多次元の特徴量を数値に変換したり、多次元ベクトル空間内に写像したりすることにより、ユーザを認証してもよい。例えば、生成装置100は、取得したコンテキストデータを数値や空間上に配置(マッピング)し、そのコンテキストデータに対応する点(位置)の近くにある点に対応するユーザとして認証してもよい。なお、上記は一例であり、生成装置100は、ユーザを認証可能であれば、どのような情報を用いてもよい。
また、例えば、生成装置100は、正解情報(正例)や不正解情報(負例)に基づいて、ユーザの行動を予測する予測モデルを生成してもよい。例えば、生成装置100は、ユーザが所定の商品を購入した場合におけるコンテキストデータ群に基づいて、所定の商品を購入するかどうかの行動を予測する予測モデル等を生成してもよい。例えば、生成装置100は、ユーザが所定の商品を購入した場合におけるコンテキストデータ群から生成された第1学習用データや第2学習用データに基づいて、予測モデル等を生成してもよい。
なお、各モデルの生成は、機械学習に関する種々の従来技術を適宜用いて行われてもよい。例えば、モデルの生成は、SVM(Support Vector Machine)等の教師あり学習の機械学習に関する技術を用いて行われてもよい。また、例えば、モデルの生成は、教師なし学習の機械学習に関する技術を用いて行われてもよい。例えば、モデルの生成は、深層学習(ディープラーニング)の技術を用いて行われてもよい。例えば、モデルの生成は、DNN(Deep Neural Network)やRNN(Recurrent Neural Network)やCNN(Convolutional Neural Network)等の種々のディープラーニングの技術を適宜用いて行われてもよい。なお、上記モデルの生成に関する記載は例示であり、モデルの生成は、取得可能な情報等に応じて適宜選択された学習手法により行われてもよい。なお、生成装置100は、このように生成されたモデルに、予測対象となるデータが学習用データと同様の形式に成形されたデータ(以下、「対象データ」ともいう)を入力することにより、生成したモデルに応じた予測を行うことができる。なお、以下では、学習用データ及び対象データを併せて「成形後データ」ともいう。例えば、学習用データや対象データのようにモデルに入力可能なように成形された成形後データとする。例えば、生成装置100は、生成した予測モデルに、成形後データである対象データを入力することにより、対象データに対応するユーザが所定の行動を行うかどうかを予測することができる。
(1−5.モデルの利用)
また、生成装置100は、上述のように、生成したモデルを用いた種々の処理を行ってもよい。例えば、生成装置100は、端末装置10を利用するユーザを生成装置100が一意に特定する情報が含まれないコンテキストデータ群を取得した場合、生成したモデルを用いた処理を行ってもよい。例えば、生成装置100は、端末装置10を利用するユーザを生成装置100が一意に特定する情報が含まれないコンテキストデータ群を取得した場合、生成した認証モデルを用いて、ユーザの認証を行ってもよい。また、生成装置100は、認証結果を種々の外部装置へ提供してもよい。例えば、生成装置100は、認証結果を端末装置10が利用しているサービスを提供する外部装置へ提供してもよい。また、生成装置100は、認証結果に基づいて、種々のサービスを提供してもよい。また、生成システム1は、種々の認証分野において適用されてもよい。例えば、生成装置100が提供するコンテキスト認証のサービスは種々の分野において適用されてもよい。例えば、生成装置100による生成処理は、アカウントリカバリーサービスにおいて用いられてもよい。また、例えば、生成装置100による生成処理は、権限委譲などにおいて用いられてもよい。
〔2.生成装置の構成〕
次に、図4を用いて、実施形態に係る生成装置100の構成について説明する。図4は、実施形態に係る生成装置の構成例を示す図である。図4に示すように、生成装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、生成装置100は、生成装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワークNと有線または無線で接続され、端末装置10との間で情報の送受信を行う。
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、図4に示すように、ユーザ情報記憶部121と、コンテキストデータ記憶部122と、データ条件記憶部123と、第1学習用データ記憶部124と、行列データ記憶部125と、第2学習用データ記憶部126と、モデル情報記憶部127とを有する。
(ユーザ情報記憶部121)
実施形態に係るユーザ情報記憶部121は、ユーザに関する各種情報を記憶する。例えば、ユーザ情報記憶部121は、ユーザ属性に関する各種情報を記憶する。図5は、実施形態に係るユーザ情報記憶部の一例を示す図である。図5に示すユーザ情報記憶部121は、「ユーザID」、「年齢」、「性別」、「自宅」、「勤務地」、「興味」といった項目が含まれる。
「ユーザID」は、ユーザを識別するための識別情報を示す。また、「年齢」は、ユーザIDにより識別されるユーザの年齢を示す。なお、「年齢」は、例えば35歳など、ユーザIDにより識別されるユーザの具体的な年齢であってもよい。また、「性別」は、ユーザIDにより識別されるユーザの性別を示す。
また、「自宅」は、ユーザIDにより識別されるユーザの自宅の位置情報を示す。なお、図5に示す例では、「自宅」は、「LC11」といった抽象的な符号を図示するが、緯度や経度を示す情報であってもよい。また、例えば、「自宅」は、地域名や住所であってもよい。
また、「勤務地」は、ユーザIDにより識別されるユーザの勤務地の位置情報を示す。なお、図5に示す例では、「勤務地」は、「LC12」といった抽象的な符号を図示するが、緯度や経度を示す情報であってもよい。また、例えば、「勤務地」は、地域名や住所であってもよい。
また、「興味」は、ユーザIDにより識別されるユーザの興味を示す。すなわち、「興味」は、ユーザIDにより識別されるユーザが関心の高い対象を示す。なお、図5に示す例では、「興味」は、各ユーザに1つずつ図示するが、複数であってもよい。
例えば、図5の例では、ユーザID「U1」により識別されるユーザの年齢は、「20代」であり、性別は、「男性」であることを示す。また、例えば、ユーザID「U1」により識別されるユーザは、自宅が「LC11」であることを示す。また、例えば、ユーザID「U1」により識別されるユーザは、勤務地が「LC12」であることを示す。また、例えば、ユーザID「U1」により識別されるユーザは、「スポーツ」に興味があることを示す。
なお、ユーザ情報記憶部121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、ユーザ情報記憶部121は、氏名、家族構成、収入等の情報を記憶してもよい。
(コンテキストデータ記憶部122)
実施形態に係るコンテキストデータ記憶部122は、ユーザのコンテキストに関する各種情報を記憶する。図6は、実施形態に係るコンテキストデータ記憶部の一例を示す図である。コンテキストデータ記憶部122は、ユーザのコンテキストデータを記憶する。
図6の例では、コンテキストデータ記憶部122は、各ユーザに対応付けられたコンテキストデータを記憶する。例えば、コンテキストデータ記憶部122は、正解情報(正例)を記憶する。例えば、コンテキストデータ記憶部122は、正例として、各ユーザについて正しく認証がされた場合のコンテキストデータやユーザを一意に特定可能な情報(例えばユーザID)とともに取得されたコンテキストデータをユーザに対応付けて記憶する。図6に示すコンテキストデータ記憶部122には、「ユーザID」、「履歴ID」、「日時」、「IPアドレス」、「通信規格」、「端末情報」、「位置」、「利用サービス」、「検索クエリ」といった項目が含まれる。なお、上記の項目は一例であり、コンテキストデータに関する種々の項目が含まれてもよい。例えば、コンテキストデータ記憶部122には、コンテキストデータに関する項目として、「気温」、「湿度」、「加速度」等の種々の項目が含まれてもよい。
「ユーザID」は、ユーザを識別するための識別情報を示す。「履歴ID」は、取得されたコンテキストデータを識別するための識別情報を示す。例えば、同じ履歴IDに対応付けられたコンテキストデータは、同じ送信元から取得されたコンテキストデータである。
また、「日時」は、各履歴IDに対応する日時を示す。例えば、「日時」は、各履歴IDに対応するコンテキストデータが取得された日時を示す。図6の例では、「日時」には、「dt11」等のように抽象的に図示するが、「2017年5月9日23時16分48秒」等の具体的な日時が記憶されてもよい。
また、「IPアドレス」は、コンテキストデータの送信元のIPアドレスを示す。図6の例では、「IPアドレス」には、「IPA1−1」等のように抽象的に図示するが、「131.206・・・」等の具体的なIPアドレスが記憶されてもよい。なお、「IPアドレス」には、IPv4(インターネットプロトコルバージョン4)やIPv6(インターネットプロトコルバージョン6)等の種々のバージョンのIPアドレスであってもよい。
また、「通信規格」は、コンテキストデータの送信元の通信規格を示す。例えば、「通信規格」は、各履歴IDに対応するコンテキストデータの取得時における送信元の通信規格を示す。図6の例では、「通信規格」には、「CE1−1」等のように抽象的に図示するが、「Wi−Fi」や「4G」等の具体的な通信規格が記憶されてもよい。
また、「端末情報」は、コンテキストデータの送信元の端末装置10に関する端末情報を示す。例えば、「端末情報」は、送信元の端末装置10のユーザエージェントに関する情報が記憶されてもよい。図6の例では、「端末情報」には、「UA1−1」等のように抽象的に図示するが、OS名、OSのバージョン、ブラウザ名、ブラウザのバージョン、言語といった種々の情報が記憶されてもよい。
また、「位置」は、各履歴IDに対応する位置を示す。例えば、「位置」は、各履歴IDに対応するコンテキストデータが取得された際における端末装置10の位置を示す。図6の例では、位置「LC1−1」等のように、位置情報を抽象的な符号で示すが、項目「位置」に記憶される情報は、具体的な緯度経度等の位置情報であってもよい。
また、「利用サービス」は、コンテキストデータの送信元の端末装置10において利用されている利用サービスを示す。例えば、「利用サービス」は、対応する日時において利用中であるサービスに関する情報が記憶されてもよい。図6の例では、「利用サービス」には、「SV2−1」等のように抽象的に図示するが、X買物アプリやY検索サービス等の具体的なサービス名等の情報が記憶されてもよい。
また、「検索クエリ」は、コンテキストデータの送信元の端末装置10において検索に用いられた検索クエリ示す。例えば、「検索クエリ」は、対応する日時において送信元の端末装置10での検索に用いられた検索クエリに関する情報が記憶されてもよい。図6の例では、「検索クエリ」には、「QE31」等のように抽象的に図示するが、「Z財布」や「A県 グルメ」等の具体的なクエリ(文字列や画像等)の情報が記憶されてもよい。
例えば、図6の例では、ユーザID「U1」により識別されるユーザは、日時dt11に履歴ID「LG1−1」に対応付けられたコンテキストデータが取得されたことを示す。また、履歴ID「LG1−1」に対応付けられたコンテキストデータには、IPアドレス「IPA1−1」や通信規格「CE1−1」や端末情報「UA1−1」や位置「LC1−1」等が含まれることを示す。また、履歴ID「LG1−1」に対応付けられたコンテキストデータにおいては、利用サービス及び検索クエリが「−」であり、履歴ID「LG1−1」に対応付けられたコンテキストデータには、利用サービスや検索クエリ等の情報は含まれないことを示す。
なお、コンテキストデータ記憶部122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。また、図6では、ユーザIDごとに行動情報がコンテキストデータ記憶部122に記憶される場合を示したが、行動情報は、ユーザIDごとに限らず、例えば日時順に記憶されてもよい。
(データ条件記憶部123)
実施形態に係るデータ条件記憶部123は、各クラスタ群の要素に関する各種情報を記憶する。図7は、実施形態に係るデータ条件記憶部の一例を示す図である。例えば、データ条件記憶部123は、各クラスタ群に対応する種別の要素を記憶する。例えば、データ条件記憶部123は、各種別を構成する各要素の組合せを記憶する。図7に示すデータ条件記憶部123には、「条件ID」、「統計的特徴量」、「設定値(統一レコード数)」といった項目が含まれる。また、「統計的特徴量」には、「特徴量1−1」や「特徴量1−2」や「特徴量1−100」といった項目が含まれる。例えば、「統計的特徴量」には、「特徴量1−1」〜「特徴量1−100」の100個の特徴量に対応する項目が含まれる。
「条件ID」は、所定のモデルの学習に用いるデータの基準を示すデータ条件を識別するための識別情報を示す。「統計的特徴量」は、学習に用いるデータの統計的な特徴量である統計的特徴量を示す。また、「特徴量1−1」や「特徴量1−2」や「特徴量1−100」は、各統計的特徴量の内容を示す。また、「設定値(統一レコード数)」は、学習に用いるデータのレコード数の設定値を示す。
図7の例では、条件ID「CD1」により識別される条件において、統計的特徴量のうち「特徴量1−1」に対応する特徴量は、レコード数に関する統計的特徴量であることを示す。また、条件ID「CD1」により識別される条件において、統計的特徴量のうち「特徴量1−2」に対応する特徴量は、サービス数に関する統計的特徴量であることを示す。また、条件ID「CD1」により識別される条件において、統計的特徴量のうち「特徴量1−100」に対応する特徴量は、関連商品数に関する統計的特徴量であることを示す。
図7の例では、条件ID「CD1」により識別される条件において、「設定値(統一レコード数)」は、「3」であることを示す。すなわち、条件ID「CD1」により識別される条件を用いる場合、各バッグに含まれるコンテキストデータ群は、統一レコード数「3」に成形されることを示す。
なお、データ条件記憶部123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、データ条件記憶部123には、学習するモデルの用途に応じて複数の条件が記憶されてもよい。例えば、データ条件記憶部123には、認証モデルの学習に用いる条件(例えば、条件ID「CD2」により識別される条件)や、購買行動等の予測モデルの学習に用いる条件(例えば、条件ID「CD3」により識別される条件)等の複数の条件が記憶されてもよい。
(第1学習用データ記憶部124)
実施形態に係る第1学習用データ記憶部124は、第1学習用データに関する各種情報を記憶する。図8は、実施形態に係る第1学習用データ記憶部の一例を示す図である。図8に示す第1学習用データ記憶部124は、ユーザごとに第1学習用データを記憶する。図8の例では、第1学習用データ記憶部124は、第1学習用データ群124−1や第1学習用データ群124−2等のようにユーザごとに情報(テーブル)を記憶する。図8に示す第1学習用データ群124−1や第1学習用データ群124−2等は、「ユーザID」、「バッグID」、「第1学習用データ」といった項目を有する。「第1学習用データ」は、「データID」、「特徴量1−1(レコード数)」や「特徴量1−2(サービス数)」や「特徴量1−100(関連商品数)」といった項目を有する。
「ユーザID」は、各ユーザを識別するための識別情報を示す。「バッグID」は、各バッグを識別するための識別情報を示す。「第1学習用データ」は、学習に用いられるデータを示す。具体的には、「第1学習用データ」は、統計的特徴量に対応する統計的データである第1学習用データを示す。また、「特徴量1−1(レコード数)」は、対応するバッグにおけるコンテキストデータ群に含まれるレコード数を示す。また、「特徴量1−2(サービス数)」は、対応するバッグにおけるコンテキストデータ群に含まれるサービス数を示す。また、「特徴量1−100(関連商品数)」は、対応するバッグにおけるコンテキストデータ群に含まれる関連商品数を示す。
図8の例では、ユーザID「U1」により識別されるユーザには、バッグID「BG1−1」により識別されるバッグや、バッグID「BG1−2」により識別されるバッグが対応付けられていることを示す。バッグID「BG1−1」に対応する第1学習用データは、データID「DT1−1−1」により識別されることを示す。
また、バッグID「BG1−1」に対応する第1学習用データは、「特徴量1−1(レコード数)」が「4」であることを示す。また、バッグID「BG1−1」に対応する第1学習用データは、「特徴量1−2(サービス数)」が「2」であることを示す。また、バッグID「BG1−1」に対応する第1学習用データは、「特徴量1−100(関連商品数)」が「1」であることを示す。
また、バッグID「BG1−2」に対応する第1学習用データは、「特徴量1−1(レコード数)」が「400」であることを示す。また、バッグID「BG1−2」に対応する第1学習用データは、「特徴量1−2(サービス数)」が「1」であることを示す。また、バッグID「BG1−2」に対応する第1学習用データは、「特徴量1−100(関連商品数)」が「4」であることを示す。
なお、第1学習用データ記憶部124は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
(行列データ記憶部125)
実施形態に係る行列データ記憶部125は、行列に関する情報を記憶する。例えば、行列データ記憶部125は、第2学習用データの生成に用いる第2行列を記憶する。例えば、行列データ記憶部125は、所定の範囲の各自然数及び設定値に対応する複数の第2行列を記憶する。図9は、実施形態に係る行列データ記憶部の一例を示す図である。
図9の例では、行列データ記憶部125は、行列データ群125−1や行列データ群125−2等のように統一レコードの設定値ごとに情報(テーブル)を記憶する。例えば、行列データ群125−1は、統一レコード数の設定値が「3」である場合に用いられる行列データを示す。また、例えば、行列データ群125−2は、統一レコード数の設定値が「N(任意の自然数)」である場合に用いられる行列データを示す。
図9に示す行列データ群125−1や行列データ群125−2等は、「行列ID」、「対象レコード数」、「行列データ」といった項目を有する。また、「行列データ」は、各「レコード」と各「統一レコード」とに対応する行列データが格納される。このように、「行列データ」は、行を「レコード」とし、列を「統一レコード」とする行列データが格納される。
「行列ID」は、各行列を識別するための識別情報を示す。「対象レコード数」は、対応する行列が用いられる対象のレコード数を示す。「行列データ」は、行列データを示す。具体的には、「行列データ」は、統計的特徴量に対応する統計的データである行列データを示す。
例えば、行列ID「MT3−1」に対応する行列データ(以下、「行列MT3−1」ともいう)において、レコード「#1」の行と統一レコード「#1」の列とが交差する箇所には、行列MT3−1の1行1列目の要素が記憶される。また、例えば、図9の例では、行列MT3−1において、レコード「#1」の行と統一レコード「#2」の列とが交差する箇所には、行列MT3−1の1行2列目の要素が記憶される。
また、例えば、行列ID「MT3−2」に対応する行列データ(以下、「行列MT3−2」ともいう)において、レコード「#1」の行と統一レコード「#3」の列とが交差する箇所には、行列MT3−2の1行3列目の要素が記憶される。また、例えば、図9の例では、行列MT3−2において、レコード「#2」の行と統一レコード「#2」の列とが交差する箇所には、行列MT3−2の2行2列目の要素が記憶される。
図9の例では、行列MT3−1は、対象レコード数が「1」であることを示す。すなわち、行列MT3−1は、1行3列の行列データであることを示す。また、行列MT3−1は、レコード「#1」の行と統一レコード「#1」の列とが交差する箇所には、「0.4」が記憶される。すなわち、行列MT3−1は、1行1列目の要素が「0.4」であることを示す。また、行列MT3−1は、レコード「#1」の行と統一レコード「#2」の列とが交差する箇所には、「0.1」が記憶される。すなわち、行列MT3−1は、1行2列目の要素が「0.1」であることを示す。
なお、行列データ記憶部125は、上記に限らず、目的に応じて種々の情報を記憶してもよい。行列データ記憶部125は、設定値「3」や「N」に限らず、設定値「40」や「100」等の種々の設定値に対応する行列データを記憶してもよい。このように、行列データ記憶部125に記憶される行列データは、所定要素の基準に対応してデータ量が可変であるユーザのコンテキストデータ群の成形に用いられ、コンテキストデータ群のレコード数及び学習に用いるデータのレコード数の設定値に対応する行列データであって、コンテキストデータ群に対応する第1行列と行列演算により、学習に用いるデータのレコード数に成形されたデータを出力するよう、コンピュータを機能させるための行列データである。
(第2学習用データ記憶部126)
実施形態に係る第2学習用データ記憶部126は、第2学習用データに関する各種情報を記憶する。図10は、実施形態に係る第2学習用データ記憶部の一例を示す図である。図10に示す第2学習用データ記憶部126は、ユーザごとに第2学習用データを記憶する。
図10の例では、第2学習用データ記憶部126は、第2学習用データ群126−1や第2学習用データ群126−2等のようにユーザごとに情報(テーブル)を記憶する。図10に示す第2学習用データ群126−1や第2学習用データ群126−2等は、「ユーザID」、「バッグID」、「第2学習用データ」といった項目を有する。「第2学習用データ」には、「データID」に対応付けて第2学習用データ(行列データ)が格納される。第2学習用データ記憶部126には、各「特徴量」と各「統一レコード」とに対応する行列データが格納される。このように、第2学習用データ記憶部126には、行を「特徴量」とし、列を「統一レコード」とする行列データが格納される。
「特徴量2−1(デバイスDA)」や「特徴量2−2(デバイスDB)」や「特徴量2−1000(クエリQZ)」といった項目を有する。例えば、「特徴量」には、「特徴量2−1」〜「特徴量2−1000」の1000個の特徴量に対応する項目が含まれる。
「ユーザID」は、各ユーザを識別するための識別情報を示す。「バッグID」は、各バッグを識別するための識別情報を示す。「第2学習用データ」は、学習に用いられるデータを示す。具体的には、「第2学習用データ」は、統一レコードの設定値に対応するレコード数に成形されたデータである第2学習用データを示す。また、「特徴量2−1(デバイスDA)」は、第2学習用データにおけるデバイスDAに対応する特徴量の値を示す。また、「特徴量2−2(デバイスDB)」は、第2学習用データにおけるデバイスDBに対応する特徴量の値を示す。また、「特徴量2−1000(クエリQZ)」は、第2学習用データにおけるクエリQZに対応する特徴量の値を示す。
図10の例では、ユーザID「U1」により識別されるユーザには、バッグID「BG1−1」により識別されるバッグや、バッグID「BG1−2」により識別されるバッグが対応付けられていることを示す。バッグID「BG1−1」に対応する第2学習用データは、データID「DT2−1−1」により識別されることを示す。
例えば、データID「DT2−1−1」に対応する第2学習用データ(以下、「第2学習用データDT2−1−1」ともいう)において、「特徴量2−1(デバイスDA)」の行と統一レコード「#1」の列とが交差する箇所には、第2学習用データDT2−1−1の1行1列目の要素が記憶される。また、例えば、図10の例では、第2学習用データDT2−1−1において、「特徴量2−1(デバイスDA)」の行と統一レコード「#2」の列とが交差する箇所には、第2学習用データDT2−1−1の1行2列目の要素が記憶される。
また、例えば、第2学習用データDT2−1−1において、「特徴量2−1000(クエリQZ)」の行と統一レコード「#1」の列とが交差する箇所には、第2学習用データDT2−1−1の1000行1列目の要素が記憶される。また、例えば、図10の例では、第2学習用データDT2−1−1において、「特徴量2−1000(クエリQZ)」の行と統一レコード「#3」の列とが交差する箇所には、第2学習用データDT2−1−1の1000行3列目の要素が記憶される。
図10の例では、第2学習用データDT2−1−1は、1000行3列の行列データであることを示す。また、第2学習用データDT2−1−1は、「特徴量2−1(デバイスDA)」の行と統一レコード「#1」の列とが交差する箇所には、「0.8」が記憶される。すなわち、第2学習用データDT2−1−1は、1行1列目の要素が「0.8」であることを示す。また、第2学習用データDT2−1−1は、「特徴量2−1000(クエリQZ)」の行と統一レコード「#2」の列とが交差する箇所には、「0」が記憶される。すなわち、第2学習用データDT2−1−1は、1000行2列目の要素が「0」であることを示す。
なお、第2学習用データ記憶部126は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
(モデル情報記憶部127)
実施形態に係るモデル情報記憶部127は、学習に関する情報を記憶する。例えば、モデル情報記憶部127は、モデルを記憶する。例えば、モデル情報記憶部127は、生成されたモデルの情報を記憶する。図11は、実施形態に係るモデル情報記憶部の一例を示す図である。図11に示すモデル情報記憶部127は、モデル情報として、用途に対応させて、「モデル」や「特徴量1−1」、「特徴量1−2」、「特徴量1−3」、「特徴量2−1」等といった項目を有する。例えば、「モデル」には、モデルを識別するための情報であるモデルIDが格納される。また、例えば、各特徴量1−1」、「特徴量1−2」、「特徴量1−3」、「特徴量2−1」等の各々は、素性(特徴量)に対応する。
図11の例では、用途「認証」に対応して生成されたモデルは、モデルID「DM11」により識別されるモデル(モデルDM11)であることを示す。例えば、モデルDM11に関するモデル情報は、特徴量1−1の重みが「0.5」、特徴量1−2の重みが「−0.4」、特徴量1−3の重みが「0.2」、特徴量2−1の重みが「0.6」等であることを示す。例えば、モデルの特徴量(特徴量)がm次元のベクトルで表現される場合、特徴量数はm個になり、特徴量1〜特徴量mの重みが記憶される。例えば、図11の例では、モデルの特徴量(特徴量)が第1学習用データの特徴量数「100」と第2学習用データの特徴量数「1000」とを合算した1100次元のベクトルで表現される。例えば、図11の例では、モデル情報記憶部127には、「特徴量1−1」〜「特徴量1−100」、「特徴量2−1」〜「特徴量2−1000」の1100個の特徴量が記憶される。
なお、モデル情報記憶部127は、上記に限らず、目的に応じて種々の情報を記憶してもよい。モデル情報記憶部127に記憶された各モデルは、成形後データが入力される入力層と出力層とを有し、入力層から前記出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、入力層に入力された成形後データに対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うモデルの入力層に入力されることにより、演算結果を示す値をモデルの出力層から出力する。例えば、モデル情報記憶部127に記憶された各モデルは、入力層(例えば説明変数)と出力層(例えば独立変数)とを有し、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素(例えば各特徴量)と、第1要素と第1要素の重みとに基づいて値が算出される第2要素(演算結果を示す値に対応する変数)とを含む。また、モデル情報記憶部127に記憶された各モデルは、入力層に入力された成形後データに対し、入力層から出力層までの各要素を第2要素として、第1要素と、第1要素の重みとに基づく演算を行うことにより、演算結果を示す値を出力層から出力する。
ここで、認証モデルであるモデルDM11や予測モデルであるモデルDM12等が、「y=a1*x1+a2*x2+・・・+ai*xi」で示す回帰モデルで実現されるとする。この場合、モデル123が含む第1要素は、x1やx2等といった入力データ(xi)に対応する。また、第1要素の重みは、xiに対応する係数aiに対応する。ここで、回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第1要素は、入力層が有するいずれかのノードに対応し、第2要素は、出力層が有するノードと見做すことができる。
また、認証モデルであるモデルDM11や予測モデルであるモデルDM12等がDNN(Deep Neural Network)等、1つまたは複数の中間層を有するニューラルネットワークで実現されるとする。この場合、認証モデルであるモデルDM11や予測モデルであるモデルDM12等が含む第1要素は、入力層または中間層が有するいずれかのノードに対応する。また、第2要素は、第1要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第1要素の重みは、第1要素と対応するノードから第2要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。
(制御部130)
図4の説明に戻って、制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、生成装置100内部の記憶装置に記憶されている各種プログラム(生成プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラ(controller)であり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。制御部130は、記憶部120に記憶されている学習モデル(例えば、モデル情報記憶部127に示すような認証モデルや予測モデル)に従った情報処理により、成形後データが入力される入力層と出力層とを有し、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素の重みとに基づいて値が算出される第2要素とを含み、入力層に入力された成形後データに対し、出力層以外の各層に属する各要素を第1要素として、第1要素と第1要素の重みとに基づく演算を行うことにより、演算結果を示す値を出力層から出力する。
図4に示すように、制御部130は、取得部131と、決定部132と、生成部133と、提供部134とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図4に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
(取得部131)
取得部131は、各種情報を取得する。例えば、取得部131は、端末装置10等の外部の情報処理装置から各種情報を取得する。例えば、取得部131は、ユーザ情報記憶部121や、コンテキストデータ記憶部122や、データ条件記憶部123や、行列データ記憶部125等に示す各種情報を、外部の情報処理装置から取得してもよい。
例えば、取得部131は、ユーザ情報記憶部121や、コンテキストデータ記憶部122や、データ条件記憶部123や、第1学習用データ記憶部124や、行列データ記憶部125や、第2学習用データ記憶部126等から各種情報を取得する。
例えば、取得部131は、端末装置10からユーザに関する各種情報を取得する。例えば、取得部131は、ユーザのコンテキストデータ群を取得する。例えば、取得部131は、所定要素の基準に対応してデータ量が可変であるユーザのコンテキストデータ群を取得する。例えば、取得部131は、所定期間におけるユーザのコンテキストデータ群を取得する。
例えば、取得部131は、所定要素の基準に基づいて収集されるユーザのコンテキストデータ群を取得する。例えば、取得部131は、所定期間において収集されるユーザのコンテキストデータ群を取得する。例えば、取得部131は、端末装置10を利用するユーザを生成装置100が一意に特定する情報が含まれないコンテキストデータ群を取得する。例えば、取得部131は、端末装置10からユーザのコンテキストデータを取得する。
(決定部132)
決定部132は、各種情報を決定する。例えば、決定部132は、ユーザ情報記憶部121や、コンテキストデータ記憶部122や、データ条件記憶部123や、第1学習用データ記憶部124や、行列データ記憶部125や、第2学習用データ記憶部126や、モデル情報記憶部127等に記憶された情報に基づいて、各種情報を決定する。
例えば、決定部132は、バッグを決定する。図1の例では、決定部132は、ユーザU1のログにおいて、所定期間に含まれるコンテキストデータ群を一つのバッグに含めると決定する。例えば、決定部132は、ログA〜Dの4個のコンテキストデータをバッグBG1−1に含めると決定する。例えば、決定部132は、ユーザU1のログにおいて、所定期間に含まれるコンテキストデータ群を一つのバッグに含めると決定する。
例えば、決定部132は、ログE等の400個のコンテキストデータをバッグBG1−2に含めると決定する。例えば、決定部132は、ユーザU2のログにおいて、所定期間に含まれるコンテキストデータ群を一つのバッグに含めると決定する。例えば、決定部132は、ログJ等の20個のコンテキストデータをバッグBG2−1に含めると決定する。
例えば、決定部132は、行列データ記憶部125に記憶された複数の行列データのうち、第2学習用データの生成に用いる行列データを決定する。例えば、決定部132は、対象とするバッグに含まれるレコード数を行の数とし、統一レコード数(設定値)を列の数とする行列データを、第2学習用データの生成に用いる行列データとして決定する。
図2の例では、決定部132は、バッグに含まれるレコード数「400」及び統一レコード数「3」に対応する400行3列の第2行列MT3−400を、第2学習用データの生成に用いる行列データとして決定する。また、図2の例では、決定部132は、バッグに含まれるレコード数「20」及び統一レコード数「3」に対応する20行3列の第2行列MT3−20を、第2学習用データの生成に用いる行列データとして決定する。
(生成部133)
生成部133は、種々の情報を生成する。例えば、生成部133は、学習に用いるデータを生成する。例えば、生成部133は、第1学習用データや第2学習用データを生成する。例えば、生成部133は、種々のモデルを生成する。例えば、生成部133は、第1学習用データや第2学習用データを用いて種々のモデルを生成する。例えば、生成部133は、ユーザ情報記憶部121や、コンテキストデータ記憶部122や、データ条件記憶部123や、第1学習用データ記憶部124や、行列データ記憶部125や、第2学習用データ記憶部126等に記憶された情報に基づいて、モデルを生成する。例えば、生成部133は、種々の情報に基づいて、モデル情報記憶部127に示すようなモデルを生成する。
例えば、生成部133は、所定のモデルの学習に用いるデータの基準を示すデータ条件と、取得部131により取得されたコンテキストデータ群とに基づいて、データ条件に対応する学習用データを生成する。例えば、生成部133は、学習に用いるデータの統計的な特徴量である統計的特徴量の指定を含むデータ条件と、コンテキストデータ群とに基づいて、統計的特徴量に対応する統計的データである第1学習用データを含む学習用データを生成する。
例えば、生成部133は、コンテキストデータ群におけるレコード数に関する統計的特徴量に対応する第1学習用データを含む学習用データを生成する。例えば、生成部133は、コンテキストデータ群におけるデータの種別数に関する統計的特徴量に対応する第1学習用データを生成する。例えば、生成部133は、コンテキストデータ群におけるデータの時系列的変化に関する統計的特徴量に対応する第1学習用データを生成する。例えば、生成部133は、コンテキストデータ群に基づいて推定されるユーザの状況に関する統計的特徴量に対応する第1学習用データを生成する。
例えば、生成部133は、学習に用いるデータのレコード数の設定値を含むデータ条件と、コンテキストデータ群とに基づいて、設定値に対応するレコード数に成形されたデータである第2学習用データを含む学習用データを生成する。例えば、生成部133は、設定値よりもコンテキストデータ群のレコード数が多い場合、コンテキストデータ群のレコード数を設定値に圧縮することにより、第2学習用データを生成する。例えば、生成部133は、設定値よりもコンテキストデータ群のレコード数が少ない場合、コンテキストデータ群のレコード数を設定値に増幅することにより、第2学習用データを生成する。
例えば、生成部133は、コンテキストデータ群に対応する第1行列と、コンテキストデータ群のレコード数及び設定値に対応する第2行列との積により、第2学習用データを生成する。例えば、生成部133は、所定の範囲の各自然数及び設定値に対応する複数の第2行列のうち、コンテキストデータ群のレコード数及び設定値に対応する第2行列を用いることにより、第2学習用データを生成する。
例えば、生成部133は、各バッグのコンテキストデータ群から統計的なデータを生成する。例えば、生成部133は、各バッグのコンテキストデータ群から統計的なデータを生成する。例えば、生成部133は、統計的特徴量の指定を含むデータ条件と、コンテキストデータ群とに基づいて、第1学習用データを生成する。
図1の例では、生成部133は、図7に示すデータ条件記憶部123中の「統計的特徴量」に格納された統計的特徴量の指定に基づいて、第1学習用データを生成する。例えば、生成部133は、バッグBG1−1に対応する第1学習用データを生成する例えば、生成部133は、「特徴量1−1」〜「特徴量1−100」に対応する統計的特徴量に対応する第1学習用データをバッグBG1−1中のコンテキストデータ群から生成する。図1の例では、生成部133は、生成情報INF12に示すように、バッグBG1−1に対応する第1学習用データを生成する。
また、図1の例では、生成部133は、バッグBG1−1に対応する第1学習用データとして、「特徴量1−1(レコード数)」が「4」であることを示すデータを生成する。また、生成部133は、バッグBG1−1に対応する第1学習用データとして、「特徴量1−2(サービス数)」が「2」であることを示すデータを生成する。また、生成部133は、バッグBG1−1に対応する第1学習用データとして、「特徴量1−100(関連商品数)」が「1」であることを示すデータを生成する。
例えば、生成部133は、バッグBG2−1に対応する第1学習用データを生成する。例えば、生成部133は、「特徴量1−1」〜「特徴量1−100」に対応する統計的特徴量に対応する第1学習用データをバッグBG2−1中のコンテキストデータ群から生成する。図1の例では、生成部133は、生成情報INF22に示すように、バッグBG2−1に対応する第1学習用データを生成する。
また、図1の例では、生成部133は、バッグBG2−1に対応する第1学習用データとして、「特徴量1−1(レコード数)」が「20」であることを示すデータを生成する。また、生成部133は、バッグBG2−1に対応する第1学習用データとして、「特徴量1−2(サービス数)」が「1」であることを示すデータを生成する。また、生成部133は、バッグBG2−1に対応する第1学習用データとして、「特徴量1−100(関連商品数)」が「5」であることを示すデータを生成する。
図2の例では、生成部133は、ユーザU1について、バッグBG1−2のコンテキストデータ群から行列を生成する。例えば、生成部133は、バッグBG1−2に含まれるレコード数が「400」であり、各レコードの特徴量が「1000」である、コンテキストデータ群から行列を生成する。例えば、生成部133は、バッグBG1−2のコンテキストデータ群から第1行列M21を生成する。
図2の例では、生成部133は、第1行列M21を用いて第2学習用データを生成する。例えば、生成部133は、1000行400列の第1行列M21(行列データ)を統一レコード数「3」に対応する1000行3列のデータに変換することにより、第2学習用データを生成する。例えば、生成部133は、対象とするバッグに含まれるレコード数が統一レコード数よりも多い場合、レコード数を圧縮することにより、第2学習用データを生成する。
例えば、生成部133は、所定要素の基準に対応してデータ量が可変であるユーザのコンテキストデータ群の成形に用いられ、コンテキストデータ群のレコード数及び学習に用いるデータのレコード数の設定値に対応する行列データと、コンテキストデータ群に対応する第1行列と行列演算により、学習に用いるデータのレコード数に成形された第2学習用データを生成する。例えば、生成部133は、図9中の行列データ記憶部125に示すような行列データを用いて、第2学習用データを生成する。図2の例では、生成部133は、1000行400列の第1行列M21と、第2行列MT3−400との積により、第2学習用データM31を生成する。例えば、生成部133は、1000行400列の第1行列M21と、400行3列の第2行列MT3−400との積により、1000行3列の行列データである第2学習用データM31を生成する。
例えば、生成部133は、バッグBG1−2から、「特徴量2−1(デバイスDA)」や「特徴量2−2(デバイスDB)」や「特徴量2−1000(クエリQZ)」といった1000個の特徴量を含む成形後のコンテキストデータを3つ生成する。
図2の例では、生成部133は、ユーザU2について、バッグBG2−1のコンテキストデータ群から行列を生成する。例えば、生成部133は、バッグBG2−1に含まれるレコード数が「20」であり、各レコードの特徴量が「1000」である、コンテキストデータ群から行列を生成する。例えば、生成部133は、バッグBG2−1のコンテキストデータ群から第1行列M22を生成する。
例えば、生成部133は、第1行列M22を用いて第2学習用データを生成する。図2の例では、生成部133は、1000行20列の第1行列M22を統一レコード数「3」に対応する1000行3列のデータに変換することにより、第2学習用データを生成する。例えば、生成部133は、対象とするバッグに含まれるレコード数が統一レコード数よりも多い場合、レコード数を圧縮することにより、第2学習用データを生成する。
図2の例では、生成部133は、1000行20列の第1行列M22と、20行3列の第2行列MT3−20との積により、第2学習用データM32を生成する。例えば、生成部133は、1000行20列の第1行列M22と、20行3列の第2行列MT3−20との積により、1000行3列の行列データである第2学習用データM32を生成する。例えば、生成部133は、バッグBG2−1から、「特徴量2−1(デバイスDA)」や「特徴量2−2(デバイスDB)」や「特徴量2−1000(クエリQZ)」といった1000個の特徴量を含む成形後のコンテキストデータを3つ生成する。
例えば、生成部133は、モデル情報記憶部127に示すような認証モデルや予測モデルを生成し、生成したモデルを記憶部120(例えば、モデル情報記憶部127)に格納する。例えば、生成部133は、第1学習用データ及び第2学習用データを予測モデルに入力することにより、演算結果を示す値を予測モデルの出力層から出力するように学習を行なう。例えば、生成部133は、入力層(例えば説明変数)と出力層(例えば独立変数)とを有し、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素(例えば各特徴量)と、第1要素と第1要素の重みとに基づいて値が算出される第2要素(演算結果を示す値に対応する変数)とを含み、入力層に入力された成形後データに対し、入力層から出力層までの各要素を第1要素として、第2要素と、第2要素の重みとに基づく演算を行うことにより、演算結果を示す値を出力層から出力する予測モデルを生成する。
なお、生成部133は、いかなる学習アルゴリズムを用いて認証モデルや予測モデルを生成してもよい。例えば、生成部133は、ニューラルネットワーク(neural network)、サポートベクターマシン(support vector machine)、クラスタリング、強化学習等の学習アルゴリズムを用いて、モデル情報記憶部127に示すような認証モデルや予測モデルを生成する。一例として、生成部133がニューラルネットワークを用いてモデル情報記憶部127に示すような認証モデルや予測モデルを生成する場合、認証モデルや予測モデルは、一以上のニューロンを含む入力層と、一以上のニューロンを含む中間層と、一以上のニューロンを含む出力層とを有する。
例えば、生成部133は、認証モデルや予測モデルに従った情報処理により、第1学習用データ及び第2学習用データを入力層に入力する。そして、生成部133は、入力データを中間層と出力層に伝播させることで出力層から値(例えば確率を示す値)を出力させる。例えば、生成装置100は、予測モデルに入力した第1学習用データ及び第2学習用データが予測対象の行動を行ったユーザのデータ、すなわち正例である場合、予測モデルの出力層から出力される値が正解を示す値(例えば、「1」等)に近くなるように予測モデルを更新する。なお、生成部133は、認証モデルについても同様に生成(更新)してもよい。
例えば、生成部133は、バックプロパゲーション(誤差逆伝播法)等の種々の従来技術を適宜用いて、予測モデルを更新してもよい。例えば、生成部133は、予測モデルの出力層から出力される値と、正解を示す値との誤差が少なくなるようにパラメータ(各要素の重み等)を補正するバックプロパゲーション等の処理により予測モデルを生成(更新)してもよい。例えば、生成部133は、所定の損失(ロス)関数を最小化するようにバックプロパゲーション等の処理を行うことにより予測モデルを生成(更新)してもよい。また、生成部133がGAN(Generative Adversarial Networks)を用いた生成処理を行う場合、生成されるモデルは、GANの一部を構成するモデルであってもよい。
(提供部134)
提供部134は、端末装置10に各種情報を提供する。例えば、提供部134は、ユーザに種々のサービスを提供する。例えば、提供部134は、生成部133により生成された第1学習用データや第2学習用データを外部の情報処理装置へ提供してもよい。また、提供部134は、生成部133により生成されたモデル情報を外部の情報処理装置へ提供してもよい。
例えば、提供部134は、生成部133により生成されたモデル情報を用いて、端末装置10にコンテンツを提供する。例えば、提供部134は、生成部133により認証されたユーザに種々のサービスを提供する。また、例えば、提供部134は、生成部133により認証されたユーザが利用する端末装置10にコンテンツを提供する。
また、提供部134は、生成部133により認証されたユーザに対応する種々のサービスを提供する。例えば、提供部134は、生成部133により認証されたユーザの端末装置10にコンテンツを提供する。
〔3.生成処理のフロー〕
次に、図12及び図13を用いて、実施形態に係る生成システム1による生成処理について説明する。図12及び図13は、実施形態に係る生成処理の一例を示すフローチャートである。具体的には、図12は、第1学習用データの生成処理の一例を示すフローチャートである。また、具体的には、図13は、第2学習用データの生成処理の一例を示すフローチャートである。
まず、第1学習用データの生成処理について説明する。図12に示すように、生成装置100は、ユーザのコンテキストデータを取得する(ステップS101)。例えば、生成装置100は、所定の期間において収集されたユーザのコンテキストデータ群を取得する。
そして、生成装置100は、統計的特徴量を示すデータ条件を取得する(ステップS102)。例えば、生成装置100は、データ条件記憶部123から統計的特徴量を示すデータ条件を取得する。
そして、生成装置100は、コンテキストデータとデータ条件とに基づいて、第1学習用データを生成する(ステップS103)。例えば、生成装置100は、コンテキストデータ群とデータ条件とに基づいて、第1学習用データを生成する。
まず、第2学習用データの生成処理について説明する。図13に示すように、生成装置100は、ユーザのコンテキストデータを取得する(ステップS201)。例えば、生成装置100は、所定の期間において収集されたユーザのコンテキストデータ群を取得する。
そして、生成装置100は、統一レコード数の設定値を示すデータ条件を取得する(ステップS202)。例えば、生成装置100は、データ条件記憶部123から統一レコード数の設定値を示すデータ条件を取得する。
そして、生成装置100は、設定値に対応する行列データを取得する(ステップS203)。例えば、生成装置100は、行列データ記憶部125から設定値に対応する行列データを取得する。
そして、生成装置100は、コンテキストデータと行列データとに基づいて、第2学習用データを生成する(ステップS204)。例えば、生成装置100は、所定の期間において収集されたコンテキストデータ群と行列データとに基づいて、第2学習用データを生成する。
〔4.効果〕
上述してきたように、実施形態に係る生成装置100は、取得部131と、生成部133とを有する。取得部131は、所定要素の基準に対応してデータ量が可変であるユーザのコンテキストデータ群を取得する。生成部133は、所定のモデルの学習に用いるデータの基準を示すデータ条件と、取得部131により取得されたコンテキストデータ群とに基づいて、データ条件に対応する学習用データを生成する。
このように、実施形態に係る生成装置100は、所定のモデルの学習に用いるデータの基準を示すデータ条件と、コンテキストデータ群とに基づいて、データ条件に対応する学習用データを生成することにより、可変量データを対象とする場合であっても、柔軟な学習を可能にするデータを生成することができる。
また、実施形態に係る生成装置100において、取得部131は、所定期間におけるユーザのコンテキストデータ群を取得する。
このように、実施形態に係る生成装置100は、所定期間においてデータ量が可変であるユーザのコンテキストデータ群を対象とする場合であっても、柔軟な学習を可能にするデータを生成することができる。
また、実施形態に係る生成装置100において、生成部133は、学習に用いるデータの統計的な特徴量である統計的特徴量の指定を含むデータ条件と、コンテキストデータ群とに基づいて、統計的特徴量に対応する統計的データである第1学習用データを含む学習用データを生成する。
このように、実施形態に係る生成装置100は、統計的特徴量の指定を含むデータ条件と、コンテキストデータ群とに基づいて、統計的特徴量に対応する統計的データである第1学習用データを含む学習用データを生成することにより、可変量データを対象とする場合であっても、柔軟な学習を可能にするデータを生成することができる。
また、実施形態に係る生成装置100において、生成部133は、コンテキストデータ群におけるレコード数に関する統計的特徴量に対応する第1学習用データを生成する。
このように、実施形態に係る生成装置100は、コンテキストデータ群におけるレコード数に関する統計的特徴量に対応する第1学習用データを生成することにより、可変量データを対象とする場合であっても、柔軟な学習を可能にするデータを生成することができる。
また、実施形態に係る生成装置100において、生成部133は、コンテキストデータ群におけるデータの種別数に関する統計的特徴量に対応する第1学習用データを生成する。
このように、実施形態に係る生成装置100は、コンテキストデータ群におけるデータの種別数に関する統計的特徴量に対応する第1学習用データを生成することにより、可変量データを対象とする場合であっても、柔軟な学習を可能にするデータを生成することができる。
また、実施形態に係る生成装置100において、生成部133は、コンテキストデータ群におけるデータの時系列的変化に関する統計的特徴量に対応する第1学習用データを生成する。
このように、実施形態に係る生成装置100は、コンテキストデータ群におけるデータの時系列的変化に関する統計的特徴量に対応する第1学習用データを生成することにより、可変量データを対象とする場合であっても、柔軟な学習を可能にするデータを生成することができる。
また、実施形態に係る生成装置100において、生成部133は、コンテキストデータ群に基づいて推定されるユーザの状況に関する統計的特徴量に対応する第1学習用データを生成する。
このように、実施形態に係る生成装置100は、コンテキストデータ群に基づいて推定されるユーザの状況に関する統計的特徴量に対応する第1学習用データを生成することにより、可変量データを対象とする場合であっても、柔軟な学習を可能にするデータを生成することができる。
また、実施形態に係る生成装置100において、生成部133は、学習に用いるデータのレコード数の設定値を含むデータ条件と、コンテキストデータ群とに基づいて、設定値に対応するレコード数に成形されたデータである第2学習用データを含む学習用データを生成する。
このように、実施形態に係る生成装置100は、学習に用いるデータのレコード数の設定値を含むデータ条件と、コンテキストデータ群とに基づいて、設定値に対応するレコード数に成形されたデータである第2学習用データを含む学習用データを生成することにより、可変量データを対象とする場合であっても、柔軟な学習を可能にするデータを生成することができる。
また、実施形態に係る生成装置100において、生成部133は、設定値よりもコンテキストデータ群のレコード数が多い場合、コンテキストデータ群のレコード数を設定値に圧縮することにより、第2学習用データを生成する。
このように、実施形態に係る生成装置100は、設定値よりもコンテキストデータ群のレコード数が多い場合、コンテキストデータ群のレコード数を設定値に圧縮することにより、第2学習用データを生成することにより、可変量データを対象とする場合であっても、柔軟な学習を可能にするデータを生成することができる。
また、実施形態に係る生成装置100において、生成部133は、設定値よりもコンテキストデータ群のレコード数が少ない場合、コンテキストデータ群のレコード数を設定値に増幅することにより、第2学習用データを生成する。
このように、実施形態に係る生成装置100は、設定値よりもコンテキストデータ群のレコード数が少ない場合、コンテキストデータ群のレコード数を設定値に増幅することにより、第2学習用データを生成することにより、可変量データを対象とする場合であっても、柔軟な学習を可能にするデータを生成することができる。
また、実施形態に係る生成装置100において、生成部133は、コンテキストデータ群に対応する第1行列と、コンテキストデータ群のレコード数及び設定値に対応する第2行列との積により、第2学習用データを生成する。
このように、実施形態に係る生成装置100は、コンテキストデータ群に対応する第1行列と、コンテキストデータ群のレコード数及び設定値に対応する第2行列との積により、第2学習用データを生成することにより、可変量データを対象とする場合であっても、柔軟な学習を可能にするデータを生成することができる。
また、実施形態に係る生成装置100において、生成部133は、所定の範囲の各自然数及び設定値に対応する複数の第2行列のうち、コンテキストデータ群のレコード数及び設定値に対応する第2行列を用いることにより、第2学習用データを生成する。
このように、実施形態に係る生成装置100は、所定の範囲の各自然数及び設定値に対応する複数の第2行列のうち、コンテキストデータ群のレコード数及び設定値に対応する第2行列を用いて、第2学習用データを生成することにより、可変量データを対象とする場合であっても、柔軟な学習を可能にするデータを生成することができる。
〔5.ハードウェア構成〕
上述してきた実施形態に係る生成装置100は、例えば図14に示すような構成のコンピュータ1000によって実現される。図14は、生成装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、プログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、ネットワークN(図3中においてはネットワークN)を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が収集したデータをネットワークNを介して他の機器へ送信する。
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上にロードされたプログラム、またはデータ(例えば、図9中の行列データ記憶部125に示すような行列データや図11中のモデル情報記憶部127に示すような認証モデルや予測モデル)を実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラム、またはデータ(例えば、行列データや認証モデルや予測モデル)を記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
以上、本願の実施形態及び変形例のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
〔6.その他〕
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。