IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社JVCケンウッドの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-25
(45)【発行日】2023-05-08
(54)【発明の名称】情報処理装置及びプログラム
(51)【国際特許分類】
   G06Q 30/0601 20230101AFI20230426BHJP
   G10G 1/00 20060101ALI20230426BHJP
【FI】
G06Q30/0601 330
G10G1/00
【請求項の数】 10
(21)【出願番号】P 2019160444
(22)【出願日】2019-09-03
(65)【公開番号】P2021039541
(43)【公開日】2021-03-11
【審査請求日】2022-04-28
(73)【特許権者】
【識別番号】308036402
【氏名又は名称】株式会社JVCケンウッド
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】宍戸 一郎
【審査官】関 博文
(56)【参考文献】
【文献】特開2010-250528(JP,A)
【文献】特開2015-36856(JP,A)
【文献】国際公開第2017/094327(WO,A1)
【文献】特開2007-86835(JP,A)
【文献】米国特許出願公開第2019/0132646(US,A1)
【文献】奥 健太,楽曲推薦システム ープレイリスト,コンテキスト,インタラクションー,人工知能 第34巻 第3号,日本,(一社)人工知能学会 JSAI,2019年05月01日,第34巻, 第3号,pp.300-308
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G10G 1/00
(57)【特許請求の範囲】
【請求項1】
コンテンツ再生時に測定されたユーザの生体情報を、ユーザとコンテンツに対応させて記憶する記憶部と、
前記生体情報をもとに、コンテンツに対するユーザの反応の種類を示す反応カテゴリを1つ以上含むカテゴリデータを生成する生成部と、
前記カテゴリデータと、反応カテゴリ同士の関連度合いを示すカテゴリ関連データとに基づいて、ユーザ同士の類似性、又は、コンテンツ同士の類似性のいずれかを示す類似度を算出する算出部と、
前記類似度に基づいて、推薦情報を作成する作成部と、
を備える情報処理装置。
【請求項2】
前記生体情報は、2つ以上の方向に対するユーザの体の動きを示すデータを含み、
前記生成部は、前記データを2つ以上の方向に区別する所定の反応カテゴリを用いて、前記カテゴリデータを生成する、
請求項1に記載の情報処理装置。
【請求項3】
前記生成部は、コンテンツを時間軸において複数に分割した区間ごとに反応カテゴリを生成し、区間順に並べられた反応カテゴリを含む前記カテゴリデータを生成する、
請求項1又は2に記載の情報処理装置。
【請求項4】
前記コンテンツは楽曲であり、
前記生成部は、前記楽曲の拍又は小節の長さの所定数倍の長さで、前記コンテンツを時間軸において分割し、複数の区間を作成する、
請求項3に記載の情報処理装置。
【請求項5】
前記作成部は、
コンテンツの複数の区間それぞれについて、所定の反応カテゴリを示したユーザの数または反応数を算出し、算出した数に応じて推薦区間を特定し、前記推薦区間を含めた前記推薦情報を作成する、
請求項3又は4に記載の情報処理装置。
【請求項6】
前記コンテンツは楽曲であり、
前記生成部は、前記生体情報から解析された周波数成分のうち、前記楽曲の拍又は速さに基づく周波数成分と所定の関係にある周波数成分を優先的に抽出し、当該抽出した周波数成分に基づき前記カテゴリデータを生成する、
請求項1乃至5のいずれか1項に記載の情報処理装置。
【請求項7】
前記作成部は、
コンテンツに対して所定の反応カテゴリの反応を示したユーザ数、及び、コンテンツに対してユーザによって示された主要な反応カテゴリの少なくとも一方を含めて前記推薦情報を作成する、
請求項1乃至6のいずれか1項に記載の情報処理装置。
【請求項8】
前記記憶部は、コンテンツ非再生時において測定されたユーザの生体情報をさらに記憶し、
前記生成部は、コンテンツ再生時の生体情報から抽出された周波数成分のうち、コンテンツ非再生時の生体情報から抽出された周波数成分とは異なる周波数成分を優先的に抽出し、当該抽出した周波数成分に基づき前記カテゴリデータを生成する
請求項1乃至7のいずれか1項に記載の情報処理装置。
【請求項9】
前記作成部は、
前記類似度に基づいて複数の推薦候補コンテンツを選択し、
前記複数の推薦候補コンテンツの中から、ターゲットユーザとの間の前記類似度が相対的に高い他のユーザが所定の反応カテゴリを示したコンテンツ、ターゲットユーザが過去に示した反応カテゴリに合致するコンテンツ、又は、ターゲットユーザにより指定された反応カテゴリに合致するコンテンツを推薦コンテンツとして選択し、前記推薦コンテンツに関する情報をターゲットユーザに対する前記推薦情報に含める、
請求項1乃至8のいずれか1項に記載の情報処理装置。
【請求項10】
コンテンツ再生時に測定されたユーザの生体情報を、ユーザとコンテンツに対応させて記憶する処理と、
前記生体情報をもとに、コンテンツに対するユーザの反応の種類を示す反応カテゴリを1つ以上含むカテゴリデータを生成する処理と、
前記カテゴリデータと、反応カテゴリ同士の関連度合いを示すカテゴリ関連データとに基づいて、ユーザ同士の類似性、又は、コンテンツ同士の類似性のいずれかを示す類似度を算出する処理と、
前記類似度に基づいて、推薦情報を作成する処理と、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、コンテンツ再生中のユーザの生体情報(生体反応)を複数のユーザについて収集し、ターゲットユーザの生体反応と類似する生体反応を示したユーザを類似ユーザとして特定し、類似ユーザが高く評価したコンテンツをターゲットユーザに推薦する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2009-134669号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1では、血液中に含まれるヘモグロビンの量、血流量、汗の量又は脈拍などを生体情報として用いているが、これらは様々な要因で変動し易い物理量(波形データ)である。特許文献1では、このような波形データを直接比較してユーザ間の類似性を判定しているため、ユーザ間の類似性(類似度)を精度よく求めることができなかった。例えば、2人のユーザの波形データの形状や大きさが多少異なっている場合、十分な精度で類似性を判定することができなかった。このため、類似ユーザを精度よく特定することができず、その結果、コンテンツの推薦情報の精度が十分でない場合があった。
【0005】
本開示は、このような問題を解決するためになされたものであり、コンテンツ再生時のユーザの自然な(例えば、無意識な)反応をもとに、推薦情報を精度よく作成するための情報処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の一態様に係る情報処理装置は、
コンテンツ再生時に測定されたユーザの生体情報を、ユーザとコンテンツに対応させて記憶する記憶部と、
前記生体情報をもとに、コンテンツに対するユーザの反応の種類を示す反応カテゴリを1つ以上含むカテゴリデータを生成する生成部と、
前記カテゴリデータと、反応カテゴリ同士の関連度合いを示すカテゴリ関連データとに基づいて、ユーザ同士の類似性、又は、コンテンツ同士の類似性のいずれかを示す類似度を算出する算出部と、
前記類似度に基づいて、推薦情報を作成する作成部と、
を備える。
【0007】
本開示の一態様に係るプログラムは、
コンテンツ再生時に測定されたユーザの生体情報を、ユーザ及とコンテンツに対応させて記憶する処理と、
前記生体情報をもとに、コンテンツに対するユーザの反応の種類を示す反応カテゴリを1つ以上含むカテゴリデータを生成する処理と、
前記カテゴリデータと、反応カテゴリ同士の関連度合いを示すカテゴリ関連データとに基づいて、ユーザ同士の類似性、又は、コンテンツ同士の類似性のいずれかを示す類似度を算出する処理と、
前記類似度に基づいて、推薦情報を作成する処理と、
をコンピュータに実行させる。
【発明の効果】
【0008】
本開示によれば、コンテンツ再生時のユーザの自然な反応をもとに、推薦情報を精度よく作成するための情報処理装置及び推薦プログラムを提供することができる。
【図面の簡単な説明】
【0009】
図1】実施例1にかかるシステムの全体構成を示すブロック図である。
図2】実施例1にかかる端末装置の構成を示すブロック図である。
図3】実施例1にかかるヘッドホンを装着したユーザの頭部と座標系の例を示す図である。
図4】実施例1にかかる生体センサの出力情報の例を示す図である。
図5】実施例1にかかる推薦装置の構成を示すブロック図である。
図6】実施例1にかかる生体情報DBのデータ構成の例を示す図である。
図7】実施例1にかかる推薦情報作成処理の流れを示すフローチャートである。
図8】実施例1にかかる第1のカテゴリデータ生成処理の流れを示すフローチャートである。
図9】実施例1にかかる区間情報DBのデータ構成の例を示す図である。
図10】実施例1にかかるルールデータの例を示す図である。
図11】実施例1にかかるユーザ反応DBのデータ構成の例を示す図である。
図12】実施例1にかかる第2のカテゴリデータ生成処理の流れを示すフローチャートである。
図13】実施例1にかかるユーザ反応ベクトルの例を示す図である。
図14】実施例1にかかるカテゴリ関連データの例を示す図である。
図15】実施例1にかかるユーザによりカスタマイズされたルールデータの例を示す図である。
図16】実施例1にかかる推薦情報を表示する画面の例を示す図である。
図17】実施例1にかかるターゲットユーザがコンテンツ条件を指定した場合の推薦情報を表示する画面の例を示す図である。
図18】変形例1-1にかかる推薦コンテンツと共に非推薦コンテンツを表示する画面の例を示す図である。
図19】実施例2にかかる推薦情報作成処理の流れを示すフローチャートである。
図20】実施例2にかかるコンテンツベクトルの例を示す図である。
図21】実施例2にかかる推薦情報を表示する画面の例を示す図である。
図22】実施例3にかかる推薦情報を表示する画面の例を示す図である。
図23】実施例4にかかる推薦装置の構成を示すブロック図である。
図24】実施例4にかかる楽曲情報DBのデータ構成の例を示す図である。
図25】実施例5にかかる処理対象区間の周波数成分の例を示す図である。
図26】実施例5にかかるルールデータの例を示す図である。
図27】実施例6にかかる再生時と非再生時の周波数成分の例を示す図である。
図28】実施例7にかかるルールデータの例を示す図である。
【発明を実施するための形態】
【0010】
以下では、本開示の具体的な実施形態の各実施例について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【0011】
<実施例1>
本開示のシステム全体の構成図を図1に示す。推薦装置5、コンテンツ配信サーバ4、基地局装置31及び32がネットワーク80を介して接続されている。推薦装置5は情報処理装置とも呼ばれる。基地局装置31及び32は、例えば4G(Generation)、5G等の携帯電話網による無線通信を端末装置11等および他の装置に対して提供する。
【0012】
端末装置11~14は、例えば、スマートフォン、タブレット端末、スマートウォッチ、パソコン等である。図1の例では、ユーザu1が生体センサ21を装着して端末装置11を操作し、ユーザu2が生体センサ22を装着して端末装置12を操作し、ユーザu3が生体センサ23が内蔵されている端末装置13を操作し、ユーザu4が生体センサ24を装着して端末装置14を操作する場合を示す。また、端末装置11及び12並びに生体センサ22は、基地局装置31の配下で通信可能であり、生体センサ21は端末装置11と通信可能である場合を示す。また、端末装置13及び14は、基地局装置32の配下で通信可能であり、生体センサ24は端末装置14と通信可能である場合を示す。但し、当該システムはこれらの構成に限定されない。
【0013】
コンテンツ配信サーバ4は、ネットワーク80経由で、端末装置11等のそれぞれからの要求に対して、対応する複数のコンテンツのいずれかを提供する。端末装置11等はコンテンツ配信サーバ4から受信したコンテンツ、または端末装置11等に記憶されているコンテンツを再生する。端末装置11~14のユーザu1~u4のそれぞれは、再生されたコンテンツを鑑賞(視聴)する。本実施例1において、コンテンツは典型的には音楽(楽曲)であるが、映画、テレビ番組、ミュージックビデオ等の映像コンテンツであってもよい。
【0014】
図2は、端末装置11の機能構成を示す図である。尚、端末装置12及び14についても端末装置11と同等であり、端末装置13は端末装置11と一部の構成が異なるだけであるため、図示及び詳細な説明を省略する。
端末装置11は、第1通信部110と、第2通信部120と、制御部130と、記憶部140と、表示部150と、操作部160と、音声出力部170とを備えている。第1通信部110は、4G、5G等の携帯電話網又は無線LAN(Local Area Network)等に接続されており、コンテンツ配信サーバ4および推薦装置5と通信する。第2通信部120はブルートゥース(登録商標)等の近距離無線通信機能であり、生体センサ21やヘッドホン(不図示)との通信を行う。制御部130は、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等で構成されており、各部の制御をおこなう。表示部150は液晶、有機EL等のディスプレイである。表示部150はユーザu1が操作を行うために必要な情報を表示する他、コンテンツが映像である場合にはコンテンツを表示する。操作部160は、ユーザからの操作(入力)を受け付ける。なお、タッチパネルを用いて表示部150と操作部160を一体的に構成してもよい。音声出力部170はスピーカ等であり、コンテンツの音楽や音声を出力する。なお、音声出力先がヘッドホンやイヤホンに指定された場合には、音声出力部170からは音声を出力しない。記憶部140は、必要に応じて、生体センサ21により測定されたデータやコンテンツのデータを記憶する。また、記憶部140は、端末装置11を動作させるためのプログラムを記憶する。制御部130は、記憶部140からプログラムを読み出して実行する。
【0015】
図1の説明に戻る。生体センサ21~24は、コンテンツ再生中のユーザの姿勢、動き、変位、速度、加速度などを検出するデバイスである。その他に血流、脈拍、心拍数、呼吸、脳波などを検出する機能を備えていてもよい。例えば、生体センサ21は、加速度センサや角速度センサを内蔵したイヤホン、ヘッドホンである。あるいは、生体センサ21は、加速度センサや角速度センサを内蔵したスマートウォッチ、指輪型デバイス、メガネ型ディスプレイ、その他のウェアラブルデバイスであってもよい。生体センサ21等は、ユーザから生体情報を測定し、生体情報を出力する。
【0016】
なお、端末装置13は、生体センサ23(例えば加速度センサ)を内蔵している。このように端末装置が生体センサを内蔵してもよい。ユーザu3は端末装置13を手で持ったり、ポケット等に入れて人体に密着させた状態で使用する。この場合、生体センサ23は、端末装置13の一構成要素となり、生体センサ23により測定されたユーザu3の生体情報は、端末装置13内の第1通信部110により基地局装置32及びネットワーク80を介して推薦装置5へ送信される。生体センサ21及び24は、それぞれブルートゥース(登録商標)等のインタフェースを備えており、端末装置11及び14のそれぞれと通信可能である。例えば、生体センサ21で計測されたユーザの生体情報は、端末装置11、基地局装置31及びネットワーク80を経由して、推薦装置5に送信される。また、生体センサ22は、4G、5G等の通信機能を備えており、基地局装置31と直接通信できる。この場合には、生体センサ22は、端末装置11を介した通信が不要である。また、生体センサ22等がコンテンツ再生機能をもっている場合、例えば、4G、5G等の通信機能を備えたヘッドホンやメガネ型ディスプレイである場合は、端末装置を省略することもできる。すなわち、端末装置と生体センサは一体であっても、別体であってもよい。
【0017】
以下の説明では、特に断らない限り、生体センサとして、加速度センサ付きのヘッドホンを用いる。またヘッドホンは角速度センサ(ジャイロセンサ)を備えていてもよい。このヘッドホンは、ブルートゥース(登録商標)を介して端末装置と通信する。以下の説明では、ユーザu1が生体センサ21を装着し、端末装置11を操作してコンテンツの再生やリクエストを行う例を用いるが、他のユーザ、生体センサ及び端末装置の組み合わせであっても同様であることはもちろんである。また、推薦装置5がコンテンツを推薦する対象のユーザを「ターゲットユーザ」と呼ぶ。以下の例では、特に断らない限り、ユーザu1がターゲットユーザである。
【0018】
ユーザu1は、端末装置11を操作することにより、端末装置11は、コンテンツ配信サーバ4にリクエストを送り、所望のコンテンツをストリーミング再生する。ユーザu1はヘッドホンを装着してコンテンツを聴くが、コンテンツ再生中のユーザu1の人体の動きが生体情報データとして生体センサ21によって出力され、端末装置11は第2通信部120を介してそれを取得する。さらに端末装置11は、その生体情報データを第1通信部110を介して、推薦装置5に送信する。尚、生体情報データを、単に「生体情報」と呼ぶこともある。
【0019】
図3は、ヘッドホンを装着したユーザの頭部と、座標系を説明する図である。図3では、両耳を結ぶ方向をx軸、両耳を結ぶ中点から鼻先に向かう方向y軸、両耳を結ぶ中点から頭頂に向かう方向をz軸にしている。この座標系はあくまでも一例で、これに限定されるものではない。
【0020】
ヘッドホンには加速度センサが内蔵されており、3軸(x、y、z方向)の加速度を検出することができる。また、適切な前提条件を設定することにより、加速度と速度と変位とは、相互に変換可能である。これらは、ユーザu1の体の動きを示すデータであるといえる。本実施例1では、説明を簡潔にするため、各生体センサは、人体の所定の箇所(例えば、鼻先や頭頂)の変位に関するデータを出力するものとする。
【0021】
図4に生体センサ21の出力例を示す。横軸tは、ある楽曲(楽曲A)の先頭からの経過時間である。3つのグラフは、x、y、z方向の人体の変位を示している。以下の説明では、x軸の変位の振幅(絶対値)をAx、y軸の変位の振幅(絶対値)をAy(又はAy’)、z軸の変位の振幅(絶対値)をAzとする。図4に示す例では、楽曲Aの開始(t=0)からT1時間(例えば、30秒)が経過するまでの区間は、Axが最も大きく、次にAyが大きく、Azが最も小さい。また、出力変化の周期は、比較的長い。この出力信号から、ユーザは主にxy平面上でゆったりと頭部を動かしていることが分かる。このような頭部の動きは、いわゆる「横ノリ」と呼ばれる反応である。ここで、「ノリ」とは、ユーザが楽曲に合わせて体を周期的に動かす反応のことである。
【0022】
一方、楽曲の開始からT1が経過すると、Axが小さくなり、Ay’とAzが非常に大きくなる。また、出力変化の周期が短くなる。このため、ユーザは主にyz平面において、頭部を小刻みに速く激しく動かしていることが分かる。このような頭部の動きは、いわゆる「縦ノリ」と呼ばれる反応である。
【0023】
例えば、楽曲Aは、開始からT1までが、ゆったりしたイントロ部分(パート)であり、T1において曲の調子が急激に変わり、T1以降は速いテンポのノリの良い「Aメロ」部分(パート)であるとすると、図4に示すデータから、ユーザは概ね楽曲の各パートの特徴に合せて、体を動かしていたことが分かる。
【0024】
端末装置11は、ユーザID(ユーザ識別子)と、コンテンツ配信サーバ4から受信して再生したコンテンツの情報(コンテンツID、コンテンツ名、アーティスト名、制作者名など)と、センサ出力情報である生体情報とを関連付けて推薦装置5に対して送信する。あるいは、端末装置11が、ユーザIDと生体情報と生体情報を計測した日時とを推薦装置5に送信するとともに、コンテンツ配信サーバ4が、コンテンツID、配信先のユーザID、配信日時などの情報を推薦装置5に送信してもよい。この場合、推薦装置5は端末装置11から受信したデータと、コンテンツ配信サーバ4から受信データを照合することにより、誰がいつ何のコンテンツを視聴して、どんな反応をしたかを把握できる。なお、本実施例1では、ユーザを識別するユーザIDを用いて説明するが、端末装置を識別する端末IDを用いてもよい。例えば、スマートフォンのように基本的に1つの端末装置を1人のユーザが使用する環境では、端末IDを用いてもよい。つまり、ユーザIDと端末IDはともにコンテンツを利用する主体(利用主体)を識別するものであり、これらを総称して利用主体ID(利用主体識別子)と呼ぶ場合もある。なお、生体センサあるいは端末装置は、図4に示すようなセンサ出力(波形データ)をそのまま推薦装置5に出力してもよいし、ある程度の加工(信号処理)を行ってから出力してもよい。
【0025】
推薦装置5の構成を図5に示す。推薦装置5は、通信部510、処理部520、記憶部530とで構成されている。また、推薦装置5には、管理者が操作を行うための入力装置540(キーボード、マウス等)と、管理者に情報を提供するための表示装置550(液晶ディスプレイ等)が接続されている。通信部510は、推薦装置5の外部と通信を行うインタフェース回路である。処理部520は、推薦装置5の各構成を制御するプロセッサつまり制御装置である。処理部520は、後述するカテゴリ情報(カテゴリデータ)を生成する生成部521と、ユーザ間の類似度を算出する算出部522と、推薦情報を作成する作成部523とを含む。このため以下の説明では、生成部521、算出部522、作成部523のいずれかが処理を実行する場合に、まとめて「処理部520が実行する」と記述する場合もある。また「生成部」を「カテゴリ生成部」、「算出部」を「類似度算出部」、「作成部」を「推薦情報作成部」と呼ぶ場合もある。
【0026】
記憶部530は、生体情報DB531(センサ情報DB)、ユーザ反応DB532、区間情報DB533、カテゴリ関連データ534、ルールデータ535及びプログラム536を記憶する記憶装置である。そして、推薦装置5は、端末装置11等から受信したセンサ出力情報(生体情報)を複数のコンテンツそれぞれに対応させて記憶部530の生体情報DB531に記憶する。なお、本実施例において生体情報DB531が記憶する生体情報は、コンテンツ再生時におけるユーザの生体情報である。コンテンツ再生時の生体情報を「第1の生体情報」とも呼ぶ。
【0027】
生体情報DB531のデータ構成の一例を図6に示す。ユーザID、コンテンツID、再生開始日時、再生位置、上述した3軸方向の変位もしくは加速度であるx出力、y出力、z出力が関連付けて格納される。再生位置は、コンテンツの先頭からの経過時間であり、生体情報のサンプリング周期(本図に示す例では30ミリ秒)ごとに(x出力、y出力、z出力)記録される。図示のごとく、複数のユーザがそれぞれコンテンツを再生したときのセンサ出力が格納される。生体情報DB531に格納されたデータは、生体情報の波形データに相当する。
【0028】
3軸方向の変位(加速度)データ(x出力、y出力、z出力)は、それぞれ独立したデータであり、3つの生体情報、すなわち3種類の生体情報、であるといえる。本実施例では3方向の変位データをもとに推薦情報を作成する例を説明するが、2方向の変位データを用いてもよい。すなわち、複数種類(2種類以上)の生体情報をもとに、推薦情報を作成してもよい。また、1種類の生体情報(例えば、x出力のみ)をもとに推薦情報を作成してもよい。ただし、複数種類の生体情報を用いると、後述する反応カテゴリの種類を増やすことができるため、コンテンツに対するユーザの多様な反応をより精度よくカテゴリデータに反映することができる。生体情報DB531は、ユーザID、コンテンツID及び再生開始日時の3つのフィールドの組み合せがテーブルの主キーとなっている。つまり、ユーザID、コンテンツID及び再生開始日時を指定することで、1つのデータ(1つのデータ単位)を特定することができる。図6の例に示すように、あるユーザ(User1)があるコンテンツ(C1)を2回再生すると、2つのデータが記録される。
【0029】
図5に戻る。プログラム536は、本実施例1にかかる推薦情報作成処理(推薦方法)が実装されたコンピュータプログラムである。ここで、処理部520は、プログラム536をメモリ(不図示)に読み込ませ、プログラム536を実行する。これにより、処理部520は、生成部521、算出部522及び作成部523の機能を実現する。
【0030】
ユーザ反応DB532は、カテゴリデータの一例であり、ユーザ及びコンテンツの区間ごとの反応カテゴリを示す情報である。カテゴリデータは、1つ以上の反応カテゴリを含む。ここで、反応カテゴリとは、コンテンツに対するユーザの反応に関するカテゴリ(分類、種類、類型)である。実施例1にかかる反応カテゴリは、ユーザの反応の種類及び強度の組み合わせを含むが、これに限定されない。区間情報DB533は、コンテンツを時間軸において複数に分割した区間を定義した情報である。カテゴリ関連データ534は、反応カテゴリ同士の関連度合いを示す情報である。ルールデータ535は、生体情報から反応カテゴリを生成するためのルール(規則)を示す情報である。また、ユーザ反応DB532、区間情報DB533、カテゴリ関連データ534及びルールデータ535については、後述する。
【0031】
生成部521は、生体情報を複数の反応カテゴリのいずれかに対応させたカテゴリデータを生成する。すなわち、生成部521は、生体情報をもとに、反応カテゴリを1以上含むカテゴリデータを生成する。本実施例における生成部521は、2つ以上の方向に対する(関する)ユーザの体の動きを示す生体情報をもとに、データを2つ以上の方向に区別する所定の反応カテゴリを用いて、カテゴリデータを生成する。つまり、複数種類の生体情報をもとに、多様な反応カテゴリを用いて、カテゴリデータを生成する。特に、生成部521は、区間ごとに反応カテゴリを生成し、区間順に並べられた反応カテゴリを含むカテゴリデータを生成する。
【0032】
算出部522は、生成部521により生成されたカテゴリデータと、カテゴリ関連データ534とに基づいて、ユーザ同士の類似性を示す類似度を算出する。特に、算出部522は、反応カテゴリの種類が一致する場合に、一致しない場合と比べて類似度が高くなるように算出する。
【0033】
作成部523は、類似度に基づいて、推薦情報を作成する。本実施例にかかる作成部523は、複数のコンテンツの中から、類似度に基づいて推薦コンテンツを選択し、当該選択された推薦コンテンツに関する情報を含めて推薦情報を作成し、ターゲットユーザに対して推薦情報を提示する。例えば、作成部523は、複数のユーザの中から、ターゲットユーザとの類似度が相対的に高い他のユーザである「類似ユーザ」を特定し、当該類似ユーザが再生済みのコンテンツの中からターゲットユーザが未再生のコンテンツを推薦コンテンツとして選択する。
【0034】
または、作成部523は、複数のコンテンツの中から、類似度に基づいて複数の推薦候補コンテンツを選択してもよい。その場合、例えば、作成部523は、複数の推薦候補コンテンツの中から、ターゲットユーザが過去に示した反応カテゴリに合致する(同じ反応カテゴリを有する)コンテンツを推薦コンテンツとして選択する。また、作成部523は、複数の推薦候補コンテンツの中から、類似ユーザが所定の反応カテゴリを示したコンテンツを推薦コンテンツとして選択する。また、作成部523は、複数の推薦候補コンテンツの中から、ターゲットユーザにより指定されたカテゴリに合致するコンテンツを推薦コンテンツとして選択する。
【0035】
推薦装置5における推薦情報作成処理の流れを図7のフローチャートに示す。この処理は、所定のタイミングで実行される。具体的には、推薦装置5がこの処理を所定の周期(例えば、1時間毎など)でバッチ処理的に実行したり、端末装置のユーザが推薦情報をリクエストしたタイミングで実行する。
【0036】
まず、端末装置11から推薦装置5に対して任意のタイミングで推薦情報を要求するリクエスト(推薦リクエストあるいは推薦情報リクエストとも呼ぶ)が送信される。例えば、ユーザu1が端末装置11を操作してあるサイトにログインした場合や、ユーザu1が端末装置11を用いて推薦情報を表示するための操作を行った場合に、端末装置11は、推薦装置5に対して推薦リクエストを送信する。推薦リクエストには、端末装置を使用するユーザ(推薦情報を要求するユーザ)のユーザIDまたは端末IDが含まれる。なお、推薦情報を要求するユーザをターゲットユーザとも呼ぶ。ターゲットユーザが指定した場合には、推薦リクエストには、さらにターゲットユーザが所望するコンテンツの条件(コンテンツ条件、あるいはコンテンツ絞込条件とも呼ぶ)が含まれる。
【0037】
推薦リクエストを受信した推薦装置5は、バッチ処理等により既にターゲットユーザに対する推薦情報が作成済みであるか否かを判定する。具体的には、処理部520が記憶部530にターゲットユーザのユーザIDに関連付けられた推薦情報(推薦コンテンツのコンテンツID等)が存在するか否かを判定する。ターゲットユーザの推薦情報が存在する場合は、処理部520は記憶部530からそれを読み出し、通信部510を介して、端末装置11に推薦情報を送信する。ターゲットユーザの推薦情報が存在しない場合には、推薦装置5は、図7のフローチャートの処理を実行し、推薦情報を作成する。
【0038】
ステップS100において、生成部521(処理部520)は、記憶部530の生体情報DB531から処理対象の生体情報データを取得する。具体的には、生成部521は、生体情報DB531に格納されたデータの中から、未処理のデータを処理対象として取得する。なお、記憶部530の生体情報DB531は、端末装置11~14から受信(取得)したデータを記憶しており、生成部521は記憶部530からデータを取得するため、生成部521は端末装置11~14から生体情報データを取得するともいえる。
【0039】
ステップS110において、生成部521は、生体情報データをもとに、以下のいずれかの方法でカテゴリデータを生成する。生成部521は、生体情報データをカテゴリデータに変換するともいえる。生成部521は生成したカテゴリデータを記憶部530のユーザ反応DB532に格納する。
【0040】
(A1:第1のカテゴリデータ生成方法)
図8は、ステップS110における第1のカテゴリデータ生成方法の詳細を示すフローチャートである。図8は、ステップS100で処理対象となった生体情報データのうち、ある1つのデータ(ある1人のユーザがあるコンテンツを1回視聴した際のデータ)に関するカテゴリデータを作成する処理を示している。複数のデータが処理対象である場合には、これらの処理を繰り返し実行すればよい。
【0041】
ステップS200において、生成部521は、処理対象のコンテンツに関して区間が作成済みであるか否かを判定する。過去に処理対象になったコンテンツであれば既に区間が作成されており、区間情報DB533に登録されている。今まで処理対象になったことがない新規のコンテンツは、区間が作成されておらず、区間情報DB533に登録されていない。つまり、生成部521は、処理対象のコンテンツが記憶部530の区間情報DB533に登録されているか否かを判定する。区間が作成済みであれば(S200:Yes)、ステップS220に進み、区間が作成済みでなければ(S200:No)、ステップS210に進む。
【0042】
ステップS210において、生成部521は、処理対象のコンテンツの区間を作成する。区間とは、1つのコンテンツを時間方向に複数に分割したものである。例えば、200秒の長さのコンテンツを4秒ごとに区間に分割すると、50個の区間が作成される。生成部521は、作成した区間の情報を記憶部530の区間情報DB533に格納する。図9は、区間情報DB533のデータ構成の一例を示す図である。区間情報DB533は、コンテンツID、区間番号(区間ID)、開始点、終了点の各フィールドを含んでいる。開始点および終了点は、コンテンツの先頭からの経過時間であり、図9の例では秒単位である。例えば、コンテンツID「C1」の区間「2」は、コンテンツの先頭を基点として「4」秒後から「8」秒後までであることを示している。なお、秒単位よりもさらに細かい単位(ミリ秒単位等)を用いてもよい。本実施例では、説明を簡潔にするため、各区間の長さは同じであるものとするが、区間ごとに長さが異なっていてもよい。また、コンテンツごとに区間の長さが異なっていてもよい。区間の長さは、同じようなユーザ反応が継続すると想定される時間に設定することが望ましい。例えば、コンテンツがテンポ120の楽曲である場合、1拍の長さは0.5秒(500ミリ秒)に相当する。ユーザが楽曲を聴きながら体を動かす場合、一般的に4拍~8拍程度の時間は、同じパターンで体を動かすと想定されるため、この例では2秒~4秒間は、同じようなユーザ反応が継続すると想定される。もちろん、楽曲ごとにテンポは異なっているが、ユーザはある程度の回数同じ動作を繰り返す傾向が強いため、数秒間は同じ体の動きになる可能性が高い。このため、1つの区間の長さを数秒~10秒程度に設定すればよい。このようにユーザ反応がある程度持続すると想定される時間(区間長)は、元の生体情報のサンプリング時間(周期)に比べてかなり長い。このため、1つの区間はかなり多数の生体情報データ(サンプルデータ、波形データ)を含む。本実施例では、1つの区間に含まれる多数(すなわち複数)の生体情報データをもとに、後述する方法で反応カテゴリを生成する。図9に示す例では、コンテンツ「C1」は「M1」個の区間を有しており、コンテンツ「C2」は「M2」個の区間を有している。一般的には、コンテンツごとに区間の数は異なるが、全てのコンテンツで区間の数を同じにしてもよい。
【0043】
ステップS220において、生成部521は、未処理の区間を1つ選択し、処理対象の区間とする。通常は、区間番号の小さい順に1つずつ処理対象の区間を選択すればよい。
【0044】
ステップS230において、生成部521は、処理対象の区間の生体情報データをもとに、その区間のカテゴリ(反応カテゴリ)を生成する。具体的には、以下のいずれかの方法で反応カテゴリを作成する。
【0045】
(A11)ルールベースの方法
第1の方法は、予め設定したルール(規則)に基づいて反応カテゴリを作成する方法である。具体的には、推薦装置5の管理者等がルールを設定し、それを記憶部530のルールデータ535に記憶する。図10に第1の方法におけるルールデータ535の一例を示す。ルールデータ535は、カテゴリID、カテゴリ名称、生体情報の条件の各フィールドで構成されている。この第1の方法におけるルールデータ535を「ルールテーブル」と呼ぶ場合もある。
【0046】
図10において、カテゴリID「0」から「11」までの12種類の反応カテゴリが定義されている。本図の例に示す反応カテゴリは、「横ノリ」、「縦ノリ」、「回転ノリ」という3種類の大きなカテゴリ(大カテゴリ、最上位のカテゴリ)で構成されている。これらは、ユーザの体の動きの方向性が異なる反応であり、いわゆる「音楽に対するノリのタイプ」である。また、「横ノリ」、「縦ノリ」、「回転ノリ」それぞれについて、反応の強さに応じて、「弱」、「中」、「強」の3つのカテゴリが定義されている。例えば、「横ノリ」を大カテゴリあるいは大分類と呼ぶ場合、それに対応するカテゴリID「1」から「3」の反応カテゴリを中カテゴリ、中分類、サブカテゴリなどと呼ぶ場合もある。ここで「横ノリ」とは、体の横方向の動き(図3のx軸方向)が最も大きい反応である。ユーザがポップス、ロック、ジャズなどのジャンルの音楽を鑑賞したときに比較的よく表われる反応である。「縦ノリ」とは、体の縦方向(図3のz軸方向)または前後方向(図3のy軸方向)の動きが大きい反応である。体の横方向の動き(図3のx軸方向)が最も小さい反応であるともいえる。ユーザがパンクロック、ヘビーメタル、ハードコアなどのジャンルの音楽を鑑賞したときに比較的よく表われる反応である。「回転ノリ」とは、図3のxy平面において円弧を描くような動きを示す反応である。カテゴリID「0」の「無反応」は、体の動きが非常に小さい状態である。カテゴリID「10」の「ノリ強」は、方向性は特定できないが、体が激しく動いている反応を示すカテゴリである。カテゴリID「11」の「その他」は、上記のカテゴリのいずれにも該当しない反応を示すカテゴリである。
【0047】
尚、図10において、Axはx軸方向の変位の振幅であり、Ayはy軸方向の変位の振幅であり、Azはz軸方向の変位の振幅である。また、θ1~θ3は、所定のしきい値であり、θ1<θ2<θ3を満たす。また、Fyはy軸方向の振動の周波数であり、Fzはz軸方向の振動の周波数である。また、γは所定のしきい値である。また、φxはx軸方向の振動の位相であり、φyはy軸方向の振動の位相である。また「∩」はAND条件を示す。
【0048】
例えば、カテゴリID「0」の条件「Ax<θ1 ∩ Ay<θ1 ∩ Az<θ1」は、「Axがθ1未満、かつAyがθ1未満、かつAzがθ1未満」であることを示す。また、カテゴリID「1」の条件「θ1≦Ax<θ2 ∩ Ax>Ay ∩ Ay>Az」は、「Axがθ1以上かつθ2未満、かつAxがAyより大きく、AyがAzより大きい」ことを示す。つまり、「横ノリ」と判定するルールとして、Ax、Ay、Azの大小関係を用いている。
【0049】
また例えば、カテゴリID「4」の条件「θ1≦(Ay、Az)<θ2 ∩ Ax<Ay ∩ Ax<Az ∩(Fy、Fz)>γ」は、「AyおよびAzがθ1以上かつθ2未満、かつAxがAyより小さく、かつAxがAzより小さく、かつFyおよびFzがγより大きい」ことを示す。つまり、「縦ノリ」と判定するルールとして、Ax、Ay、Azの大小関係の他に、y軸方向およびz軸方向の振動の周波数がしきい値よりも高いことを用いている。
【0050】
また例えば、カテゴリID「7」の条件「θ1≦(Ax、Ay)<θ2 ∩ Ay>Az ∩ |φx-φy|≒π/2」は、「AxおよびAyがθ1以上かつθ2未満、かつAzがAyより小さく、かつx軸方向の振動の位相とy軸方向の振動の位相との差(絶対値)がπ/2(90度)に近い」ことを示す。例えば、位相差がπ/2(90度)を中心に所定の範囲(例えば、70度から110度の範囲)にあればよい。つまり、「回転ノリ」と判定するルールとして、Ax、Ay、Azの大小関係の他に、x軸方向の振動の位相とy軸方向の振動の位相との差を用いている。
【0051】
生成部521は、生体情報DB531と区間情報DB533を参照しながら、処理対象の区間内の(x出力、y出力、z出力)、すなわち複数(複数種類)の生体情報から、Ax、Ay、Az、Fy、Fz、φx、φyなどの特徴量を算出する。例えば、生成部521は、処理対象の区間においてx出力の最大値もしくは代表値(平均値、中央値など)を算出し、Axとする。また、生成部521は、フーリエ解析等の手法を用いて、y出力の周波数成分を抽出し、その中の基本周波数(最も強い周波数、または最も低いピーク周波数)をFyとする。また、生成部521は、x出力とy出力をそれぞれ正弦波で近似した場合の位相差を(φx-φy)とする。そして、生成部521は、算出した特徴量と、図10に示すルールデータ535の条件部とを上から順に照合し、合致する行のカテゴリIDを処理対象区間の反応カテゴリとする。なお、カテゴリIDの数(反応カテゴリの種類)は、図10に示す12個に限らず任意の数にしてよいが、数個~数十個程度にすることが望ましい。この程度の種類の反応カテゴリであれば、ユーザは比較的容易に覚える(記憶する)ことができる。このため、後述するように、ユーザがコンテンツ条件やユーザ条件を指定する際に、反応カテゴリを示す文字列(記号)を容易に指定(入力)することができる。また、数個~数十個程度の反応カテゴリがあれば、コンテンツに対するユーザの多様な反応をカテゴリデータに十分反映させて、ユーザ間の類所度を精度よく算出することができる。このように本実施例では、コンテンツ条件やユーザ条件を指定する際のユーザの操作性と、ユーザ間の類似度の精度とを両立できるように、適度な数(適度な種類)の反応カテゴリを用いている。
【0052】
また図10に示す例では、(x出力、y出力、z出力)といった3種類の生体情報に関する条件をルールデータ535に定義しているが、ルールデータ535で用いる生体情報の種類の数は任意であり、3種類よりも多くてもよいし、少なくてもよい。例えば、ルールデータ535に用いる生体情報をx出力のみ(1種類のみ)とし、x出力の振幅Axとx出力の基本周波数Fxに関する条件を用いて、反応カテゴリを生成することも可能である。この場合、「横ノリ」や「縦ノリ」といったユーザの体の動きの方向性を区別する反応カテゴリを生成することはできないが、「ノリ弱」、「ノリ中」、「ノリ強」といった反応の強さに応じた分類は可能である。また、「小刻みなノリ」、「ゆったりしたノリ」などユーザの体の動きの周期(周波数)を区別する反応カテゴリを生成することも可能である。生体情報の条件に用いる周波数としては、基本周波数に限らず、その他の比較的優勢な周波数成分(高調波の成分など)の情報を用いてもよい。また、同一区間で一定の動きパターンが持続している場合には「一定で持続的なノリ」とし、同一区間に様々な動きパターンが混在している場合には「変化の激しいノリ」とするなど、体の動きの持続性や規則性や間欠性や多様性などを区別する反応カテゴリを生成することも可能である。また、同一区間に限らず、近傍の区間(時間的に隣接する区間等)との比較を行って、体の動きの持続性を判定し、それに応じて反応カテゴリを生成してもよい。このように、1種類の生体情報からカテゴリデータを生成してもよい。
【0053】
(A12)機械学習を用いる方法
第2の方法は、機械学習を用いる方法である。第2の方法を用いる場合、カテゴリ判定を行う前に学習用の生体情報データ(学習用データ)を記憶部530に記憶しておき、事前に(ステップS110を実行する前の任意のタイミングで)、処理部520は、公知の機械学習の手法を用いて反応カテゴリを判定するパラメータ(分類器)を生成(学習)する。機械学習の手法としては、ニューラルネットワーク、深層学習、決定木、サポートベクターマシン、ベイズ分類器など種々の手法を用いることができる。例えば、区間長を4秒とし、30ミリ秒ごとに(x出力、y出力、z出力)を収集する場合、1つの区間に約133(4000÷30)個のサンプルデータ(波形データ)が含まれる。そして、1つのサンプルデータは3種類のデータを含むため、サンプルデータを直接分類器に入力する場合、分類器の入力(入力ベクトル)は、4000÷30×3=400次元となる。また、分類器の出力(出力ベクトル)は、図10のルールデータ535に示す反応カテゴリの数と同じ「12」になる。つまり、生成したい反応カテゴリの数だけ分類器の出力を用意し、入力データがその反応カテゴリに該当する確率を出力するように分類器を学習(トレーニング)すればよい。例えば、各反応カテゴリについて1万個ずつ、12種類の反応カテゴリで合計12万個のデータを学習用に用意し、各々のデータについて、正解の反応カテゴリ(教師データ)を付与した上で、分類器を学習する。分類器の学習が終了した後、処理部520は、学習済みの分類器(学習済みモデル(不図示))をルールデータ535に記憶する。具体的には、分類器のパラメータ(例えば、ニューラルネットワークのネットワーク構成や重み係数)などをルールデータ535に記憶する。そして、ステップS230において、生成部521は、ルールデータ535から学習済みの分類器を読み出して、処理対象の区間の生体情報をその分類器に入力する。そして、生成部521は、各反応カテゴリに対応する分類器の出力のうち、出力値が最も大きい反応カテゴリを処理対象区間の反応カテゴリと判定すればよい。あるいは、「その他(カテゴリID「11」)」を除く11個の反応カテゴリに対応する分類器の出力を用意して学習し、ステップS230において、11個の出力のうちの最大値が所定値未満である場合に、「その他」の反応カテゴリと判定してもよい。
【0054】
次にステップS240において、生成部521は、コンテンツの全区間の処理が終了したか否かを判定する。全区間の処理が終了した場合(S240:Yes)、ステップS250に進む。全区間の処理が終了していない場合(S240:No)、ステップS220に戻って処理を繰り返す。
【0055】
ステップS250において、生成部521は、区間番号と生成した反応カテゴリ(カテゴリID)とを対応させてユーザ反応DB532に格納する。例えば、あるコンテンツの区間数が「50」である場合、S240までの処理により、50個の反応カテゴリが生成され、区間順(時間順)に並んでいる(時系列に並んでいる)ため、(A1)第1のカテゴリデータ生成方法で生成されたデータは、カテゴリ時系列データとも呼ばれる。
【0056】
ユーザ反応DB532のデータ構成の一例を図11に示す。ユーザID、コンテンツID、再生開始日時、区間番号、反応カテゴリを関連付けて格納する。ユーザID、コンテンツID、再生開始日時については、図6の生体情報DB531と同様である。ユーザ反応DB532においても、生体情報DB531と同様に、ユーザID、コンテンツID及び再生開始日時の3つのフィールドの組み合せがテーブルの主キーとなる。上述したように、区間番号は、1つのコンテンツを複数の区間(時間軸上の区間)に分割した際の各区間を識別する番号である。区間番号が小さいほど、そのコンテンツの先頭からの経過時間が短い区間であることを示す。反応カテゴリとは、上述のカテゴリIDである。つまり、生体情報をもとに、コンテンツ再生時のユーザの反応を所定のカテゴリ(種類)のいずれかに対応させた情報である。図11の例に示すように、あるユーザ(User1)があるコンテンツ(C1)を2回再生している場合、2つのデータが記録される。同一ユーザであっても、コンテンツを再生するごとにユーザの反応は異なることが多いため、一般的には再生回ごとにカテゴリデータはある程度異なったものになる。
【0057】
ここで、(A1)第1のカテゴリデータ生成方法では、1つのコンテンツについて複数の区間が作成され、区間ごとにカテゴリデータが生成される。このため、ユーザの感性や嗜好を精度よくデータに落とし込む(表現する)ことができる。例えば、ユーザの反応がコンテンツの途中で大きく変化するような場合においても、その情報をデータに忠実に反映させることができる。
【0058】
(A2:第2のカテゴリデータ生成方法)
第2のカテゴリデータ生成方法では、1つのコンテンツについて1つの区間(代表区間)が作成され、その1つの区間についてカテゴリデータが生成される。第2の方法の処理を図12のフローチャートに示す。
【0059】
ステップS400において、生成部521は、1つのコンテンツについて1つの代表区間を以下のいずれかの方法で作成する。
(A21)コンテンツ全体を代表区間とする方法
第1の代表区間作成方法は、コンテンツ全体を代表区間とする方法である。つまり、3分間の長さのコンテンツであれば、代表区間の長さは3分間になる。この方法は、コンテンツ全体に渡って、ほぼ一定のユーザの反応が持続すると想定される場合に適する。
(A22)ユーザの反応が最も顕著な区間を代表区間とする方法
第2の代表区間作成方法は、コンテンツにおいてユーザの反応が最も顕著な(強い)部分を特定し、それを代表区間とする方法である。この場合、生成部521は、コンテンツの区間ごとに、同一区間内の複数の生体情報を総合した指標を算出し、当該指標に基づきコンテンツにおける複数の区間の中から代表区間を選出し、当該代表区間における生体情報に基づきカテゴリデータを生成する。具体的には、生成部521は、まず代表区間の長さを設定する。例えば、コンテンツ再生中にユーザの体の動きが持続されると想定される時間を代表区間の長さとすればよい。例えば、平均的な楽曲のテンポを120と想定し、ユーザは8拍~16拍程度の期間はほぼ同一パターンの反応を示すと想定すると、代表区間の長さを4秒~8秒間程度に設定すればよい。以下では、代表区間の長さ(代表区間長)を8秒間にした例を説明する。
【0060】
次に生成部521は、代表区間長をもつ区間でコンテンツを分割し、区間ごとにユーザの反応の大きさを示す指標Rを算出する。区間分割の方法としては、コンテンツの先頭から0秒~8秒を区間1、8秒~16秒を区間2、16秒~24秒を区間3とすればよい。あるいは、区間同士をオーバーラップさせて、0秒~8秒を区間1、4秒~12秒を区間2、8秒~16秒を区間3としてもよい。指標Rは、3軸方向の振幅Ax、Ay、Azをもとに、数式(1)または数式(2)に従って算出する。Ax、Ay、Azは、その区間の振幅の最大値であってもよいし、振幅の平均値であってもよい。数式(2)におけるmax関数は、引数のうちの最大値を返す関数である。

