[go: up one dir, main page]

JP2009289092A - Information processor, recommendation method, program and recording medium - Google Patents

Information processor, recommendation method, program and recording medium Download PDF

Info

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
Application number
JP2008141772A
Other languages
Japanese (ja)
Inventor
Tomoharu Osumi
智春 大隅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2008141772A priority Critical patent/JP2009289092A/en
Publication of JP2009289092A publication Critical patent/JP2009289092A/en
Ceased legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】コンテンツの推薦において様々なアルゴリズムを柔軟に組み合わせることを可能とする。
【解決手段】行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部と、行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部と、前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部と、前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する応用アルゴリズム部と、を備える情報処理装置を提供する。
【選択図】図7
It is possible to flexibly combine various algorithms in content recommendation.
An identifier having profile data representing a user attribute in at least one of a row direction and a column direction and a data item of metadata representing a feature of the content, and identifying the user in at least one of the row direction and the column direction Data for acquiring an arbitrary submatrix from the data holding unit using a data holding unit for holding data by a matrix-type data structure having an identifier data item for identifying content and a specifier for specifying a row or a column An operation unit, a basic algorithm unit that performs a typical calculation process on the profile data and the metadata included in the partial matrix acquired by the data operation unit, and the routine calculation performed by the basic algorithm unit. Use the results to create a recommendation list that lists the content to recommend to users And Application algorithm unit which Tokusuru, to provide an information processing apparatus including a.
[Selection] Figure 7

Description

本発明は、情報処理装置、推薦方法、プログラム及び記録媒体に関する。   The present invention relates to an information processing apparatus, a recommendation method, a program, and a recording medium.

近年、インターネットなどのネットワークを通して提供されるサービスを差別化するための、推薦と呼ばれる技術が広く用いられている。推薦とは、例えばユーザの嗜好や行動をもとに個々のユーザに見合ったコンテンツを選択して提示することにより、コンテンツの利用を促進するための技術である。推薦は、インターネットショッピングや、映像、音楽またはニュース記事などのコンテンツの配信サービスなどに利用されている。   In recent years, a technique called recommendation for differentiating services provided through a network such as the Internet has been widely used. The recommendation is a technique for promoting the use of content by selecting and presenting content suitable for each user based on the user's preference and behavior, for example. Recommendations are used for Internet shopping and content distribution services such as video, music or news articles.

推薦を行うサービスを実現するためには、通常、サービス提供側のシステムに任意の推薦アルゴリズムが実装される。推薦アルゴリズムは、サービス提供の目的や対象とするユーザ、またはコンテンツの内容などに合わせて、個別に設計される。しかし、ユーザに最終的に提供される推薦結果やその表示形式は異なっていても、効果的な推薦を行うための基本となるアルゴリズムには、多くの推薦サービス間で共通しているものが少なくない。例えば、下記特許文献1及び2では、共に協調フィルタ(Collaborative Filtering)と呼ばれるアルゴリズムを応用して推薦を行うことのできる情報処理装置が開示されている。また、協調フィルタの他には、例えば内容フィルタ(Content−Based Filtering)、ニューラルネットワーク、またはベイズ推定などの共通的なアルゴリズムが推薦サービスに用いられ得る。   In order to realize a recommendation service, an arbitrary recommendation algorithm is usually installed in a service providing system. The recommendation algorithm is individually designed in accordance with the purpose of providing the service, the target user, or the content. However, even though the recommendation results and the display formats that are ultimately provided to the user are different, there are few common algorithms among many recommended services for effective recommendation. Absent. For example, Patent Documents 1 and 2 listed below disclose information processing apparatuses that can make recommendations by applying an algorithm called a collaborative filter (Collaborative Filtering). In addition to the collaborative filter, a common algorithm such as a content-based filtering, a neural network, or a Bayesian estimation may be used for the recommendation service.

特開2006−215867号公報JP 2006-215867 A 特開2008−077386号公報JP 2008-077386 A

しかしながら、従来の推薦サービスにおいては、上述の協調フィルタや内容フィルタなどの基本的なアルゴリズムと、個々のサービスのニーズなどに合わせて最終的な推薦結果を生成する応用的なアルゴリズムとを一体として実装するのが一般的であった。そのため、新たな推薦サービスを開発する際には、推薦アルゴリズムの大部分の再設計やデータモデルの変更が必要となり、サービス開発のためのコストの増大を招いていた。   However, in the conventional recommendation service, the basic algorithm such as the collaborative filter and content filter described above and the application algorithm that generates the final recommendation result according to the needs of each service are integrated. It was common to do. For this reason, when developing a new recommendation service, it is necessary to redesign most of the recommendation algorithm and change the data model, resulting in an increase in the cost for service development.

そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、様々なアルゴリズムを柔軟に組み合わせることのできる、新規かつ改良された情報処理装置、推薦方法、プログラム及び記録媒体を提供することにある。   Accordingly, the present invention has been made in view of the above problems, and an object of the present invention is to provide a new and improved information processing apparatus, recommendation method, and program capable of flexibly combining various algorithms. And providing a recording medium.

上記課題を解決するために、本発明のある観点によれば、行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部と、行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部と、前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部と、前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する応用アルゴリズム部と、を備える情報処理装置が提供される。   In order to solve the above-described problem, according to an aspect of the present invention, profile data representing user attributes and metadata data items representing content characteristics are provided in at least one of a row direction and a column direction, and Using a data holding unit for holding data in a matrix format data structure having an identifier for identifying a user in at least one of the direction and the column direction and an identifier data item for identifying content, and a specifier for designating a row or column A data operation unit that acquires an arbitrary partial matrix from the data holding unit, and a basic algorithm unit that executes a typical calculation process for the profile data and the metadata included in the partial matrix acquired by the data operation unit And using the result of the routine calculation performed by the basic algorithm unit, The information processing apparatus and a application algorithm unit for acquiring a recommendation list that lists the content that is provided.

かかる構成によれば、データ保持部は、行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造により、前記プロファイルデータ及び前記メタデータを保持する。そして、データ操作部は、行または列を指定する指定子を用いて前記行列形式のデータ構造から任意の部分行列を取得する。さらに、基本アルゴリズム部は、前記行列形式のデータ構造から取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する。そして、応用アルゴリズム部は、前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する。   According to such a configuration, the data holding unit has profile data representing user attributes and metadata data representing content characteristics in at least one of the row direction and the column direction, and at least in the row direction or the column direction. On the other hand, the profile data and the metadata are held by a data structure in a matrix format having an identifier for identifying the user and a data item for identifying the content. Then, the data operation unit acquires an arbitrary partial matrix from the data structure in the matrix format using a specifier that designates a row or a column. Further, the basic algorithm unit performs a typical calculation process on the profile data and the metadata included in the partial matrix acquired from the matrix format data structure. Then, the application algorithm unit acquires a recommendation list in which contents recommended to the user are listed using the result of the routine calculation.

前記指定子は、データに対応するノードとデータのカテゴリに対応するノードとにより構成される階層構造内の一の前記ノードを指定する階層的に表現された文字列であってもよい。   The specifier may be a hierarchically expressed character string that designates one of the nodes in a hierarchical structure including nodes corresponding to data and nodes corresponding to a category of data.

前記基本アルゴリズム部は、前記定型的な計算の1つとして、指定されたユーザと他のユーザとの間の前記プロファイルデータの相関度を計算してもよい。   The basic algorithm unit may calculate the degree of correlation of the profile data between a specified user and another user as one of the routine calculations.

また、前記基本アルゴリズム部は、前記定型的な計算の1つとして、指定されたユーザの前記プロファイルデータと任意のコンテンツの前記メタデータとの間の相関度を計算してもよい。   The basic algorithm unit may calculate the degree of correlation between the profile data of the designated user and the metadata of an arbitrary content as one of the routine calculations.

また、前記基本アルゴリズム部は、前記定型的な計算の1つとして、指定されたユーザと他のユーザとの間の前記プロファイルデータの相関度、または指定されたユーザの前記プロファイルデータと任意のコンテンツの前記メタデータとの間の相関度に基づいて前記推薦リストを生成してもよい。   In addition, the basic algorithm unit may include, as one of the routine calculations, the degree of correlation of the profile data between the specified user and another user, or the profile data of the specified user and any content The recommendation list may be generated based on the degree of correlation with the metadata.

また、前記基本アルゴリズム部は、前記定型的な計算の1つとして、指定されたコンテンツと他のコンテンツとの間の前記メタデータの相関度を計算してもよい。   Further, the basic algorithm unit may calculate a correlation degree of the metadata between the designated content and other content as one of the routine calculations.

また、前記基本アルゴリズム部は、指定されたコンテンツの前記メタデータと任意のユーザの前記プロファイルデータとの間の相関度を計算してもよい。   The basic algorithm unit may calculate a correlation degree between the metadata of the designated content and the profile data of an arbitrary user.

また、前記データ保持部は、前記行列形式のデータ構造内の1フィールドに複数のデータ値を有してもよい。   Further, the data holding unit may have a plurality of data values in one field in the matrix format data structure.

また、前記応用アルゴリズム部は、さらに、端末装置からユーザの行動履歴データを受信した場合に、前記行動履歴データに含まれる行動の対象となったコンテンツの前記メタデータに応じて前記行動を行ったユーザの前記プロファイルデータを更新してもよい。   The application algorithm unit further performs the action according to the metadata of the content that is the target of the action included in the action history data when the action history data of the user is received from the terminal device. The profile data of the user may be updated.

また、前記情報処理装置は、さらに、前記データ保持部からの指示に基づいて前記データ保持部に保持されるデータの永続化をデータベースに要求するデータベース入出力部を備えてもよい。   The information processing apparatus may further include a database input / output unit that requests the database to make the data held in the data holding unit permanent based on an instruction from the data holding unit.

また、前記データ保持部は、前記プロファイルデータのデータ項目及び前記メタデータのデータ項目のうち、前記情報処理装置に割当てられた範囲のデータを前記データベース入出力部を介してデータベースから取得してもよい。   In addition, the data holding unit may acquire data in a range assigned to the information processing apparatus from the database via the database input / output unit among the data items of the profile data and the data items of the metadata. Good.

また、上記課題を解決するために、本発明の別の観点によれば、行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造により、前記プロファイルデータ及び前記メタデータを保持するステップと、行または列を指定する指定子を用いて前記行列形式のデータ構造から任意の部分行列を取得するステップと、前記行列形式のデータ構造から取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行するステップと、前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得するステップと、を含む推薦方法が提供される。   In order to solve the above problem, according to another aspect of the present invention, profile data representing user attributes and metadata data items representing content characteristics are provided in at least one of a row direction and a column direction. And holding the profile data and the metadata by a data structure in a matrix format having a data item of an identifier for identifying a user and an identifier for identifying a content in at least one of a row direction and a column direction, and a row or a column Obtaining an arbitrary submatrix from the data structure of the matrix format using a specifier that designates, and the profile data and metadata included in the submatrix acquired from the data structure of the matrix format Using the step of performing a typical calculation process and the result of the routine calculation, The method comprising the steps of: obtaining a recommendation list which shows the content to be recommended to the over The recommendation methods including is provided.

また、上記課題を解決するために、本発明の別の観点によれば、情報処理装置を制御するコンピュータを、行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部と、行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部と、前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部と、前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する応用アルゴリズム部と、として機能させるためのプログラムが提供される。   In order to solve the above-described problem, according to another aspect of the present invention, a computer that controls an information processing apparatus is provided with profile data and content characteristics that represent user attributes in at least one of a row direction and a column direction. A data holding unit for holding data in a matrix format data structure having metadata data items to represent and having an identifier for identifying a user in at least one of a row direction and a column direction and an identifier data item for identifying content A data operation unit that acquires an arbitrary submatrix from the data holding unit using a specifier that specifies a row or a column, and the profile data and the metadata included in the submatrix acquired by the data operation unit A basic algorithm unit that performs a typical calculation process for Using the results of the routine calculations, the application algorithm unit for acquiring a recommendation list that lists the contents to be recommended to the user, the program to function as is provided.

また、上記課題を解決するために、本発明の別の観点によれば、情報処理装置を制御するコンピュータを、行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部と、行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部と、前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部と、前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する応用アルゴリズム部と、として機能させるためのプログラムを記録した、コンピュータにより読み取り可能な記録媒体が提供される。   In order to solve the above-described problem, according to another aspect of the present invention, a computer that controls an information processing apparatus is provided with profile data and content characteristics that represent user attributes in at least one of a row direction and a column direction. A data holding unit for holding data in a matrix format data structure having metadata data items to represent and having an identifier for identifying a user in at least one of a row direction and a column direction and an identifier data item for identifying content A data operation unit that acquires an arbitrary submatrix from the data holding unit using a specifier that specifies a row or a column, and the profile data and the metadata included in the submatrix acquired by the data operation unit A basic algorithm unit that performs a typical calculation process for Provided is a computer-readable recording medium in which a program for functioning as an application algorithm unit that acquires a recommendation list that lists contents recommended to a user by using the result of the routine calculation is recorded. The

また、上記課題を解決するために、本発明の別の観点によれば、情報処理装置へコンテンツの推薦を要求するユーザアプリケーション部、を備える端末装置と、行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部、行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部、前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部、及び前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得し、取得した前記推薦リストを前記端末装置へ送信する応用アルゴリズム部、を備える情報処理装置と、を含む情報処理システムが提供される。   In order to solve the above problem, according to another aspect of the present invention, a terminal device including a user application unit that requests content recommendation from an information processing device, and a user in at least one of a row direction and a column direction In the form of a matrix having profile data representing attributes and metadata data items representing content characteristics, and identifiers identifying users in at least one of a row direction and a column direction, and identifier data items identifying the contents A data holding unit that holds data according to a data structure, a data operation unit that acquires an arbitrary partial matrix from the data holding unit using a specifier that specifies a row or a column, and the partial matrix acquired by the data operation unit Basics for performing routine calculation processing on the profile data and the metadata included Application algorithm unit that acquires a recommendation list that lists contents recommended to the user using a result of the routine calculation by the algorithm unit and the basic algorithm unit, and transmits the acquired recommendation list to the terminal device And an information processing system including the information processing apparatus.

以上説明したように、本発明に係る情報処理装置、推薦方法、プログラム及び記録媒体によれば、様々なアルゴリズムを柔軟に組み合わせることができる。   As described above, according to the information processing apparatus, recommendation method, program, and recording medium according to the present invention, various algorithms can be combined flexibly.

以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。   Exemplary embodiments of the present invention will be described below in detail with reference to the accompanying drawings. In addition, in this specification and drawing, about the component which has the substantially same function structure, duplication description is abbreviate | omitted by attaching | subjecting the same code | symbol.

