以下、添付図面を参照して、本発明の実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
図1は、本実施形態に係るコンテンツ検索結果提供システムの機能構成を示すブロック図である。図1に示されるように、コンテンツ検索結果提供システム200は、統合サーバ(統合エンジン)300と、検索サーバ(検索エンジン)400とを備えている。携帯電話等のユーザ端末100は、ネットワークNを介して統合サーバ300と接続されている。
例えば、統合サーバ300は、移動体通信網であるネットワークNを介し、通信事業者により運営されるコンテンツ配信サービスを、ユーザ端末100に対して提供する。コンテンツ配信サービスは、例えば通信事業者のネットワークN上で、ユーザからの要求に応じて様々なコンテンツを配信するサービスである。コンテンツとは、情報の内容又は中身を意味する。コンテンツには、例えば、音楽、動画、電子書籍、ゲーム等のデジタルコンテンツが含まれる。また、コンテンツには、オンラインショッピングサービス等で取り扱われる商品情報等が含まれる。
コンテンツ配信サービスが配信するコンテンツには、予めコンテンツがどのような情報かを示すメタデータ(属性情報)が対応付けられている。例えば、コンテンツには、通信事業者により、タイトル又はカテゴリ等のメタデータが予め対応付けられている。タイトルとは、コンテンツに与えられる名称である。例えば、コンテンツ配信サービスにおいて配信されるコンテンツが曲である場合にはその曲に対するタイトルとして、その曲名が与えられる。カテゴリとは、コンテンツをその性質に応じて区分するための分類である。例えば、コンテンツ配信サービスにおいて配信されたコンテンツがあるアイドルの曲である場合には、そのコンテンツは音楽という性質を有するので、カテゴリ「音楽」と対応付けられる。また、当該コンテンツは、アイドルの曲という性質も有するので、カテゴリ「アイドル」とも対応付けられる。
なお、コンテンツ配信サービスが配信するコンテンツにカテゴリが予め対応付けられていることにより、コンテンツ配信サービスは、例えばカテゴリ別に整理されたコンテンツを配信可能である。コンテンツには、コンテンツそのものだけでなく、コンテンツのメタデータが含まれてもよい。
統合サーバ300は、ユーザ端末100から検索クエリを受信して検索要求を受け付ける。検索クエリとは、検索結果として情報を引き出すための検索要求を示す。検索クエリは、例えばユーザ端末100において検索の際に入力される単語又はフレーズ(複合語)である。例えば、ユーザ端末100において表示された上記コンテンツ配信サービス上の検索窓に、ユーザからアーティスト名等の単語が入力されると、この入力された単語(検索クエリ)がコンテンツ配信サービスにおいて検索要求として受け付けられる。これにより、統合サーバ300は、ユーザ端末100からの検索要求を受け付ける。
統合サーバ300は、検索クエリに対応するコンテンツの検索結果を検索サーバ400から取得する。検索クエリに対応するコンテンツとは、例えば検索クエリが示す単語又はフレーズに関連するコンテンツ等、検索クエリによる検索要求にヒットする(当てはまる)コンテンツを示す。検索クエリによる検索要求にヒットするコンテンツは、検索サーバ400によって算出されて複数取得される。以下、このように検索クエリによる検索結果として複数取得されるコンテンツを、単に「検索結果コンテンツ」とも称する。統合サーバ300は、検索サーバ400により取得された検索結果コンテンツを示す情報を、検索結果としてユーザ端末100へ出力する。ユーザ端末100は、ディスプレイ等の表示部を備えており、統合サーバ300から出力された検索結果コンテンツを示す情報を、当該表示部で表示する。ユーザ端末100の表示部において、検索結果コンテンツを示す情報は、例えば検索結果コンテンツに含まれる各コンテンツのネットワーク上の場所を示すリンク情報等の、コンテンツを示す情報を含んだ一覧情報である。以下、検索結果コンテンツを示す情報を、単に「検索結果コンテンツの一覧情報」とも称する。
ユーザ端末100において、このような検索結果コンテンツの一覧情報の中から、所望のコンテンツを示す情報がユーザにより選択される。ここで、選択とは、一覧情報の中から一つのコンテンツを示す情報を選ぶことにより、その情報が示すコンテンツを選択することをいう。選択には、閲覧を意味する選択(例えば、コンテンツ詳細情報のリンク選択等)だけでなく、購入を目的とする選択(例えば、コンテンツ購入用のリンク選択等)も含まれる。選択は、例えばクリック操作等によって実現される。以下、本実施形態では、ユーザがクリック操作によってコンテンツを選択した場合を想定して説明する。以下、クリック操作によるコンテンツの選択を、単に「クリック」という。例えば、ユーザ端末100の表示部で表示された検索結果コンテンツの一覧情報のうちのいずれかの情報をユーザがクリックした場合、そのクリックされた情報が示すコンテンツが選択されたことを示す。このようにしてコンテンツが選択されると、選択されたコンテンツを取得するように、ユーザ端末100から統合サーバ300へコンテンツの送信要求が行われる。
図2は、統合サーバ300及び検索サーバ400のハードウェア構成図である。図1に示される統合サーバ300及び検索サーバ400は、物理的には、図2に示されるように、1又は複数のCPU11、主記憶装置であるRAM12及びROM13、入力デバイスであるキーボード及びマウス等の入力装置14、ディスプレイ等の出力装置15、ネットワークカード等のデータ送受信デバイスである通信モジュール16、半導体メモリ等の補助記憶装置17などを含むコンピュータシステムとして構成されている。コンテンツ検索結果提供システムが有する各機能は、図2に示されるCPU11、RAM12等のハードウェア上に1又は複数の所定のコンピュータソフトウェアを読み込ませることにより、CPU11の制御のもとで入力装置14、出力装置15、通信モジュール16を動作させるとともに、RAM12や補助記憶装置17におけるデータの読み出し及び書き込みを行うことで実現される。
以下、再び図1を参照し、統合サーバ300の機能構成について説明する。統合サーバ300は、検索履歴取得部301(検索履歴取得手段)、検索履歴情報記憶部302(記憶手段)、クエリカテゴリ辞書303、クエリカテゴリ辞書作成部304(作成手段)、ユーザ特徴ベクトル算出部(ユーザ特徴量算出手段)305、ユーザ特徴ベクトル記憶部306、検索要求受付部307、検索要求送信部308、検索結果コンテンツ取得部309(検索結果取得手段)、順位算出部310(順位算出手段)、及び検索結果コンテンツ出力部311(出力手段)を含んで構成されている。
検索履歴取得部301は、検索要求を行ったユーザ端末100のユーザIDと、そのユーザIDのユーザ端末100からの検索クエリと、その検索クエリによるコンテンツの検索結果のうちユーザ端末100において選択されたコンテンツとを取得する。ユーザ端末100のユーザIDとは、ユーザ端末100を識別するための番号又は略称である。ユーザIDは、例えば各ユーザがコンテンツ配信サービスを利用するために必要な情報である。ユーザIDは、ユーザ端末100においてコンテンツ配信サービスを利用する際、ユーザ端末100の表示部において表示されるコンテンツ配信サービスのログイン画面等にユーザにより入力される。ユーザIDが入力されると、このユーザIDはユーザ端末100に記憶される。
検索クエリは、ユーザ端末100の表示部において表示された上記コンテンツ配信サービス上の検索窓にユーザによって入力される。検索クエリが入力されると、当該検索クエリを示す情報が、上記ユーザIDと対応付けられた状態でユーザ端末100に記憶される。このようにしてユーザ端末100にユーザIDと対応付けられて記憶される過去の検索クエリを示す履歴情報(以下、単に「検索クエリ履歴」とも称する)が、例えば検索クエリを示す情報が記憶(検索クエリ履歴が更新)される度にユーザ端末100から統合サーバ300へ送信される。検索履歴取得部301は、ユーザ端末100から統合サーバ300へ送信された検索クエリ履歴を受信して取得する。
なお、本実施形態では、検索クエリがユーザ端末100に記憶される際、当該検索クエリが入力された日時を示す情報が、検索クエリ履歴に対応付けられて記憶される。そして、当該日時を示す情報が、検索クエリ履歴と共に、ユーザ端末100から統合サーバ300へ送信される。検索履歴取得部301は、上述のように検索クエリ履歴を取得する際、検索クエリ履歴と共に、当該日時を示す情報を併せて受信して取得する。なお、ユーザ端末100から統合サーバ300へ検索クエリ履歴及びこれに対応付けられた日時を示す情報が送信されるタイミングは、検索クエリを示す情報が記憶される度でなくてもよく、所定のタイミングで送信されてもよい。
また、上記コンテンツ配信サービス上で入力された検索クエリによる検索結果として取得された検索結果コンテンツの一覧情報のうちの一つがユーザによりクリックされると、検索結果コンテンツに含まれるコンテンツのうち当該クリックされたコンテンツを示す情報(例えば、タイトル及びカテゴリ等のメタデータ)が、上記ユーザIDと、その検索結果コンテンツを取得するのに用いた検索クエリと対応付けられた状態で、ユーザ端末100に記憶される。このようにしてユーザ端末100にユーザID及び検索クエリと対応付けられて記憶される、過去のクリックされたコンテンツを示す情報(以下、単に「検索クリック履歴」とも称する)が、例えば当該クリックされたコンテンツを示す情報が記憶(検索クリック履歴が更新)される度にユーザ端末100から統合サーバ300へ送信される。検索履歴取得部301は、ユーザ端末100から統合サーバ300へ送信された検索クリック履歴を受信して取得する。
なお、本実施形態では、クリックされたコンテンツを示す情報がユーザ端末100に記憶される際、当該コンテンツがクリックされた日時を示す情報が、検索クリック履歴に対応付けられて記憶される。そして、当該日時を示す情報が、検索クリック履歴と共に、ユーザ端末100から統合サーバ300へ送信される。検索履歴取得部301は、上述のように検索クリック履歴を取得する際、検索クリック履歴と共に、当該日時を示す情報を併せて受信して取得する。なお、ユーザ端末100から統合サーバ300へ検索クリック履歴及びこれに対応付けられた日時を示す情報が送信されるタイミングは、クリックされたコンテンツを示す情報が記憶される度でなくてもよく、所定のタイミングで送信されてもよい。
以上のようにして、検索履歴取得部301は、複数のユーザID毎に、過去の検索クエリと、過去の検索クエリに対応するコンテンツのうち、ユーザが選択したコンテンツのカテゴリとを関連付けた情報である複数ユーザ履歴(以下、単に「複数ユーザ履歴」とも称する)を取得する。検索履歴取得部301は、取得した複数ユーザ履歴を、検索履歴情報記憶部302に出力する。検索履歴取得部301は、複数ユーザ履歴を取得する度に検索履歴情報記憶部302に出力を行ってもよいし、所定時間毎にその出力を行ってもよい。
検索履歴情報記憶部302は、検索履歴取得部301から出力された複数ユーザ履歴を記憶する。図3は、検索履歴情報記憶部302により記憶される情報の内容を示す説明図である。図3に示されるように、検索履歴情報記憶部302には、複数ユーザ履歴として、ユーザID、検索クエリ、クリックしたコンテンツ、及び日時を示す各情報が互いに対応付けられて格納されている。ユーザIDは、上述したように、ユーザ端末100を識別するための番号又は略称である。図3において、ユーザIDは例えば「User1」で示されている。検索クエリを示す情報とは、上述した検索クエリ履歴である。クリックしたコンテンツを示す情報とは、上述した検索クリック履歴(タイトル及びカテゴリのメタデータ)である。日時を示す情報とは、上述したように、検索クエリ履歴又は検索クリック履歴に対応付けられた日時を示す情報である。図3において、コンテンツの検索結果を示す一覧情報の中からいずれかの情報がクリックされた場合にはその情報をクリックした日時(すなわち、検索クリック履歴に対応付けられた日時)を示す情報が格納され、いずれの情報もクリックされていない場合には検索要求を行った日時(すなわち、検索クエリ履歴に対応付けられた日時)を示す情報が格納される。
例えば、図3では、ユーザID「User1」のユーザ端末100は、検索クエリ「アイドルA」で検索要求を行っており、その検索クエリによる検索結果コンテンツの一覧情報のうち、タイトル「曲K」及びカテゴリ「ミュージック、アイドル」のメタデータで対応付けられたコンテンツを示す情報を、2014年9月15日にクリックしたことが示されている。なお、図3において、アルファベットを用いた文字列によって固有名詞を示している。例えば、検索クエリ「アイドルA」とは、アイドルの固有名詞「A」という検索クエリであることを示している。
また、例えば、ユーザID「User6」の欄において、検索クエリ「アイドルA」及びこの検索クエリにより2014年9月13日に検索されたという日時のみが格納され、クリックしたコンテンツのメタデータ(タイトル及びカテゴリ)が格納されていない。これは、ユーザID「User6」のユーザ端末100は、検索クエリ「アイドルA」で検索要求を行ったが、その検索クエリによる検索結果コンテンツの一覧情報のうちの何れもクリックしなかったことを示している。すなわち、図3では、ユーザID「User6」のユーザ端末100は、検索クリック履歴を有していないことを示している。
検索履歴情報記憶部302は、検索履歴取得部301によって情報が出力される度にその情報を記憶する。よって、図3に示されるデータベースは、検索履歴取得部301によって情報が出力される度に更新される。よって、図3では、ユーザID「User1」〜「User6」のデータを図示しているが、これは一例に過ぎず、ユーザID「User1」〜「User6」による更なるデータ、又はその他のユーザIDのデータ等を含み得る。
クエリカテゴリ辞書303は、所定の検索クエリと、コンテンツのカテゴリ毎の所定の検索クエリに対する対応度合いとを関連付けた情報とが格納されるデータベースである。本実施形態において、クエリカテゴリ辞書303は、後述のクエリカテゴリ辞書作成部304により作成される。
図4は、クエリカテゴリ辞書303に格納される情報の内容を示す説明図である。図4の(a)は、クエリカテゴリ辞書303の一例を示している。図4の(a)に示されるクエリカテゴリ辞書303には、所定の検索クエリと、所定の検索クエリに対応する各カテゴリと、所定の検索クエリに対応する各カテゴリの当該検索クエリに対する対応度合いを示す評価値(以下、単に「クエリカテゴリ評価値」と称する)と、が格納されている。
図4の(a)のクエリカテゴリ辞書303では、検索クエリ「アイドルA」に対応するカテゴリ「アイドル」、「ミュージック」、「動画」、及び「画像」のそれぞれのクエリカテゴリ評価値が「1.0」、「0.50」、「0.25」、及び「0.25」である。すなわち、図4の(a)のクエリカテゴリ辞書303では、検索クエリ「アイドルA」に関し、カテゴリ「アイドル」との対応度合いが最も高く、続いてカテゴリ「ミュージック」、続いてカテゴリ「動画」及びカテゴリ「画像」の順に、その対応度合いが低くなることを示している。
クエリカテゴリ辞書作成部304は、例えば検索履歴情報記憶部302により記憶された複数ユーザ履歴に基づき、上述のクエリカテゴリ辞書303を作成する。クエリカテゴリ辞書作成部304は、複数ユーザ履歴に含まれる全てのデータに基づきクエリカテゴリ辞書303を作成してもよいし、複数ユーザ履歴に含まれるデータのうち例えば予め設定された期間遡ったデータだけに基づきクエリカテゴリ辞書303を作成してもよい。クエリカテゴリ辞書作成部304は、検索履歴情報記憶部302における複数ユーザ履歴を参照し、所定の検索クエリと、その検索クエリに対応する各カテゴリとを抽出する。そしてクエリカテゴリ辞書作成部304は、クエリカテゴリ評価値を、次のように算出する。
クエリカテゴリ辞書作成部304は、各カテゴリが何回抽出されるかをカウントする。各カテゴリが抽出された回数は、各カテゴリと対応付けられたコンテンツがクリックされた回数(以下、単に「クリック数」と称する)を示す。例えば、クエリカテゴリ辞書作成部304は、図3に示される複数ユーザ履歴を参照し、検索クエリ「アイドルA」と、この検索クエリに対応付けられたカテゴリ「アイドル」、「ミュージック」、「動画」、及び「画像」を抽出する。そしてこれらの各カテゴリのクリック数(各カテゴリと対応付けられたコンテンツがクリックされた回数)をカウントする。
図4の(b)は、クエリカテゴリ辞書303の作成過程で算出される各カテゴリのクリック数Xと、そのクリック数Xのうち最大となる数を示す最大クリック数Max(X)とを示している。例えば、図3に示される複数ユーザ履歴には、検索クエリ「アイドルA」に対応するカテゴリ「アイドル」が4つ存在するので、カテゴリ「アイドル」が4回抽出される。よって、カテゴリ「アイドル」のクリック数Xは「4」とカウントされる。同様にして、検索クエリ「アイドルA」に対応するカテゴリ「ミュージック」のクリック数Xは「2」、検索クエリ「アイドルA」に対応するカテゴリ「動画」のクリック数Xは「1」、検索クエリ「アイドルA」に対応するカテゴリ「画像」のクリック数Xは「1」とカウントされる。よって、検索クエリ「アイドルA」に対応する各カテゴリのクリック数Xのうち、最大クリック数Max(X)は、カテゴリ「ミュージック」のクリック数Xである。
クエリカテゴリ辞書作成部304は、図4の(b)に示されるような各カテゴリ別にカウントされたクリック数を用いて、次の数式(1)に基づき、各カテゴリのクエリカテゴリ評価値を算出する。当該クエリカテゴリ評価値の算出は、検索クエリに対応する全てのカテゴリについて行う。
Y(i)=X(i)/max(X(j)) ・・・(1)
ただし、1≦j≦n
Y(i):i番目のカテゴリのクエリカテゴリ評価値
X(i):i番目のカテゴリのクリック数
n:カテゴリ種類数
例えば、検索クエリ「アイドルA」に対応する各カテゴリのクエリカテゴリ評価値を算出する場合、クエリカテゴリ辞書303は、図4の(b)に示されるように、検索クエリ「アイドルA」に対応する各カテゴリのうちクリック数が最大となる「ミュージック」のクリック数「4」で、各カテゴリのクリック数をそれぞれ除算することにより、各カテゴリのクエリカテゴリ評価値を算出する。これにより、検索クエリ「アイドルA」に対応する各カテゴリ「アイドル」、「ミュージック」、「動画」、及び「画像」の各クエリカテゴリ評価値は、図4の(a)に示されるように、それぞれ「1.0」、「0.50」、「0.25」、及び「0.25」と算出される。
クエリカテゴリ辞書作成部304は、検索履歴情報記憶部302における複数ユーザ履歴に含まれる検索クエリ毎に、上述の処理を行う(検索クエリを変えて上述の処理を繰り返す)。すなわち、複数ユーザ履歴に含まれる全ての検索クエリについて、その検索クエリに対応付けられた各カテゴリを抽出し、上述の計算方法によって、抽出した各カテゴリのクエリカテゴリ評価値を算出する。なお、クエリカテゴリ辞書作成部304は、複数ユーザ履歴に含まれる全ての検索クエリについてクエリカテゴリ評価値を算出しなくてもよい。例えば、上記コンテンツ配信サービスの利用者であるユーザや当該サービスの提供元である事業者等により、予め統合サーバ300に設定された検索クエリについてのみクエリカテゴリ評価値を算出してもよい。
なお、上記数式(1)の代わりに、例えば以下に示す数式(2)によって各カテゴリの評価値を算出してもよい。
Y(i)={X(i)}2/{max(X(j))}2 ・・・(2)
この数式(2)によれば、数式(1)と比べて、抽出されたカテゴリのクリック数が少ない場合には、そのカテゴリのクエリカテゴリ評価値がより小さな値として算出される。このため、数式(2)を用いる場合、クリック数が少ないカテゴリのクエリカテゴリ評価値の上昇傾向を緩やかにする効果がある。よって、数式(2)は、クリック数が多いカテゴリほど、検索クエリとの対応度合いを強めたい場合に好適である。
また、上記数式(1)の代わりに、例えば以下に示す数式(3)によってカテゴリ毎のクエリカテゴリ評価値を算出してもよい。
Y(i)={X(i)/max(X(j))}1/2 ・・・(3)
この数式(3)によれば、数式(2)とは逆に、数式(1)と比べて、抽出されたカテゴリのクリック数が少ない場合にも、そのカテゴリのクエリカテゴリ評価値がより大きな値として算出される。このため、クリック数が多い場合のクエリカテゴリ評価値の上昇傾向を緩やかにする効果がある。よって、数式(3)は、クリック数が少ないカテゴリでも、検索クエリとの対応度合いを持たせたい場合に好適である。
クエリカテゴリ辞書作成部304は、上述のようにして算出したクエリカテゴリ評価値を、検索クエリ及びカテゴリ毎に対応付けてデータベースとして格納する。これにより、クエリカテゴリ辞書303が作成される。
なお、クエリカテゴリ辞書作成部304は、検索クエリに対応する各カテゴリのクエリカテゴリ評価値の算出を、検索履歴情報記憶部302における複数ユーザ履歴が更新される度に行ってもよく、所定期間毎に行ってもよい。すなわち、クエリカテゴリ辞書作成部304は、複数ユーザ履歴が更新される度にクエリカテゴリ辞書303を更新してもよいし、複数ユーザ履歴の更新とは異なるタイミング等で所定期間毎にクエリカテゴリ辞書303を更新してもよい。
ユーザ特徴ベクトル算出部(算出手段)305は、コンテンツのカテゴリに対するユーザID毎の嗜好性の対応度合いを示すユーザ特徴量を算出する。コンテンツのカテゴリに対するユーザID毎の嗜好性の対応度合いを示すユーザ特徴量とは、どのカテゴリのコンテンツにユーザの興味関心がどれほど向いているかを示す各カテゴリに対する評価値を含むベクトル量として示される情報である。以下、コンテンツのカテゴリに対するユーザID毎の嗜好性の対応度合いを示すユーザ特徴量を、単に「ユーザ特徴ベクトル」と称する。ユーザ特徴ベクトル算出部305は、算出したユーザ特徴ベクトルをユーザ特徴ベクトル記憶部306に出力する。ユーザ特徴ベクトル記憶部306は、出力されたユーザ特徴ベクトルを記憶する。
図5は、ユーザ特徴ベクトル記憶部306により記憶される情報の内容を示す説明図である。図5では、上述のユーザID「UserA」のユーザ特徴ベクトル評価値x’が格納されたデータベースの例を示している。ユーザ特徴ベクトル評価値x’とは、ユーザ特徴ベクトルが示す各カテゴリに対する評価値である。図5のデータベースでは、ユーザID「UserA」に対応付けられた各カテゴリと、各カテゴリに対するユーザ特徴ベクトル評価値x’とが、格納されている。ユーザID「UserA」に対応付けられた各カテゴリとは、ユーザID「UserA」の興味関心が向けられたカテゴリを示している。各カテゴリに対するユーザ特徴ベクトル評価値x’とは、ユーザID「UserA」の興味関心が向けられた各カテゴリに対し、その興味関心の度合いがどれほどかを評価する指標である。
本実施形態では、ユーザ特徴ベクトル評価値x’の値が大きいほど、各カテゴリに対するユーザの興味関心の度合いが高いことを示している。図5のデータベースでは、ユーザID「UserA」の興味関心が向けられた各カテゴリ「アイドル」、「ミュージック」、「動画」、「画像」、「コミック」、「映画」、及び「アニメ」の各ユーザ特徴ベクトル評価値x’を比較すると、カテゴリ「コミック」のユーザ特徴ベクトル評価値x’が最も大きい。よって、ユーザID「UserA」の興味関心の度合いは、カテゴリ「コミック」に対し最も高いことが示されている。
ユーザ特徴ベクトル算出部305は、図5に示されるようなユーザ特徴ベクトルを、例えば検索クエリ履歴を用いて算出する。ユーザ特徴ベクトル算出部305は、クエリカテゴリ辞書303から、クエリカテゴリ評価値(コンテンツのカテゴリ毎の過去の検索クエリに対応する対応度合いを関連付けた情報)を抽出し、抽出されたクエリカテゴリ評価値に基づき、ユーザ特徴ベクトルを算出する。以下、より具体的に説明する。
ユーザ特徴ベクトル算出部305は、まず、検索履歴情報記憶部302における複数ユーザ履歴を参照し、ユーザ特徴ベクトルの算出対象であるユーザ端末100の検索クエリ履歴を抽出する。ユーザ特徴ベクトル算出部305は、クエリカテゴリ辞書303から、抽出した検索クエリ履歴が示す過去の検索クエリに対応する各カテゴリのクエリカテゴリ評価値を抽出する。ユーザ特徴ベクトル算出部305は、この抽出されたクエリカテゴリ評価値に基づき、ユーザ特徴ベクトルを算出する。
また、本実施形態において、ユーザ特徴ベクトル算出部305は、検索履歴情報記憶部302における複数ユーザ履歴を参照し、所定のユーザ端末100における検索クリック履歴を抽出する。ユーザ特徴ベクトル算出部305は、ユーザ特徴ベクトルの算出に、この検索クリック履歴を用いてもよい。
ユーザ特徴ベクトル算出部305は、検索クエリ履歴及び検索クリック履歴のうち、例えば前回の抽出から今回の抽出までに新たに記憶されたものを、所定期間毎に抽出する。そしてユーザ特徴ベクトル算出部305は、所定期間毎に抽出された検索クエリ履歴及び検索クリック履歴を用いてユーザ特徴ベクトルを算出する。なお、ユーザ特徴ベクトル算出部305は、検索クエリ履歴及び検索クリック履歴が更新される度に、検索クエリ履歴及び検索クリック履歴を抽出してユーザ特徴ベクトルを算出してもよい。
ユーザ特徴ベクトル算出部305は、例えば次の数式(4)によって、ユーザ特徴ベクトルが示す各カテゴリに対する評価値(以下、「ユーザ特徴ベクトル評価値」と称する)を算出する。なお、xに係る重み係数α、yに係る重み係数β、及びzに係る重み係数γは、統合サーバ300に予め設定されて記憶されている。これらの係数は、通常、x、y、及びzの何れに重きを置きたいかに応じて種々の値として設定可能である。例えば、これらの係数は、正の値として設定される。
x'=αx+βy+γz ・・・(4)
ただし、y=z=0の場合は、x’=x
x’:新たなユーザ特徴ベクトル評価値
x :既存のユーザ特徴ベクトル評価値
y :検索クエリ履歴に基づくユーザ特徴ベクトル評価値
z :検索クリック履歴に基づくユーザ特徴ベクトル評価値
α :xに係る重み係数
β :yに係る重み係数
γ :zに係る重み係数
すなわち、ユーザ特徴ベクトル算出部305は、既存のユーザ特徴ベクトル評価値xと、検索クエリ履歴に基づくユーザ特徴ベクトル評価値yと、検索クリック履歴に基づくユーザ特徴ベクトル評価値zとに基づき、新たなユーザ特徴ベクトル評価値x’を算出する。なお、既存のユーザ特徴ベクトル評価値xとは、今回の新たなユーザ特徴ベクトル評価値x’の算出前に、上記数式(4)により導出され、又は予め設定されることにより、既にユーザID毎に対応付けられたユーザ特徴ベクトル評価値である。
検索クエリ履歴に基づくユーザ特徴ベクトル評価値y(以下、「クエリ評価値y」と称する)とは、コンテンツのカテゴリに対するユーザID毎の嗜好性の対応度合いを、過去の検索クエリとそのカテゴリとの対応度合いに基づき評価する値である。検索クリック履歴に基づくユーザ特徴ベクトル評価値z(以下、「クリック評価値z」と称する)とは、コンテンツのカテゴリに対するユーザID毎の嗜好性の対応度合いを、予めカテゴリが対応付けられたコンテンツを示す情報がクリックされたか否かに基づき評価する値である。
クエリ評価値yは、例えばユーザID毎の過去の検索クエリに関し、この検索クエリに対応付けられたカテゴリ毎の各クエリカテゴリ評価値を、クエリカテゴリ辞書303から抽出することによって算出される。クリック評価値zは、ユーザID毎の検索クリック履歴に基づき、検索結果のうちクリックされたコンテンツに対応付けられたカテゴリを抽出することによって算出される。なお、これらクエリ評価値y及びクリック評価値zの詳細な算出方法は、図6及び図7を参照し、より具体的な例を用いて後述する。
クエリ評価値yと、クリック評価値zとは、上記数式(4)においてそれぞれ独立した加算項で示されているように、互いに依存することなく算出される。クエリ評価値y及びクリック評価値zのうち、少なくともクエリ評価値yが算出されていればよく、クリック評価値zは算出されなくてもよい。すなわち、新たなユーザ特徴ベクトル評価値x’は、クリック評価値zを用いなくても算出することができる。このため、例えば図3に示されるユーザID「User6」のように検索クリック履歴を有していないユーザに対しても、新たなユーザ特徴ベクトル評価値x’を算出することができる。
また、ユーザ特徴ベクトル算出部305は、新たなユーザ特徴ベクトル評価値x’を算出する際、上記数式(4)により算出された新たなユーザ特徴ベクトル評価値x’のうち、いずれかのカテゴリに対する評価値が所定の閾値(本実施形態では、「1.0」)を超えていた場合には、正規化を行う。すなわち、その所定の閾値を超えていた評価値のうち最大値で、上記数式(4)により算出された各カテゴリに対するユーザ特徴ベクトル評価値x’をそれぞれ除算することで正規化を行い、その結果を新たなユーザ特徴ベクトル評価値x’とする。
以下、図6及び図7を参照して、ユーザ特徴ベクトル算出部305による上記数式(4)を用いたユーザ特徴ベクトル評価値x’の算出過程の一例について、詳細に説明する。
一例として、ユーザID「UserA」のユーザ端末100において、二回の検索アクションが行われた場合を想定して説明する。一回目の検索アクションは、検索クエリ「アイドルA」により検索要求が行われ、その検索クエリによる検索結果コンテンツの一覧情報のうち、メタデータとしてタイトル「曲K」、カテゴリ「ミュージック」、「アイドル」が予め対応付けられたコンテンツを示す情報がクリックされている。二回目の検索アクションは、検索クエリ「コミックS」により検索要求が行われ、その検索クエリによる検索結果コンテンツの一覧情報のうち、メタデータとしてタイトル「コミックS コミックモノクロ版」、及びカテゴリ「コミック」が対応付けられたコンテンツを示す情報がクリックされている。
ここで、以下のユーザ特徴ベクトル評価値x’の算出においては、クエリカテゴリ辞書303として図4に示すデータベースを用いる。また、上記数式(4)において、α=1.0、β=0.5、γ=0.7とする。また、一回目の検索アクションが「UserA」による初めての検索アクションであり、ユーザID「UserA」は既存のユーザ特徴ベクトル評価値xを予め有していないものとする。
まず、一回目の検索アクションが行われた場合におけるユーザ特徴ベクトル評価値x’の算出方法を説明する。図6は、一回目の検索アクションが行われた場合におけるユーザ特徴ベクトル評価値x’の算出過程を示す表である。図6では、検索クエリ「アイドルA」に対応付けられた各カテゴリと、各カテゴリについての既存のユーザ特徴ベクトル評価値x、クエリ履歴によるユーザ特徴ベクトル加算部であるクエリ評価値y、クリック履歴によるユーザ特徴ベクトル加算部であるクリック評価値z、及び一回目の検索アクションを反映した新たなユーザ特徴ベクトル評価値x’が格納されている。
上述の通り、一回目の検索アクションがユーザID「UserA」による初めての検索アクションであり、ユーザID「UserA」は既存のユーザ特徴ベクトル評価値xを有していないため、図6に示される既存のユーザ特徴ベクトル評価値xはいずれのカテゴリについても初期値「0」である。図6に示されるクエリ評価値y及びクリック評価値zは、ユーザ特徴ベクトル算出部305によってそれぞれ次のように算出される。
一回目の検索アクションが行われた場合におけるユーザID「UserA」のクエリ評価値yの算出方法を説明する。まず、ユーザ特徴ベクトル算出部305は、ユーザID「UserA」の過去の検索クエリ「アイドルA」に関し、クエリカテゴリ辞書303を参照して、この検索クエリ「アイドルA」に対応付けられたカテゴリ(「アイドル」、「ミュージック」、「動画」、及び「画像」)毎の各クエリカテゴリ評価値を抽出する。ユーザ特徴ベクトル算出部305は、抽出した各クエリカテゴリ評価値を、クエリ評価値yとして設定する。ユーザ特徴ベクトル算出部305は、検索クエリ「アイドルA」に対応付けられていないその他のカテゴリについては、値「0」を、クエリ評価値yとして設定する。このようにして、一回目の検索アクションが反映された、ユーザID「UserA」の各カテゴリに対するクエリ評価値yが算出される。
一回目の検索アクションが行われた場合におけるユーザID「UserA」のクリック評価値zの算出方法を説明する。まず、ユーザ特徴ベクトル算出部305は、ユーザID「UserA」の検索クリック履歴に基づき、検索結果コンテンツの一覧情報のうちユーザによりクリックされた情報が示すコンテンツに対応付けられたカテゴリを抽出する。例えば、一回目の検索アクションにおいてクリックされたコンテンツには、カテゴリ「ミュージック」及びカテゴリ「アイドル」が予め対応付けられているため、これらのカテゴリを抽出する。ユーザ特徴ベクトル算出部305は、抽出されたカテゴリのそれぞれについて、予め統合サーバ300に記憶された所定の定数(本実施形態では、「1.0」)を、カテゴリ毎のクリック評価値zとして設定する。ユーザ特徴ベクトル算出部305は、抽出されたカテゴリ以外のその他のカテゴリについては、値「0」を、カテゴリ毎のクリック評価値zとして設定する。このようにして、一回目の検索アクションが反映された、ユーザID「UserA」の各カテゴリに対するクリック評価値zが算出される。
このようにして算出されたクエリ評価値y及びクリック評価値zに基づき、ユーザ特徴ベクトル算出部305は、上記数式(4)に従い新たなユーザ特徴ベクトル評価値x’を算出する。すなわち、各カテゴリについて、以下のような計算を行う。ただし、以下の「x’(カテゴリ)」は、そのカテゴリに関する新たなユーザ特徴ベクトル評価値を示す。なお、本説明の計算過程においては小数点以下4桁目を四捨五入するが、有効桁数は本実施形態に係るシステムにおいて任意に決定してよい。
x’(アイドル)=(1.0×1.0)+(0.5×1.0)+(0.7×1.0)=1.20
x’(ミュージック)=(1.0×0.0)+(0.5×0.5)+(0.7×1.0)=0.95
x’(動画)=(1.0×0.0)+(0.5×0.25)+(0.7×0.0)=0.125
x’(画像)=(1.0×0.0)+(0.5×0.25)+(0.7×0.0)=0.125
上記の場合、カテゴリ「アイドル」のユーザ特徴ベクトル評価値x’が所定の閾値である「1.0」を超えている。よって、ユーザ特徴ベクトル算出部305は、このユーザ特徴ベクトル評価値x’で、上記数式(4)により算出された各カテゴリに対するユーザ特徴ベクトル評価値x’をそれぞれ除算することで正規化を行い、その結果を新たなユーザ特徴ベクトル評価値x’とする。これにより、新たなユーザ特徴ベクトル評価値x’が次のように算出される。
x’(アイドル)=1.0
x’(ミュージック)=0.792
x’(動画)=0.104
x'(画像)=0.104
続いて、二回目の検索アクションが行われた場合におけるユーザ特徴ベクトルの算出方法を説明する。図7は、二回目の検索アクションが行われた場合におけるユーザ特徴ベクトル評価値x’の算出過程を示す表である。図7では、検索クエリ「コミックS」に対応付けられた各カテゴリと、各カテゴリについての既存のユーザ特徴ベクトル評価値x、クエリ評価値y、クリック評価値z、及び新たなユーザ特徴ベクトル評価値x’が格納されている。
二回目の検索アクションなので、ユーザID「UserA」は一回目の検索アクションによる既存のユーザ特徴ベクトル評価値xを有している。すなわち、図7に示される既存のユーザ特徴ベクトル評価値xは、図6に示されるユーザ特徴ベクトル評価値x’である。上述の一回目の検索アクションと同様、図6に示されるクエリ評価値y及びクリック評価値zは、ユーザ特徴ベクトル算出部305によってそれぞれ次のように算出される。
二回目の検索アクションが行われた場合におけるユーザID「UserA」のクエリ評価値yの算出方法を説明する。まず、ユーザ特徴ベクトル算出部305は、ユーザID「UserA」の過去の検索クエリ「コミックS」に関し、クエリカテゴリ辞書303を参照して、この検索クエリ「コミックS」に対応付けられたカテゴリ(「コミック」、「動画」、「映画」、及び「アニメ」)毎の各クエリカテゴリ評価値を抽出する。一回目の検索アクションが行われた場合と同様、ユーザ特徴ベクトル算出部305は、これらのカテゴリのクエリ評価値yとして、抽出された各クエリカテゴリ評価値を設定し、その他のカテゴリのクエリ評価値yとして、値「0」を設定する。このようにして、二回目の検索アクションが反映された、ユーザID「UserA」の各カテゴリに対するクエリ評価値yが算出される。
二回目の検索アクションが行われた場合におけるユーザID「UserA」のクリック評価値zの算出方法を説明する。まず、ユーザ特徴ベクトル算出部305は、ユーザID「UserA」の検索クリック履歴に基づき、検索結果コンテンツの一覧情報のうちユーザによりクリックされた情報が示すコンテンツに対応付けられたカテゴリを抽出する。例えば、二回目の検索アクションにおいてクリックされたコンテンツには、カテゴリ「コミック」が予め対応付けられているため、このカテゴリを抽出する。一回目の検索アクションが行われた場合と同様、ユーザ特徴ベクトル算出部305は、この抽出されたカテゴリのクリック評価値zとして、所定の定数「1.0」を設定し、その他のカテゴリのクリック評価値zとして、値「0」を設定する。このようにして、二回目の検索アクションが反映された、ユーザID「UserA」の各カテゴリに対するクリック評価値zが算出される。
一回目の検索アクションの場合と同様、ユーザ特徴ベクトル算出部305は、各カテゴリについて、上記数式(4)に従い新たなユーザ特徴ベクトル評価値x’を算出する。すなわち、各カテゴリについて、以下のような計算を行う。
x’(アイドル)=(1.0×1.0)+(0.5×0.0)+(0.7×0.0)=1.0
x’(ミュージック)=(1.0×0.792)+(0.5×0.0)+(0.7×0.0)=0.792
x’(動画)=(1.0×0.104)+(0.5×0.75)+(0.7×0.0)=0.479
x’(画像)=(1.0×0.104)+(0.5×0.0)+(0.7×0.0)=0.104
x’(コミック)=(1.0×0.0)+(0.5×1.0)+(0.7×1.0)=1.2
x’(映画)=(1.0×0.0)+(0.5×0.5)+(0.7×0.0)=0.25
x’(アニメ)=(1.0×0.0)+(0.5×0.25)+(0.7×0.0)=0.125
上記の場合、カテゴリ「コミック」及び「アイドル」のユーザ特徴ベクトル評価値x’(コミック)が所定の閾値である「1.0」を超えており、その中でもカテゴリ「コミック」のユーザ特徴ベクトル評価値x’が最大値となっている。よって、ユーザ特徴ベクトル算出部305は、このカテゴリ「コミック」のユーザ特徴ベクトル評価値x’の値で、上記数式(4)により算出された各カテゴリに対するユーザ特徴ベクトル評価値x’をそれぞれ除算することで正規化を行い、その結果を新たなユーザ特徴ベクトル評価値x’とする。これにより、新たなユーザ特徴ベクトル評価値x’が次のように算出される。
x’(アイドル)=0.833
x’(ミュージック)=0.66
x’(動画)=0.399
x'(画像)=0.087
x’(コミック)=1.0
x’(映画)=0.208
x’(アニメ)=0.104
なお、上述の例では、ユーザ特徴ベクトル算出部305は、所定時間毎に抽出された履歴情報が一つであった場合(前回の抽出から今回の抽出までに新たに記憶された検索クエリ及びクリックされたコンテンツが一つであった場合)の例を説明したが、これに限られない。すなわち、所定時間毎に抽出される履歴情報が複数であってもよく(前回の抽出から今回の抽出までに新たに記憶された検索クエリ及びクリックされたコンテンツが複数であってもよく)、この場合には複数の履歴情報に基づきユーザ特徴ベクトル評価値x’が算出される。なお、複数の履歴情報に基づきユーザ特徴ベクトル評価値x’を算出する場合のクエリ評価値y及びクリック評価値zの算出方法の詳細については、図13及び図14のフローチャートを参照して後述する。ユーザ特徴ベクトル算出部305は、上述のようにして算出したユーザID毎のユーザ特徴ベクトル評価値x’を、ユーザ特徴ベクトル記憶部306に出力する。
なお、上記数式(4)において、クエリ評価値yとクリック評価値zとの和として、s=y+zを定義し、以下の数式(5)によって新たなユーザ特徴ベクトル評価値x’を計算してもよい。
x'=x(1+s)・・・・(5)(ただし、x=0の場合は、x0を所定の定数として、x’=x0(1+s)
この数式(5)を用いる方法では、クエリ評価値yとクリック評価値zとの和を既存のユーザ特徴ベクトル評価値xに乗算するので、新たなユーザ特徴ベクトル評価値x’が変動し易く、最新の検索クエリ履歴及び検索クリック履歴を優先的に影響させたい場合に好適である。なお、x=0の場合とは、すなわちそのカテゴリに関するユーザ特徴ベクトルが存在しない場合である。この場合における所定の定数x0としては、例えば他のカテゴリに関するユーザ特徴ベクトルに基づき算出された値を用いてもよい。具体的には、他のカテゴリについて算出された各ユーザ特徴ベクトル評価値xの平均値又は中央値等を所定の定数x0としてもよい。また、他のカテゴリについて算出されたユーザ特徴ベクトル評価値xが全く存在しない場合、すなわち既存のユーザ特徴ベクトルがない場合には、初期値として0.5を所定の定数x0としてもよい。
検索要求受付部307は、ユーザ端末100から、ユーザID及び検索クエリを取得すると共にコンテンツの検索要求を受け付ける。具体的には、検索クエリが、ユーザ端末100の表示部において表示されたログイン画面にユーザIDがユーザによって入力されると、当該ユーザIDを示す情報が、ユーザ端末100から統合サーバ300へ送信される。検索要求受付部307は、ユーザ端末100から統合サーバ300へ送信されたユーザIDを受信して取得する。また、上記コンテンツ配信サービス上の検索窓にユーザによって入力されると、当該検索クエリを示す情報が、ユーザ端末100から統合サーバ300へ送信される。検索要求受付部307は、ユーザ端末100から統合サーバ300へ送信された検索クエリを示す情報を受信して取得する。
検索要求受付部307は、取得した検索クエリを示す情報を検索要求送信部308へ出力する。検索要求送信部308は、検索要求受付部307から出力された検索クエリを示す情報を検索サーバ400へ送信する。
検索結果コンテンツ取得部309は、検索要求送信部308からの検索クエリに対応する検索結果コンテンツを検索サーバ400から受信して取得する。検索結果コンテンツに含まれるコンテンツには、コンテンツのメタデータ(タイトル及びカテゴリ)が予め対応付けられている(図8の(a)参照)。検索結果コンテンツ取得部309は、取得した検索結果コンテンツを検索結果コンテンツ出力部311へ出力する。
順位算出部310は、ユーザ特徴ベクトル算出部305により算出されたユーザ特徴ベクトルに基づき、検索結果コンテンツの一覧情報を並び替えるための順序を決定する。順位算出部310は、ユーザ特徴ベクトル記憶部306に記憶されたデータベースを参照し、算出対象のユーザについてカテゴリ毎のユーザ特徴ベクトル評価値x’を抽出し、当該ユーザ特徴ベクトル評価値x’に基づき、検索結果コンテンツの一覧情報を並び替えるための順序を決定する。以下、この順序により並べられた各コンテンツの順位を単に「コンテンツ順位」とも称する。順位算出部310は、例えば、ユーザ特徴ベクトル評価値x’が大きいカテゴリほど高くなるように、そのユーザ特徴ベクトルが対応付けられた該当ユーザIDに対するカテゴリの順序(以下、「カテゴリの優先度」とも称する。)を決定する(図8の(b)、図15のS71参照)。順位算出部310は、このカテゴリの優先度に基づき、コンテンツ順位を決定する(図8の(c),(d)、図15のS72参照)。順位算出部310は、決定されたコンテンツ順位を示す情報を、検索結果コンテンツ出力部311へ出力する。
検索結果コンテンツ出力部311は、ユーザ特徴ベクトル算出部305により算出されたユーザ特徴ベクトルに基づいて、検索結果コンテンツ取得部309から出力された検索結果コンテンツの一覧情報をユーザ端末100へ出力する。検索結果コンテンツ出力部311は、例えば、順位算出部310により出力されたコンテンツ順位を示す情報に基づき、検索結果コンテンツ取得部309から出力された検索結果コンテンツの一覧情報を並び替える。すなわち、検索結果コンテンツ出力部311は、検索結果コンテンツに含まれる各コンテンツがコンテンツ順位に従うように、検索結果コンテンツの一覧情報を並び替えてユーザ端末100へ出力する。なお、カテゴリの優先度及びコンテンツ順位は、順位算出部310によらず検索結果コンテンツ出力部311によって算出してもよい。
以下、図8を参照して、順位算出部310によって、検索結果コンテンツ取得部309からの検索結果コンテンツの一覧情報をユーザ特徴ベクトルに基づき並び替える方法について詳細に説明する。図8は、検索結果コンテンツ取得部309からの検索結果コンテンツの一覧情報をユーザ特徴ベクトルに基づき並び替える方法を示す説明図である。図8の例では、ユーザID「UserA」のユーザが検索クエリ「コミックR」で検索要求を行った場合を示している。
図8の(a)は、検索結果コンテンツ取得部309により取得された検索結果コンテンツに含まれる各コンテンツに対応付けられた項番及びメタデータ(タイトル及びカテゴリ)を示す表である。検索結果コンテンツに対応付けられた項番は、検索結果コンテンツに含まれるコンテンツの識別番号である。項番は、例えばユーザ端末100の表示部において一覧情報として並ぶ際にどのコンテンツを示す情報が最も上位に並ぶかを示す優先順位に対応している。
図8の(b)は、ユーザ特徴ベクトル算出部305により算出されたユーザ特徴ベクトルに基づき、順位算出部310によって算出されたカテゴリの優先度を示す表である(図15のS71参照)。図8の(b)に示されるように、ユーザID「UserA」における特徴ベクトルが示す各カテゴリの優先度が、「画像」、「アニメ」、「映画」、「動画」、「ミュージック」、「アイドル」、及び「コミック」の順で高く算出されている。
図8の(c)に示されるように、検索結果コンテンツ出力部311は、図8の(a)におけるコンテンツに対応付けられたカテゴリと、図8の(b)におけるカテゴリとを対応させることにより、コンテンツの項番をカテゴリの優先度に対応付ける。例えば、図8の(a)において、項番「5」,「6」のコンテンツには、カテゴリ「コミック」が対応付けられている。よって、カテゴリ「コミック」と、図8の(b)におけるカテゴリ「コミック」とを対応させることにより、コンテンツの項番「5」,「6」がカテゴリ「コミック」の優先度に対応付けられている。また、図8の(a)において項番「1」のコンテンツには、カテゴリ「映画」,「動画」が対応付けられている。このように、コンテンツに対応付けられたカテゴリが複数ある場合には、例えばより優先度が高いカテゴリを対応させる。すなわち、「映画」,「動画」のうち、より優先度が高いカテゴリ「動画」を対応させることにより、コンテンツの項番「1」がカテゴリ「動画」の優先度に対応付けられている。
図8の(d)は、上述のように対応付けられたカテゴリの優先度に従い、コンテンツの項番を並び替えた結果を示す表である。図8の(d)に示されるように、検索結果コンテンツに含まれるコンテンツの項番「1」〜「6」が、各項番に対応付けられたカテゴリの優先度に従い並び替えられている(図15のS72参照)。これにより、項番「1」のコンテンツのコンテンツ順位は、カテゴリの優先度に従い並び替えられて、上から5番目になっている。なお、項番「5」,「6」は、対応付けられたカテゴリの優先度に従うと同順となる。この場合には、元々の項番の順に従い、並べ替えられる。これにより、項番「5」のコンテンツのコンテンツ順位は、上から1番目であり、項番「6」のコンテンツのコンテンツ順位は、上から2番目となっている。
次に、再び図1を参照し、検索サーバ400(検索手段)の機能構成について説明する。図1に示されるように、検索サーバ400は、クエリ取得部401、コンテンツ算出部402、及び検索結果コンテンツ送信部403を含んで構成されている。
クエリ取得部401は、統合サーバ300の検索要求送信部308から送信された検索クエリを示す情報を受信して取得する。クエリ取得部401は、取得した検索クエリを示す情報をコンテンツ算出部402に出力する。
コンテンツ算出部402は、クエリ取得部401からの検索クエリを示す情報に基づき、検索対象データベースに格納されたコンテンツの中から、その検索クエリによる検索要求にヒットする検索結果コンテンツを算出する。コンテンツ算出部402は、算出した検索結果コンテンツを検索結果コンテンツ送信部403に出力する。
検索結果コンテンツ送信部403は、コンテンツ算出部402により出力された検索結果コンテンツを統合サーバ300における検索結果コンテンツ取得部309に送信する。
次に、図9〜図14を参照して、本実施形態に係るコンテンツ検索結果提供システム200の動作について説明する。図9は、図1に示されるコンテンツ検索結果提供システム200の全体的な動作手順を示すシーケンス図である。
図9に示されるように、コンテンツ検索結果提供システム200では、ユーザ端末100から統合サーバ300へ、複数ユーザ履歴が送信される(S1)。続いて、統合サーバ300において、複数ユーザ履歴に基づき、クエリカテゴリ辞書303が作成される(S2)。続いて、統合サーバ300において、ユーザ特徴ベクトルが算出される(S3)。
続いて、ユーザ端末100から統合サーバ300へ検索クエリが送信され(S4)、統合サーバ300から検索サーバ400へ検索クエリが送信される(S5)。続いて、検索サーバ400において、受信した検索クエリに対応する(検索クエリによる検索要求にヒットする)検索結果コンテンツが算出される(S6)。続いて、検索サーバ400から統合サーバ300へ検索結果コンテンツが送信される(S7)。続いて、統合サーバ300において、検索結果コンテンツの一覧情報を並び替えるための順序(すなわち、検索結果コンテンツに含まれるコンテンツの順位)が算出される(S8)。続いて、統合サーバ300からユーザ端末100へ並び替えられた(ソートされた)検索結果コンテンツが一覧情報として出力される(S9)。
以下、より詳細な動作手順を説明する。図10は、図1に示されるコンテンツ検索結果提供システム200の全体的な動作手順を示すフロー図である。
図10に示されるように、コンテンツ検索結果提供システム200では、検索履歴取得部301により、ユーザ端末100から送信された履歴(検索クエリ及びクリックしたコンテンツを示す情報)が取得され、取得された検索クエリ履歴及び検索クリック履歴が検索履歴情報記憶部302に出力される(S10:検索履歴取得ステップ)。
続いて、クエリカテゴリ辞書作成部304により、検索履歴情報記憶部302における複数ユーザ履歴に基づき、クエリカテゴリ辞書303が作成される(S20)。なお、S20の詳細については後述する。
続いて、ユーザ特徴ベクトル算出部305により、過去の検索クエリを用いて、クエリカテゴリ辞書303からクエリカテゴリ評価値が抽出され、抽出されたクエリカテゴリ評価値に基づき、ユーザ特徴ベクトルが算出される(S30:ユーザ特徴量算出ステップ)。なお、S30の詳細については後述する。
続いて、検索要求受付部307により、ユーザ端末100からのユーザID及び検索クエリが受信及び取得されると共に、コンテンツの検索要求が受け付けられる(S40)。続いて、検索要求送信部308により、クエリ取得部401へ、検索クエリを示す情報が送信され、コンテンツ算出部402により、検索結果コンテンツが算出される(S50)。
続いて、検索結果コンテンツ送信部403により、検索結果コンテンツが送信され、検索結果コンテンツ取得部309により当該検索結果コンテンツが受信及び取得される(S60:検索結果取得ステップ)。続いて、順位算出部310により、ユーザID毎のユーザ特徴ベクトルを用いて、検索結果コンテンツに含まれるコンテンツのコンテンツ順位が算出される(S70)。なお、S70の処理の詳細は、後述する。続いて、検索結果コンテンツ出力部311により、コンテンツ順位に従い並べられた検索結果コンテンツの一覧情報が、ユーザ端末100に出力される(S80:出力ステップ)。
次に、図11を参照して、クエリカテゴリ辞書作成部304によるクエリカテゴリ辞書303の作成方法の詳細を説明する。図11は、図10に示されるS20の詳細な処理方法を示すフロー図である。
図11に示されるように、まず検索履歴情報記憶部302が記憶する複数ユーザ履歴から、所定の検索クエリとその検索クエリによる検索結果コンテンツに含まれるコンテンツのうちクリックされたコンテンツに対応付けられたカテゴリが抽出され、カテゴリ毎のクリック数が算出される(S21)。続いて、カテゴリ毎のクリック数を用いて、上記数式(1)により、i番目のカテゴリのクエリカテゴリ評価値が算出される(S22)。i番目の「i」とは、所定の検索クエリによる検索結果コンテンツに含まれるコンテンツのうちクリックされたコンテンツに対応付けられたカテゴリのインデックス(添え字)を示す。当該クリックされたコンテンツに対応付けられたカテゴリの種類数がnである場合、S22の処理はi=1番目からi=n番目まで繰り返される。すなわち、コンテンツに対応付けられた全てのカテゴリについて、S22の処理が行われる。S21〜S22の処理は、予め設定された全ての検索クエリについて行われる。
次に、図12を参照して、ユーザ特徴ベクトル算出部305によるユーザ特徴ベクトルの算出方法の詳細を説明する。図12は、図10に示されるS30の詳細な処理方法を示すフロー図である。
図12に示されるように、まずユーザ特徴ベクトルの算出対象であるユーザIDが選択される(S31)。続いて、当該選択されたユーザIDに関し、クエリ評価値yが算出され(S32)、クリック評価値zが算出される(S33)。なお、クエリ評価値y及びクリック評価値zの算出方法の詳細は、図13及び図14を参照して後述する。
続いて、S32において算出されたクエリ評価値y、ステップS33において算出されたクリック評価値zに基づき、ステップ数式(4)により、ユーザ特徴ベクトル評価値x’が算出される(S34)。続いて、いずれかのカテゴリのユーザ特徴ベクトル評価値x’が1.0より大きいか否かが判定される(S35)。ユーザ特徴ベクトル評価値x’が1.0以下であると判定された場合(S35;NO)、S36の処理へ進むことなく、S37の処理へ進む。すなわち、この場合には、後述するS36の正規化処理が行われることなく、S34において算出されたユーザ特徴ベクトル評価値x’が、S31で選択されたユーザIDに関するユーザ特徴ベクトル評価値x’とされてS37の処理へ進む。
ユーザ特徴ベクトル評価値x’が1.0より大きいと判定された場合(S35;YES)、S36の処理へ進む。S36の処理では、ユーザ特徴ベクトル評価値x’が正規化される。すなわち、評価値x’の最大値で除算して正規化が行われ、その結果がユーザ特徴ベクトル評価値x’とされた上で、S37の処理へ進む。S37の処理では、複数ユーザ履歴に次のユーザIDが存在するか否かが判定される。次のユーザIDとは、ユーザ特徴ベクトルが算出されていないユーザIDを示す。次のユーザIDが存在する場合には(S37;YES)、S31において次のユーザIDが選択され、続いてS32〜S37の処理が行われる。次のユーザIDが存在しない場合には(S37;NO)、処理が終了する。
次に、図13及び図14を参照して、クエリ評価値y及びクリック評価値zの算出方法の詳細を、それぞれ説明する。なお、以下の算出方法では、ユーザ特徴ベクトル算出部305により所定時間毎に抽出される履歴情報が複数ある場合に、複数の履歴情報に基づきクエリ評価値y及びクリック評価値zを算出する場合を説明する。すなわち、所定時間毎に抽出された履歴情報が複数ある場合(前回の抽出から今回の抽出までに新たに記憶された検索クエリ及びクリックされたコンテンツが複数である場合)におけるクエリ評価値y及びクリック評価値zの算出方法を説明する。図13は、図12に示されるS32の詳細な処理方法を示すフロー図である。すなわち、クエリ評価値yの詳細な算出方法を説明するフロー図である。
図13に示されるように、まず、図12におけるS31で選択されたユーザ特徴ベクトルの算出対象であるユーザIDについてユーザ特徴ベクトル算出部305により抽出された履歴情報の中から、次の検索クエリが選択される(S41)。ここで次の検索クエリとは、算出対象である同じユーザIDにおいて抽出された履歴情報のうち、ユーザ特徴ベクトルの算出処理に用いられていない検索クエリを示す。続いて、当該選択された検索クエリがクエリカテゴリ辞書303に存在するか否かが判定される(S42)。当該選択された検索クエリがクエリカテゴリ辞書303に存在しない場合(S42;NO)、S41に戻り再び抽出された履歴情報の中から次の検索クエリが選択される。検索クエリがクエリカテゴリ辞書303に存在する場合(S42;YES)、S43の処理へ進む。
S43の処理では、クエリカテゴリ辞書303から、S41で選択された検索クエリに対応するカテゴリと、各カテゴリのクエリカテゴリ評価値とが抽出され、抽出されたクエリカテゴリ評価値がp1とされる(S43)。続いて、S43におけるp1が、クエリカテゴリ辞書303から抽出された各カテゴリの評価値とされる(S44)。このS44において、クエリカテゴリ辞書303から抽出されたカテゴリが既に存在し、そのカテゴリの評価値が既に設定されている場合には、そのカテゴリの評価値に、S43におけるp1が足されて、新たなカテゴリの評価値とされる。
続いて、同じユーザIDにおいて、抽出された履歴情報の中に次の検索クエリが存在するか否かを判定する(S45)。次の検索クエリが存在する場合(S45;YES)、再びS41に戻り、次の検索クエリが選択される。続いて、S42〜S45の処理が行われる。次の検索クエリが存在しない場合(S45;NO)、すなわち抽出された履歴情報に含まれる複数の検索クエリの全てについて、S41〜S44の処理が行われた場合、S46の処理へ進む。S46の処理では、S44においてカテゴリの評価値とされた値が、各カテゴリのクエリ評価値yとされて、クエリ評価値yの算出処理が終了する。
図14は、図12に示されるS33の詳細な処理方法を示すフロー図である。すなわち、クリック評価値zの詳細な算出方法を説明するフロー図である。
図14に示されるように、まず図12におけるS31で選択されたユーザ特徴ベクトルの算出対象であるユーザIDについてユーザ特徴ベクトル算出部305により抽出された履歴情報の中から、次の検索クリック履歴が選択される(S51)。ここで次の検索クリック履歴とは、同じユーザIDにおいて抽出された履歴情報のうち、ユーザ特徴ベクトルの算出処理に用いられていない検索クリック履歴を示す。続いて、定数p2(本実施形態においては、1)が、当該選択された検索クリック履歴が示すクリックされたコンテンツに対応付けられた各カテゴリの評価値とされる(S52)このS53において、クリックされたコンテンツに対応付けられたカテゴリが既に存在し、そのカテゴリの評価値が既に設定されている場合には、そのカテゴリの評価値に、定数p2が足されて、新たなカテゴリの評価値とされる。
続いて、同じユーザIDにおいて、抽出された履歴情報の中に次の検索クリック履歴が存在するか否かを判定する(S53)。次の検索クリック履歴が存在する場合(S53;YES)、再びS51に戻り、次の検索クリック履歴が選択される。続いて、S52〜S53の処理が行われる。次の検索クリック履歴が存在しない場合(S53;NO)、すなわち抽出された履歴情報に含まれる複数の検索クリック履歴の全てについて、S51〜S53の処理が行われた場合、S54の処理へ進む。S54の処理では、S54においてカテゴリの評価値とされた値が、各カテゴリのクリック評価値zとされて、クリック評価値zの算出処理が終了する。
次に、図15を参照して、順位算出部310により、ユーザID毎のユーザ特徴ベクトルを用いて、検索結果コンテンツに含まれるコンテンツのコンテンツ順位を算出する方法の詳細を説明する。図15は、図10に示されるS70の詳細な処理方法を示すフロー図である。
図15に示されるように、まず、ユーザ特徴ベクトル算出部305によって算出されたユーザ特徴ベクトルが、ユーザ特徴ベクトル評価値x’について大きい値から小さい値に向かって降順に並び替えられ(ソートされ)、並び替えられたユーザ特徴ベクトルのカテゴリ順が、該当ユーザID(ユーザ特徴ベクトル算出対象のユーザID)に対するカテゴリ優先度とされる(S71)。続いて、検索結果コンテンツ取得部309によって取得した検索結果コンテンツにおいて、S71で求めたカテゴリ優先度に基づきユーザ端末100の表示部に表示する表示順(検索結果コンテンツに含まれるコンテンツのコンテンツ順位)が決定される(S72)。以上のようにして、順位算出部310によるコンテンツ順位の算出処理が終了する。
以上、本実施形態に係るコンテンツ検索結果提供システム200及びコンテンツ検索結果提供方法によれば、クエリカテゴリ辞書303から、コンテンツのカテゴリ毎の過去の検索クエリに対する対応度合いを関連付けたクエリカテゴリ評価値が抽出され、この抽出されたクエリカテゴリ評価値に基づき、コンテンツのカテゴリに対するユーザ毎の嗜好性の対応度合いを示すユーザ特徴ベクトルが算出される。よって、当該ユーザ特徴ベクトルは、検索要求を行うユーザの検索クリック履歴を用いることなく算出される。そして、当該ユーザ特徴ベクトルに基づき検索要求時の検索クエリに対応するコンテンツの検索結果が出力されるので、検索要求を行うユーザの検索クリック履歴がない場合にも、そのユーザの嗜好性が反映された検索結果を出力することができる。以上より、検索要求を行うユーザの検索クリック履歴がない場合にも、そのユーザの嗜好性が反映されたコンテンツを提供することができる。
また、本実施形態に係るコンテンツ検索結果提供システム200によれば、ユーザ特徴ベクトルに基づく順序のコンテンツの検索結果が出力されるので、検索要求を行うユーザの検索クリック履歴がない場合にも、そのユーザの嗜好性に応じた順で並べられた検索結果を出力することができる。
また、本実施形態に係るコンテンツ検索結果提供システム200によれば、検索サーバ400により、ユーザ端末100から送信された検索要求時の検索クエリに対応するコンテンツを検索することができる。
また、本発明に係るコンテンツ検索結果提供システム200によれば、複数のユーザ毎に過去の検索クエリとカテゴリとが関連付けられた複数ユーザ履歴に基づきクエリカテゴリ辞書303が作成されるので、クエリカテゴリ辞書303に格納される情報の信頼性をより高めることができる。
以上、本発明の実施形態について説明してきたが、本発明は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変更が可能である。
例えば、上記実施形態においては、クエリカテゴリ辞書作成部304によりクエリカテゴリ辞書303が作成されるとしたが、これに限られない。例えば、統合サーバ300は予め設定され記憶されたクエリカテゴリ辞書を有していてもよい。