以下、実施形態について、添付の図面を参照しながら詳しく説明する。
本発明の実施形態に係る位置基盤情報探索方法は、以下で説明するサーバのようなコンピュータ装置によって実現されてよい。このとき、コンピュータ装置においては、本発明の一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されるコンピュータプログラムの制御にしたがって本発明の実施形態に係る位置基盤情報探索方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合して商品推薦方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録されてよい。
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図1のように限定されることはない。また、図1のネットワーク環境は、本実施形態に適用可能な環境の一例を説明したものに過ぎず、本実施形態に適用可能な環境が図1のネットワーク環境に限定されることはない。
複数の電子機器110、120、130、140は、コンピュータシステムによって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、図1では、電子機器1(110)の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器1(110)は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータシステムのうちの1つを意味してよい。
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140にサービス(一例として、ソーシャルネットワークサービス、メッセージングサービス、検索サービス、メールサービス、コンテンツ提供サービスなど)を提供するシステムであってよい。サーバ160も、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第2サービスを提供するシステムであってよい。
図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器110、120、130、140それぞれやサーバ150、160それぞれは、図2に示されたコンピュータ装置200によって実現されてよく、一実施形態に係る商品推薦方法は、このようなコンピュータ装置200によって実現される商品推薦システムによって実行されてよい。
このようなコンピュータ装置200は、図2に示すように、メモリ210、プロセッサ220、通信インタフェース230、および入力/出力インタフェース240を含んでよい。メモリ210は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記録装置は、メモリ210とは区分される別の永続的記録装置としてコンピュータ装置200に含まれてもよい。また、メモリ210には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ210とは別のコンピュータ読み取り可能な記録媒体からメモリ210にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD−ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信インタフェース230を通じてメモリ210にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク170を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置200のメモリ210にロードされてよい。
プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信モジュール230によって、プロセッサ220提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
通信インタフェース230は、ネットワーク170を介してコンピュータ装置200が他の装置(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御にしたがってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データ、ファイルなどが、ネットワーク170を経てコンピュータ装置200の通信インタフェース230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどは、プロセッサ220やメモリ210に伝達されてよく、ファイルなどは、コンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、またはマウスなどの装置を、出力装置は、ディスプレイやスピーカなどのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250は、コンピュータ装置200と1つの装置で構成されてもよい。
また、他の実施形態において、コンピュータ装置200は、図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバやデータベースなどのような他の構成要素をさらに含んでもよい。
図3は、本発明の一実施形態における、位置基盤情報探索方法の例を示したフローチャートである。本実施形態に係る位置基盤情報探索方法は、一例として、上述したサーバ150を実現するコンピュータ装置200によって実行されてよい。例えば、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと少なくとも1つのプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがって図3の方法に含まれる段階310〜350をコンピュータ装置200が実行するようにコンピュータ装置200を制御してよい。
段階310で、コンピュータ装置200は、登録されたPOIを種類別に分類するための、または登録されたPOIに連係されたコンテンツを種類別に分類するための複数のドメインを含むマルチ−ドメインを定義してよい。本実施形態において、マルチ−ドメインとは、ユーザの現在地と関連のある様々な情報を提供するために情報を分類したカテゴリであってよく、一例として「グルメ店」、「カフェ/デザート」、「居酒屋/バー」、「デリバリー」、「観光スポット」、「カルチャー」、「テーマ」、「趣味」、「予約/イベント」などのような多様なドメインを含んでよい。言い換えれば、コンピュータ装置200は、このような複数のドメインを含むマルチ−ドメインを予め定義してよく、以下で説明するように、ユーザの地理的位置情報と関連し、予め定義したマルチ−ドメインそれぞれまたはユーザに対して設定される地理的検索領域に対して選定される主要ドメインのためのPOIおよび/またはPOIに連係されたコンテンツをユーザに提供することにより、特定のドメインのサービスに対するサブサービスとして位置情報を活用するのではなく、ユーザ周辺の多様な情報やトレンドなどを提供したりユーザが位置する地域に特化した主要ドメインの情報を提供したりすることのできる周辺探索サービスをユーザに提供することが可能となる。一方、POIの登録時、POIそれぞれの地理的位置と対応するPOIとが連係されて登録されるようになるため、コンピュータ装置200では登録されたPOIそれぞれの地理的位置が識別することが可能となる。
段階320で、コンピュータ装置200は、ユーザの端末から地理的位置情報を受信してよい。ここで、ユーザの端末は、一例として、上述した複数の電子機器110、120、130、140のうちのいずれか1つであってよく、サーバ150を実現するコンピュータ装置200が提供する周辺探索サービスをネットワーク170を介して受信する主体であってよい。ここで、地理的位置情報とは、ユーザがその周辺の総合的な情報提供を望む座標や場所または領域であってよく、好ましくは、ユーザの現在地に基づいてユーザ端末のGPSによって提供されるGPS座標であってよい。例えば、コンピュータ装置200は、ネットワーク170を介してユーザの端末からGPS座標を地理的位置情報として受信してよい。
地理的位置情報は、一例として、ユーザの端末が上述した周辺探索サービスを実行させることによる応答して、ユーザの端末からコンピュータ装置200に送信されてよい。より具体的な例として、検索サービスを提供するページ上に、周辺探索サービスを実行させるためのアイコンやバナーまたはリンクを表示してよい。この場合、ユーザは、表示されたアイコンやバナーまたはリンクを介して検索サービスで周辺探索サービスを実行させてよく、ユーザの端末にインストールされたアプリケーションは、周辺探索サービスの実行に応答して地理的位置情報をコンピュータ装置200に送信してよい。他の例として、モバイル環境で仮想キーボードと連係させて周辺探索サービスを実行させるためのアイコンやバナーまたはリンクを表示してもよい。また他の例として、検索サービスの検索結果上に周辺探索サービスを実行させることのできるアイコンやバナーまたはリンクを表示してもよい。さらに他の例として、検索サービスにおいて、ユーザが位置と関連のある検索語によって検索を要求した場合、特に、検索語の位置がユーザのGPS座標と近隣する場合にはユーザに周辺探索のニーズがあると判断し、自動的に周辺探索サービスを実行させるようにしてもよい。
段階330で、コンピュータ装置200は、受信した地理的位置情報に基づいて地理的検索領域を決定してよい。地理的検索領域は、ユーザの検索空間(search space)を1次的に制限するための手段であって、一例として、受信したGPS座標を中心にどこまでの地理的範囲(一例として、半径1kmや半径100mなど)を検索のための領域として設定するかに関する情報を意味してよい。例えば、都心と田舍とでは一定の地理的範囲内に存在するPOIの数が異なる。都心では相対的に狭い地理的範囲に多数のPOIが密集しているが、田舍では同じ地理的範囲内であっても相対的に少ないPOIが存在するはずである。したがって、コンピュータ装置200は、受信した地理的位置情報に適した数の探索候補(POIまたはPOIと連係されたコンテンツ)を抽出するために、適した地理的検索領域を決定すべき必要がある。
一実施形態として、コンピュータ装置200は、段階330で受信した地理的位置情報によって決定される地理的領域内のPOI数に基づいて地理的検索領域を決定してよい。例えば、コンピュータ装置200は、受信した地理的位置情報を中心に予め設定された半径の領域を確認した後、確認された領域に含まれるPOIの数を確認してよい。この後、コンピュータ装置200は、適切な数のPOIが抽出されるように、確認された地理的領域を拡張(または縮小)してよい。より具体的な例として、コンピュータ装置200は、受信した地理的GPS座標を中心に半径10m内の範囲を地理的領域として決定したとする。このとき、コンピュータ装置200は、登録されたPOIのうちで決定された地理的領域に含まれるPOIの数を確認し、確認されたPOIの数が予め設定された数未満の場合には地理的領域を拡張してよい。地理的領域の拡張によってPOIの数は増加するため、コンピュータ装置200は、該当の地理的領域に含まれたPOIの数が予め設定された数以上になるまで地理的領域を拡張してよい。このとき、拡張した地理的領域に含まれるPOIの数が予め設定された数以上となった場合、拡張した地理的領域を地理的検索領域として決定してよい。他の例として、コンピュータ装置200は、地理的領域内のPOIの数に基づいて地理的領域のPOI密集度を計算してよく、計算されたPOI密集度が予め設定された密集度以上になるまで地理的領域を徐々に拡張してもよい。POI密集度は、単位面積に含まれたPOIの数に基づいて計算されてよい。地理的検索領域を決定するための他の実施形態については、図4を参照しながらさらに詳しく説明する。
一方、より精密な情報探索のために、ユーザの検索空間を、地理的位置ではなく他の情報によって追加で制限しもよい。一例として、男性ユーザに女性専用サービスを提供するPOI情報を提供することは効果的であるとは言えない。このような点を考慮した上で、ユーザにより適した情報を提供するためにユーザの検索空間を追加で制限してよい。このような検索空間の追加制限は、POIに対して抽出されるPOIコンテキストとユーザに対して抽出されるユーザコンテキストを利用して実行されてよい。ユーザの検索空間を制限する方法については、図5を参照しながらさらに詳しく説明する。
段階340で、コンピュータ装置200は、地理的検索領域内に位置するPOIに基づいてマルチ−ドメインのうちから地理的検索領域のための少なくとも1つの主要ドメインを選定してよい。例えば、コンピュータ装置200は、登録されたPOIのうち、段階330で決定された地理的検索領域内に位置するPOIの情報を分析して地理的検索領域に対する主要ドメインを選定してよい。例えば、地理的検索領域内に人気度が相対的に高いグルメ店が多数分布されている、いわば飲食店のホットプレイスの場合には、「グルメ店」ドメインがこの地理的検索領域の主要ドメインとして選定されてよい。他の例として、地理的検索領域内に多数の古宮(ancient palace)や有名観光地が存在する場合には、「観光スポット」ドメインが地理的検索領域の主要ドメインとして選定されてよい。実施形態によっては、1つの地理的検索領域に対して2つ以上の主要ドメインが選定されてもよい。例えば、定義したマルチ−ドメインが含む複数のドメインのうちの2つ以上またはすべてが、主要ドメインとして選定されてもよい。
段階350で、コンピュータ装置200は、地理的検索領域内に位置するPOIのうちから主要ドメインとして分類されたPOIを抽出してよい。例えば、「グルメ店」ドメインが主要ドメインとして選定された場合、地理的検索領域内に位置するPOIのうちから飲食店に分類されるPOIが抽出されてよい。他の例として、主要ドメインとして「グルメ店」、「カフェ/デザート」、「居酒屋/バー」、「デリバリー」、「観光スポット」、「カルチャー」、「テーマ」、「趣味」、「予約/イベント」のように複数のドメインが選定された場合、選定された複数の主要ドメインそれぞれに対して地理的検索領域内のPOIが抽出されてよい。このとき、1つのPOIが複数のドメインのために重複して抽出されてもよい。例えば、特定の飲食店に対するPOIが「グルメ店」ドメインに対して抽出されると同時に、「デリバリー」ドメインに対しても、さらには「予約/イベント」ドメインに対しても抽出されてよい。言い換えれば、1つのPOIが複数のドメインに分類されてもよい。
段階360で、コンピュータ装置200は、抽出したPOIの情報または抽出したPOIと連係されたコンテンツの情報を、対応する主要ドメインと連係させて提供してよい。例えば、「グルメ店」ドメインとして分類されたPOIに関する情報は、「グルメ店」ドメインと連係させて提供してよい。このとき、抽出されたすべてのPOI情報を提供する必要はなく、抽出したPOIのうちの少なくとも一部のPOIの情報または少なくとも一部のPOIと連係されたコンテンツの情報が提供されてよい。このような情報の制限は、上述した検索空間の追加制限によって実行されてよい。このように、コンピュータ装置200は、ユーザの地理的位置情報に基づいた周辺情報を、予め定義したマルチ−ドメインそれぞれに対して、またはユーザの地理的検索領域に対して選定された主要ドメインに対して提供することが可能となる。したがって、ユーザは、現在地のようにユーザが望む位置に関する周辺情報を、上述した「グルメ店」、「カフェ/デザート」、「居酒屋/バー」、「デリバリー」、「観光スポット」、「カルチャー」、「テーマ」、「趣味」、「予約/イベント」などのように予め定義された複数のドメインそれぞれに対して受信したり、現在地域の特徴が示された主要ドメインに対するPOIの情報および/またはコンテンツの情報を受信したりすることが可能となる。言い換えれば、特定のドメインのためのサービスで位置情報を活用することで特定のドメインのためのサービスの付加的なサブサービスを提供するのではなく、上述したように、ユーザ周辺の多様な情報やトレンドなどを提供するための実質的な周辺探索サービスを提供することが可能となる。
上述したように、実施形態によっては、定義したマルチ−ドメインが含む複数のドメインすべてを主要ドメインとして活用してもよく、この場合には段階340は省略してよい。また、段階350で、コンピュータ装置200は、地理的検索領域内に位置するPOIを定義したマルチ−ドメインそれぞれに対して抽出してよく、段階360で、コンピュータ装置200は、定義したマルチ−ドメインそれぞれに対して抽出されたPOIの情報または抽出されたPOIと連係されたコンテンツの情報を、定義したマルチ−ドメインそれぞれに対して提供してよい。
図4は、本発明の一実施形態における、地理的検索領域を決定する例を示した図である。地理的検索領域を決定するために、図3を参照しながら説明したコンピュータ装置200は、検索のための地理的検索領域全体を予め設定された大きさの単位を有する複数のグリッドに分割したグリッド情報を管理してよい。例えば、韓国全域を対象とする周辺探索サービスを提供しようとする場合、コンピュータ装置200は、韓国全域を地理的検索領域全体として定義し、韓国全域を、一例として、20メートル単位のグリッドに分割してグリッド情報を生成および管理してよい。図4の実施形態では、グリッドのうちの一部として、6×6のサイズを有する合計36枚のグリッドで構成されたマトリックスを示している。
このとき、ユーザの端末から受信した地理的位置情報が、図4に表示された星印を示す座標を含むと仮定する。座標は、図4のマトリックスにおいて、(4,4)グリッドに含まれている。このとき、コンピュータ装置200は、受信した位置情報に対応するグリッドである(4,4)グリッドを地理的領域として抽出してよく、(4,4)グリッドによる地理的領域に含まれたPOIの数を確認してよい。このために、コンピュータ装置200は、グリッド情報とともに、複数のグリッドそれぞれに含まれたPOI情報を管理してよい。
この場合、コンピュータ装置200は、(4,4)グリッドに含まれるPOIの数が予め設定された数未満である場合、(4,4)グリッドの周辺グリッドに地理的領域を確張してよい。図4の実施形態では、(4,4)グリッドと(4,4)グリッド周辺の8枚のグリッド((3,3)グリッド、(3,4)グリッド、(3,5)グリッド、(4,3)グリッド、(4,5)グリッド、(5,3)グリッド、(5,4)グリッド、および(5,5)グリッド))を含む合計9枚のグリッドに地理的領域が拡張された例を示している。
実施形態によっては、(4,4)グリッドの前後左右に位置する4枚のグリッド((3,4)グリッド、(4,3)グリッド、(4,5)グリッド、および(5,4)グリッド))に拡張される例が含まれてもよい。
コンピュータ装置200は、合計9枚のグリッドを含んだ、拡張された地理的領域に含まれるPOIの数を確認してよく、確認されたPOIの数が予め設定された数以上であるかを確認してよい。
上述した例において、確認されたPOIの数が予め設定された数未満である場合、現在設定さている9枚のグリッドの外に位置する16枚のグリッドまで地理的領域を追加で確張してよく、それでも不足する場合には、予め設定された数以上になるまでさらに16枚の外のグリッドを追加して地理的領域を確張してよい。すなわち、コンピュータ装置200は、利用者の中心座標が含まれたグリッドを開始点として隣接するグリッドを含めて地理的領域を確張し、該当の段階までの領域内のPOI数が予め設定された数未満である場合には、該当の段階までの拡張領域を再び開始点として隣接グリッドを含めて地理的領域を確張する。このとき、グリッド内にPOIが存在しない隣接グリッドの場合には、該当の方面への拡張は停止し、POIの分布に基づいて地理的領域を確張してもよい。また、確認されたPOIの数が予め設定された数以上となった場合には、拡張した地理的領域が地理的検索領域として決定されてよい。このとき、地理的検索領域は、9枚のグリッドの領域をすべて含むように決定されてよい。他の例として、地理的検索領域は、星印が表示された座標を中心点としながら、9枚のグリッドの領域内に含まれる最も大きい円の領域を含むように決定されてもよい。図4の点線円410は、受信した地理的位置情報による座標を中心点としながら、拡張された地理的領域内に含まれる最大の円の例を示している。
一方、合計9枚のグリッドを含む、拡張された地理的領域に含まれたPOIの数が予め設定された数未満の場合、地理的領域はもう一度拡張されてよい。この場合、地理的領域は、(2,2)グリッドから(6,6)グリッドまでの5×5のサイズのマトリックスが含む、合計25枚のグリッドを含むように拡張されてよい。
このように、コンピュータ装置200は、地理的領域に含まれたPOIの数が予め設定された数以上になるまで地理的領域を徐々に拡張させながら地理的検索領域を決定してよい。一方、上述したように、地理的領域の拡張のためにPOI密集度が活用されてもよい。
グリッド情報は、一例として、ジオハッシュ(geohash)情報を活用してよい。ジオハッシュとは、空間をグリッド形態に分割する階層的空間データ構造であって、本実施形態では、グリッド情報として、地理的検索領域全体を分割している多数の階層のうち、特定の階層のグリッドを含むグリッド情報が活用されてよい。
図5は、本発明の一実施形態における、ユーザの検索空間を制限する過程の例を示したフローチャートである。図5は、図3で説明した位置基盤情報探索方法において、段階310と段階320の間に段階510を追加し、段階320と段階330の間に段階520を追加し、段階350の代わりに段階530、段階540、および段階550を追加した例を示している。
段階510で、コンピュータ装置200は、登録されたPOIごとのPOIコンテキストそれぞれによる関連度を算出してよい。一例として、POIコンテキストは時間を含んでよい。例えば、午後7時から午前2時まで営業する飲食店Aがあると仮定する。ランチの時間帯にグルメ店を探しているユーザに、飲食店Aを推薦することは適切でない。したがって、コンピュータ装置200は、特定のPOIに対して時間帯による関連度を予め算出し、算出された関連度を活用してよい。例えば、コンピュータ装置200は、0時から24時までを1時間間隔の時間帯として区分し、それぞれの時間帯別に飲食店Aとの関連度を算出してよい。このとき、飲食店Aの営業時間に対応する時間帯には相対的に高い関連度が、飲食店Aの営業時間外の時間帯には相対的に低い関連度が算出されてよい。例えば、ランチの時間帯に周辺情報を検索するユーザBにとっては、飲食店Aは相対的に低い関連度となるため、ユーザBの検索空間から除外される確率は高くなるはずである。この反面、夕方からの時間帯に周辺情報を検索するユーザCにとっては、飲食店Aは相対的に高い関連度となるため、ユーザCの検索空間に含まれる確率は高くなるはずである。
また、POIコンテキストとして、時間の他に、年齢、性別、業種などのような多様なコンテキストが活用されてもよい。例えば、男性に女性専用サービスを提供する会社を推薦することは効果的ではなく、女性に男性専用サービスを提供する会社を推薦することも効果的ではない。この場合、女性が多く訪れるPOIは、女性に対しては相対的に高い関連度を有し、男性に対しては相対的に低い関連度を有するように関連度が算出されてよい。これとは逆に、男性が多く訪れるPOIは、男性に対しては相対的に高い関連度を有し、女性に対しては相対的に低い関連度を有するように関連度が算出されてよい。
これと同じように、ユーザの年代に該当するユーザが多く訪れるPOIを推薦することは、該当のユーザにとって有力な情報となる確率が高い。したがって、コンピュータ装置200は、特定のPOIを訪れる訪問者の年代に基づいて年代別の関連度を予め算出してよい。より具体的な例として、主に20代の訪問者が多く訪れるクラブDの場合、20代のユーザEに推薦される確率は増加するが、40代のユーザFには推薦されない確率が増加してよい。
段階520で、コンピュータ装置200は、地理的位置情報の受信に応答してユーザのユーザコンテキストを抽出してよい。例えば、コンピュータ装置200は、ユーザコンテキストとして現在時刻を抽出したとする。この場合、上述したように、抽出した現在時刻を含む時間帯に対して関連度が高く設定されたPOIの選択確率が増加するようになる。この反面、抽出された現在時刻を含む時間帯に対して関連度が低く設定されたPOIの選択確率は低くなるが、これはユーザの検索空間の制限に繋がるようになる。他の例として、ユーザコンテキストは、ユーザの年齢や性別、さらにはユーザが好むPOIの種類などのような情報を含んでよい。年齢や性別については上述したとおりであり、ユーザが好むPOIの種類は、ユーザのヒストリー情報から取得してよい。例えば、ユーザの位置情報を継続してモニタリングすることができる場合には、ユーザが主に訪ずれるPOIの種類に関する情報を予め確保して管理してよい。他の例として、ユーザの位置情報を継続してモニタリングすることが難しい場合には、ユーザのウェブ上での活動(一例として、SNS掲示文やクリックログなどによって類推することのできる活動)に基づいてユーザが好むPOIの種類を決定してよい。また他の例として、ユーザのコンテキストとして、ユーザの性質や現在状態などが活用されてもよい。ユーザの性質とは、一例として、人気度が相対的に高いPOIを訪ずれる傾向にある性質や、日頃頻繁に訪ずれるPOIを繰り返し訪問する傾向にある性質などを含んでよい。より具体的な例として、コンピュータ装置200は、ユーザが有名な飲食店を選んで訪ずれる性質のユーザであるか、それとも周辺の一部の飲食店を繰り返し訪ずれる性質のユーザであるかのように、ユーザそれぞれの性質をユーザコンテキストとして活用してよい。コンピュータ装置200は、ユーザの性向をユーザの位置情報あるいはレビューなどを利用してパターン分析して把握してもよいし、ユーザが予め設定できるようにしてもよい。
ユーザの現在状態とは、現在ユーザが日常生活圏内(ライフサイクル内)にいるか、それとも日常生活圏外(ライフサイクル外)にいるかに関する情報を含んでよい。例えば、ユーザが現在、会社や学校、自宅などのようにユーザの生活に密接した場所にいたり、このような場所の中間となる経路上に位置したりする場合、コンピュータ装置200は、ユーザが日常生活圏内にいると判断してよい。この反面、ユーザが旅行や出張などによって生活に密接した場所や経路から離れている場合、コンピュータ装置200は、ユーザが日常生活圏外にいると判断してよい。このように、コンピュータ装置200は、ユーザの性質および/または現在状態をユーザのコンテキストとして設定および抽出してよく、周辺探索サービスにおいて、ユーザの検索空間を制限するのに活用してよい。
段階530で、コンピュータ装置200は、抽出したユーザコンテキストに対応するPOIコンテキストを識別してよい。例えば、コンピュータ装置200は、段階510で、POIコンテキストとして、複数の時間帯、該当のPOIを訪ずれるユーザの複数の年代、および該当のPOIを訪ずれるユーザの性別のうちの少なくとも1つによる関連度を算出してよい。このとき、コンピュータ装置200は、段階530で、ユーザコンテキストとして地理的位置情報が受信される時間帯に対応するPOIコンテキストとしての時間帯、ユーザの年齢に対応するPOIコンテキストとしての年齢帯、およびユーザの性別に対応するPOIコンテキストとしての性別のうちの少なくとも1つを識別してよい。より具体的な例として、ユーザコンテキストとして現在時刻「18時00分」が抽出された場合、POIコンテキストとして現在時刻「18時00分」を含む時間帯「18時」が識別されてよい。他の例として、ユーザコンテキストとしてユーザの性別「女性」が抽出された場合、POIコンテキストとして「女性」が識別されてよい。また他の例として、ユーザの年齢「27歳」が抽出された場合、POIコンテキストとしてユーザの年齢「27歳」が含まれた年代「20代」が識別されてよい。
段階540で、コンピュータ装置200は、地理的検索領域内に位置するPOI間のランキングまたは位置するPOIと連係されたコンテンツ間のランキングを、識別されたPOIコンテキストに対して算出された関連度に基づいて算出してよい。例えば、ユーザコンテキストによって「18時00分」に地理的位置情報を送信したユーザの年齢が「27歳」であり、性別が「女性」である場合、該当のユーザに提供されるPOIの情報やPOIと連係されたコンテンツの情報は、「18時」の時間帯による関連度が高いほど、性別による関連度が「女性」に対して高いほど、年齢による関連度が「20代」に対して高いほど、より高い順位を有するようにしてよい。
段階550で、コンピュータ装置200は、算出されたランキングに基づいて地理的検索領域内に位置するPOIのうちの少なくとも一部または位置するPOIと連係されたコンテンツのうちの少なくとも一部を抽出してよい。例えば、コンピュータ装置200は、地理的検索領域内に位置するPOIのうち、算出されたランキングの上位N個のPOIまたは上位N個のPOIと連係されたコンテンツを抽出してよい。このとき、抽出されたPOIやコンテンツは、段階340で選定された主要ドメインとして分類されたPOIまたは主要ドメインとして分類されたPOIと連係されたコンテンツであってよい。例えば、主要ドメインごとに上位N個のPOIおよび/またはコンテンツが抽出されてよく、抽出したPOIおよび/またはコンテンツは、対応する主要ドメインと連係させた状態で提供されてよい。また、上述したように、定義したマルチ−ドメインが含むすべてのドメインそれぞれに対してPOIが抽出されてよい。このとき、ドメインそれぞれのためのPOIは、ユーザコンテキストおよび/またはPOIコンテキストに基づいて限定されたユーザの検索空間から抽出されてよい。
図6は、本発明の一実施形態における、定義したマルチ−ドメインそれぞれに対して抽出したPOIおよび/またはコンテンツを提供する例を示した図である。図6は、1つのモバイルページの形態であり、POIの情報および/またはコンテンツの情報が表示された例を示している。第1領域610、第2領域620、および第3領域630は、1つのモバイルページを形成するために、矢印で表示したように互いに連結されてよい。このとき、図6のモバイルページは、マルチ−ドメイン全体に対して抽出したPOIを個別ドメインに対して割り当てられた領域に表示した例を示している。一方、モバイルページは、個別ドメインを選択することのできるユーザインタフェース640を含んでよく、ユーザは、このようなユーザインタフェース640を利用することにより、ユーザが望む個別ドメインのPOIおよび/またはコンテンツにアクセスしてよい。このようなモバイルページは、個別ドメインを提供するための複数の階層的ページで構成されてもよい。また、上述したように、地理的検索領域に該当する地域の特徴を示す主要ドメインそれぞれに対して、POIの情報および/またはコンテンツの情報が提供されてもよい。図6の実施形態は、主要ドメインとしてマルチ−ドメインが含む複数のドメインがすべて選定された場合の例であってよい。他の実施形態として、ユーザの地理的検索領域に対する主要ドメインが、一例として「グルメ店」のように、定義されたマルチ−ドメインが含む複数のドメインのうちの一部が選定され、選定された「グルメ店」に対するPOIの情報および/またはコンテンツの情報が提供されてもよい。これは単に「グルメ店」サービスをメインサービスとして提供するにあたり、サブサービスとして位置情報を活用することとは差がある点については、上述した説明から通常の技術者であれば容易に理解することができるであろう。
図7〜11は、本発明の一実施形態における、個別ドメイン別にPOIおよび/またはコンテンツを提供する例を示した図である。
図7の個別ドメインページ710は、ユーザインタフェース640で「カフェ/デザート」ドメインが選択されることにより、選択された「カフェ/デザート」ドメインに対して抽出されたPOIおよび/またはコンテンツが提供されるページの例を示している。このとき、実施形態によっては、ドメイン別ページには、該当のドメインのための主要人気キーワードを推薦するためのキーワード領域720が含まれてもよい。このようなキーワード領域720に表示された主要人気キーワードをユーザが選択した場合、選択された主要人気キーワードに該当するPOI検索結果がユーザに提供されてよい。
図8の個別ドメインページ810は、ユーザインタフェース640で「カルチャー」ドメインが選択されることにより、選択された「カルチャー」ドメインに対して抽出されたPOIおよび/またはコンテンツが提供されるページの例を示している。図8に示すように、「カルチャー」ドメインは、映画や演劇などのような細分化されたサブドメインを含んでよい。また、図8には示されていないが、該当のPOIと連係されたフェスティバルなどのようなサブドメインをさらに含んでもよい。
図9の個別ドメインページ910は、ユーザインタフェース640で「テーマ」ドメインが選択されることにより、選択された「テーマ」ドメインに対して抽出されたPOIおよび/またはコンテンツが提供されるページの例を示している。図9も、図7と同じように、該当のドメインのための主要人気キーワードを推薦するためのキーワード領域920が含まれた例を示している。このとき、一例として、「カルチャー」は、映画、演劇、フェスティバルなどのようにすべての地理的検索領域に対して適用可能な詳細ドメインの種類を含んでよい反面、「テーマ」の詳細ドメインの種類は、地理的検索領域ごとにまったく異なってよい。したがって、本実施形態では、「テーマ」ドメインに関し、映画、演劇、フェスティバルなどのように予め定義された固定的な詳細ドメインを使うよりも、動的に設定可能な詳細ドメインを活用してよい。例えば、ユーザの現在地の中心の主要テーマを推薦するために、コンピュータ装置200は、登録されたPOI別にディープラーニングによってテーマキーワードを抽出し、地理的検索領域内に位置するPOIに対して抽出されたテーマキーワードに基づき、受信した地理的位置情報周辺の人気テーマ情報または受信した地理的位置情報周辺のテーマ別のPOI情報を提供してよい。したがって、同じ領域のPOIであったとしても、POIに対するテーマキーワードが変更された場合には、「テーマ」ドメインの詳細ドメインがテーマキーワードに応じて動的に変更および活用されてよい。ディープラーニングは、特定のPOIに関する情報を受信し、該当となる特定のPOIを代表することのできるテーマキーワードを抽出するように学習された人工知能モデルを利用して処理されてよい。このような人工知能モデルについては、通常の技術者であれば周知のディープラーニング技術から容易に理解することができるであろう。
図10の個別ドメインページ1010は、ユーザインタフェース640で「趣味」ドメインが選択されることにより、選択された「趣味」ドメインに対して抽出されたPOIおよび/またはコンテンツが提供されるページの例を示している。
図11の個別ドメインページ1110は、ユーザインタフェース640で「予約/イベント」ドメインが選択されることにより、選択された「予約/イベント」ドメインに対して抽出されたPOIおよび/またはコンテンツが提供されるページの例を示している。一方、図11の予約アプリ連動ボタン1120は、会社と予約サービスを提供する予約アプリケーションとを連動するためのユーザインタフェースであってよい。例えば、検索サービスおよび/または周辺探索サービスは、このような予約サービスと連動していてよく、ページでは予約アプリケーションの実行のための機能を提供してよい。一方、周辺探索サービスと連動する予約サービスからユーザが好むPOI情報を取得し、ユーザコンテキストとして活用してもよい。
図12は、本発明の一実施形態における、ユーザがユーザコンテキストを直接選択する例を示した図である。ユーザに同行人がいたり、ユーザが他のユーザのニーズ(needs)を代わりに検索したりする場合がある。このために、ユーザは、ユーザコンテキストを直接選択し、検索空間が他のコンテキストによって異なって制限されるように制御してよい。図12のページ1210では、図6の第1領域610でフィルタインタフェース1220を提供する例を示している。ユーザは、フィルタインタフェース1220で地理的検索領域、詳細ドメインの種類、時間、価格、年齢、駐車場の有無、予約サービスとの連動状況などのような多様なユーザコンテキストをユーザが直接制御する例を示している。ユーザコンテキストが変更されると、コンピュータ装置200は、変更されたユーザコンテキストに基づいてマルチ−ドメインそれぞれに対してPOIの情報および/またはコンテンツの情報を再抽出してユーザに提供してよい。
図13は、本発明の一実施形態における、個別POIの地図情報を提供する例を示した図である。図13のページ1310では、ユーザが特定のPOIや特定のコンテンツを選択することにより、対応するPOIの位置情報を地図上に表示して提供する例を示している。
一方、図6〜図13に示されているイメージは、UGCとディープラーニングによって抽出された高品質イメージであってよい。例えば、ディープラーニングは、特定のPOIと関連付いて生成されたUGCを受信して該当のPOIを代表することのできるイメージを抽出するように学習された人工知能モデルを利用して処理されてよい。
例えば、コンピュータ装置200は、登録されたPOIそれぞれに対して生成されたUGCからイメージを収集し、ディープラーニングに基づいて類似イメージをクラスタリングしてよい。このとき、コンピュータ装置200は、クラスタリングされたイメージから、登録されたPOIそれぞれのための代表イメージまたは登録されたPOIと連係されたコンテンツそれぞれのための代表イメージを抽出してよい。このとき、業種に関する分類モデルを学習して業種に対して適した情報を測定して特定のPOIに対する代表イメージを選択するにあたり、POIが該当する業種に対する適合度を追加で考慮してよい。より具体的に、コンピュータ装置200は、登録されたPOIと関連のあるイメージ、例えば、該当の会社を訪ずれたユーザが残したイメージをクラスタリングして最大のクラスタを構成するイメージを選択してよい。このとき、該当のイメージが登録されたPOIの業種適合度が低下する場合、次の大きさのクラスタを考慮するようになる。このような方法により、該当POIの業種に適した、会社固有の特性に合ったイメージが代表イメージとして選択されるようになる。
この場合、コンピュータ装置200は、図3を参照しながら説明した段階350で抽出されたPOIの情報または抽出されたPOIと連係されたコンテンツの情報を提供するにあたり、抽出されたPOIの代表イメージまたは抽出されたPOIと連係されたコンテンツの代表イメージをさらに提供することが可能となる。
以上で説明した周辺探索サービスは、多様な方式で提供されてよい。例えば、検索サービスを提供するページ上に、周辺探索サービスを実行させるためのアイコンやバナーまたはリンクが表示されてよい。この場合、ユーザは、表示されたアイコンやバナーまたはリンクを介して検索サービスで周辺探索サービスを実行させることが可能となる。他の例として、モバイル環境において、仮想キーボードと連係させて周辺探索サービスを実行させるためのアイコンやバナーまたはリンクを表示してもよい。また他の例として、検索サービスの検索結果で周辺探索サービスを実行させることのできるアイコンやバナーまたはリンクが提供されてもよい。
図14は、本発明の一実施形態における、アイテム推薦方法の例を示したフローチャートである。本実施形態に係るアイテム推薦方法は、アイテムの推薦のための方法として個別に実行されてもよいが、実施形態によっては、上述した位置基盤情報探索方法に含まれる形態で実行されてもよい。本実施形態に係るアイテム推薦方法は、サーバ150を実現するコンピュータ装置200によって実行されてよい。例えば、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと少なくとも1つのプログラムのコードとによる制御命令を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがって図14の方法に含まれる段階1410〜1460をコンピュータ装置200が実行するようにコンピュータ装置200を制御してよい。
段階1410で、コンピュータ装置200は、推薦分野に対して登録された複数のアイテムを複数のテーマそれぞれに対して分類してよい。推薦分野は、実施形態によって多様に設定されてよい。例えば、推薦分野が「グルメ店」である場合、登録された複数のアイテムは複数の飲食店であってよい。この場合、テーマは、「ジョンジャ洞」、「ブンダン」、「カンナム」、「高級」、「雰囲気が良い」、「高齢者の誕生日」、「中華レストラン」、「和食」などのように、推薦分野である「グルメ店」を分類するための多様な単語または単語の組み合わせによって生成されてよい。他の例として、推薦分野が「自動車」である場合、登録された複数のアイテムは複数の自動車であってよい。この場合、テーマは、「中古車」、「SUV」、「国産車」、「外車」、「自動車用品」、「セダン」などのように、推薦分野である「自動車」を分類するための多様な単語または単語の組み合わせによって生成されてよい。このように、コンピュータ装置200は、特定の推薦分野と関連して登録された複数のアイテムを多様なテーマ別に予め分類してよい。一例として、コンピュータ装置200は、ユーザの検索語(一例として、「aa洞の中華レストラン」)とユーザが該当の検索語によって提供される検索結果のうちからユーザによって選択されたアイテム(一例として、「飲食店bb」)との関係に基づいてテーマ別アイテムを分類してよい。
段階1420で、コンピュータ装置200は、複数のテーマそれぞれに対して分類されたアイテムのリストおよびリストに対応するテーマを、入力として有するディープラーニングにより、登録された複数のアイテムそれぞれに対するアイテムベクトルを生成してよい。一例として、ディープラーニングモデルとしては、単語の分散表現(word embedding)を生成するために活用されるモデルである「Word2vec」が活用されてよい。例えば、コンピュータ装置200は、複数のテーマとテーマそれぞれに対応するアイテムに関する情報を「Word2vec」のようなディープラーニングモデルに入力し、アイテムそれぞれに対してテーマ(またはテーマの単語)別に関連度値を含むアイテムベクトルの出力を受けてよい。言い換えれば、アイテムベクトルは、複数のテーマそれぞれまたは複数のテーマが含む複数の単語それぞれに対応する複数の関連度値を含んでよい。例えば、上述した推薦分野「グルメ店」に対するアイテム「飲食店bb」)の例において、ディープラーニングモデルは、「ジョンジャ洞」、「ブンダン」、「カンナム」、「高級」、「雰囲気が良い」、「高齢者の誕生日」、「中華レストラン」、「和食レストラン」などのようなテーマ(またはテーマの単語)それぞれに対し、{「ジョンジャ洞」,9.0}、{「ブンダン」,8.0}、{「カンナム」,0.4}、{「高級」,4.4}、{「雰囲気」,3.2}、{「高齢者」,2.0}、{「誕生日」,2.4}、{「中華」、7.9}、{「和食」,0.0}のような点数を出力してよく、このような点数で形成されたベクトルが、アイテム「飲食店bb」に対するアイテムベクトルとして生成されてよい。このようなアイテムベクトルは、登録されたアイテムそれぞれに対して生成されてよい。
段階1430で、コンピュータ装置200は、ユーザの検索記録に基づいてユーザと関連のある複数のアイテムを識別してよい。例えば、コンピュータ装置200は、検索記録からユーザが検索およびクリックしたアイテムを見つけ出し、ユーザと関連のあるアイテムとして識別してよい。このとき、識別される複数のアイテムは、推薦分野に対応するアイテムであってよい。例えば、推薦分野「グルメ店」に対して識別されるアイテムは、推薦分野「グルメ店」に対応する飲食店のようなアイテムであってよい。他の例として、推薦分野「自動車」に対して識別されるアイテムは、推薦分野「自動車」に対応する自動車のようなアイテムであってよい。
段階1440で、コンピュータ装置200は、識別した複数のアイテムそれぞれのアイテムベクトルを抽出してよい。抽出されるアイテムベクトルは、段階1420で生成されたアイテムベクトルのうち、段階1430で識別されたアイテムに対するアイテムベクトルであってよい。
段階1450で、コンピュータ装置200は、抽出したアイテムベクトルに基づいてユーザのユーザベクトルを生成してよい。一例として、コンピュータ装置200は、抽出したアイテムベクトルで同じテーマの関連度値の平均値または同じ単語の関連度値の平均値を計算し、複数のテーマそれぞれまたは複数の単語それぞれに対して計算された平均値を複数のテーマそれぞれまたは複数の単語それぞれに対する関連度値として含むユーザベクトルをユーザに対して生成してよい。例えば、推薦分野「グルメ店」に対し、ユーザ1の検索記録から「飲食店a」、「飲食店b」、「飲食店c」という3つのアイテムが識別されたと仮定する。このとき、3つのアイテムのアイテムベクトルでテーマ(またはテーマの単語)「高級」に対する関連度値がそれぞれ「3」、「9」、「6」である場合、ユーザベクトルでテーマ「高級」に対する関連度値は、平均値である「6((3+9+6)/3)」となる。このように、コンピュータ装置200は、抽出したアイテムベクトルでテーマごとに(またはテーマの単語ごとに)平均値を計算することにより、ユーザベクトルを生成することが可能となる。このようなユーザベクトルは、対応するユーザのテーマ別の平均選好度を意味してよい。
段階1460で、コンピュータ装置200は、生成されたユーザベクトルを利用して推薦分野に対する推薦アイテムを決定してよい。例えば、コンピュータ装置200は、生成されたユーザベクトルが含む関連度値と、登録された複数のアイテムのアイテムベクトルそれぞれが含む関連度値とを比較することにより、登録された複数のアイテムのうちから推薦分野のための推薦アイテムを決定してよい。言い換えれば、コンピュータ装置200は、ユーザベクトルとテーマ別に関連度値が互いに同一または類似するアイテムベクトルを有するアイテムを推薦アイテムとして決定するようになる。この場合、コンピュータ装置200は、単にユーザの推薦が多いアイテムや特定のテーマに対するアイテムではなく、1つのアイテムと関連する推薦分野において、多数のテーマそれぞれに対してユーザに適したアイテムをユーザに推薦することが可能となる。
図15は、本発明の一実施形態における、特定のアイテムに対するアイテムベクトルを生成する例を示した図である。図15は、推薦分野「グルメ店」と関連するアイテムのアイテムベクトルを生成する例を示している。図15において、第1点線ボックス1510は、ユーザから入力された検索語の例を示しており、第2点線ボックス1520は、該当の検索語の検索結果として提供されてユーザによって選択されたアイテムに関する情報を示している。このとき、コンピュータ装置200は、検索語からテーマを抽出してよく、選択されたアイテムからアイテムを抽出し、互いに対応するテーマとアイテムをディープラーニングモデル1530に入力してよい。このとき、ディープラーニングモデル1530は、上述した「Word2vec」モデルのように単語の分散表現を生成するように学習されてよく、一例として、本実施形態のように、1つのアイテムに対してテーマ別に関連度値を抽出するように予め学習されてよい。図15の第3点線ボックス1540は、飲食店2のアイテムベクトルであって、多数のテーマ(一例として、300個)それぞれに対する関連度値のベクトルを示している。
図16は、本発明の一実施形態における、ユーザベクトルを生成する例を示した図である。図16は、特定のユーザの検索記録1610から推薦分野「グルメ店」に対して特定のユーザが選択(一例として、検索結果に含まれた特定のアイテムに対するウェブサイトのリンクを特定のユーザがクリックして該当のウェブサイトを訪問)したアイテムとして「飲食店2」、「飲食店15」、「飲食店31」、および「飲食店45」という4つのアイテム、そして4つのアイテムそれぞれに対して生成されたアイテムベクトルをそれぞれ示している。このとき、ユーザベクトルは、上述したようにテーマ別の平均値によって生成されてよい。例えば、ユーザベクトルでテーマ「雰囲気」に対応する関連度値1.1は、4つのアイテムベクトルそれぞれのテーマ「雰囲気」に対応する関連度値(3.2、0.0、0.0、1.2)の平均値であってよい。これと同じように、ユーザベクトルでテーマ「中華」に対応する関連度値2.0は、4つのアイテムベクトルそれぞれのテーマ「中華」に対応する関連度値(3.9、4.1、0.0、0.0)の平均値であってよい。このようにテーマそれぞれに対する平均値がユーザベクトルでテーマそれぞれのための関連度値として計算されることにより、特定のユーザのためのユーザベクトルが生成されてよい。
例えば、ユーザベクトルの関連度値とテーマ別に同一または予め設定された範囲(一例として、ユーザベクトルの関連度値に対する±1の範囲)内でユーザベクトルの関連度値とテーマ別に類似する関連度値を有するアイテムベクトルが選択されてよく、選択されたアイテムベクトルに対応するアイテムが、該当のユーザに推薦するための推薦アイテムとして決定されてよい。
このようなユーザベクトルは、アイテムに対する総合的な選好度や1つの特定のテーマに対する選好度ではなく、多数のテーマそれぞれによる選好度を示してよい。したがって、ユーザの推薦数が多いアイテムではなく、ユーザが好むテーマのアイテムを該当のユーザに推薦することが可能となる。
図17は、本発明の他の実施形態における、アイテム推薦方法の例を示したフローチャートである。本実施形態に係るアイテム推薦方法は、アイテムの推薦のための方法として個別に実行されてもよいが、実施形態によっては、上述した位置基盤情報探索方法に含まれる形態で実行されてもよい。本実施形態に係るアイテム推薦方法は、サーバ150を実現するコンピュータ装置200によって実行されてよい。例えば、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと少なくとも1つのプログラムのコードとによる制御命令を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがって図17の方法に含まれる段階1710〜1740をコンピュータ装置200が実行するようにコンピュータ装置200を制御してよい。
段階1710で、コンピュータ装置200は、推薦分野に対して登録された複数のアイテムと登録された複数のアイテムのうちの少なくとも1つと関連する複数のユーザによって行と列を区分する順位マトリックスを生成してよい。例えば、M(Mは自然数)個のアイテムとN(Nは自然数)人のユーザによって行と列を区分する順位マトリックスは、M×NまたはN×Mの大きさを有してよく、それぞれのエントリーは、対応するアイテムとユーザとの関連度値を順位値として有してよい。
段階1720で、コンピュータ装置200は、順位マトリックスのエントリーのうちの一部のエントリーの順位値をアイテムとユーザとの関連度値として決定してよい。このとき、アイテムとユーザとの関連度値は、ユーザのアイテム選択(一例として、検索結果に含まれた特定のアイテムに対するウェブサイトのリンクを特定のユーザがクリックして該当のウェブサイトを訪問)することに基づいて生成されてよい。ただし、複数のアイテムのうちでも特定のユーザが選択しなかったアイテムの場合には、対応するエントリーに対する順位値を決めることができないため、段階1720で、コンピュータ装置200は、一部のエントリーに対して順位値を決定してよい。段階1720において、一部のエントリーの順位値は、基本的にユーザとアイテムとの実際の関連度に基づいて決定されてよい。このような順位値を決定する過程については、図18および図19を参照しながらさらに詳しく説明する。
段階1730で、コンピュータ装置200は、順位マトリックスのエントリーのうちでアイテムとユーザとの関連度値が決まらずに順位値が決まっていないエントリーの順位値を行列分解によって予測してよい。行列分解を利用した推薦は、与えられた順位マトリックスで空白の順位(rating)を満たすために利用されてよく、上述したように、本実施形態では、ユーザとアイテムとの間に特定の関連が生じていないユーザとアイテムに対する順位マトリックスのエントリーの順位値を、段階1720で決定された一部のエントリーに対する順位値と行列分解によって予測してよい。行列分解によって順位マトリックスの空白の順位値を満たす技術は周知の事項であるため、詳しい説明は省略する。
段階1740で、コンピュータ装置200は、順位マトリックスの特定のユーザに対応するアイテムそれぞれの順位値に基づき、特定のユーザのための少なくとも1つのアイテムを選択してよい。このとき、順位マトリックスが含むエントリーの順位値は、特定のユーザと特定のアイテムとの直接的な関連度値によって設定されてもよいし、複数のユーザと複数のアイテムとの実際の関連度値に基づいて予測された値が設定されてもよい。例えば、1つのユーザに対して順位値が高い順に予め設定された数のアイテムが、該当のユーザに推薦されてよい。このように、コンピュータ装置200は、このような順位マトリックスの順位値により、単にユーザの推薦数が多いアイテムではなく、ユーザとの関連度が実際に高いか高いと予測されたアイテムをユーザに推薦することが可能となる。
図18は、本発明の他の実施形態における、順位マトリックスの例を示した図である。図18の表1810は、4種類のアイテムと5人のユーザによって行と列が区分された順位マトリックスの例を示している。このとき、ユーザ1とアイテム2の順位値1.26は、ユーザ1とアイテム2の関連度値として決定されてよい。一例として、関連度値は、クリック状況と加重値によって計算されてよい。ここで、クリック状況とは、ユーザ1がアイテム2に対するクリックを発生させたか否かによって決定されてよく、図18では、クリックが発生した履歴が存在する場合には「1」の値を、クリックが発生した履歴が存在しない場合には「0」の値を付与した例を示している。また、加重値は多様に設定されてよく、図18では、地域関心度による加重値を付与した例を示している。例えば、推薦分野「グルメ店」と関連し、ユーザの現在地域やユーザの活動地域、またはアイテムとしての飲食店の位置地域は、「グルメ店」の推薦に大きな影響を及ぼす。例えば、地域aに住むユーザに地域aに位置する飲食店をすることは、他の地域bに位置する飲食店を推薦するよりも加重値が高い。このような観点において、図18は、地域によって互いに異なる加重値を付与した例を示している。例えば、図18において、加重値は、{ユーザ,アイテム}に対し、{地域a,地域a}、{地域a,地域b}、{地域b,地域a}、{地域b,地域b}それぞれに対して互いに異なる加重値が付与されてよい。このような加重値は、推薦分野によって互いに異なる種類の加重値が付与されてよい。本実施形態では、推薦分野の詳細分野のうちの1つとして地域を設定し、地域によって互いに異なる加重値を付与する例について説明しているが、推薦分野がオンラインゲームサービスのように地域の影響を受けない分野であれば、詳細分野として「ゲームジャンル」のように他の分野が設定され、「ゲームジャンル」による加重値が活用されてもよい。
一例として、順位値は、以下の数式(1)または数式(2)によって計算されてよい。
R(i,j)=加重値×click・・・(1)
ここでR(i,j)は、数式(1)によって計算される順位マトリックスのエントリーeijの順位値を意味してよく、加重値は詳細分野によって設定された加重値を、「click」はクリック状況によって設定された値を、それぞれ意味してよい。
C(i,j)=1+a×加重値×click・・・(2)
ここで、C(i、j)は、数式(2)によって計算される順位マトリックスのエントリーeijの順位値を意味してよい。このとき、「a」は信頼レベルであって、clickの固有回数値が選好度に及ぼす影響を低めるために使用され、実験によって0から1の値で予め設定されてよい。利用者のコメントとは異なり、クリックは選好度を直接示さない暗黙的なフィードバックであるため、aを使用することで選好度と暗黙的なフィードバックとの関連性が高まるようになる。図18の表1810に示された順位値は、このような数式(2)によって計算された例を示している。
図19は、本発明の他の実施形態における、順位値を決定する例を示したフローチャートである。図19に示された段階1910〜1940は、図17を参照しながら説明した段階1720に含まれて実行されてよい。
段階1910で、コンピュータ装置200は、複数のユーザのうちの第1ユーザのクリックログに基づいて複数のアイテムのうちの第1アイテムに対する第1ユーザのクリック状況を識別してよい。コンピュータ装置200は、順位値を決定するにあたり、1つのアイテムに対するクリック数よりは、該当のアイテムに対するクリック状況を活用してよい。
段階1920で、コンピュータ装置200は、推薦分野が含む詳細分野のうち、第1ユーザに対応する詳細分野と第1アイテムに対応する詳細分野による加重値に識別してよい。上述した図18では、「地域」という詳細分野による加重値について説明した。このとき、ユーザとアイテムとの間の等しい詳細分野には、さらに高い加重値が設定されてよい。
段階1930で、コンピュータ装置200は、クリック状況と加重値との演算に基づいて第1ユーザの第1アイテムとの関連度値を計算してよい。関連度値の計算は、上述した数式(1)または(2)のように、クリック状況と加重値との演算に基づいてよい。
段階1940で、コンピュータ装置200は、計算された関連度値により、マトリックスの第1ユーザおよび第1アイテムによって識別されるエントリーの順位値を決定してよい。決定された順位値は、図18に示すように、該当のエントリーの順位値として入力されてよい。
この後、図17を参照しながら説明した段階1730において、行列分解によって順位マトリックスの残りのエントリーの順位値が予測されてよく、このような順位値によってユーザに推薦されるアイテムが選択されてよい。
このように、本発明の実施形態によると、ユーザの現在の地理的位置に基づいてユーザ周辺に対するマルチ−ドメインそれぞれまたはユーザが位置する地域の特徴(マルチ−ドメインから選定される主要ドメイン)によるPOIの情報または周辺のPOIと連係されたコンテンツの情報を提供することができる。また、ユーザの現在地、時間、年齢、性別などのようなコンテキスト情報と登録されたPOIのコンテキスト別の関連度点数に基づいてユーザのための検索空間を制限することにより、ユーザの現在のための最適な位置基盤情報を提供することができる。また、ユーザの現在地の中心のPOIに対する主要テーマまたは人気テーマに関する情報を提供することができ、テーマ別にPOI情報を提供することができる。また、UGCに対するディープラーニングによってPOIのための高品質イメージを抽出することができる。さらに、推薦しようとする分野に対して登録されたアイテムのうち、ユーザに特化したアイテムをディープラーニングまたは行列分解によって選定することができる。
上述したシステムまたは装置は、ハードウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。媒体は、コンピュータで実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD−ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体が挙げられる。プログラム命令の例には、コンパイラによって生成されるもののような機械語コードだけでなく、インタプリタなどを使用してコンピュータによって実行されることのできる高級言語コードを含む。
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。