〔1〕第1の実施形態
まず、図1は、本発明の第1の実施形態に係る推薦システム1の構成を示した模式図である。図1を参照すると、推薦システム1には、端末装置10、端末装置12、ネットワーク20、Webサーバ22、推薦サーバ30、及びDB(Database)サーバ32が含まれる。
[1] First Embodiment First, FIG. 1 is a schematic diagram showing a configuration of a recommendation system 1 according to a first embodiment of the present invention. Referring to FIG. 1, the recommendation system 1 includes a terminal device 10, a terminal device 12, a network 20, a Web server 22, a recommendation server 30, and a DB (Database) server 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)、ゲーム端末、音楽/映像再生装置または家電機器などの情報処理装置であってもよい。   The terminal device 10 and the terminal device 12 are connected to the recommendation server 30 via the network 20 and the Web server 22. The terminal device 10 and the terminal device 12 transmit a recommendation request to the recommendation server 30 according to a user operation, and present the recommendation result received from the recommendation server 30 via the network 20 to the user. In FIG. 1, a PC (Personal Computer) is shown as an example of the terminal device 10 and the terminal device 12, but the terminal device 10 and the terminal device 12 are not limited to the PC. The terminal device 10 and the terminal device 12 may be information processing devices such as a mobile phone, a PDA (Personal Digital Assistant), a game terminal, a music / video playback device, or a home appliance.

ネットワーク20は、端末装置10及び端末装置12とWebサーバ22の間を接続するネットワークである。例えば、推薦システム1がインターネット上で推薦サービスを提供する場合には、ネットワーク20はインターネットに該当する。しかしながら、ネットワーク20はインターネットに限られない。ネットワーク20は、例えばLAN(Local Area Network)、WAN(Wide Area Network)、または専用線などの任意のネットワークであってよい。   The network 20 is a network that connects between the terminal device 10 and the terminal device 12 and the Web server 22. For example, when the recommendation system 1 provides a recommendation service on the Internet, the network 20 corresponds to the Internet. However, the network 20 is not limited to the Internet. The network 20 may be any network such as a LAN (Local Area Network), a WAN (Wide Area Network), or a dedicated line.

Webサーバ22は、ネットワーク20及び推薦サーバ30と接続される。Webサーバ22は、端末装置10または端末装置12からネットワーク20を介して推薦サーバ30へ送信される推薦要求、及び推薦サーバ30からの当該推薦要求に対する応答を仲介する役割を果たす。また、Webサーバ22は、端末装置10または端末装置12から推薦要求ではなく例えば静的なWebページの閲覧要求を受け取った場合には、要求されたWebページの内容を自ら取得して要求元の装置へ応答してもよい。   The web server 22 is connected to the network 20 and the recommendation server 30. The Web server 22 plays a role of mediating a recommendation request transmitted from the terminal device 10 or the terminal device 12 to the recommendation server 30 via the network 20 and a response to the recommendation request from the recommendation server 30. In addition, when the Web server 22 receives a request for browsing a static Web page, for example, instead of a recommendation request from the terminal device 10 or the terminal device 12, the Web server 22 acquires the content of the requested Web page and obtains the request source. You may respond to the device.

なお、推薦システム1において、Webサーバ22の代わりに、推薦要求を仲介する任意のサービス用のサーバ装置がネットワーク20と推薦サーバ30の間に配置されてもよい。また、Webサーバ22を省略して推薦システム1が構成されてもよい。   In the recommendation system 1, a server device for an arbitrary service that mediates a recommendation request may be arranged between the network 20 and the recommendation server 30 instead of the Web server 22. Further, the recommendation system 1 may be configured by omitting the Web server 22.

推薦サーバ30は、Webサーバ22及びDBサーバ32と接続される。推薦サーバ30は、端末装置10または端末装置12からコンテンツの推薦要求を受け付け、後述する様々なアルゴリズムに基づく演算を行って取得した推薦結果を、端末装置10または端末装置12へ送信する。また、推薦サーバ30は、演算に必要とされるコンテンツのメタデータ及びユーザのプロファイルデータを、DBサーバ32から取得する。   The recommendation server 30 is connected to the Web server 22 and the DB server 32. The recommendation server 30 receives a content recommendation request from the terminal device 10 or the terminal device 12, and transmits a recommendation result acquired by performing calculations based on various algorithms described later to the terminal device 10 or the terminal device 12. The recommendation server 30 acquires content metadata and user profile data required for the calculation from the DB server 32.

例えば、推薦システム1が音楽データをコンテンツとして扱っている場合には、各端末装置からの要求に応じて、ユーザに視聴や購入を促す楽曲のリストが、推薦サーバ30から推薦結果として送信される。また、推薦システム1がテレビジョン番組の案内情報をコンテンツとして扱っている場合には、各端末装置からの要求に応じて、ユーザが興味を持つと想定される番組のリストが、推薦サーバ30から推薦結果として送信される。   For example, when the recommendation system 1 handles music data as content, a list of songs that prompt the user to view or purchase is transmitted as a recommendation result from the recommendation server 30 in response to a request from each terminal device. . When the recommendation system 1 handles television program guide information as content, a list of programs that the user is expected to be interested in is requested from the recommendation server 30 in response to a request from each terminal device. Sent as a recommendation result.

推薦システム1がインターネット上で推薦サービスを提供する場合には、推薦サーバ30は、例えばWebアプリケーションサーバとして実現される。   When the recommendation system 1 provides a recommendation service on the Internet, the recommendation server 30 is realized as a Web application server, for example.

DBサーバ32は、推薦サーバ30と接続される。DBサーバ32は、推薦の演算に必要とされるコンテンツのメタデータ及びユーザのプロファイルデータなどをストレージ装置に記録する。また、DBサーバ32は、推薦サーバ30からのデータの読み書きを一元的に管理する。   The DB server 32 is connected to the recommendation server 30. The DB server 32 records content metadata, user profile data, and the like necessary for the recommendation calculation in the storage device. Further, the DB server 32 centrally manages reading and writing of data from the recommendation server 30.

ここで、コンテンツのメタデータとは、コンテンツの内容に応じた様々なデータ項目によって表現される、コンテンツの特徴を表すデータである。例えば、楽曲データをコンテンツとして扱う場合には、楽曲のジャンル、対象年齢層、テンポや調などを楽曲データのメタデータとして扱うことができる。また、映像データをコンテンツとして扱う場合には、映像に含まれるシーンの情報や登場人物名などをメタデータとして扱うことができる。   Here, the content metadata is data representing the characteristics of the content expressed by various data items corresponding to the content. For example, when music data is handled as content, the music genre, target age group, tempo, key, etc. can be handled as music data metadata. In addition, when video data is handled as content, scene information and names of characters included in the video can be handled as metadata.

コンテンツのメタデータは、データの登録時に人為的に与えられる他、楽曲の音響解析や動画のシーン解析などの技術を用いて取得されてもよい。   The content metadata may be artificially given at the time of data registration, or may be acquired using techniques such as acoustic analysis of music and scene analysis of moving images.

ユーザのプロファイルデータとは、ユーザの年齢層や趣味、嗜好の傾向などの属性を表すデータである。本実施形態では、ユーザのプロファイルデータもまたコンテンツのメタデータと同様のデータ項目によって表される。例えば、楽曲コンテンツに対するユーザの趣味や嗜好の傾向は、例えば楽曲コンテンツの「邦楽」や「洋楽」などといったジャンルに対する点数として表すことができる。   The user profile data is data representing attributes such as the user's age group, hobbies, and preference trends. In the present embodiment, user profile data is also represented by data items similar to content metadata. For example, the user's hobbies and preferences for music content can be expressed as scores for genres such as “Japanese music” and “Western music” of the music content.

ユーザのプロファイルデータは、例えば年齢層のように事前に登録される他、ユーザの行動履歴の解析によって取得または更新される。ユーザの行動履歴とは、ユーザがいつ、どういったサイトまたはページを訪問し、どういった行動をしたかを記録した情報である。ユーザの行動履歴データとして、例えばコンテンツの参照、注目リストへの追加、視聴、購入などといった行動を、ユーザの識別子及び時間情報などと共に記録し得る。   The user's profile data is acquired or updated by analysis of the user's behavior history, in addition to being registered in advance, such as an age group. The user action history is information that records when, what site or page the user visits, and what action the user performs. As user action history data, for example, actions such as content reference, addition to the attention list, viewing, and purchase can be recorded together with the user identifier and time information.

図2は、ユーザの行動履歴に応じてユーザのプロファイルデータを更新する様子を例示した説明図である。   FIG. 2 is an explanatory diagram illustrating a state in which the user profile data is updated according to the user action history.

図2を参照すると、まず識別子「U001」で表される新たなユーザが、推薦システム1の提供するWebサイトにアクセスしている(A)。このとき、ユーザU001のプロファイルデータは、“洋楽”=0ポイント、“邦楽”=0ポイントである。   Referring to FIG. 2, first, a new user represented by an identifier “U001” accesses a Web site provided by the recommendation system 1 (A). At this time, the profile data of the user U001 is “Western music” = 0 points and “Japanese music” = 0 points.

その後、ユーザU001は、Webサイト上で洋楽の楽曲Aを視聴している(B)。それにより、ユーザU001のプロファイルデータのうち、“洋楽”の項目に10ポイントが加算される。なお、ここで加算されるポイント値はどのような値であってもよい。   Thereafter, the user U001 is viewing Western music A on the website (B). Thereby, 10 points are added to the item “Western music” in the profile data of the user U001. Note that the point value added here may be any value.

次に、ユーザU001は、Webサイト上で邦楽の楽曲Bを購入している(C)。それにより、ユーザU001のプロファイルデータのうち、“邦楽”の項目に100ポイントが加算される。このようにして、例えばユーザU001は洋楽よりも邦楽に強い嗜好を持つことを示すプロファイルデータが生成される。   Next, the user U001 purchases Japanese music B on the website (C). Thereby, 100 points are added to the item “Japanese music” in the profile data of the user U001. In this way, for example, profile data indicating that the user U001 has a stronger preference for Japanese music than Western music is generated.

図3は、ユーザの行動履歴に応じてユーザのプロファイルデータを変化させる他の例を示した説明図である。図3では、推薦システム1はニュース記事をコンテンツとして扱うことを前提としている。   FIG. 3 is an explanatory diagram showing another example of changing the user profile data in accordance with the user action history. In FIG. 3, the recommendation system 1 is premised on handling news articles as contents.

図3を参照すると、まず識別子「NW01」で表されるニュース記事が登録される際に、コンテンツ解析によって記事NW01のメタデータが取得される(A)。例えば、テキストで表される記事内容を解析する手法として知られたTF/IDF(Term Frequency/Inverse Document Frequency)によって、ニュース記事を解析することができる。図3の例では、記事NW01のメタデータとして、記事内容に
“東京”、“野球”という用語が含まれていたことにより、“東京”に10ポイント、“野球”に20ポイントの特徴量が与えられている。
Referring to FIG. 3, first, when a news article represented by an identifier “NW01” is registered, metadata of the article NW01 is acquired by content analysis (A). For example, a news article can be analyzed by TF / IDF (Term Frequency / Inverse Document Frequency), which is known as a technique for analyzing the content of an article represented by text. In the example of FIG. 3, as the metadata of the article NW01, since the terms “Tokyo” and “baseball” are included in the article content, the feature amount is 10 points for “Tokyo” and 20 points for “baseball”. Is given.

その後、ユーザU002がニュース記事配信サイトにアクセスし(B)、記事NW01を参照したことにより(C)、ユーザU002のプロファイルデータに記事NW01のメタデータ“東京”=10ポイント、“スポーツ”=20ポイントの各値が加算されている。   Thereafter, when the user U002 accesses the news article distribution site (B) and refers to the article NW01 (C), the metadata of the article NW01 “Tokyo” = 10 points and “sports” = 20 in the profile data of the user U002. Each point value is added.

なお、図3ではユーザが記事を参照した時点でプロファイルデータを更新する例を説明した。しかしながら、例えばユーザの行動履歴を任意の期間蓄積し、ユーザがWebサイトから退出した時点または1日1回などのタイミングで行動履歴を解析し、プロファイルデータを更新してもよい。   Note that FIG. 3 illustrates an example in which profile data is updated when a user refers to an article. However, for example, the user's behavior history may be accumulated for an arbitrary period, the behavior history may be analyzed at a timing such as when the user leaves the website or once a day, and the profile data may be updated.

図1に示した推薦システム1では、このような推薦対象のコンテンツのメタデータ及びユーザのプロファイルデータを用いて、ユーザに対するコンテンツの推薦を行う。   In the recommendation system 1 shown in FIG. 1, content recommendation for a user is performed using the metadata of the content to be recommended and the profile data of the user.

図4は、推薦システム1の論理的な機能配置を示したブロック図である。ここでは、説明の便宜上、図1に示した端末装置10及び12のうち端末装置10のみを示している。なお、端末装置12も端末装置10と同様に構成される。また、推薦処理の内容に直接影響を与えないネットワーク20及びWebサーバ22については、図示を省略している。   FIG. 4 is a block diagram showing a logical functional arrangement of the recommendation system 1. Here, for convenience of explanation, only the terminal device 10 is shown among the terminal devices 10 and 12 shown in FIG. The terminal device 12 is configured in the same manner as the terminal device 10. Further, the network 20 and the Web server 22 that do not directly affect the content of the recommendation process are not shown.

図4を参照すると、端末装置10は、ユーザアプリケーション部110を備える。ユーザアプリケーション部110は、推薦サーバ30へコンテンツの推薦を要求し、及び推薦サーバ30から返却された推薦されるコンテンツのリスト(以下、推薦リストという。)を端末装置10のユーザに提示する。また、ユーザアプリケーション部110は、ユーザの行動履歴データを収集し、収集した行動履歴データを推薦サーバ30へ送信してもよい。   Referring to FIG. 4, the terminal device 10 includes a user application unit 110. The user application unit 110 requests the recommendation server 30 to recommend content, and presents a list of recommended content returned from the recommendation server 30 (hereinafter referred to as a recommendation list) to the user of the terminal device 10. Further, the user application unit 110 may collect user action history data and transmit the collected action history data to the recommendation server 30.

ユーザアプリケーション部110は、例えばWebブラウザまたはWebブラウザへ導入されるプラグインなどを用いて実現され得る。また、推薦システム1がクライアント−サーバ型のシステムである場合には、ユーザアプリケーション部110を専用のクライアントソフトとして実現してもよい。   The user application unit 110 can be realized using, for example, a web browser or a plug-in introduced into the web browser. When the recommendation system 1 is a client-server type system, the user application unit 110 may be realized as dedicated client software.

次に、図4を参照すると、推薦サーバ30は、アプリケーションインタフェース部120、応用アルゴリズム部130、基本アルゴリズム部140、データ操作部150、データ保持部160、及びデータベース入出力部170を備える。   Next, referring to FIG. 4, the recommendation server 30 includes an application interface unit 120, an application algorithm unit 130, a basic algorithm unit 140, a data operation unit 150, a data holding unit 160, and a database input / output unit 170.