R=Ax+Ay+Az ・・・数式(1)

R=max(Ax,Ay,Az) ・・・数式(2)
【0061】
そして生成部521は、指標Rが最も大きい区間を代表区間として選出する。あるユーザがあるコンテンツを複数回再生した場合、再生回ごとに代表区間が変わる可能性がある。また、同じコンテンツに対して、ユーザごとに代表区間が異なる可能性もある。(A22)第2の代表区間作成方法は、ユーザがコンテンツの一部分に対して短時間反応するような場合に適している。一般的にユーザはコンテンツ全体に対して反応するとは限らず、むしろその一部分に対して反応することの方が多い(自然である)。第2の代表区間作成方法は、このようなユーザの自然な反応をカテゴリデータに精度よく反映できる。またこの方法は、ユーザがコンテンツのどの区間(位置)で反応したかを重視せずに、短時間であってもどのような反応をしたかを重視する考え方に基づく方法である。
【0062】
ステップS410において、生成部521は、ステップS230と同様な方法で、代表区間の反応カテゴリを生成する。具体的には、ステップS400で(A21)第1の代表区間作成方法を用いた場合には、(A11)ルールベースの方法を用いるとよい。この場合、代表区間(コンテンツ全体)における最大振幅または平均振幅を各軸ごとに算出し、それらを(Ax、Ay、Az)とし、図10に示したルールと比較すればよい。また、代表区間における最も優勢な周波数成分を(Fx、Fy、Fz)とすればよい。また、その周波数成分の正弦波で生体情報を近似した場合の各軸同士の位相差を算出して用いればよい。あるいは、ステップS400で(A21)第1の代表区間作成方法を用いた場合に、(Ax、Ay、Az)、(Fx、Fy、Fz)などの(x出力、y出力、z出力)を集約した値を用いて分類器を学習すれば、(A12)機械学習を用いる方法を適用することもできる。ステップS400で(A22)第2の代表区間作成方法を用いた場合には、(A11)ルールベースの方法と(A12)機械学習を用いる方法のどちらを用いてもよい。
【0063】
ステップS420において、生成部521は、ステップS410で生成した反応カテゴリをユーザ反応DB532に格納する。ユーザ反応DB532は図11と同様な形式で格納されるが、この場合、全てのコンテンツの区間数は「1」となる。(A2)第2のカテゴリデータ生成方法では、コンテンツの区間数が必ず「1」になるため、処理量が少なくて済み、記憶容量を節約することができる。以上が第2のカテゴリデータ生成方法の説明である。
【0064】
図7のフローチャートの説明に戻る。ステップS120において、生成部521は、ユーザ反応DB532、つまりカテゴリデータをもとに、ユーザごとにユーザ反応ベクトルを作成する。ユーザ反応ベクトルの一例を図13に示す。ユーザ反応DB532に格納された全コンテンツ数をNとすると、ユーザ反応ベクトルには、コンテンツ1~Nのデータが順に並べられる。各コンテンツのデータはさらに各区間に対する反応カテゴリで構成される。
【0065】
図13では、(A1)第1の方法でカテゴリデータが生成された例(カテゴリ時系列データ)を示している。コンテンツ1は「M1」個の区間で構成されており、区間1~M1における反応カテゴリが記録される。ただし、ユーザが再生していない区間、あるいは反応データを取得できなかった区間については、「無効」を示す「-1」あるいは「NULL」などの値を記録する。(A1)第1の方法で生成した場合、一般的にはコンテンツごとに区間の数は異なっており、例えば、コンテンツ2の区間数は「M2」、コンテンツ3の区間数は「M3」となっている。(A2)第2の方法で生成した場合、区間数は全て「1」になるため、「M1=1」、「M2=1」、「M3=1」となる。
【0066】
コンテンツ1~Nの各々の区間数の合計をQとする。上記の例では、Q=M1+M2+M3…+MNである。ユーザ反応ベクトルは、Q次元のベクトルになる。つまり、あるユーザのユーザ反応ベクトルは、V[j](j=1~Q)と表現される。生成部521は、ユーザ反応DB532に格納された各ユーザについて、このようなユーザ反応ベクトルを作成する。以下では、ユーザ反応DB532に格納されたユーザの数をPとする。生成部521は、P人分のユーザ反応ベクトルを作成するため、これらをまとめてユーザ反応行列A[i][j](i=1~P、j=1~Q)とも呼ぶ。
【0067】
上述したように、あるユーザが同じコンテンツを複数回再生した場合、再生した回数の分だけ複数のカテゴリデータが生成される。このような場合、以下のいずれかの方法でユーザ反応ベクトルを作成する。
【0068】
(B1)ユーザが最も強く反応したときのデータを用いる方法
第1の方法は、ユーザが最も強く反応したときのデータを1つ選出し、それをユーザ反応ベクトルにする方法である。(A2)第2のカテゴリデータ生成方法を用いた場合(区間が1つである場合)には、数式(1)または数式(2)による指標Rが最も大きいデータを採用してもよい。また、1回目の再生で「横ノリ強」、2回目の再生「縦ノリ強」、3回目の再生で「回転ノリ強」、4回目の再生「ノリ強」で示したような場合、つまりタイプの異なる反応カテゴリが混在している場合、タイプの異なる反応カテゴリに対して、所定のルールで優先順位をつけ、優先順位の最も高い反応カテゴリをユーザ反応ベクトルに採用すればよい。例えば、図10に示すルールデータ535において、反応の程度について「強>中>弱」という順位付けを行う。ここで「>」は、記号の左側の反応カテゴリの順位が右側の反応カテゴリの順位よりも高いことを示す。例えば、「横ノリ強」は「横ノリ中」や「縦ノリ中」よりも優先順位が高い。また、反応の程度が同じ反応カテゴリについては、「ノリ強>回転ノリ>縦ノリ>横ノリ」といった順位付けを行う。この結果、図10に示す12種類の反応カテゴリのカテゴリIDと、データが存在しないことを示す「NULL」とを合せて、「10>9>6>3>8>5>2>7>4>1>11>0>NULL」という優先順位付けがなされる。つまり、複数の再生回のデータから、優先順位が最も高い反応カテゴリを示した再生時のデータをユーザ反応ベクトルに採用する。(A1)第1のカテゴリデータ生成方法を用いた場合(複数の区間がある場合)、優先順位の高い反応カテゴリをより多く含むデータをユーザ反応ベクトルに採用する。例えば、上記の優先順位が高いほど大きな値(ポイント)を設定し、コンテンツの各区間の反応カテゴリに相当するポイントを合計し、ポイントの合計値が最も大きいデータをユーザ反応ベクトルに採用すればよい。
【0069】
(B2)区間ごとにデータを選ぶ方法
第2の方法は、複数の再生回のデータから区間ごとにデータを選ぶ方法である。(A1)第1のカテゴリデータ生成方法を用いた場合、例えば、「ユーザA」が「コンテンツA」を1回目に再生した際に区間1において「無反応:0」を示し、2回目に再生した際に区間1において「横ノリ弱:1」を示した場合、上記の反応カテゴリの優先順位を参照し、より優先順位の高い「横ノリ弱:1」をユーザ反応ベクトルにおける区間1の反応カテゴリとする。区間2以降についても同様な処理を行う。つまり、各区間について、ユーザの複数回の反応カテゴリの中から、最も優先順位の高い反応カテゴリを選出し、そのカテゴリをユーザ反応ベクトルに採用する。(A2)第2のカテゴリデータ生成方法を用いた場合は、(B1)ユーザが最も強く反応したときのデータを用いる方法と同じ結果になる。
【0070】
図7の説明に戻る。ステップS130において、算出部522は、ユーザ反応ベクトルをもとに、ユーザ間の類似度(ユーザ同士の類似性を示す類似度)を算出する。例えば、数式(3)または数式(4)に従って、任意の2人のユーザ(u、v)の類似度S[u][v](u=1~P,v=1~P,u≠v)を算出する。

