(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023177712
(43)【公開日】2023-12-14
(54)【発明の名称】レコメンド生成システム、レコメンド生成方法、およびレコメンド生成プログラム
(51)【国際特許分類】
G06Q 50/10 20120101AFI20231207BHJP
【FI】
G06Q50/10
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022090538
(22)【出願日】2022-06-02
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】増田 亮
(72)【発明者】
【氏名】小林 悠一
(72)【発明者】
【氏名】谷本 幸一
(72)【発明者】
【氏名】今井 昭宏
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049CC12
5L049CC35
(57)【要約】
【課題】都市機能の立地に対する価値情報を考慮したレコメンドを可能とする。
【解決手段】第1の場所情報と価値情報とを対応付けた第1のテーブルと、複数の第1の場所情報のうち少なくとも1つ以上を含む第2の場所情報と都市機能とを対応付けた第2のテーブルとを用いて、第1の場所情報と第2の場所情報とを指すグラフのノードを設定し、都市機能を第1の場所情報に接続するノード、価値情報を第2の場所情報に接続するノードとして表現した単一のグラフを構築するグラフ構築処理と、グラフに基づいて、ノード間の相互関係を機械学習手法によりベクトル空間で表現するグラフ学習処理と、第1の場所情報の指定に基づき、第1の場所情報、都市機能、価値情報のノード分散表現ベクトルから経路長を評価することで、ベクトル空間からノード間の経路長を評価し、第1の場所情報に対して、都市機能のレコメンドを生成するレコメンド結果生成処理と、を行う。
【選択図】
図12
【特許請求の範囲】
【請求項1】
プロセッサとメモリとを有したコンピュータにより、場所に対する都市機能の提示を行うレコメンド生成システムであって、
前記プロセッサは、プログラムを実行して、
第1の場所情報と価値情報とを対応付けた第1のテーブルと、複数の第1の場所情報のうち少なくとも1つ以上を含む第2の場所情報と都市機能とを対応付けた第2のテーブルとを用いて、前記第1の場所情報と前記第2の場所情報とを指すグラフのノードを設定し、前記都市機能を前記第1の場所情報に接続するノード、前記価値情報を前記第2の場所情報に接続するノードとして表現した単一のグラフを構築するグラフ構築処理と、
前記グラフに基づいて、ノード間の相互関係を機械学習手法によりベクトル空間で表現するグラフ学習処理と、
前記第1の場所情報の指定に基づき、前記第1の場所情報、前記都市機能、前記価値情報のノード分散表現ベクトルから経路長を評価することで、前記ベクトル空間からノード間の経路長を評価し、前記第1の場所情報に対して、前記都市機能のレコメンドを生成するレコメンド結果生成処理と、
を行うことを特徴とするレコメンド生成システム。
【請求項2】
前記プロセッサは、前記グラフ構築処理において、利用者が有する知識である先見知識の追加指定に基づいて、前記グラフのノード間に先見知識エッジを追加し、当該追加した先見知識エッジの重み情報を、グラフノード間の到達確率を用いた比較によって設定する、
ことを特徴とする、請求項1に記載のレコメンド生成システム。
【請求項3】
前記プロセッサは、前記グラフ学習処理において、前記グラフから特定属性を持つノードを部分グラフとして抽出し、抽出した前記部分グラフから学習データを生成する処理を実行することにより、前記グラフと前記部分グラフの双方から学習データを生成する、
ことを特徴とする、請求項1に記載のレコメンド生成システム。
【請求項4】
プロセッサとメモリとを有したコンピュータにより、場所に対する都市機能の提示を行うレコメンド生成方法であって、
第1の場所情報と価値情報とを対応付けた第1のテーブルと、複数の第1の場所情報のうち少なくとも1つ以上を含む第2の場所情報と都市機能とを対応付けた第2のテーブルとを用いて、前記第1の場所情報と前記第2の場所情報とを指すグラフのノードを設定し、前記都市機能を前記第1の場所情報に接続するノード、前記価値情報を前記第2の場所情報に接続するノードとして表現した単一のグラフを構築し、
前記グラフに基づいて、ノード間の相互関係を機械学習手法によりベクトル空間で表現し、
前記第1の場所情報の指定に基づき、前記第1の場所情報、前記都市機能、前記価値情報のノード分散表現ベクトルから経路長を評価することで、前記ベクトル空間からノード間の経路長を評価し、前記第1の場所情報に対して、前記都市機能のレコメンドを生成する、
ことを特徴とするレコメンド生成方法。
【請求項5】
前記グラフの構築において、利用者が有する知識である先見知識の追加指定に基づいて、前記グラフのノード間に先見知識エッジを追加し、当該追加した先見知識エッジの重み情報を、グラフノード間の到達確率を用いた比較によって設定する、
ことを特徴とする、請求項4に記載のレコメンド生成方法。
【請求項6】
前記グラフの学習において、前記グラフから特定属性を持つノードを部分グラフとして抽出し、抽出した前記部分グラフから学習データを生成する処理を実行することにより、前記グラフと前記部分グラフの双方から学習データを生成する、
ことを特徴とする、請求項4に記載のレコメンド生成方法。
【請求項7】
プロセッサとメモリとを有したコンピュータに、
第1の場所情報と価値情報とを対応付けた第1のテーブルと、複数の第1の場所情報のうち少なくとも1つ以上を含む第2の場所情報と都市機能とを対応付けた第2のテーブルとを用いて、前記第1の場所情報と前記第2の場所情報とを指すグラフのノードを設定し、前記都市機能を前記第1の場所情報に接続するノード、前記価値情報を前記第2の場所情報に接続するノードとして表現した単一のグラフを構築するグラフ構築処理と、
前記グラフに基づいて、ノード間の相互関係を機械学習手法によりベクトル空間で表現するグラフ学習処理と、
前記第1の場所情報の指定に基づき、前記第1の場所情報、前記都市機能、前記価値情報のノード分散表現ベクトルから経路長を評価することで、前記ベクトル空間からノード間の経路長を評価し、前記第1の場所情報に対して、前記都市機能のレコメンドを生成するレコメンド結果生成処理と、
を実行させることを特徴とするレコメンド生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、レコメンド生成システム、レコメンド生成方法、およびレコメンド生成プログラムに関する。
【背景技術】
【0002】
本技術分野の背景技術として、特開2021-135722号公報(特許文献1)がある。この公報には、「関係が疎であるようなソーシャルメディアであっても、分析対象と商品などといった情報項目間の関係を定量し、利用に供することのできる情報処理装置、及びプログラムを提供する。」と記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、都市機能の管理・提供を行う事業者及び自治体などに対して、種々の施設、都市空間などの個別地点に適した都市機能をレコメンドし、都市機能の新規導入または転用を支援する技術が注目されている。
【0005】
本技術を実現する方法の1つとして、地図情報等から都市機能の場所情報を取得し、都市機能間の立地関係性を分析することにより、個別地点に対する周辺都市機能との親和性の高さを基準としてレコメンドを生成するものが考えられる。
【0006】
特許文献1に記載の技術では、ソーシャルメディアの利用者等をノードで、利用者間のソーシャルメディア上での直接的な接続関係をエッジで表現したグラフを構築することにより、直接の接続関係がないノード間を含めた全ノード間の関係性を、機械学習手法を用いて定量化することができる。特許文献1に記載の技術を応用することにより、地点に実施されている都市機能をノードで、所定距離以内に立地する都市機能間をエッジで表現したグラフを構築し、所定の機械学習手法を適用することで、全都市機能間の関係性を間接的に定量化することもできる。さらに、レコメンドの候補となる都市機能と、周辺都市機能との親和性の高さを、推定された全都市機能間の関係性と、レコメンドの対象地点から所定距離以内に存在する都市機能の一覧から算出することもできる。これにより、レコメンドの候補となる全都市機能に対して周辺都市機能との親和性を定量化できることから、都市機能を親和性の高いものから順に並び替えることによって、地点に対する都市機能のレコメンドを生成可能である。
【0007】
しかし、このレコメンド生成形態においては、レコメンド対象地点との親和性算出時に考慮する周辺都市機能の範囲を所定距離としてあらかじめ設定する必要がある。一般に、レコメンドの対象地点と親和性が生じうる周辺都市機能の範囲に関する情報をシステム利用者は持っていないため、妥当な距離設定が難しい。
【0008】
加えて、このレコメンド生成形態においては、機械学習手法への入力となるグラフを、現状の都市機能の空間的な立地関係のみを用いて構築している。そのため、機械学習手法により推定された都市機能間の関係性は、都市機能間の立地相関の強さを示しているにすぎず、都市機能間の関係性を都市機能利用者がどのように評価しているのかという観点は考慮されていない。このことから、本レコメンド生成形態では、周辺都市機能との立地親和性は高いものの都市機能利用者にとって望ましくない都市機能がレコメンドされる可能性がある。これを防ぐためには、都市機能の立地に対する価値情報を考慮することが必要である。
【0009】
本発明は、都市機能の立地に対する価値情報を考慮したレコメンドが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、プロセッサとメモリとを有したコンピュータにより、場所に対する都市機能の提示を行うレコメンド生成システムであって、前記プロセッサは、第1の場所情報と価値情報とを対応付けた第1のテーブルと、複数の第1の場所情報のうち少なくとも1つ以上を含む第2の場所情報と都市機能とを対応付けた第2のテーブルとを用いて、前記第1の場所情報と前記第2の場所情報とを指すグラフのノードを設定し、前記都市機能を前記第1の場所情報に接続するノード、前記価値情報を前記第2の場所情報に接続するノードとして表現した単一のグラフを構築するグラフ構築処理と、前記グラフに基づいて、ノード間の相互関係を機械学習手法によりベクトル空間で表現するグラフ学習処理と、前記第1の場所情報の指定に基づき、前記第1の場所情報、前記都市機能、前記価値情報のノード分散表現ベクトルから経路長を評価することで、前記ベクトル空間からノード間の経路長を評価し、前記第1の場所情報に対して、前記都市機能のレコメンドを生成するレコメンド結果生成処理と、を行うことを特徴とするレコメンド生成システムとして構成される。
【発明の効果】
【0011】
本発明の一態様によれば、都市機能の立地に対する価値情報を考慮したレコメンドが可能な技術を提供することが可能となる。
【図面の簡単な説明】
【0012】
【
図1】実施例のレコメンド生成システムのシステム構成図である。
【
図2】実施例のレコメンド生成システムを実現するためのハードウェア構成図である。
【
図4】実施都市機能のテーブルの例を示す図である。
【
図6A】グラフ構造のテーブル(ノードテーブル)の例を示す図である。
【
図6B】グラフ構造のテーブル(エッジテーブル)の例を示す図である。
【
図8】レコメンド結果のテーブルの例を示す図である。
【
図9】グラフ構築の初期設定を行うための画面の例を示す図である。
【
図10】レコメンド対象地点の設定を行うための画面の例を示す図である。
【
図11】レコメンド結果の表示を行うための画面の例を示す図である。
【
図12】実施例1のレコメンド生成を行うための動作を示すフロー図である。
【
図13】実地例2のグラフ構築の初期設定を行うための画面の例を示す図である。
【
図14】実施例2のレコメンド生成を行うための動作を示すフロー図である。
【
図15】実施例3のグラフ構築の初期設定を行うための画面の例を示す図である。
【
図16】実施例3のレコメンド生成を行うための動作を示すフロー図である。
【発明を実施するための形態】
【0013】
以下、実施例を、図面を用いて説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0014】
すなわち、以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。
【0015】
図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。
【0016】
以下の説明では、「データベース」、「テーブル」、「リスト」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「XXテーブル」、「XXリスト」等を「XX情報」と呼ぶことがある。識別情報について説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いた場合、これらについてはお互いに置換が可能である。
【0017】
同一あるいは同様な機能を有する構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。ただし、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。
【0018】
また、以下の説明では、プログラムを実行して行う処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)および/またはインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主体がプロセッサとされてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部や演算装置であれば良く、特定の処理を行う専用回路(例えばFPGA(Field-Programmable Gate Array)やASIC(Application Specific Integrated Circuit))を含んでいてもよい。
【0019】
プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶資源を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
【実施例0020】
本実施例では、地点に対して周辺都市機能との親和性と価値指標との関係性を同時評価し都市機能をレコメンドするレコメンド生成システムA1100におけるレコメンド生成方法の例を説明する。
【0021】
図1を参照して、本実施例のレコメンド生成システムについて説明する。
レコメンド生成システムA1100は、価値情報DB(Database)A1111、実施都市機能DBA1112、空間構造DBA1113、グラフ構造DBA1114、分散表現DBA1115、レコメンド結果DBA1116、データ自動更新部A1121、グラフ構築部A1122、グラフ学習部A1123、レコメンド結果生成部A1124及び利用者インターフェースA1125を有する。
【0022】
ここで、価値情報DBA1111は、種々の統計値や住民に対して実施するアンケート調査等により入手できる、各エリアに特徴的な価値情報と、その集計エリアを結びつけて保持するためのDBであり、レコメンド生成システムA1100内部で他のDBと紐付けできるよう、全レコードに対し、エリア名称を一意に特定するエリアIDを付す。
【0023】
実施都市機能DBA1112は、地図情報を公開する地図調製業者および公共機関などが公開する、座標および当該座標地点で実施されている都市機能を保持するためのDBであり、レコメンド生成システムA1100内部で他のDBと紐付けできるよう、全レコードに対し、座標地点を一意に特定する地点IDを付す。
【0024】
空間構造DBA1113は、レコメンド生成システムA1100内部で、価値情報DBA1111に含まれるエリアIDと、実施都市機能DBA1112に含まれる地点IDを、都市空間の階層性に基づき紐付けるための情報であり、エリアIDに対応するエリア名称も保持する。
【0025】
グラフ構造DBA1114は、レコメンド結果生成に必要となる、地点、エリア、都市機能、価値情報の各種情報項目を含む単一グラフの構造を記録するための情報であり、ノードテーブルとエッジテーブルから構成される。
【0026】
分散表現DBA1115は、グラフを機械学習手法に入力することで得られる、各グラフノードの特徴を記録するための情報であり、ノードIDと、グラフノードの特徴を高次元の実数ベクトルで表現した分散表現を保持する。
【0027】
レコメンド結果DBA1116は、ノード分散表現から地点、都市機能、価値情報の関係性を、経路長を用いて評価した結果を記録するための情報であり、都市機能、その経路長に加えて、経路長を算出するために用いる種々の情報も保持する。
【0028】
データ自動更新部A1121は、本システムで用いる情報を更新するための機能であり、ローカルネットワークやインターネットなどのネットワークA1300を経由してデータを収集し、価値情報DBA1111、実施都市機能DBA1112、空間構造DBA1113に情報を登録する。
【0029】
グラフ構築部A1122は、レコメンド生成に必要な地点、エリア、都市機能、価値情報の接続関係を表現した単一グラフを構築することで、機械学習手法による関係性定量化を可能にするための機能であり、価値情報DBA1111、実施都市機能DBA1112、空間構造DBA1113を用いてグラフ構築処理を行い、結果をグラフ構造DBA1114に出力する。グラフ構築における初期設定は、
図9、
図13または
図15で示すような画面を用いて、システム利用者が実施する。
【0030】
グラフ学習部A1123は、グラフ構築部A1122が構築したグラフから、全ノードに対して分散表現を得るための機能である。グラフ構造DBA1114を入力とし、機械学習手法を適用して分散表現を学習し、結果を分散表現DBA1115に出力する。
【0031】
レコメンド結果生成部A1124は、分散表現DB1115を入力とし、地点と、都市機能と、価値情報との関係性をベクトル空間における経路長を用いて評価するための機能である。周辺都市機能との親和性と、価値情報との関係性を考慮した地点に対する都市機能の評価結果をレコメンド結果DBA1116に出力する。
【0032】
利用者インターフェースA1125は、利用者端末A1200から情報を受信すると、そのデータをレコメンド生成システムA1100のグラフ構築部A1122、グラフ学習部A1123およびレコメンド結果生成部A1124に送信する。
【0033】
利用者端末A1200は、レコメンド生成システムA1100に対して、利用者が設定を行うための端末であり、例えば、PCや携帯電話等を含む。利用者はこの端末を利用してレコメンド生成システムA1100に接続する。
【0034】
図2を参照して、実施例を実現するためのハードウェア構成について説明する。
図2に示すハードウェア構成は、レコメンド生成システムA1100、利用者端末A1200を実施するためのハードウェア構成H2000である。
【0035】
ハードウェアは、中央処理装置H2002と主記憶装置H2003と内部バスH2004とバスI/FH2005と外部バスH2006と画面出力装置I/FH2007とユーザ入力装置I/FH2008と大容量記憶装置H2009と通信装置I/FH2010と入出力装置I/FH2011から構成される。
【0036】
中央処理装置H2002は、プログラム実行等の演算を行うための装置であり、例えば
図1のレコメンド生成システムA1100のグラフ構築部A1122、グラフ学習部A1123、レコメンド結果生成部A1124の動作を実現するために用いられる。
【0037】
主記憶装置H2003は、プログラム実行時の処理領域および、データの一時格納領域として使用される。例えばOS(Operating System)などの基本プログラムや、レコメンド生成システムA1100、利用者端末A1200が持つプログラムや一時情報といったそれぞれの機器における処理を実現するためのプログラム及び一時情報を一時的に格納する。
【0038】
中央処理装置H2002と主記憶装置H2003は、内部バスH2004により接続されており、内部バスH2004はバスI/FH2005を介して外部バスH2006に接続されている。
【0039】
外部バスH2006は、画面出力装置I/FH2007、ユーザ入力装置I/FH2008、大容量記憶装置I/FH2009、通信装置I/FH2010、入出力装置I/FH2011と接続されており、これらのI/Fと中央演算処理装置H2002や主記憶装置H2003とのデータ入出力をバスI/FH2005、内部バスH2004を用いて媒介する。
【0040】
画面出力装置I/FH2007は、ディスプレイH2100と接続するためのI/Fであり、外部バスH2006を通じて得た情報をディスプレイH2100に出力する。ディスプレイH2100は、例えば、
図9の設定画面等を表示可能な装置であり、そのほかにも基本プログラムを操作するための情報等が表示できる。
【0041】
ユーザ入力装置I/FH2008は、ユーザ入力装置H2200と接続するためのI/Fであり、外部バスH2006にユーザ入力装置から入力された情報を出力する。ユーザ入力装置はキーボード、マウスなど、ユーザからの入力を受け取るための装置であり、ユーザ入力装置から入力された情報はユーザ入力装置I/FH2008に出力される。
【0042】
大容量記憶装置I/FH2009は、大容量記憶装置H2300と接続するためのI/Fであり、大容量記憶装置からのデータ入出力を外部バスH2006に仲介する。大容量記憶装置は、例えばHDD(Hard Disk Drive)といった装置であり、レコメンド生成システムA1100の機能を実現するための基本プログラムやプログラム実行時処理結果の一時保管情報、レコメンド生成システムA1100、利用者端末A1200といったそれぞれの機器における処理を実現するためのプログラムや、レコメンド生成システムA1100における価値情報DBA1111、実施都市機能DBA1112、空間構造DBA1113、グラフ構造DBA1114、分散表現DBA1115、レコメンド結果DBA1116といった情報を装置の電源を切った状態やプログラム非実行時に保管する。また、各種処理実行の際には中央処理装置H2002が主記憶装置H2003にこれらのプログラムやデータを読み出してプログラムを実行する。大容量記憶装置は、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード及びDVD等の記録媒体でもよい。
【0043】
通信装置I/FH2010は通信装置H2400と接続するためのI/Fであり、通信装置からのデータ入出力を外部バスH2006に仲介する。通信装置は例えばEthernet(登録商標)を介して外部サーバ装置などと接続するための装置であり、レコメンド生成システムA1100の間のネットワークA1300で接続されたシステムとの通信を行える。
【0044】
入出力装置I/FH2011は、入出力装置H2500と接続するためのI/Fであり、入出力装置からのデータ入出力を外部バスH2006に仲介する。入出力装置は外部媒体に読み書き可能なドライブ装置やユーザ認証を行うための指静脈読取装置などである。
【0045】
図3は価値情報DBA1111のテーブルの例を示す。価値情報名T10、上記価値情報と紐づくエリア名称T11、該当エリア名称の価値情報に対する相対評価値を示すスコアT12、エリア名称を一意に特定するためのエリアIDT13、エリアが所属する都道府県T14を含む。このような値を設定することで、例えば「エリア名称:〇〇町」には「価値情報:子育てしやすさ」という価値指標が該当するというように、エリア名称と価値情報を対応させることができる。
図3では、例えば、都道府県「神奈川県」に属するエリアID「1」で識別される「〇〇町」は、「子育てしやすさ」についての上記スコアの値が「10」であることを示している。当該スコアの値は、例えば、アンケート調査により得られた子育てのしやすさをパーセンテージで表した値が設定される。
【0046】
図4は実施都市機能DBA1112のテーブルの例を示す。地点を一意に特定するための地点IDT20、上記地点の場所を特定するための座標T21、上記地点の実施都市機能T22、地点が所属する都道府県T23を含む。このような値を設定することで、例えば「地点ID:1」に対して「実施都市機能:コンビニ」というように、地点と実施都市機能を対応させることができる。例えば、
図4では、都道府県「神奈川県」に属する地点ID「1」で識別される地点の座標は「(36.30,140.46)」であり、「コンビニ」(コンビニエンスストア)があることを示している。
【0047】
図5は空間構造DBA1113のテーブルの例を示す。
図4において定義される地点IDT31、
図3において定義されるエリアIDT32、エリア名称称T33を含む。このような値を設定することで、エリアIDに属する地点IDを検索することができる。
図5では、例えば、都道府県「神奈川県」において、地点ID「1」で識別される地点および地点ID「2」で識別される地点は、エリアID「1」で識別される「〇〇町」に属していることを示している。
【0048】
図6A、6Bはグラフ構造DBA1114のテーブルの例を示す。グラフ構造DBA1114は、グラフの構成要素であるノードとエッジを、それぞれノードテーブルとエッジテーブルとで管理する。
【0049】
図6Aに示すノードテーブルは、グラフを構成するノードの一覧を記録するためのものであり、ノードIDT41、ノード名称T42、ノード属性T43を含む。ノードIDはノードを一意に特定するためのものであり複数のノードに同一のノードIDが設定されることはない。ノード名称はノードが示す情報項目を記載したものであり、複数のノードに同一のノード名称が設定されることもありえる。ノード属性は、ノード名称の示す情報項目の属性を記載したものであり、「価値情報」「都市機能」「地点」「エリア」のいずれかの値をとる。
図6Aでは、例えば、ノードID「1」で識別されるノード名称「住みやすさ」のノードは、ノード属性「価値情報」に属することを示している。
【0050】
図6Bに示すエッジテーブルは、ノード間の接続関係を記録するためのものであり、エッジIDT51、エッジ構成ノードT52を含む。また、エッジの接続の強さの程度に関する情報が入手できる場合は、エッジテーブルにエッジ重みT53に数値を設定することで、上記情報を表現することができる。
図6Bでは、例えば、エッジID「2」で識別されるエッジは、ノードID「3」で識別されるノードとノードID「4」で識別されるノードとの接続関係を記録したものであり、エッジ重みは設定されていないことを示している。
【0051】
図7は分散表現DBA1115のテーブルの例を示す。
図6Aにおいて定義されるノードIDT61、当該ノードIDの特徴を高次元の実数ベクトルで表現する情報である分散表現T62を含む。
図7では、例えば、ノードID「1」で識別されるノードは、分散表現(20.73,28.56,20.85,…)で表されることを示している。
【0052】
図8はレコメンド結果DBA1116のテーブルの例を示す。レコメンド候補である都市機能T71、当該都市機能の評価結果である経路長T72および経路長を算出するために用いる情報T73およびT74を保持する。
図8では、例えば、都市機能「スーパー」の評価結果は、経路長「89.87」として表されることを示している。また、当該経路長は、後述する所定の経路長を算出するための計算式に用いられるパラメータd(p,f)とd(f,v)は、それぞれ、「16.35」、「73.52」で表されることを示している。
【0053】
図9はグラフ構築部A1122の設定を行うための初期設定画面を示す。設定画面W10の中に対象都道府県を選択するための画面W11と、導入する価値情報を選択するための画面W12と、画面W11および画面W12の選択内容に応じてグラフをプレビューするための画面W13を持つ。システム利用者は、この画面を用いて1つの対象都道府県と1つ以上の価値情報を選択できるほか、画面W11および画面W12の設定情報に応じて生成されるグラフのサンプルを画面W13で確認することができる。画面W13に表示される情報は、後述する
図12に示すS130~S150の処理を行うことにより表示することができる。この例では、都道府県「神奈川県」に属するエリアについて、「子育てしやすさ」、「歩き回りやすさ」、「にぎやかさ」等の価値情報を選択したときに、
図3に示した価値情報DBA1111、
図4に示した実施都市機能DBA1112、
図5に示した空間構造DBA1113を読み出して、後述のようなグラフを構築することで、「地点」、「都市機能」、「価値指標」すべての接続関係を表現する単一グラフを構築することができる。また、
図9では、価値情報「子育てしやすさ」とエリア名称「××商店街」とは、ノード間の関係性が高いため、他のノードよりも高い重み値「30」が設定されたことを示している。
【0054】
従来は、例えば、「都市機能」と「価値指標」の関係性を表現したグラフは構築することができたが、地点固有の情報が欠落し、多くの地点で同じ都市機能をレコメンドすることになってしまっていた。しかし、本実施例では、地図グラフは、「空間」、「都市機能」を固定し、かつ価値情報が入っていないグラフと解釈したうえで、都市空間を媒介した価値指標・都市機能の依存特性に着目したグラフ構築している。つまり、「都市機能」、「価値情報」が共に空間を媒介して影響しあう関係にあると捉えることにより、「空間」と「都市機能」とを分離し、さらに「価値情報」を「空間」に紐付けたグラフ表現を実現することができる。
【0055】
図10はレコメンド結果生成部A1124の設定を行うためのレコメンド地点設定画面を示す。設定画面W20の中にレコメンドの対象地点を選択するための画面W21と、レコメンド時に評価対象とする価値指標および各価値指標の重要度を設定するための画面W22と、画面W21および画面W22の設定情報に応じて各情報項目間の関係性を可視化するための画面W23とを持つ。システム利用者は、この画面を用いて1つのレコメンドの対象地点と、1つ以上の価値情報を選択できるほか、選択した価値指標の重要度を数値で設定することができる。また、画面W11および画面W12の設定情報に応じて可視化される地点・都市機能・価値指標間の相互関係性を画面W23で確認することができる。画面W23に表示される情報は、後述する
図12に示すS170の処理を行うことにより表示することができる。
【0056】
図11はレコメンド結果生成部A1124の出力結果を可視化するための結果表示画面を示す。設定画面W30の中に都市機能レコメンド結果を表示するための画面W31と、周辺都市機能との関係を可視化するための画面W32とを持つ。システム利用者は、この画面を用いて設定画面W20で設定した地点に対する都市機能レコメンド結果を確認できるほか、対象地点に都市機能を導入した場合の周辺都市機能との関係性の可視化結果を確認することができる。画面W32に表示される情報は、後述する
図12に示すS180の処理を行うことにより表示することができる。
【0057】
図12を参照して、実施例1における都市機能のレコメンドを行うための動作について説明する。
【0058】
ステップS110は、データベースの読み出し範囲を決定するために、システム利用者から対象都道府県と導入価値情報の入力を受け付ける動作であり、グラフ構築部A1122が、利用者端末A1200から利用者I/FA1125を介して送信された画面W11および画面W12から、対象都道府県情報と対象価値情報を読み出す。
【0059】
ステップS120は、データベースからレコメンド生成に要するデータを取得するために、複数データベースから対象都道府県のレコードを検索し、読み出しを行う動作である。グラフ構築部A1122が、価値情報DBA1111の価値情報名T10が対象価値情報と一致し、かつ都道府県T14が対象都道府県情報と一致するレコードを検索し、読み出す。次に、実施都市機能DBA1112の都道府県T23が対象都道府県情報と一致するレコードと、空間構造DBA1113の都道府県T34が対象都道府県情報と一致するレコードとを検索し、該当するレコードをそれぞれ読み出す。
【0060】
ステップS130は、グラフ構築部A1122が地点・都市機能・価値情報の相互関係を表現したグラフを構築するために、グラフを構成するノードおよびエッジを決定する動作であり、ステップS131から始まる複数の動作で構成される。
【0061】
ステップS131は、グラフを構成するノードを作成するための動作であり、ステップS120にて価値情報DBA1111、実施都市機能DBA1112、空間構造DBA1113から読み出されたレコードを用いてノードを構成する情報項目と、ノード名称と、ノード属性とを決定し、グラフ構造DBA1114のノードテーブルに登録する。
【0062】
具体的には、価値機能DBA1111より読み出されたレコードを、ノード名称に価値情報名T10を設定したノードに変換し、ノード属性として「価値情報」の値を設定する。価値機能DBA1111より読み出されたレコードを、ノード名称がエリアIDT13のノードに変換し、ノード属性として「エリア」を設定する。また、実施都市機能DBA1112より読み出されたレコードを、ノード名称が地点IDT20のノードに変換し、ノード属性として「地点」を設定する。次に、実施都市機能DBA1112より読み出されたレコードから、実施都市機能T22に設定されている値のリストを作成し、リスト内で重複する要素を削除する。続いてリストの要素をノードに変換し、ノード属性として「都市機能」を設定する。ここまでの動作により作成されたノード名称とノード属性の情報をグラフ構造DBA1114に登録し、グラフ構造DBA1114の全レコードに対して固有のノードIDT41を採番し、ステップS131を終了する。
【0063】
ステップS132は、ノード属性が「価値情報」と「エリア」のノード間にエッジを設定する動作である。ステップS120にて読み出された価値情報DBA1111を参照し、全てのレコードに対して、当該レコードの価値情報名T10とエリアIDT13の指すノードをグラフ構造DBA1114のノードテーブルより特定し、特定した2ノード間にエッジを設定する動作を繰り返す。次に、上記動作により特定されたエッジ構成ノードをグラフ構造DBA1114のエッジテーブルに登録し、ステップS132を終了する。
【0064】
ステップS133は、ステップS132にて設定したエッジに対して、重み情報を設定する動作である。ステップS132にて設定したエッジが接続する関係について、その接続の強さの程度に関する情報が入手できる場合、その情報をエッジ重みとして設定する。例えば、上述したスコアT12の値が所定のしきい値以上である場合、ノード間の関係性が高いと判断し、重み情報を設定することができる。接続の強さの程度に関する情報が入手できないエッジは、エッジ重みを設定しないこともできる。
【0065】
ステップS134は、ノード属性が「エリア」と「地点」のノード間にエッジを設定する動作である。ステップS120にて読み出された空間構造DBA1113を参照し、全てのレコードに対して、当該レコードの地点IDT31とエリアIDT13の指すノードをグラフ構造DBA1114のノードテーブルより特定し、特定した2ノード間にエッジを設定する動作を繰り返す。次に、上記動作により特定されたエッジ構成ノードをグラフ構造DBA1114のエッジテーブルに登録し、ステップS134を終了する。
【0066】
ステップS135は、ノード属性が「地点」のノード間にエッジを設定する動作である。ステップS120にて読み出された実施都市機能DBA1112のレコードを入力とし、レコードに含まれる座標T21から「地点」属性のノード間の隣接を判断し、隣接関係を有するノード間にエッジを設定する。上記の座標からエッジを設定する処理は、例えば近傍グラフ(Nearest Neighbor Graph)等の一般的手法を用いて行うことができる。
【0067】
ステップS136は、ノード属性が「地点」と「都市機能」のノード間にエッジを設定する動作である。ステップS120にて読み出された実施都市機能DBA1112を参照し、全てのレコードに対して、当該レコードの地点IDT20と実施都市機能T22の指すノードをグラフ構造DBA1114のノードテーブルより特定し、特定した2ノード間にエッジを設定する動作を繰り返す。次に、上記動作により特定されたエッジ構成ノードをグラフ構造DBA1114のエッジテーブルに登録し、ステップS136を終了する。
【0068】
ステップS140、ステップS150は、グラフ学習部A1123が、機械学習手法の1つであるグラフ埋め込み手法を適用することにより、グラフからノードの分散表現を取得するための動作である。グラフ構造から分散表現を得るための方法は、例えばGrover and Leskovec,“node2vec: Scalable Feature Learning for Networks”, Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining, 2016.に開示されている方法等を用いることができる。
【0069】
グラフ埋め込み手法は、一般に、グラフのノードを一定の規則に従ってサンプリングする処理と、サンプリング結果からノード分散表現を計算する処理の2つを、この順で実行することで、グラフから分散表現の抽出を可能とする。本開示の実施例では、グラフ構造DBA1114からグラフ情報を読み出し、ステップS140にてグラフのノードをサンプリングし、ステップS141にてサンプリング結果からノード分散表現を計算する処理を実施する。続いて、計算されたノード分散表現を分散表現A1115に記録する。
【0070】
ステップS160は、レコメンド対象地点および導入する価値情報の入力を受け付ける動作であり、レコメンド結果生成部A1124が、利用者端末A1200から利用者I/FA1125を介して送信された画面W21およびW22の設定情報を読み出す。
【0071】
ステップS170は、レコメンド結果生成部A1124が、レコメンド候補の都市機能のうちレコメンド結果DBA1116に登録されていない都市機能について、レコメンド地点における評価値を計算するための動作である。本開示では、分散表現DBA1115に記録されたノードの分散表現ベクトルを入力とし、ベクトル空間において、複数のノードをたどったときの移動距離に相当する経路長を計算し、都市機能の評価値とする。
【0072】
本開示における経路長の計算式は、例えば、以下の式(1)である。
【0073】
【0074】
ただし、d(x,y)は、ベクトル空間においてノードxの分散表現ベクトルとノードyの分散表現ベクトルがつなぐ線分の長さを表す関数であり、pはノード属性が「地点」である任意のノード、fはノード属性が「都市機能」である任意のノード、vはノード属性が「価値情報」である任意のノードを示す。
【0075】
式(1)は、地点、都市機能、価値情報の任意のノードを入力とし、「地点」属性のノードから、「都市機能」属性のノードを経由し、「価値情報」のノードに移動したときの経路長Lを算出する。
【0076】
式(1)の第1項は、対象地点と都市機能との親和性の高さを表し、親和性が高いほど小さい値をとる。
【0077】
式(1)の第2項は、都市機能と価値情報との関係性の強さを表し、関係性が強いほど小さい値をとる。
【0078】
式(1)の第2項に含まれるλは調整パラメータであり、その値には画面W22の指標重要度を用いることができる。上記調整パラメータは、対象地点と都市機能との親和性の高さを示す第1項と、都市機能と価値情報との関係性の強さを示す第2項の重み付けを調整することができる。
【0079】
式(1)を用いることで、レコメンド候補の任意の都市機能に対して、レコメンド対象地点の機能との親和性と、価値指標との関係性を同時に考慮し、評価値を算出することができる。
【0080】
式(1)は評価情報として1つのみを考慮しているが、複数の価値指標を考慮することも可能である。その場合、式(1)は式(2)で置き換えることもできる。
【0081】
【0082】
ただし、nは考慮する価値指標の数、viはi(iはn以下の自然数)番目の価値情報ノードの分散表現ベクトルである。
【0083】
式(2)の第2項は、都市機能と考慮するすべての価値情報との関係性の強さの和を表す。λiはi番目の価値情報に対する調整パラメータであり、本パラメータの値により各価値情報間の重要度の重み付けを調整することができる。
【0084】
都市機能と、算出された経路長と、d(p,f)とd(f,v)の値をレコメンド結果DBA1116に記録し、ステップS170を終了する。
【0085】
ステップS171は、レコメンド結果生成部A1124が、レコメンド候補となる全都市機能に対してステップS170で示す経路長算出が完了しているかを判断する動作であり、全都市機能に対して経路長がレコメンド結果DBA1116に記録されている場合(ステップS171;Yes)、ステップS180に進み、そうでない場合(ステップS171;No)、ステップS170に戻る。
【0086】
ステップS180は、レコメンド結果生成部A1124が、レコメンド結果DBA1116を入力とし、都市機能を経路長の短い順に並べ替え、結果を利用者I/FA1125を経由して利用者端末A1200に送信する動作である。利用者端末A1200は、結果表示画面W30の中の画面W31を用いて、レコメンド結果をシステム利用者に提示する。例えば、
図10の画面W21において選択された地点1について、上述した経路長Lを総合マッチ度、上述したd(p,f)を現状マッチ、上述したd(f,v)を価値マッチとして、それぞれ提示する。
【0087】
このとき、レコメンド結果生成部A1124は分散表現DBA1115に記録されている「都市機能」属性のノード間の関係性を、ノード間距離を用いて算出することもでき、結果表示画面W30の中の画面W32にて地図上に可視化することもできる。
【0088】
システム利用者の便宜を図るため、ステップS110において、画面W11および画面W12の選択内容に応じて、即時的に構築されるグラフのプレビューを画面W13に表示することもできる。
【0089】
また、ステップS160において、画面W12および画面W12の選択内容に応じて、即時的にステップS170およびステップS171を実行し、地点、都市機能、価値情報間の分散表現ベクトルおよび経路長の可視化を画面W23に表示することもできる。このとき、高次の分散表現ベクトルを画面上に可視化するために、例えばVan der Maaten and Hinton, “Visualizing data using t-SNE”, Journal of machine learning research, 2008.に開示されている次元削減アルゴリズムt-SNE(t-Distributed Stochastic Neighbor Embedding)等を用いることができる。
実施例1では、グラフ構築はデータベースの情報に基づき実施することとしていた。しかし、データベースには含まれないがグラフ構築に活用可能な知識をシステム利用者が保有していることも考えられる。
本実施例では、システム利用者が保有する知識を先見知識エッジとして反映することができ、また先見知識エッジの重み情報を自動決定することができるレコメンド生成システムの例を説明する。
チェックボックスW432は、設定領域W431にて設定を行ったエッジに対する重み情報を、レコメンド生成システムA1100が自動設定するか否かを設定するためのチェックボックスである。システム利用者がチェックボックスW432を用いてエッジの重み情報を自ら設定することを希望した場合、入力領域W433を用いてエッジの重み情報を入力することができる。
画面W43で各種情報の設定を行った後、ボタンW434を押下することで、設定情報はグラフ構築部A1122に送信される。グラフ構築部A1122は、グラフ構造DBA1114のエッジテーブルに、画面W43で設定された各種情報を登録する。
システム利用者は、画面W43の設定情報に応じて追加されるエッジ1301を含むグラフのサンプルを画面W44で確認することができる。
ステップS237は、グラフ構築部A1122が、システム利用者の先見知識が追加されているかを判断するための動作であり、画面W43にて利用者から先見知識の入力を受け付けている場合(ステップS237;Yes)、ステップS2371に進み、そうでない場合(ステップS237;No)、ステップS230に含まれる一連の処理を終了する。
ステップS2371は、グラフ構築部A1122が、DBには含まれていないシステム利用者の先見知識をグラフに反映するための動作である。システム利用者から画面W43が受け付ける特定ノード間の関係性に関する先見知識情報をもとに、当該ノードをグラフ構造DBA1114から特定し、当該ノード間にエッジを設定する。次に、エッジおよびその構成ノードをグラフ構造DBA1114のエッジテーブルに登録し、ステップS238を終了する。
ステップS2372は、グラフ構築部A1122が、システム利用者がステップS2371にて追加したエッジの重み情報の自動設定を希望しているかを判断するための動作であり、画面W43のチェックボックスW432にて自動設定を希望している場合は(ステップS2372;Yes)、ステップS2373に進み、そうでない場合(ステップS2372;No)、ステップS230に含まれる一連の処理を終了する。
ステップS2373は、グラフ構築部A1122が、ステップS2371にて追加したエッジの重み情報を自動設定するための動作である。エッジの重み情報の自動設定では、先ず、ステップS236までで構築されたグラフから、全ノード間の相互到達確率を算出する。ノード間の相互到達確率は、当該グラフのノードを状態、エッジ重みを遷移確率としたマルコフ過程を考え、マルコフ過程の定常状態を導出する一般的方法を適用することで、求解可能である。
次に、ステップS2371にて追加されたエッジを構成する2つのノードの属性を取得し(例えば、「都市機能」と「価値情報」など)、その属性を持つノード間のすべての組み合わせを列挙する(例えば、「都市機能」の属性を持つノードと「価値情報」の属性を持つノードの組み合わせ)。さらに、上記動作により列挙したノード組み合わせのうち、ノード間の到達確率が最も高いノード組み合わせを、求解したノード間の相互到達確率より参照して特定する。特定したノード組み合わせにおけるノード間の相互到達確率と、先見知識エッジを構成するノード間の相互到達確率が等しくなるよう、先見知識エッジの重み情報を設定する。
ステップS2373の動作により、先見知識が存在するノード間関係性が、他の比較可能なノード間関係性と比較して最も重要であるということを、相互到達確率を通して保証することができる。