アプリケーションインタフェース部120は、ユーザアプリケーション部110からの推薦要求を受け付け、推薦結果を返却するためのインタフェースである。プリケーションインタフェース部120は、例えばSOAP(Simple Object Access Protocol)に基づくRPC(Remote Procedure Call)による関数群として実現することができる。また、例えばより簡易なHTTP(HyperText Transfer Protocol)に基づくパラメータの受け渡しによってアプリケーションインタフェース部120を実現してもよい。   The application interface unit 120 is an interface for receiving a recommendation request from the user application unit 110 and returning a recommendation result. The application interface unit 120 can be realized as a function group based on RPC (Remote Procedure Call) based on, for example, SOAP (Simple Object Access Protocol). Further, for example, the application interface unit 120 may be realized by passing parameters based on simpler HTTP (HyperText Transfer Protocol).

本実施形態において、コンテンツの推薦を行う推薦アルゴリズムは、以下に述べる応用アルゴリズム部130及び基本アルゴリズム部140に大別される。   In this embodiment, a recommendation algorithm for recommending content is roughly classified into an application algorithm unit 130 and a basic algorithm unit 140 described below.

応用アルゴリズム部130は、個々の推薦サービスのニーズなどに合わせて推薦の要求を処理し、及び推薦の結果を加工して、ユーザアプリケーション部110に返却するための最終的な推薦リストを取得する。例えば、応用アルゴリズム部130は、画面表示上のニーズまたは制約に即して推薦リストの並び替えや表示数の限定などを行ってもよい。また、応用アルゴリズム部130は、基本アルゴリズム部140から出力される複数の推薦リストの統合、または関連情報の付加などを行ってもよい。   The application algorithm unit 130 processes a recommendation request according to the needs of each recommended service, processes the recommendation result, and obtains a final recommendation list to be returned to the user application unit 110. For example, the application algorithm unit 130 may rearrange the recommendation list or limit the number of displays in accordance with needs or restrictions on screen display. The applied algorithm unit 130 may integrate a plurality of recommendation lists output from the basic algorithm unit 140 or add related information.

さらに、応用アルゴリズム部130は、ユーザの行動履歴データをユーザアプリケーション部110から受信した場合に、行動履歴データを解析して行動を行ったユーザのプロファイルデータを更新してもよい。   Furthermore, when the user's behavior history data is received from the user application unit 110, the application algorithm unit 130 may update the profile data of the user who performed the behavior by analyzing the behavior history data.

基本アルゴリズム部140は、推薦に用いられる定型化されたアルゴリズムを実行する機能を有する。前述したように、現在実用されている様々な推薦サービスの中で、効果的な推薦を行うための基本となるアルゴリズムは共通しているものが少なくない。例えば、多くの推薦サービスで共通して用いられるアルゴリズムとして、以下に説明する協調フィルタ、及び内容フィルタが挙げられる。   The basic algorithm unit 140 has a function of executing a standardized algorithm used for recommendation. As described above, among various recommendation services that are currently in practical use, there are not a few common basic algorithms for effective recommendation. For example, a collaborative filter and a content filter described below are examples of algorithms commonly used in many recommended services.

図5は、協調フィルタによる推薦処理の一例を示す説明図である。   FIG. 5 is an explanatory diagram showing an example of recommendation processing by the cooperative filter.

図5を参照すると、ユーザU011から推薦要求を受けたことをきっかけとして、まずユーザU011と他のユーザU012、U013、及びU014との間のプロファイルデータの相関度が計算される(A)。相関度とは、複数のプロファイルデータまたはメタデータの間の関連の度合いを示す値を指す。図5の例では、データ項目ごとの差分値の総和で表される相関度を用いている(即ち、値が小さいほどより関連の度合いが高い)。   Referring to FIG. 5, the degree of correlation of profile data between the user U011 and the other users U012, U013, and U014 is first calculated after receiving the recommendation request from the user U011 (A). The correlation degree refers to a value indicating the degree of association between a plurality of profile data or metadata. In the example of FIG. 5, the degree of correlation represented by the sum of the difference values for each data item is used (that is, the smaller the value, the higher the degree of association).

例えば、ユーザU011とユーザU012の相関度は、|500−0|+|100−300|+|0−0|=700と計算される。また、同様に、ユーザU011とユーザU013の相関度は300、ユーザU011とユーザU014の相関度は900と計算される。   For example, the correlation between the user U011 and the user U012 is calculated as | 500-0 | + | 100-300 | + | 0-0 | = 700. Similarly, the correlation degree between the user U011 and the user U013 is calculated as 300, and the correlation degree between the user U011 and the user U014 is calculated as 900.

なお、データ間の相関度はかかる例に限定されない。例えば、ユーザのプロファイルをベクトルと見なし、プロファイルデータ間の類似度を表す方向余弦、標準化距離、またはハミング距離などを計算して相関度として用いてもよい。   Note that the degree of correlation between data is not limited to this example. For example, the user's profile may be regarded as a vector, and a direction cosine representing a similarity between profile data, a standardized distance, a Hamming distance, or the like may be calculated and used as the degree of correlation.

次に、ユーザ間の相関度の計算結果を用いて、ユーザU012、U013、及びU014が順位付けされる(B)。図5の例では、計算された相関度の小さい方から、ユーザU013、ユーザU012、ユーザU014の順に順位付けされている。   Next, the users U012, U013, and U014 are ranked using the calculation result of the correlation degree between users (B). In the example of FIG. 5, the user U013, the user U012, and the user U014 are ranked in order from the smaller calculated correlation degree.

そして、順位付けの結果として上位に位置するユーザのプロファイルデータに基づいて、推薦するコンテンツが決定される(C)。図5の例では、最も相関度の小さい(即ちユーザU011に最も関連する)ユーザU013のプロファイルデータの中から、高い点数を有する楽曲A及び楽曲Cが選択されている。なお、ここではユーザU011に最も関連するユーザのプロファイルデータから推薦するコンテンツを決定しているが、推薦するコンテンツを決定する方法はかかる例に限定されない。例えば、相関度の上位数名のユーザの過去の購買履歴データなどから推薦するコンテンツを決定してもよい。   Then, recommended content is determined based on the profile data of the user positioned higher as a result of ranking (C). In the example of FIG. 5, music A and music C having a high score are selected from the profile data of the user U013 having the smallest degree of correlation (that is, most relevant to the user U011). Here, the recommended content is determined from the profile data of the user most relevant to the user U011, but the method for determining the recommended content is not limited to this example. For example, the recommended content may be determined from past purchase history data of the users with the highest degree of correlation.

図6は、推薦に共通して用いられるアルゴリズムの他の例として、内容フィルタを用いた推薦処理の一例を示す説明図である。図6では、ニュース記事を推薦対象のコンテンツとしている。   FIG. 6 is an explanatory diagram showing an example of a recommendation process using a content filter as another example of an algorithm commonly used for recommendation. In FIG. 6, the news article is the content to be recommended.

図6を参照すると、まず、ユーザU021から推薦要求を受けたことをきっかけとして、ユーザU021のプロファイルデータとコンテンツ(即ちニュース記事)NW11、NW12、及びNW13のメタデータとの間の相関度が計算される(A)。なお、各コンテンツのメタデータは前述のコンテンツ解析などによって事前に与えられる。   Referring to FIG. 6, first, the degree of correlation between the profile data of the user U021 and the metadata of the contents (ie, news articles) NW11, NW12, and NW13 is calculated in response to receiving a recommendation request from the user U021. (A). Note that the metadata of each content is given in advance by the above-described content analysis or the like.

例えば、ユーザU021とニュース記事NW11との間の相関度は、図5の例と同様に、190と計算される。また、ユーザU021とニュース記事NW12との間の相関度は290、ユーザU021とニュース記事NW13との間の相関度は20と計算される。   For example, the correlation degree between the user U021 and the news article NW11 is calculated as 190 as in the example of FIG. Further, the correlation degree between the user U021 and the news article NW12 is calculated as 290, and the correlation degree between the user U021 and the news article NW13 is calculated as 20.

次に、ユーザのプロファイルデータとコンテンツのメタデータ間の相関度の計算結果を用いて、ニュース記事の順位付けが行われる(B)。図6の例では、計算された相関度の小さい方から、ニュース記事NW13、NW11、NW12の順で順位付けされている。   Next, news articles are ranked using the calculation result of the degree of correlation between the user profile data and the content metadata (B). In the example of FIG. 6, the news articles NW13, NW11, and NW12 are ranked in order from the smaller calculated correlation degree.

そして、順位付けの結果として上位に位置するニュース記事NW13及びNW11が、推薦されるコンテンツとして決定される(C)。なお、ここでは順位付けの結果上位に位置するコンテンツが推薦されているが、推薦するコンテンツを抽出する基準はかかる例に限定されない。例えば、相関度に対する所定の閾値を用いて抽出されたコンテンツを推薦してもよい。   Then, news articles NW13 and NW11 that are positioned higher as a result of ranking are determined as recommended contents (C). Here, content positioned higher as a result of ranking is recommended, but the criterion for extracting recommended content is not limited to this example. For example, content extracted using a predetermined threshold for the degree of correlation may be recommended.

なお、図5の例では指定されたユーザと他のユーザとの間のプロファイルデータの相関度、図6の例では指定されたユーザのプロファイルデータと任意のコンテンツのメタデータとの間の相関度を計算することとしたが、相関度の計算はかかる例に限定されない。例えば、ユーザアプリケーション部110からの推薦要求においてユーザではなくコンテンツを指定させ、指定されたコンテンツと他のコンテンツとの間のメタデータの相関度を計算してもよい。また、指定されたコンテンツのメタデータと任意のユーザのプロファイルデータとの間の相関度を計算してもよい。   In the example of FIG. 5, the degree of correlation of profile data between the designated user and other users, and in the example of FIG. 6, the degree of correlation between the designated user's profile data and metadata of an arbitrary content However, the calculation of the degree of correlation is not limited to this example. For example, in the recommendation request from the user application unit 110, content may be specified instead of the user, and the correlation degree of metadata between the specified content and other content may be calculated. Further, the degree of correlation between the specified content metadata and the profile data of an arbitrary user may be calculated.

図4の説明に戻ると、基本アルゴリズム部140には、このような推薦に用いられる様々な汎用的なアルゴリズムが、定型的な計算処理として部品化された状態で実装される。ここで説明した以外の汎用的なアルゴリズムとしては、例えばニューラルネットワークに基づく学習を行う推薦アルゴリズム、ベイジアンネットワークに基づく確率論的な推薦アルゴリズムなどを基本アルゴリズム部140に実装してもよい。また、類似度の計算や行列の四則計算などの基礎的計算処理を、基本アルゴリズム部140に実装してもよい。   Returning to the description of FIG. 4, various general-purpose algorithms used for such recommendation are mounted in the basic algorithm unit 140 in a state of being partized as a routine calculation process. As general-purpose algorithms other than those described here, for example, a recommendation algorithm for performing learning based on a neural network, a probabilistic recommendation algorithm based on a Bayesian network, and the like may be implemented in the basic algorithm unit 140. Further, basic calculation processing such as similarity calculation and matrix four arithmetic calculations may be implemented in the basic algorithm unit 140.

データ操作部150は、応用アルゴリズム部130または基本アルゴリズム部140から後述するデータ保持部160に対してデータを読み書きするためのインタフェースを提供する。例えば、基本アルゴリズム部140は、協調フィルタに基づくコンテンツの推薦を行う場合に、ユーザのプロファイルデータをデータ操作部150を介してデータ保持部160から読み取ることができる。また、例えば、応用アルゴリズム部130は、ユーザの行動履歴データに基づいてプロファイルデータを作成し、データ操作部150を介して当該プロファイルデータをデータ保持部160に書き込むことができる。データ操作部150からデータ保持部160へのデータの読み書きは、後に説明するように、行または列を指定する指定子を用いた部分行列の操作によって行われる。   The data operation unit 150 provides an interface for reading and writing data from the application algorithm unit 130 or the basic algorithm unit 140 to the data holding unit 160 described later. For example, the basic algorithm unit 140 can read user profile data from the data holding unit 160 via the data operation unit 150 when recommending content based on the collaborative filter. Further, for example, the application algorithm unit 130 can create profile data based on the user's behavior history data and write the profile data to the data holding unit 160 via the data operation unit 150. Data reading / writing from the data operation unit 150 to the data holding unit 160 is performed by a submatrix operation using a specifier that designates a row or a column, as will be described later.

データ保持部160は、推薦サーバ30の中で、以下に詳しく述べる行列形式のデータ構造を用いて、ユーザのプロファイルデータ及びコンテンツのメタデータを一元的に保持する。   The data holding unit 160 centrally holds user profile data and content metadata in the recommendation server 30 using a data structure in a matrix format described in detail below.

ここで、図2または図3などから理解されるように、ユーザのプロファイルデータのデータ項目とコンテンツのメタデータのデータ項目には、相互に共通する項目が含まれる。例えば、楽曲コンテンツのメタデータであるジャンル(“洋楽”や“邦楽”など)は、図2においてユーザのプロファイルデータのデータ項目として用いられている。また、例えば、ユーザの地域属性などに相当するプロファイルデータ項目“東京”などは、図3において、ニュース記事コンテンツのメタデータのデータ項目として用いられている。よって、ユーザのプロファイルデータ及びコンテンツのメタデータを、両データのデータ項目を行方向または列方向の少なくとも一方に有する行列形式のデータ構造に保持することができる。   Here, as can be understood from FIG. 2 or FIG. 3, the data items of the user profile data and the data items of the content metadata include items common to each other. For example, a genre (such as “Western music” or “Japanese music”), which is metadata of music content, is used as a data item of user profile data in FIG. Further, for example, a profile data item “Tokyo” corresponding to a user's regional attribute or the like is used as a metadata data item of news article content in FIG. 3. Therefore, the user profile data and the content metadata can be held in a matrix-type data structure having data items of both data in at least one of the row direction and the column direction.

図7は、本実施形態に係るデータ保持部160における行列形式のデータ構造について説明するための説明図である。   FIG. 7 is an explanatory diagram for explaining the data structure of the matrix format in the data holding unit 160 according to the present embodiment.

図7を参照すると、データ保持部160の行列形式のデータ構造の行方向には、ユーザ(“U111”、“U222”)、コンテンツ(“楽曲A”、“楽曲B”)、地域属性(“東京”、“大阪”)、ジャンル(“洋楽”、“邦楽”)の8つのデータ項目が配されている。また、行列形式のデータ構造の列方向にも、同様の8つのデータ項目が配されている。そして、行列形式の各マス(以下、フィールドという。)には、数値で表されるデータ値が保持されている。   Referring to FIG. 7, in the row direction of the data structure in the matrix format of the data holding unit 160, the user (“U111”, “U222”), content (“Song A”, “Song B”), regional attribute (“ Eight data items are arranged, “Tokyo”, “Osaka”), and genre (“Western music”, “Japanese music”). Also, the same eight data items are arranged in the column direction of the matrix-type data structure. Each square cell (hereinafter referred to as a field) holds a data value represented by a numerical value.