【数1】

【数2】

ここでFは、2つのカテゴリ(反応カテゴリ)間の類似度を算出する所定の関数である。関数Fは、2つの反応カテゴリを引数(入力)とし、その2つの反応カテゴリの類似度を出力する関数である。例えば、少なくとも一方の入力(引数)が無効を示す「-1」である場合は「0」を返す。また、2つの入力が共に有効である場合、あらかじめ定義された反応カテゴリ間の類似度を返す。数式(4)のKは、2つのユーザ反応ベクトルの両方が有効な区間の数である。つまり、2人のユーザが共通に視聴し、反応カテゴリが生成された区間の数である。
【0071】
関数Fの一例を図14に示す。関数Fは、反応カテゴリ同士の関連性を示すため、関数Fを「カテゴリ関連データ」あるいは「カテゴリ関連性データ」と呼ぶ場合もある。記憶部530のカテゴリ関連データ534は、図14に示すようなテーブル形式で、関数Fの特性、すなわちカテゴリ同士の関連性の情報(定義)を記憶する。ここでは、2つの反応カテゴリ間の関連性(類似性)が高いほど、類似度の数値が大きくなっている。例えば、あるコンテンツのある区間において、2人のユーザが同じ反応カテゴリの反応を示した場合、その区間における類似度は「1」となっている。また、「横ノリ」、「縦ノリ」、「回転ノリ」といった大分類(タイプ)が同じであり、同一タイプ内で、反応の強さが異なる場合には、比較的類似度が高くなる。また、2人のユーザが大きく異なる反応を示した場合、類似度は小さな値となり、マイナスの値になる場合もある。また、タイプが異なり、かつ反応の強さが異なる場合には、類似度は大きなマイナス値となる。例えば、同じコンテンツを視聴して、あるユーザが「横ノリ弱」で反応し、別のユーザが「縦ノリ強」で反応した場合、この2人のユーザの感性やセンスは大きく異なるといえる。このため、「横ノリ弱」と「縦ノリ強」との類似度は、非常に似ていないことを示す「-0.9」となっている。このように、単にユーザがノリ(反応)を示したかではなく、どのような種類のノリをどの程度の強さで示したかを詳細に分類しているため、ユーザ間の類似度を精度よく算出することができる。なお、図14に示す例では、「無反応」同士および「その他」同士の類似度を「1」としているが、これらの類似度を「0.5」などの値にしてもよい。つまり、通常よりも低い値にしてもよい。その理由は、「無反応」および「その他」の反応カテゴリは、それ以外の反応カテゴリに比べて、ユーザの反応に関する情報量が少ない(あいまい性が大きい)ためである。つまり、2人のユーザが同じ「無反応」や「その他」の反応カテゴリを示していても、その2人のユーザの類似性は必ずしも高いとはいえないためである。
【0072】
また、関数Fの特性を個々のユーザが自由に設定できるようにしてもよい。例えば、推薦装置5から端末装置11に対して標準的な関数Fの情報を送信する。そして端末装置11の表示部150に関数Fの特性、つまり図14に示す表を表示する。なお、表形式に限らず3次元グラフ等を用いて表示してもよい。端末装置11のユーザu1は操作部160を操作して、関数Fの特性を適宜修正し、端末装置11の記憶部140に記憶する。端末装置11は適当なタイミングで記憶部140から、ユーザu1が指定した関数Fの情報を読み出し、ユーザIDと対応付けて推薦装置5に対して送信する。推薦装置5は、ユーザIDと関数Fとを対応付けて記憶部530のカテゴリ関連データ534に記憶する。すなわち、推薦装置5は、カテゴリ関連データ534を更新する。そしてターゲットユーザに対する推薦情報を作成する際に、ターゲットユーザが指定した関数Fを用いて、ユーザ間の類似度(ターゲットユーザと他のユーザとの間の類似度)を算出する。このような処理を行うと、ユーザ(ターゲットユーザ)の感性や好みをより正確に反映してユーザ間類似度を算出できるため、推薦情報の精度をより高くすることができる。
【0073】
ユーザによって指定された関数Fの一例を図15に示す。図14に示す標準的な関数Fと比べて、図15の領域ssの部分が異なっている。このユーザは、「回転ノリ」に強いこだわりを持っており、「回転ノリ」同士の類似度を標準よりも高く(大きな値に)設定している。例えば、「自分が回転ノリで反応することが多く、回転ノリを示す他のユーザとは相性が非常に良い」と考えてこのような設定を行っている。このため、このユーザと他のユーザがある区間で回転ノリを示した場合、その区間の類似度は非常に高くなる。図15に示すように、反応カテゴリ同士の類似度を「1」より大きな値に設定してもよい。
上述したように本実施例では、端末装置11の表示部150がカテゴリ関連データ(関数F)の情報を表示し、ターゲットユーザがそれを閲覧することができる。このため、ターゲットユーザは、推薦装置5が類似ユーザを決定した理由や、推薦情報を作成した理由をより容易に理解することができる。従って、ターゲットユーザが推薦情報に納得し、それを受容する可能性を高めることができる。また、ターゲットユーザはカテゴリ関連データを自分の好みにカスタマイズすることができる。推薦装置5は、カスタマイズされたカテゴリ関連データに基づいて推薦情報を作成するため、ターゲットユーザが推薦情報を受容する可能性をさらに高めることができる。つまり、ターゲットユーザが推薦情報に納得し、それに従って、推薦コンテンツを再生したり、購入する可能性を向上させることができる。
【0074】
図7の説明に戻る。ステップS140において、作成部523は、推薦情報を提供するユーザ(ターゲットユーザu1)に対して、所定の条件を満たすユーザを選出(特定)する。本実施例1では、所定の条件を満たすユーザとして、類似度Sの高いユーザを選出(特定)する。ここで選出した類似度が相対的に高いユーザを「類似ユーザ」と呼び、類似ユーザの集合を類似ユーザ集合あるいは類似グループと呼ぶ。具体的には、作成部523は、S[u1][v](v=1~P、v≠u1)が所定のしきい値α以上のユーザvを選択し、ターゲットユーザu1に対する類似ユーザとする。あるいは、S[u1][v]の高い順に所定数(例えば、100人)のユーザを選出し、類似ユーザにしてもよい。なお、最も類似度の高い1人のユーザを類似ユーザとして選択してもよい。つまり、類似ユーザは1人であっても複数人であってもよい。類似ユーザは、ターゲットユーザと共通するコンテンツを多く視聴し、かつ、同じコンテンツの同じ区間において、近しい反応(ノリ)を示す傾向の高いユーザであるといえる。従って、類似ユーザは、ターゲットユーザと感性や嗜好が近いユーザである可能性が高い。
【0075】
ステップS150において、作成部523は、類似ユーザをもとに推薦情報を作成する。主な推薦情報は、推薦するコンテンツに関する情報である。具体的にはまず、作成部523は、推薦候補コンテンツを抽出する。例えば、作成部523は、類似ユーザが既に視聴したコンテンツの中から、ターゲットユーザがまだ視聴していないコンテンツを推薦候補コンテンツとして抽出する。例えば、類似ユーザが100人いる場合、その100人のうちの少なくとも1人のユーザが視聴し、かつターゲットユーザが視聴していないコンテンツが抽出される。基本的には、推薦候補コンテンツは、ターゲットユーザが未視聴のコンテンツに限定するが、必ずしも限定しなくてもよい。つまり、ターゲットユーザが視聴したコンテンツを推薦候補コンテンツに含めてもよい。また、ターゲットユーザの視聴回数が所定回数以下のコンテンツを推薦候補コンテンツに含めてもよい。また、推薦候補コンテンツをターゲットユーザがその存在を知らないと推測できるコンテンツのみに限定してもよい。また、ユーザがコンテンツに対して「好き」、「嫌い」等の評価を行うシステム(サービス)では、類似ユーザが高く評価(「非常に好き」、「好き」などの評価)したコンテンツを推薦候補コンテンツとして抽出してもよい。次に、作成部523は、推薦候補コンテンツから推薦コンテンツを選出する。ターゲットユーザがコンテンツ条件として何を指定したかに応じて、以下のいずれかの処理を行う。
【0076】
(C1)ターゲットユーザがコンテンツ条件として何も指定していない場合は、推薦候補コンテンツを推薦コンテンツとする。また、推薦候補コンテンツの数が所定数より多い場合、さらに、その中から類似ユーザがより強く反応したコンテンツを選択する。例えば、類似ユーザのユーザ反応ベクトルにおいて、コンテンツごとに所定の反応カテゴリに該当する区間の数をカウントし、カウント数の多い順にコンテンツを所定数だけ選択する。例えば、図10に示す反応カテゴリのうち、所定の反応カテゴリとして、「横ノリ強」、「縦ノリ強」、「回転ノリ強」、「ノリ強」などの「強い反応」に対応する反応カテゴリを用いる。ここで選択したコンテンツが推薦コンテンツとなる。ターゲットユーザと感性や嗜好が近いユーザが強く反応したコンテンツは、ターゲットユーザも強く反応する可能性が高いといえる。つまり、ターゲットユーザが気に入る可能性が高いコンテンツであるといえる。
【0077】
また、作成部523は、推薦候補コンテンツの数が所定数より多い場合、さらに、その中からターゲットユーザが過去に示した反応カテゴリに合致するコンテンツを推薦コンテンツとして選択してもよい。具体的には、作成部523は、まずターゲットユーザのユーザ反応ベクトルを対象にして、反応カテゴリごとに区関数あるいはコンテンツ数を集計する。そして、作成部523は、集計した数の多い順に所定数(例えば3つ)の反応カテゴリを特定する。つまり、作成部523は、ターゲットユーザが過去に比較的多く示した反応カテゴリを特定する。次に、作成部523は、ユーザ反応DB532またはユーザ反応行列を参照し、推薦候補コンテンツの中から、特定した反応カテゴリに合致する区間を有するコンテンツを推薦コンテンツとして選択する。なおここで、ユーザ反応DB532に格納されたユーザIDが類似ユーザに一致するデータを対象に処理を行ってもよいし、類似ユーザに限定せずにターゲット以外の全ユーザのデータを対象に処理を行ってもよい。条件に合うコンテンツが多い場合には、作成部523は、特定した反応カテゴリに合致する区間の数が多い順に所定数のコンテンツを選択する。
【0078】
(C2)ターゲットユーザがコンテンツ条件として、反応カテゴリに関する条件を指定した場合、推薦候補コンテンツの中から、コンテンツ条件に合致するコンテンツを選択(選出)し、推薦コンテンツとする。ターゲットユーザは、コンテンツ条件として、例えば反応カテゴリに関する条件を指定する。
作成部523は、ユーザ反応DB532またはユーザ反応行列を参照し、推薦候補コンテンツを対象にして、指定された反応カテゴリ(指定カテゴリ)に合致する区間の数を算出する。そして、合致する区間の数が多い順に所定数のコンテンツを選出し、推薦コンテンツとする。例えば、ターゲットユーザが「縦ノリ強」または「縦ノリ中」の反応が多いコンテンツを推薦コンテンツとして所望した場合、コンテンツ条件として「縦ノリ強 OR 縦ノリ中」といった条件を指定する。作成部523は、推薦候補コンテンツのカテゴリデータを対象にして、各コンテンツごとに「縦ノリ強」または「縦ノリ中」である区間の数を算出する。そして、算出した区間数が多い順に、所定数(例えば、30個)のコンテンツを選択する。
【0079】
作成部523は、ターゲットユーザのユーザIDと、推薦コンテンツのコンテンツIDとを関連付けて記憶部530に記憶する。このデータは、別のタイミングでユーザが推薦情報をリクエストした場合に、推薦情報の作成が必要か否かを判定するために使われる。なお、推薦情報を作成した日時を記憶してもよい。そして、推薦リクエストを受信した日時と、推薦情報を作成した日時との時間差が所定値以上である場合に、推薦情報を再作成(更新)してもよい。
【0080】
また、作成部523は、選択された推薦コンテンツに加えて以下の情報を推薦情報に含めて作成してもよい。そのために、作成部523は、推薦コンテンツを選択する際に、ユーザが強く反応した箇所(区間)を特定し、その情報(区間番号など)を記憶部530に記憶する。ここで対象とするユーザは、類似ユーザに限定しても、類似ユーザ以外のユーザを含めてもよい(例えば全ユーザにしてもよい)。例えば、推薦コンテンツの全ての区間の中から、類似ユーザもしくは全ユーザの反応が多い順に所定数(例えば1つ)の区間を特定し、その区間番号を記憶部530に記憶する。あるいは、所定の反応カテゴリ(例えば、「横ノリ強」と「横ノリ中」と「回転ノリ強」と「回転ノリ中」)に限定し、所定の反応カテゴリを示したユーザ数や反応数が多い順に所定数の区間を特定してもよい。この特定した区間は、端末装置においてコンテンツをダイジェスト再生するために使用される。なお、ターゲットユーザの反応カテゴリに応じて、特定する区間を変えてもよい。例えば、ターゲットユーザが他のユーザに比べて相対的に「横ノリ強」の反応を示す頻度が高い場合、推薦コンテンツにおいて、ユーザの「横ノリ強」の反応が多い順に区間を特定してもよい。ここで特定した区間を「推薦区間」と呼ぶ場合もある。つまり、作成部523は、ユーザ反応DB532またはユーザ反応行列を参照し、コンテンツの各区間それぞれについて、所定の反応カテゴリを示したユーザの数または反応数を算出し、その数に応じて推薦区間を特定し、推薦区間を含めた推薦情報を作成してもよい。さらに、この推薦区間を用いて、端末装置11の表示部150に推薦コンテンツを推薦区間から再生させるための再生指示の受付欄(GUI部品などの操作手段)を表示させる推薦情報を作成してもよい。
【0081】
また、作成部523は、ユーザ反応DB532またはユーザ反応行列を参照し、推薦コンテンツごとに、所定の反応カテゴリの反応を示したユーザの数を算出する。例えば、コンテンツAに対して、類似ユーザもしくは全ユーザを対象にして、「横ノリ強」、「縦ノリ強」、「回転ノリ強」、「ノリ強」のいずれかを示したユーザの数を算出する。つまり、コンテンツAに対して、強いノリの反応を示したユーザの数を算出する。あるいは、ターゲットユーザが「横ノリ弱」の反応を示す頻度が高い場合、コンテンツAに対して、「横ノリ弱」の反応を示したユーザの数を算出してもよい。つまり、ターゲットユーザが比較的高い頻度で示す反応カテゴリと同じ反応を示したユーザの数を算出してもよい。
【0082】
また作成部523は、推薦コンテンツごとに、主な反応カテゴリを算出(集計)する。例えば、コンテンツAについて、反応カテゴリごとに反応数やユーザ数を集計し、集計数が多い順に所定数(例えば上位3個)の反応カテゴリを選択し、主な反応カテゴリ(主要反応カテゴリ)とする。主要反応カテゴリとは、推薦コンテンツに対してより多くのユーザによって反応が示された反応カテゴリといえる。また、反応数やユーザ数が所定数以上の反応カテゴリを対象として、集計数が多い順に所定数の反応カテゴリを選択し、主要反応カテゴリとしてもよい。この場合、反応数やユーザ数が少ないコンテンツでは、主要反応カテゴリが「該当なし」となる場合もある。また、上述の所定の反応カテゴリを示したユーザ数として、主要反応カテゴリを示したユーザの数を算出してもよい。例えば、主要反応カテゴリが「横ノリ弱」である場合、「横ノリ弱」を示したユーザの数を算出する。
【0083】
このように、作成部523は、推薦コンテンツ情報と、推薦区間の情報と、所定の反応カテゴリを示したユーザ数の情報と、主要反応カテゴリの情報とを推薦情報として作成する。ただし、推薦コンテンツ情報以外の情報の作成を省略してもよい。
【0084】
ステップS160において、処理部520は、通信部510を制御して、ステップS150で作成した推薦情報をターゲットユーザu1の使用する端末装置11に送信(出力)する。例えば、処理部520は、推薦情報に含まれる推薦コンテンツ情報としてコンテンツの名称、アーティスト名、ジャンル、制作年、視聴のリンク先、などの情報(コンテンツのメタデータ)を端末装置に送信する。この際に、推薦装置5は、コンテンツIDをキーにしてコンテンツ配信サーバ4からメタデータを取得し、それを端末装置11に送信してもよい。あるいは、メタデータを推薦装置5の記憶部530に記憶しておいてもよい。また、推薦装置5がコンテンツ配信サーバ4に対して、推薦コンテンツのコンテンツIDとターゲットの端末装置11を利用するユーザu1のユーザIDを通知し、それを受信したコンテンツ配信サーバ4が、ターゲットの端末装置11に対して、推薦コンテンツのメタデータを送信してもよい。
【0085】
また、処理部520は、ステップS150で特定した推薦コンテンツの推薦区間に関する情報、所定の反応カテゴリを示したユーザ数に関する情報、および主要反応カテゴリに関する情報などを端末装置11に送信する。推薦装置5は、ステップS160を実行した後、推薦情報作成処理を終了する。
【0086】
端末装置11は、推薦装置5から推薦情報を受信すると、それを表示部150に表示する。図16に推薦情報を表示する画面61の一例を示す。この画面61は、ターゲットユーザu1が(C1)コンテンツ条件を指定しない場合の推薦情報の表示例である。図16に示すように、ターゲットユーザu1(表示例では「ユーザA」)に対して、推薦コンテンツのコンテンツ名、アーティスト名、ジャンル、制作年等の推薦コンテンツ情報611が表示される。さらに、上述した所定の反応カテゴリを示したユーザの数612、および主要反応カテゴリ613が表示される。ターゲットユーザu1はこのような情報を見て、推薦コンテンツの性質(特徴)を推定することができる。ターゲットユーザu1は、ジャンルや制作年などの情報から、コンテンツの性質をある程度は推定することができるが、これらは大まかな情報であり、コンテンツの詳細な性質を推定することが難しい。例えば、コンテンツが楽曲である場合、楽曲のジャンルが「ロック」であるという情報が得られても、「ロック」というジャンルは、かなり多様な音楽性の楽曲を含むため、ユーザがその楽曲の性質を予想することは難しい。また、ジャンルなどの情報は、コンテンツの提供者(事業者)が付与するものであり、既にコンテンツに付与されている情報が再利用されることも多く、コンテンツの実態を表していない場合も多い。一方、所定の反応カテゴリを示したユーザ数612の情報と、主要反応カテゴリ613の情報は、コンテンツを実際に視聴したユーザ(消費者)のリアルな反応をコンパクトにまとめた(集約した)情報であるため、ユーザ視点でのコンテンツの実態をより正確に表しているといえる。このためターゲットユーザu1は、推薦コンテンツの性質をより詳細かつ容易に把握(判定)することができる。
【0087】
図16に示す画面では、さらにコンテンツを再生するための2種類のボタンが表示されている。「先頭から再生」ボタン615は、通常の再生ボタンであり、コンテンツの先頭から再生される。一方、「推薦区間から再生」ボタン614は、上述した推薦区間からコンテンツを再生するためのボタンである。ターゲットユーザu1が「推薦区間から再生」ボタン614を押すと、推薦区間の情報が端末装置11からコンテンツ配信サーバ4に送信され、その区間からコンテンツがストリーミング再生される。ここで、ボタン614は、推薦区間から再生させるための再生指示の受付欄(GUI部品などの操作手段)の一例である。その区間は、そのコンテンツの特徴が良くあらわれている箇所であり、ターゲットユーザu1が気に入る可能性が高い箇所である。このような箇所を再生することにより、ターゲットユーザu1はそのコンテンツの良し悪し、つまりコンテンツが自分の好みに合うか否かを短時間で効率的に判断することができる。
【0088】
ターゲットユーザu1が、(C2)コンテンツ条件を指定した場合の推薦情報の表示画面62の一例を図17に示す。画面62の上部には、ターゲットユーザu1(図17の表示例では、「ユーザA」)が所望のコンテンツ条件を指定するためのGUI(Graphical User Interface)であるテキストフィールド621と、コンテンツ条件を送信(更新)するためのボタン622が表示されている。図17の例では、ユーザAが「横ノリ強 OR 横ノリ中 OR 回転ノリ中」という反応カテゴリに関するコンテンツ条件を指定し、送信ボタン622を押した後の状態を示している。ターゲットユーザu1がユーザ条件送信ボタン622を押すと、端末装置11から推薦装置5に推薦リクエストが送信され、その応答として、推薦装置5から端末装置11に推薦情報が送信される。この場合、推薦コンテンツは、コンテンツ条件に合致するコンテンツに限定される。図17に示す例では、「横ノリ強」、「横ノリ中」、「回転ノリ中」のうちの少なくとも1つが主要反応カテゴリに含まれるコンテンツに限定されている。画面中の他の要素については、図16で説明したものと同じである。
【0089】
本実施例によれば、ユーザ同士の生体情報(波形データ)を直接比較して類似ユーザを特定するのではなく、生体情報をもとにカテゴリデータ(反応カテゴリ)を生成し、カテゴリデータとカテゴリ関連データとをもとにユーザ間の類似度を算出するため、類似ユーザを精度よく特定することができる。従来技術においては、例えば、2人のユーザが実質的に同じ反応を示していても、波形データの形状や大きさが多少異なっていると、ユーザ間の類似性が実際よりも低く判定される場合があった。このため、類似ユーザを精度よく特定できない場合があった。つまり、波形データの細かな違いは、コンテンツに対するユーザの感性や嗜好とはほとんど関係ないにも関わらず、従来技術では必要以上に大きな違いとして判定する場合があった。一方、本実施例では、波形データを所定の反応カテゴリのいずれかに対応させるため、2人の波形データの形状や大きさが多少異なっていてもその影響を受け難い。このため、類似ユーザを精度よく特定することができる。このため、推薦情報を精度よく作成することができる。また本実施例によれば、複数種類の生体情報をもとに、多様な反応カテゴリを生成するため、コンテンツに対するユーザの多様な反応を精度よくカテゴリデータに反映することができる。このため、類似ユーザを精度よく特定することができ、推薦情報を精度よく作成することができる。また本実施例によれば、コンテンツを時間軸において複数に分割した区間ごとに反応カテゴリを生成するため、ユーザがコンテンツのどこでどのような反応をしたかを反映させてユーザ間の類似度を精度よく算出できる。このため、類似ユーザを精度よく特定し、推薦情報を精度よく作成することができる。特に、本実施例では区間の長さを、同じようなユーザの反応がある程度持続すると想定され、かつ波形データのサンプリング周期よりも長い時間に設定する。このため、2人のユーザが実質的に同じ反応を示していて、反応のタイミングが多少異なる場合であっても、その影響を受けずにユーザ間の類似度を精度よく算出できる。
【0090】
また本実施例によれば、元の生体情報のデータ量に比べてカテゴリデータのデータ量を少なくすることができるため、ユーザ間の類似度を少ない計算量で効率よく計算することができる。特に、類似度計算の対象となるユーザの数が多い場合には、非常に効率よく計算することができる。そのため、ユーザの感性や嗜好に適合するコンテンツを精度よく、かつ効率的に推薦できる。また本実施例によれば、カテゴリ関連データの情報をユーザに提示することができるため、ユーザは推薦情報や類似ユーザに関する情報が作成された理由を容易に理解できる。これにより、ユーザが推薦情報を受容する可能性を高めることができる。また本実施例によれば、ユーザがカテゴリ関連データを変更(調整)できるため、ユーザは自分の感性や好みをユーザ間の類似度計算に容易に反映することができる。
【0091】
また本実施例によれば、生体情報をもとに反応カテゴリを生成するため、ユーザは反応カテゴリを用いてコンテンツ条件を容易に指定することができる。例えば、生体情報(波形データ)の特徴をユーザが指定することは難しいが、反応カテゴリはカテゴリ化(類型化)されているため、文字列(記号)を使って、コンテンツに対するユーザの反応を容易に指定することができる。特に、適度な数(適度な種類)の反応カテゴリを生成するため、ユーザはコンテンツ条件を容易に指定することができる。そのため、ユーザは従来不可能であった観点で所望のコンテンツを指定することができる。また本実施例によれば、他のユーザが特徴的な反応を示したコンテンツの区間(推薦区間)を特定し、その区間をユーザに再生させることができるため、ユーザはコンテンツの特徴を短時間で容易に把握することができる。また本実施例によれば、コンテンツに対して所定の反応を示したユーザの人数や多くのユーザによって示された主要な反応カテゴリに関する情報を推薦情報に含めるため、ユーザはコンテンツ提供者により付与された情報(画一的な情報)だけでなく、他のユーザのリアルな反応に基づくコンテンツのリアルな特徴を容易に把握することができる。また本実施例によれば、ユーザは推薦情報を得るために特別な操作をする必要がなく、普通に(自然に)コンテンツを視聴すればよいので、ユーザの負担が少ない。
【0092】
<実施例1の変形例1-1>
実施例1では、ターゲットユーザに対応する類似ユーザを特定し、類似ユーザが視聴したコンテンツをもとにターゲットユーザに提供する情報を作成した。実施例1の変形例1-1では、ターゲットユーザに対応する非類似ユーザを特定し、非類似ユーザが視聴したコンテンツをもとにターゲットユーザに提供する情報を作成する。ここで非類似ユーザとは、ターゲットユーザとの類似度が相対的に低いユーザのことである。つまり、本変形例1-1における作成部523は、複数のユーザの中から、ターゲットユーザにおけるユーザ同士の類似性を示す類似度がより低い非類似ユーザをさらに特定する。そして、作成部523は、当該非類似ユーザが多く視聴したコンテンツを非推薦情報としてさらに作成する。その後、作成部523は、推薦情報と非推薦情報とを併せて、ターゲットユーザに対して提示する。以下では実施例1との差異を説明する。
【0093】
本変形例1-1における推薦装置5の処理は、図7に示す実施例1の処理と一部が異なる。S100~S130までは実施例1と同じである。ステップS140に対応するステップS140A(図示せず)において、作成部523は、所定条件として、「類似度が高い」という条件の他に、「類似度が低い」という条件を用いる。つまり、類似度の高い類似ユーザを選出(特定)する他に、類似度の低い「非類似ユーザ」を選出(特定)する。具体的には、処理部520は、ターゲットユーザu1に対して、類似度S[u1][v](v=1~P、v≠u1)が所定のしきい値β未満のユーザvを選出し非類似ユーザとする。しきい値βは、通常は上述のしきい値αよりも低い値(小さな値)であるが、しきい値αとしきい値βを同じ値にしてもよい。あるいは、S[u1][v]の低い順に所定数(例えば、50人)のユーザを選出し、非類似ユーザにしてもよい。なお、最も類似度の低い1人のユーザを非類似ユーザとして選択してもよい。つまり、非類似ユーザは1人であっても複数人であってもよい。
【0094】
ステップS150に対応するステップS150A(図示せず)において、作成部523は、S150で説明した推薦情報の他に、非類似ユーザに基づいて、ターゲットユーザu1の嗜好に合わないと予想されるコンテンツ(非推薦コンテンツとも呼ぶ)を選択する。例えば、ターゲットユーザu1が視聴しておらず、かつ非類似ユーザが多く視聴したコンテンツを非推薦コンテンツとして選択する。そして、非推薦コンテンツに関する情報も含めてターゲットユーザu1に提供する推薦情報を作成する。
【0095】
ターゲットユーザu1が視聴したコンテンツに対して、あるユーザがターゲットユーザu1とは大きく異なる反応(ノリ)を示した場合に、そのユーザは非類似ユーザとなり易い。例えば、一方のユーザが「無反応」であり、他方のユーザが「縦ノリ強」の場合、この2人のユーザの感性や嗜好は大きく異なるといえるが、このような場合、図14の関数Fの特性例に示すように、当該区間の2人の類似度は小さな値(マイナスの値)になる。つまり、非類似ユーザは、ターゲットユーザの感性や嗜好と大きく異なるユーザである可能性が高いため、非類似ユーザが視聴したコンテンツは、ターゲットユーザが好まない可能性が高い。
【0096】
推薦情報として、推薦コンテンツの情報の他に、非推薦コンテンツの情報を提供する理由は、推薦装置5の推薦能力(情報選択能力)をターゲットユーザに知らしめる(ターゲットユーザに納得させる)ためである。推薦装置5は、膨大なコンテンツ(例えば1000万種類)の中から、ターゲットユーザの感性や嗜好に合うと予想されるごく少数のコンテンツ(例えば10個)を選択して推薦コンテンツとして提示する。ターゲットユーザは、一般的に、提示された推薦コンテンツのみを認識し、その背後に存在する膨大なコンテンツを認識しない(実感できない)。このため、ターゲットユーザは、推薦装置5の情報選択能力を評価することが難しく、推薦装置5の有用性や価値を実感し難い場合がある。
【0097】
一方、推薦コンテンツの情報と、非推薦コンテンツの情報の両方を提示すると、ターゲットユーザは、2種類の情報を比較することにより、推薦装置5の情報選択能力を容易に評価することができる。例えば、ターゲットユーザから見て推薦コンテンツと非推薦コンテンツが大きく異なっており、推薦コンテンツの大半が自分の嗜好に合い、非推薦コンテンツの大半が自分の嗜好に合わない場合、ターゲットユーザは「推薦装置の情報選択能力が優れている」と容易に評価できる。逆に、推薦コンテンツと非推薦コンテンツの違いが分かり難く、自分の嗜好に合うコンテンツの割合が、推薦コンテンツと非推薦コンテンツで大差ない場合には、ターゲットユーザは「推薦装置の情報選択能力が優れていない(劣っている)」と容易に評価できる。
【0098】
ステップS160に対応するステップS160A(図示せず)において、処理部520は、通信部510を制御して、ステップS150Aで作成した推薦情報をターゲットユーザu1の使用する端末装置11に送信(出力)する。端末装置11は受信した情報を表示部150に表示する。
【0099】
本変形例1-1における推薦情報の表示画面63の一例を図18に示す。図18に示すように、画面63の上部には、ターゲットユーザにお薦めするコンテンツ(推薦コンテンツ)の情報(推薦情報631)が表示される。この部分は、図16に示す画面表示と同様である。また画面63の下部には、ターゲットユーザにお薦めしないコンテンツ(非推薦コンテンツ)の情報(非推薦情報632)が表示される。ターゲットユーザは、推薦コンテンツと非推薦コンテンツを見比べることにより、推薦装置5の情報選択能力を容易に評価することができる。また、非推薦コンテンツについても、他のユーザの反応カテゴリをもとに、推薦区間(試聴に適する区間)を再生するための操作ボタン633が表示される。ここでは、非類似ユーザが多く反応を示した区間も便宜上「推薦区間」と呼ぶ。上述したように、他のユーザが多く反応した区間は、そのコンテンツの性質(特徴)がよくあらわれている区間である可能性が高いため、ターゲットユーザはそのコンテンツの性質を短時間で容易に判定することができる。
【0100】
本変形例1-1では、推薦コンテンツの情報だけでなく、さらに非推薦コンテンツの情報をユーザに提供するため、ユーザは推薦装置5の情報選択能力を容易に評価することができる。特に、推薦コンテンツと非推薦コンテンツとを対比させて端末装置の表示部に表示させるための推薦情報を作成するため、ユーザは推薦装置5の情報選択能力を容易に把握できる。推薦装置5の情報選択能力が高いとユーザが感じた場合、ユーザは推薦装置5に対してある種の信頼感をもつため、その後、推薦装置5が提示する情報を受容し易くなる。このため、コンテンツの利用(視聴)が促進される効果が得られる。コンテンツ配信サービス事業者や推薦装置5の事業者にとっては、サービス利用促進に伴う売り上げ増などの効果が期待できる。
【0101】
<実施例1の変形例1-2>
実施例1の変形例1-2では、類似ユーザが視聴したコンテンツあるいは高く評価したコンテンツに限定せずに、全コンテンツを対象にして、ターゲットユーザが指定したコンテンツ条件に合致するコンテンツを選出して推薦コンテンツとする。本変形例では、ステップS100~S120を実行した後、ステップS130およびS140を省略する。つまり、本変形例では、ユーザ間の類似度を算出しない。つまり、推薦装置5の算出部522を省略することができる。
【0102】
ステップS150に対応するS150B(図示せず)において、作成部523は、ターゲットユーザに推薦するコンテンツ(推薦コンテンツ)に関する推薦情報を作成する。本変形例1-2では、ターゲットユーザがコンテンツ条件として、カテゴリ条件(反応カテゴリに関する条件)を指定する。作成部523は、類似ユーザが視聴したコンテンツあるいは高く評価したコンテンツではなく、全コンテンツを対象にして、「(C2)ターゲットユーザがコンテンツ条件として、反応カテゴリに関する条件を指定した場合」と同様な処理を行う。
【0103】
ステップS160に対応するS160B(図示せず)は、実施例1のステップS160と同じである。つまり、処理部520は、通信部510を制御して、ステップS150Bで作成した推薦情報をターゲットユーザu1の使用する端末装置11に送信(出力)する。推薦情報を受信した端末装置11は、図17と同様な画面を表示する。
【0104】
本変形例1-2によれば、類似ユーザが視聴したコンテンツあるいは高く評価したコンテンツに限らず、コンテンツ条件に合致する、より幅広いコンテンツの情報をターゲットユーザに提供することができる。また本変形例では実施例1と同様に、生体情報をもとに反応カテゴリを生成するため、ユーザは文字列(記号)を用いてコンテンツ条件を容易に指定することができる。
【0105】
<実施例2>
実施例1では、ユーザ間の類似度を算出し、それをもとに推薦情報を作成した。実施例2では、コンテンツ間の類似度を算出し、それをもとに推薦情報を作成する。具体的には、算出部522は、生成部521により生成されたカテゴリデータと、カテゴリ関連データ534とに基づいて、コンテンツ同士の類似性を示す類似度を算出する。また、作成部523は、ターゲットユーザからコンテンツの指定を受け付けた場合、複数のコンテンツの中から、指定されたコンテンツにおけるコンテンツ同士の類似性を示す類似度がより高いコンテンツを推薦コンテンツとして選択する。以下では実施例1との差異を中心に説明する。
本実施例における推薦装置5の構成は、図4に示す実施例1のものと同様である。
【0106】
ユーザ(ターゲットユーザ)u1が推薦情報を表示するための操作を行うと、端末装置11から推薦装置5に推薦リクエストが送信される。実施例2の推薦リクエストには、推薦の基準となるコンテンツ(ベースコンテンツ)のコンテンツIDが含まれる。例えば、「コンテンツAを視聴したユーザは、コンテンツBも視聴しています」といった推薦情報を端末装置11に表示する場合、コンテンツAがベースコンテンツとなる。また推薦リクエストに、端末装置11を使用するユーザ(ターゲットユーザ)u1のユーザIDを含めてもよい。この場合、さらにターゲットユーザに特化(パーソナライズ)した推薦情報を作成することができる。また、実施例1で述べたように、推薦リクエストにコンテンツ条件を含めてもよい。推薦装置5は、推薦リクエストを受信すると、バッチ処理等により既にベースコンテンツに対する推薦情報が作成済みであるか否かを判定する。具体的には、処理部520は記憶部530にベースコンテンツのコンテンツIDに関連付けられた推薦情報(推薦コンテンツのコンテンツID等)が存在するか否かを判定する。ベースコンテンツの推薦情報が存在する場合は、処理部520は記憶部530からそれを読み出し、通信部510を介して、端末装置11に送信する。ベースコンテンツに対応する推薦情報が存在しない場合には、処理部520は、図19に示す処理を実行し、推薦情報を作成し、それを端末装置11に送信する。処理部520は、推薦情報を新たに作成した際には、ベースコンテンツのコンテンツIDと関連付けて記憶部530に記憶する。
【0107】
ステップS300は、ステップS100と同じである。
ステップS310は、ステップS110と同様である。ただし、本実施例2では、(A1)第1のカテゴリデータ生成方法を用いる場合、全てのコンテンツについて、区間の数(区間数)を同じにする。具体的には、ステップS210においてコンテンツの区間を作成する際に、全てのコンテンツについて、区間数Maを同じにする。例えば、区間数Maを「50」にする場合、200秒の長さのコンテンツでは1つの区間の長さが4秒となり、400秒の長さのコンテンツでは1つの区間の長さが8秒になる。(A2)第2のカテゴリデータ生成方法を用いる場合は、実施例1と同様であり、区間数Maは「1」になる。
【0108】
ステップS320において、生成部521は、ユーザ反応DB532、つまりカテゴリデータをもとに、コンテンツごとにコンテンツベクトルを作成する。コンテンツベクトルの一例を図20に示す。ユーザ反応DB532に格納された全ユーザの数をPとすると、1つのコンテンツのコンテンツには、ユーザ1~Pのデータが順に並べられる。各ユーザのデータはさらに区間1~Maに対する反応カテゴリで構成される。なお、ユーザ反応DB532に格納された全ユーザのデータを用いるのではなく、一部のユーザのデータを用いて、コンテンツベクトルを作成してもよい。例えば、所定数以上のコンテンツを視聴したユーザを対象にして(コンテンツ視聴回数の少ないユーザを無視して)、コンテンツベクトルを作成してもよい。その場合、処理対象のユーザの数をPとすればよい。
【0109】
図20の例では、コンテンツ1のユーザ1の部分は「Ma」個の区間で構成されており、区間1~Maにおける反応カテゴリが記録される。ただし、ユーザが再生していない区間、あるいは反応データを取得できなかった区間については、「無効」を示す「-1」あるいは「NULL」などの値を記録する。ユーザ2の部分についても同様に「Ma」個の区間で構成されており、ユーザ3についても同様である。つまり、コンテンツ1のコンテンツベクトルは、Q=P×Ma個の反応カテゴリで構成されている。コンテンツ2および他のコンテンツについても同様であり、それぞれQ=P×Ma個の反応カテゴリで構成されている。
【0110】
ユーザ反応DB532に格納された各コンテンツについて、このようなコンテンツベクトルを作成する。DBに格納されたコンテンツの数をNとすると、生成部521は、N個のコンテンツベクトルを作成するため、これらをまとめてコンテンツ行列B[i][j](i=1~N、j=1~Q)とも呼ぶ。
【0111】
ステップS330において、算出部522は、コンテンツベクトル(コンテンツ行列B)をもとに、コンテンツ間の類似度(コンテンツ同士の類似性を示す類似度)を算出する。例えば、数式(5)または数式(6)に従って、任意の2つのコンテンツ(u、v)の類似度S[u][v](u=1~N,v=1~N,u≠v)を算出する。

