以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではなく、本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、本実施形態に応じた具体的構成が適宜採用されてもよい。
なお、本実施形態において登場するデータを自然言語(日本語等)により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメタ、マシン語等で指定される。
<システム構成>
図1は、実施形態に係るリコメンドシステムの全体構成例を示す図である。図1において、リコメンドシステムは、情報処理装置1と、ネットワーク5を介して情報処理装置1と接続される外部サーバ2及びユーザ端末とを含む。外部サーバ2は、便宜上、1台で示したが、複数含む構成としても、情報処理装置1が外部サーバ2の機能を実行することで、外部サーバ2を省略した構成としてもよい。また、以下の説明において、複数のユーザ端末をそれぞれ区別して示す場合には、「ユーザ端末3A」、「ユーザ端末3B」のように個別の符号を付して表記し、区別せずに共通の事項等を説明する場合には、「ユーザ端末3」と表記する。
図1のリコメンドシステムは、例えば夫婦で購入する不動産を検討する場合のように、複数のユーザが共通の検討対象について検索する場合に使用され得る。共通の検討対象の検索が行われる場合、各ユーザがユーザ端末3を操作して情報処理装置1にアクセスし、キーワードを入力する。すると、情報処理装置1は、各ユーザのユーザ端末3に対して、それぞれが指定ないし入力したキーワードに基づく対象物件の情報(以下物件コンテンツと称す)を提供する。
このとき、各ユーザの嗜好や興味範囲の違い等により、提供される物件コンテンツが、或るユーザにとっては許容範囲(OK)であるが、他のユーザにとっては許容できない(NG)場合があり得る。このようなNG物件に係る物件コンテンツは、ユーザ間の話合い等により淘汰されることが明らかであるので、複数ユーザ全員にとって無用なものである。
そこで、情報処理装置1は、共通の検討対象について検索する複数のユーザを紐付けてグループとして記憶しておき、各ユーザの過去のユーザ反応データに基づいて物件コンテンツを提供する。物件コンテンツは、「物件情報」に相当する。
図2は、情報処理装置1の構成例を示す図である。情報処理装置1は、汎用又は専用のコンピュータである、汎用のコンピュータとして、例えば、パーソナルコンピュータ(PC)やワークステーションを適用できる。専用コンピュータとして、例えばサーバマシンを適用できる。但し、情報処理装置1は、後述する機能を提供できる限り、上記例示のコンピュータに制限されない。
情報処理装置1は、図2に示すように、例えば、CPU11にバスを介して接続されたメモリ12,入力装置13,出力装置14,及び通信インタフェース(通信IF)15を含む。
メモリ12は、主記憶装置と補助記憶装置とを含む。主記憶装置は、は、CPU11の作業領域,プログラムやデータの記憶領域,通信データのバッファ領域として使用される。主記憶装置は、例えば、Random Access Memory(RAM),或いはRAMとRead Only Memory(ROM)との組み合わせで形成される。
補助記憶装置は、CPU11によって実行されるプログラム,及びプログラムの実行に際して使用されるデータを記憶する。補助記憶装置は、例えば、ハードディスクドライブ(HDD),Solid State Drive(SSD),フラッシュメモリ,Electrically Erasable
Programmable Read-Only Memory(EEPROM)などである。また、補助記憶装置は、情報処理装置に対して着脱自在な可搬性記憶媒体を含む。可搬性記憶媒体は、例えばUniversal Serial Bus(USB)メモリである。また、補助記憶装置は、CD−ROMやDVD−ROM,DVD−Rなどのディスク記憶媒体及びディスク記憶媒体のドライブ装置を含む。ディスク記憶媒体は可搬性記憶媒体の一つである。
入力装置13は、情報処理装置1に情報やデータを入力するために使用される。入力装置13は、例えば、ボタン、キー、マウスなどのポインティングデバイス,タッチパネルなどを含む。入力装置13は、マイクロフォンのような音声入力装置を含み得る。
出力装置14は、情報やデータを出力する。出力装置は、例えばディスプレイ装置、プリンター、記憶メディアへの書き込み装置等である。出力装置14は、スピーカのような音声出力装置を含み得る。通信IF15は、ネットワーク5に接続され、他の装置との通信を行うためのインタフェースである。通信IF15は、例えばLocal Area Network(LAN)カードである。
CPU11は、メモリ12に記憶されたプログラムを主記憶装置にロードして実行する。メモリ12には、オペレーティングシステム及びアプリケーションプログラムがインストールされている。アプリケーションプログラムは、例えばPHP(Hypertext Preprocessor)スクリプトが動作可能なApache,Apache2などのHyperText Transfer Protocol(HTTP)サーバと、MySQLのようなデータベースプログラムを含む。
CPU11がプログラムを実行することによって、情報処理装置1は、HTTPサーバ111と、メモリ12に記憶されたデータベース(DB)121とを含む装置として動作する。メモリ12に記憶されるデータベース121は、例えば、後述の第1のユーザと関連づけられた第2のユーザに提示された複数の物件情報に含まれた各項目情報に対する前記第2ユーザの反応及び無反応に基づき採点された前記各項目情報に対する点数を示す情報を格納する。そして、CPU11は、前記情報を用いて前記点数が閾値未満の項目情報
を含む物件情報が除外された結果を、前記第1のユーザに提示する複数の物件情報として前記第1のユーザに提供する。なお、図2では、HTTPサーバ111及びDB121を含む情報処理装置1を例示しているが、情報処理装置1は、2以上の情報処理装置(コンピュータ)によって構成されても良い。例えば、情報処理装置1は、HTTPサーバ111として動作するコンピュータと、DB121を備えるコンピュータとから構成されても良い。また、HTTPサーバ111で行われる処理が複数のコンピュータで実行されるようにしても良い。
図3は、外部サーバ2の構成例を示す図である。外部サーバ2は、図3に示すように、例えば、CPU21にバスを介して接続されたメモリ22,入力装置23,出力装置24,及び通信インタフェース(通信IF)25を含む。CPU21,メモリ22,入力装置23,出力装置24,通信IF25については、CPU11,メモリ12,入力装置13及び出力装置14,通信IF15と同様のものを適用可能であるので、重ねての説明は省略する。
外部サーバ2は、情報処理装置1から送信される、物件コンテンツをリクエストするためのクエリに応じて、当該クエリの要素に適合する物件コンテンツを情報処理装置1に返信するサーバである。外部サーバ2は、例えば、1又は複数のサーバマシン、又は、PC(Personal Computer)等の汎用コンピュータによって実現される。物件コンテンツは、
外部サーバ2に格納されていてもよいし、外部サーバ2以外のサーバに格納されていてもよい。
図4は、ユーザ端末3の構成例を示す図である。ユーザ端末3は、ネットワークに接続する機能を持つ端末であり、例えば、スマートフォン,フィーチャーフォン,無線LAN端末,タブレット端末のような無線通信機能を備えた携帯端末、PC等の汎用コンピュータである。ユーザ端末3は、図4に示すように、例えば、CPU31にバスを介して接続されたメモリ32,入力装置33,出力装置34,及び通信インタフェース(通信IF)35、無線モジュール35A、送受信アンテナ36を含む。CPU31,メモリ32,入力装置33,出力装置34,通信IF35については、CPU11,メモリ12,入力装置13及び出力装置14,通信IF15と同様のものを適用可能であるので、重ねての説明は省略する。
無線モジュール35Aは、無線通信機能を提供する機器であり、例えば、データをディジタルベースバンド信号(BB信号)との間の変換処理を司るベースバンド回路(BB回路)と、ベースバンド信号と無線信号との変換処理を司るRF(Radio Frequency)回路
とを含む。RF回路は、無線信号の送受信を行う送受信アンテナ36と接続される。無線モジュール35が適合又は準拠する無線アクセス方式として、適宜の方式が適用される。無線アクセス方式としては、3G(W−CDMAなど),Long Term Evolution(LTE)
,無線LAN(IEEE802.11シリーズやWi-Fi),WiMax(登録商標),Bluetooth(登録商標
)のような各種の方式を含む。
上記情報処理装置1,外部サーバ2,ユーザ端末3は、図1に示すようにネットワーク5に接続され、これら各装置間における情報の伝達は、例えば、3G(3rd Generation)ネットワーク、インターネット、電話網、及び、専用網等のネットワーク5を介したデータ通信で実現される。ネットワーク5の種類は、各データ通信に応じて、適宜選択される。
<リコメンドサービス>
次に本実施形態に係るリコメンドシステムが提供するリコメンドサービスについて説明する。
図5は、リコメンドサービスの全体の流れを示す図である。例えば、夫妻が購入する不動産を検討する場合のように、複数のユーザが共通の検討対象について検索する場合に、各ユーザのユーザIDを紐付けて記憶する(ステップ10)。なお、図5では、ステップを「S」と略称する。後述する図7,図16〜13においても当該略称を利用する。
そして、夫妻がそれぞれ自身のスマートフォン等のユーザ端末3A,3Bを利用して、リコメンドサービスを利用し、希望の不動産を検索する(ステップ11,ステップ12)。このとき各ユーザ(夫妻)は、興味のある物件コンテンツに対しては、当該物件コンテンツ中のハイパーリンクをクリックして詳細情報を閲覧するなどの反応を示し、興味のない物件コンテンツに対しては、反応せず無視する。情報処理装置1は、このユーザの反応の履歴をログとして記憶し(ステップ13,ステップ14)、このログを用いて抽出した物件コンテンツ(例えば、物件コンテンツを含むウェブページ71)を各ユーザへ提供する(
ステップ15,16)。これにより、本実施形態のリコメンドサービスは、各ユーザの反
応の履歴に基づき、各ユーザの嗜好に沿った物件コンテンツを提供する。
また、本実施形態のリコメンドサービスでは、例えば、妻が許容できない物件コンテンツを夫に提示する検索結果から除外する。同様に夫が許容できない物件コンテンツを妻に提示する検索結果から除外する。これにより、各ユーザ(夫妻)に提供される物件コンテンツは、互いの許容範囲内のものとなるので、検索結果を突き合わせてた際、効率よく物件を選定することができる。
図6は、グループ情報の一例を示す図である。図6の例のグループ情報は、グループID,ユーザID,優先度を含む。グループIDは、グループを一意に識別する情報であり、ユーザIDは、ユーザを一意に識別する情報である。なお、情報処理装置1が単独使用される場合に、情報処理装置1の識別情報やアドレス(物理アドレスなど)がユーザIDとして使用されても良い。例えば、スマートフォン等のユーザ端末3について特定のユーザが単独利用とみなし、ユーザ端末3から取得可能な識別情報、例えばUUIDやMACアドレスをユーザIDとする。優先度は、各グループにおける各ユーザの優先の程度を示す情報である。優先度は、必須の構成ではなく、省略してもよい。
情報処理装置1は、このグループIDと、当該グループに属するユーザのユーザID及び優先度とを対応付けて記憶することにより、ユーザの紐付けを行う。
図5に戻って、ユーザ端末3A,3Bがユーザの操作によって、情報処理装置1へ検索要求やウェブページの閲覧要求を行うと、情報処理装置1は、この要求に応じた物件コンテンツを当該ユーザ端末3A,3Bへ送信する。この物件コンテンツを見たユーザが、物件コンテンツ中のリンクをクリックするなどの操作を行うと、この操作に基づく要求をユーザ端末3A,3Bが情報処理装置1へ送信し、情報処理装置1が、この要求に応じた物件コンテンツを当該ユーザ端末3A,3Bへ送信する処理を繰り返す。
このとき情報処理装置1は、ユーザが利用した情報と利用しなかった情報とに基づいて、後述のユーザ反応データを求め、データベース121に記憶する。そして、情報処理装置1は、ユーザ端末3Aから物件コンテンツの要求を受けた場合、要求したユーザ端末3Aのユーザ(ID:0001)のユーザ反応データと、同じグループに属する他のユーザ(ID:0009)のユーザ反応データとに基づいて物件コンテンツを選択して送信(リコメンド)する。
同様に、ユーザ端末3Bから物件コンテンツの要求を受けた場合、要求したユーザ端末3Bのユーザ(ID:0009)のユーザ反応データだけでなく、同じグループに属する他のユ
ーザ(ID:0001)のユーザ反応データに基づいて物件コンテンツを選択して送信(リコメ
ンド)する。
図7は、このリコメンドサービスの処理例を示すシーケンス図である。図7の例において、ユーザは、ユーザ端末3上でWEBブラウザを操作することにより、情報処理装置1に、又は、情報処理装置1を中継して他のサーバにアクセスし、物件コンテンツを取得する。また、ユーザを区別して説明する場合には、第一のユーザ、第二のユーザのように表記する。なお、情報処理装置1は、物件の検索要求に応じた検索結果を送信元に返信する場合に、グループの情報を用いて、複数のユーザのうちの検索要求の送信元のユーザを第1のユーザとして扱い、要求元以外のユーザを第2のユーザとして扱う。
例えば、第一のユーザは、ユーザ端末3A上のWEBブラウザにおいて、検索語句(キーワード)を入力すると、ユーザ端末3Aは、当該キーワードを含む検索要求を情報処理装置1へ送信する(ステップ101)。この場合、情報処理装置1は、ユーザにより入力された情報である検索語句に基づいて興味ワードを特定する。なお、当該興味ワードは、本発明の「興味語句」に相当する。興味ワードの特定は、例えば辞書を用いて検索語句を興味語句に変換することでなされる。これにより、検索語句として、一軒家、家屋、戸建て、戸建て住宅等と入力された場合に、興味ワードとして定めた「戸建て住宅」に変換し、標記の揺れをなくすようにしている。なお、興味ワードとして定められている語句、前記の例では「戸建て住宅」が検索語句として入力された場合には、検索語句と興味ワードは同じものを用いる。また、辞書などを用いずに、検索語句をそのまま興味ワードとして用いる構成としてもよい。例えば、検索語句をチェックボックスとともに提供し、チェックされた検索語句を含む検索要求が送信されるようにしても良い。
情報処理装置1は、取得した興味ワードを要素とするクエリを外部サーバ2に送信する(ステップ102)。なお、ここでは、まだ、当該興味ワードにより取得される物件コンテンツに対するユーザの反応を示すデータ(「ユーザ反応データ」と称する)が取得されていないとする。後述するとおり、このような場合であっても、情報処理装置1は、第一のユーザ以外の他のユーザ(第二のユーザ)に係るユーザ反応データを反映したクエリを外部サーバ2に送信してもよい。ただし、ここでは、説明を簡略にするため、情報処理装置1は、他のユーザに係るユーザ反応データをクエリに反映せず、当該興味ワードを要素とするクエリを外部サーバ2に送信する。
外部サーバ2は、情報処理装置1から興味ワードを要素とするクエリを受信すると、クエリに対する回答として、当該興味ワードに適合する物件コンテンツを情報処理装置1に返信する(ステップ103)。興味ワードに適合する物件コンテンツとは、例えば、タイトルや内容に当該興味ワードを含む物件コンテンツである。なお、外部サーバ2は、タイトルや内容に当該興味ワードを含む物件コンテンツから、所定の規則に従って、情報処理装置1に返信するコンテンツを選択してもよい。また、返信に係る物件コンテンツの数は、適宜設定されてよい。例えば、情報処理装置1から送信されるクエリにより、返信に係る物件コンテンツの数が設定されてよい。
情報処理装置1は、外部サーバ2から取得した物件コンテンツを、ユーザ端末3に送信する(ステップ104)。送信された物件コンテンツは、ユーザ端末3のWEBブラウザ上に表示される。
当該物件コンテンツは、例えば、文字や画像として、WEBブラウザの画面上に表示される。このとき、情報処理装置1は、ユーザ端末3からユーザの挙動(行動)を示す情報を取得する。例えば、マウスポインタやカーソルの位置及び移動を示す情報や、画面に表示されている物件コンテンツを示す情報、印刷された物件コンテンツを示す情報、「お気に入り」や「ウォッチ」、「いいね」、「しおり」といったマークを付加(以下単にマー
キングと称す)された物件コンテンツを示す情報をユーザ端末3が情報処理装置1へ送信する。
これにより、当該物件コンテンツが表示される範囲の近傍にマウスポインタやカーソルが所定時間存在する場合に、ユーザが当該物件コンテンツを利用している(読んでいる)と推定できる。
また、物件コンテンツの表示される範囲がWEBブラウザの表示範囲に所定時間含まれ続けている場合にも、ユーザが当該物件コンテンツを利用していると推定できる。また、印刷された物件コンテンツや、マーキングされた物件コンテンツも利用されたと推定できる。よって、情報処理装置1は、ユーザ端末3から送信されるユーザの挙動(行動)を示す情報に基づいて、物件コンテンツが利用されたか否かを判定することができる。
また、例えば、当該物件コンテンツは、当該物件のWEBページへのリンクの役目を果たす。ユーザは、例えば、マウス等の入力装置によって、物件コンテンツをクリック(選択)することで、当該物件コンテンツを利用し、リンク先のWEBページをWEBブラウザ上に表示することができる。このとき、情報処理装置1は、物件コンテンツのリンクが辿られた場合に、ユーザが当該物件コンテンツを利用したと判定できる。
本実施形態では、このようにユーザが物件コンテンツを利用したと推定される場合、及び、物件コンテンツのリンクを辿った場合に、情報処理装置1は、対象の物件コンテンツをユーザが利用したと判定する。
情報処理装置1は、これらのような物件コンテンツに対するユーザの反応を行動ログデータとして取得し、データベース121に蓄積する(ステップ105)。以下、データベース121のレコードを行動ログデータとも記載する。なお、図7では、データベースを「DB」と略称する。後述する図16,図19においても当該略称を利用する。
図8は、情報処理装置1及びユーザ端末3間のセッションと行動ログデータとの関係を例示する。なお、図8は、ユーザが検索サービスを利用した場合に、検索結果として複数の物件コンテンツがユーザ端末3上のWEBブラウザに表示される場面を例示する。このとき、ユーザは、ユーザ端末3上のWEBブラウザを操作することで、物件コンテンツのリンクを辿り(物件コンテンツを利用し)、物件のWEBページをWEBブラウザ上で表示した後に、元の検索画面に戻ることができる。図8では、ユーザが物件A及び物件Cを利用した場面が例示されている。本実施形態では、情報処理装置1は、このリンクの往来操作(「ページ遷移」及び「戻る」操作)を、1セッション内の操作としてとらえる。
他方、第一のユーザが、ユーザ端末3上のWEBブラウザを操作し、新たな検索語句を入力し、ユーザ端末3が、この新たな検索要求を情報処理装置1に送信した場合、前回の検索語句によるセッションが終了したと判定する。即ち、情報処理装置1は、この新たな検索要求の前後のセッションを異なるセッションとしてとらえる。また、情報処理装置1は、検索画面が閉じられた場合にも、前回の検索語句によるセッションが終了したと判定する。即ち、情報処理装置1は、この検索画面を閉じた前後のセッションを異なるセッションとして判定する。
情報処理装置1は、ユーザ端末3との各セッションにおいて、ユーザ端末3に送信した物件コンテンツのうち、ユーザに利用された物件コンテンツと、ユーザに利用されなかったコンテンツを示す行動ログデータ21aを生成する。そして、同一の検索語句(キーワードA)についてのセッションから生成された行動ログデータ21aは1つのデータにマージしてよい。即ち、情報処理装置1は、一ユーザの行動ログデータのうち、異なるセッ
ションに係る行動ログデータであっても、同一の興味ワードに係る行動ログデータであるならば、1つのデータにマージしてもよい。なお、情報処理装置1は、一ユーザの行動ログデータのうち、グループと興味ワードの組み合わせが一致する行動ログデータ同士を1つのデータにマージしてもよい。
図8に例示される行動ログデータ21aは、興味ワードを示す情報、各物件コンテンツを識別する情報、各物件コンテンツをユーザが利用したか否かを示す情報、及び、各物件コンテンツに含まれる関連ワードを示す情報を含む。
情報処理装置1は、上述したステップ101において取得したキーワードから興味ワードを特定する。興味ワードは、ユーザが入力した情報に基づいて特定されるユーザの興味を示す語句である。また、興味ワードは、この興味ワード毎に生成される行動ログデータやユーザ反応データを識別する情報でもある。
また、情報処理装置1は、行動ログデータを生成する際、物件コンテンツから、当該物件コンテンツを識別するための情報(以下、物件IDとも称す)、及び、物件IDに対応する物件コンテンツに含まれる関連ワードを取得する。物件IDは、例えば、物件コンテンツのタイトル名、又は、リンク先のURLであり、図8の例では、物件A〜Dである。関連ワードは、興味ワードに関連するワードであり、物件コンテンツに含まれている。なお、興味ワードと同じ語句の関連ワードが取得されてもよい。当該関連ワードは、本発明の「項目情報」に相当する。
これら物件IDや関連ワードは、例えば、物件コンテンツにメタ情報として記述され、情報処理装置1が、このメタ情報を物件コンテンツから抽出することで、物件ID及び関連ワードを取得する構成としてもよい。また、情報処理装置1が、物件コンテンツに対して形態素解析等の自然言語処理を適用することにより、物件ID及び関連ワードを取得してもよい。
図8において、ユーザAがキーワード“A”の検索要求を入力すると、物件A,物件B及び物件Cなどの物件IDを含む検索画面が表示される。これに対し、ユーザAは、各物件の物件IDに設定されたハイパーリンクを指定することで、各物件IDに対応する詳細情報を含む物件コンテンツを表示するWEBページにジャンプすることができる。WEBページに表示される物件コンテンツに関連ワードが含まれている。よって、図8の例では、検索画面にてユーザAに物件を選択させる(物件の選択結果を入力させる)ことで、対応する関連ワードを抽出することができる。
情報処理装置1は、例えば、検索画面における各物件の詳細情報へのアクセスの有無(物件コンテンツへジャンプするハイパーリンクの使用の有無)により、各物件コンテンツに対するユーザの利用の有無を判定することができる。すなわち、情報処理装置1は、当該判定に基づいて、物件コンテンツそれぞれについて、ユーザが利用したか否かを示す情報を取得できる。
情報処理装置1は、これら取得した情報により、各セッションにおける行動ログデータ21a(図8下段の表)を作成する。なお、図8に示される行動ログデータ21aでは、当該データの最初の行にユーザを識別するためのユーザID(ユーザA)、グループID(グループA01)及び、興味ワードを示す情報(興味ワードA)が示されている。そして、2行目以降に、物件ID(物件A等)、ユーザが利用したか否かを示す情報(「有」又は「無」)、及び、関連ワードを示す情報(関連ワードA等)が示されている。
図9及び図10は、複数の興味ワードが取得される場合における行動ログデータの形態
を例示する。検索サービスにおいて複数の検索語句が指定されることで複数の興味ワードが取得される場合、情報処理装置1は、図9に示されるように、興味ワードごとに行動ログデータを作成してもよいし、図10に示されるように、複数の興味ワードについて1つの行動ログデータを作成してもよい。複数の興味ワードが取得される場合と単一の興味ワードが取得される場合とを同様に扱う場合、情報処理装置1は、図9に示される行動ログデータを作成する。他方、複数の興味ワードが取得される場合と単一の興味ワードが取得される場合とを異なるように扱う場合、情報処理装置1は、図10に示される行動ログデータを作成する。
図7に戻り、情報処理装置1は、作成した行動ログデータに基づいて、ユーザ反応データベースを更新する(ステップ106)。ユーザ反応データベースには、ユーザの興味を特定するための興味ワードと、当該興味ワードに関連する複数の関連ワードと、関連ワードそれぞれに対するユーザの興味具合を示すスコアと、を含むユーザ反応データが蓄積される。本ステップ106では、情報処理装置1は、行動ログデータに基づいて、関連ワードのスコアを更新する(配点処理)。これにより、情報処理装置1は、行動ログデータによって示される物件コンテンツに対するユーザの反応を当該ユーザ反応データに反映する。
図11は、作成された行動ログデータとスコアの配点処理との関係を例示する。図11に示される行動ログデータ21bは、例えば、ユーザが検索サイトにおいて「マンション」を検索語句とする検索を実行した場合におけるセッションに係る行動ログデータである。当該行動ログデータ21bは、当該セッションにおいて、「マンション」を検索語句とする検索結果として、物件(興味語句)として、物件a、物件b、物件c、物件d、及び、物件eが提示され、これらのうちの物件a及び物件eの物件コンテンツがユーザ端末3のWEBブラウザの画面に表示された例を示す。この例に従い、行動ログデータ21bには、表示されたこれらの物件のうち、物件a及び物件eがユーザに利用された物件コンテンツであることを示すログと、物件b、物件c、及び、物件dがユーザに利用されなかった物件コンテンツであることを示すログとが含まれる。
なお、物件aは、関連ワードとして「価格:3800万円」「築年数:5年」を含む物件コンテンツである。物件bは、関連ワードとして「価格:5000万円」「駅:目黒」「築年数:5年」「階数:1階」を含む物件コンテンツである。物件cは、関連ワードとして「価格:3900万円」「駅:目黒」「築年数:15年」を含む物件コンテンツである。物件dは、関連ワードとして「築年数:5年」「階数:1階」「駅:渋谷」を含む物件コンテンツである。物件eは、関連ワードとして「価格:4000万円」「駅:目黒」を含む物件コンテンツである。
情報処理装置1は、各物件コンテンツから関連ワードを取得し、ユーザが利用した物件コンテンツに含まれる関連ワードのスコアに加点する。他方、情報処理装置1は、ユーザが利用しなかった物件コンテンツに含まれる関連ワードのスコアを減点する。なお、本実施形態では、スコアの基準(原点)は「0」であり、正の方向が、本発明の「ユーザがより興味を持っていることを示す方向」に相当する。また、負の方向が、本発明の「ユーザがより興味を持っていないことを示す方向」に相当する。スコアの基準や正負の意味は、適宜設定されるものである。例えば、正負の意味がそれぞれ入れ替わってもよいことは、言うまでもない。
図11に示される例では、情報処理装置1は、ユーザが利用した物件コンテンツに含まれる「価格:3800万円」「価格:4000万円」「駅:目黒」「築年数:5年」を反応ワードとしてこれらのスコアに加点する。なお、本実施形態では、情報処理装置1は、反応ワードを含む、ユーザが利用した物件コンテンツの数に応じて、当該反応ワードのス
コアに係る加点の量を定める。なお、数値で示される反応ワードは、所定の数値範囲毎にまとめて示してもよい。例えば「価格:3800万円」と「価格:4000万円」の場合、最も高い価格以下、図の例では「価格:4000万円以下」とまとめ、同じ反応ワードとして配点する。同様に「築年数:5年」の場合、「築年数:5年以下」として配点する。なお、物件コンテンツに含まれる関連ワードが「築年数:5年」の場合に、「築年数:5年以下」とするのは、「築年数:5年」に反応するユーザは、これ以下の築年数であれば反応すると推定できるためである。同様に、物件コンテンツに含まれる関連ワードが「価格:4000万円」の場合、これ以下の価格であれば反応すると推定できるため「価格:4000万円以下」とする。このように、数値で示される反応ワードは、ユーザが興味を持つ値、例えば築年数が少ないもの、価格が低いものとまとめるように設定する。
図11に示される例では、情報処理装置1は、「価格:4000万円以下」が、ユーザが利用した2つの物件コンテンツ(物件a及び物件e)に含まれているため、「価格:4000万円以下」のスコアに、「+10×2=+20点」の加点をする。また、情報処理装置1は、「駅:目黒」が、ユーザが利用した1つの物件コンテンツ(物件e)に含まれているため、「駅:目黒」のスコアに、「+10×1=+10点」の加点をする。更に、情報処理装置1は、「築年数:5年以下」が、ユーザが利用した1つの物件コンテンツ(物件a)に含まれているため、「築年数:5年以下」のスコアに、「+10×1=+10点」の加点をする。つまり、図11に示される例では、情報処理装置1は、反応ワードのスコアに、「+10×(ユーザが利用した物件コンテンツのうち、反応ワードを含む物件コンテンツの数)」の加点をする。
また、図11に示される例では、情報処理装置1は、ユーザが利用しなかった物件コンテンツに含まれる、反応ワードを除いた関連ワード「価格:5000万円」「階数:1階」「築年数:15年」「駅:渋谷」を無反応ワードとしてこれらのスコアを減点する。なお、本実施形態では、情報処理装置1は、ユーザに利用されなかった物件コンテンツに含まれる反応ワードの数に応じて、当該ユーザに利用されなかった物件コンテンツに含まれる無反応ワードのスコアに係る減点の量を定める。なお、数値で示される無反応ワードは、所定の数値範囲毎にまとめて示してもよい。例えば「価格:5000万円」の場合、「価格:5000万円以上」として配点する。同様に「徒歩:15分」「徒歩:17分」の場合、「徒歩:15分以上」として配点する。「築年数:15年」の場合、「築年数:15年以上」として配点する。なお、物件コンテンツに含まれる関連ワードが「築年数:15年」の場合に、「築年数:15年以上」とするのは、「築年数:15年」の場合に無反応であったユーザは、これ以上の築年数についても無反応であると推定できるためである。同様に、物件コンテンツに含まれる関連ワードが「価格:5000万円」の場合、これ以上の価格であれば無反応であると推定できるため「価格:5000万円以上」とする。このように、数値で示される無反応ワードは、ユーザが興味を持たない値、例えば築年数が多いいもの、価格が高いもの等とまとめるように設定する。
図11に示される例では、ユーザに利用されなかった物件bには、「目黒」及び「築年数:5年」の2つの反応ワードが含まれている。情報処理装置1は、「−10×2=−20点」によって、物件bの無反応ワードのスコアに係る減点の総和を求める。そして、情報処理装置1は、当該総和を無反応ワードの数で割ることにより、無反応ワードのスコアに係る減点の量を定める。すなわち、情報処理装置1は、「価格:5000万円以上」及び「階数:1階」のスコアに、それぞれ、「−10点」の減点をする。
物件cの場合、「価格:3900万円」及び「目黒」の2つの反応ワードが含まれているため、情報処理装置1は、「−10×2=−20点」によって、物件cの無反応ワードのスコアに係る減点の総和を求める。また、物件cの場合、物件bと異なり、無反応ワードは、「築年数:15年」の1つである。そのため、情報処理装置1は、「築年数:15
年」のスコアに、「−20点」の減点をする。
また、物件dには、反応ワードが含まれていない。この場合、情報処理装置1は、無反応ワードのスコアに係る減点の総和を0としてもよいが、本実施形態では、反応ワードが1つ含まれている場合と同様に扱う。つまり、情報処理装置1は、「−10×1=−10」により、物件dの無反応ワードのスコアに係る減点の総和を求める。物件dには、無反応ワードは、「駅:渋谷」の1つしか含まれていないため、情報処理装置1は、「駅:渋谷」のスコアに、「−10点」の減点をする。
すなわち、図11に示される例では、情報処理装置1は、無反応ワードのスコアに、「−10×(物件コンテンツに含まれる反応ワードの数)÷(物件コンテンツに含まれる無反応ワードの数)」の減点をする。なお、本実施形態では、上述のとおり、情報処理装置1は、ユーザに利用されなかった物件コンテンツに反応ワードが含まれない場合、(物件コンテンツに含まれる反応ワードの数)を「1」として扱う。しかしながら、情報処理装置1は、ユーザに利用されなかった物件コンテンツに反応ワードが含まれない場合をこのような例外処理として扱わなくてもよい。例えば、情報処理装置1は、「−10×(物件コンテンツに含まれる反応ワードの数+1)÷(物件コンテンツに含まれる無反応ワードの数)」の減点をすることで、上記例外処理を考慮しなくてもよい。
なお、本実施形態における加点処理及び減点処理の基礎となっている点数(スコア)「+10」「−10」は、それぞれ任意に設定される値であり、適宜、設定される。
図12は、本実施形態に係るユーザ反応データベースのレコード(ユーザ反応データ)を例示する。図12は、例えば、各関連ワードのスコアが0点であった場合に、図11に示される行動ログデータに基づく配点処理がなされた後のユーザ反応データを示す。
図12に示されるユーザ反応データでは、当該データの最初の行にユーザを識別するための情報(ユーザA)、興味ワードを示す情報(マンション)、及び、興味ワードのスコア(+10点)が示されている。なお、興味ワードのスコアは、例えば、セッションの回数に応じて加算される。本実施形態では、情報処理装置1は、興味ワードのスコアについて、1セッションあたり「+10点」の加点をする。当該興味ワードのスコアは、本実施形態では、後述する、外部サーバ2に送信するクエリの要素のうちノット検索の要素に対象の関連ワードを追加するか否かを判定する際に利用される。
そして、2行目以降に、関連ワードを示す情報(「4000万円以下」等)、関連ワードのスコア(「+20点」等)、及び、更新日時を示す情報(「更新日時:2011/12/12/13:01」等)が示されている。
このようにして、情報処理装置1は、行動ログデータに基づいて、関連ワードのスコアを更新する(配点処理)。なお、本実施形態に係る情報処理装置1は、ユーザ反応データを更新してからの経過時間に応じて、興味ワード及び関連ワードのスコアをそれぞれ、減衰させてもよい。
図13及び図14は、本実施形態に係るスコアの減衰処理を例示する。図13では、スコアの一例として、関連ワード「新築マンション」及び「千葉」のスコアが示されている。また、図14では、図13のスコアの変動が示されている。図13及び図14に示される例では、「新築マンション」のスコアの初期値は、「+100点」である。また、「千葉」のスコアの初期値は、「−50点」である。情報処理装置1は、上記のような更新処理によりスコアが更新されてからの経過時間に応じて、絶対値を小さくするように、関連ワードのスコアを減衰させる。具体的には、情報処理装置1は、更新されてから一か月経
過するごとに、スコアを「0.99倍」する。そして、情報処理装置1は、スコアの更新処理が実行された関連ワードについて、経過時間をリセットする。
図13及び図14は、関連ワード「千葉」について、スコアの更新処理が実行されてから4か月経過した後に、再度スコアの更新処理が実行されて、そのスコアが「−60」になった場面を例示している。なお、情報処理装置1は、当該減衰処理をする際の時刻と各関連ワードの更新日時により示される時刻とを比較することで、当該経過時間を判定する。
これまでの処理によって、情報処理装置1は、ユーザが利用した物件コンテンツに含まれる関連ワード(反応ワード)のスコアを加点する。また、情報処理装置1は、ユーザが利用していない物件コンテンツに含まれる、反応ワード以外の関連ワード(無反応ワード)のスコアを減点する。これにより、関連ワードのスコアは、ユーザが利用した物件コンテンツに含まれるほど加点され、ユーザが利用していない物件コンテンツに含まれるほど減点される。すなわち、関連ワードのスコアは、物件コンテンツに対するユーザの反応によって変動する値であり、当該関連ワードに対するユーザの興味具合を示す。
ここで、情報処理装置1は、興味ワードに基づいて取得される物件コンテンツのうち、スコアの高い関連ワードを含む物件コンテンツほど、ユーザの興味を惹く物件コンテンツであると推測することができる。他方、情報処理装置1は、興味ワードに基づいて取得される物件コンテンツのうち、スコアの低い関連ワードを含む物件コンテンツほど、ユーザの興味を惹かない物件コンテンツであると推測することができる。
情報処理装置1は、このような推測を元に、物件コンテンツに対するユーザの過去の反応をフィードバックして、ユーザ端末3に送信する物件コンテンツを選択することで、ユーザにより価値のある物件コンテンツを配信しようとする。この場面を、ユーザが再び検索サービスを利用する場面を用いて説明する。
図7に戻り、第一のユーザが、再度、ユーザ端末3A上のWEBブラウザを操作して、ステップ101と同じ検索語句を入力すると、ユーザ端末3Aは、この検索語句を含む検索要求を情報処理装置1へ送信する(ステップ200)。
情報処理装置1は、検索要求のキーワードに基づいて興味ワードを特定し、この興味ワードを含む第一のユーザのユーザ反応データをデータベース121から取得して、興味ワードに関連する各関連ワードの点数(スコア)を求める(ステップ201)。
更に、情報処理装置1は、データベース121のグループ情報を参照して、第一のユーザと同じグループに属する第二のユーザを認識し、前記興味ワード「マンション」を含む第二のユーザのユーザ反応データをデータベース121から取得し、興味ワードに関連する各関連ワードの点数(スコア)を求める(ステップ202)。ここで、第一のユーザが、一つのグループにのみ属する場合には、第一のユーザのユーザIDに基づき、同じグループIDに対応付けられた他のユーザIDにより第二のユーザが特定できる。また、第一のユーザが、複数のグループに属する場合は、第一のユーザが、検索要求時等に、グループを指定する情報(例えばグループID)をユーザ端末3Aに入力し、ユーザ端末3Aが、このグループを指定する情報を情報処理装置1へ送信する。また、第一のユーザが、検索要求時等に、第二のユーザを指定する情報(例えばユーザID)をユーザ端末3Aに入力し、ユーザ端末3Aが、この第二のユーザを指定する情報を情報処理装置1へ送信してもよい。なお、グループを指定する情報は、興味ワードであってもよい。例えば、ユーザIDと興味ワードの組み合わせをグループIDと一意に対応付けておき、ユーザの入力に基づく興味ワードとユーザIDの組み合わせに応じて、グループIDを特定し、第二のユー
ザを認識する。具体的には、第一のユーザのユーザIDが「0001」で、興味ワードが「マンション」の場合にはグループID「A01」のグループを特定し、第一のユーザのユーザIDが「0001」で、興味ワードが「温泉」の場合にはグループID「X23」のグループを特定するといったように、同じ第一のユーザによる検索であっても、興味ワードによって、第二のユーザを求めるグループを切り替えてもよい。
なお、本実施形態では、第一のユーザと同じグループに属する他のユーザを全て第二のユーザと認識するため、一グループに二人のユーザが属していた場合、第二のユーザは一人であるが、一グループに三人以上のユーザが属していた場合、第二のユーザは複数である。また、第一のユーザと第二のユーザは、特定のユーザに定められたものではなく、検索語句を入力して検索を開始したユーザが第一のユーザであり、この第一のユーザと同じグループに属する他のユーザが第二のユーザである。図6の例において、ユーザID「0001」のユーザが検索を開始し、グループID「X23」のグループを指定した場合、ユーザID「0001」のユーザが第一のユーザであり、ユーザID「0234」「1078」のユーザが第二のユーザである。また、ユーザID「1078」のユーザが検索を開始し、グループID「X23」のグループを指定した場合、ユーザID「1078」のユーザが第一のユーザであり、ユーザID「0234」「0001」のユーザが第二のユーザである。
図7に戻り、情報処理装置1は、第一のユーザのユーザ反応データから得た関連ワードのスコアと、第二のユーザのユーザ反応データから得た関連ワードのスコアとに基づいて、物件コンテンツを要求するためのクエリの要素を特定し、外部サーバ2へ送信する(ステップ203)。例えば第二のユーザのユーザ反応データから得た関連ワードのスコアが閾値未満の場合には、ユーザに提示する物件コンテンツから除外するようにクエリの要素を特定する。これにより、情報処理装置1は、ユーザに提示する物件コンテンツを選択する。
ステップ103と同様、外部サーバ2は、クエリの要素に適合する物件コンテンツを情報処理装置1に返信し(ステップ204)、情報処理装置1は、外部サーバ2から取得した物件コンテンツを記載したウェブページ71(図5)をユーザ端末3Aへ送信する(ステップ205)。そして、第一のユーザが、この物件コンテンツを利用し、ユーザ端末3Aから情報処理装置1へ閲覧要求を行った場合、ステップ105,ステップ106と同様に、行動ログを取得し、ユーザ反応データを求めてデータベース121へ記憶させ、データベース121のユーザ反応データを更新する。このようにユーザの行動に基づいてユーザ反応データを更新し、物件コンテンツの選択にフィードバックすることを繰り返すことで、ユーザの嗜好に沿った有用な物件コンテンツを提供(リコメンド)する。即ち、第二のユーザの反応が低くスコアが閾値未満の項目情報を含む物件情報が除外された結果を、第1のユーザに提供できる。
図15は、複数のユーザに係るスコアの具体例を示す図である。図15(A)は、ユーザID「0001」のユーザ(例えば夫)のスコアであり、「価格4000万円以下:+20点」「目黒駅:+10点」「築5年以下:+10点」「価格5000万円以上:−10点」「1階:−10点」「築15年以上:−30点」「渋谷駅:−50点」となっている。
図15(B)は、ユーザID「0009」のユーザ(例えば妻)のスコアであり、「価格5000万円以下:+20点」「渋谷駅:+10点」「築15年以下:+10点」「徒歩15分以上:−40点」「北向き:−15点」「目黒駅:−5点」となっている。
例えば、夫が第一のユーザ、妻が第二のユーザの場合、情報処理装置1は、夫のスコア
のうち、スコアがプラスの関連ワードをアンド検索の要素とし、夫及び妻のスコアのうち、マイナスの関連ワードをノット検索の要素として、外部サーバ2に送信するクエリの要素に追加する。この第1の閾値が「+5点」、第2の閾値が「−5点」とすると、情報処理装置1から外部サーバ2に送信されるクエリは、「(価格4000万円以下)∧(目黒駅)∧(築5年以下)∧(¬価格5000万円以上)∧(¬1階)∧(¬築15年以上))∧(¬徒歩15分以上)∧(¬北向き)」となる。なお、「∧」は、アンド(論理積)を示し、「¬」は、ノット(否定)を示す。「目黒駅」は、第一のユーザのスコアが「+10点」、第二のユーザのスコアが「−5点」であるので、積算してプラスのスコア「目黒駅:+5点」とし、アンド検索の要素とした。これに限らず、第一のユーザのスコアがプラスであった関連ワードは、第二のユーザのスコアがマイナスであってもアンド検索の要素にしてもよい。また、最も優先度の高いユーザのスコアが、プラスの関連ワードはアンド検索の要素、マイナスの関連ワードはノット検索の要素としてもよい。
図15(A)に示す夫のユーザ反応データだけに基づいて物件コンテンツを選択した場合、「徒歩15分」や「北向き」の物件が提供される可能性があるが、このような物件を提供して、夫が気に入ったとしても、妻の許容範囲ではないので、その後の夫妻の話し合いで却下される可能性が高く、無駄な情報である。本実施形態のリコメンドシステムでは、情報処理装置1が、図15(A)に示す夫のユーザ反応データと図15(B)に示す妻のユーザ反応データに基づいて、夫に提供する物件コンテンツを選択するので、夫に提供する物件コンテンツから妻の許容範囲にない情報、即ち「徒歩15分」や「北向き」のコンテンツを排除する。これにより、本実施形態のリコメンドシステムは、共通の対象物件について検索を行う複数のユーザの許容範囲内とした有用な物件コンテンツをリコメンドする。
また、ユーザの反応データのスコアに基づいて物件コンテンツを選択する手法の別の例としては、閾値に基づいて検索の要素に採用する関連ワードを求めてもよい。例えばスコアが第一の閾値を超えた関連ワードをアンド検索の要素、スコアが第二の閾値未満の関連ワードをノット検索の要素とする。この第一の閾値が「+15点」、第二の閾値が「−15点」とすると、情報処理装置1から外部サーバ2に送信されるクエリは、「(価格4000万円以下)∧(目黒駅)∧(¬築15年以上))∧(¬徒歩15分以上)∧(¬北向き)」となる。
一方、妻が第一のユーザであった場合、情報処理装置1から外部サーバ2に送信されるクエリは、「(価格5000万円以下)∧(渋谷駅)∧(¬築15年以上))∧(¬徒歩15分以上)∧(¬北向き)」となる。
<行動ログデータの取得>
図16は、ユーザが検索サービスを利用した場合において行動ログデータを取得する際の情報処理装置1の処理手順を例示するフローチャートである。
ユーザが検索サービスを利用した場合、情報処理装置1のCPU11は、ユーザ端末3から検索サイトに送信される検索語句をキーワードとして取得する(ステップ301)。次に、CPU11は、取得したキーワードを興味ワードとして、当該興味ワードを要素とするクエリを外部サーバ2に送信し、当該クエリの返信として、当該興味ワードに適合する物件コンテンツを外部サーバ2から取得する(ステップ302)。そして、CPU11は、外部サーバ2から取得した物件コンテンツをユーザ端末3に配信する(ステップ303)。なお、本ステップ301〜303の処理は、図7のステップ101〜104の処理に対応する。
物件コンテンツがユーザ端末3に配信されると、CPU11は、上述した選択の有無や
表示時間を検出する方法により、ユーザ端末3との1セッション間における、配信された物件コンテンツの利用の有無を判定する(ステップ304)。当該判定により、配信された物件コンテンツが1つでもユーザに利用された場合、CPU11は、図8により例示されるような当該セッションに係る行動ログデータを生成する(ステップ305)。そして、CPU11は、生成した行動ログデータをデータベース121に格納し(ステップ306)、処理を終了する(「エンド」)。他方、配信された物件コンテンツのいずれもユーザに利用されなかった場合(ステップ304の「NO」)、CPU11は、当該セッションに係る行動ログデータを生成せず、処理を終了する(「エンド」)。なお、本ステップ304〜ステップ306の処理は、図7のステップ105の処理に対応する。
<ユーザ反応データの更新>
図17は、行動ログデータに基づいてユーザ反応データを更新する際の情報処理装置1の処理手順を例示するフローチャートである。図17では、ループを「L」と略称する。なお、当該ユーザ反応データの更新処理は、図7のステップ106の処理に対応する。
ループ501内で実行される処理は、全てのユーザに係るユーザ反応データの更新処理に該当する。また、ループ503内で実行される処理は、対象のユーザについて得られた全ての興味ワードに係るユーザ反応データの更新処理に該当する。そして、ループ505内で実行される処理は、対象の興味ワードに係るユーザ反応データに含まれるスコアについての加点処理に該当する。また、ループ508内で実行される処理は、対象の興味ワードに係るユーザ反応データに含まれるスコアについての減点処理に該当する。
CPU11は、全てのユーザに係るユーザ反応データの更新処理の実行する(ループ501)。CPU11は、例えば、管理するユーザを一覧にしたユーザリストを参照し、先頭のユーザから順に当該処理を実行する。すべてのユーザについてユーザ反応データの更新処理が完了した際、当該処理は終了する。
CPU11は、全てのユーザに係るユーザ反応データの更新処理を開始すると、ユーザ名を指定してデータベース121を検索することで、更新処理の対象となるユーザの行動ログデータを取得する(ステップ502)。そして、CPU11は、取得した行動ログデータに基づいて、対象のユーザについて得られた全ての興味ワードに係るユーザ反応データの更新処理を実行する(ループ503)。CPU11は、例えば、ステップ502において得られた行動ログデータに含まれる興味ワードを一覧にした興味ワードリストを参照し、先頭の興味ワードから順に当該処理を実行する。すべての興味ワードに係るユーザ反応データの更新処理が完了した際、当該処理は完了する。
CPU11は、対象のユーザについて得られた全ての興味ワードに係るユーザ反応データの更新処理を開始すると、対象のユーザ及び対象の興味ワードに係るユーザ反応データをデータベース121から取得する(ステップ504)。具体的には、CPU11は、対象のユーザ名及び興味ワードを指定して、データベース121から該当するユーザ反応データを取得する。ここで、ユーザ反応データを取得できない場合、CPU11は、新規なユーザ反応データを作成し、作成した当該新規なユーザ反応データに対象の興味ワードに係る行動ログデータを反映する。他方、ユーザ反応データを取得できた場合、配点処理部32は、取得したユーザ反応データベースに対象の興味ワードに係る行動ログデータを反映する。
具体的には、CPU11は、対象の興味ワードに係る行動ログデータを参照して、取得したユーザ反応データに含まれるスコアについての加点処理を実行する(ループ505)。そして、当該加点処理が終了すると、CPU11は、対象の興味ワードに係る行動ログデータを参照して、取得したユーザ反応データに含まれるスコアについての減点処理を実
行する(ループ508)。本実施形態では、CPU11は、ユーザに利用されなかった物件コンテンツに含まれる反応ワードの数に応じて、当該ユーザに利用されなかった物件コンテンツに含まれる無反応ワードのスコアに係る減点の量を定める。そのため、配点処理部32は、加点処理を実行した後に、減点処理を実行する。
ループ505内では、CPU11は、対象の興味ワードに係る行動ログデータを参照して、ユーザが利用した物件を判定する(ステップ506)。具体的には、CPU11は、図8等で示される行動ログデータの各行データのうち、ユーザが物件コンテンツを利用したか否かを示す情報が「有」である行データを特定する。そして、CPU11は、行動ログデータの特定した行データに含まれる関連ワードを反応ワードとして、取得したユーザ反応データに含まれる当該反応ワードのスコアについて加点をする(ステップ507)。
取得したユーザ反応データに当該反応ワードに係る行データが存在しない場合は、CPU11は、例えば、スコアの初期値を0点として、ユーザ反応データに新たな行データを追加する。そして、CPU11は、反応ワードに対する加点処理として、追加した行データのスコアについて当該加点をする。ここで、上述のとおり、本実施形態では、CPU11は、反応ワードのスコアについて、「+10×(ユーザが利用した物件コンテンツのうち、当該反応ワードを含む物件コンテンツの数)」の加点をする。なお、この際、CPU11は、当該処理をしている時刻により、当該反応ワードに係る更新日時を示す情報も更新する。
また、ループ508内では、CPU11は、対象の興味ワードに係る行動ログデータを参照して、ユーザが利用していない物件を判定する(ステップ509)。具体的には、CPU11は、図8等で示される行動ログデータの各行データのうち、ユーザが物件コンテンツを利用したか否かを示す情報が「無」である行データを特定する。CPU11は、行動ログデータの特定した行データに含まれる関連ワードのうち、上記加点処理をした反応ワードを除く関連ワードを無反応ワードとして、取得したユーザ反応データに含まれる当該無反応ワードのスコアについて減点する(ステップ510)。
取得したユーザ反応データに当該無反応ワードに係る行データが存在しない場合は、上記反応ワードに係る加点処理と同様に処理される。本実施形態では、CPU11は、無反応ワードのスコアについて、「−10×(物件コンテンツに含まれる反応ワードの数)÷(物件コンテンツに含まれる無反応ワードの数)」の減点をする。なお、本実施形態では、上述のとおり、CPU11は、ユーザに利用されなかった物件コンテンツに反応ワードが含まれない場合、(物件コンテンツに含まれる反応ワードの数)を「1」として扱う。
なお、ループ505及びループ508は、それぞれ、対象の興味ワードに係る行動ログデータにより示される物件コンテンツの数(行の数)だけ繰り返される。なお、ループ508の処理が完了した後に、CPU11は、ステップ504で取得したユーザ反応データに含まれる興味ワードのスコアについて加点処理をする(ステップ511)。例えば、CPU11は、興味ワードのスコアに、「+10」の加点をする(ステップ511)。このような処理によって、CPU11は、全てのユーザに係るユーザ反応データの更新処理を実行する。
<スコアの減衰>
図18は、各スコアを減衰させる際の情報処理装置1の処理手順を例示するフローチャートである。
CPU11は、所定のタイミングで、データベース121に蓄積されているユーザ反応データに格納された興味ワード及び関連ワードそれぞれのスコア更新からの経過時間を判
定する(ステップ601)。
CPU11は、例えば、当該スコアの減衰処理を実行する時刻と関連ワードのスコアの更新日時により示される時刻とを比較することで、関連ワードのスコア更新からの経過時間を判定する。また、CPU11は、興味ワードのスコアを更新した更新日時を示す情報(不図示)がユーザ反応データに含まれる場合、関連ワードと同様にして、興味ワードのスコア更新からの経過時間を判定する。他方、CPU11は、ユーザ反応データに含まれる関連ワードの更新日時のうち、最新の更新日時を興味ワードのスコアを更新した更新日時として利用してもよい。この場合、CPU11は、当該スコアの減衰処理を実行する時刻と当該最新の更新日時により示される時刻とを比較することで、興味ワードのスコア更新からの経過時刻を判定する。
CPU11は、経過時間を判定した興味ワード及び関連ワードそれぞれのスコアを取得する(ステップ602)。そして、CPU11は、経過時間に応じて各スコアを減衰させた後のスコアを計算する(ステップ603)。具体的には、CPU11は、各スコアについて、更新されてから一か月経過するごとに、「0.99倍」の乗算をする。この処理によって、各スコアは、更新日時から経過するほど、その絶対値が小さくなる。配点処理部32は、当該乗算した結果により、対象のスコアを更新する(ステップ604)。なお、本ステップ601〜604の処理は、図7のステップ106の処理のうちスコアの減衰に係る処理に対応する。
<物件コンテンツの取得>
図19は、物件コンテンツを要求するためのクエリを外部サーバ2に送信する際の情報処理装置1の処理手順を例示するフローチャートである。
CPU11は、ユーザ端末3に入力された入力情報に基づいて特定されるキーワードを取得する(ステップ700)。本ステップ700は、図16におけるステップ301と図10におけるステップ404に対応する。
また、CPU11は、ユーザ端末3に入力された入力情報から第一のユーザのユーザID及び共通の検索を行うグループのグループIDを取得し、データベース121のグループ情報を参照して第一のユーザと同じグループに属するユーザのユーザIDを求め、第二のユーザを特定する(ステップ701)。
CPU11は、ステップ700で取得したキーワードを興味ワードとして含む第一のユーザに係るユーザ反応データをデータベース121から検索し、当該ユーザ反応データに含まれる関連ワードのスコアを求める(ステップ702)。同様に、CPU11は、ステップ700で取得したキーワードを興味ワードとして含む第二のユーザに係るユーザ反応データをデータベース121から検索し、当該ユーザ反応データに含まれる関連ワードのスコアを求める(ステップ703)。
ステップ702の検索によって、第一のユーザのユーザ反応データが取得できた場合(ステップ704の「YES」)、CPU11は、取得したユーザ反応データを参照して、スコアが第1の閾値を超える関連ワードが存在するか否か判定する(ステップ705)。そして、CPU11は、スコアが第1の閾値を超える関連ワードをアンド検索の要素として、外部サーバ2に送信するクエリの要素に設定する。なお、第1の閾値は適宜設定される。また、本例では、アンド検索の要素を第一のユーザのユーザ反応データのみから求めることで、第一のユーザに提示する物件コンテンツを第一のユーザの意図に沿って絞り込めるようにしたが、必ずしもこれに厳密に限定されるものではなく、第二のユーザのユーザ反応データのうち、スコアの高い関連ワードをアンド検索の要素に設定してもよい。例
えば、第二のユーザのユーザ反応データのうち、最もスコアの高い関連ワードやスコアが第三の閾値(但し、第一の閾値<第三の閾値)を超えた関連情報をアンド検索の要素に設定してもよい。このように第二のユーザのユーザ反応データから関連ワードを検索の要素に加える場合、各ユーザの優先度に応じて検索の要素に加える程度を異ならせてもよい。例えば、第一のユーザより優先度の高い第二のユーザのユーザ反応データから関連ワードを検索の要素に加える。また、第二のユーザに係るユーザ反応データの関連ワードのスコアを優先度に応じて低減させ、閾値を超えた関連ワードを検索の要素に加える。具体的には、優先度の高いユーザの関連ワードのスコアを一割、優先度の低いユーザの関連ワードのスコアを二割低減させ、第一又は第三の閾値を超えた関連ワードをアンド検索の要素に加える。
また、CPU11は、第一のユーザ及び第二のユーザのユーザ反応データを参照して、スコアが第2の閾値以下の関連ワードが存在するか否か判定する(ステップ707)。スコアが第2の閾値以下の関連ワードが存在しない場合(ステップ707の「NO」)、CPU11は、処理をステップ709に進める。他方、スコアが第2の閾値以下の関連ワードが存在する場合(ステップ707の「YES」)、CPU11は、第一のユーザ及び第二のユーザのユーザ反応データのうち、スコアが第2の閾値以下の関連ワードをノット検索の要素として、外部サーバ2に送信するクエリの要素に設定する(ステップ708)。このように第二のユーザのユーザ反応データから関連ワードをノット検索の要素に加える場合、各ユーザの優先度に応じて検索の要素に加える程度を異ならせてもよい。例えば、第二のユーザに係るユーザ反応データの関連ワードのスコアを優先度に応じて増減させ、閾値を超えた関連ワードを検索の要素に加える。具体的には、優先度の高いユーザの関連ワードのスコアを増加させ、優先度の低いユーザの関連ワードのスコアを低減させ、第二の閾値以下の関連ワードをアンド検索の要素に加える。
そして、CPU11は、ステップ705,ステップ706で設定したアンド検索の要素及びノット検索の要素を含むクエリを外部サーバ2へ送信し、このクエリに対応する物件コンテンツを取得する(ステップ709)。
一方、ステップ703の検索において、第一のユーザ反応データが取得できなかった場合(ステップ704の「NO」)、CPU11は、第二のユーザに係るユーザ反応データから、ステップ700において取得したキーワードを興味ワードとして含むユーザ反応データを取得する(ステップ710)。
そして、CPU11は、ステップ706又はステップ708で設定したように、第二のユーザのユーザ反応データから、アンド検索の要素となる関連ワード、及び、ノット検索の要素となる関連ワードを取得し、取得した関連ワードをそれぞれの検索の要素として、クエリの要素に設定し(ステップ711)、ステップ709へ移行する。
以上のように、本実施形態によれば、夫婦で購入する不動産を検討する場合のように、共通の検討対象について検索する複数のユーザをグループとして記憶しておき、同じグループに属する各ユーザのユーザ反応データに基づいて物件コンテンツを選択するので、リコメンドする物件コンテンツの内容を各ユーザの許容範囲内とすることができる。
特に、本実施形態では、検索を開始した第一のユーザと同じグループに属する第二のユーザが興味を持っていない物件コンテンツ(NG物件)を第一のユーザに提示する物件コンテンツから除外することにより、提示したとしても、その後、第一のユーザと第二のユーザの話し合いによって淘汰されてしまう無駄な情報を排除できる。即ち、有用な物件コンテンツを精度よくリコメンドできる。
また、各ユーザの対象物件に対する行動を取得し、これに基づいてユーザ反応データを更新し、ユーザの反応をユーザ反応データにフィードバックするので、このユーザ反応データに基づき、ユーザの意図に適合した有用な物件コンテンツをリコメンドできる。
<その他>
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
例えば、本実施形態では、主に不動産の例を説明したが、対象の物件は、不動産に限らず、動産やサービスなど、検索の対象になるものであればよい。また、スコアの減衰に係る処理は、他の処理から独立して処理される。この場合、スコアの減衰に係る処理が実行される時間とスコアを減衰させる条件(一か月の経過)を満たす時間との間にずれが生じる場合がある。この場合、図19により示される物件コンテンツの取得等の当該スコアを利用する場面において、正確な値が反映されない可能性がある。よって、CPU11は、図19により示される処理に先駆けて、スコアの減衰に係る処理を実行してもよい。
また、本実施形態では、物件コンテンツに対するユーザの利用の有無を示す行動ログデータはデータベース121に蓄積されている。しかしながら、CPU11が、行動ログデータを取得するごとに、配点処理を実行する場合、行動ログデータは、データベース121に蓄積されなくてもよい。