図7において、各フィールドのデータ値の意味は、フィールドのデータ構造内の位置によって異なる。例えば、ユーザの行と地域属性及びジャンルの列に対応する領域D1に保持されるデータは、ユーザのプロファイルデータに相当する。コンテンツの行と地域属性及びジャンルの列に対応する領域D2に保持されるデータは、コンテンツのメタデータに相当する。   In FIG. 7, the meaning of the data value of each field differs depending on the position in the data structure of the field. For example, data held in a region D1 corresponding to a user row, a region attribute, and a genre column corresponds to user profile data. Data held in the region D2 corresponding to the content row, the region attribute, and the genre column corresponds to content metadata.

また、ユーザの行とユーザの列に対応する領域D3には、例えば前述の協調フィルタの計算の結果得られたユーザ間の相関度を格納することができる。ユーザの行とコンテンツの列に対応する領域D4には、例えば前述の協調フィルタの計算に用いられるユーザのコンテンツに対する行動履歴を数値化したデータを格納することができる。その代わりに、領域D4には、例えば前述の内容フィルタの計算の結果得られたユーザとコンテンツとの間の相関度を格納してもよい。また、コンテンツの行とコンテンツの列に対応する領域D5には、例えば前述の内容フィルタの計算に用いられるコンテンツ同士の相関度を格納してもよい。   Further, in the area D3 corresponding to the user row and the user column, for example, the correlation degree between users obtained as a result of the above-described collaborative filter calculation can be stored. In the area D4 corresponding to the user's row and content column, for example, data obtained by quantifying the action history for the user's content used for the above-described collaborative filter calculation can be stored. Instead, the area D4 may store, for example, the degree of correlation between the user and the content obtained as a result of the above-described content filter calculation. Further, in the area D5 corresponding to the content row and the content column, for example, the correlation degree between the contents used for the calculation of the content filter described above may be stored.

さらに、行と列が共に地域属性またはジャンルに対応する領域D6には、例えばニューラルネットワークに基づいて推薦を行う場合のノード間のリンク(属性同士の関連)の重みを格納してもよい。また、領域D6には、ベイジアンネットワークに基づいて推薦を行う場合の確率値などを格納してもよい。   Furthermore, in a region D6 in which both rows and columns correspond to regional attributes or genres, the weights of links between nodes (associations between attributes) when making a recommendation based on, for example, a neural network may be stored. The region D6 may store a probability value or the like when making a recommendation based on a Bayesian network.

ここで、前述したように、応用アルゴリズム部130または基本アルゴリズム部140は、データ操作部150を介してデータ保持部160に保持されたデータの読み書きを行う。図7に示したデータ構造を前提とすれば、例えばデータ保持部160の部分行列である領域D1〜D6をそれぞれ取得して出力する機能をデータ操作部150の機能に含めることができる。より一般的には、データ操作部150は、データ保持部160の行列形式のデータ構造のうち、後述する行指定子及び/または列指定子を用いて指定された範囲の部分行列のデータの読み書き機能を提供するように実装されることができる。   Here, as described above, the application algorithm unit 130 or the basic algorithm unit 140 reads and writes data held in the data holding unit 160 via the data operation unit 150. Assuming the data structure shown in FIG. 7, for example, a function of acquiring and outputting the regions D1 to D6 which are partial matrices of the data holding unit 160 can be included in the function of the data operation unit 150. More generally, the data operation unit 150 reads / writes data in a submatrix in a range specified by using a row specifier and / or a column specifier described later in the matrix data structure of the data holding unit 160. Can be implemented to provide functionality.

本発明によらない情報システムにおいては、通常、データはエンティティごとに分類され、正規化された上で保持される(性能面の要請から部分的に非正規化される場合もある)。例えば、ユーザデータ、ユーザのプロファイルデータ、ユーザ間の相関度、コンテンツデータ、コンテンツのメタデータなどは、それぞれ別のエンティティと見なされる。そして、本発明によらない情報システムでは、これら別々のエンティティから取得されたデータが個々の推薦アルゴリズムに適した形式に再構成された上で、推薦処理が行われる。 In an information system not according to the present invention, data is usually classified for each entity, normalized, and retained (may be partially denormalized due to performance requirements). For example, user data, user profile data, correlation between users, content data, content metadata, and the like are considered as separate entities. In the information system not according to the present invention, the recommendation processing is performed after the data acquired from these separate entities is reconfigured into a format suitable for each recommendation algorithm.

しかしながら、ここまでの説明から理解されるように、推薦サービスに共通的に用いられる協調フィルタや内容フィルタなどの処理においては、いずれも同様のデータ項目を行方向または列方向に配した行列またはベクトルについての計算処理が主となる。よって、本実施形態のように、行方向または列方向の少なくとも一方にユーザのプロファイルデータ及びコンテンツのメタデータのデータ項目を有する行列形式のデータ構造でデータを保持することにより、多くの計算処理を単純化することができる。そして、それにより、様々なアルゴリズムを柔軟に組み合わせることが可能となる。   However, as can be understood from the description so far, in the processes such as the collaborative filter and the content filter commonly used for the recommendation service, a matrix or a vector in which similar data items are arranged in the row direction or the column direction. The calculation process for is the main. Therefore, as in the present embodiment, by holding data in a matrix format data structure having data items of user profile data and content metadata in at least one of the row direction and the column direction, a lot of calculation processing is performed. It can be simplified. As a result, various algorithms can be flexibly combined.

なお、図7に示した行列形式のデータ構造では、行方向と列方向に同一の8つずつのデータ項目を有しているが、行方向と列方向のデータ項目は必ずしも一致していなくてもよい。例えば、図7に示した行列形式の下から4行、即ち地域属性及びジャンルのカテゴリに対応する行を省略して推薦システム1を実装してもよい。   7 has the same eight data items in the row direction and the column direction, but the data items in the row direction and the column direction do not necessarily match. Also good. For example, the recommendation system 1 may be implemented by omitting the four rows from the bottom of the matrix format shown in FIG. 7, that is, the rows corresponding to the category of the region attribute and the genre.

図4に戻り、本実施形態に係る推薦システム1の論理的な機能配置の説明を継続する。   Returning to FIG. 4, the description of the logical functional arrangement of the recommendation system 1 according to the present embodiment will be continued.

データ保持部160において行列形式で保持されるデータは、推薦サーバ30のメモリ上に保持されるデータである。かかるデータをDBサーバ32に永続化させるために設けられるのが、データベース入出力部170である。   Data held in a matrix format in the data holding unit 160 is data held in the memory of the recommendation server 30. A database input / output unit 170 is provided in order to perpetuate such data in the DB server 32.

データベース入出力部170は、データ保持部160からの指示を受け、データの永続化とデータの読出しをDBサーバ32のデータベース管理部180に要求する。データの永続化とは、物理的な記憶装置にデータを記録することを指す。データベース管理部180は、データベース入出力部170からのデータの入出力要求を受け付けると共に、記憶部190を用いたデータの永続化とデータの読み出しを一元的に管理する。   The database input / output unit 170 receives an instruction from the data holding unit 160 and requests the database management unit 180 of the DB server 32 to make the data permanent and read the data. Data persistence refers to recording data in a physical storage device. The database management unit 180 receives a data input / output request from the database input / output unit 170 and centrally manages data perpetuation and data reading using the storage unit 190.

データベース入出力部170またはデータベース管理部180は、キャッシュの機能を有していてもよい。例えば、データベース管理部180において図7に示した行列形式のデータ構造のまま過去の問い合わせに対する応答の内容を保持しておくことで、更新の発生していないデータについての問い合わせに高速に応答を返すことができる。   The database input / output unit 170 or the database management unit 180 may have a cache function. For example, the database management unit 180 maintains the response contents for past inquiries while maintaining the data structure in the matrix format shown in FIG. 7, thereby returning a response to inquiries about data that has not been updated at high speed. be able to.

データベース入出力部170及びデータベース管理部180は、例えば汎用的なRDBMS(Relational DataBase Management System)機能を提供するミドルウェアを適用または拡張して実現することができる。   The database input / output unit 170 and the database management unit 180 can be realized by applying or extending middleware that provides a general-purpose RDBMS (Relational DataBase Management System) function, for example.

記憶部190は、推薦システム1の保持する様々なデータを記憶するための記憶領域である。記憶部190は、例えば後述する汎用コンピュータの記憶装置916を用いて実装され得る。   The storage unit 190 is a storage area for storing various data held by the recommendation system 1. The storage unit 190 can be implemented using, for example, a storage device 916 of a general-purpose computer described later.

なお、DBサーバ32において推薦システム1のデータを永続化する際には、必ずしも図7を用いて説明した行列形式でデータを記録しなくてもよい。例えば、正規化されたリレーショナルデータベース形式、またはXML(eXtensible Markup Language)形式などに変換した上でデータを永続化してもよい。   Note that when the data of the recommendation system 1 is made permanent in the DB server 32, the data need not necessarily be recorded in the matrix format described with reference to FIG. For example, the data may be made permanent after being converted into a normalized relational database format or XML (extensible Markup Language) format.

ここまで、推薦システム1の論理的な機能配置について説明を行った。次に、本実施形態のデータ保持部160におけるデータアクセス方式について説明する。   So far, the logical functional arrangement of the recommendation system 1 has been described. Next, a data access method in the data holding unit 160 of this embodiment will be described.

前述したように、データ保持部160は、行方向または列方向の少なくとも一方にユーザのプロファイルデータ及びコンテンツのメタデータのデータ項目を有する行列形式のデータ構造を用いて、各種データを保持する。このような行列において、いくつかのフィールドは実際の処理では使用されないことから、データ保持部160の保持する行列はいわゆる疎行列となる。そうした疎行列に対し、データ操作部150は、応用アルゴリズム部130または基本アルゴリズム部140からの要求に応じて、データ参照または更新のための部分行列の切り出しを行う。   As described above, the data holding unit 160 holds various types of data using a matrix-type data structure having data items of user profile data and content metadata in at least one of the row direction and the column direction. In such a matrix, since some fields are not used in actual processing, the matrix held by the data holding unit 160 is a so-called sparse matrix. In response to a request from the application algorithm unit 130 or the basic algorithm unit 140, the data operation unit 150 extracts a partial matrix for data reference or update for such a sparse matrix.

データ操作部150を介したデータ保持部160からの部分行列の切り出しは、例えば行指定子及び列指定子を用いて行うことができる。行指定子及び列指定子とは、行列形式のデータ構造の個々の行または列を指定する役割を果たす識別子である。本実施形態では、データ保持部160に対するデータアクセスを簡易かつ高速に行うために、データのカテゴリに応じて階層的に表現された文字列を行指定子及び列指定子として用いる。   The extraction of the partial matrix from the data holding unit 160 via the data operation unit 150 can be performed using, for example, a row specifier and a column specifier. A row specifier and a column specifier are identifiers that serve to specify individual rows or columns of a matrix format data structure. In the present embodiment, in order to perform data access to the data holding unit 160 easily and at high speed, character strings expressed hierarchically according to the category of data are used as row specifiers and column specifiers.

図8は、データ保持部160における行指定子及び列指定子を用いたデータアクセス方式を示した説明図である。   FIG. 8 is an explanatory diagram showing a data access method using a row specifier and a column specifier in the data holding unit 160.

図8を参照すると、データ保持部160に保持される各行のデータ項目は、データのカテゴリに対応する第1及び第2階層と、データ項目に対応する第3階層とにより、3階層の階層構造を構成している((A)〜(C))。そして、階層構造内の1つのノードは、階層的に表現された文字列である行指定子及び列指定子によって指定される。   Referring to FIG. 8, each row of data items held in the data holding unit 160 has a three-level hierarchical structure including a first hierarchy and a second hierarchy corresponding to the data category, and a third hierarchy corresponding to the data item. ((A) to (C)). One node in the hierarchical structure is specified by a row specifier and a column specifier, which are character strings expressed hierarchically.

例えば、第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)。なお、ここでは階層間をハイフン記号“−”で区切っているが、ハイフン記号“−”は省略されてもよい。   For example, the row specifier “1” for designating up to the first layer corresponds to “user”, the row specifier “2” corresponds to “content”, and the row specifier “3” corresponds to “attribute” (A). The row specifier “1-1” for designating up to the second hierarchy is “general user”, “1-2” is “special user”, “2-1” is “music”, and “2-2” is “Movie” and “3-1” correspond to “Regional attribute”, and “3-2” corresponds to “Genre” (B). Further, the row specifier = “1-1-1” for designating up to the third hierarchy corresponds to the user U111, “1-1-2” corresponds to the user U112, etc. (C). Here, the layers are separated by a hyphen symbol “-”, but the hyphen symbol “-” may be omitted.

このような行指定子「X−X−X」によって、例えば図7の行列形式の1行が特定される。即ち、例えば本実施形態に係る基本アルゴリズム部140がユーザU111の1行分のデータを取得する場合には、基本アルゴリズム部140からデータ操作部150に行指定子「1−1−1」が受け渡される。そして、データ操作部150は、行指定子「1−1−1」に対応するユーザU111のノードの配下のデータを1行分のデータとして取得し、基本アルゴリズム部140へ出力する。   Such a row designator “XX-X” identifies, for example, one row in the matrix format of FIG. That is, for example, when the basic algorithm unit 140 according to the present embodiment acquires data for one row of the user U 111, the row specifier “1-1-1” is received from the basic algorithm unit 140 to the data operation unit 150. Passed. Then, the data operation unit 150 acquires data under the node of the user U111 corresponding to the row specifier “1-1-1” as data for one row and outputs the data to the basic algorithm unit 140.

また、行指定子に加えて、同様に3階層に階層化された列指定子(A´〜C´)を用いて、行列形式のデータ構造内の1フィールドを指定することができる。例えば、フィールド指定子「1−1−1−3−1−1」は、ユーザU111のプロファイルデータのうち地域属性“東京”のデータに対応するノードを指定する。また、フィールド指定子「2−1−1−3−1−1」は、楽曲Aのメタデータのうち地域属性“東京”のデータに対応するノードを指定する。   In addition to the row specifier, one field in the matrix format data structure can be specified using column specifiers (A ′ to C ′) similarly hierarchized into three hierarchies. For example, the field specifier “1-1-1-3-1-1” designates a node corresponding to the data of the regional attribute “Tokyo” in the profile data of the user U111. The field specifier “2-1-1-3-1-1” designates a node corresponding to the data of the regional attribute “Tokyo” in the metadata of the music piece A.

さらに、プログラムの実装上は、フィールド指定子によって指定される階層構造の終端に、データが物理的に格納されたアドレスを指し示すポインタが保持される(D)。そして、ポインタによって示されたアドレスに実データが格納される(E)。例えば、図8では、フィールド指定子「1−1−1−3−1−1」の終端のポインタが指し示すアドレス“AF05”に、ユーザU111の地域属性“東京”についてのプロファイルデータ値“100”が格納されている。   Furthermore, in terms of program implementation, a pointer that points to an address where data is physically stored is held at the end of the hierarchical structure specified by the field specifier (D). Then, the actual data is stored at the address indicated by the pointer (E). For example, in FIG. 8, the profile data value “100” for the region attribute “Tokyo” of the user U111 is assigned to the address “AF05” indicated by the end pointer of the field specifier “1-1-1-3-1-1”. Is stored.