【数3】

【数4】

ここで関数Fは、実施例1で説明した関数と同様である。数式(6)のLは、コンテンツuが有効であり、かつコンテンツvが有効であるベクトル要素(区間)の数である。つまり、2つのコンテンツがともに有効である区間の数である。
【0112】
ステップS340において、作成部523は、推薦情報を提供する基準となるコンテンツ(ベースコンテンツCa)に対して、類似度Sが高い他のコンテンツを選出(特定)する。ここで特定した類似度が相対的に高いコンテンツを類似コンテンツと呼び、類似コンテンツの集合を類似コンテンツ集合と呼ぶ。具体的には、作成部523は、S[Ca][v](v=1~N、v≠Ca)が所定のしきい値α以上のコンテンツvを選択し、ベースコンテンツCaに対する類似コンテンツとする。あるいは、S[Ca][v]の高い順に所定数(例えば、30個)のコンテンツvを選択し、類似コンテンツにしてもよい。なお、最も類似度の高い1つのコンテンツを類似コンテンツとして選択してもよい。つまり、類似コンテンツは1つであっても複数であってもよい。類似コンテンツは、ベースコンテンツを視聴したユーザが多く視聴しており、かつ、同じユーザが似たような反応(ノリ)を示したコンテンツであるといえる。従って、ユーザから見て、類似コンテンツは、ベースコンテンツと性質や印象が近いコンテンツである可能性が高い。
【0113】
ステップS350において、作成部523は、類似コンテンツをもとに推薦情報を作成する。主な推薦情報は、推薦するコンテンツに関する情報である。類似コンテンツをそのまま推薦コンテンツにしてもよい。あるいは、類似コンテンツの中から、ユーザの視聴回数が多いものを優先的に選択して推薦コンテンツにしてもよい。さらに、推薦リクエストにユーザu1のユーザIDが含まれている場合には、類似コンテンツの中から、ユーザu1が視聴していないコンテンツを優先的に選択して推薦コンテンツにしてもよい。
【0114】
作成部523は、推薦コンテンツについて、多くのユーザが反応した箇所(区間)を特定し、その情報(区間情報)を記憶部530に記憶する。この特定した区間は、端末装置においてコンテンツをダイジェスト再生するために使用される。ここで特定した区間を推薦区間と呼ぶ場合もある。
【0115】
また、作成部523は、推薦コンテンツごとに、所定の反応カテゴリの反応を示したユーザの数を算出する。例えば、コンテンツAに対して、全ユーザを対象にして、「横ノリ強」、「縦ノリ強」、「回転ノリ強」、「ノリ強」のいずれかを示したユーザの数を算出する。つまり、コンテンツAに対して、強いノリの反応を示したユーザの数を算出する。
【0116】
また、作成部523は、推薦コンテンツごとに、主な反応カテゴリを算出(集計)する。例えば、コンテンツAについて、反応カテゴリごとに反応数やユーザ数を集計し、集計数が多い順に所定数(例えば上位3個)の反応カテゴリを選択し、主な反応カテゴリ(主要反応カテゴリ)とする。また、反応数やユーザ数が所定数以上の反応カテゴリを対象として、集計数が多い順に所定数の反応カテゴリを選択し、主要反応カテゴリとしてもよい。この場合、反応数やユーザ数が少ないコンテンツでは、主要反応カテゴリが「該当なし」となる場合もある。また、上述の所定の反応カテゴリを示したユーザ数として、主要反応カテゴリを示したユーザの数を算出してもよい。例えば、主要反応カテゴリが「横ノリ弱」である場合、「横ノリ弱」を示したユーザの数を算出する。
【0117】
このように、推薦コンテンツ情報と、推薦区間の情報と、所定の反応カテゴリを示したユーザ数の情報と、主要反応カテゴリの情報とを推薦情報として作成する。ただし、推薦コンテンツ情報以外の情報の作成を省略してもよい。
【0118】
ステップS360において、処理部520は、通信部510を制御して、ステップS350で作成した推薦情報を要求する端末装置11に送信(出力)する。
端末装置は、推薦装置5から推薦情報を受信すると、それを表示部150に表示する。図21に推薦情報を表示する画面64の一例を示す。図21は、端末装置を使用するユーザが、あるコンテンツ(ベースコンテンツ、本図の例では「コンテンツA」)を視聴した後に、そのコンテンツに関連するコンテンツ(関連コンテンツ)の情報を表示させた場合の例である。「推薦区間から再生」ボタン641は、推薦区間から再生させるための再生指示の受付欄の一例である。図21に示すその他の各情報は、図16で説明した情報と同様である。
【0119】
本実施例では、カテゴリデータをもとに、コンテンツ間の類似度を精度よく算出し、それをもとに特定のコンテンツ(ベースコンテンツ)に関連する他のコンテンツに関する推薦情報を精度よく作成できる。このため、ユーザが特定のコンテンツに関連する他のコンテンツの情報を得たい場合に適用できる。コンテンツ再生時のユーザの生体情報をもとに、コンテンツ間の類似度を精度よく算出できるため、推薦コンテンツを精度よく選択することができる。また、実施例1と同様に、推薦区間の情報、所定の反応カテゴリを示したユーザ数の情報、主要反応カテゴリの情報などを推薦情報として提供するため、ユーザはコンテンツの性質を容易に把握することができる。また実施例1と同様に、推薦区間をユーザに再生させるための操作手段(GUI部品)を端末装置に表示させる推薦情報を提供するため、ユーザはコンテンツの特徴を短時間で容易に把握することができる。
【0120】
<実施例3>
これまでの実施例では、推薦情報として、コンテンツに関する情報を作成した。実施例3では、推薦情報として、ユーザ(他のユーザ)に関する情報を作成する。すなわち、実施例3にかかる作成部523は、複数のユーザの中から、ターゲットユーザとの類似度が相対的に高い類似ユーザを特定する。そして、作成部523は、当該類似ユーザをもとに推薦ユーザを特定し、推薦ユーザに関する情報を推薦情報として作成し、ターゲットユーザに対して推薦情報を提示する。さらに、作成部523は、ターゲットユーザから所望の推薦ユーザに関するユーザ条件を受け付けた場合、指定されたユーザ条件をさらに加味して、推薦ユーザを特定することが望ましい。ターゲットユーザは、ユーザ条件として、類似ユーザが任意のコンテンツに対して示した反応カテゴリ、または類似ユーザが所定のコンテンツ(ターゲットユーザが指定するコンテンツ)に対して示した反応カテゴリに関する条件を指定することができる。作成部523は、ターゲットユーザと他のユーザとの類似度と、他のユーザがユーザ条件に合致する度合いとを総合的に示す指標を算出し、その指標をもとに推薦ユーザを特定してもよい。作成部523は、推薦ユーザが相対的に高い頻度で示す反応カテゴリの情報を推薦情報に含めてもよい。作成部523は、推薦ユーザが所定の反応(特徴的な反応)を示したコンテンツの情報や区間の情報を推薦情報に含めてもよい。さらに、作成部523は、推薦ユーザが所定の反応を示したコンテンツ、または推薦ユーザが所定の反応を示した区間をターゲットユーザに再生されるための受付欄(GUI部品などの操作手段)を端末装置11の表示部150に表示させる推薦情報を作成するとよい。以下では実施例1との差異を中心に説明する。
【0121】
本実施例3では、ターゲットユーザu1が使用する端末装置11から推薦装置5に対して推薦情報を要求するリクエスト(推薦リクエスト)が送信された場合に、推薦装置5は図7のフローチャートに相当する処理を実行する。推薦リクエストには、ターゲットユーザu1のユーザIDが含まれており、さらにターゲットユーザu1が所望するユーザの条件(ユーザ条件、あるいはユーザ絞込条件とも呼ぶ)が含まれる場合がある。推薦装置5は、図7のフローチャートの各ステップのうち、S100~S140については、実施例1と同様に実行する。
【0122】
ステップS150に対応するS150C(図示せず)において、作成部523は、ターゲットユーザu1に推薦するユーザ(推薦ユーザ)に関する推薦情報を作成する。ここで、作成部523は、ターゲットユーザu1によるユーザ条件の指定有無や指定内容に応じて以下のように、推薦情報を作成する。
(D1)ターゲットユーザu1がユーザ条件として何も指定していない場合は、ステップS140で選出した類似ユーザをターゲットユーザu1に対する推薦ユーザとする。あるいは、類似ユーザの中からさらにターゲットユーザu1との類似度の高いユーザを絞り込んでもよい。
(D2)ターゲットユーザu1がユーザ条件として推薦ユーザの数Haを指定した場合は、ターゲットユーザu1との類似度S[u1][v]の高い順にHa人のユーザを推薦ユーザとして選出する。
(D3)ターゲットユーザu1がユーザ条件として、反応カテゴリに関する条件を指定した場合、ステップS140で選出した類似ユーザを対象にして、指定されたユーザ条件に合致するユーザを選出し、推薦ユーザとする。さらに、作成部523は、ユーザ条件におけるコンテンツの指定の有無に応じて以下のように推薦ユーザを選出するとよい。
【0123】
(D3-A)ターゲットユーザu1がコンテンツを指定せずに、反応カテゴリを指定した場合、作成部523は、類似ユーザのユーザ反応ベクトルを対象にして、指定された反応カテゴリ(指定カテゴリ)に合致する区間の数を算出する。そして、合致する区間の数が多い順に所定数のユーザを選出し、推薦ユーザとする。例えば、ターゲットユーザu1が「縦ノリ強」または「縦ノリ中」の反応をよく示すユーザを推薦ユーザとしたい場合、ユーザ条件として「縦ノリ強 OR 縦ノリ中」といった条件を指定する。作成部523は、類似ユーザのユーザ反応ベクトルを対象にして、各ユーザごとに「縦ノリ強」または「縦ノリ中」である区間の数を算出する。そして、算出した区間数が多い順に、所定数(例えば、20人)のユーザを選出する。
【0124】
(D3-B)ターゲットユーザu1がコンテンツと反応ベクトルを指定した場合、作成部523は、類似ユーザのユーザ反応ベクトルを対象にして、指定されたコンテンツに合致し、かつ指定された反応カテゴリ(指定カテゴリ)に合致する区間の数を算出する。そして、合致する区間の数が多い順に所定数のユーザを選出し、推薦ユーザとする。例えば、ターゲットユーザu1が、コンテンツAで「横ノリ強」を示し、かつコンテンツBで「回転ノリ中」を示したユーザを推薦ユーザとしたい場合、ユーザ条件として「コンテンツA=横ノリ強 AND コンテンツB=回転ノリ中」といった条件を指定する。作成部523は、類似ユーザのユーザ反応ベクトルを対象にして、各ユーザごとに指定されたユーザ条件に合致する区間の数を算出する。
【0125】
また、ターゲットユーザu1は、さらにコンテンツの特定の区間をユーザ条件に指定してもよい。この場合、推薦装置5から端末装置11に対して、各コンテンツの各区間の情報を予め通知した上で、ターゲットユーザu1にコンテンツと区間を指定させる。例えば、ターゲットユーザu1は、コンテンツAの区間3~5の3つの区間全てにおいて「横ノリ強」を示し、かつコンテンツBの区間4~7の4つの区間のいずれかで「回転ノリ中」を示したユーザを推薦ユーザとしたい場合、ユーザ条件として「コンテンツA:ALL3~5=横ノリ強 AND コンテンツB:ANY4~7=回転ノリ中」といった条件を指定する。作成部523は、類似ユーザのユーザ反応ベクトルを対象にして、各ユーザごとに指定されたユーザ条件に合致する区間の数を算出する。そして、区間数の多いユーザを優先的に選出する。
【0126】
また、ユーザ間の類似度と、ユーザ条件に合致する区間数とを総合的に考慮してユーザを選出してもよい。例えば、「コンテンツA:2=横ノリ強」(コンテンツAの区間2で横ノリ強を示したユーザ)というように、ユーザ条件に1つの区間のみが指定された場合、このユーザ条件に合致する区間数は高々「1」となる。このユーザ条件に合致するユーザが必要な数(必要な推薦ユーザ数)以上存在する場合、その中からユーザ間の類似度の高い順に必要な数のユーザを選出すればよい。
【0127】
また、ユーザv(vは各類似ユーザを示す添え字)のユーザ条件に合致する区間数またはコンテンツ数であるNa[v]と、ターゲットユーザu1との類似度S[u1][v]をもとに、数式(7)または数式(8)に従って、各ユーザごとに指標W(W[v])を算出し、指標Wの高い(大きい)ユーザを優先的に推薦ユーザにしてもよい。例えば、全ユーザ(ターゲットユーザ以外のユーザ)もしくは類似ユーザを対象にして指標Wを算出し、指標Wの高い順に所定数のユーザを選出して推薦ユーザとしてもよい。数式(7)においてη1、η2は、それぞれ正の所定値(重み係数)である。また数式(8)において、λ1、λ2はそれぞれ正の所定数である。数式(7)または数式(8)によれば、ユーザ条件に合致する区間数(コンテンツ数)が多いほど高い値となり、かつユーザ間類似度が高いほど高い値となる指標Wを算出することができる。

