(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022163569
(43)【公開日】2022-10-26
(54)【発明の名称】行動解析補助装置、行動解析補助方法および行動解析補助プログラム
(51)【国際特許分類】
G06Q 50/10 20120101AFI20221019BHJP
【FI】
G06Q50/10
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021068579
(22)【出願日】2021-04-14
(71)【出願人】
【識別番号】512079738
【氏名又は名称】株式会社グルーヴノーツ
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】最首 英裕
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049CC20
(57)【要約】
【課題】文字列を行動解析に適した実数値ベクトルに変換して蓄積し、外部からの要求に応じて提供する行動解析補助装置等を提供する。
【解決手段】行動解析補助装置は、動作主体の行動履歴に関するワードを経時に沿って配列した文字列を取得する取得部と、文字列の少なくとも一部を分散表現による固定長の実数値ベクトルへ変換する変換部と、変換部によって変換された実数値ベクトルを、動作主体または文字列に含まれるワードに対応付けて記憶する記憶部と、記憶部に記憶された実数値ベクトルを行動解析プログラムからの要求に従って提供する提供部とを備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
動作主体の行動履歴に関するワードを経時に沿って配列した文字列を取得する取得部と、
前記文字列の少なくとも一部を分散表現による固定長の実数値ベクトルへ変換する変換部と、
前記変換部によって変換された前記実数値ベクトルを、前記動作主体または前記文字列に含まれるワードに対応付けて記憶する記憶部と、
前記記憶部に記憶された前記実数値ベクトルを行動解析プログラムからの要求に従って提供する提供部と
を備える行動解析補助装置。
【請求項2】
前記変換部は、前記文字列の全体を分散表現による固定長の実数値ベクトルへ変換し、
前記記憶部は、前記変換部によって変換された前記実数値ベクトルを、前記動作主体に対応付けて記憶し、
前記提供部は、前記記憶部に記憶された前記動作主体ごとの実数値ベクトルを行動解析プログラムからの要求に従って提供する請求項1に記載の行動解析補助装置。
【請求項3】
前記変換部は、前記文字列に含まれる前記ワードのそれぞれを分散表現による固定長の実数値ベクトルへ変換し、
前記記憶部は、前記変換部によって変換された前記実数値ベクトルを、前記ワードのそれぞれと対応付けて記憶し、
前記提供部は、前記記憶部に記憶された前記ワードごとの実数値ベクトルを行動解析プログラムからの要求に従って提供する請求項1または2に記載の行動解析補助装置。
【請求項4】
前記変換部は、前記文字列に含まれる前記ワードの出現頻度に基づいて、前記文字列を分散表現による実数値ベクトルへ変換し、
前記記憶部は、前記変換部によって変換された前記実数値ベクトルを、前記動作主体 に対応付けて記憶し、
前記提供部は、前記記憶部に記憶された前記動作主体ごとの実数値ベクトルを行動解析プログラムからの要求に従って提供する請求項1から3のいずれか1項に記載の行動解析補助装置。
【請求項5】
動作主体の行動履歴に関するワードを経時に沿って配列した文字列を取得する取得ステップと、
前記文字列の少なくとも一部を分散表現による固定長の実数値ベクトルへ変換する変換ステップと、
前記変換ステップで変換された前記実数値ベクトルを、前記動作主体または前記文字列に含まれるワードに対応付けて記憶部へ記憶する記憶ステップと、
前記記憶部に記憶された前記実数値ベクトルを行動解析プログラムからの要求に従って提供する提供ステップと
を有する行動解析補助方法。
【請求項6】
動作主体の行動履歴に関するワードを経時に沿って配列した文字列を取得する取得ステップと、
前記文字列の少なくとも一部を分散表現による固定長の実数値ベクトルへ変換する変換ステップと、
前記変換ステップで変換された前記実数値ベクトルを、前記動作主体または前記文字列に含まれるワードに対応付けて記憶部へ記憶する記憶ステップと、
前記記憶部に記憶された前記実数値ベクトルを行動解析プログラムからの要求に従って提供する提供ステップと
をコンピュータに実行させる行動解析補助プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、行動解析補助装置、行動解析補助方法および行動解析補助プログラムに関する。
【背景技術】
【0002】
インターネット等を介してユーザのニーズに適したコンテンツを提供するサービスが展開されている。例えば、ユーザが過去に閲覧したコンテンツと類似度の高いコンテンツを抽出して当該ユーザへ提供する情報処理装置が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述のような情報処理装置は、例えば分散表現の手法を用いることにより各々のコンテンツを数値ベクトルで表現し、コサイン類似度を算出することによりコンテンツ同士の類似度を導出している。しかし、従来の分散表現による数値ベクトル化は、汎用のコーパスやデータベースを用いて行われるのが一般的であり、対象となる単語や語句の言語学的な特質を表現するに留まっていた。特に、需要者としての動作主体の行動特性が反映されたものではなかった。
【0005】
本発明は、このような問題を解決するためになされたものであり、文字列を行動解析に適した実数値ベクトルに変換して蓄積し、外部からの要求に応じて提供する行動解析補助装置等を提供するものである。
【課題を解決するための手段】
【0006】
本発明の第1の態様における行動解析補助装置は、動作主体の行動履歴に関するワードを経時に沿って配列した文字列を取得する取得部と、文字列の少なくとも一部を分散表現による固定長の実数値ベクトルへ変換する変換部と、変換部によって変換された実数値ベクトルを、動作主体または文字列に含まれるワードに対応付けて記憶する記憶部と、記憶部に記憶された実数値ベクトルを行動解析プログラムからの要求に従って提供する提供部とを備える。
【0007】
本発明の第2の態様における行動解析補助方法は、動作主体の行動履歴に関するワードを経時に沿って配列した文字列を取得する取得ステップと、文字列の少なくとも一部を分散表現による固定長の実数値ベクトルへ変換する変換ステップと、変換ステップで変換された実数値ベクトルを、動作主体または文字列に含まれるワードに対応付けて記憶部へ記憶する記憶ステップと、記憶部に記憶された実数値ベクトルを行動解析プログラムからの要求に従って提供する提供ステップとを有する。
【0008】
本発明の第3の態様における行動解析補助プログラムは、動作主体の行動履歴に関するワードを経時に沿って配列した文字列を取得する取得ステップと、文字列の少なくとも一部を分散表現による固定長の実数値ベクトルへ変換する変換ステップと、変換ステップで変換された実数値ベクトルを、動作主体または文字列に含まれるワードに対応付けて記憶部へ記憶する記憶ステップと、記憶部に記憶された実数値ベクトルを行動解析プログラムからの要求に従って提供する提供ステップとをコンピュータに実行させる。
【発明の効果】
【0009】
本発明により、文字列を行動解析に適した実数値ベクトルに変換して蓄積し、外部からの要求に応じて提供する行動解析補助装置等を提供することができる。
【図面の簡単な説明】
【0010】
【
図1】本実施形態に係る行動解析補助装置が利用される全体環境を説明する図である。
【
図2】行動解析補助装置のハードウェア構成を示す図である。
【
図3】動作主体の行動履歴に関する文字列の取得を説明する図である。
【
図4】文字列の全体を実数値ベクトルへ変換する処理の概念を説明する図である。
【
図5】文字列に含まれるワードのそれぞれを実数値ベクトルへ変換する処理の概念を説明する図である。
【
図6】文字列に含まれるワードを出現頻度に関連付けて実数値ベクトルへ変換する処理の概念を説明する図である。
【
図7】実数値ベクトルの蓄積に関する処理の処理手順を説明するフロー図である。
【
図8】行動解析プログラムからの要求に応じて実数値ベクトルを提供する処理の処理手順を説明するフロー図である。
【発明を実施するための形態】
【0011】
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
【0012】
図1は、本実施形態に係る行動解析補助装置として機能するデータベースサーバ100が利用される全体環境を説明する図である。データベースサーバ100は、インターネット900に接続されており、インターネット900を介して、直接的または間接的にメディアサーバ210、アプリケーションサーバ220、情報端末300、および解析サーバ400と情報の授受を行う。メディアサーバ210は、例えばソーシャルネットワークサービス(SNS)を提供するサーバである。あるユーザが例えばタブレット端末である自身の情報端末300を操作してツイート等のコメントを発信すると、当該コメントは、ユーザID、発信時刻等と関連付けられてメディアサーバ210の記憶部に蓄積される。
【0013】
アプリケーションサーバ220は、例えばオンライン決済サービスを提供するサーバである。あるユーザが例えばスマートフォンである自身の情報端末300を操作して店舗で決済を実行すると、当該決済に関する情報は、ユーザID、決済時刻、店舗名等と関連付けられてアプリケーションサーバ220の記憶部に蓄積される。インターネット900には、メディアサーバ210やアプリケーションサーバ220の他にも、ユーザの行動履歴を記憶し得る様々なサーバが接続されていてもよい。例えば、情報端末300に搭載されたGPS機能を利用してユーザの行動ログを記録するサーバを含んでもよい。ユーザの行動履歴を記憶し得るサーバとしては、他にも店舗に設置されたクレジットカード読取端末230や電子決済読取スキャナ240や、交通ICカードを読み取る自動改札装置250などと接続されているサーバであってもよい。
【0014】
データベースサーバ100は、これらのサーバに記憶されたユーザの行動履歴に関するワードを経時に沿って配列した文字列として取得する。そして、取得した文字列の少なくとも一部を分散表現による固定長の実数値ベクトルへ変換し、動作主体または文字列に含まれるワードに対応付けて記憶する。このように変換、記憶された実数値ベクトルは、やがて一定規模のデータベースを構築する。データベースサーバ100は、このように構築されたデータベースから、解析サーバ400からの要求に従って実数値ベクトルを提供する。
【0015】
解析サーバ400は、商品の需要予測や店舗の来訪者予測、最適なWEB広告の出稿先などを動作主体の行動特性を踏まえて解析するサーバである。具体的には、データベースサーバ100に記憶された実数値ベクトルを利用して、例えば、ある商品を購入したユーザが次に購入する可能性の高い商品を解析する。
【0016】
図2は、行動解析補助装置であるデータベースサーバ100のハードウェア構成を示す図である。データベースサーバ100は、主に、演算部110、記憶部120、および通信ユニット130によって構成される。演算部110は、データベースサーバ100の制御とプログラムの実行処理を行うプロセッサ(CPU:Central Processing Unit)である。プロセッサは、ASIC(Application Specific Integrated Circuit)やGPU(Graphics Processing Unit)等の演算処理チップと連携する構成であってもよい。特に、演算部110は、記憶部120に記憶された、あるいは外部装置から送られてくる行動解析補助プログラムに従って、行動解析の補助に関する様々な処理を実行する。
【0017】
記憶部120は、不揮発性の記憶媒体であり、例えばHDD(Hard Disk Drive)によって構成されている。記憶部120は、データベースサーバ100の制御や処理を実行するプログラムの他にも、制御や演算に用いられる様々なパラメータ値、関数、ルックアップテーブル、学習済みモデル等を記憶し得る。記憶部120は、特に、主体別DB121、ワード別DB122、頻度別DB123の各データベースを記憶している。主体別DB121は、行動履歴に関するワードを経時に沿って配列した文字列の全体を変換して生成した実数値ベクトルを、動作主体に対応付けて記憶、蓄積するデータベースである。ワード別DB122は、行動履歴に関するワードを経時に沿って配列した文字列に含まれるワードのそれぞれを変換して生成した実数値ベクトルを、そのワードに対応付けて記憶、蓄積するデータベースである。頻度別DB123は、行動履歴に関するワードを経時に沿って配列した文字列に含まれるワードを出現頻度に関連付けて生成した実数値ベクトルを、動作主体に対応付けて記憶、蓄積するデータベースである。
【0018】
なお、記憶部120は、複数のハードウェアで構成されていても良く、例えば、プログラムを記憶する記憶媒体と各データベースを記憶する記憶媒体が別々のハードウェアで構成されてもよい。また、記憶部120は、データベースサーバ100に内蔵される構成でなくてもよく、例えばネットワークで接続された記憶装置であってもよい。その場合には、データベースサーバ100と当該記憶装置によって行動解析補助装置が構築される。
【0019】
通信ユニット130は、インターネット900への接続および外部機器とのデータ授受を担い、例えばLANユニットによって構成されている。通信ユニット130は、演算部110の制御に従って、インターネット900との間で情報の授受を行う。
【0020】
演算部110は、行動解析補助プログラムが指示する処理に応じて様々な演算を実行する機能演算部としての役割も担う。演算部110は、取得部111、変換部112、提供部113として機能し得る。取得部111は、メディアサーバ210、アプリケーションサーバ220から、通信ユニット130を介して、動作主体の行動履歴に関するワードを経時に沿って配列した文字列を取得する。変換部112は、取得部111が取得した文字列の少なくとも一部を分散表現による固定長の実数値ベクトルへ変換し、記憶部120の対応するデータベースへ追加する。提供部113は、記憶部120の各データベースに記憶された実数値ベクトルを行動解析プログラムからの要求に従って提供する。具体的な処理については後述する。
【0021】
図3は、動作主体の行動履歴に関する文字列の取得を説明する図である。上述のように、取得部111は、メディアサーバ210、アプリケーションサーバ220から当該文字列を取得する。換言すれば、それらのサーバから動作主体別にターゲットとなるカテゴリーのワードを収集して時間経過に沿って並べて配列できれば、その配列した文字列を取りこむ。例えばカテゴリーのターゲットを「店舗」とすれば、各人物のSNSへの投稿やオンライン決済を行った記録から、訪れた店舗とその順序を配列することができる。
【0022】
具体的には、メディアサーバ210、アプリケーションサーバ220、その他ユーザの行動履歴を記憶し得るサーバから、それぞれに記憶・格納されている動作主体、実行した動作、およびその動作を実行した時刻情報を対応付けて収集する。取得部111は、このように収集したデータ群から、解析対象となる動作主体別にターゲットとなるカテゴリーのワードを抽出して経時に沿って並べて配列する。カテゴリーが店舗であれば、それぞれの人物がどのような順番で店舗を訪れたかを、データ群に含まれる時刻情報を参照して、店舗訪問に関する履歴を経時に沿って抽出し、店舗名をワードとして配列した文字列を生成する。
図3は、そのように情報を収集した「店舗名」である「ワード」を訪れた順にN個配列した様子を示す。
【0023】
具体的には、例えば、人物AのブログからAが「Cafe BC」「Rラーメン」「D Coffee」…「ST Cafe」の順に訪れたことが抽出できれば、「Cafe BC,Rラーメン,D Coffee,…,ST Cafe」と配列した文字列を取得する。同様に、例えば、人物Bのオンライン決済の記録からBが「Bカメラ」「Y電器」「Aストア」…「Aストア」の順に訪れたことが確認できれば、「Bカメラ,Y電器,Aストア,…,Aストア」と配列した文字列を取得する。このように経時に沿ってワードを配列した文字列は、動作主体の行動傾向を内包し、例えば、「Bカメラ」を訪れた後には「Y電器」に立ち寄る傾向にあるなどの行動パターンを読み取ることができる。
【0024】
なお、カテゴリーのターゲットを「店舗」とした場合には、カフェもデパートも混在した文字列が生成される。「店舗」という枠組みで行動解析を行うことを想定する場合はそのような文字列を取得、収集すればよいが、さらに細かい例えば「飲食店」という枠組みで行動解析を行うことを想定する場合はカテゴリーのターゲットを「飲食店」にして文字列を取得、収集すればよい。他にも、「ショッピング」や「ファストフード」などもターゲットになり得る。「ショッピング」とする場合には、例えば人物Cの行動履歴から「Mデパート,Tデパート,Lモール,…,Tデパート」と配列した文字列が取得される。「ファストフード」とする場合には、例えば人物Dの行動履歴から「Oバーガー,Kバーガー,Mドーナツ,…,Oバーガー」と配列した文字列が取得される。
【0025】
どのようなターゲットのワードを抽出するかについては、例えば、予め抽出したいターゲットを定義する参照辞書を用意しておけばよい。例えば「ファストフード」の参照辞書には、「Kバーガー」「Mドーナツ」などのファストフードの店舗名が列挙されている。あるいは、参照するコーパスに含まれるワードごとに想定されるカテゴリーのタグを付与しておいてもよい。例えば、コーパスに含まれる「Kバーガー」には「ファストフード」や「飲食店」のタグが付与されている。この場合、取得部111は、当該コーパスにおいてターゲットとなるカテゴリーのタグを有するワードと一致するワードをブログ等から抜き出して文字列を生成する。
【0026】
もちろん、動作主体の行動履歴に関するワードは「店舗」に関するものに限らない。すなわち、訪れた「店舗」に限らず、例えば、観光地において巡った「名所」であっても、一定期間に亘って身に着けた衣服の「色」であってもカテゴリーのターゲットになり得る。上述のように、形成した文字列が動作主体の行動傾向を内包し得るのであれば、選定対象となる。
【0027】
なお、このようなワードとして配列した文字列の生成処理は、データベースサーバ100が、上述のように他のサーバからデータ群を収集して行ってもよいが、これに限らない。他のサーバがすでにそのような文字列としてデータセットを保持しているのであれば、データベースサーバ100は、そのようなデータセットを単に取得すればよい。
【0028】
次に、このように取得した文字列から実数値ベクトルへ変換する処理について説明する。本実施形態において変換部112は、文字列の全体を実数値ベクトルへ変換する変換処理、文字列に含まれるワードのそれぞれを実数値ベクトルへ変換する変換処理、文字列に含まれるワードを出現頻度に関連付けて実数値ベクトルへ変換する変換処理を実行し得る。
【0029】
図4は、文字列の全体を実数値ベクトルへ変換する処理の概念を説明する図である。文字列の全体を変換した実数値ベクトルは、動作主体に対応付けて主体別DB121へ記憶、蓄積するので、ここでは「主体別変換」と称する。
【0030】
上述のように
図3の人物Aからは「Cafe BC,Rラーメン,D Coffee,…,ST Cafe」と配列した文字列を取得することができる。これを一文の文章とみなして、変換部112は、文字列の全体を分散表現による固定長の実数値ベクトルへ変換する。具体的には、Doc2vecの手法を用いる。Doc2vecによる実数値ベクトルへの変換は、公知の技術(例えば、論文"Distributed Representations of Sentences and Documents"、https://cs.stanford.edu/~quocle/paragraph_vector.pdfを参照)を適用することができる。このように変換すると、図示するように例えば[0.12,0.02,0.05,…]といった固定長、すなわち設定された次元数の実数値ベクトルが得られる。同様に、人物Bの行動履歴から取得した「Bカメラ,Y電器,Aストア,…,Aストア」の文字列も、Doc2vecにより[0.20,0.03,0.08,…]のように同じ次元数の実数値ベクトルに変換される。他に取得された文字列についても同様に変換処理を行う。変換部112は、このように変換したそれぞれの実数値ベクトルを、動作主体である「人物A」「人物B」に対応付けて主体別DB121へ記憶、蓄積する。ここで、実数値ベクトルを動作主体に対応付けて記憶、蓄積するとは、変換した実数値ベクトルを、動作主体を直接的または間接的に示す情報やデータに対応付けて記憶、蓄積することをいう。
【0031】
このように、動作主体ごとの行動履歴を経時に沿って配列した文字列の全体を変換した実数値ベクトルは、その動作主体の行動傾向を内包していると評価し得る。したがって、このような実数値ベクトルは、類似する行動傾向を示す人物を抽出する場合などに利用することができる。例えば、行動解析プログラムが、評価対象である人物Xが購買パターンによって分類される複数のグループのいずれに属するかを決定する場合には、まず人物Xのこれまでの行動履歴を同様に実数値ベクトルへ変換し、これに類似する実数値ベクトルを主体別DB121から抽出する。そして、抽出した実数値ベクトルに対応付けられた人物が多く所属するグループを、人物Xが属するグループと決定する(例えば、「家電製品を量販店で購入する傾向の強いグループに属する」など)。
【0032】
また、このような実数値ベクトルは、類似する行動傾向を示す人物の今後の行動を予測する場合などにも利用することができる。例えば、行動解析プログラムが、人物Xのこれまでの行動履歴に基づいて今後の行動を予測するような場合には、まず人物Xのこれまでの行動履歴を同様に実数値ベクトルへ変換し、これに類似する実数値ベクトルを主体別DB121から抽出する。そして、抽出した実数値ベクトルに対応付けられた人物の情報から人物Xがまだ実行していない行動を抽出することにより今後の行動を予測する(例えば、「『Aストア』に行く可能性が高い」など)。提供部113は、解析サーバ400で実行される行動解析プログラムから主体別DB121の実数値ベクトルを要求する要求コマンドを受けた場合に、対象となる実数値ベクトルを主体別DB121から選択して提供する。
【0033】
図5は、文字列に含まれるワードのそれぞれを実数値ベクトルへ変換する処理の概念を説明する図である。文字列に含まれるワードのそれぞれを変換した実数値ベクトルは、そのワードに対応付けてワード別DB122へ記憶、蓄積するので、ここでは「ワード別変換」と称する。
【0034】
上述のように例えば
図3の人物Cからは、「Mデパート,Tデパート,Lモール,…,Tデパート」と配列した文字列を取得することができる。これを一文の文章とみなして、「Tデパート」に着目すると、これに前後する「Mデパート」「Lモール」は、周辺語と捉えることができる。そこで、変換部112は、「Tデパート」を含む他の動作主体から生成された文字列を収集し、「Tデパート」に対するそれぞれの周辺語の出現確率を学習することにより、「Tデパート」を分散表現による固定長の実数値ベクトルへ変換する。具体的には、Word2vecの手法を用いる。Word2vecによる実数値ベクトルへの変換は、公知の技術(例えば、論文"Efficient Estimation of Word Representations in Vector Space"、https://arxiv.org/pdf/1301.3781.pdfを参照)を適用することができる。このように変換すると、図示するように例えば[0.17,0.42,0.15,…]といった固定長、すなわち設定された次元数の実数値ベクトルが得られる。変換部112は、このようにワードごとに変換したそれぞれの実数値ベクトルを、元のワード(例えば「Tデパート」)と対応付けてワード別DB122へ記憶、蓄積する。
【0035】
このように、行動履歴を経時に沿って配列した文字列に含まれるワードを変換した実数値ベクトルは、様々な動作主体による一般的な行動傾向を内包していると評価し得る。したがって、このような実数値ベクトルは、一般的な行動パターンにおいて当該ワードの行動に前後して実行される可能性の高い行動を推定する場合などに利用することができる。例えば、行動解析プログラムが、評価対象である「Mドーナツ」がどのような店舗を訪れた後に訪れる可能性が高いかを推定する場合には、「Mドーナツ」の実数値ベクトルに類似する実数値ベクトルをワード別DB122から抽出する。そして、抽出した実数値ベクトルに対応付けられたワードが表す店舗を目的の店舗と決定する。例えば、「Lモール」と決定された場合には、一般的な行動パターンとして「Lモール」を訪れた後に「Mドーナツ」を訪れる可能性が高い、などと推定することができる。提供部113は、解析サーバ400で実行される行動解析プログラムからワード別DB122の実数値ベクトルを要求する要求コマンドを受けた場合に、対象となる実数値ベクトルをワード別DB122から選択して提供する。
【0036】
図6は、文字列に含まれるワードを出現頻度に関連付けて実数値ベクトルへ変換する処理の概念を説明する図である。文字列に含まれるワードを出現頻度に関連付けて変換した実数値ベクトルは、動作主体に対応付けて頻度別DB123へ記憶、蓄積するので、ここでは「頻度別変換」と称する。
【0037】
上述のように例えば
図3の人物Bからは、「Bカメラ,Y電器,Aストア,…,Aストア」と配列した文字列を取得することができる。変換部112は、これを一文の文章とみなして分散表現による固定長の実数値ベクトルへ変換する場合に、重複するワードが出現する頻度を考慮する。この例では人物Bは「Aストア」に2回訪れており、「Aストア」への関心の高さが推測される。頻度を考慮するために、ここではTF-IDFの手法を用いる。そして、IDFを出現頻度情報として用いることにより、各単語の重要度をその単語と共に列挙する。このように変換することにより["Aストア":1.2,"Y電器":0.5,…]のように各ワードの頻度情報が得られ、そのうちの数値を抽出して列挙すれば実数値ベクトルが得られる。変換部112は、このように変換したそれぞれの実数値ベクトルを、動作主体である「人物A」「人物B」…と対応付けて頻度別DB123へ記憶、蓄積する。
【0038】
このように、動作主体ごとの行動履歴を経時に沿って配列した文字列に含まれるワードの出現頻度に基づいて変換した実数値ベクトルは、その動作主体の行動偏重を内包していると評価し得る。したがって、このような実数値ベクトルは、類似する行動偏重を示す人物を抽出する場合などに利用することができる。提供部113は、解析サーバ400で実行される行動解析プログラムから頻度別DB123の実数値ベクトルを要求する要求コマンドを受けた場合に、対象となる実数値ベクトルを頻度別DB123から選択して提供する。
【0039】
次に、データベースサーバ100による実数値ベクトルの蓄積に関する処理について説明する。
図7は、実数値ベクトルの蓄積に関する処理の処理手順を説明するフロー図である。フローは、蓄積開始の指示が与えられた時点から開始する。
【0040】
取得部111は、ステップS101で、通信ユニット130を介して、メディアサーバ210、アプリケーションサーバ220等から動作主体の行動履歴に関するワードを収集し、それらを経時に沿って配列した文字列にして取得する。変換部112は、ステップS102で、
図4を用いて説明した主体別変換を実行し、ステップS103で、変換した実数値ベクトルを、動作主体に対応付けて主体別DB121へ記憶、蓄積する。
【0041】
続いて、変換部112は、ステップS104で、
図5を用いて説明したワード別変換を実行し、ステップS105で、変換したそれぞれの実数値ベクトルを、元のワードと対応付けてワード別DB122へ記憶、蓄積する。さらに、変換部112は、ステップS106で、
図6を用いて説明した頻度別変換を実行し、ステップS107で、変換した実数値ベクトルを、動作主体に対応付けて頻度別DB123へ記憶、蓄積する。
【0042】
演算部110は、ステップS108で、蓄積完了の指示を受けたか否かを確認する。蓄積完了の指示を受けていなければ、ステップS101へ戻って蓄積処理を継続する。蓄積完了の指示を受けていれば、一連の処理を終了する。
【0043】
それぞれのデータベースが一定数の実数値ベクトルを蓄積するに至れば、解析サーバ400で実行される行動解析プログラムからの要求コマンドを受け入れることができる。
図8は、行動解析プログラムからの要求に応じて実数値ベクトルを提供する処理の処理手順を説明するフロー図である。フローは、要求コマンドを受け入れることができる状態において、提供部113が行動解析プログラムから要求コマンドを受けた時点で開始される。
【0044】
提供部113は、ステップS201で、要求コマンドが動作主体に対する実数値ベクトルを要求するものであるか否かを確認する。すなわち、主体別DB121に蓄積された実数値ベクトルを要求するものであるか否かを確認する。そのような実数値ベクトルを要求するものであれば、ステップS202へ進み、対象となる実数値ベクトルを主体別DB121から選択して提供し、ステップS203へ進む。そうでなければ、ステップS202をスキップしてステップS203へ進む。
【0045】
提供部113は、ステップS203で、要求コマンドがワードに対する実数値ベクトルを要求するものであるか否かを確認する。すなわち、ワード別DB122に蓄積された実数値ベクトルを要求するものであるか否かを確認する。そのような実数値ベクトルを要求するものであれば、ステップS204へ進み、対象となる実数値ベクトルをワード別DB122から選択して提供し、ステップS205へ進む。そうでなければ、ステップS204をスキップしてステップS205へ進む。
【0046】
提供部113は、ステップS205で、要求コマンドが頻度に対する実数値ベクトルを要求するものであるか否かを確認する。すなわち、頻度別DB123に蓄積された実数値ベクトルを要求するものであるか否かを確認する。そのような実数値ベクトルを要求するものであれば、ステップS206へ進み、対象となる実数値ベクトルを頻度別DB123から選択して提供し、ステップS207へ進む。そうでなければ、ステップS206をスキップしてステップS207へ進む。
【0047】
提供部113は、ステップS207で、すべての要求コマンドを処理したか否かを確認する。未処理の要求コマンドが残っていれば、ステップS201へ戻り、実数値ベクトルを提供する処理を継続する。そうでなければ、一連の処理を終了する。なお、
図7の実数値ベクトルの蓄積に関する処理は、
図8の実数値ベクトルを提供する処理を実行できる状態になった後も継続してもよい。
【0048】
以上説明した本実施形態においては、取得した文字列を変換部112が3つの種類の実数値ベクトルへ変換してそれぞれに対応するデータベースへ記憶する態様を説明したが、変換部112の態様はこれに限らない。1つの種類について変換できるものであってもよいし、3つのうちの2つについて変換できるものであってもよい。また、他の種類の変換を実現するものであってもよい。
【0049】
また、以上説明した本実施形態においては、動作主体を個々の人物として説明したが、動作主体は個々の人物に限らず、人物の集合である集団であってもよく、また、人物に限らず、例えば複数人で利用される乗用車などのモビリティであってもよい。
【符号の説明】
【0050】
100…データベースサーバ、110…演算部、111…取得部、112…変換部、113…提供部、120…記憶部、121…主体別DB、122…ワード別DB、123…頻度別DB、130…通信ユニット、210…メディアサーバ、220…アプリケーションサーバ、230…クレジットカード読取端末、240…電子決済読取スキャナ、250…自動改札装置、300…情報端末、400…解析サーバ、900…インターネット