なお、ここでは前半部に行指定子、後半部に列指定子を結合させたフィールド指定子を用いてデータ保持部160に保持されるデータにアクセスする方式について説明した。即ち、図8に示したように、データモデル上は階層構造の始点側が行、終端側が列に対応する。しかしながら、推薦アルゴリズムを実装する上では、列を先に指定してデータを参照または更新することが求められる場合もある。よって、図8に示したデータアクセス方式に加えて、前半部に列指定子、後半部に行指定子を結合させた形でデータ保持部160のデータにアクセスできる階層化されたデータアクセス方式を、併せて実装するのが好適である。   Here, the method of accessing data held in the data holding unit 160 using a field specifier in which a row specifier is combined in the first half and a column specifier in the second half has been described. That is, as shown in FIG. 8, on the data model, the start point side of the hierarchical structure corresponds to the row and the end point corresponds to the column. However, in implementing the recommendation algorithm, it may be required to refer to or update data by specifying a column first. Therefore, in addition to the data access method shown in FIG. 8, a hierarchical data access method that can access data in the data holding unit 160 in a form in which a column specifier is combined in the first half and a row specifier in the second half is combined. It is preferable to mount them together.

図8を用いて説明した階層化されたデータアクセス方式は、例えばオブジェクト指向型のプログラミング言語におけるクラスを用いて各階層のノードを定義することにより実現することができる。   The hierarchical data access method described with reference to FIG. 8 can be realized by defining nodes in each layer using classes in an object-oriented programming language, for example.

図7を用いて説明した行列形式のデータ構造(論理的なデータモデルに相当)に対して図8のような階層構造のデータアクセス方式を実現することのメリットの1つは、データアクセスが高速になることである。単純な一次元配列のデータに対する逐次比較によるデータアクセスに比して、階層化された識別子によるデータアクセスが高速であることは、二分探索の考え方に基づくものとして知られている。このようなデータアクセス方式により、データ保持部160の保持するデータ構造が大規模な疎行列となったとしても、十分に実用に耐え得る高速なデータアクセスを行うことができる。また、階層化された識別子に数値を用いることにより、数値の大小関係によって柔軟に範囲指定をして部分行列を切り出すことも可能となる。   One of the merits of realizing the hierarchical data access method as shown in FIG. 8 with respect to the data structure in the matrix format (corresponding to a logical data model) described with reference to FIG. Is to become. It is known that the data access by the hierarchized identifier is faster than the data access by the successive comparison with respect to the simple one-dimensional array data based on the concept of the binary search. By such a data access method, even if the data structure held by the data holding unit 160 becomes a large-scale sparse matrix, high-speed data access that can sufficiently withstand practical use can be performed. In addition, by using numerical values for the hierarchized identifiers, it is also possible to cut out a partial matrix by flexibly specifying a range according to the magnitude relation of the numerical values.

さらに、各階層のノードをクラスを用いて定義した場合、個々のノードは当該クラスから生成されるオブジェクトとなる。本発明によらない通常の推薦システムにおいて、例えば1つのユーザまたは1つのコンテンツに対するデータアクセスがあった場合、当該データアクセスがされている間、アクセス対象のユーザまたはコンテンツに関わるデータ全体がロックされる。ロックとは、複数のプロセスから同時にデータが操作されることを防ぎ、データの一貫性を担保するための処理である。しかしながら、前述のように図8の各階層のノードがそれぞれ1つのオブジェクトであれば、ロックする範囲を個々のノード、即ち処理対象とされている範囲の部分行列またはフィールドに限定することができる。それにより、複数のプロセスを並列で稼動させた場合にも、ロックの解除を待つことによる処理の遅延が低減される。   Furthermore, when nodes in each hierarchy are defined using classes, each node is an object generated from the class. In a normal recommendation system not according to the present invention, for example, when there is data access to one user or one content, the entire data related to the user or content to be accessed is locked while the data is being accessed. . Locking is a process for preventing data from being simultaneously manipulated from a plurality of processes and ensuring data consistency. However, as described above, if the nodes of each hierarchy in FIG. 8 are each one object, the range to be locked can be limited to individual nodes, that is, the submatrix or field of the range to be processed. Thereby, even when a plurality of processes are operated in parallel, processing delay due to waiting for lock release is reduced.

また、図8では、階層構造のデータの終端である各フィールドに1つの実データのみを保持させているが、各フィールドに1つの実データではなく複数の実データを保持させてもよい。例えば、図8(D)において階層構造のデータの終端に複数のポインタを割当てることで、複数の実データを保持させることができる。かかる構成によれば、例えばWeb上のセッション単位または日単位の行動履歴に基づくプロファイルデータと、過去全ての行動履歴に基づくプロファイルデータとを、並列的に保持することができる。そうすることにより、より多面的な観点から推薦を行うサービスを構築することが可能となる。   In FIG. 8, only one actual data is held in each field that is the end of hierarchical data, but each field may hold a plurality of actual data instead of one actual data. For example, by assigning a plurality of pointers to the end of the hierarchical data in FIG. 8D, a plurality of actual data can be held. According to such a configuration, for example, profile data based on a session history or a daily activity history on the Web and profile data based on all past behavior histories can be held in parallel. By doing so, it is possible to construct a service for making a recommendation from a multifaceted viewpoint.

ここまで、本実施形態の推薦システム1におけるデータ構造及び当該データ構造に対するデータアクセス方式について説明を行った。次に、推薦システム1における処理の流れについて、図9及び図10を用いて説明する。   So far, the data structure and the data access method for the data structure in the recommendation system 1 of the present embodiment have been described. Next, the flow of processing in the recommendation system 1 will be described using FIG. 9 and FIG.

図9は、本実施形態におけるユーザのプロファイルデータ生成処理の流れを示すシーケンス図である。   FIG. 9 is a sequence diagram showing a flow of user profile data generation processing in the present embodiment.

図9を参照すると、まず、端末装置10のユーザアプリケーション部110から推薦サーバ30の応用アルゴリズム部130へ、ユーザの行動履歴データが送信される(S1104)。なお、図4を用いて説明したように、ユーザアプリケーション部110と応用アルゴリズム部130との間の要求や応答は、アプリケーションインタフェース部120を介して行われる。しかし、ここでは説明の便宜上、アプリケーションインタフェース部120を省略して示している。   9, first, user action history data is transmitted from the user application unit 110 of the terminal device 10 to the application algorithm unit 130 of the recommendation server 30 (S1104). As described with reference to FIG. 4, requests and responses between the user application unit 110 and the application algorithm unit 130 are made via the application interface unit 120. However, for convenience of explanation, the application interface unit 120 is omitted here.

ユーザアプリケーション部110からの行動履歴データの送信は、前述したように、ユーザがコンテンツの参照や購入などの行動をした時点、ユーザがWebサイトから退出した時点、または1日1回などの任意の時点で行われる。ここで送信される行動履歴データには、典型的には、ユーザを特定する識別子、参照や購入などの行動の対象となるコンテンツを特定する識別子、及び行動の種類を特定するコードなどが含まれる。   As described above, the behavior history data is transmitted from the user application unit 110 when the user performs an action such as browsing or purchasing content, when the user leaves the website, or once a day. Done at the moment. The behavior history data transmitted here typically includes an identifier that identifies the user, an identifier that identifies the content that is subject to behavior such as reference or purchase, and a code that identifies the type of behavior. .

次に、行動履歴データを受信した応用アルゴリズム部130は、データ操作部150に対してコンテンツのメタデータの取得を要求する(S1108)。例えば、行動履歴データに楽曲A及び楽曲Bを特定する識別子が含まれていた場合には、図7に示した領域D2の範囲のメタデータの取得が要求される。   Next, the application algorithm unit 130 that has received the action history data requests the data operation unit 150 to acquire content metadata (S1108). For example, if the action history data includes identifiers that specify the music piece A and the music piece B, acquisition of metadata in the area D2 shown in FIG. 7 is requested.

応用アルゴリズム部130からの要求を受けたデータ操作部150は、データ保持部160を参照し、コンテンツのメタデータに相当するデータ保持部160内の部分行列を取得する(S1112、S1116)。例えば、図7に示した領域D2の範囲のメタデータは、図8に示した行指定子「2−1」及び列指定子「3」を用いて取得され得る。ここで取得されたコンテンツのメタデータは、データ操作部150から応用アルゴリズム部130に受け渡される(S1120)。   Upon receiving the request from the application algorithm unit 130, the data operation unit 150 refers to the data holding unit 160 and acquires a partial matrix in the data holding unit 160 corresponding to the metadata of the content (S1112 and S1116). For example, the metadata of the range of the region D2 illustrated in FIG. 7 can be acquired using the row specifier “2-1” and the column specifier “3” illustrated in FIG. The content metadata acquired here is transferred from the data operation unit 150 to the application algorithm unit 130 (S1120).

さらに、応用アルゴリズム部130は、データ操作部150に対してユーザのプロファイルデータの取得を要求する(S1124)。例えば、行動履歴データにコンテンツを参照したユーザを特定する識別子U111が含まれていた場合には、図7に示した領域D1内のユーザU111のプロファイルデータの取得が要求される。   Further, the application algorithm unit 130 requests the data operation unit 150 to acquire user profile data (S1124). For example, when the action history data includes an identifier U111 that identifies a user who refers to the content, acquisition of profile data of the user U111 in the area D1 illustrated in FIG. 7 is requested.

応用アルゴリズム部130からの要求を受けたデータ操作部150は、データ保持部160を参照し、ユーザのプロファイルデータに相当するデータ保持部160内の部分行列を取得する(S1128、S1132)。例えば、ユーザU111のプロファイルデータは、図8に示した行指定子「1−1−1」及び列指定子「3」を用いて取得され得る。ここで取得されたーザのプロファイルデータは、データ操作部150から応用アルゴリズム部130に受け渡される(S1136)。   In response to the request from the application algorithm unit 130, the data operation unit 150 refers to the data holding unit 160 and acquires a partial matrix in the data holding unit 160 corresponding to the user profile data (S1128, S1132). For example, the profile data of the user U111 can be acquired using the row specifier “1-1-1” and the column specifier “3” illustrated in FIG. The user profile data acquired here is transferred from the data operation unit 150 to the application algorithm unit 130 (S1136).

その後、応用アルゴリズム部130は、行動履歴データを解析することにより、ユーザの新たなプロファイルデータを生成する(S1140)。例えば、応用アルゴリズム部130は、ユーザU111が参照した楽曲A及び購入した楽曲Bのメタデータを、所定の係数を掛けた上でユーザU111のプロファイルデータに加算することができる。このような演算処理は、行列形式のデータ構造から取得した部分行列を用いた処理に適している。   Thereafter, the application algorithm unit 130 generates new profile data of the user by analyzing the action history data (S1140). For example, the application algorithm unit 130 can add the metadata of the music piece A and the purchased music piece B referred to by the user U111 to the profile data of the user U111 after being multiplied by a predetermined coefficient. Such arithmetic processing is suitable for processing using a partial matrix acquired from a data structure in a matrix format.

そして、応用アルゴリズム部130は、新たに生成したユーザのプロファイルデータをデータ操作部150へ受け渡し、データの更新を指示する(S1144)。そうすると、データ操作部150によってデータ保持部160内のユーザのプロファイルデータに相当する部分行列が更新される(S1148)。さらに、データ保持部160は、S1148の後の任意の時点で、更新されたユーザのプロファイルデータの永続化をデータベース入出力部170に指示する(S1148)。   Then, the application algorithm unit 130 passes the newly generated user profile data to the data operation unit 150 and instructs the data update (S1144). Then, the sub-matrix corresponding to the user profile data in the data holding unit 160 is updated by the data operation unit 150 (S1148). Further, the data holding unit 160 instructs the database input / output unit 170 to make the updated user profile data permanent at any point after S1148 (S1148).

なお、図9では行動履歴データの解析処理を応用アルゴリズム部130が行うように説明したが、行動履歴データの解析処理を定型化し、基本アルゴリズム部140に実装してもよい。   In FIG. 9, the action history data analysis process is described as being performed by the application algorithm unit 130, but the action history data analysis process may be standardized and implemented in the basic algorithm unit 140.

ここまで、図9を用いて本実施形態におけるユーザのプロファイルデータ生成処理について説明を行った。図9を参照すれば、データ保持部160において行列形式で保持したユーザのプロファイルデータ及びコンテンツのメタデータに対する読み書きを、データ操作部150を介する部分行列の操作に単純化できることが理解される。   Up to this point, the user profile data generation processing in this embodiment has been described with reference to FIG. Referring to FIG. 9, it can be understood that reading and writing with respect to the user profile data and content metadata held in the matrix format in the data holding unit 160 can be simplified to the operation of the partial matrix via the data operation unit 150.

次に、図10は、本実施形態における推薦リストの生成処理の流れを例示するシーケンス図である。   Next, FIG. 10 is a sequence diagram illustrating the flow of a recommendation list generation process in the present embodiment.

図10を参照すると、まず、ユーザアプリケーション部110からアプリケーションインタフェース部120を介して、応用アルゴリズム部130に推薦要求が送信される(S1204)。推薦要求には、推薦を希望するユーザを特定する識別子の他に、例えば推薦の対象とするコンテンツの範囲や推薦方法(協調フィルタや内容フィルタなど)を指定するコードなどを含んでもよい。   Referring to FIG. 10, first, a recommendation request is transmitted from the user application unit 110 to the application algorithm unit 130 via the application interface unit 120 (S1204). The recommendation request may include, for example, a code specifying a range of content to be recommended and a recommendation method (such as a collaborative filter and a content filter) in addition to an identifier for identifying a user who desires recommendation.

次に、推薦要求を受信した応用アルゴリズム部130は、基本アルゴリズム部140に対して相関度の計算を要求する(S1208)。相関度の計算とは、例えば図5(A)または図6(A)に関連して説明した処理である。相関度の計算処理は、基本アルゴリズム部140において定型化することができる。   Next, the application algorithm unit 130 that has received the recommendation request requests the basic algorithm unit 140 to calculate the degree of correlation (S1208). The calculation of the degree of correlation is, for example, the processing described in relation to FIG. 5 (A) or FIG. 6 (A). The calculation processing of the correlation degree can be standardized in the basic algorithm unit 140.

応用アルゴリズム部130からの相関度の計算要求を受けた基本アルゴリズム部140は、データ操作部150を介して、データ保持部160から相関度の計算に必要となるデータを取得する(S1212〜S1224)。例えば、図5(A)に関連して説明した相関度の計算を行う場合には、ユーザのプロファイルデータのうち楽曲のジャンルに相当するデータが、データ保持部160から部分行列の形で取得される。   Upon receiving the correlation degree calculation request from the application algorithm part 130, the basic algorithm part 140 acquires data necessary for the correlation degree calculation from the data holding part 160 via the data operation part 150 (S1212 to S1224). . For example, when calculating the degree of correlation described with reference to FIG. 5A, data corresponding to the genre of music in the user profile data is acquired from the data holding unit 160 in the form of a partial matrix. The

