JP2009289092A - 情報処理装置、推薦方法、プログラム及び記録媒体 - Google Patents
情報処理装置、推薦方法、プログラム及び記録媒体 Download PDFInfo
- Publication number
- JP2009289092A JP2009289092A JP2008141772A JP2008141772A JP2009289092A JP 2009289092 A JP2009289092 A JP 2009289092A JP 2008141772 A JP2008141772 A JP 2008141772A JP 2008141772 A JP2008141772 A JP 2008141772A JP 2009289092 A JP2009289092 A JP 2009289092A
- Authority
- JP
- Japan
- Prior art keywords
- data
- user
- unit
- content
- recommendation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】コンテンツの推薦において様々なアルゴリズムを柔軟に組み合わせることを可能とする。
【解決手段】行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部と、行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部と、前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部と、前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する応用アルゴリズム部と、を備える情報処理装置を提供する。
【選択図】図7
【解決手段】行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部と、行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部と、前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部と、前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する応用アルゴリズム部と、を備える情報処理装置を提供する。
【選択図】図7
Description
本発明は、情報処理装置、推薦方法、プログラム及び記録媒体に関する。
近年、インターネットなどのネットワークを通して提供されるサービスを差別化するための、推薦と呼ばれる技術が広く用いられている。推薦とは、例えばユーザの嗜好や行動をもとに個々のユーザに見合ったコンテンツを選択して提示することにより、コンテンツの利用を促進するための技術である。推薦は、インターネットショッピングや、映像、音楽またはニュース記事などのコンテンツの配信サービスなどに利用されている。
推薦を行うサービスを実現するためには、通常、サービス提供側のシステムに任意の推薦アルゴリズムが実装される。推薦アルゴリズムは、サービス提供の目的や対象とするユーザ、またはコンテンツの内容などに合わせて、個別に設計される。しかし、ユーザに最終的に提供される推薦結果やその表示形式は異なっていても、効果的な推薦を行うための基本となるアルゴリズムには、多くの推薦サービス間で共通しているものが少なくない。例えば、下記特許文献1及び2では、共に協調フィルタ(Collaborative Filtering)と呼ばれるアルゴリズムを応用して推薦を行うことのできる情報処理装置が開示されている。また、協調フィルタの他には、例えば内容フィルタ(Content−Based Filtering)、ニューラルネットワーク、またはベイズ推定などの共通的なアルゴリズムが推薦サービスに用いられ得る。
しかしながら、従来の推薦サービスにおいては、上述の協調フィルタや内容フィルタなどの基本的なアルゴリズムと、個々のサービスのニーズなどに合わせて最終的な推薦結果を生成する応用的なアルゴリズムとを一体として実装するのが一般的であった。そのため、新たな推薦サービスを開発する際には、推薦アルゴリズムの大部分の再設計やデータモデルの変更が必要となり、サービス開発のためのコストの増大を招いていた。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、様々なアルゴリズムを柔軟に組み合わせることのできる、新規かつ改良された情報処理装置、推薦方法、プログラム及び記録媒体を提供することにある。
上記課題を解決するために、本発明のある観点によれば、行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部と、行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部と、前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部と、前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する応用アルゴリズム部と、を備える情報処理装置が提供される。
かかる構成によれば、データ保持部は、行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造により、前記プロファイルデータ及び前記メタデータを保持する。そして、データ操作部は、行または列を指定する指定子を用いて前記行列形式のデータ構造から任意の部分行列を取得する。さらに、基本アルゴリズム部は、前記行列形式のデータ構造から取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する。そして、応用アルゴリズム部は、前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する。
前記指定子は、データに対応するノードとデータのカテゴリに対応するノードとにより構成される階層構造内の一の前記ノードを指定する階層的に表現された文字列であってもよい。
前記基本アルゴリズム部は、前記定型的な計算の1つとして、指定されたユーザと他のユーザとの間の前記プロファイルデータの相関度を計算してもよい。
また、前記基本アルゴリズム部は、前記定型的な計算の1つとして、指定されたユーザの前記プロファイルデータと任意のコンテンツの前記メタデータとの間の相関度を計算してもよい。
また、前記基本アルゴリズム部は、前記定型的な計算の1つとして、指定されたユーザと他のユーザとの間の前記プロファイルデータの相関度、または指定されたユーザの前記プロファイルデータと任意のコンテンツの前記メタデータとの間の相関度に基づいて前記推薦リストを生成してもよい。
また、前記基本アルゴリズム部は、前記定型的な計算の1つとして、指定されたコンテンツと他のコンテンツとの間の前記メタデータの相関度を計算してもよい。
また、前記基本アルゴリズム部は、指定されたコンテンツの前記メタデータと任意のユーザの前記プロファイルデータとの間の相関度を計算してもよい。
また、前記データ保持部は、前記行列形式のデータ構造内の1フィールドに複数のデータ値を有してもよい。
また、前記応用アルゴリズム部は、さらに、端末装置からユーザの行動履歴データを受信した場合に、前記行動履歴データに含まれる行動の対象となったコンテンツの前記メタデータに応じて前記行動を行ったユーザの前記プロファイルデータを更新してもよい。
また、前記情報処理装置は、さらに、前記データ保持部からの指示に基づいて前記データ保持部に保持されるデータの永続化をデータベースに要求するデータベース入出力部を備えてもよい。
また、前記データ保持部は、前記プロファイルデータのデータ項目及び前記メタデータのデータ項目のうち、前記情報処理装置に割当てられた範囲のデータを前記データベース入出力部を介してデータベースから取得してもよい。
また、上記課題を解決するために、本発明の別の観点によれば、行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造により、前記プロファイルデータ及び前記メタデータを保持するステップと、行または列を指定する指定子を用いて前記行列形式のデータ構造から任意の部分行列を取得するステップと、前記行列形式のデータ構造から取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行するステップと、前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得するステップと、を含む推薦方法が提供される。
また、上記課題を解決するために、本発明の別の観点によれば、情報処理装置を制御するコンピュータを、行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部と、行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部と、前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部と、前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する応用アルゴリズム部と、として機能させるためのプログラムが提供される。
また、上記課題を解決するために、本発明の別の観点によれば、情報処理装置を制御するコンピュータを、行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部と、行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部と、前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部と、前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する応用アルゴリズム部と、として機能させるためのプログラムを記録した、コンピュータにより読み取り可能な記録媒体が提供される。
また、上記課題を解決するために、本発明の別の観点によれば、情報処理装置へコンテンツの推薦を要求するユーザアプリケーション部、を備える端末装置と、行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部、行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部、前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部、及び前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得し、取得した前記推薦リストを前記端末装置へ送信する応用アルゴリズム部、を備える情報処理装置と、を含む情報処理システムが提供される。
以上説明したように、本発明に係る情報処理装置、推薦方法、プログラム及び記録媒体によれば、様々なアルゴリズムを柔軟に組み合わせることができる。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
〔1〕第1の実施形態
まず、図1は、本発明の第1の実施形態に係る推薦システム1の構成を示した模式図である。図1を参照すると、推薦システム1には、端末装置10、端末装置12、ネットワーク20、Webサーバ22、推薦サーバ30、及びDB(Database)サーバ32が含まれる。
まず、図1は、本発明の第1の実施形態に係る推薦システム1の構成を示した模式図である。図1を参照すると、推薦システム1には、端末装置10、端末装置12、ネットワーク20、Webサーバ22、推薦サーバ30、及びDB(Database)サーバ32が含まれる。
端末装置10及び端末装置12は、ネットワーク20及びWebサーバ22を介して推薦サーバ30と接続される。端末装置10及び端末装置12は、ユーザの操作に応じて推薦の要求を推薦サーバ30へ送信し、及び推薦サーバ30からネットワーク20を介して受信した推薦結果をユーザへ提示する。図1において、端末装置10及び端末装置12の一例としてPC(Personal Computer)を示しているが、端末装置10及び端末装置12はPCに限られない。端末装置10及び端末装置12は、例えば携帯電話やPDA(Personal Digital Assistants)、ゲーム端末、音楽/映像再生装置または家電機器などの情報処理装置であってもよい。
ネットワーク20は、端末装置10及び端末装置12とWebサーバ22の間を接続するネットワークである。例えば、推薦システム1がインターネット上で推薦サービスを提供する場合には、ネットワーク20はインターネットに該当する。しかしながら、ネットワーク20はインターネットに限られない。ネットワーク20は、例えばLAN(Local Area Network)、WAN(Wide Area Network)、または専用線などの任意のネットワークであってよい。
Webサーバ22は、ネットワーク20及び推薦サーバ30と接続される。Webサーバ22は、端末装置10または端末装置12からネットワーク20を介して推薦サーバ30へ送信される推薦要求、及び推薦サーバ30からの当該推薦要求に対する応答を仲介する役割を果たす。また、Webサーバ22は、端末装置10または端末装置12から推薦要求ではなく例えば静的なWebページの閲覧要求を受け取った場合には、要求されたWebページの内容を自ら取得して要求元の装置へ応答してもよい。
なお、推薦システム1において、Webサーバ22の代わりに、推薦要求を仲介する任意のサービス用のサーバ装置がネットワーク20と推薦サーバ30の間に配置されてもよい。また、Webサーバ22を省略して推薦システム1が構成されてもよい。
推薦サーバ30は、Webサーバ22及びDBサーバ32と接続される。推薦サーバ30は、端末装置10または端末装置12からコンテンツの推薦要求を受け付け、後述する様々なアルゴリズムに基づく演算を行って取得した推薦結果を、端末装置10または端末装置12へ送信する。また、推薦サーバ30は、演算に必要とされるコンテンツのメタデータ及びユーザのプロファイルデータを、DBサーバ32から取得する。
例えば、推薦システム1が音楽データをコンテンツとして扱っている場合には、各端末装置からの要求に応じて、ユーザに視聴や購入を促す楽曲のリストが、推薦サーバ30から推薦結果として送信される。また、推薦システム1がテレビジョン番組の案内情報をコンテンツとして扱っている場合には、各端末装置からの要求に応じて、ユーザが興味を持つと想定される番組のリストが、推薦サーバ30から推薦結果として送信される。
推薦システム1がインターネット上で推薦サービスを提供する場合には、推薦サーバ30は、例えばWebアプリケーションサーバとして実現される。
DBサーバ32は、推薦サーバ30と接続される。DBサーバ32は、推薦の演算に必要とされるコンテンツのメタデータ及びユーザのプロファイルデータなどをストレージ装置に記録する。また、DBサーバ32は、推薦サーバ30からのデータの読み書きを一元的に管理する。
ここで、コンテンツのメタデータとは、コンテンツの内容に応じた様々なデータ項目によって表現される、コンテンツの特徴を表すデータである。例えば、楽曲データをコンテンツとして扱う場合には、楽曲のジャンル、対象年齢層、テンポや調などを楽曲データのメタデータとして扱うことができる。また、映像データをコンテンツとして扱う場合には、映像に含まれるシーンの情報や登場人物名などをメタデータとして扱うことができる。
コンテンツのメタデータは、データの登録時に人為的に与えられる他、楽曲の音響解析や動画のシーン解析などの技術を用いて取得されてもよい。
ユーザのプロファイルデータとは、ユーザの年齢層や趣味、嗜好の傾向などの属性を表すデータである。本実施形態では、ユーザのプロファイルデータもまたコンテンツのメタデータと同様のデータ項目によって表される。例えば、楽曲コンテンツに対するユーザの趣味や嗜好の傾向は、例えば楽曲コンテンツの「邦楽」や「洋楽」などといったジャンルに対する点数として表すことができる。
ユーザのプロファイルデータは、例えば年齢層のように事前に登録される他、ユーザの行動履歴の解析によって取得または更新される。ユーザの行動履歴とは、ユーザがいつ、どういったサイトまたはページを訪問し、どういった行動をしたかを記録した情報である。ユーザの行動履歴データとして、例えばコンテンツの参照、注目リストへの追加、視聴、購入などといった行動を、ユーザの識別子及び時間情報などと共に記録し得る。
図2は、ユーザの行動履歴に応じてユーザのプロファイルデータを更新する様子を例示した説明図である。
図2を参照すると、まず識別子「U001」で表される新たなユーザが、推薦システム1の提供するWebサイトにアクセスしている(A)。このとき、ユーザU001のプロファイルデータは、“洋楽”=0ポイント、“邦楽”=0ポイントである。
その後、ユーザU001は、Webサイト上で洋楽の楽曲Aを視聴している(B)。それにより、ユーザU001のプロファイルデータのうち、“洋楽”の項目に10ポイントが加算される。なお、ここで加算されるポイント値はどのような値であってもよい。
次に、ユーザU001は、Webサイト上で邦楽の楽曲Bを購入している(C)。それにより、ユーザU001のプロファイルデータのうち、“邦楽”の項目に100ポイントが加算される。このようにして、例えばユーザU001は洋楽よりも邦楽に強い嗜好を持つことを示すプロファイルデータが生成される。
図3は、ユーザの行動履歴に応じてユーザのプロファイルデータを変化させる他の例を示した説明図である。図3では、推薦システム1はニュース記事をコンテンツとして扱うことを前提としている。
図3を参照すると、まず識別子「NW01」で表されるニュース記事が登録される際に、コンテンツ解析によって記事NW01のメタデータが取得される(A)。例えば、テキストで表される記事内容を解析する手法として知られたTF/IDF(Term Frequency/Inverse Document Frequency)によって、ニュース記事を解析することができる。図3の例では、記事NW01のメタデータとして、記事内容に
“東京”、“野球”という用語が含まれていたことにより、“東京”に10ポイント、“野球”に20ポイントの特徴量が与えられている。
“東京”、“野球”という用語が含まれていたことにより、“東京”に10ポイント、“野球”に20ポイントの特徴量が与えられている。
その後、ユーザU002がニュース記事配信サイトにアクセスし(B)、記事NW01を参照したことにより(C)、ユーザU002のプロファイルデータに記事NW01のメタデータ“東京”=10ポイント、“スポーツ”=20ポイントの各値が加算されている。
なお、図3ではユーザが記事を参照した時点でプロファイルデータを更新する例を説明した。しかしながら、例えばユーザの行動履歴を任意の期間蓄積し、ユーザがWebサイトから退出した時点または1日1回などのタイミングで行動履歴を解析し、プロファイルデータを更新してもよい。
図1に示した推薦システム1では、このような推薦対象のコンテンツのメタデータ及びユーザのプロファイルデータを用いて、ユーザに対するコンテンツの推薦を行う。
図4は、推薦システム1の論理的な機能配置を示したブロック図である。ここでは、説明の便宜上、図1に示した端末装置10及び12のうち端末装置10のみを示している。なお、端末装置12も端末装置10と同様に構成される。また、推薦処理の内容に直接影響を与えないネットワーク20及びWebサーバ22については、図示を省略している。
図4を参照すると、端末装置10は、ユーザアプリケーション部110を備える。ユーザアプリケーション部110は、推薦サーバ30へコンテンツの推薦を要求し、及び推薦サーバ30から返却された推薦されるコンテンツのリスト(以下、推薦リストという。)を端末装置10のユーザに提示する。また、ユーザアプリケーション部110は、ユーザの行動履歴データを収集し、収集した行動履歴データを推薦サーバ30へ送信してもよい。
ユーザアプリケーション部110は、例えばWebブラウザまたはWebブラウザへ導入されるプラグインなどを用いて実現され得る。また、推薦システム1がクライアント−サーバ型のシステムである場合には、ユーザアプリケーション部110を専用のクライアントソフトとして実現してもよい。
次に、図4を参照すると、推薦サーバ30は、アプリケーションインタフェース部120、応用アルゴリズム部130、基本アルゴリズム部140、データ操作部150、データ保持部160、及びデータベース入出力部170を備える。
アプリケーションインタフェース部120は、ユーザアプリケーション部110からの推薦要求を受け付け、推薦結果を返却するためのインタフェースである。プリケーションインタフェース部120は、例えばSOAP(Simple Object Access Protocol)に基づくRPC(Remote Procedure Call)による関数群として実現することができる。また、例えばより簡易なHTTP(HyperText Transfer Protocol)に基づくパラメータの受け渡しによってアプリケーションインタフェース部120を実現してもよい。
本実施形態において、コンテンツの推薦を行う推薦アルゴリズムは、以下に述べる応用アルゴリズム部130及び基本アルゴリズム部140に大別される。
応用アルゴリズム部130は、個々の推薦サービスのニーズなどに合わせて推薦の要求を処理し、及び推薦の結果を加工して、ユーザアプリケーション部110に返却するための最終的な推薦リストを取得する。例えば、応用アルゴリズム部130は、画面表示上のニーズまたは制約に即して推薦リストの並び替えや表示数の限定などを行ってもよい。また、応用アルゴリズム部130は、基本アルゴリズム部140から出力される複数の推薦リストの統合、または関連情報の付加などを行ってもよい。
さらに、応用アルゴリズム部130は、ユーザの行動履歴データをユーザアプリケーション部110から受信した場合に、行動履歴データを解析して行動を行ったユーザのプロファイルデータを更新してもよい。
基本アルゴリズム部140は、推薦に用いられる定型化されたアルゴリズムを実行する機能を有する。前述したように、現在実用されている様々な推薦サービスの中で、効果的な推薦を行うための基本となるアルゴリズムは共通しているものが少なくない。例えば、多くの推薦サービスで共通して用いられるアルゴリズムとして、以下に説明する協調フィルタ、及び内容フィルタが挙げられる。
図5は、協調フィルタによる推薦処理の一例を示す説明図である。
図5を参照すると、ユーザU011から推薦要求を受けたことをきっかけとして、まずユーザU011と他のユーザU012、U013、及びU014との間のプロファイルデータの相関度が計算される(A)。相関度とは、複数のプロファイルデータまたはメタデータの間の関連の度合いを示す値を指す。図5の例では、データ項目ごとの差分値の総和で表される相関度を用いている(即ち、値が小さいほどより関連の度合いが高い)。
例えば、ユーザU011とユーザU012の相関度は、|500−0|+|100−300|+|0−0|=700と計算される。また、同様に、ユーザU011とユーザU013の相関度は300、ユーザU011とユーザU014の相関度は900と計算される。
なお、データ間の相関度はかかる例に限定されない。例えば、ユーザのプロファイルをベクトルと見なし、プロファイルデータ間の類似度を表す方向余弦、標準化距離、またはハミング距離などを計算して相関度として用いてもよい。
次に、ユーザ間の相関度の計算結果を用いて、ユーザU012、U013、及びU014が順位付けされる(B)。図5の例では、計算された相関度の小さい方から、ユーザU013、ユーザU012、ユーザU014の順に順位付けされている。
そして、順位付けの結果として上位に位置するユーザのプロファイルデータに基づいて、推薦するコンテンツが決定される(C)。図5の例では、最も相関度の小さい(即ちユーザU011に最も関連する)ユーザU013のプロファイルデータの中から、高い点数を有する楽曲A及び楽曲Cが選択されている。なお、ここではユーザU011に最も関連するユーザのプロファイルデータから推薦するコンテンツを決定しているが、推薦するコンテンツを決定する方法はかかる例に限定されない。例えば、相関度の上位数名のユーザの過去の購買履歴データなどから推薦するコンテンツを決定してもよい。
図6は、推薦に共通して用いられるアルゴリズムの他の例として、内容フィルタを用いた推薦処理の一例を示す説明図である。図6では、ニュース記事を推薦対象のコンテンツとしている。
図6を参照すると、まず、ユーザU021から推薦要求を受けたことをきっかけとして、ユーザU021のプロファイルデータとコンテンツ(即ちニュース記事)NW11、NW12、及びNW13のメタデータとの間の相関度が計算される(A)。なお、各コンテンツのメタデータは前述のコンテンツ解析などによって事前に与えられる。
例えば、ユーザU021とニュース記事NW11との間の相関度は、図5の例と同様に、190と計算される。また、ユーザU021とニュース記事NW12との間の相関度は290、ユーザU021とニュース記事NW13との間の相関度は20と計算される。
次に、ユーザのプロファイルデータとコンテンツのメタデータ間の相関度の計算結果を用いて、ニュース記事の順位付けが行われる(B)。図6の例では、計算された相関度の小さい方から、ニュース記事NW13、NW11、NW12の順で順位付けされている。
そして、順位付けの結果として上位に位置するニュース記事NW13及びNW11が、推薦されるコンテンツとして決定される(C)。なお、ここでは順位付けの結果上位に位置するコンテンツが推薦されているが、推薦するコンテンツを抽出する基準はかかる例に限定されない。例えば、相関度に対する所定の閾値を用いて抽出されたコンテンツを推薦してもよい。
なお、図5の例では指定されたユーザと他のユーザとの間のプロファイルデータの相関度、図6の例では指定されたユーザのプロファイルデータと任意のコンテンツのメタデータとの間の相関度を計算することとしたが、相関度の計算はかかる例に限定されない。例えば、ユーザアプリケーション部110からの推薦要求においてユーザではなくコンテンツを指定させ、指定されたコンテンツと他のコンテンツとの間のメタデータの相関度を計算してもよい。また、指定されたコンテンツのメタデータと任意のユーザのプロファイルデータとの間の相関度を計算してもよい。
図4の説明に戻ると、基本アルゴリズム部140には、このような推薦に用いられる様々な汎用的なアルゴリズムが、定型的な計算処理として部品化された状態で実装される。ここで説明した以外の汎用的なアルゴリズムとしては、例えばニューラルネットワークに基づく学習を行う推薦アルゴリズム、ベイジアンネットワークに基づく確率論的な推薦アルゴリズムなどを基本アルゴリズム部140に実装してもよい。また、類似度の計算や行列の四則計算などの基礎的計算処理を、基本アルゴリズム部140に実装してもよい。
データ操作部150は、応用アルゴリズム部130または基本アルゴリズム部140から後述するデータ保持部160に対してデータを読み書きするためのインタフェースを提供する。例えば、基本アルゴリズム部140は、協調フィルタに基づくコンテンツの推薦を行う場合に、ユーザのプロファイルデータをデータ操作部150を介してデータ保持部160から読み取ることができる。また、例えば、応用アルゴリズム部130は、ユーザの行動履歴データに基づいてプロファイルデータを作成し、データ操作部150を介して当該プロファイルデータをデータ保持部160に書き込むことができる。データ操作部150からデータ保持部160へのデータの読み書きは、後に説明するように、行または列を指定する指定子を用いた部分行列の操作によって行われる。
データ保持部160は、推薦サーバ30の中で、以下に詳しく述べる行列形式のデータ構造を用いて、ユーザのプロファイルデータ及びコンテンツのメタデータを一元的に保持する。
ここで、図2または図3などから理解されるように、ユーザのプロファイルデータのデータ項目とコンテンツのメタデータのデータ項目には、相互に共通する項目が含まれる。例えば、楽曲コンテンツのメタデータであるジャンル(“洋楽”や“邦楽”など)は、図2においてユーザのプロファイルデータのデータ項目として用いられている。また、例えば、ユーザの地域属性などに相当するプロファイルデータ項目“東京”などは、図3において、ニュース記事コンテンツのメタデータのデータ項目として用いられている。よって、ユーザのプロファイルデータ及びコンテンツのメタデータを、両データのデータ項目を行方向または列方向の少なくとも一方に有する行列形式のデータ構造に保持することができる。
図7は、本実施形態に係るデータ保持部160における行列形式のデータ構造について説明するための説明図である。
図7を参照すると、データ保持部160の行列形式のデータ構造の行方向には、ユーザ(“U111”、“U222”)、コンテンツ(“楽曲A”、“楽曲B”)、地域属性(“東京”、“大阪”)、ジャンル(“洋楽”、“邦楽”)の8つのデータ項目が配されている。また、行列形式のデータ構造の列方向にも、同様の8つのデータ項目が配されている。そして、行列形式の各マス(以下、フィールドという。)には、数値で表されるデータ値が保持されている。
図7において、各フィールドのデータ値の意味は、フィールドのデータ構造内の位置によって異なる。例えば、ユーザの行と地域属性及びジャンルの列に対応する領域D1に保持されるデータは、ユーザのプロファイルデータに相当する。コンテンツの行と地域属性及びジャンルの列に対応する領域D2に保持されるデータは、コンテンツのメタデータに相当する。
また、ユーザの行とユーザの列に対応する領域D3には、例えば前述の協調フィルタの計算の結果得られたユーザ間の相関度を格納することができる。ユーザの行とコンテンツの列に対応する領域D4には、例えば前述の協調フィルタの計算に用いられるユーザのコンテンツに対する行動履歴を数値化したデータを格納することができる。その代わりに、領域D4には、例えば前述の内容フィルタの計算の結果得られたユーザとコンテンツとの間の相関度を格納してもよい。また、コンテンツの行とコンテンツの列に対応する領域D5には、例えば前述の内容フィルタの計算に用いられるコンテンツ同士の相関度を格納してもよい。
さらに、行と列が共に地域属性またはジャンルに対応する領域D6には、例えばニューラルネットワークに基づいて推薦を行う場合のノード間のリンク(属性同士の関連)の重みを格納してもよい。また、領域D6には、ベイジアンネットワークに基づいて推薦を行う場合の確率値などを格納してもよい。
ここで、前述したように、応用アルゴリズム部130または基本アルゴリズム部140は、データ操作部150を介してデータ保持部160に保持されたデータの読み書きを行う。図7に示したデータ構造を前提とすれば、例えばデータ保持部160の部分行列である領域D1〜D6をそれぞれ取得して出力する機能をデータ操作部150の機能に含めることができる。より一般的には、データ操作部150は、データ保持部160の行列形式のデータ構造のうち、後述する行指定子及び/または列指定子を用いて指定された範囲の部分行列のデータの読み書き機能を提供するように実装されることができる。
本発明によらない情報システムにおいては、通常、データはエンティティごとに分類され、正規化された上で保持される(性能面の要請から部分的に非正規化される場合もある)。例えば、ユーザデータ、ユーザのプロファイルデータ、ユーザ間の相関度、コンテンツデータ、コンテンツのメタデータなどは、それぞれ別のエンティティと見なされる。そして、本発明によらない情報システムでは、これら別々のエンティティから取得されたデータが個々の推薦アルゴリズムに適した形式に再構成された上で、推薦処理が行われる。
しかしながら、ここまでの説明から理解されるように、推薦サービスに共通的に用いられる協調フィルタや内容フィルタなどの処理においては、いずれも同様のデータ項目を行方向または列方向に配した行列またはベクトルについての計算処理が主となる。よって、本実施形態のように、行方向または列方向の少なくとも一方にユーザのプロファイルデータ及びコンテンツのメタデータのデータ項目を有する行列形式のデータ構造でデータを保持することにより、多くの計算処理を単純化することができる。そして、それにより、様々なアルゴリズムを柔軟に組み合わせることが可能となる。
なお、図7に示した行列形式のデータ構造では、行方向と列方向に同一の8つずつのデータ項目を有しているが、行方向と列方向のデータ項目は必ずしも一致していなくてもよい。例えば、図7に示した行列形式の下から4行、即ち地域属性及びジャンルのカテゴリに対応する行を省略して推薦システム1を実装してもよい。
図4に戻り、本実施形態に係る推薦システム1の論理的な機能配置の説明を継続する。
データ保持部160において行列形式で保持されるデータは、推薦サーバ30のメモリ上に保持されるデータである。かかるデータをDBサーバ32に永続化させるために設けられるのが、データベース入出力部170である。
データベース入出力部170は、データ保持部160からの指示を受け、データの永続化とデータの読出しをDBサーバ32のデータベース管理部180に要求する。データの永続化とは、物理的な記憶装置にデータを記録することを指す。データベース管理部180は、データベース入出力部170からのデータの入出力要求を受け付けると共に、記憶部190を用いたデータの永続化とデータの読み出しを一元的に管理する。
データベース入出力部170またはデータベース管理部180は、キャッシュの機能を有していてもよい。例えば、データベース管理部180において図7に示した行列形式のデータ構造のまま過去の問い合わせに対する応答の内容を保持しておくことで、更新の発生していないデータについての問い合わせに高速に応答を返すことができる。
データベース入出力部170及びデータベース管理部180は、例えば汎用的なRDBMS(Relational DataBase Management System)機能を提供するミドルウェアを適用または拡張して実現することができる。
記憶部190は、推薦システム1の保持する様々なデータを記憶するための記憶領域である。記憶部190は、例えば後述する汎用コンピュータの記憶装置916を用いて実装され得る。
なお、DBサーバ32において推薦システム1のデータを永続化する際には、必ずしも図7を用いて説明した行列形式でデータを記録しなくてもよい。例えば、正規化されたリレーショナルデータベース形式、またはXML(eXtensible Markup Language)形式などに変換した上でデータを永続化してもよい。
ここまで、推薦システム1の論理的な機能配置について説明を行った。次に、本実施形態のデータ保持部160におけるデータアクセス方式について説明する。
前述したように、データ保持部160は、行方向または列方向の少なくとも一方にユーザのプロファイルデータ及びコンテンツのメタデータのデータ項目を有する行列形式のデータ構造を用いて、各種データを保持する。このような行列において、いくつかのフィールドは実際の処理では使用されないことから、データ保持部160の保持する行列はいわゆる疎行列となる。そうした疎行列に対し、データ操作部150は、応用アルゴリズム部130または基本アルゴリズム部140からの要求に応じて、データ参照または更新のための部分行列の切り出しを行う。
データ操作部150を介したデータ保持部160からの部分行列の切り出しは、例えば行指定子及び列指定子を用いて行うことができる。行指定子及び列指定子とは、行列形式のデータ構造の個々の行または列を指定する役割を果たす識別子である。本実施形態では、データ保持部160に対するデータアクセスを簡易かつ高速に行うために、データのカテゴリに応じて階層的に表現された文字列を行指定子及び列指定子として用いる。
図8は、データ保持部160における行指定子及び列指定子を用いたデータアクセス方式を示した説明図である。
図8を参照すると、データ保持部160に保持される各行のデータ項目は、データのカテゴリに対応する第1及び第2階層と、データ項目に対応する第3階層とにより、3階層の階層構造を構成している((A)〜(C))。そして、階層構造内の1つのノードは、階層的に表現された文字列である行指定子及び列指定子によって指定される。
例えば、第1階層までを指定する行指定子「1」は“ユーザ”、行指定子「2」は“コンテンツ”、行指定子「3」は“属性”に対応する(A)。また、第2階層までを指定する行指定子「1−1」は“一般ユーザ”、「1−2」は“特別ユーザ”、「2−1」は“楽曲”、「2−2」は“動画”、「3−1」は“地域属性”、そして「3−2」は“ジャンル”に対応する(B)。さらに、第3階層までを指定する行指定子=「1−1−1」はユーザU111、「1−1−2」はユーザU112などに対応する(C)。なお、ここでは階層間をハイフン記号“−”で区切っているが、ハイフン記号“−”は省略されてもよい。
このような行指定子「X−X−X」によって、例えば図7の行列形式の1行が特定される。即ち、例えば本実施形態に係る基本アルゴリズム部140がユーザU111の1行分のデータを取得する場合には、基本アルゴリズム部140からデータ操作部150に行指定子「1−1−1」が受け渡される。そして、データ操作部150は、行指定子「1−1−1」に対応するユーザU111のノードの配下のデータを1行分のデータとして取得し、基本アルゴリズム部140へ出力する。
また、行指定子に加えて、同様に3階層に階層化された列指定子(A´〜C´)を用いて、行列形式のデータ構造内の1フィールドを指定することができる。例えば、フィールド指定子「1−1−1−3−1−1」は、ユーザU111のプロファイルデータのうち地域属性“東京”のデータに対応するノードを指定する。また、フィールド指定子「2−1−1−3−1−1」は、楽曲Aのメタデータのうち地域属性“東京”のデータに対応するノードを指定する。
さらに、プログラムの実装上は、フィールド指定子によって指定される階層構造の終端に、データが物理的に格納されたアドレスを指し示すポインタが保持される(D)。そして、ポインタによって示されたアドレスに実データが格納される(E)。例えば、図8では、フィールド指定子「1−1−1−3−1−1」の終端のポインタが指し示すアドレス“AF05”に、ユーザU111の地域属性“東京”についてのプロファイルデータ値“100”が格納されている。
なお、ここでは前半部に行指定子、後半部に列指定子を結合させたフィールド指定子を用いてデータ保持部160に保持されるデータにアクセスする方式について説明した。即ち、図8に示したように、データモデル上は階層構造の始点側が行、終端側が列に対応する。しかしながら、推薦アルゴリズムを実装する上では、列を先に指定してデータを参照または更新することが求められる場合もある。よって、図8に示したデータアクセス方式に加えて、前半部に列指定子、後半部に行指定子を結合させた形でデータ保持部160のデータにアクセスできる階層化されたデータアクセス方式を、併せて実装するのが好適である。
図8を用いて説明した階層化されたデータアクセス方式は、例えばオブジェクト指向型のプログラミング言語におけるクラスを用いて各階層のノードを定義することにより実現することができる。
図7を用いて説明した行列形式のデータ構造(論理的なデータモデルに相当)に対して図8のような階層構造のデータアクセス方式を実現することのメリットの1つは、データアクセスが高速になることである。単純な一次元配列のデータに対する逐次比較によるデータアクセスに比して、階層化された識別子によるデータアクセスが高速であることは、二分探索の考え方に基づくものとして知られている。このようなデータアクセス方式により、データ保持部160の保持するデータ構造が大規模な疎行列となったとしても、十分に実用に耐え得る高速なデータアクセスを行うことができる。また、階層化された識別子に数値を用いることにより、数値の大小関係によって柔軟に範囲指定をして部分行列を切り出すことも可能となる。
さらに、各階層のノードをクラスを用いて定義した場合、個々のノードは当該クラスから生成されるオブジェクトとなる。本発明によらない通常の推薦システムにおいて、例えば1つのユーザまたは1つのコンテンツに対するデータアクセスがあった場合、当該データアクセスがされている間、アクセス対象のユーザまたはコンテンツに関わるデータ全体がロックされる。ロックとは、複数のプロセスから同時にデータが操作されることを防ぎ、データの一貫性を担保するための処理である。しかしながら、前述のように図8の各階層のノードがそれぞれ1つのオブジェクトであれば、ロックする範囲を個々のノード、即ち処理対象とされている範囲の部分行列またはフィールドに限定することができる。それにより、複数のプロセスを並列で稼動させた場合にも、ロックの解除を待つことによる処理の遅延が低減される。
また、図8では、階層構造のデータの終端である各フィールドに1つの実データのみを保持させているが、各フィールドに1つの実データではなく複数の実データを保持させてもよい。例えば、図8(D)において階層構造のデータの終端に複数のポインタを割当てることで、複数の実データを保持させることができる。かかる構成によれば、例えばWeb上のセッション単位または日単位の行動履歴に基づくプロファイルデータと、過去全ての行動履歴に基づくプロファイルデータとを、並列的に保持することができる。そうすることにより、より多面的な観点から推薦を行うサービスを構築することが可能となる。
ここまで、本実施形態の推薦システム1におけるデータ構造及び当該データ構造に対するデータアクセス方式について説明を行った。次に、推薦システム1における処理の流れについて、図9及び図10を用いて説明する。
図9は、本実施形態におけるユーザのプロファイルデータ生成処理の流れを示すシーケンス図である。
図9を参照すると、まず、端末装置10のユーザアプリケーション部110から推薦サーバ30の応用アルゴリズム部130へ、ユーザの行動履歴データが送信される(S1104)。なお、図4を用いて説明したように、ユーザアプリケーション部110と応用アルゴリズム部130との間の要求や応答は、アプリケーションインタフェース部120を介して行われる。しかし、ここでは説明の便宜上、アプリケーションインタフェース部120を省略して示している。
ユーザアプリケーション部110からの行動履歴データの送信は、前述したように、ユーザがコンテンツの参照や購入などの行動をした時点、ユーザがWebサイトから退出した時点、または1日1回などの任意の時点で行われる。ここで送信される行動履歴データには、典型的には、ユーザを特定する識別子、参照や購入などの行動の対象となるコンテンツを特定する識別子、及び行動の種類を特定するコードなどが含まれる。
次に、行動履歴データを受信した応用アルゴリズム部130は、データ操作部150に対してコンテンツのメタデータの取得を要求する(S1108)。例えば、行動履歴データに楽曲A及び楽曲Bを特定する識別子が含まれていた場合には、図7に示した領域D2の範囲のメタデータの取得が要求される。
応用アルゴリズム部130からの要求を受けたデータ操作部150は、データ保持部160を参照し、コンテンツのメタデータに相当するデータ保持部160内の部分行列を取得する(S1112、S1116)。例えば、図7に示した領域D2の範囲のメタデータは、図8に示した行指定子「2−1」及び列指定子「3」を用いて取得され得る。ここで取得されたコンテンツのメタデータは、データ操作部150から応用アルゴリズム部130に受け渡される(S1120)。
さらに、応用アルゴリズム部130は、データ操作部150に対してユーザのプロファイルデータの取得を要求する(S1124)。例えば、行動履歴データにコンテンツを参照したユーザを特定する識別子U111が含まれていた場合には、図7に示した領域D1内のユーザU111のプロファイルデータの取得が要求される。
応用アルゴリズム部130からの要求を受けたデータ操作部150は、データ保持部160を参照し、ユーザのプロファイルデータに相当するデータ保持部160内の部分行列を取得する(S1128、S1132)。例えば、ユーザU111のプロファイルデータは、図8に示した行指定子「1−1−1」及び列指定子「3」を用いて取得され得る。ここで取得されたーザのプロファイルデータは、データ操作部150から応用アルゴリズム部130に受け渡される(S1136)。
その後、応用アルゴリズム部130は、行動履歴データを解析することにより、ユーザの新たなプロファイルデータを生成する(S1140)。例えば、応用アルゴリズム部130は、ユーザU111が参照した楽曲A及び購入した楽曲Bのメタデータを、所定の係数を掛けた上でユーザU111のプロファイルデータに加算することができる。このような演算処理は、行列形式のデータ構造から取得した部分行列を用いた処理に適している。
そして、応用アルゴリズム部130は、新たに生成したユーザのプロファイルデータをデータ操作部150へ受け渡し、データの更新を指示する(S1144)。そうすると、データ操作部150によってデータ保持部160内のユーザのプロファイルデータに相当する部分行列が更新される(S1148)。さらに、データ保持部160は、S1148の後の任意の時点で、更新されたユーザのプロファイルデータの永続化をデータベース入出力部170に指示する(S1148)。
なお、図9では行動履歴データの解析処理を応用アルゴリズム部130が行うように説明したが、行動履歴データの解析処理を定型化し、基本アルゴリズム部140に実装してもよい。
ここまで、図9を用いて本実施形態におけるユーザのプロファイルデータ生成処理について説明を行った。図9を参照すれば、データ保持部160において行列形式で保持したユーザのプロファイルデータ及びコンテンツのメタデータに対する読み書きを、データ操作部150を介する部分行列の操作に単純化できることが理解される。
次に、図10は、本実施形態における推薦リストの生成処理の流れを例示するシーケンス図である。
図10を参照すると、まず、ユーザアプリケーション部110からアプリケーションインタフェース部120を介して、応用アルゴリズム部130に推薦要求が送信される(S1204)。推薦要求には、推薦を希望するユーザを特定する識別子の他に、例えば推薦の対象とするコンテンツの範囲や推薦方法(協調フィルタや内容フィルタなど)を指定するコードなどを含んでもよい。
次に、推薦要求を受信した応用アルゴリズム部130は、基本アルゴリズム部140に対して相関度の計算を要求する(S1208)。相関度の計算とは、例えば図5(A)または図6(A)に関連して説明した処理である。相関度の計算処理は、基本アルゴリズム部140において定型化することができる。
応用アルゴリズム部130からの相関度の計算要求を受けた基本アルゴリズム部140は、データ操作部150を介して、データ保持部160から相関度の計算に必要となるデータを取得する(S1212〜S1224)。例えば、図5(A)に関連して説明した相関度の計算を行う場合には、ユーザのプロファイルデータのうち楽曲のジャンルに相当するデータが、データ保持部160から部分行列の形で取得される。
そして、基本アルゴリズム部140は取得されたデータを用いて相関度の計算を行い(S1228)、計算結果が基本アルゴリズム部140から応用アルゴリズム部130へ出力される(S1232)。
さらに、応用アルゴリズム部130は、基本アルゴリズム部140に対して相関度の計算結果に基づく推薦リストの生成を要求する(S1236)。推薦リストの生成とは、例えば図5(B)〜(C)または図6(B)〜(C)に関連して説明した処理である。推薦リストの生成処理もまた、基本アルゴリズム部140において定型化することができる。
応用アルゴリズム部130からの推薦リストの生成要求を受けた基本アルゴリズム部140は、データ操作部150を介して、データ保持部160から推薦リストの生成に必要となるデータを取得する(S1240〜S1252)。例えば、図5(B)〜(C)に関連して説明した推薦リストの生成を行う場合には、ユーザのプロファイルデータのうちユーザと個々の楽曲コンテンツの相関度を表すデータが、データ保持部160から部分行列の形で取得される。
そして、基本アルゴリズム部140は取得されたデータを用いて推薦リストの生成を行い(S1256)、生成された推薦リストが基本アルゴリズム部140から応用アルゴリズム部130へ出力される(S1260)。なお、図10には示していないが、応用アルゴリズム部130は、推薦リストを取得した後、個々の推薦サービスのニーズや制約に合わせて取得した推薦リストの加工を行ってもよい。
そして、最終的に取得された推薦リストは、応用アルゴリズム部130からアプリケーションインタフェース部120を介してユーザアプリケーション部110へ出力される(S1264)。
ここまで、図10を用いて本実施形態における推薦リストの生成処理について説明を行った。本実施形態では、応用アルゴリズム部130は、基本アルゴリズム部140に実装される定型的な計算処理を用いて、推薦リストを取得する。例えば、図10に示した相関度の計算処理や相関度の計算結果に基づく推薦リストの生成処理を定型化し、基本アルゴリズム部140に実装することができる。基本アルゴリズム部140において扱うデータ形式は、データ保持部160からデータ操作部150を介して取得した部分行列の形式に共通化されている。このような行列形式のデータは、応用アルゴリズム部130において基本アルゴリズム部140から出力される様々な計算結果を柔軟に組み合わせることに適している。
以上、図1〜図10を用いて本発明の第1の実施形態について説明を行った。第1の実施形態に係る推薦システム1によれば、応用アルゴリズム部130において、定型的な計算処理を実行する基本アルゴリズム部140を柔軟に組み合わせることができる。
また、データ保持部160において行列形式で保持するユーザのプロファイルデータ及びコンテンツのメタデータに対するデータ操作部150を介した読み書きを、部分行列の操作の形で単純化して行うことができる。
さらに、行列形式のデータ構造に対して階層的に表現された行及び列の指定子によるデータアクセス方式が提供されることにより、データアクセスが高速になると共に、処理対象とするデータの範囲を柔軟に指定することができる。
即ち、第1の実施形態に係る推薦システム1によれば、推薦システム1における推薦アルゴリズムの設計及び開発の柔軟性が向上し、サービス開発のコストが低減されると共に、より効果的なコンテンツの推薦結果がユーザに提供されることが期待される。
〔2〕第2の実施形態
第1の実施形態に係る推薦システム1では、推薦サーバ及びDBサーバをそれぞれ1台ずつ用いてシステムを構成した。しかしながら、ユーザのプロファイルデータ及びコンテンツのメタデータを行列形式で保持した場合、複数の推薦サーバによるデータの共有も容易に行うことができる。そこで、本発明の第2の実施形態として、複数の推薦サーバを用いて推薦システムを構成する例について説明する。
第1の実施形態に係る推薦システム1では、推薦サーバ及びDBサーバをそれぞれ1台ずつ用いてシステムを構成した。しかしながら、ユーザのプロファイルデータ及びコンテンツのメタデータを行列形式で保持した場合、複数の推薦サーバによるデータの共有も容易に行うことができる。そこで、本発明の第2の実施形態として、複数の推薦サーバを用いて推薦システムを構成する例について説明する。
図11は、本発明の第2の実施形態に係る推薦システム2の構成を示した模式図である。図11を参照すると、推薦システム2には、端末装置10、端末装置12、ネットワーク20、Webサーバ22、推薦サーバ30a及び推薦サーバ30b、並びにDBサーバ36が含まれる。
推薦サーバ30a及び推薦サーバ30bは、Webサーバ22及びDBサーバ36とそれぞれ接続される。推薦サーバ30a及び推薦サーバ30bは、第1の実施形態に係る推薦サーバ30と同様、端末装置10または12からコンテンツの推薦要求を受け付け、推薦リストを取得し、Webサーバ22を介して当該推薦リストを要求元の端末装置へ送信する。また、推薦サーバ30a及び推薦サーバ30bは、演算に必要とされるコンテンツのメタデータ及びユーザのプロファイルデータを、DBサーバ36から取得する。
ここで、推薦サーバ30a及び推薦サーバ30bは、同一のコンテンツを推薦の対象として扱う冗長型の推薦サーバであってもよい。また、推薦サーバ30a及び推薦サーバ30bは、異なる範囲のコンテンツを推薦の対象として扱う分散協調型の推薦サーバであってもよい。
また、推薦サーバ30aまたは推薦サーバ30bは、他方の推薦サーバから推薦要求を受け付け、推薦リストを生成して要求元の推薦サーバに返却する機能を有してもよい。そうすることにより、分散して処理した異なる範囲のコンテンツの推薦リストを統合して、端末装置10または端末装置20へ送信することが可能となる。
本実施形態において、DBサーバ36は、推薦サーバごとにデータの割当て範囲を規定したデータ割当てテーブルを用いて、推薦サーバ30aまたは推薦サーバ30bの処理対象とするユーザまたはコンテンツを管理する。
図12は、推薦システム2のDBサーバ36の論理的な機能配置を示したブロック図である。図12を参照すると、DBサーバ36は、データベース管理部182、記憶部190、及びデータ割当てテーブル192を備える。
データベース管理部182は、第1の実施形態に係るデータベース管理部180と同様の機能を有する他、さらに、データ割当てテーブル192を用いて推薦サーバ30aまたは推薦サーバ30bに処理させるユーザまたはコンテンツの範囲を管理する。
データ割当てテーブル192は、推薦サーバごとのデータ割当て範囲を規定するためのテーブルである。なお、図12では説明の便宜上、データ割当てテーブル192を記憶部190とは分けて示しているが、データ割当てテーブル192は記憶部190に含まれてもよい。
図13は、データ割当てテーブル192のデータ構成の一例を説明するための説明図である。図13(A)は、データ割当てテーブル192のデータ構成を示している。図13(A)において、データ割当てテーブル192は、縦軸に推薦サーバの識別子(30aまたは30b)、横軸にデータ割当て範囲及び読み出すデータ数の上限値を有する。また、図13(B)は、DBサーバ36において管理される推薦システム2のコンテンツ及びコンテンツのメタデータを、概念的に行列形式で示している。
図13(A)を参照すると、推薦サーバ30aには、推薦システム2で扱われるコンテンツ及びコンテンツのメタデータのうち、領域D7の範囲のデータが割当てられている。図13(B)を参照すると、領域D7は、楽曲コンテンツ及び楽曲コンテンツのメタデータ(属性1)を対象とする領域である。また、推薦サーバ30aに読み出されるデータ数の上限値は10000件に制限されている。
一方、推薦サーバ30bには、推薦システム2で扱われるコンテンツ及びコンテンツのメタデータのうち、領域D8の範囲のデータが割当てられている。図13(B)を参照すると、領域D8は、ニュース記事コンテンツ及びニュース記事コンテンツのメタデータ(属性1、2)を対象とする領域である。推薦サーバ30aに読み出されるデータ数の上限値は規定されていない。
図12に示したデータベース管理部182は、このようなデータ割当てテーブル192を参照し、推薦サーバごとに割当てられた範囲のデータのみを処理させることで、推薦サーバの冗長化または分散協調処理を実現する。また、推薦サーバに受け渡すデータ数の上限値を制限することで、データ数が増大した場合に推薦サーバに掛かる負荷を抑制することができる。
ここで、推薦サーバを冗長化した場合には、推薦サーバのいずれか一方が故障などの原因で機能停止した場合にも、他方の推薦サーバを用いてサービスが継続される。即ち、推薦システム2の全体としての可用性が確保される。また、推薦サーバ間で分散協調処理を実現した場合には、例えば推薦システム2が大規模なコンテンツデータを扱う場合に、推薦システム2の全体としての応答性能が向上される。
なお、図13ではコンテンツ及びコンテンツのメタデータの所定の範囲を推薦サーバごとに割当てる例を示したが、その代わりにユーザ及びユーザのプロファイルデータの所定の範囲を推薦サーバごとに割当ててもよい。
図14は、本実施形態において推薦サーバ30a及び推薦サーバ30bが起動された際の、データベースからのデータ読出し処理の一例を示したシーケンス図である。図14では、先に推薦サーバ30a、次に推薦サーバ30bが起動されている。
図14において、まず推薦サーバ30aが起動されると、推薦サーバ30aのデータ保持部160はデータベース入出力部170を介してデータベース管理部182にデータの読出しを要求する(S2004、S2008)。
データベース管理部182は、データの読出し要求を受け取ると、要求元の推薦サーバの識別子を用いてデータ割当てテーブル192を参照し、当該推薦サーバのデータ割当て範囲を取得する(S2012、S2016)。例えば、データ割当てテーブル192が図13(A)に示した内容を保持していれば、推薦サーバ30aに対して領域D7を示す情報が取得される。
次に、データベース管理部182は、取得されたデータ割当て範囲に含まれるデータを、記憶部190を参照して取得する(S2020、S2024)。例えば、図13(B)に示した領域D7に含まれる楽曲コンテンツ及び属性1に対応するデータが取得される。
そして、データベース管理部182は、記憶部190から取得したデータを、データベース入出力部170を介して推薦サーバ30aのデータ保持部160へ出力する(S2028、S2032)。
こうした一連の処理の結果、推薦サーバ30aにおける推薦処理に必要とされるデータが推薦サーバ30aのデータ保持部160に読み込まれる。
また、図14に示したように、推薦サーバ30bの起動時にも、同様にデータ読出し要求(S2104、S2108)、データ割当て範囲の取得(S2112、S2116)、データ参照(S2120、S2124)、データ出力(S2128、S2132)が行われる。その結果、推薦サーバ30bにおける推薦処理に必要とされるデータが推薦サーバ30bのデータ保持部160に読み込まれる。
なお、本実施形態において、推薦処理に必要とされるデータが推薦サーバ30aまたは推薦サーバ30bの各データ保持部160に読み込まれた後、各推薦サーバは、推薦要求の待受け状態に移る。そして、端末装置10または12から推薦要求が送信されると、図10を用いて説明した第1の実施形態に係る推薦リスト生成処理と同様の処理が行われる。
以上、図11〜図14を用いて本発明の第2の実施形態について説明を行った。本実施形態では、DBサーバ36において、データ割当てテーブルを用いて推薦サーバ30a及び30bに個々に割当てたデータの範囲が管理される。そして、データベース管理部182は、データ読出し要求を受け取ると、データ割当てテーブルを参照して取得し、規定された範囲のデータのみを要求元の推薦サーバに出力する。かかる構成によれば、複数の推薦サーバに同一のデータ範囲を冗長的に割当ててシステムの可用性を確保し、または複数の推薦サーバに異なるデータ範囲を割当てて分散協調処理を実現することができる。
なお、ここでは1つのDBサーバと複数の推薦サーバとを用いる構成について説明を行ったが、複数のDBサーバと推薦サーバとを用いて推薦システムを構成してもよい。例えば、DBサーバをユーザ及びユーザのプロファイルデータを管理するサーバと、コンテンツ及びコンテンツのメタデータを管理するサーバに分けて構成してもよい。
本明細書において説明した第1及び第2の実施形態に係る一連の処理は、例えば図15に示した汎用コンピュータを用いて実行される。即ち、例えば図1または図11に示した端末装置10、12、推薦サーバ30、30a、30b、及びDBサーバ32、36を、それぞれ図15に示した汎用コンピュータを用いて実装することができる。
図15において、CPU(Central Processing Unit)902は、汎用コンピュータの動作全般を制御する。ROM(Read Only Memory)904には、一連の処理の一部または全部を記述したプログラムやデータが格納され得る。RAM(Random Access Memory)906には、CPU902によって演算処理に用いられるプログラムやデータが一時的に記憶される。
CPU902、ROM904、及びRAM906は、バス908を介して相互に接続される。バス908にはさらに、入出力インタフェース910が接続される。
入出力インタフェース910は、CPU902、ROM904、及びRAM906と、入力装置912、出力装置914、記憶装置916、通信部918、及びドライブ920とを接続するためのインタフェースである。
入力装置912は、例えばマウスやタッチペン、キーボードなどにより構成され、ユーザからの指示や情報入力を受け付ける。出力装置914は、例えばCRT(Cathode Ray Tube)、液晶ディスプレなどの表示装置、またはスピーカーなどの音声出力装置により構成され、ユーザへの情報出力に用いられる。
記憶装置916は、例えばハードディスクドライブまたはフラッシュメモリなどにより構成され、推薦システム1または2で使用されるプログラムやデータを記憶する。通信部918は、LANまたはインターネットなどのネットワークを介する装置間の通信処理を行う。
ドライブ920は、必要に応じて汎用コンピュータに設けられる周辺装置である。例えば、ドライブ920には記録媒体922を装着することができる。記録媒体922には、例えば第1または第2の実施形態に係る一連の処理の一部または全部が記述されたプログラムが記録され得る。そして、記録媒体922に記録されたプログラムは、CPU902によりドライブ920を介して読み込まれる。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
例えば、第1及び第2の実施形態に係る処理を、必ずしもシーケンス図に記載された順序に沿って実行しなくてもよい。第1及び第2の実施形態に各処理ステップは、並列的あるいは個別に独立して実行される処理を含んでもよい。
30 情報処理装置(推薦サーバ)
130 応用アルゴリズム部
140 基本アルゴリズム部
150 データ操作部
160 データ保持部
170 データベース入出力部
130 応用アルゴリズム部
140 基本アルゴリズム部
150 データ操作部
160 データ保持部
170 データベース入出力部
Claims (15)
- 行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部と;
行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部と;
前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部と;
前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する応用アルゴリズム部と;
を備える情報処理装置。 - 前記指定子は、データに対応するノードとデータのカテゴリに対応するノードとにより構成される階層構造内の一の前記ノードを指定する階層的に表現された文字列である、請求項1に記載の情報処理装置。
- 前記基本アルゴリズム部は、前記定型的な計算の1つとして、指定されたユーザと他のユーザとの間の前記プロファイルデータの相関度を計算する、請求項1に記載の情報処理装置。
- 前記基本アルゴリズム部は、前記定型的な計算の1つとして、指定されたユーザの前記プロファイルデータと任意のコンテンツの前記メタデータとの間の相関度を計算する、請求項1に記載の情報処理装置。
- 前記基本アルゴリズム部は、前記定型的な計算の1つとして、指定されたユーザと他のユーザとの間の前記プロファイルデータの相関度、または指定されたユーザの前記プロファイルデータと任意のコンテンツの前記メタデータとの間の相関度に基づいて前記推薦リストを生成する、請求項1に記載の情報処理装置。
- 前記基本アルゴリズム部は、前記定型的な計算の1つとして、指定されたコンテンツと他のコンテンツとの間の前記メタデータの相関度を計算する、請求項1に記載の情報処理装置。
- 前記基本アルゴリズム部は、指定されたコンテンツの前記メタデータと任意のユーザの前記プロファイルデータとの間の相関度を計算する、請求項1に記載の情報処理装置。
- 前記データ保持部は、前記行列形式のデータ構造内の1フィールドに複数のデータ値を有する、請求項1に記載の情報処理装置。
- 前記応用アルゴリズム部は、さらに、端末装置からユーザの行動履歴データを受信した場合に、前記行動履歴データに含まれる行動の対象となったコンテンツの前記メタデータに応じて前記行動を行ったユーザの前記プロファイルデータを更新する、請求項1に記載の情報処理装置。
- 前記情報処理装置は、さらに、前記データ保持部からの指示に基づいて前記データ保持部に保持されるデータの永続化をデータベースに要求するデータベース入出力部を備える、請求項1に記載の情報処理装置。
- 前記データ保持部は、前記プロファイルデータのデータ項目及び前記メタデータのデータ項目のうち、前記情報処理装置に割当てられた範囲のデータを前記データベース入出力部を介してデータベースから取得する、請求項10に記載の情報処理装置。
- 行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造により、前記プロファイルデータ及び前記メタデータを保持するステップと;
行または列を指定する指定子を用いて前記行列形式のデータ構造から任意の部分行列を取得するステップと;
前記行列形式のデータ構造から取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行するステップと;
前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得するステップと;
を含む、推薦方法。 - 情報処理装置を制御するコンピュータを:
行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部と;
行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部と;
前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部と;
前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する応用アルゴリズム部と;
として機能させるための、プログラム。 - 情報処理装置を制御するコンピュータを:
行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部と;
行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部と;
前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部と;
前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する応用アルゴリズム部と;
として機能させるための、プログラムを記録したコンピュータにより読み取り可能な記録媒体。 - 情報処理装置へコンテンツの推薦を要求するユーザアプリケーション部;
を備える端末装置と:
行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部;
行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部;
前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部;
及び前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得し、取得した前記推薦リストを前記端末装置へ送信する応用アルゴリズム部;
を備える情報処理装置と:
を含む情報処理システム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008141772A JP2009289092A (ja) | 2008-05-30 | 2008-05-30 | 情報処理装置、推薦方法、プログラム及び記録媒体 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008141772A JP2009289092A (ja) | 2008-05-30 | 2008-05-30 | 情報処理装置、推薦方法、プログラム及び記録媒体 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2009289092A true JP2009289092A (ja) | 2009-12-10 |
Family
ID=41458241
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008141772A Ceased JP2009289092A (ja) | 2008-05-30 | 2008-05-30 | 情報処理装置、推薦方法、プログラム及び記録媒体 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2009289092A (ja) |
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012123488A (ja) * | 2010-12-06 | 2012-06-28 | Fujitsu Ten Ltd | コンテンツ提供サーバ、及び端末装置 |
| JP2012150561A (ja) * | 2011-01-17 | 2012-08-09 | Nippon Telegr & Teleph Corp <Ntt> | 情報推薦装置及び方法及びプログラム |
| JP2012190125A (ja) * | 2011-03-09 | 2012-10-04 | Kddi Corp | 無線タグを利用したサービス情報提供システム |
| JP2012221315A (ja) * | 2011-04-11 | 2012-11-12 | Nippon Telegr & Teleph Corp <Ntt> | 情報推薦装置及び方法及びプログラム |
| JP2014067181A (ja) * | 2012-09-25 | 2014-04-17 | Nippon Telegr & Teleph Corp <Ntt> | 情報推薦装置及び方法及びプログラム |
| JP2014523049A (ja) * | 2011-07-13 | 2014-09-08 | アリババ・グループ・ホールディング・リミテッド | 個人間距離に基づくランク付けおよび検索方法および装置 |
| KR20140142691A (ko) * | 2013-05-07 | 2014-12-12 | 컬처·컨비니언스·클럽 가부시키가이샤 | 시장조사 및 분석 시스템 |
| KR20150000931A (ko) * | 2013-06-25 | 2015-01-06 | 에스케이플래닛 주식회사 | 어플리케이션 관리 방법, 이를 위한 장치 및 시스템 |
| KR101490660B1 (ko) | 2014-10-22 | 2015-02-05 | 토마토소프트 주식회사 | 전자파일 보관장치 및 이를 운용하는 방법 |
| JP2018181135A (ja) * | 2017-04-19 | 2018-11-15 | サントリーホールディングス株式会社 | レコメンドシステム、レコメンド方法、及び、レコメンドプログラム |
| JP2019503006A (ja) * | 2016-04-29 | 2019-01-31 | テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド | ユーザー似顔絵を取得する方法及び装置 |
| CN111815351A (zh) * | 2020-05-29 | 2020-10-23 | 杭州览众数据科技有限公司 | 一种基于协同过滤与关联规则的服装推荐方法 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07306864A (ja) * | 1992-07-29 | 1995-11-21 | Matsushita Electric Ind Co Ltd | 電子ファイル装置 |
| JPH09153064A (ja) * | 1995-11-30 | 1997-06-10 | Toshiba Corp | 情報フィルタリング装置 |
| JPH11282875A (ja) * | 1998-03-27 | 1999-10-15 | Oki Electric Ind Co Ltd | 情報フィルタリング装置 |
| JP2005167628A (ja) * | 2003-12-02 | 2005-06-23 | Sony Corp | 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム |
-
2008
- 2008-05-30 JP JP2008141772A patent/JP2009289092A/ja not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07306864A (ja) * | 1992-07-29 | 1995-11-21 | Matsushita Electric Ind Co Ltd | 電子ファイル装置 |
| JPH09153064A (ja) * | 1995-11-30 | 1997-06-10 | Toshiba Corp | 情報フィルタリング装置 |
| JPH11282875A (ja) * | 1998-03-27 | 1999-10-15 | Oki Electric Ind Co Ltd | 情報フィルタリング装置 |
| JP2005167628A (ja) * | 2003-12-02 | 2005-06-23 | Sony Corp | 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム |
Non-Patent Citations (2)
| Title |
|---|
| CSNG200100054012; 船越要 外1名: '精度指向のハイブリッド情報フィルタリングの提案' 電子情報通信学会技術研究報告 AI99-29〜40 人工知能と知識処理 第99巻 第226号, 19990723, 第77〜84頁, 社団法人電子情報通信学会 * |
| JPN6012063987; 船越要 外1名: '精度指向のハイブリッド情報フィルタリングの提案' 電子情報通信学会技術研究報告 AI99-29〜40 人工知能と知識処理 第99巻 第226号, 19990723, 第77〜84頁, 社団法人電子情報通信学会 * |
Cited By (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012123488A (ja) * | 2010-12-06 | 2012-06-28 | Fujitsu Ten Ltd | コンテンツ提供サーバ、及び端末装置 |
| JP2012150561A (ja) * | 2011-01-17 | 2012-08-09 | Nippon Telegr & Teleph Corp <Ntt> | 情報推薦装置及び方法及びプログラム |
| JP2012190125A (ja) * | 2011-03-09 | 2012-10-04 | Kddi Corp | 無線タグを利用したサービス情報提供システム |
| JP2012221315A (ja) * | 2011-04-11 | 2012-11-12 | Nippon Telegr & Teleph Corp <Ntt> | 情報推薦装置及び方法及びプログラム |
| JP2014523049A (ja) * | 2011-07-13 | 2014-09-08 | アリババ・グループ・ホールディング・リミテッド | 個人間距離に基づくランク付けおよび検索方法および装置 |
| US9767492B2 (en) | 2011-07-13 | 2017-09-19 | Alibaba Group Holding Limited | Ranking and searching method and apparatus based on interpersonal distances |
| JP2014067181A (ja) * | 2012-09-25 | 2014-04-17 | Nippon Telegr & Teleph Corp <Ntt> | 情報推薦装置及び方法及びプログラム |
| KR20140142691A (ko) * | 2013-05-07 | 2014-12-12 | 컬처·컨비니언스·클럽 가부시키가이샤 | 시장조사 및 분석 시스템 |
| KR101660445B1 (ko) | 2013-05-07 | 2016-09-27 | 컬처·컨비니언스·클럽 가부시키가이샤 | 시장조사 및 분석 시스템 |
| TWI619086B (zh) * | 2013-05-07 | 2018-03-21 | Culture Convenience Club Co Ltd | Market research and analysis system |
| KR102131753B1 (ko) | 2013-06-25 | 2020-07-08 | 에스케이플래닛 주식회사 | 어플리케이션 관리를 위한 장치 |
| KR20150000931A (ko) * | 2013-06-25 | 2015-01-06 | 에스케이플래닛 주식회사 | 어플리케이션 관리 방법, 이를 위한 장치 및 시스템 |
| KR101490660B1 (ko) | 2014-10-22 | 2015-02-05 | 토마토소프트 주식회사 | 전자파일 보관장치 및 이를 운용하는 방법 |
| JP2019503006A (ja) * | 2016-04-29 | 2019-01-31 | テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド | ユーザー似顔絵を取得する方法及び装置 |
| JP2018181135A (ja) * | 2017-04-19 | 2018-11-15 | サントリーホールディングス株式会社 | レコメンドシステム、レコメンド方法、及び、レコメンドプログラム |
| CN111815351A (zh) * | 2020-05-29 | 2020-10-23 | 杭州览众数据科技有限公司 | 一种基于协同过滤与关联规则的服装推荐方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2009289092A (ja) | 情報処理装置、推薦方法、プログラム及び記録媒体 | |
| JP5592505B2 (ja) | トピックに基づいて調整可能なデーター・フィードの総計 | |
| CN101923557B (zh) | 数据分析系统及方法 | |
| TWI543009B (zh) | 搜尋輔助系統與方法 | |
| US20190340199A1 (en) | Methods and Systems for Identifying, Selecting, and Presenting Media-Content Items Related to a Common Story | |
| US20200026772A1 (en) | Personalized user feed based on monitored activities | |
| US10909148B2 (en) | Web crawling intake processing enhancements | |
| US20200133967A1 (en) | Query pattern matching | |
| US8862607B2 (en) | Content receiving apparatus with search query generator | |
| US20210149671A1 (en) | Data structures and methods for enabling cross domain recommendations by a machine learning model | |
| JP2010176327A (ja) | 学習装置、学習方法、情報処理装置、データ選択方法、データ蓄積方法、データ変換方法、及びプログラム | |
| JP2011123920A (ja) | 集計されたニュースコンテンツを個人化するためのシステムおよび方法 | |
| JP2008538842A (ja) | メディアオブジェクトメタデータ関連付け及びランク付け | |
| JP2007531097A (ja) | メタデータベースのプリフェッチ | |
| US20220261451A1 (en) | Method and system for creating and using persona in a content management system | |
| Jin et al. | Personal web revisitation by context and content keywords with relevance feedback | |
| JP5010624B2 (ja) | 検索装置 | |
| JP5784182B2 (ja) | 受信装置、クエリ生成方法、および、プログラム | |
| JP2010182267A (ja) | コンテンツ分類装置、方法及びプログラム | |
| JP2004240887A (ja) | 検索情報表示システム及び検索キーワード情報表示方法及び検索キーワード情報表示プログラム | |
| CN113742573A (zh) | 一种多媒体资源搜索方法、装置、计算机设备和存储介质 | |
| CN100397401C (zh) | 用于门户网站上,对多种资源仓库统一并行检索的方法 | |
| Madisetty et al. | A reranking-based tweet retrieval approach for planned events | |
| JP6696018B1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
| JP2003091535A (ja) | データ管理方法及びプログラム並びに装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110527 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121130 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20121211 |
|
| A045 | Written measure of dismissal of application [lapsed due to lack of payment] |
Free format text: JAPANESE INTERMEDIATE CODE: A045 Effective date: 20130423 |