【数5】

【数6】
【0128】
本実施例3では、記憶部530にユーザの属性情報が記憶されている。具体的には、ユーザIDに関連付けて、ユーザ名(実名またはニックネーム)、年齢、性別、連絡先(メールアドレス、電話番号等)、自己紹介メッセージ等を記憶部530が記憶している。作成部523は、選出した推薦ユーザについて、記憶部530からユーザ属性情報を読み出し、ユーザ属性情報を用いて推薦情報を作成する。
【0129】
また作成部523は、推薦ユーザのユーザ反応ベクトルを参照し、ユーザごとに反応カテゴリ別の反応数(区間数)を集計する。そして、ユーザが高い頻度で示す反応カテゴリ(主要反応カテゴリ)の情報を推薦情報に入れる。例えば、「ユーザAは横ノリ弱を示すことが多い」、「ユーザBは縦ノリ強と縦ノリ中を示すことが多い」といった情報を推薦情報に入れる。
また作成部523は、推薦ユーザのユーザ反応ベクトルを参照し、ユーザが特徴的な反応を示したコンテンツやコンテンツの区間の情報(主要反応コンテンツ)を推薦情報に入れる。例えば、「ユーザAはコンテンツAで横ノリ強を示した」、「ユーザBはコンテンツBの区間10~11で縦ノリ中を示し、コンテンツBの区間15~20で縦ノリ強を示した」といった情報を推薦情報に入れる。
【0130】
ステップS150Cに続くステップS160C(図示せず)は、実施例1のステップS160と同様である。つまり、ステップS160Cにおいて、処理部520は、通信部510を制御して、ステップS150Cで作成した推薦情報をターゲットユーザu1の使用する端末装置11に送信(出力)する。
【0131】
実施例1と同様に、端末装置11は、推薦装置5から推薦情報を受信すると、それを表示部150に表示する。図22に推薦情報を表示する画面65の一例を示す。画面の上部には、ターゲットユーザ(図22の例では、ユーザA)が所望のユーザ条件を指定するためのGUIであるテキストフィールド651と、ユーザ条件を送信(更新)するためのボタン652が表示されている。図22の例では、ユーザAが「横ノリ強 OR 横ノリ中 OR 回転ノリ中」というユーザ条件を指定し、送信ボタン652を押した後の状態を示している。ユーザがユーザ条件送信ボタン652を押すと、端末装置11から推薦装置5に推薦リクエストが送信され、その応答として、推薦装置5から端末装置11に推薦情報が送信される。
【0132】
図22では、ユーザ条件の下に、ターゲットユーザ(本図の例では「ユーザA」)に対する推薦情報が表示される。つまり、端末装置11は、ユーザが指定したユーザ条件に関連付けて、推薦情報を表示する。具体的には、推薦ユーザのユーザ名、年齢、性別、連絡先、自己紹介メッセージ等のユーザ属性情報653が表示される。ここで表示されるユーザ属性情報653は、対象となるユーザが予め許諾した情報に限られる。ユーザが公開を希望しない属性情報については、「非公開」と表示される。
【0133】
さらに、上述した主要反応カテゴリの情報654および主要反応コンテンツの情報655が表示される。図22に示す例では、例えば、ユーザ1の主要反応カテゴリは「(1)横ノリ強 (2)横ノリ中」であり、ユーザ1は最も高い頻度で「横ノリ強」を示し、2番目に高い頻度で「横ノリ中」を示すことを表している。また、ユーザ1の主要反応コンテンツは「(1)コンテンツ1 (2)コンテンツ2:3~9」となっている。これは、「ユーザ1がコンテンツ1およびコンテンツ2の区間3~9において、主要反応カテゴリの反応を示した」ことを表している。
【0134】
ターゲットユーザはこのような情報を見て、推薦ユーザの特徴(感性や嗜好)を容易に推定することができる。ターゲットユーザは、年齢、性別、自己紹介メッセージ等のユーザ属性情報653から推薦ユーザの特徴を大まかには推定できるが、これらはあまり精度の高い情報とは言えない。例えば、年齢・性別が同じでユーザであっても感性や嗜好は様々である。また、このような情報は、あくまでもユーザが自己申告した情報であり、正確でない場合もある。つまり、一般的なユーザ属性情報653からユーザの感性や嗜好を正確に知ることは難しい。一方、主要反応カテゴリ654および主要反応コンテンツ655は、コンテンツ視聴時のユーザの自然な反応をもとに作成された情報である。ユーザが無意識にコンテンツに反応することも多い。主要反応カテゴリ654および主要反応カテゴリ655は、コンテンツを実際に視聴したユーザ(消費者)のリアルな反応をコンパクトにまとめた(集約した)情報であるため、ユーザの実際の特徴(素の特徴)をより正確に表しているといえる。このためターゲットユーザは、推薦ユーザの特徴(感性や嗜好)をより詳細かつ容易に把握することができる。
【0135】
図22に示す画面例では、さらに主要反応コンテンツを再生するための再生ボタン656が推薦ユーザごとに表示される。例えば、ユーザ1に対応する再生ボタン656を押すと、ユーザ1の主要反応コンテンツである「コンテンツ1およびコンテンツ2」が順次再生される。次のコンテンツを再生するための早送りボタンや、前のコンテンツを再生するための早戻しボタンを適宜表示してもよい。また、「コンテンツ2:3~9」といったように特定の区間が示されている場合、再生ボタン656を押した際に、コンテンツ2の区間3から区間9までを再生し、その後次のコンテンツを再生してもよい。つまり、他のユーザが特徴的な反応した区間(推薦区間)を再生してもよい。
【0136】
また、図22に示す画面例では、特定のユーザにメッセージを送信するためのボタン657が表示されている。例えば、ターゲットユーザがユーザ1に対応する送信ボタン657を押すと、メッセージを入力するためのテキストフィールド等が表示され、ユーザ1に対するメッセージを記入することができる。そのメッセージはユーザ1に通知される。また、ユーザ1がそのメッセージに返信した場合には、ターゲットユーザに通知される。このため、推薦ユーザが連絡先を公開していない場合であっても、ターゲットユーザは推薦ユーザとコミュニケーションすることができる。つまり、ユーザは自分の個人情報をむやみに公開することなく、感性や嗜好の合いそうな他のユーザと容易にコミュニケーションを図ることができる。ユーザ間のメッセージ制御(メッセージ送受信や通知などの処理)は、推薦装置5が行っても他の装置が行ってもよい。
【0137】
上述の説明では、ターゲットユーザとの類似度が相対的に高い類似ユーザを特定したが、さらに、実施例1の変形例1-1で説明した方法により、ターゲットユーザとの類似度が相対的に低い非類似ユーザを特定してもよい。そして、類似ユーザをもとに推薦ユーザを特定するのと同様に、非類似ユーザをもとに非推薦ユーザを特定してもよい。そして、図22に示す画面65と同様に非推薦ユーザについても、ユーザ属性情報、主要反応カテゴリの情報、主要反応コンテンツ、主要反応コンテンツを再生するためのボタン、メッセージを送信するためのボタンなどを画面に表示させてもよい。また、図18と同様に、推薦ユーザの情報と、非推薦ユーザの情報とを対比させて画面に表示してもよい。ターゲットユーザは、例えば、推薦ユーザの主要反応コンテンツと、非推薦ユーザの主要反応コンテンツとを比較することにより、推薦装置5の情報選択能力を容易に判定することができる。
【0138】
本実施例によれば、カテゴリデータとカテゴリ関連データとをもとにユーザ間の類似度を算出するため、ユーザ(ターゲットユーザ)の感性や嗜好に適合する他のユーザを精度よく、かつ効率的に推薦できる。また本実施例によれば、生体情報をもとに反応カテゴリを生成するため、ユーザは反応カテゴリを用いてユーザ条件を容易に指定することができる。例えば、生体情報(波形データ)の特徴をユーザが指定することは難しいが、反応カテゴリはカテゴリ化(類型化)されているため、文字列(記号)を使って、所望のユーザに関するユーザ条件を容易に指定することができる。また本実施例によれば、推薦ユーザに関する主要反応カテゴリおよび主要反応カテゴリを推薦情報に含めることができる。これらの情報は、コンテンツを実際に視聴したユーザ(消費者)のリアルな反応をコンパクトにまとめた(集約した)情報であるため、ユーザが自己申告したユーザ属性情報に比べて、ユーザの実際の特徴(素の特徴)をより正確に表しているといえる。このためユーザ(ターゲットユーザ)は、推薦ユーザの特徴(感性や嗜好)をより詳細かつ容易に把握することができる。
【0139】
<実施例3の変形例3-1>
実施例3の変形例3-1では、類似ユーザに限定せずに、全ユーザを対象にして、ターゲットユーザが指定したユーザ条件に合致するユーザを選出して推薦ユーザとする。本変形例3-1では、ステップS100~S120を実行した後、ステップS130およびS140を省略する。つまり、本変形例3-1では、ユーザ間の類似度を算出しない。つまり、推薦装置5の算出部522を省略することができる。
【0140】
ステップS150に対応するS150D(図示せず)において、作成部523は、ターゲットユーザに推薦するユーザ(推薦ユーザ)に関する推薦情報を作成する。本変形例3-1では、ターゲットユーザがユーザ条件として、(D3)反応カテゴリに関する条件(カテゴリ条件)を指定する。作成部523は、類似ユーザではなく、全ユーザ(ターゲットユーザ以外の全ユーザ)を対象にして、実施例3の(D3)と同様な処理を行う。
【0141】
ステップS160に対応するS160D(図示せず)は、実施例3のステップS160Cと同じである。つまり、処理部520は、通信部510を制御して、ステップS150Dで作成した推薦情報をターゲットユーザの使用する端末装置11に送信(出力)する。推薦情報を受信した端末装置11は、図22と同様な画面を表示する。本変形例3-1によれば、類似ユーザに限らず、ユーザ条件に合致する、より幅広いユーザの情報をターゲットユーザに提供することができる。また本変形例によれば、実施例3と同様に、生体情報をもとに反応カテゴリを生成するため、ユーザは反応カテゴリを用いて所望のユーザ条件を容易に指定することができる。
【0142】
<実施例4>
実施例4におけるコンテンツは音楽(楽曲)であり、実施例4では、音楽に特有な性質を用いて、カテゴリデータをより精度よく作成する。以下では実施例1との差異を中心に説明する。本実施例4の推薦装置5の構成を図23に示す。図23では、実施例1と比べて、記憶部530に楽曲情報DB537(音楽情報DB)が格納されている。
【0143】
楽曲情報DB537のデータ構成の一例を図24に示す。楽曲IDに対応させて、楽曲名、アーティスト名、ジャンル、年代などの楽曲属性情報を格納する。さらに楽曲ごとに、各小節の開始時間(楽曲の先頭からの経過時間)が記録されている。また、各小節ごとにテンポ(楽曲の速さを示す情報)と、ビート種類が記録されている。図24に示す例では、ビート種類は、「強」、「中」、「弱」など、楽曲のビート(拍)の強さを示す情報である。ただし、ビートの強さを示す情報に限らず、「16ビート」、「8ビート」、「4ビート」、「2ビート」、「3連符系」などリズムパターンを示す情報であってもよい。なお、図24に示す小節の情報の代わりに、拍(ビート)の情報を楽曲情報DB537に格納してもよい。例えば、1拍ごとの時間(楽曲の先頭からの経過時間)を記憶してもよい。楽曲情報DB537に格納する情報は、推薦装置5が他の装置(音楽情報データベース等)から取得してもよい。あるいは、推薦装置5が楽曲の音響信号を解析して、拍、テンポ、小節、ビート種類などの情報を作成してもよい。
【0144】
推薦装置5は図7のフローチャートと同様な流れで、推薦情報作成処理を実行する。ただし、以下の点で実施例1の処理とは異なる。ステップS110に対応するステップS110E(図示せず)において、生成部521は、生体情報DB531および楽曲情報DB537をもとに、カテゴリデータを生成する。本実施例では、実施例1で説明した(A1)第1のカテゴリデータ生成方法を用いる。つまり、生成部521は、コンテンツを複数の区間に分割し、各区間ごとに反応カテゴリを生成する。
【0145】
ステップS210に対応するステップS210E(図示せず)において、生成部521は処理対象のコンテンツの区間を作成する。この際に、楽曲情報DB537に格納された小節情報または拍情報を用いて区間を生成する。小節情報を用いる場合、1つ以上の小節を1つの区間に対応させる。例えば、小節1~2を区間1とし、小節3~4を区間2とし、小節5~6を区間3とする等、2つの小節を1つの区間に対応させる。1つの区間に対応させる小節の数は、1~4程度が望ましい。これは、通常の楽曲は1~4小節程度は、同じようなビートやリズムパターンが持続する可能性が高いという知見に基づく処理である。拍情報を用いる場合、複数の拍を1つの区間に対応させる。例えば、拍1~8を区間1とし、拍9~16を区間2とし、拍17~24を区間3とする等、8つの拍を1つの区間に対応させる。1つの区間に対応させる拍の数は、4~16程度が望ましい。これは、一般的に1小節が4つの拍で構成されている4拍子系の楽曲が多く、また1~4小節程度は、同じようなビートやリズムパターンが持続する可能性が高いという知見に基づく処理である。なお、楽曲情報DB537に拍子の情報が含まれている場合、その情報をもとに区間を作成してもよい。例えば、4拍子系の楽曲であれば、4拍、8拍、16拍などを1つの区間に対応させる。また、3拍子系の楽曲であれば、3拍、6拍、9拍などを1つの区間に対応させる。つまり、生成部521は、楽曲の拍又は小節の長さの所定数倍の長さでコンテンツを時間軸において分割して複数の区間を作成するとよい。
【0146】
また、生成部521は、テンポ情報をもとに区間を作成してもよい。例えば、楽曲情報DB537に小節ごとのテンポが格納されている場合、テンポがある程度以上変化した箇所は、異なる区間に割り当てる。例えば、前の小節のテンポと比べて所定値(例えば、10)以上テンポが変化した小節は、前の小節とは異なる区間になるように割り当てる。あるいは前の小節のテンポと比べて所定比率(例えば、5%)以上テンポが変化した小節を、前の小節とは異なる区間にしてもよい。
【0147】
また、ビート種類をもとに区間を作成してもよい。例えば、ビート種類が変化した箇所を隣接する2つの区間の境界とする。図24に示した例では、楽曲ID「1」の小節1~4のビート種類が「中」であり、小節5以降はビート種類が「強」であるため、小節4までと小節5以降は異なる区間になる。
【0148】
推薦装置5は、ステップS210Eの後に、実施例1と同様に、ステップS220~S250を実行する。また、ステップS110Eの後に、実施例1と同様にステップS120~S160を実行する。本実施例では、音楽情報をもとに区間を作成するため、1つの区間の中に音楽的に異なる要素が混在する可能性を低減できる。つまり、1つの区間内で、同じようなリズムパターンやビートパターンが持続する可能性を向上できる。従って、1つの区間内で、異なる種類のユーザの反応(異なる種類の体の動き)が混在することを低減できる。このため、カテゴリデータをより精度よく生成することができ、推薦情報をより精度よく作成することができる。
【0149】
<実施例5>
実施例5では、実施例4と同様に、音楽に特有な性質を用いて、カテゴリデータをより精度よく作成する。実施例5では、実施例4の処理に加えて、さらに別の処理を実行する。本実施例の推薦装置5の構成は、実施例4と同じ図23に示す構成である。つまり、記憶部530は楽曲情報DB537を格納している。実施例5にかかる生成部521は、生体情報から解析された周波数成分のうち、楽曲の拍又は速さに基づく周波数成分と所定の関係にある周波数成分を優先的に抽出し、当該抽出した周波数成分に基づきカテゴリデータを生成する。
【0150】
ステップS110に対応するステップS110F(図示せず)において、生成部521は、生体情報DB531および楽曲情報DB537をもとに、カテゴリデータを生成する。ステップS110Fの処理の流れは図8のフローチャートと同様であり、S200、S220、S240、S250は実施例1と同じである。またS210に対応するS210Fは、実施例4のS210Eと同じである。
【0151】
ステップS230に対応するS230Fにおいて、生成部521は、楽曲の拍あるいはテンポの情報を用いて、処理対象の区間のカテゴリデータを生成する。具体的には、生成部521は、フーリエ解析等の手法を用いて、処理対象の区間の生体情報データの主要な周波数成分を抽出する。この際に、楽曲のテンポと所定の関係にある周波数成分を抽出し、それ以外の周波数成分を抽出しないようにする。楽曲を鑑賞中のユーザの生体情報データ(ユーザの体の動き)は、楽曲のテンポと同期している可能性が高い。ただし、ユーザは1拍ごとに体を動かすとは限らず、2拍あるいは4拍ごとに体を動かすことも多い。例えば、4拍子系のロックやポップスの音楽では、2拍目と4拍目にドラム(スネアドラムなど)が演奏されることが多く、ユーザはスネアドラムの演奏のタイミングで体を動かすことも多い。この場合、生体情報データは、2拍に相当する周波数成分が多く含まれることになる。また、1/2拍や1/4拍の周期でドラム(ハイハットなど)が演奏されることが多く、ユーザはハイハットの演奏のタイミングで体(指や腕など)を動かすことも多い。この場合、生体情報データは、1/2拍や1/4拍に相当する周波数成分が多く含まれることになる。このため、生体情報データの中から、拍の周波数と所定の関係にある周波数を抽出する。ここで、所定の関係とは、1/4倍、1/2倍、1倍、2倍、4倍などの関係である。3拍子系や3連符を多用した楽曲の場合、1/3倍や3倍の周波数を抽出した方がよい場合がある。つまり、典型的には基準となる周波数(拍の周波数)に対して、整数分の1倍および整数倍の周波数を抽出する。ただし、場合によっては、基準周波数の2/3倍や3/2倍など、単純な整数比で示される周波数を抽出してもよい。つまり、基準周波数と単純な整数比の関係にある周波数を優先的に抽出してもよい。
【0152】
例えば、ある楽曲のテンポが「120」(1分間に120拍)である場合、1拍の周波数は「2Hz」に相当する。2拍に相当する周波数は「1Hz」であり、1/2拍に相当する周波数は「4Hz」、1/4拍に相当する周波数は「8Hz」になる。拍の周波数と関連する周波数成分を抽出する処理の概要を図25に示す。図25は、処理対象の区間を周波数解析し、周波数成分を抽出した様子を示す図である。ここでは、基準周波数(拍の周波数)をf0とし、1/2f0、f0、2f0を抽出するものとする。図25では、5つの周波数ピークp1からp5が存在するが、このうち「○」印を付けた3つのピークp1、p3及びp5は、基準周波数と所定の関係にあるため、抽出対象となる。一方、「×」を付けた2つのピークp2及びp4は、基準周波数と所定の関係にないため、抽出対象とならない。
【0153】
生成部521は、抽出対象となる周波数成分を抽出した後、以下のいずれかの方法でカテゴリデータを生成する。
(E1)周波数成分から信号波形を合成する方法
第1の方法は、フーリエ逆変換等の手法を用いて、抽出した周波数成分をもとに信号波形(時間領域のデータ)を合成する方法である。生体情報データが3方向の変位データであれば、x、y及びzそれぞれの信号波形を合成する。そして、合成した信号波形を用いて、実施例1と同様な処理を行って、カテゴリデータを生成する。
(E2)周波数成分から直接カテゴリデータを生成する方法
第2の方法は、周波数成分から直接カテゴリデータを生成する方法である。具体的には、(A11)において抽出対象の周波数成分(周波数成分の強度)を用いたルールを定義しておく。例えば、x軸のf0の周波数成分をDx、y軸のf0の周波数成分をDy、z軸のf0の周波数成分をDzとし、「θ3≦Dx ∩ Dx>Dy ∩ Dz<θ2」という条件が成立した場合、「横ノリ強」と判定する。もちろん、基準周波数以外の周波数に関するルールを用いてもよい。あるいは、(A12)において、各周波数成分の強度を入力とする分類器を学習し、その分類器を用いて反応カテゴリを判定してもよい。
【0154】
また、生成部521は、拍の情報をもとに、実施例1よりもさらに多様な反応カテゴリを生成してもよい。具体的には、小節や拍のタイミングと、ユーザの体の変位(加速度)がピークとなるタイミングとの時間差をもとに、反応カテゴリを生成する。例えば、拍のタイミングを基準にして、(F1)ユーザの体の動き(変位のピーク)が所定時間以上早い(前にある)場合と、(F2)両者の時間差の絶対値が所定時間未満である場合と、(F3)ユーザの体の動きが所定時間以上遅い(後にある)場合とを区別して反応カテゴリを生成する。このような反応カテゴリの一例を図26に示す。図26は、図10に示す「横ノリ弱」の反応カテゴリ(中カテゴリ)をさらに細分化した3つの反応カテゴリ(小カテゴリ、小分類、サブカテゴリ)を示している。説明を簡潔にするため、その他の反応カテゴリは省略しているが、「横ノリ中」、「横ノリ強」などの他の反応カテゴリについても、それぞれ3つに細分化した反応カテゴリ(小カテゴリ、小分類、サブカテゴリ)が定義されている。図26に示すように拍のタイミングと、ユーザの生体情報(体の動き)のピークのタイミングとの時間差に応じて、3つの反応カテゴリが生成される。なお、説明を簡潔にするため、「1-1」、「1-2」、「1-3」といった枝番号をカテゴリIDに示しているが、もちろん「1」、「2」、「3」といった連番や任意の文字列をカテゴリIDに用いてもよい。
【0155】
本実施例5では、生体情報データから楽曲の拍と関連する周波数成分を抽出し、拍と関連しない周波数成分を除外するため、楽曲(コンテンツ)と関係のない生体情報がカテゴリデータに与える影響を低減できる。例えば、ユーザが楽曲と無関係に頭を動かした場合であっても、その動作がカテゴリデータに及ぶ影響を低減できる。従って、ユーザ間の類似度あるいはコンテンツ間の類似度を精度よく算出することができる。このため、推薦情報を精度よく作成することができる。
【0156】
また本実施例によれば、生体情報データに加えて音楽情報データを用いることにより、さらに多様なカテゴリデータを生成することができる。従って、ユーザ毎の反応の違いをより詳細にカテゴリデータで表現することができる。このため、ユーザ間の類似度あるいはコンテンツ間の類似度を精度よく算出することができる。また、ターゲットユーザは、所望のコンテンツや所望のユーザをより細かく指定することができる。
なお、本実施例を実施例4とは独立に実施することも可能である。つまり、実施例1と同様に楽曲情報DBを用いずにコンテンツの区間を作成した上で、楽曲情報DBを用いて、楽曲の拍や速さと所定の関係にある周波数成分を生体情報から優先的に抽出してもよい。
【0157】
上述の説明では、小節および拍の情報をもとにカテゴリデータを生成したが、これに限らず他の楽曲情報(音楽情報)を用いてもよい。具体的には、カラオケ等に用いられるMIDI(Musical Instrument Digital Interface)データ(楽器演奏データ)を用いてもよい。例えば、ドラムの演奏データがある場合、ドラムを構成する各打楽器(ハイハット、シンバル、スネアドラム、バスドラム等)の演奏タイミングと生体情報データのタイミング(ピークのタイミング)との一致度を算出したり、時間差を算出してもよい。もちろん、ドラムに限らず、ギター、ベース、キーボード、ボーカル等任意の楽器や歌唱の演奏データを用いてもよい。また、楽器演奏のタイミングと一致する生体情報データを有効なデータとし、楽器演奏のタイミングと一致しない生体情報データを無効とする(除去する)等の処理を行ってもよい。
【0158】
また、楽器の種類を反応カテゴリに反映させてもよい。具体的には、ユーザの体の動きが、どの楽器の演奏タイミングと一致する確率が高いかを算出し、一致する楽器の名称を反応カテゴリに含める。また楽器の種類だけでなく、演奏スタイルや音楽的な内容を反応カテゴリにしてもよい。例えば、「ハイハットに反応」、「シンバルに反応」、「スネアドラムに反応」「バスドラムに反応」、「ドラム連打に反応」、「ギターに反応」、「ギターのチョーキングに反応」、「高音女声コーラスに反応」、「2オクターブ以上の音程移動に反応」などである。本実施例によれば、詳細な楽曲情報を用いることにより、反応カテゴリの種類を増やすことができ、ユーザの多様な反応をより詳細にかつ精度よくカテゴリデータに反映することができる。
【0159】
<実施例6>
実施例6では、コンテンツ再生前の生体情報データと、コンテンツ再生中の生体情報データとの違いを用いて、さらに精度よくカテゴリデータを作成する。本実施例の推薦装置5の構成は、実施例1と同じ図4に示す構成である。
本実施例では、ユーザがコンテンツを再生する前または再生した後の生体情報データ、すなわちコンテンツ非再生時の生体情報データを生体情報DB531に格納する。このコンテンツ非再生時の生体情報を「第2の生体情報」とも呼ぶ。この際に、コンテンツ再生時の第1の生体情報データと、コンテンツ非再生時の第2の生体情報データを区別可能なように生体情報DB531に格納する。そして、生成部は、第1の生体情報から解析された周波数成分のうち、第2の生体情報から解析された周波数成分とは異なる周波数成分を優先的に抽出し、当該抽出した周波数成分に基づきカテゴリデータを生成する。その詳細を以下に説明する。
【0160】
ステップS110に対応するステップS110G(図示せず)において、生成部521は、生体情報DB531および楽曲情報DB537を参照し、カテゴリデータを生成する。具体的には、まずフーリエ解析等の手法を用いて、非再生時の生体情報データから主要な周波数成分を抽出する。次に、ステップS230に対応するステップS230G(図示せず)において、生成部521は、再生時の生体情報データから、非再生時の周波数成分以外の周波数成分を優先的に抽出する。
【0161】
再生時の周波数成分と非再生時の周波数成分とを用いて、カテゴリデータを生成する処理の概要を図27に示す。図27において、実線は再生時の生体情報データの周波数成分であり、破線は非再生時の生体情報データの周波数成分である。再生時の周波数成分は、周波数f1であるピークp11、周波数f2であるピークp12、周波数f3であるピークp13の3つのピークをもつ。また、非再生時の周波数成分は、周波数f4であるピークp21、周波数f5であるピークp22、周波数f6であるピークp23の3つのピークをもつ。生成部521は、再生時の周波数成分のピーク周波数と、最も近い非再生時の周波数成分のピーク周波数とを比較する。そして、再生時の周波数成分のピーク周波数と、非再生時の周波数成分のピーク周波数との差を算出する。生成部521は、周波数の差が所定値以上であれば、再生時の周波数成分を抽出対象とし、周波数の差が所定値未満であれば、再生時の周波数成分を抽出対象としない。図27に示す例では、f1とf4が比較対象になり、両者の差が所定値以上であるため、f1は抽出対象となる。また、f2とf5が比較対象になり、両者の差が所定値未満であるため、f2は抽出対象とならない。また、f3とf6が比較対象になり、両者の差が所定値以上であるため、f3は抽出対象となる。また、再生時の周波数ピークの近傍に非再生時の周波数ピークが存在しない場合や、再生時の周波数ピークの近傍における非再生時の周波数成分の強度が低い場合は、再生時の周波数成分は抽出対象になる。生成部521は、抽出対象となる周波数成分を抽出した後、実施例5で説明したのと同様な方法で、カテゴリデータを生成する。
【0162】
本実施例では、非再生時の生体情報データをもとに、再生時の生体情報データの中からコンテンツ視聴とは無関係な成分を除去してカテゴリデータを生成するため、より高い精度でカテゴリデータを生成できる。例えば、ユーザが歩行中にコンテンツを再生した場合、歩行による体の変位が生体情報データに含まれるが、このような成分を低減することができる。このため、カテゴリデータをより高い精度で作成することができ、推薦情報をより高い精度で作成することができる。
【0163】
<実施例7>
これまでの実施例では、生体情報データとして、ユーザの体の動きを示すデータを用いて、カテゴリデータを生成した。実施例7では、ユーザの体の動きを示すデータに加えて、ユーザの脈拍、脈波、心拍数、呼吸、血圧などの生体情報を用いて、カテゴリデータを生成する。説明を簡潔にするため、以下では、脈拍の情報を用いる例を説明するが、呼吸数などの呼吸に関する情報や血圧に関する情報を用いても同様の処理が可能である。
本実施例における生体センサの一例は、スマートウォッチ等の脈拍を測定できるデバイスである。1つの生体センサでユーザの体の動きと脈拍の両方を計測してもよい。あるいは、ユーザの体の動きをヘッドホンで計測し、ユーザの脈拍をスマートウォッチで計測する等、複数のセンサで1人のユーザの生体情報を計測してもよい。生体情報DB531は、ユーザの体の動きを示すデータの他に、脈拍の情報を格納する。
【0164】
本実施例における推薦情報作成処理の流れは、図7のフローチャートと同様である。ステップS110に相当するステップS110H(図示せず)において、生成部521は、体の動きを示すデータと、脈拍のデータとをもとに、カテゴリデータを生成する。具体的には、ステップS230に相当するステップS230Hにおいて、図28に示すルールデータ535を用いて反応カテゴリを生成する。図28は、図10に示す「横ノリ弱」の反応カテゴリをさらに細分化した3つの反応カテゴリ(「クール」、「ノーマル」、「ホット」)示している。説明を簡潔にするため、その他の反応カテゴリは省略しているが、「横ノリ中」、「横ノリ強」などの他の反応カテゴリについても、それぞれ3つに細分化した反応カテゴリ(小カテゴリ、小分類、サブカテゴリ)が定義されている。図28に示すように、脈拍が所定の基準よりも遅いか、所定の基準範囲内にあるか、所定の基準よりも速いかに応じて、3つの反応カテゴリが生成される。なお、説明を簡潔にするため、「1-1」、「1-2」、「1-3」といった枝番号をカテゴリIDに示しているが、もちろん「1」、「2」、「3」といった連番や任意の文字列をカテゴリIDに用いてもよい。
【0165】
ここで所定の基準としては、以下のいずれかである。
(G1)所定のしきい値による基準
例えば、脈拍数が「60以上かつ80未満」の範囲にあれば所定の基準内と判定する。脈拍が「60」未満であれば遅いと判定し、脈拍が「80」以上であれば速いと判定する。
(G2)ユーザの通常時の値による基準
例えば、ユーザの日常生活における通常の脈拍数(基準脈拍)を算出しておき、それを基準とする。また、時間帯別や活動状況別に基準脈拍を算出してもよい。また、実施例6における考え方と同様に、非再生時(コンテンツ再生前など)の脈拍を基準脈拍にしてもよい。そして、基準脈拍よりも所定値(例えば、10)以上少ない場合は「遅い」と判定し、基準脈拍よりも所定値以上多い場合は「速い」と判定する。あるいは、基準脈拍よりも所定率(例えば、10%)以上少ない場合は「遅い」と判定し、基準脈拍よりも所定率以上多い場合は「速い」と判定してもよい。
【0166】
図28に示す例では、コンテンツ再生時の脈拍が所定の基準よりも遅ければ、「クール(横ノリ弱クール)」という反応カテゴリが生成され、コンテンツ再生時の脈拍が所定の基準範囲内であれば、「ノーマル(横ノリ弱ノーマル)」という反応カテゴリが生成され、コンテンツ再生時の脈拍が所定の基準よりも速ければ、「ホット(横ノリ弱ホット)」という反応カテゴリが生成される。脈拍が速い場合、ユーザの状況として、「全身を動かしている」、「ジョギング等の運動をしている」、「非常に興奮している」等が想定される。一方、脈拍が遅い場合、ユーザの状況として、「安静にしている」、「横になっている」、「非常に落ち着いている」等が想定される。例えば、同じコンテンツをジョギングをしながら鑑賞しているユーザAと、ベッドに横になって鑑賞しているユーザBとでは、やはり感性、趣味、嗜好、価値観等が異なっている可能性が高い。本実施例によれば、これまでの実施例に比べて、さらに多くの種類の生体情報(多様な生体情報)をもとに、カテゴリデータを生成するため、コンテンツ再生中のユーザの多様な反応をより細かく(精度よく)カテゴリデータに反映させることができる。また、生体情報データをより多くの種類の反応カテゴリに対応させることができる。このため、カテゴリデータをもとに、ユーザ間の類似度やコンテンツ間の類似度をより精度良く算出することができる。このため、コンテンツに対するユーザの多様な反応をカテゴリデータに精度よく反映することができ、推薦情報をより精度良く作成できる。
【0167】
<他の実施形態>
尚、<実施例1>~<実施例7>を任意に組み合せることも、もちろん可能である。例えば、<実施例2>と<実施例4>と<実施例5>と<実施例6>とを組み合せてもよい。
以上、本開示を上記実施の形態に即して説明したが、本開示は上記実施の形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
【0168】
また、上述の推薦装置(情報処理装置)及び端末装置の任意の処理は、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0169】
また、コンピュータが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現される場合だけでなく、このプログラムが、コンピュータ上で稼動しているOS(Operating System)もしくはアプリケーションソフトウェアと共同して、上述の実施の形態の機能を実現する場合も、本開示の実施の形態に含まれる。さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットによって行われて、上述の実施の形態の機能が実現される場合も、本開示の実施の形態に含まれる。
【符号の説明】
【0170】
u1~u4 ユーザ
11~14 端末装置
21~24 生体センサ
31、32 基地局装置
4 コンテンツ配信サーバ
5 推薦装置
80 ネットワーク
510 通信部
520 処理部
521 生成部
522 算出部
523 作成部
530 記憶部
531 生体情報DB
532 ユーザ反応DB
533 区間情報DB
534 カテゴリ関連データ
535 ルールデータ
536 プログラム
540 入力装置
550 表示装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28