そして、基本アルゴリズム部140は取得されたデータを用いて相関度の計算を行い(S1228)、計算結果が基本アルゴリズム部140から応用アルゴリズム部130へ出力される(S1232)。   The basic algorithm unit 140 calculates the degree of correlation using the acquired data (S1228), and the calculation result is output from the basic algorithm unit 140 to the application algorithm unit 130 (S1232).

さらに、応用アルゴリズム部130は、基本アルゴリズム部140に対して相関度の計算結果に基づく推薦リストの生成を要求する(S1236)。推薦リストの生成とは、例えば図5(B)〜(C)または図6(B)〜(C)に関連して説明した処理である。推薦リストの生成処理もまた、基本アルゴリズム部140において定型化することができる。   Further, the application algorithm unit 130 requests the basic algorithm unit 140 to generate a recommendation list based on the correlation degree calculation result (S1236). The generation of the recommendation list is, for example, the processing described in relation to FIGS. 5 (B) to (C) or FIGS. 6 (B) to (C). The recommendation list generation process can also be standardized in the basic algorithm unit 140.

応用アルゴリズム部130からの推薦リストの生成要求を受けた基本アルゴリズム部140は、データ操作部150を介して、データ保持部160から推薦リストの生成に必要となるデータを取得する(S1240〜S1252)。例えば、図5(B)〜(C)に関連して説明した推薦リストの生成を行う場合には、ユーザのプロファイルデータのうちユーザと個々の楽曲コンテンツの相関度を表すデータが、データ保持部160から部分行列の形で取得される。   The basic algorithm unit 140 that has received a recommendation list generation request from the application algorithm unit 130 acquires data necessary for generating a recommendation list from the data holding unit 160 via the data operation unit 150 (S1240 to S1252). . For example, when the recommendation list described with reference to FIGS. 5B to 5C is generated, data representing the degree of correlation between the user and individual music contents in the user profile data is stored in the data holding unit. 160 is obtained in the form of a submatrix.

そして、基本アルゴリズム部140は取得されたデータを用いて推薦リストの生成を行い(S1256)、生成された推薦リストが基本アルゴリズム部140から応用アルゴリズム部130へ出力される(S1260)。なお、図10には示していないが、応用アルゴリズム部130は、推薦リストを取得した後、個々の推薦サービスのニーズや制約に合わせて取得した推薦リストの加工を行ってもよい。   Then, the basic algorithm unit 140 generates a recommendation list using the acquired data (S1256), and the generated recommendation list is output from the basic algorithm unit 140 to the application algorithm unit 130 (S1260). Although not shown in FIG. 10, the application algorithm unit 130 may process the recommendation list acquired in accordance with the needs and restrictions of each recommendation service after acquiring the recommendation list.

そして、最終的に取得された推薦リストは、応用アルゴリズム部130からアプリケーションインタフェース部120を介してユーザアプリケーション部110へ出力される(S1264)。   Then, the finally acquired recommendation list is output from the application algorithm unit 130 to the user application unit 110 via the application interface unit 120 (S1264).

ここまで、図10を用いて本実施形態における推薦リストの生成処理について説明を行った。本実施形態では、応用アルゴリズム部130は、基本アルゴリズム部140に実装される定型的な計算処理を用いて、推薦リストを取得する。例えば、図10に示した相関度の計算処理や相関度の計算結果に基づく推薦リストの生成処理を定型化し、基本アルゴリズム部140に実装することができる。基本アルゴリズム部140において扱うデータ形式は、データ保持部160からデータ操作部150を介して取得した部分行列の形式に共通化されている。このような行列形式のデータは、応用アルゴリズム部130において基本アルゴリズム部140から出力される様々な計算結果を柔軟に組み合わせることに適している。   So far, the recommendation list generation processing in the present embodiment has been described with reference to FIG. In the present embodiment, the application algorithm unit 130 acquires a recommendation list using a typical calculation process implemented in the basic algorithm unit 140. For example, the correlation degree calculation process and the recommendation list generation process based on the correlation degree calculation result shown in FIG. 10 can be standardized and implemented in the basic algorithm unit 140. The data format handled in the basic algorithm unit 140 is shared by the submatrix format acquired from the data holding unit 160 via the data operation unit 150. Such matrix-format data is suitable for flexibly combining various calculation results output from the basic algorithm unit 140 in the application algorithm unit 130.

以上、図1〜図10を用いて本発明の第1の実施形態について説明を行った。第1の実施形態に係る推薦システム1によれば、応用アルゴリズム部130において、定型的な計算処理を実行する基本アルゴリズム部140を柔軟に組み合わせることができる。   The first embodiment of the present invention has been described above with reference to FIGS. According to the recommendation system 1 according to the first embodiment, the application algorithm unit 130 can flexibly combine the basic algorithm unit 140 that executes a typical calculation process.

また、データ保持部160において行列形式で保持するユーザのプロファイルデータ及びコンテンツのメタデータに対するデータ操作部150を介した読み書きを、部分行列の操作の形で単純化して行うことができる。   In addition, the user profile data and content metadata held in the matrix format in the data holding unit 160 can be read and written via the data operation unit 150 in a simplified manner in the form of submatrix operations.

さらに、行列形式のデータ構造に対して階層的に表現された行及び列の指定子によるデータアクセス方式が提供されることにより、データアクセスが高速になると共に、処理対象とするデータの範囲を柔軟に指定することができる。   Furthermore, by providing a data access method using row and column specifiers expressed hierarchically for a data structure in a matrix format, the data access speed is increased and the range of data to be processed is flexible. Can be specified.

即ち、第1の実施形態に係る推薦システム1によれば、推薦システム1における推薦アルゴリズムの設計及び開発の柔軟性が向上し、サービス開発のコストが低減されると共に、より効果的なコンテンツの推薦結果がユーザに提供されることが期待される。   That is, according to the recommendation system 1 according to the first embodiment, the design and development flexibility of the recommendation algorithm in the recommendation system 1 is improved, the cost of service development is reduced, and more effective content recommendation is achieved. The result is expected to be provided to the user.

〔2〕第2の実施形態
第1の実施形態に係る推薦システム1では、推薦サーバ及びDBサーバをそれぞれ1台ずつ用いてシステムを構成した。しかしながら、ユーザのプロファイルデータ及びコンテンツのメタデータを行列形式で保持した場合、複数の推薦サーバによるデータの共有も容易に行うことができる。そこで、本発明の第2の実施形態として、複数の推薦サーバを用いて推薦システムを構成する例について説明する。
[2] Second Embodiment In the recommendation system 1 according to the first embodiment, the system is configured by using one recommendation server and one DB server. However, when user profile data and content metadata are held in a matrix format, data sharing by a plurality of recommendation servers can be easily performed. Therefore, as a second embodiment of the present invention, an example in which a recommendation system is configured using a plurality of recommendation servers will be described.

図11は、本発明の第2の実施形態に係る推薦システム2の構成を示した模式図である。図11を参照すると、推薦システム2には、端末装置10、端末装置12、ネットワーク20、Webサーバ22、推薦サーバ30a及び推薦サーバ30b、並びにDBサーバ36が含まれる。   FIG. 11 is a schematic diagram showing the configuration of the recommendation system 2 according to the second embodiment of the present invention. Referring to FIG. 11, the recommendation system 2 includes a terminal device 10, a terminal device 12, a network 20, a Web server 22, a recommendation server 30 a and a recommendation server 30 b, and a DB server 36.

推薦サーバ30a及び推薦サーバ30bは、Webサーバ22及びDBサーバ36とそれぞれ接続される。推薦サーバ30a及び推薦サーバ30bは、第1の実施形態に係る推薦サーバ30と同様、端末装置10または12からコンテンツの推薦要求を受け付け、推薦リストを取得し、Webサーバ22を介して当該推薦リストを要求元の端末装置へ送信する。また、推薦サーバ30a及び推薦サーバ30bは、演算に必要とされるコンテンツのメタデータ及びユーザのプロファイルデータを、DBサーバ36から取得する。   The recommendation server 30a and the recommendation server 30b are connected to the Web server 22 and the DB server 36, respectively. Similar to the recommendation server 30 according to the first embodiment, the recommendation server 30 a and the recommendation server 30 b receive a content recommendation request from the terminal device 10 or 12, obtain a recommendation list, and receive the recommendation list via the Web server 22. Is transmitted to the requesting terminal device. Further, the recommendation server 30 a and the recommendation server 30 b obtain content metadata and user profile data required for calculation from the DB server 36.

ここで、推薦サーバ30a及び推薦サーバ30bは、同一のコンテンツを推薦の対象として扱う冗長型の推薦サーバであってもよい。また、推薦サーバ30a及び推薦サーバ30bは、異なる範囲のコンテンツを推薦の対象として扱う分散協調型の推薦サーバであってもよい。   Here, the recommendation server 30a and the recommendation server 30b may be redundant recommendation servers that handle the same content as a recommendation target. Further, the recommendation server 30a and the recommendation server 30b may be distributed cooperative recommendation servers that handle different ranges of content as recommendation targets.

また、推薦サーバ30aまたは推薦サーバ30bは、他方の推薦サーバから推薦要求を受け付け、推薦リストを生成して要求元の推薦サーバに返却する機能を有してもよい。そうすることにより、分散して処理した異なる範囲のコンテンツの推薦リストを統合して、端末装置10または端末装置20へ送信することが可能となる。   The recommendation server 30a or the recommendation server 30b may have a function of receiving a recommendation request from the other recommendation server, generating a recommendation list, and returning the recommendation list to the requesting recommendation server. By doing so, it becomes possible to integrate the recommended lists of different ranges of content processed in a distributed manner and transmit them to the terminal device 10 or the terminal device 20.

本実施形態において、DBサーバ36は、推薦サーバごとにデータの割当て範囲を規定したデータ割当てテーブルを用いて、推薦サーバ30aまたは推薦サーバ30bの処理対象とするユーザまたはコンテンツを管理する。   In the present embodiment, the DB server 36 manages users or contents to be processed by the recommendation server 30a or the recommendation server 30b using a data allocation table that defines the data allocation range for each recommendation server.

図12は、推薦システム2のDBサーバ36の論理的な機能配置を示したブロック図である。図12を参照すると、DBサーバ36は、データベース管理部182、記憶部190、及びデータ割当てテーブル192を備える。   FIG. 12 is a block diagram showing a logical functional arrangement of the DB server 36 of the recommendation system 2. Referring to FIG. 12, the DB server 36 includes a database management unit 182, a storage unit 190, and a data allocation table 192.

データベース管理部182は、第1の実施形態に係るデータベース管理部180と同様の機能を有する他、さらに、データ割当てテーブル192を用いて推薦サーバ30aまたは推薦サーバ30bに処理させるユーザまたはコンテンツの範囲を管理する。   The database management unit 182 has the same function as the database management unit 180 according to the first embodiment, and further uses the data allocation table 192 to specify the range of users or contents to be processed by the recommendation server 30a or the recommendation server 30b. to manage.

データ割当てテーブル192は、推薦サーバごとのデータ割当て範囲を規定するためのテーブルである。なお、図12では説明の便宜上、データ割当てテーブル192を記憶部190とは分けて示しているが、データ割当てテーブル192は記憶部190に含まれてもよい。   The data allocation table 192 is a table for defining a data allocation range for each recommended server. In FIG. 12, for convenience of explanation, the data allocation table 192 is shown separately from the storage unit 190, but the data allocation table 192 may be included in the storage unit 190.

図13は、データ割当てテーブル192のデータ構成の一例を説明するための説明図である。図13(A)は、データ割当てテーブル192のデータ構成を示している。図13(A)において、データ割当てテーブル192は、縦軸に推薦サーバの識別子(30aまたは30b)、横軸にデータ割当て範囲及び読み出すデータ数の上限値を有する。また、図13(B)は、DBサーバ36において管理される推薦システム2のコンテンツ及びコンテンツのメタデータを、概念的に行列形式で示している。   FIG. 13 is an explanatory diagram for explaining an example of the data configuration of the data allocation table 192. FIG. 13A shows the data configuration of the data allocation table 192. In FIG. 13A, the data allocation table 192 has a recommendation server identifier (30a or 30b) on the vertical axis, and a data allocation range and an upper limit value of the number of data to be read on the horizontal axis. FIG. 13B conceptually shows the content of the recommendation system 2 and the metadata of the content managed in the DB server 36 in a matrix format.

図13(A)を参照すると、推薦サーバ30aには、推薦システム2で扱われるコンテンツ及びコンテンツのメタデータのうち、領域D7の範囲のデータが割当てられている。図13(B)を参照すると、領域D7は、楽曲コンテンツ及び楽曲コンテンツのメタデータ(属性1)を対象とする領域である。また、推薦サーバ30aに読み出されるデータ数の上限値は10000件に制限されている。   Referring to FIG. 13A, the recommendation server 30a is assigned data in the range of the region D7 among the content handled by the recommendation system 2 and the metadata of the content. Referring to FIG. 13B, the area D7 is an area for the music content and the metadata (attribute 1) of the music content. Further, the upper limit value of the number of data read to the recommendation server 30a is limited to 10,000.

一方、推薦サーバ30bには、推薦システム2で扱われるコンテンツ及びコンテンツのメタデータのうち、領域D8の範囲のデータが割当てられている。図13(B)を参照すると、領域D8は、ニュース記事コンテンツ及びニュース記事コンテンツのメタデータ(属性1、2)を対象とする領域である。推薦サーバ30aに読み出されるデータ数の上限値は規定されていない。   On the other hand, among the content handled by the recommendation system 2 and the metadata of the content, data in the range of the region D8 is assigned to the recommendation server 30b. Referring to FIG. 13B, the area D8 is an area for the news article content and the metadata (attributes 1 and 2) of the news article content. The upper limit value of the number of data read to the recommendation server 30a is not defined.

図12に示したデータベース管理部182は、このようなデータ割当てテーブル192を参照し、推薦サーバごとに割当てられた範囲のデータのみを処理させることで、推薦サーバの冗長化または分散協調処理を実現する。また、推薦サーバに受け渡すデータ数の上限値を制限することで、データ数が増大した場合に推薦サーバに掛かる負荷を抑制することができる。   The database management unit 182 shown in FIG. 12 refers to such a data allocation table 192, and realizes redundancy or distributed cooperative processing of recommended servers by processing only the data in the range allocated to each recommended server. To do. Further, by limiting the upper limit value of the number of data transferred to the recommendation server, it is possible to suppress a load on the recommendation server when the number of data increases.

ここで、推薦サーバを冗長化した場合には、推薦サーバのいずれか一方が故障などの原因で機能停止した場合にも、他方の推薦サーバを用いてサービスが継続される。即ち、推薦システム2の全体としての可用性が確保される。また、推薦サーバ間で分散協調処理を実現した場合には、例えば推薦システム2が大規模なコンテンツデータを扱う場合に、推薦システム2の全体としての応答性能が向上される。   Here, when the recommended server is made redundant, even when one of the recommended servers stops functioning due to a failure or the like, the service is continued using the other recommended server. That is, the availability of the recommendation system 2 as a whole is ensured. Further, when the distributed cooperative processing is realized between the recommendation servers, for example, when the recommendation system 2 handles large-scale content data, the response performance of the recommendation system 2 as a whole is improved.

なお、図13ではコンテンツ及びコンテンツのメタデータの所定の範囲を推薦サーバごとに割当てる例を示したが、その代わりにユーザ及びユーザのプロファイルデータの所定の範囲を推薦サーバごとに割当ててもよい。   Although FIG. 13 shows an example in which a predetermined range of content and content metadata is assigned to each recommendation server, instead, a predetermined range of users and user profile data may be assigned to each recommendation server.

図14は、本実施形態において推薦サーバ30a及び推薦サーバ30bが起動された際の、データベースからのデータ読出し処理の一例を示したシーケンス図である。図14では、先に推薦サーバ30a、次に推薦サーバ30bが起動されている。   FIG. 14 is a sequence diagram illustrating an example of data reading processing from the database when the recommendation server 30a and the recommendation server 30b are activated in the present embodiment. In FIG. 14, the recommendation server 30a is activated first, and then the recommendation server 30b is activated.

図14において、まず推薦サーバ30aが起動されると、推薦サーバ30aのデータ保持部160はデータベース入出力部170を介してデータベース管理部182にデータの読出しを要求する(S2004、S2008)。   14, when the recommendation server 30a is activated, the data holding unit 160 of the recommendation server 30a requests the database management unit 182 to read data via the database input / output unit 170 (S2004, S2008).

データベース管理部182は、データの読出し要求を受け取ると、要求元の推薦サーバの識別子を用いてデータ割当てテーブル192を参照し、当該推薦サーバのデータ割当て範囲を取得する(S2012、S2016)。例えば、データ割当てテーブル192が図13(A)に示した内容を保持していれば、推薦サーバ30aに対して領域D7を示す情報が取得される。   Upon receiving the data read request, the database management unit 182 acquires the data allocation range of the recommended server by referring to the data allocation table 192 using the identifier of the requesting recommended server (S2012 and S2016). For example, if the data allocation table 192 holds the contents shown in FIG. 13A, information indicating the area D7 is acquired from the recommendation server 30a.

次に、データベース管理部182は、取得されたデータ割当て範囲に含まれるデータを、記憶部190を参照して取得する(S2020、S2024)。例えば、図13(B)に示した領域D7に含まれる楽曲コンテンツ及び属性1に対応するデータが取得される。   Next, the database management unit 182 acquires data included in the acquired data allocation range with reference to the storage unit 190 (S2020, S2024). For example, data corresponding to the music content and attribute 1 included in the region D7 illustrated in FIG.

そして、データベース管理部182は、記憶部190から取得したデータを、データベース入出力部170を介して推薦サーバ30aのデータ保持部160へ出力する(S2028、S2032)。   Then, the database management unit 182 outputs the data acquired from the storage unit 190 to the data holding unit 160 of the recommendation server 30a via the database input / output unit 170 (S2028, S2032).

こうした一連の処理の結果、推薦サーバ30aにおける推薦処理に必要とされるデータが推薦サーバ30aのデータ保持部160に読み込まれる。   As a result of such a series of processing, data required for the recommendation processing in the recommendation server 30a is read into the data holding unit 160 of the recommendation server 30a.

また、図14に示したように、推薦サーバ30bの起動時にも、同様にデータ読出し要求(S2104、S2108)、データ割当て範囲の取得(S2112、S2116)、データ参照(S2120、S2124)、データ出力(S2128、S2132)が行われる。その結果、推薦サーバ30bにおける推薦処理に必要とされるデータが推薦サーバ30bのデータ保持部160に読み込まれる。   Further, as shown in FIG. 14, when the recommendation server 30b is started, a data read request (S2104, S2108), acquisition of a data allocation range (S2112, S2116), data reference (S2120, S2124), and data output are similarly performed. (S2128, S2132) are performed. As a result, data required for recommendation processing in the recommendation server 30b is read into the data holding unit 160 of the recommendation server 30b.

なお、本実施形態において、推薦処理に必要とされるデータが推薦サーバ30aまたは推薦サーバ30bの各データ保持部160に読み込まれた後、各推薦サーバは、推薦要求の待受け状態に移る。そして、端末装置10または12から推薦要求が送信されると、図10を用いて説明した第1の実施形態に係る推薦リスト生成処理と同様の処理が行われる。   In the present embodiment, after the data required for the recommendation process is read into each data holding unit 160 of the recommendation server 30a or the recommendation server 30b, each recommendation server shifts to a standby state for a recommendation request. Then, when a recommendation request is transmitted from the terminal device 10 or 12, processing similar to the recommendation list generation processing according to the first embodiment described with reference to FIG. 10 is performed.

以上、図11〜図14を用いて本発明の第2の実施形態について説明を行った。本実施形態では、DBサーバ36において、データ割当てテーブルを用いて推薦サーバ30a及び30bに個々に割当てたデータの範囲が管理される。そして、データベース管理部182は、データ読出し要求を受け取ると、データ割当てテーブルを参照して取得し、規定された範囲のデータのみを要求元の推薦サーバに出力する。かかる構成によれば、複数の推薦サーバに同一のデータ範囲を冗長的に割当ててシステムの可用性を確保し、または複数の推薦サーバに異なるデータ範囲を割当てて分散協調処理を実現することができる。   The second embodiment of the present invention has been described above with reference to FIGS. In the present embodiment, the DB server 36 manages the range of data individually allocated to the recommendation servers 30a and 30b using the data allocation table. When the database management unit 182 receives the data read request, the database management unit 182 acquires the data by referring to the data allocation table, and outputs only the data in the defined range to the requesting recommendation server. According to such a configuration, the same data range can be redundantly assigned to a plurality of recommended servers to ensure system availability, or different data ranges can be assigned to a plurality of recommended servers to realize distributed cooperative processing.

なお、ここでは1つのDBサーバと複数の推薦サーバとを用いる構成について説明を行ったが、複数のDBサーバと推薦サーバとを用いて推薦システムを構成してもよい。例えば、DBサーバをユーザ及びユーザのプロファイルデータを管理するサーバと、コンテンツ及びコンテンツのメタデータを管理するサーバに分けて構成してもよい。   In addition, although the structure using one DB server and a some recommendation server was demonstrated here, you may comprise a recommendation system using a some DB server and a recommendation server. For example, the DB server may be divided into a server that manages users and user profile data, and a server that manages content and content metadata.

本明細書において説明した第1及び第2の実施形態に係る一連の処理は、例えば図15に示した汎用コンピュータを用いて実行される。即ち、例えば図1または図11に示した端末装置10、12、推薦サーバ30、30a、30b、及びDBサーバ32、36を、それぞれ図15に示した汎用コンピュータを用いて実装することができる。   A series of processing according to the first and second embodiments described in this specification is executed using, for example, a general-purpose computer shown in FIG. That is, for example, the terminal devices 10 and 12, the recommendation servers 30, 30 a and 30 b, and the DB servers 32 and 36 shown in FIG. 1 or 11 can be mounted using the general-purpose computer shown in FIG.

図15において、CPU(Central Processing Unit)902は、汎用コンピュータの動作全般を制御する。ROM(Read Only Memory)904には、一連の処理の一部または全部を記述したプログラムやデータが格納され得る。RAM(Random Access Memory)906には、CPU902によって演算処理に用いられるプログラムやデータが一時的に記憶される。   In FIG. 15, a CPU (Central Processing Unit) 902 controls the overall operation of the general-purpose computer. A ROM (Read Only Memory) 904 can store programs and data describing a part or all of a series of processes. A RAM (Random Access Memory) 906 temporarily stores programs and data used by the CPU 902 for arithmetic processing.

CPU902、ROM904、及びRAM906は、バス908を介して相互に接続される。バス908にはさらに、入出力インタフェース910が接続される。   The CPU 902, ROM 904, and RAM 906 are connected to each other via a bus 908. Further, an input / output interface 910 is connected to the bus 908.

入出力インタフェース910は、CPU902、ROM904、及びRAM906と、入力装置912、出力装置914、記憶装置916、通信部918、及びドライブ920とを接続するためのインタフェースである。   The input / output interface 910 is an interface for connecting the CPU 902, ROM 904, and RAM 906 to the input device 912, output device 914, storage device 916, communication unit 918, and drive 920.

入力装置912は、例えばマウスやタッチペン、キーボードなどにより構成され、ユーザからの指示や情報入力を受け付ける。出力装置914は、例えばCRT(Cathode Ray Tube)、液晶ディスプレなどの表示装置、またはスピーカーなどの音声出力装置により構成され、ユーザへの情報出力に用いられる。   The input device 912 includes, for example, a mouse, a touch pen, a keyboard, and the like, and receives an instruction and information input from a user. The output device 914 includes, for example, a display device such as a CRT (Cathode Ray Tube) or a liquid crystal display, or an audio output device such as a speaker, and is used to output information to the user.

記憶装置916は、例えばハードディスクドライブまたはフラッシュメモリなどにより構成され、推薦システム1または2で使用されるプログラムやデータを記憶する。通信部918は、LANまたはインターネットなどのネットワークを介する装置間の通信処理を行う。   The storage device 916 includes, for example, a hard disk drive or a flash memory, and stores programs and data used in the recommendation system 1 or 2. A communication unit 918 performs communication processing between devices via a network such as a LAN or the Internet.

ドライブ920は、必要に応じて汎用コンピュータに設けられる周辺装置である。例えば、ドライブ920には記録媒体922を装着することができる。記録媒体922には、例えば第1または第2の実施形態に係る一連の処理の一部または全部が記述されたプログラムが記録され得る。そして、記録媒体922に記録されたプログラムは、CPU902によりドライブ920を介して読み込まれる。   The drive 920 is a peripheral device provided in the general-purpose computer as necessary. For example, a recording medium 922 can be attached to the drive 920. The recording medium 922 can record a program in which a part or all of a series of processes according to the first or second embodiment is described, for example. Then, the program recorded on the recording medium 922 is read by the CPU 902 via the drive 920.

以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。   As mentioned above, although preferred embodiment of this invention was described referring an accompanying drawing, it cannot be overemphasized that this invention is not limited to the example which concerns. It will be apparent to those skilled in the art that various changes and modifications can be made within the scope of the claims, and these are naturally within the technical scope of the present invention. Understood.

例えば、第1及び第2の実施形態に係る処理を、必ずしもシーケンス図に記載された順序に沿って実行しなくてもよい。第1及び第2の実施形態に各処理ステップは、並列的あるいは個別に独立して実行される処理を含んでもよい。   For example, the processes according to the first and second embodiments do not necessarily have to be executed in the order described in the sequence diagram. In the first and second embodiments, each processing step may include processing executed in parallel or individually independently.

第1の実施形態に係る推薦システムの物理的構成を示す模式図である。It is a schematic diagram which shows the physical structure of the recommendation system which concerns on 1st Embodiment. ユーザの行動履歴に応じて更新されるプロファイルデータの一例を示す説明図である。It is explanatory drawing which shows an example of the profile data updated according to a user's action history. ユーザの行動履歴及びコンテンツのメタデータに応じて更新されるプロファイルデータの一例を示す説明図である。It is explanatory drawing which shows an example of the profile data updated according to a user's action history and content metadata. 第1の実施形態に係る推薦システムの論理的構成を示すブロック図である。It is a block diagram which shows the logical structure of the recommendation system which concerns on 1st Embodiment. 協調フィルタに基づく推薦処理の一例を示す説明図である。It is explanatory drawing which shows an example of the recommendation process based on a cooperation filter. 内容フィルタに基づく推薦処理の一例を示す説明図である。It is explanatory drawing which shows an example of the recommendation process based on a content filter. 第1の実施形態に係る行列形式のデータ構造の一例を示す説明図である。It is explanatory drawing which shows an example of the data structure of the matrix format which concerns on 1st Embodiment. 第1の実施形態に係るデータアクセス方式の一例を示す説明図である。It is explanatory drawing which shows an example of the data access system which concerns on 1st Embodiment. 第1の実施形態に係るプロファイルデータ生成処理の流れを例示するシーケンス図である。It is a sequence diagram which illustrates the flow of the profile data generation process which concerns on 1st Embodiment. 第1の実施形態に係る推薦リストの生成処理の流れを例示するシーケンス図である。It is a sequence diagram which illustrates the flow of the production | generation process of the recommendation list which concerns on 1st Embodiment. 第2の実施形態に係る推薦システムの物理的構成を示す模式図である。It is a schematic diagram which shows the physical structure of the recommendation system which concerns on 2nd Embodiment. 第2の実施形態に係るDBサーバの論理的構成を示すブロック図である。It is a block diagram which shows the logical structure of the DB server which concerns on 2nd Embodiment. 第2の実施形態に係るデータ割当てテーブルの構成を示す説明図である。It is explanatory drawing which shows the structure of the data allocation table which concerns on 2nd Embodiment. 第2の実施形態に係るデータ読出し処理の流れを例示するシーケンス図である。It is a sequence diagram which illustrates the flow of the data reading process which concerns on 2nd Embodiment. 汎用コンピュータの構成例を示すブロック図である。And FIG. 11 is a block diagram illustrating a configuration example of a general-purpose computer.

符号の説明Explanation of symbols

30 情報処理装置(推薦サーバ)
130 応用アルゴリズム部
140 基本アルゴリズム部
150 データ操作部
160 データ保持部
170 データベース入出力部
30 Information processing device (recommended server)
DESCRIPTION OF SYMBOLS 130 Application algorithm part 140 Basic algorithm part 150 Data operation part 160 Data holding part 170 Database input / output part

Claims (15)

行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部と;
行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部と;
前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部と;
前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する応用アルゴリズム部と;
を備える情報処理装置。
It has profile data representing user attributes in at least one of the row direction and the column direction and metadata data items representing the characteristics of the content, and an identifier and content for identifying the user in at least one of the row direction and the column direction. A data holding unit for holding data in a matrix format data structure having data items of identifiers to be
A data operation unit that acquires an arbitrary submatrix from the data holding unit using a specifier that specifies a row or a column;
A basic algorithm unit that performs a typical calculation process on the profile data and the metadata included in the partial matrix acquired by the data operation unit;
An application algorithm unit that obtains a recommendation list in which contents recommended to the user are listed using the result of the routine calculation by the basic algorithm unit;
An information processing apparatus comprising:
前記指定子は、データに対応するノードとデータのカテゴリに対応するノードとにより構成される階層構造内の一の前記ノードを指定する階層的に表現された文字列である、請求項1に記載の情報処理装置。   2. The designator according to claim 1, wherein the specifier is a hierarchically expressed character string that designates one of the nodes in a hierarchical structure including nodes corresponding to data and nodes corresponding to a category of data. Information processing device. 前記基本アルゴリズム部は、前記定型的な計算の1つとして、指定されたユーザと他のユーザとの間の前記プロファイルデータの相関度を計算する、請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the basic algorithm unit calculates a degree of correlation of the profile data between a specified user and another user as one of the typical calculations. 前記基本アルゴリズム部は、前記定型的な計算の1つとして、指定されたユーザの前記プロファイルデータと任意のコンテンツの前記メタデータとの間の相関度を計算する、請求項1に記載の情報処理装置。   The information processing according to claim 1, wherein the basic algorithm unit calculates a correlation degree between the profile data of a specified user and the metadata of an arbitrary content as one of the routine calculations. apparatus. 前記基本アルゴリズム部は、前記定型的な計算の1つとして、指定されたユーザと他のユーザとの間の前記プロファイルデータの相関度、または指定されたユーザの前記プロファイルデータと任意のコンテンツの前記メタデータとの間の相関度に基づいて前記推薦リストを生成する、請求項1に記載の情報処理装置。   The basic algorithm unit, as one of the routine calculations, the degree of correlation of the profile data between the specified user and another user, or the profile data of the specified user and the arbitrary content The information processing apparatus according to claim 1, wherein the recommendation list is generated based on a degree of correlation with metadata. 前記基本アルゴリズム部は、前記定型的な計算の1つとして、指定されたコンテンツと他のコンテンツとの間の前記メタデータの相関度を計算する、請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the basic algorithm unit calculates a correlation degree of the metadata between the designated content and another content as one of the typical calculations. 前記基本アルゴリズム部は、指定されたコンテンツの前記メタデータと任意のユーザの前記プロファイルデータとの間の相関度を計算する、請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the basic algorithm unit calculates a degree of correlation between the metadata of the specified content and the profile data of an arbitrary user. 前記データ保持部は、前記行列形式のデータ構造内の1フィールドに複数のデータ値を有する、請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the data holding unit has a plurality of data values in one field in the matrix format data structure. 前記応用アルゴリズム部は、さらに、端末装置からユーザの行動履歴データを受信した場合に、前記行動履歴データに含まれる行動の対象となったコンテンツの前記メタデータに応じて前記行動を行ったユーザの前記プロファイルデータを更新する、請求項1に記載の情報処理装置。   When the application algorithm unit further receives the user's behavior history data from the terminal device, the application algorithm unit includes the user who performed the behavior according to the metadata of the content that is the target of the behavior included in the behavior history data. The information processing apparatus according to claim 1, wherein the profile data is updated. 前記情報処理装置は、さらに、前記データ保持部からの指示に基づいて前記データ保持部に保持されるデータの永続化をデータベースに要求するデータベース入出力部を備える、請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, further comprising: a database input / output unit that requests the database to persist the data held in the data holding unit based on an instruction from the data holding unit. apparatus. 前記データ保持部は、前記プロファイルデータのデータ項目及び前記メタデータのデータ項目のうち、前記情報処理装置に割当てられた範囲のデータを前記データベース入出力部を介してデータベースから取得する、請求項10に記載の情報処理装置。   The data holding unit acquires data in a range allocated to the information processing apparatus from a data item of the profile data and a data item of the metadata from the database via the database input / output unit. The information processing apparatus described in 1. 行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造により、前記プロファイルデータ及び前記メタデータを保持するステップと;
行または列を指定する指定子を用いて前記行列形式のデータ構造から任意の部分行列を取得するステップと;
前記行列形式のデータ構造から取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行するステップと;
前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得するステップと;
を含む、推薦方法。
It has profile data representing user attributes in at least one of the row direction and the column direction and metadata data items representing the characteristics of the content, and an identifier and content for identifying the user in at least one of the row direction and the column direction. Holding the profile data and the metadata in a matrix-type data structure having identifier data items to be identified;
Obtaining an arbitrary submatrix from the matrix-format data structure using a specifier specifying a row or column;
Performing a routine calculation process on the profile data and the metadata included in the submatrix acquired from the matrix data structure;
Obtaining a recommendation list in which contents recommended to the user are listed using the result of the routine calculation;
Including recommendation method.
情報処理装置を制御するコンピュータを:
行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部と;
行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部と;
前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部と;
前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する応用アルゴリズム部と;
として機能させるための、プログラム。
A computer that controls the information processing device:
It has profile data representing user attributes in at least one of the row direction and the column direction and metadata data items representing the characteristics of the content, and an identifier and content for identifying the user in at least one of the row direction and the column direction. A data holding unit for holding data in a matrix format data structure having data items of identifiers to be
A data operation unit that acquires an arbitrary submatrix from the data holding unit using a specifier that specifies a row or a column;
A basic algorithm unit that performs a typical calculation process on the profile data and the metadata included in the partial matrix acquired by the data operation unit;
An application algorithm unit that obtains a recommendation list in which contents recommended to the user are listed using the result of the routine calculation by the basic algorithm unit;
Program to function as
情報処理装置を制御するコンピュータを:
行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部と;
行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部と;
前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部と;
前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得する応用アルゴリズム部と;
として機能させるための、プログラムを記録したコンピュータにより読み取り可能な記録媒体。
A computer that controls the information processing device:
It has profile data representing user attributes in at least one of the row direction and the column direction and metadata data items representing the characteristics of the content, and an identifier and content for identifying the user in at least one of the row direction and the column direction. A data holding unit for holding data in a matrix format data structure having data items of identifiers to be
A data operation unit that acquires an arbitrary submatrix from the data holding unit using a specifier that specifies a row or a column;
A basic algorithm unit that performs a typical calculation process on the profile data and the metadata included in the partial matrix acquired by the data operation unit;
An application algorithm unit that obtains a recommendation list in which contents recommended to the user are listed using the result of the routine calculation by the basic algorithm unit;
A computer-readable recording medium on which a program is recorded so as to function as a computer.
情報処理装置へコンテンツの推薦を要求するユーザアプリケーション部;
を備える端末装置と:
行方向または列方向の少なくとも一方にユーザの属性を表すプロファイルデータ及びコンテンツの特徴を表すメタデータのデータ項目を有し、並びに行方向または列方向の少なくとも一方にユーザを識別する識別子及びコンテンツを識別する識別子のデータ項目を有する行列形式のデータ構造によりデータを保持するデータ保持部;
行または列を指定する指定子を用いて前記データ保持部から任意の部分行列を取得するデータ操作部;
前記データ操作部により取得された前記部分行列に含まれる前記プロファイルデータ及び前記メタデータについて定型的な計算処理を実行する基本アルゴリズム部;
及び前記基本アルゴリズム部による前記定型的な計算の結果を用いて、ユーザに推薦するコンテンツを一覧化した推薦リストを取得し、取得した前記推薦リストを前記端末装置へ送信する応用アルゴリズム部;
を備える情報処理装置と:
を含む情報処理システム。
A user application unit that requests the information processing device to recommend content;
A terminal device comprising:
It has profile data representing user attributes in at least one of the row direction and the column direction and metadata data items representing the characteristics of the content, and an identifier and content for identifying the user in at least one of the row direction and the column direction. A data holding unit for holding data in a matrix format data structure having data items of identifiers
A data operation unit for obtaining an arbitrary submatrix from the data holding unit using a specifier for designating a row or a column;
A basic algorithm unit that performs a typical calculation process on the profile data and the metadata included in the partial matrix acquired by the data operation unit;
And an application algorithm unit that acquires a recommendation list in which contents recommended to a user are listed using the result of the routine calculation performed by the basic algorithm unit, and transmits the acquired recommendation list to the terminal device;
An information processing apparatus comprising:
Information processing system including
JP2008141772A 2008-05-30 2008-05-30 Information processor, recommendation method, program and recording medium Ceased JP2009289092A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008141772A JP2009289092A (en) 2008-05-30 2008-05-30 Information processor, recommendation method, program and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008141772A JP2009289092A (en) 2008-05-30 2008-05-30 Information processor, recommendation method, program and recording medium

Publications (1)

Publication Number Publication Date
JP2009289092A true JP2009289092A (en) 2009-12-10

Family

ID=41458241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008141772A Ceased JP2009289092A (en) 2008-05-30 2008-05-30 Information processor, recommendation method, program and recording medium

Country Status (1)

Country Link
JP (1) JP2009289092A (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012123488A (en) * 2010-12-06 2012-06-28 Fujitsu Ten Ltd Content providing server and terminal device
JP2012150561A (en) * 2011-01-17 2012-08-09 Nippon Telegr & Teleph Corp <Ntt> Information recommendation device, method, and program
JP2012190125A (en) * 2011-03-09 2012-10-04 Kddi Corp Service information providing system using wireless tag
JP2012221315A (en) * 2011-04-11 2012-11-12 Nippon Telegr & Teleph Corp <Ntt> Information recommendation device, method and program
JP2014067181A (en) * 2012-09-25 2014-04-17 Nippon Telegr & Teleph Corp <Ntt> Information recommendation device, method, and program
JP2014523049A (en) * 2011-07-13 2014-09-08 アリババ・グループ・ホールディング・リミテッド Ranking and searching method and apparatus based on distance between individuals
KR20140142691A (en) * 2013-05-07 2014-12-12 컬처·컨비니언스·클럽 가부시키가이샤 Market survey and analysis system
KR20150000931A (en) * 2013-06-25 2015-01-06 에스케이플래닛 주식회사 Method for management application of terminal, apparatus and system thereof
KR101490660B1 (en) 2014-10-22 2015-02-05 토마토소프트 주식회사 Archiving device and method for controlling the same
JP2018181135A (en) * 2017-04-19 2018-11-15 サントリーホールディングス株式会社 Recommendation system, recommendation method, and recommendation program
JP2019503006A (en) * 2016-04-29 2019-01-31 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド Method and apparatus for obtaining user caricature
CN111815351A (en) * 2020-05-29 2020-10-23 杭州览众数据科技有限公司 Cooperative filtering and association rule-based clothing recommendation method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07306864A (en) * 1992-07-29 1995-11-21 Matsushita Electric Ind Co Ltd Electronic file device
JPH09153064A (en) * 1995-11-30 1997-06-10 Toshiba Corp Information filtering device
JPH11282875A (en) * 1998-03-27 1999-10-15 Oki Electric Ind Co Ltd Information filtering device
JP2005167628A (en) * 2003-12-02 2005-06-23 Sony Corp Information processing apparatus, information processing method, and computer program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07306864A (en) * 1992-07-29 1995-11-21 Matsushita Electric Ind Co Ltd Electronic file device
JPH09153064A (en) * 1995-11-30 1997-06-10 Toshiba Corp Information filtering device
JPH11282875A (en) * 1998-03-27 1999-10-15 Oki Electric Ind Co Ltd Information filtering device
JP2005167628A (en) * 2003-12-02 2005-06-23 Sony Corp Information processing apparatus, information processing method, and computer program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200100054012; 船越要 外1名: '精度指向のハイブリッド情報フィルタリングの提案' 電子情報通信学会技術研究報告 AI99-29〜40 人工知能と知識処理 第99巻 第226号, 19990723, 第77〜84頁, 社団法人電子情報通信学会 *
JPN6012063987; 船越要 外1名: '精度指向のハイブリッド情報フィルタリングの提案' 電子情報通信学会技術研究報告 AI99-29〜40 人工知能と知識処理 第99巻 第226号, 19990723, 第77〜84頁, 社団法人電子情報通信学会 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012123488A (en) * 2010-12-06 2012-06-28 Fujitsu Ten Ltd Content providing server and terminal device
JP2012150561A (en) * 2011-01-17 2012-08-09 Nippon Telegr & Teleph Corp <Ntt> Information recommendation device, method, and program
JP2012190125A (en) * 2011-03-09 2012-10-04 Kddi Corp Service information providing system using wireless tag
JP2012221315A (en) * 2011-04-11 2012-11-12 Nippon Telegr & Teleph Corp <Ntt> Information recommendation device, method and program
JP2014523049A (en) * 2011-07-13 2014-09-08 アリババ・グループ・ホールディング・リミテッド Ranking and searching method and apparatus based on distance between individuals
US9767492B2 (en) 2011-07-13 2017-09-19 Alibaba Group Holding Limited Ranking and searching method and apparatus based on interpersonal distances
JP2014067181A (en) * 2012-09-25 2014-04-17 Nippon Telegr & Teleph Corp <Ntt> Information recommendation device, method, and program
KR20140142691A (en) * 2013-05-07 2014-12-12 컬처·컨비니언스·클럽 가부시키가이샤 Market survey and analysis system
KR101660445B1 (en) 2013-05-07 2016-09-27 컬처·컨비니언스·클럽 가부시키가이샤 Market survey and analysis system
TWI619086B (en) * 2013-05-07 2018-03-21 Culture Convenience Club Co Ltd Market research and analysis system
KR102131753B1 (en) 2013-06-25 2020-07-08 에스케이플래닛 주식회사 Apparatus for management application of terminal
KR20150000931A (en) * 2013-06-25 2015-01-06 에스케이플래닛 주식회사 Method for management application of terminal, apparatus and system thereof
KR101490660B1 (en) 2014-10-22 2015-02-05 토마토소프트 주식회사 Archiving device and method for controlling the same
JP2019503006A (en) * 2016-04-29 2019-01-31 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド Method and apparatus for obtaining user caricature
JP2018181135A (en) * 2017-04-19 2018-11-15 サントリーホールディングス株式会社 Recommendation system, recommendation method, and recommendation program
CN111815351A (en) * 2020-05-29 2020-10-23 杭州览众数据科技有限公司 Cooperative filtering and association rule-based clothing recommendation method

Similar Documents

Publication Publication Date Title
JP2009289092A (en) Information processor, recommendation method, program and recording medium
JP5592505B2 (en) Data feed total that can be adjusted based on topic
CN101923557B (en) Data analysis system and method
TWI543009B (en) Search assistant system and method
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 (en) Learning device, learning method, information-processing device, data-selecting method, data-accumulating method, data-converting method, and program
JP2011123920A (en) System and method for personalizing aggregated news content
JP2008538842A (en) Media object metadata association and ranking
JP2007531097A (en) Prefetching the metadata database
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 (en) Search device
JP5784182B2 (en) Receiving device, query generation method, and program
JP2010182267A (en) Content classification apparatus, content classification method, and program
JP2004240887A (en) Search information display system, search keyword information display method, and search keyword information display program
CN113742573A (en) Multimedia resource searching method and device, computer equipment and storage medium
CN100397401C (en) A method for unified and parallel retrieval of multiple resource warehouses on a portal website
Madisetty et al. A reranking-based tweet retrieval approach for planned events
JP6696018B1 (en) Information processing apparatus, information processing method, and information processing program
JP2003091535A (en) Data management method, program and device

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