類似性データに基づいてプレイリストを生成するシステム及び方法
複数のプログラム参加者により提供されたメディアライブラリ一覧情報に少なくとも部分的に基づいてプログラム参加者に対するメディアプレイリストの生成を容易にする方法及び構成。個人が参加しているシステム又はプログラムはオンラインメディアストアである。プログラム参加者になることを決定した個人は、ライブラリに類似する音楽又は同一の音楽を有するプログラムへの他の参加者の母集団から導出されたデータに少なくとも部分的に基づいて音楽を編成、維持及び再生することに興味がある。プログラム参加者になるために、個々の音楽保有者はプログラム参加者のメディア一覧を表すデータを送出する必要があり、オンライン音楽ストアはそれを受信する必要がある。このデータは、一般に、個々のメディアアイテムのソースに関係なく参加者のメディアライブラリに現在含まれている個々のメディアアイテムの識別データを含む。システム又はプログラムは、異なるプログラム参加者のメディアライブラリの個々のメディアアイテムのペアが同時に存在することを判定する。この判定に基づいて、類似性評価は、異なるプログラム参加者のメディアライブラリにおける判定された同時に存在することに基づいて個々のメディアアイテムのペアの間に割り当てられる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メディア類似性データに関し、特に、メディア類似性データに基づいてメディアプレイリストを生成することに関する。
【背景技術】
【0002】
長い間、消費者製品のような物品間の関係を規定することは有用な仕事であると考えられてきた。初期の例は商標だろう。商標は、既に所有している別の製品を製造している同一企業による製品が同様の規格に従うだろうという消費者の期待に対する基準を提供する。今日、類似性関係が単純なブランド名をはるかに超えて発展している。いくつかのストアは、類似性データを使用して顧客が購入すべき又は少なくとも検討すべき新しいアイテムを提案する。そのようなストアは、ユーザが同一のショッピングセッションで閲覧する傾向にある製品又は同一ユーザにより頻繁に購入された製品を判定するためにユーザデータを追跡する。この目的で類似性データを使用するシステムは、各ファイル内の特性を識別し、それらのファイルを類似しているものとして識別する。
【0003】
類似性データを生成するこれらの各方法は、最適である可能性のある類似性データの生成を達成できないかあるいはそのようなデータの可能性を最大限に利用することを達成できない。類似性データを生成する既存の方法が達成できない1つの点は、従来の類似性データが新しい購入決定にのみ基づくためである。ユーザが既に所有しているものに関する情報は、ユーザが将来欲しいと考えるものの最も信頼できる標識であるが、ストアはその情報に注意を払っていない。
【0004】
デジタルオーディオプレーヤの出現により、ユーザはデジタルメディアの膨大なライブラリを蓄積している。多くの場合、パーソナルメディアライブラリは、CD、SACD及びDVD−A等の物理媒体から追加された曲を含む。2003年4月〜2008年6月までに50億曲を上回る曲が販売されたことから分かるように、ITUNES Store及び他のオンラインメディアプロバイダの紹介により、更に多くのユーザはデジタルメディアのオンライン購入を経験している。デジタルオーディオプレーヤによりユーザはどこでもメディアを実質的に楽しむことができるが、その一方で、益々成長するメディアライブラリは効果的に管理するのが益々困難になっている。音楽の場合、プレイリストは効果的に管理し且つ特定の曲をフィルタリングする1つの方法である。種々のデジタルメディアプレーヤにより、順序付けられた再生を行うために曲のグループ化を選択することでプレイリストを作成できる。
【0005】
プレイリストを手作業で作成することは、一般に、適切な曲を見つけるためにメディアの長いリストを探索し、所望の曲を選択し且つ望ましくない曲を無視するという冗長な処理を含む。
【0006】
音楽プレイリストは、ジャンル、アーティスト及びアルバム等の共通の音楽トラック属性に基づいて自動的に生成される。これらの自動的に生成されたプレイリストは、作成するのが単純であり且つ迅速であるが、大雑把にプレイリストを仕上げる。それらは含む曲が多すぎたり且つ/又は少なすぎたりすることが多い。更にそのような自動的な方法は、全ての関連するトラック属性が各メディアに対して入手可能であり且つ正確であることを前提とする。自動プレイリストを生成する1つの方法は、「スマート」プレイリストと呼ばれる。スマートプレイリストにより、ユーザは探索条件を指定し、探索条件にマッチングする曲をプレイリストに追加し、曲が条件を満たすか又は満たさない時にプレイリストを自動的に更新できる。スマートプレイリストは、メディアライブラリを管理するのに強力なツールである。しかし、スマートプレイリストも効果的なスマートプレイリストクエリを作成する際にユーザの音楽の熟知度、ライブラリ及び技術により制限される。ユーザは、音楽のスタイルに精通していない可能性がある。精通していないことにより、関連するアーティスト又は曲を除外してしまう可能性がある。ユーザのライブラリは不完全であるかもしれず、それによりそうでなければ完全であるスマートプレイリストとの差ができる。ユーザは、全ての所望の曲を含むように十分に広範にスマートプレイリストクエリを作成しない可能性がある。スマートプレイリストが全ての意図する曲を含むことを検証することは、第一にプレイリストを手作業で生成するより冗長になることが多い。
【0007】
メディアプレイリストを生成する従来の各方法の主な欠点は、互いに類似するメディアアイテムを判定することである。プレイリストを手作業で作成する時、ユーザは1つのメディアアイテムと別のメディアアイテムとの間の類似性を引き出す責任がある。自動化プレイリストジェネレータはプレイリストを構築するための条件に依存するが、これらの条件は広範すぎることが多い。同一の作者、アーティストによるメディア、あるいは同一の種類又はジャンルのメディアでさえは、所望のプレイリストを生成するほど十分に類似していないことが多い。スマートプレイリストは、メディアのより詳細な特性に基づいてこれらの問題の多くを解決しようとするものであるが、容易に定義できないユーザの好みを考慮していない。
【0008】
メディアライブラリが成長し、容量が益々増加するデジタルメディアプレーヤが入手可能であるため、これらのプレイリストに関する問題は悪化する可能性が高い。更にメディアライブラリが大きいほど、ユーザが各ファイルのコンテンツ及び特徴を記憶することは不可能であるため、類似するアイテムをグループ化するシステムが必要とされる。従って、従来技術において必要とされることは、メディアファイル間の類似性データを生成し且つプレイリストを作成及び管理するためにそのようなデータを使用する改善された方法である。
【発明の概要】
【0009】
本明細書で開示される概念の更なる特徴及び利点は以下の説明に示され、その説明から部分的に明らかになるか又は説明する技術を実施することにより学習されるだろう。概念の特徴及び利点は、特に添付の請求の範囲で指摘される機器及び組み合わせにより実現され且つ取得されるだろう。説明した技術のそれらの特徴及び他の特徴は、以下の説明及び添付の請求の範囲からより完全に明らかとなるか、あるいは本明細書で示すように開示した概念を実施することにより学習されるだろう。
【0010】
本発明は、多数のプログラム参加者により提供されたメディアライブラリ一覧情報に少なくとも部分的に基づいて、プログラム参加者に対するメディアプレイリストの生成を容易にする方法及び構成を説明する。この状況において、個人が参加している例示的なプログラム又はシステムは、有料で音楽トラックダウンロードを販売するストア等のオンラインメディアストアである。プログラム参加者になることを決定した個人は、ライブラリに類似する音楽又は同一の音楽を有するプログラムへの他の参加者の母集団から導出されたデータに少なくとも部分的に基づいて音楽を編成、維持及び再生することに興味がある。プログラム参加者になるために、個々の音楽保有者はプログラム参加者のメディア一覧を表すデータを送出する必要があり、オンライン音楽ストアはそれを受信する必要がある。このデータは、一般に、特に個々のメディアアイテム(曲)のソースに関係なく参加者のメディアライブラリに現在含まれている個々のメディアアイテムの識別データを含む。すなわち、アイテムは購入されていてもよく、CDから追加されていてもよく、あるいは取得され且つリスナーのライブラリ又は音楽の一覧に含まれていてもよい。この情報から、システム又はプログラムは、異なるプログラム参加者のメディアライブラリの個々のメディアアイテムのペアが同時に存在することを判定する。これは、数人のユーザにより特定された音楽アイテムのペアについて、様々な参加者についてそのペアが存在するライブラリの数が記録(カウント)されることを意味する。この判定に基づいて、類似性評価は、異なるプログラム参加者のメディアライブラリにおいて判定された同時に存在することに基づいて個々のメディアアイテム(曲)のペアの間に割り当てられる。すなわち、特定のメディアアイテム(曲)のペアがプログラムにおいて表現される多くのライブラリのうち10個のライブラリに存在すると判定(計算)される場合、そのペアの類似性評価が値として割り当てられうる。
【0011】
類似性評価の解析及び割り当ては、有意義なものになるように、複数のプログラム参加者のメディアライブラリ、すなわちシステムの全体の一覧に含まれた個々のメディアアイテムの少なくとも大部分の間でまとめられる。
【0012】
システム又はプログラムは、個々の参加者のメディアライブラリに含まれるアイテムに限定される、個々の参加者のための類似性評価をまとめられる。この情報は、多くの場合にMP3プレーヤと呼ばれるようなパーソナルデジタル音楽再生装置等においてエンドユーザとしてユーザのメディアのプレイリストを順序付けるために使用される。このように、個々のプレイリストは、多くのプログラム参加者により導かれた類似性データに基づいて生成される。
【0013】
異なるが関連する態様において、本発明は、多くのプログラム参加者により提供されたメディアライブラリ一覧情報に少なくとも部分的に基づくメディアプレイリストの生成を容易にするためにオンラインストアと協働するクライアント装置の観点から方法及び構成を更に説明する。本実施形態は、プログラム参加者のメディアライブラリのメディア一覧を表し且つ個々のメディアアイテムのソースに関係なくメディアライブラリ一覧に現在含まれている個々のメディアアイテムの識別データを含むデータをプログラム参加者のクライアント装置から(一般には、オンラインメディアストアのオンラインデータ処理センターとして本明細書において例示的に説明されるプログラムホストに対して)送信する方法、構成及びコンピュータプログラムに焦点を当てる。メディアアイテムのソースの例は、オンライン購入、購入したCDからの追加トラック及び他のソースからのダウンロードを含む。
【0014】
本実施形態において、次にプログラム参加者のクライアント装置は、複数(2人以上)のプログラム参加者から収集された累積データに基づいてまとめられたメディアアイテム類似性評価を受信する。ここで、累積データは、個々のメディアアイテムのソースに関係なくプログラム参加者のメディアライブラリに含まれた個々のメディアアイテムの識別データを含んでいる。この点に関して、ソースに基づくメディアアイテムとの間の主な差異は、各アイテムと関連付けられた記述的な識別メタデータの量及び品質である。
【0015】
上述のように、受信した類似性評価のまとめは、異なるプログラム参加者のメディアライブラリの個々のメディアアイテムのペアが同時に存在することを判定するために累積データを処理し且つ異なるプログラム参加者のメディアライブラリにおける判定された同時に存在することに基づいて個々のメディアアイテムのペアの間の類似性評価の割り当てを行うことを含む。本明細書で説明するように、この処理及びまとめは、以下に更に詳細に説明するようにプログラムホストのオンラインデータ処理センターにより例示的に実行される。
【0016】
類似性評価は、参加者のメディアライブラリに含まれた複数の個々のメディアアイテムに対してプログラム参加者のクライアント装置により受信される。それに基づいて、プログラム参加者のメディアライブラリに含まれた個々のメディアアイテムを含むメディアプレイリストが生成され、メディアアイテムは一般にはプログラム参加者により参加者のメディアライブラリから選択されたシード・メディアアイテムに対する類似性評価を有する。
【0017】
一例として、シード・メディアアイテムの選択は、選択するシード・メディアアイテムを提示するためにクライアント装置でスクロールホイール装置を操作し、選択ボタンを作動させることでクライアント装置のディスプレイ上のシード・メディアアイテムを選択することにより行われうる。
【0018】
別の例において、シード・メディアアイテムの選択は、所望のシード・メディアアイテムが表示されるまでタッチスクリーン上に表示されたメディアアイテムのリストをスクロールするために指をスイープする動作を使用してプログラム参加者のクライアント装置上のタッチスクリーンを操作し、シード・メディアアイテムにタッチして離すことでシード・メディアアイテムを選択することにより行われうる。
【0019】
メディアプレイリストは、特にポータブルパーソナルメディア再生装置又はパーソナルコンピュータの形態をとってもよいプログラム参加者のクライアント装置で生成されうる。
【0020】
プログラム参加者は、参加者による直前のデータアップロード以降に参加者のメディアライブラリに追加された追加のメディアアイテムの識別データを含むメディアライブラリ中のプログラム参加者の現在のメディア一覧を表す更新データを送信できる。同様に、更新データは、直前のデータ更新以降に参加者のメディアライブラリからメディアアイテムが除去されて存在しないことを示せる。更新データは、メディアアイテムに与えられた評価、再生回数及びスキップ回数等のメディアアイテムの使用に関する情報を含むことができるが、その情報はこれらに限定されない。これに基づいて、プログラム参加者はこの更新データを考慮してまとめられた更新済み類似性評価を受信する。このように、現在生成されたプレイリストは、新しく取得したメディアアイテムを含むことができ、最近削除されたメディアアイテムを考慮しない。
【0021】
更なる関連する態様において、本発明は、多くのプログラム参加者により提供されたメディアライブラリ一覧情報に少なくとも部分的に基づくメディアプレイリストを生成するためにプログラムホストのオンラインデータ処理センターと協働する1つ以上のクライアント装置を含む統合システム、方法及びコンピュータプログラムを更に説明する。データは、プログラム参加者のクライアント装置からプログラムホストのオンラインデータ処理センターに送信される。データは、クライアント装置上のメディアライブラリのメディア一覧を表し、クライアント装置上のメディアライブラリ一覧に現在含まれている個々のメディアアイテムの識別データを含む。プログラムホストのオンラインデータ処理センターにおいて、各プログラム参加者のメディア一覧を表すデータが複数のプログラム参加者から受信され、これは、上述したように個々のメディアアイテムのソースに関係なく各参加者のメディアライブラリに現在含まれている個々のメディアアイテムの識別データを含む。異なるプログラム参加者のメディアライブラリにおける個々のメディアアイテムのペアが同時に存在することが判定され、類似性評価は異なるプログラム参加者のメディアライブラリにおける判定された同時に存在することに基づいて個々のメディアアイテムのペアの間に割り当てられる。類似性評価は、クライアント装置上のメディアライブラリ一覧に含まれた複数の個々のメディアアイテムに対してプログラムホストのオンラインデータ処理センターからプログラム参加者のクライアント装置に送信される。クライアント装置上のメディアライブラリ一覧に含まれた個々のメディアアイテムを含むメディアプレイリストが生成され、メディアアイテムはクライアント装置上のメディアアイテム一覧から選択されたシード・メディアアイテムに対する類似性評価を有する。
【0022】
一般に、異なるプログラム参加者のメディアライブラリにおける個々のメディアアイテムのペアが同時に存在することは、プログラムホストのオンラインデータ処理センターにおいて判定され、個々のメディアアイテムのペアの間の類似性評価は、プログラムホストのオンラインデータ処理センターにおいて割り当てられる。
【0023】
個々のプログラム参加者に対する類似性評価データのまとめは、プログラム参加者のメディアライブラリに含まれた個々のメディアアイテム間の類似性評価データに限定される。このように、データセットは使用可能なデータセットに限定される。すなわち、実際にプログラム参加者のライブラリに含まれたメディアアイテムのみを含むプレイリストの生成に限定される。
【0024】
異なる参加者のメディアライブラリに含まれた実質的に同一のメディアアイテム間の直接の関連付け許可することを補助するものとして、プログラムに由来する識別子が参加者のメディアライブラリに含まれた個々のメディアアイテムに割り当てられる。すなわち、音楽トラックを一例として使用すると、アメリカの「Horse With No Name」のスタジオバージョンの全てのインスタンスには迅速に且つ効率的に処理するシステムに基づく短いIDが割り当てられる。類似性評価の計算を更に容易にするために、類似するメディアアイテムには同一の識別子が割り当てられうる。例えばアメリカの歌「Horse With No Name」のライブ録音したものには、全体のデータベース中の他のメディアアイテムに対する類似性を判定する時に、処理するシステムに基づく同一のIDが割り当てられうる。
【0025】
更に特定のメディアアイテムと関連付けられた情報は、第三者データソースから取得された追加のデータを関連付けることにより充実しうる。音楽を一例として使用すると、「ジャンル」は多くの場合に特定の音楽アイテムと関連付けられる特徴である。識別データが特定の音楽のタイトルに対してプログラム参加者から受信されるが、ジャンルタイプを含まない場合、そのような情報を関連付けた第三者の意見を聞くことができ、特定の音楽アイテムに対して第三者により供給されたジャンルタイプはプレイリスト生成処理において後で利用するためにデータと関連付けられる。
【0026】
このプログラム又はシステム全体の独自の態様は、メディア供給者(オンライン音楽ストア)のサーバ、参加者のメディア再生装置及び多くの場合は再生装置とオンラインストアのコンピュータシステムとの間の通信に対応するユーザのパーソナルコンピュータ等の中間機能において行われる。
【図面の簡単な説明】
【0027】
上述した実施形態が実現される方法を最適に説明し且つ本発明の他の利点及び特徴を規定するために、更に詳細な説明を以下に提供し、添付の図面に示す。図面は本発明の例示的な実施形態のみを示すが本発明の範囲を限定するものではなく、添付の図面を使用して追加の特性及び詳細を伴ってそれらの例を説明する。
【0028】
【図1】システムの一実施形態を示す図である。
【図2】方法の一実施形態を示すフローチャートである。
【図3A】、
【図3B】関連データを判定する方法を示す図である。
【図4】サンプルの購入マトリクスを示す図である。
【図5】マスタ類似性テーブルの列を示す図である。
【図6】個々の類似性テーブルを示す図である。
【図7】システムの一実施形態を示す図である。
【図8】方法の一実施形態を示すフローチャートである。
【図9】システムの一実施形態を示す図である。
【図10】メディア及び類似性テーブルをデジタルメディアプレーヤに同期させるシステムの一例を示す図である。
【図11】プレイリストの生成を開始するソフトウェアインタフェースの一例を示す図である。
【図12】方法の一実施形態を示すフローチャートである。
【図13A】、
【図13B】、
【図13C】、
【図13D】ユーザインタフェースの一例を示す図である。
【図14A】、
【図14B】、
【図14C】、
【図14D】、
【図14E】、
【図14F】、
【図14G】、
【図14H】ユーザインタフェースの一例を示す図である。
【図15】方法の一実施形態を示すフローチャートである。
【図16】購入するアイテムを推薦する方法の一実施形態を示すフローチャートである。
【図17A】、
【図17B】参加するためのユーザインタフェースの例を示す図である。
【図18A】、
【図18B】、
【図18C】、
【図18D】ユーザインタフェースの例を示す図である。
【図19A】、
【図19B】、
【図19C】、
【図19D】、
【図19E】、
【図19F】推薦データを表示するためのユーザインタフェースの例を示す図である。
【発明を実施するための形態】
【0029】
開示する方法及び構成の種々の実施形態について、以下に詳細に説明する。特定の実現例を説明するが、例示する目的でのみ説明することが理解されるべきである。他の構成要素、構成及びステップが本発明の趣旨の範囲から逸脱せずに使用されてもよいことが当業者には理解されるだろう。
【0030】
図1を参照すると、例示的なシステムは、処理装置(CPU)120と読み出し専用メモリ(ROM)140及びランダムアクセスメモリ(RAM)150等のシステムメモリを含む種々のシステム構成要素を処理装置120と結合するシステムバス110とを含む汎用演算装置100を含む。他のシステムメモリ130も使用可能であってもよい。システムは、2つ以上のCPU120を有する演算装置又はより高い処理能力を提供するために共にネットワーク化された演算装置のグループ又はクラスタで動作してもよい。システムバス110は、メモリバス又はメモリコントローラ、周辺バス及び種々のバスアーキテクチャのうちのいずれかを使用するローカルバスを含むいくつかの種類のバス構造のうちのいずれの構造であってもよい。ROM140等に格納された基本入出力(BIOS)は、起動中等に演算装置100内の要素間で情報を転送するのを助長する基本ルーチンを提供してもよい。演算装置100は、ハードディスクドライブ160、磁気ディスクドライブ、光ディスクドライブ又はテープドライブ等の記憶装置を更に含む。記憶装置160は、ドライブインタフェースによりシステムバス110に接続される。ドライブ及び関連するコンピュータ可読媒体は、演算装置100に対してコンピュータ可読命令、データ構造、プログラムモジュール及び他のデータの不揮発性記憶装置を提供する。1つの側面において、特定の機能を実行するハードウェアモジュールは、機能を実行するためにCPU、バス及びディスプレイ等の必要なハードウェア構成要素と関連して有形のコンピュータ可読媒体に格納されたソフトウェア構成要素を含む。基本構成要素は当業者には既知であり、適切な変形例は、装置が小型のハンドヘルド演算装置であるか、デスクトップコンピュータであるか又は大型のコンピュータサーバであるか等装置の種類に依存して考慮される。
【0031】
本明細書で説明する例示的な環境がハードディスクを採用するが、コンピュータによりアクセス可能なデータを格納できる磁気カセット、フラッシュメモリカード、デジタル汎用ディスク、カートリッジ、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、ビットストリームを含む有線又は無線信号等の他の種類のコンピュータ可読媒体が例示的な動作環境において使用されてもよいことが当業者には理解されるべきである。
【0032】
演算装置100とのユーザ対話を可能にするために、入力装置190は、音声のためのマイク、ジェスチャ又は図形入力のための接触感知スクリーン、キーボード、マウス、モーション入力及び音声等の任意の数の入力機構を表す。入力は、音声検索クエリの開始を示すために提供者により使用されてもよい。装置出力170は、当業者には既知の1つ以上の複数の出力機構であってもよい。いくつかの例において、マルチモーダルシステムは、ユーザが演算装置100と通信するために複数の種類の入力を提供できるようにする。一般に通信インタフェース180は、ユーザ入力及びシステム出力を制御及び管理する。いかなる特定のハードウェア構成においても動作する開示された方法及び装置には制限がないため、基本的な特徴は、それらの発展に伴って改善されたハードウェア又はファームウェア構成と容易に置換できる。
【0033】
説明を分かり易くするために、例示するシステムの実施形態は、個々の機能ブロック(「プロセッサ」とラベル付けされた機能ブロックを含む)を含むものとして提示される。これらのブロックが表す機能は、共用ハードウェア又は専用ハードウェアを使用して提供されてもよい。共用ハードウェア又は専用ハードウェアは、ソフトウェアを実行できるハードウェアを含むがそれに限定されない。例えば図1に提示される1つ以上のプロセッサの機能は、単一の共用プロセッサ又は複数のプロセッサにより提供されてもよい。(「プロセッサ」という用語の使用は、ソフトウェアを実行できるハードウェアのみを示すものとして解釈されるべきではない。)図示する実施形態は、マイクロプロセッサ及び/又はデジタル信号プロセッサ(DSP)ハードウェア、以下に説明する動作を実行するソフトウェアを格納する読み出し専用メモリ(ROM)、並びに結果を格納するランダムアクセスメモリ(RAM)を含んでもよい。超大規模集積回路(VLSI)ハードウェアの実施形態、並びに汎用DSP回路と組み合わされたカスタムVLSI回路の実施形態が更に提供されてもよい。
【0034】
種々の実施形態の論理動作は、(1)汎用コンピュータ内のプログラマブル回路上で実行し且つコンピュータにより実現されるステップ、動作又は手順のシーケンス、(2)専用プログラマブル回路上で実行し且つコンピュータにより実現されるステップ、動作又は手順のシーケンス、並びに/あるいは(3)プログラマブル回路内の相互接続されたマシンモジュール又はプログラムエンジンとして実現される。
【0035】
上述した演算装置は、多くのユーザから導出された類似性データを生成及び使用するのに特に有用である。統計的類似性は、複数のユーザのライブラリにわたる2つ以上の曲の関連の発生率を判定するための数学的解析に基づいて判定される。この類似性データは、特に、高品質のプレイリストを生成すること、購入することをユーザに推薦する提案製品を決定すること、曲を新たに選択してユーザのメディア装置を最新にしておくことを含む種々の有用な機能に対して使用されうる。一例において、ユーザは、広範なユーザがアクセスできるサーバに対して自身のメディアデータベース全体のコンテンツに関連する情報をアップロードしてもよい。全体のユーザのライブラリにおいて2つ以上のメディアアイテムが同時に存在する頻度に基づいて、メディアアイテムは互いに関連し、類似するものとして記録される。この類似性に基づいて、サーバはシードトラックの選択に基づいて1つ以上の類似する曲を含むようにプレイリストを作成できるか、あるいはサーバはユーザのライブラリにない類似する曲の購入を推薦できる。システムのこれらの特徴及び他の特徴について、以下に更に詳細に説明する。説明した技術及び製品の多くの特徴はApple Inc.のITUNES Store等のオンライン音楽ストアを参照して説明するが、その一方でシステムはシステムの好適な実施形態を実行するためにどのようなメディア販売であれ全く必要としないことが理解されるべきである。更に、一部の説明は1つの特定の形態のメディアのみを参照するかもしれないが、本明細書で説明する原理はオーディオ、ビデオ、静止画、文書及び他の種類のデータファイル等のいかなるメディアにも適用可能である。
【0036】
・サーバ
・アップロード
図2は、類似性データを生成する方法の一実施形態を示す。方法は、プログラム参加者のパーソナルメディア一覧に関連するユーザデータをサーバにより受信すること(202)を含む。ユーザデータは、通常はメタデータの形式であるユーザのライブラリ中の個々のメディアアイテムに関する識別情報を含む。ユーザのライブラリ内のメディアアイテムの発生元は、本システムと関連していない。説明される本方法が音楽コンテンツストアにより採用される場合であっても、本実施形態は、サーバがソースに基づいてファイル情報を区別しないため、すなわち全てのメディアアイテムが同一のものとして処理されるため、ユーザのファイルが音楽ストアに由来することを要求しない。方法は、CD、DVD又はHD−DVD等の物理媒体、並びに物理媒体がデジタル形式にコード変換され且つユーザのメディアライブラリに入力される例に同等に適用される。好適な一実施形態において、サーバは、ユーザがライブラリ中の全てのメディアアイテムに関する情報をアップロードすることを要求せず、限られた数のメディアアイテムのみに関する情報又はメディアアイテムに関する部分情報のみがサーバにより受け入れられる。
【0037】
・ユーザデータの識別
方法は、ユーザデータを特定のメディアアイテムとして識別すること(203)を含む。このステップは、ファイル名、メタデータを検査すること含む複数の方法のうちのいずれか1つの方法で達成されてもよく、あるいはファイルの一部分の詳細な解析を介して達成されてもよい。音楽トラックの例において、サーバは種々の機構を介して音楽トラックを識別できる。例えば約8分の長さのLed ZepplinのStairway to Heaven等の所定のトラックは、アーティスト、曲名、ジャンル、トラックの長さ、アルバム名、トラック番号等を識別するファイル名又はメタデータを含むファイルと関連付けられた種々のデータを有することができる。このデータの一部分は、サーバがアルバムLed Zepplin IVのLed ZepplinのStairway to Heavenとしてファイルを識別するのに十分である。あるいは、ファイルを識別するために、市販の曲識別サービスが使用可能である。音楽トラックの一部分をサンプリングすることにより又は購入ストアから一意の識別子を認識することにより、あるいは曲のデジタル・フィンガプリントを認識することにより、トラックを識別できる。例えばサーバ又はサービスは、曲がITUNES Storeから購入されたこと及びファイルのメタデータがITUNES Store専用の一意の識別子を含むことを認識できる。サーバはその識別子によりメディアアイテムを識別できる。メディアアイテムを認識する多くの他の可能な方法が既知であり、それらの全ての方法が開示される方法及び構成により含まれることが理解されるべきである。
【0038】
・関連付け
各メディアアイテムは、ステップ204において一意の識別子と関連付けられ、ステップ205でテーブルに格納される。サーバが以前にその曲に遭遇したことがない場合、サーバはそのトラックに新しい識別子を割り当てる。しかし、殆どのメディアアイテムの場合、識別子は既に割り当てられており、メディアはその識別子と関連付けられることのみが必要である。Stairway to Heavenの例を継続すると、メディアアイテムが1度トラックとして識別されると、サーバはそのトラックに対する一意の識別データをルックアップできる。この処理は、サーバにより受信されたメディアアイテム毎に繰り返される。
【0039】
サーバは殆どの曲と関連付ける識別子を既に有しているが、場合によっては、メディアアイテムはサーバにとって全く新しいものであるか又は少なくとも全く新しいものとして認識される。そのような場合、サーバは新しい識別子を発行し且つそれをメディアアイテムに割り当てる。例えば、新しいアーティスト又はガレージバンドがサーバにより認識されない場合がある。しかし、サーバはそのアーティストのトラックに対して新しい識別子を発行し、異なるユーザのライブラリで同一のトラックに遭遇した時に以前に発行されたのと同一の識別子をそのトラックに割り当てる。
【0040】
サーバは、サーバにとって新しいメディアアイテムに対して新しい識別子を供給しない場合がある。例えば、メディアアイテムはユーザのライブラリにおける独自のものである可能性があり、従って、そのアイテムについて同時に存在することはないため、識別子を提供することは何の価値もないかもしれない。従って、システムは全ての新しいアイテムに対して一意の識別子を供給する必要がない。システムは、他のユーザがライブラリにそのメディアアイテムを有する場合、後でそのトラックに対して一意の識別子を供給でき且つそのアイテムに対して類似性データを供給できる。
【0041】
・マスタ購入マトリクス
ステップ205において、各メディアアイテムはマスタ購入マトリクスに格納される。マスタ購入マトリクスの一例を図4に示す。購入マトリクス402は、テーブル中の一意の各メディアアイテムに対応する列404を含むテーブルである。テーブルがITUNES Store等の音楽コンテンツ販売側によりホストされる実施形態において、購入マトリクスは、ITUNES Storeから購入することが可能な全てのメディアアイテムをまた含むだろう。マスタ購入マトリクス404の行は、ユーザの一意のユーザ識別番号406と関連付けられる。この識別コードは、システムではなくユーザが知っている可能性がある匿名識別コードによりユーザを表す。従って、マスタ購入マトリクスは、参加する全てのユーザからプログラムサーバにより受信された全てのファイルのレコードを含む。
【0042】
購入マトリクスが全てのプログラム参加者及び各プログラム参加者のライブラリ中の全てのメディアに対応するため、購入マトリクス402は非常に大きい可能性が高い。例えば、音楽ストアは約225万のユーザを有し且つ500万を上回る曲を有する。そのようなオンラインストアに対する購入マトリクスは約225万行×500万列のテーブル、すなわち1兆1,250億個の個別のセルから成るテーブルになる。ITUNES Storeは、5,000万を超える登録ユーザを有し且つ1,000万を超える曲を含む。そのようなオンラインストアに対する購入マトリクスは、約5,000万行×1,000万列のテーブル、すなわち500兆個の個別のセルから成るテーブルになる。
【0043】
ユーザのライブラリ中の曲の場合、そのユーザ及びその曲に対応するマトリクス中のセルがマーク付けされる。マーク付けは、ブーリアンのように単純なデータタイプで行われてもよい。1は購入408を示し、0は未購入410を示す。ブーリアン・データタイプが許可するより多くのデータが格納される必要がある場合、他のデータタイプが使用されてもよい。マトリクスが非常に大きくなる可能性があるが、殆どのユーザが自身のライブラリに相対的に少ない曲(500万と比較して)を有するため、マトリクスは非常に密度が低い。各ユーザ行は少ないエントリのみを含むかもしれないが、その一方で、各曲列は数十、数百、数千又はより人気のある曲に対しては数百万個のエントリを含んでもよいが、購入マトリクスの大部分は空である。
【0044】
マスタ購入マトリクス又はテーブルは、ライブラリへの新しい曲の追加、ファイルメタデータの変更又はファイルの削除等ユーザライブラリの変更に伴って更新を必要とすることが理解されるべきである。購入マトリクスはリアルタイムに更新されてもよく、あるいは後日挿入するためにトランザクションがキューに入れられてもよい。キューに入れるための1つの構成は、毎日午後11:30等、定期的に購入マトリクスにトランザクションを挿入する。キューに入れる別の構成は、ある最小の数のトランザクションの挿入準備が整った場合に購入マトリクスにトランザクションを挿入する。
【0045】
購入テーブルに対する更新は、全てのメディアアイテムに対してステップ203及び204を繰り返すことを必要としない。既に識別され且つプログラムに基づく識別番号と関連付けられたメディアアイテムは、識別及び関連付けステップを必要としない。これは、ユーザのデータが最初にテーブルに所属されられた時に識別及び関連付けステップが既に実行されたためである。一実施形態において、サーバは、メディアアイテムをその識別データと関連付けると、識別データをメタデータに格納するためにユーザに再度送出できる。将来のサーバとの通信において、サーバは関連した識別データを有するメディアアイテムに対する更新データを受信でき、それによりステップ204を再度行なう必要がなくなる。
【0046】
いくつかの実施形態において、購入マトリクスは、販売の時間及び日付、メディアの形式、メディアが高精細であるか又は標準品位であるか、トランザクションがギフトであるか又は支払われたものであるか、再生することを許可された装置、等の各トランザクションに関する追加の情報を含むより大きいテーブル又はマトリクスの一部であってもよい。購入マトリクスは、離散的な別個のテーブル群であってもよく、あるいはより大きなテーブル又はマトリクスに完全に統合されてもよい。
【0047】
更に別の実施形態において、マスタ購入マトリクスは、ユーザのメディア一覧に関するアップロードされた情報を含む必要がない。マスタ購入マトリクスは、購入情報で本質的に構成される。購入情報は、ユーザによりオンラインストアから購入されたアイテムのみであってもよく、あるいは追加の情報を含むことができる。本実施形態において、テーブルは、各ユーザにより購入された全てのアイテムのリストを含むことができる。依然として、マスタ購入マトリクスは、ユーザのメディア一覧のコンテンツに関する類似性データの少なくとも制限された集合を含む可能性が高い。
【0048】
・協調フィルタリングエンジン
図2に示す方法は、ステップ206においてマスタ購入マトリクス上で協調フィルタリングエンジンを実行して類似性データを生成し、ステップ207において類似性データをマスタ類似性テーブルに格納することを含む。類似性データは、マスタテーブルのいくつかの他のメディアアイテムと同時に存在するメディアアイテムの発生率から導出される。ユーザが同一の2つのメディアアイテムを有する場合、それらのメディアアイテムは同時に発生すると考えられる。複数のユーザのライブラリにおいてそのように同時に発生することは、2つのメディアアイテムが「類似する」ことを示す。2つのメディアアイテムがより頻繁にプログラム参加者のライブラリで同時に発生する程、メディアアイテムはより類似すると考えられる。
【0049】
協調フィルタリングエンジン308は、マスタ購入テーブルの個々のメディアアイテム間の類似性を計算する。一実施形態において、協調フィルタリングエンジンは、データベース中の曲のペアがプログラム参加者のライブラリで同時に存在する回数を記録するプログラムのように単純である可能性がある。
【0050】
一実施形態において、協調フィルタリングエンジンは、多次元ベクトル空間において各アイテムをベクトルとして表すことにより2つの異なるメディアアイテム間の類似性を計算できる。次元数は、購入マトリクス306におけるユーザ数と等しい。アイテム間の関連は、ベクトル間の距離を計算することにより行われる。純粋な三角関数又は変更した三角関数(例えば、余弦関数又は正弦関数)は、ベクトル間の距離を計算するために使用される。2つのベクトルが小さな角度を有する場合、それらのベクトルは類似すると考えられ、2つのベクトルが大きな角度を有する場合、それらのベクトルはより低い類似性を有すると考えられる。この処理は、マスタ購入マトリクスの各曲をマスタ購入マトリクスの他の全ての曲と比較することにより実行される。
【0051】
別の実施形態において、協調フィルタリングエンジンは、同時に存在するデータの発生率以上のものを考慮に入れることができる。例えば、類似性評価において全体の発生率を考慮に入れることができる。例えば曲A及びBは、曲A及びCと同一の頻度で同時に存在するかもしれないが、曲Bが全体的により普及している場合、曲A及びBは曲A及びCより高い類似性スコアを有することができる(すなわち、より類似していると考えられる)。種々の曲の人気を判定する1つの方法は、各曲が全体のデータセットにおいて発生する頻度を測定することである。
【0052】
同様に、使用のついての入力等の類似性スコアに影響を及ぼす協調フィルタリングエンジンへの他の入力が存在する。例えば、メディアアイテムに与えられた評価、再生数及びスキップ数は全て、メディアアイテム間の類似性を判定する協調フィルタリングエンジンへの入力でありうる。
【0053】
図3は、各曲をベクトルとして表す概念を示す。図3aにおいて、マスタテーブルにおけるメディアID629に対するベクトルはユーザ2、899、1,343及び2,000のライブラリにおける曲の存在に基づいてマッピングされている。同様に、マスタテーブルにおけるメディアID1,263,999に対して、ベクトルは、ユーザ2、12、444、1,343のライブラリにおける曲の存在に基づいてマッピングされている。これらの2つのベクトル間の角度は、20°であると測定され、約0.939の余弦値を計算する。余弦値は、メディアID629とメディアID1,263,999との間の関連値を表す。図3bは、メディアID629とメディアID15との間の関連を判定するための別の関連計算を表す。この例において、ライブラリにメディアID629及びメディアID1,263,999の双方を有するユーザはいないため、これらの2つのベクトル間の余弦値は約−0.707である。スコアが低い程、メディアID629及び1,263,999が互いに密接に関連付けられないことを示す。
【0054】
別の実施形態において、アイテム間の類似性スコアを計算するために、他の関数が使用可能である。例として、類似性スコアは、特定のアイテムにより構成される、アイテムの合計の同時存在回数のパーセント比を考慮に入れる方法で計算される。例えばアイテムAはアイテム1〜5と同時に発生し、アイテムAの合計の同時存在回数はアイテム1〜5との同時存在回数の合計である。例えばアイテムAがアイテム1と2回同時に存在し、アイテム2と2回同時に存在し、アイテム3と2回同時に存在し、アイテム4と10回同時に存在し且つアイテム5と2回同時に存在した場合、アイテムAは合計で18回の同時存在回数を有する。特定のペアによる合計の同時存在回数のパーセント比を学ぶことは有用である。例えばアイテム4は、アイテムAの全ての同時存在回数の約55%であるため、Aの同時存在回数の合計のわずか約11%を表す他のどのアイテムより強くアイテムAと関連付けられる。このデータは、類似性データを判定するために使用される。類似性データを計算する2つの特定の方法が上記で示されるが、2つのアイテム間の類似性を計算する任意の数の他の方法が使用可能であることは理解されるだろう。
【0055】
上記処理は、全てのアイテムと全ての他のアイテムとの間で定期的に計算される。この処理は、時間が過度にかかる可能性があるため、一般にオフラインで実行される。これは、月に1回、週に1回、1日に1回、又は計算能力が許す頻度で実行される。
【0056】
・類似性テーブル
図2のステップ207において、協調フィルタリングエンジンによりまとめられた関連データは、マスタ類似性テーブルを生成するために使用される。図5は、マスタ類似性テーブル502に格納されたデータを示す。所定のメディアアイテムに対して、プログラムに由来する識別データ504によりメディアアイテムを特定するエントリがマスタ類似性テーブルに存在する。更に、そのメディアアイテムに類似するか又は関連すると考えられる他の各メディアアイテムがテーブル508に一覧表示される。このように、テーブル502はマスタ購入マトリクス402の各メディアアイテムに類似する全てのメディアのリストを管理する。
【0057】
アイテムは、メディアアイテムに類似するか又は関連すると考えられるのに十分なスコアを有する場合、マスタ類似性テーブルに含まれる。どの所定のアイテムに対しても、他のアイテムの殆どは全く類似しない。類似性スコアが十分に低い場合、類似性テーブルに含まれない。類似性スコアが十分に低いか又は高いかを判定するための閾値は、動的であっても静的であってもよい。例えば類似性スコアが−1〜1の範囲である場合、閾値は静的に0.5に設定されてもよい。尚、−1は全く類似しないことを示し、1は非常に類似することを示す。閾値は、マスタ購入テーブルの曲の存在回数に基づいて動的に設定されてもよい。例えば、曲の発生が100回未満である場合は閾値0.9であり、曲の発生が5,000回未満である場合は閾値0.7であり、曲の発生が25,000回未満である場合は閾値0.6であり、曲の発生が25,000回以上である場合は閾値0.5である。閾値は、利用可能な記憶容量又は他のどのパラメータに基づいてもよい。
【0058】
換言すると、マスタ類似性テーブル502は、類似性スコアの全て又は一部を取り入れてもよい。マスタ類似性テーブルがある特定の記憶サイズに適合するように制約される必要がある場合、最適な類似性又は最強の類似性のみが含まれ、残りは除かれる。同様に、十分なプログラム参加者がメディア一覧にアイテムを有さない場合、そのアイテムは除外される。これに対する1つの変形例は、アイテムがマスタ類似性テーブルに含まれるのに適当であるためにはユーザのライブラリにおいて最低限度の回数発生することを要求することである。例えば2つのアイテムが5回以下の同時存在回数を有する場合、すなわち5人以下のユーザが双方のアイテムを有する場合、システムは残りのスコアを計算しない。
【0059】
別の実施形態において、マスタ類似性テーブルは等価関係を更に格納できる。例えばテーブル502のメディアID17は、1990年に演奏されたLuciano Pavarottiによる「O Sole Mio」に対応してもよい。Enrico Caruso及びMario Lanza等のアーティストによる「O Sole Mio」の複数の演奏がオンラインストアで入手可能であり、等価なメディア506であると考えられる。他の注目すべき種類の等価なメディアは、公式のアルバムトラック、生楽器によるアコースティックトラック、ライブコンサートトラック、他のバンドによるカバートラック及び同一曲の外国語トラックを含む。単一の曲は列挙された全ての形式及びさらなる形式で存在しうる。等価であるかの判定は、手動で実行可能であり、あるいは実際のメディアコンテンツ、メタデータ及び/又は他の入手可能なデータに基づいて自動的に実行可能である。各々に対する等価なメディアIDは、メディアID504と一緒に提示され、それらの各々が同一であると考えられること及びそれらが共にカウントされることを特定する。
【0060】
マスタ類似性テーブルのIDは、メディアに索引を付けるために購入マトリクス306で使用されるIDと同一であってもよく、あるいは完全に異なる方式に基づいてもよい。2つのIDがそろっていない場合、一方のIDを他方のIDに変換するために変換機能又は参照変換テーブルが提供される。2つのIDの間で共有される共通のID空間は、性能を犠牲にせずに管理することが最も容易で単純である可能性が高い。
【0061】
・ユーザ類似性テーブル
マスタ類似性テーブルは類似するメディアの集合を含むが、パーソナルメディアライブラリは類似するメディアの集合のより小さいサブセットをほぼ確実に含む。従って、制約された集合、すなわち個別類似性テーブルが生成される。制約は、所定のライブラリにおけるメディアの利用可能性に適応される。制約された集合は、メディアライブラリで見つけられない類似するメディアに対する参照を更に含んでもよい。これは、あるユーザを提案されたメディアの購入のターゲットとするために行われる。共通のメディアの好みを有する他のユーザが提案された購入品を自身のライブラリに既に有するため、そのようにターゲットされた提案された購入品はそのユーザにとって更に魅力的であるだろう。
【0062】
マスタ類似性テーブル502が計算され且つ所属が行われると、個別類似性テーブル602が生成される。図6は、個別類似性テーブルを示す。個別類似性テーブル602は、個人のメディアライブラリに含まれた各曲に対するメディアID604及びそのメディアIDと関連付けられたメディアを含む。関連付けられたメディア606を中括弧で示す。個別類似性テーブル中の関連付けられたメディアは、アイテムのマスタ類似性テーブルに配置されソートされた類似するアイテム508のリスト全体のサブセットである。どのメディアが個人のメディアライブラリに存在するかに基づいて、サブセットは選択される。換言すると、個人のライブラリ中の曲毎に、個人のライブラリに含まれる類似するメディアのリストが生成される。
【0063】
個別類似性テーブルは、サーバにおいてサーバにより生成され且つクライアント装置によりダウンロードされるか、あるいはユーザのメディア一覧のアイテムに対する類似性データのみをダウンロードすることによりクライアントにより作成される。類似性テーブルが作成される場所に関係なく、処理は同一である。メディアアイテムは、アイテムのプログラムに由来する類似性識別データによりマスタ類似性テーブルにおいてルックアップされる。次に、システムはそのメディアアイテムに対する類似性データの場所を索引でルックアップできる。システムは、ルックアップ動作の結果に基づいて類似するアイテムを検索できる。これらのアイテムは、ユーザのメディアライブラリのメディアアイテムと更に比較され、ユーザのメディアライブラリに存在するアイテムのみが個別類似性テーブルに格納される。更なる一実施形態において、ある非常に類似するトラックは、個別類似性テーブルに記録され、ユーザに対して購入を提案するために使用されうる。
【0064】
好適な一実施形態において、ライブラリ毎に少なくとも1つの個別類似性テーブルがサーバにより生成可能である。クライアントは、サーバにライブラリデータを送出でき、サーバは、ライブラリのアイテムを識別でき、そのライブラリのアイテムに関するマスタ類似性テーブルから類似性データを抽出することによりそのライブラリに対する個別類似性テーブルを生成できる。結果として得られた個別類似性テーブルは、プレイリストを生成する際に使用するためにクライアントにダウンロードされる。同一の個別類似性テーブルは、周辺装置に対する個別類似性テーブルを作成するためにクライアントにより使用される。
【0065】
ユーザは、これらの個別類似性テーブルを使用して、ユーザの母集団全体から導出されたデータにより利益を得る。ユーザは、プレイリストの作成、新しいメディア購入に対する提案及び種々の他の可能性を受信するために類似性データを使用できる。
【0066】
・協調フィルタリングに影響を及ぼすユーザデータ
プレイリストが類似性データに基づいて生成される実施形態において、ユーザはプレイリスト中の聴きたくない曲をスキップすることによりフィードバックを提供できるか又はシステムはフィードバックを要求できる。あるいは、ユーザはプレイリスト中の聴くことを楽しんだメディアアイテムにポジティブな評価を与えられる。そのようなデータは、クライアント装置からアップロードされ且つサーバにより受信される。フィードバックデータは、マスタ購入インデックス内又は別個のテーブル内等の任意の数の種々の様式で格納される。フィードバックは、ITUNES Store等のオンライン音楽ストアからも導出可能である。本実施形態において、オンラインストア304におけるユーザ活動により、フィードバックデータが生成される。オンラインストアにおけるユーザ活動は、メディアアイテムの購入、メディアアイテムのプレビュー、特定のメディアアイテムタイトルの探索、特定のメディアアイテムアーティストの探索又は特定のメディアアイテムジャンルの探索を含むことができる。フィードバックデータは、アイテム間の関連スコアを変更するために協調フィルタリングエンジンにより使用可能である。
【0067】
母集団からのフィードバックデータは、削除しない場合には存在する関連を削除しうる。例えば、Simon and Garfunkelによる曲Mrs. Robinsonは、Lemonheads又はFrank Sinatraによる同一曲との強い関連性を受け入れてもよいが、Simon and Garfunkelのバージョンに基づいてプレイリストを生成しようとするユーザは、異なるバージョンを好まない可能性があり、これは異なるジャンルのカバー曲であるからかもしれない。ある期間にわたり、曲のスキップ又はプレイリストからのアイテムの除去等のフィードバックデータは、関連されたアイテムのリストから一方又は双方のカバーバージョンを削除するために使用される。
【0068】
他の実施形態において、更にユーザフィードバックは、協調フィルタリングエンジンにより使用されるために、最初にサーバにフィードバックを送出せずにクライアント上で直接類似性データを変更するために使用されうる。これらの実施形態において、ユーザフィードバックデータは、最初に同期することなく、クライアント装置上の個別類似性テーブルに格納された関係に直接影響を及ぼすことができる。あるいは、類似性テーブルは変更されないが、制約がユーザフィードバックデータに基づいて生成されうる。例えばユーザが類似するアイテムを頻繁にスキップする場合、クライアント自体は、個別類似性テーブルからそのアイテムを除去することによりそのアイテムを類似するものと考えなくなってもよく、あるいはプレイリストアルゴリズムにおける制約等の他の手段により頻繁にスキップされたアイテムの追加がプレイリストに含まれることを防止できる。
【0069】
・類似性テーブルの更新
時間とともに、アーティストが新しい音楽を作成し、及び新しいアーティストが登場すると、新しいメディアアイテムはオンラインストア及び更にはマスタ購入テーブルに追加される。従って、オンラインストア304の既存のアイテムとオンラインストアの新しく追加されたアイテムとの間の関連性が形成されてもよい。例えばユーザが自身のメディアライブラリに曲Aを有し、その後オンラインストア304で最近紹介された新しく追加された曲Bを購入する場合、曲Aと新しく追加された曲Bとの間の新しい関連性が形成されてもよい。ユーザが新しく追加された曲Bを購入する場合、トランザクションが購入マトリクス306に記録され、更新された購入マトリクス306が生成される。あるいは、曲BはCDからトラックをコピーすることによりユーザのライブラリに追加されていてもよい。そのような状況において、結果は同一でありうる。曲A及び曲Bの双方がユーザのメディアライブラリにある限り、この同時存在は、更新されたマスタ購入マトリクスに記録される。
【0070】
協調フィルタリングエンジン308は、上述したようにアイテム316の更新されたマスタ類似性テーブルを生成するために、更新済み購入マトリクス306からの情報を使用する。その後、更新済みの個別類似性テーブル322は、更新済みマスタ類似性テーブル316の更新されたアイテムのみを抽出することによりユーザ毎に生成される。あるいは、完全に新しい個別類似性テーブルが、新しいデータに基づいて作成可能である。
【0071】
・システムの概要
図7は、上述した実施形態を実行できる1つのシステムの一例を示す。購入マトリクス306は、各ユーザのライブラリの全てのメディアアイテムに関するデータを格納する。協調フィルタリングエンジン308は、他のメディアの各々に対して各メディアアイテムが同時に存在することを、購入マトリクス306のデータを使用して判定する。協調フィルタリングエンジン308は、プログラム参加者の母集団にわたるユーザの好みに従って類似性スコアを調整するために、オブジェクト324及び326に格納されたフィードバックデータをオプションとして使用できる。協調フィルタリングエンジンの出力は、所定のメディアアイテム318に類似すると考えられる全てのメディアアイテム320を格納することによりマスタ類似性テーブルに格納される。類似するメディアアイテム320は、関連性の最も高いアイテムから関連性の最も低いアイテムの順序で提示されるようにソートされる。
【0072】
オンライン管理ツール304は、クライアント側302及びサーバ側301に対するインタフェースとしての役割を果たす。好適な一実施形態において、オンライン管理ツール304は、オンラインストアと関連付けられる。一実施形態において、オンラインストアは、類似性データを生成する際に協調フィルタリングエンジン308により使用されるデータ310を生成してもよい。しかし、クライアント302は、クライアント302に格納されたメディアアイテムに関する情報をアップロードし且つサーバ301から類似性データをダウンロードするように働く。クライアントに固有の類似性データは、クライアント装置302で個別類似性テーブル322を生成するためにオンライン管理ツール304を使用してマスタ類似性テーブル316から直接ダウンロードされてもよい。あるいは、個別類似性テーブルは、サーバ301により生成され且つクライアント装置302にダウンロードされてもよい。更にクライアント装置は、より適切な類似性データを生成するのを助けるためにオンライン管理ツール304を介して協調フィルタ308にフィードバックデータを通信できる。
【0073】
・クライアント
図7に示すように、クライアント装置302は、様々な形態のうちいずれか1つの形態をとれる。クライアント装置302は、ポータブルデジタルオーディオプレーヤ、ポータブルデジタルビデオプレーヤ、スマートフォン、デスクトップコンピュータ、ラップトップコンピュータ、テレビセットトップボックス及びメディアを再生できる他の何らかの装置等の装置を含む。クライアント装置は、デスクトップコンピュータ又は他の中間装置を介してオンラインストア304と同期するオフラインポータブル装置、例えばケーブル接続を介してデスクトップコンピュータと同期するIPODデジタルオーディオプレーヤ、無線ルータを介して無線で同期するIPOD TOUCHデジタルオーディプレーヤ又はセルラ接続を介して無線で同期するスマートフォン等を含むことができる。上記説明から明らかであるように、クライアント装置は種々のメディアアイテムの一覧を含む。クライアント装置のユーザが類似性データの使用により利益を得たい場合、ユーザはオンラインインタフェースを介してサービスにアクセスする。あるいは、クライアント装置は、インターネットを介してリモートサーバと通信するITUNESデスクトップアプリケーション等のクライアントアプリケーションを介して類似性データサービスにアクセスできる。
【0074】
オンラインストア304は、クライアント装置がデジタルメディアを購入できるようにする単一のサーバ又はサーバのクラスタであってもよい。オンラインストアは、他の補助メディア管理機能へのアクセス権を付与してもよい。
【0075】
図15は、類似性データをクライアントにダウンロードする方法の一実施形態を示す。これがクライアントの初めての協調プログラムへのアクセスである(842)場合、クライアントはプログラムを選択すること(844)により参加することを選択する必要がある。ステップ846において、クライアントは専用ユーザ識別コードを与えられる。サーバはクライアントのライブラリと関連付けるためにこのコードを使用するが、クライアントのみが追加の識別情報を有している。サーバは、クライアント装置又はユーザ(プログラム参加者)に関するパーソナル情報又は識別情報を認識しない。専用識別コードが割り当てられると、クライアント装置は、メディアライブラリに関する情報をアップロードできる(848)。好適な一実施形態において、ユーザはサーバと共有するメディアアイテムを選択してもよい。
【0076】
ステップ842の結果が、ユーザが既に協調プログラムの参加者であることを示す場合、ステップ850において、クライアントは専用識別コードを使用してサーバにログインできる。ステップ852において、サーバはメディアライブラリに対する変更に関するクライアントからの情報を要求してもよく、あるいはクライアントは最初に要求されることなくこの情報を共有してもよい。ライブラリに対する変更が行なわれた場合、クライアントは変更に関する情報をアップロードする。変更は、編集されたメタデータ、新しいアイテム、削除済みアイテム等の形式をとってもよい。クライアントのメディアライブラリに関する最新情報がサーバに送出されると、ステップ856において、クライアントはサーバから新しい類似性データを要求できる。あるいは、サーバは新しい類似性データ又は更新済み類似性データの送信を開始してもよい。
【0077】
別の実施形態において、クライアントは、上記ステップをスキップし、ライブラリを特定する必要なくマスタ類似性テーブルから更新済み結果を単純に要求できる。例えばクライアントは、識別番号により自身を特定せず且つクライアントのメディアライブラリ一覧に対する変更をサーバに通知せずに、特定のアイテム又はアイテムのリストに対する更新を要求できる。
【0078】
ステップ858において、類似性データがダウンロードされる。類似性データはサーバにより先に作成されたテーブルの形式でダウンロードされるか、あるいは、情報はリアルタイムにダウンロードされ且つ個別類似性データテーブルへとフォーマットされる。
【0079】
プレイリストは、個別類似性テーブルに基づいて生成される。プレイリストは、クライアント側302、オンラインストア304又は協調フィルタリングエンジン308で生成されうる。プレイリストは、1曲又は複数曲に対する統計的類似性に基づいて生成されうる。クライアント装置が個別類似性テーブルに基づくプレイリストを採用する場合、特定の曲は、ユーザが期待した曲ではない可能性があるか又はユーザが満足するものではない可能性がある。ユーザが統計的類似性に基づいてプレイリストに入れられた曲を頻繁にスキップする場合、システムはその曲に「ペナルティを科し」、類似性値を減少し、より少ない頻度でプレイリストに含め、最終的にプレイリストから完全に放棄できる。これは、ユーザが曲をスキップした時に報告することにより実現される。その動作は、クライアント装置に記録され、オンラインストアにフィードバックとして送信される。オンラインストアは、このフィードバックを協調フィルタリングエンジンに送出し、協調フィルタリングエンジンは、それをネガティブ関連テーブル326に格納する。ネガティブ関連テーブルは、類似性のネガティブ指標を格納する。このように、各ユーザは、曲が類似性テーブルから除かれるまで個別に何度も曲をスキップする必要がない。累積したネガティブフィードバックは、グループの挙動に基づいてユーザグループに人気のない曲を除去する。従って、これらのプレイリストはユーザの母集団の変化するメディアの好みに適合するように進化する生物のように動作する。
【0080】
例えば、多くのユーザがプレイリストの特定の曲を常にスキップする場合、あるいは多くのユーザがプレイリストからその曲を削除する場合、その情報は記録され、マスタ類似性テーブルの生成に影響を及ぼすように重みを割り当てられる。重みは、報告されたネガティブ関連の数又はユーザ対話の他の態様に基づいてもよい。逆に、特定の曲に対する肯定的なユーザ対話はポジティブ関連を提供する。例えば、多くのユーザが既存のプレイリストに同一の曲を追加する場合、あるいは多くのユーザが特定の曲中に音量を上げた場合、これらのポジティブ関連はオンラインインタフェースを介してサーバに報告され、ポジティブ関連テーブルに格納される。
【0081】
クライアントは、サーバとの対話に加えて他のクライアント又は周辺装置と対話してもよい。好適な一実施形態において、クライアントは、IPODポータブル音楽プレーヤ等のポータブル音楽プレーヤと対話するパーソナルコンピュータであってもよい。そのような例において、クライアント装置は周辺装置において使用する個別類似性テーブルを準備できる。サーバがクライアントのライブラリのメディアアイテムのみに対する情報を含む個別類似性テーブルをクライアントに対して準備できるのと同様に、クライアントは周辺装置のライブラリのメディアアイテムのみに対する情報を含む周辺装置に対して個別類似性テーブルを準備できる。クライアントは、他の任意データアイテムをロードするように、個別類似性テーブルを周辺装置にロードできる。
【0082】
・周辺装置
クライアントがサーバを使用して動作するのと同様に、周辺装置はクライアントを使用して動作しようとする。例えば周辺装置は、コンテンツに対する変更をクライアントに通知し、それらのコンテンツに対する類似性データを要求できる。更に好適な一実施形態において、ITUNESデスクトップアプリケーションを実行するパーソナルコンピュータがIPODポータブルメディア装置を管理するのと同様に、周辺装置はクライアントにより管理される。本実施形態において、一般にクライアントは、周辺装置のコンテンツに対する変更に影響を及ぼすツールであることによりそれらの変更を既に認識しているため、それらの変更により更新される必要はない。本実施形態において、クライアントは、クライアントの個別類似性テーブルにおける利用可能なデータに基づいて周辺装置の類似性テーブルを最新状態に維持できる。更に周辺装置は、後でサーバに送信するためにフィードバックデータをクライアントに通信できる。
【0083】
更に別の実施形態において、周辺装置は、クライアント装置自体としてサーバと直接対話できる。益々多くのポータブルメディアプレーヤがインターネットにアクセスする機能を有するため、ポータブル装置は、最新の類似性データをダウンロードするため又はマスタ購入マトリクスを更新するためにサーバと直接対話できる。そのような一実施形態において、周辺装置は、クライアントの全ての機能を有することができる。
【0084】
・プレイリストの生成
上述したように、本明細書で説明された方法により生成された類似性データの1つの用途は、プレイリストを生成するために類似性データを使用することである。プレイリストを生成することが、個別類似性テーブルの全ての類似するアイテムを再生することと同じくらい単純でありうる一方で、最適な結果はプレイリスト生成モジュールを使用して取得される可能性が高い。図8は、プレイリストを生成する方法の一実施形態を示す。1つ以上のシードトラックが、ステップ802において選択され、ステップ804においてプレイリストに追加される。ステップ806において、シードトラックに対する類似性データが個別類似性テーブルにおいてルックアップされ、ステップ808において、類似するトラックが候補リストに追加される。候補は、プレイリストに追加される可能性があるトラックのリストである。候補がプレイリストに追加されるかは、一連の制約について候補を評価することにより判定される。
【0085】
制約は、曲がプレイリストに追加されるかに関して制限する。殆どの場合、制約はプレイリストの品質を向上させる。1つの制約は、プレイリストにおいて特定の間隔を要求してもよい。例えば、アーティスト間隔制約が有効である場合、Radioheadによる2曲は連続して再生されない。同様の一例において、制約は、同一のアルバム又は曲のタイトルの曲がプレイリストにおいて互いの所定の曲数内で発生しないようにしてもよい。別の制約は、互いに相容れないジャンルの曲が同一のプレイリストにおいて再生されないようにする。更に別の制約は「ジッタ」機能であってもよい。ジッタは、受け入れ可能である曲がプレイリストに追加されることをランダムに防止できる。ジッタは、同一のシードトラックの選択に基づいて同一のプレイリストが毎回生成されるのを防止するためにプレイリストにランダム性を提供する。更に別の制約はスキップ回数制約であってもよく、この場合所定の回数を超えてスキップされたどの曲も制約を満たさずプレイリストに含まれない。
【0086】
制約は、容易に変動する特定のパラメータ又は変数に依存することが理解されるべきである。例えば同一アルバム又はアーティストの2つの曲の間に入ることが要求される曲数は変動する可能性がある。同様に、トラックを除外するのに必要なスキップ回数又は互いに相容れるジャンルのメンバは変動する可能性がある。一実施形態において、そのような変数の設定はユーザにより設定される。別の実施形態において、そのような設定は、サーバにより選択され且つサーバから発行され、クライアントが更新済み類似性データをダウンロードするために接続する度にサーバにより調整されてもよい。
【0087】
ポジティブ制約も考慮されることが理解されるべきである。高い再生率又は高い評価を有する曲は、プレイリストに移動されるか、あるいはジッタ機能又は他のネガティブ制約の影響を受けない。更に多くの制約を加え、制約を除去し、制約をより厳しくするか又は緩和することにより多くの変形例が可能である。各変形例は、本明細書で説明される方法により意図されている。
【0088】
ステップ810において、考慮される次の候補が選択され、ステップ812において、そのメタデータが検索される。メタデータは、制約を評価する際に必要とされる候補に関する情報を提供する。ステップ814、815及び816において、トラックは制約により評価される。図8において3つの制約のみが示されるが、任意の数の可能な制約が存在してもよいことが意図されている。ステップ818において全ての制約を満たすまで、曲が1つの制約を満たした場合、次の制約に渡され、そしてトラックはプレイリストに追加される。その後、ステップ820に進み、プレイリストの新しい曲に対する類似性データを取り出す。この類似性データは、プレイリストに含めるかを考慮するために候補リストに付加される。
【0089】
トラックが制約を満たさない場合、ステップ830に飛び、評価する追加の候補がリストにある場合はステップ810に戻る。しかし、追加の候補がリストにない場合、全ての候補が制約を満たさないか又はプレイリストにあることを意味し、ステップ832は、制約がデフォルト値に設定されているかを判定するために制約をチェックする。デフォルト値に設定されている場合、1つ以上の制約を緩和することにより、先に拒否された候補がステップ826において再度考慮された際にプレイリストに追加されることが許可されることを期待して、ステップ828において制約が緩和される。全ての候補が再度制約を満たさない場合、ステップ832は、制約が既に緩和されていたと判定し、処理を終了する。
【0090】
制約を緩和することは、種々の形態のうちいずれか1つの形態をとれる。いくつかの例において、1つの制約のみが緩和される。他の例において、複数の制約が緩和される。例えば第1の制約が、同一アーティストの2曲が互いの4曲以内に再生されないことを要求する場合、制約は、間に1曲のみ入ることを要求するように緩和されるか又は制約は完全に除去される。いくつかの実施形態において、全ての制約が緩和されるわけではない。一例はジャンルの制約である。特定のジャンルは互いに全く相容れない場合があるため、ジャンルの制約は追加のジャンルを含むようには緩和されないだろう。
【0091】
ステップ826に戻ると、候補トラックが制約を満たさず且つ追加の候補が入手可能でない場合において、制約は緩和される。緩和された制約のために、候補が全ての制約を満たしてプレイリストに追加される場合、ステップ822及び824において制約は標準に戻される。ステップ822は、制約が緩和されるか又はデフォルト設定になっているかを判定するために制約をチェックする。制約がデフォルト設定になっている場合、ステップ810に戻り、リスト中の次のトラックを考慮する。しかし、制約が緩和されているとステップ822が判定する場合、ステップ824に進み、制約を標準に戻し、ステップ810に戻り、リスト中の次の候補を考慮する。この処理は、候補が緩和された制約を満たさなくなるまで継続し、ルーチンはステップ834で終了する。
【0092】
曲は、最も類似するものから最も類似しないものの順番でプレイリストに追加される必要はない。曲はランダム化アルゴリズム又は他のロジックを使用してどんな順序で追加されてもよい。
【0093】
生成されたプレイリストは、静的であっても動的であってもよい。動的なプレイリストは、類似性データが進化し且つ新しいアイテムがユーザのライブラリに追加されるのに伴い時間とともに更新される。あるいは、ユーザが楽しみ且つユーザは変更せずに保持したいプレイリストが生成される場合、ユーザは類似性データに影響を受けない別個の静的なプレイリストとしてそのプレイリストを保存できる。このように、生成された特定のプレイリストが「完璧」であるとユーザが感じている場合、そのプレイリストは、サーバを介して類似性テーブルにおいて反映された一般大衆の変化する好みにより損なわれずに維持される。
【0094】
・装置を同期させるための類似性データの使用
プレイリストが生成可能であるのと同様に、類似性データは、ポータブル音楽プレーヤ等の周辺装置をユーザのメディアライブラリの新しい音楽又は異なる音楽により更新するために使用可能である。多くのポータブルメディアプレーヤは、制限された容量の影響を受けるため、ユーザのメディアライブラリの全てがIPODポータブルメディアプレーヤ等のポータブル装置に格納できるわけではない。そのような例において、多くの場合、ユーザはポータブル装置に格納するメディアアイテムの一部分を選択する必要がある。一部のユーザは、この処理を煩わしいと考え、またユーザは、ポータブル装置に現在格納されているメディアアイテムに退屈していることに気付くかもしれない。
【0095】
上記で示された問題に対する1つの解決策は、ポータブル装置が新しいメディアアイテムで更新されるように類似性データを使用することである。本実施形態において、ユーザはポータブル装置に保持したい音楽の種類を表す特定の数のシードトラックを選択する。プレイリストがシードトラックから生成可能であるのと同様に、ユーザのライブラリのデータアイテムもポータブルメディアプレーヤに含むために選択可能である。類似性データが変更され、新しい曲がユーザのライブラリに追加されると、類似性データはポータブル装置を新しいトラックにより最新の状態に維持するために使用される。
【0096】
・購入の推薦
類似性データは、ユーザが購入する新しいアイテムを推薦するために使用されうる。マスタ類似性テーブルに存在するがユーザのライブラリに存在しないアイテムは、システムによって購入することを推薦される。一実施形態において、オンラインストアはユーザのライブラリ又はシードトラックの選択に基づいて購入の推薦を行える。オンラインストアは、最近の購入品をシードトラックとして使用しながら購入するアイテムを推薦できる。別の実施形態において、プレイリストモジュールは、曲がユーザのライブラリの一部であったとしたらプレイリストのどこに含まれるであろうかをユーザに通知することにより、購入する曲を推薦できる。購入の推薦は、サーバからクライアント、そしてポータブルメディアプレーヤまでのシステムのどのレベルでも行える。
【0097】
いくつかの実施形態において、推薦されるアイテムは、関連付けられた類似性データをまだ有していない新しいアイテムであってもよい。そのような例において、類似性スコアは、新しいアイテムがユーザにより購入されることを推薦されるようにオンラインストアの管理者により提供されうる。提供された類似性スコアは、同時存在又は他の実施形態に基づく類似性データが入手可能になるまで存続可能である。
【0098】
同様に、映画のレンタル又は購入が推薦されうる。殆どの実施形態が曲に関して説明されたが、メディアアイテムはビデオ又は映画を含むいかなるファイルであってもよい。本実施形態において、ユーザはシードアイテムの選択に基づいて類似する映画を要求できる。あるいは、システムは以前のレンタルに基づいて映画を推薦できる。類似性データは、ユーザが後で見るために新しい映画をクライアント又はポータブルメディアプレーヤに自動的にダウンロードするために使用できることが意図される。本実施形態は課金サービスの一部であってもよく、あるいはユーザは映画を見ないことを選択してレンタル料が発生しないようにできる。
【0099】
図16は、類似性データが購入するメディアアイテムを推薦するために使用される方法の一実施形態を示す。ステップ1002において、シードトラックが選択される。プレイリストがシードトラックに基づいて生成されるのと同様に、購入の推薦はシードトラックに基づく。しかし、少なくとも1つの実施形態において、購入の推薦は、ユーザのライブラリ全体に最も類似するコンテンツに基づいてもよい。
【0100】
シードトラックが選択されると、ステップ1004において、図示された方法は次に個別類似性テーブルからそのシードトラックに対する類似性データをルックアップする。本実施形態において、個別類似性テーブルは、ユーザのライブラリにないが類似性データによりユーザのメディアライブラリに存在するアイテムと関連付けられるメディアアイテムを更に含むことが理解されるだろう。別の実施形態において、購入の推薦は、ローカルに格納された類似性テーブルではなくサーバから直接行われる。マスタ類似性テーブルからの類似性リストは類似性データを提供でき、サーバ又はクライアントはユーザのライブラリから識別されたトラックを除くことができる。購入の推薦が含まれる必要はなく、全てのユーザが推薦目的のためのマスタテーブルを共有するため、本実施形態は、最小でありうる個別類似性テーブルを生成するという利点を有する。
【0101】
既にユーザのライブラリにあるアイテムが購入されることを推薦されないようにするために、ステップ1006は、ステップ1004で検索された類似性データからユーザのメディアライブラリに既に存在するアイテムを除去する。場合によっては、メディアアイテムはユーザにより既に購入されているが、それらのアイテムはユーザのメディアライブラリに存在しない。これは、任意の数の理由のためである。例えば、ユーザがその曲を好きではなく削除したためであり、ユーザがメディアアイテムを別のライブラリに格納したためであり、あるいはユーザがメディアアイテムを購入したがまだダウンロードしていないためである。少なくともこれらの例において、これらのメディアアイテムを購入することを推薦することは望ましくなく、これらのメディアアイテムもステップ1008において除去される。ステップ1010は、購入するように推薦されたアイテムを表示する。
【0102】
当然、方法はユーザにより現在選択されている全ての曲に対して繰り返される。いくつかの実施形態において、ユーザは、購入の推薦を断定的に要求する必要はない。そのような実施形態において、購入の推薦は、メディアアイテムが再生のために選択される度にメディアオーガナイザ又はメディアストア内に表示される。メディアアイテムが再生されると、グラフィカルユーザインタフェースは、購入するように推薦された他のメディアアイテム又はアルバム等のメディアアイテムのグループを表示できる。好適な一実施形態において、メディアアイテムは入力装置を使用して推薦自体を選択することにより直接購入可能であり、あるいは、メディアアイテムがオンラインストアから購入可能であるように、推薦はオンラインストアにハイパーリンクすることが少なくとも可能である。
【0103】
別の実施形態において、購入の推薦は、選択が可能でない方法を使用して示される。例えばリスナーが指定した購入済みのアーティストによる上位の曲を表示するView An Artistページにおいて、システムは既にユーザのライブラリに存在するアイテムの推薦を除去するようにフィルタリングされた推薦を表示できる。
【0104】
・サーバ>クライアント>IPOD
特に好適な一実施形態において、1つの場所で有用な方法はシステムの各場所で同等に適用可能である。図9はこの概念を示す。類似性テーブル908及びプレイリストモジュール914を含むオンライン音楽ストア902が示される。類似性テーブル908は、サーバのメディア一覧のアイテムのそれぞれについての全ての関係を含む。プレイリストモジュール914は、システムの他のどのクライアント又はポータブルメディアプレーヤとも同様に、類似性テーブルのデータに基づいて動作する。同様に、サーバより小さいメディア一覧を含むクライアント904が示され、クライアントのメディア一覧の各アイテムの類似性データは類似性テーブル910に格納される。プレイリストモジュール916は、ポータブルメディアプレーヤ906又は音楽ストア902と同様にローカルの類似性テーブル910のデータに基づいて動作する。最後に、クライアント904より小さいメディア一覧を含むポータブルメディアプレーヤ906を示す。類似性テーブル912はポータブルメディアプレーヤ906のメディア一覧のアイテムに関連した情報を格納し、プレイリストモジュール918はそのデータに基づいて動作する。
【0105】
図9は、クライアントがポータブルメディアプレーヤのグループに対してサーバのように挙動でき又はより大きいクライアントがより小さいクライアントに対してサーバとして挙動できるという概念を示す。これらの全ては本明細書で意図される。
【0106】
殆どの実施形態において、サーバはマスタ購入マトリクス及びマスタ類似性テーブルを維持する唯一の場所であるが、ローカルの類似性テーブルの生成はサーバから導出されたデータに基づいてどの装置においても行える。サーバにより行われる可能性が高い別の機能は更新である。殆どの実施形態において、サーバは類似性データ更新のソースであるだけでなく、サーバはシステムのプレイリストモジュール又はソフトウェア構成要素を更新できる。
【0107】
本明細書で説明した全ての処理がリアルタイムで行われる必要はないことが理解されるだろう。多くの場合、処理リソースを節約し且つ特定のタスクをオフラインで実行するのが望ましい。例えば協調フィルタリングエンジンは、マスタ類似性データテーブルを生成するためにスケジュールされた時間にのみ実行してもよい。オフライン処理の必要性は、技術の進歩によりなくなる可能性があることが更に考えられる。そのような例において、現在オフラインで実行されるのが好ましい処理はリアルタイムで実行できるだろう。
【0108】
別の実施形態において、各装置は特定の機能をローカルで実行できるにもかかわらず、特定のタスクをサーバに実行させるのが望ましいかもしれない。例えばサーバは、クライアントに対する個別類似性テーブルを生成できるか、あるいはクライアントに対するプレイリストを生成できる。これは、大きな処理のために望まれる処理リソースが一般に不足しているポータブルメディアプレーヤに対するそれらのタスクをクライアントが実行するために多用されてもよい。別の例において、サーバがプレイリストの生成の際に使用されるいくつかの制約を実行し且つ結果を類似性テーブルデータに取り入れることは有利であるかもしれない。例えば緩和されることがないであろうジャンル制約の場合、サーバはアイテムの類似性データから互いに相容れないジャンルのメディアアイテムを除外してもよい。このように、サーバが制約を満たさないアイテムを個別類似性テーブルから既に除外しているであろうから、プレイリストモジュールはプレイリストを生成する時に制約を実行する必要はない。
【0109】
図10は、メディア及び類似性テーブルをデジタルメディアプレーヤに同期させるシステムの一例を示す。通信媒体920は、インターネットである可能性が最も高いが、装置が互いに通信できるようにするいかなるチャネルも含むことができる。オンラインストア922は、オンラインストアと通信及び対話するためにインストールされた特別なソフトウェアを使用して一般にパーソナルコンピュータであるクライアント924と通信する。AppleのIPODメディアプレーヤ等のポータブルメディアプレーヤ926は、一般に30ピンUSBコネクタを介して、オンラインストア922に接続されたパーソナルコンピュータ924と同期する。ポータブルメディアプレーヤ926をパーソナルコンピュータ924に接続する他の方法は、USB、Firewire、802.11シリーズ又はBluetooth無線接続を含む。オンラインストアは、メディア930のマスタライブラリ及びマスタ類似性テーブル932を有する。ポータブルメディアプレーヤ936が同期されると、ローカルメディア934のメタデータ及びローカルのサブセット類似性テーブル936はパーソナルコンピュータ924及び通信媒体920を介してオンラインストア922に送信される。尚、メタデータのみが送信され、実際のメディアが送信されないことに留意することが重要である。オンラインストアは、メディアのコピーを必要とせず、ポータブルメディアプレーヤ926に配置されるメディアを明確に識別するのに十分な情報のみを必要とする。オンラインストアは、適切な情報を生成及び/又は検索し、その情報を装置に送出し返すことができ、それにより、ローカルに格納されたメディア934、938に対応する新しいデータによりローカルのサブセット類似性テーブル936、938を更新する。ローカルのサブセット類似性テーブルは、オンラインストアレベル、コンピュータレベル及び/又は装置自体において個々のプレイリストを生成するために使用される。
【0110】
別の実施形態において、ポータブルメディアプレーヤ936はサーバ922からデータを直接取得できる。そのような一実施形態において、ポータブルメディアプレーヤは、802.11シリーズの通信(Wi−Fi)又は移動電話網等を介してオンラインストアに接続するための種々の機能を備えることができる。ポータブルメディアプレーヤは、サーバに直接接続でき、クライアント装置が上記例において動作するように動作できる。ポータブルメディアは、一意の識別番号を割り当てられるか、あるいはライブラリがクライアント装置と関連付けられる場合はポータブルメディアプレーヤはクライアント装置と同一の識別番号を使用できる。とにかく、ポータブルメディアプレーヤは、ライブラリに格納されたメディアアイテムに関する情報をアップロードし且つ同一のアイテムに関する類似性データをダウンロードできる。ポータブルメディアプレーヤは、サーバに接続する方法を2つ以上有することができることが理解されるべきである。ポータブルメディアプレーヤは、オンラインストアに接続する機構を複数有することができるだけでなく、クライアント装置と同期し且つオンラインストアと直接通信する機能も有することができる。
【0111】
・ユーザインタフェース−概要
図11は、プレイリストの生成を開始するためのソフトウェアインタフェースの一例を示す。ソフトウェアインタフェース702は、メディアを再生し、メディア及びメディアプレイリストを管理し、オンラインストアからメディアを購入することを可能にし、他のメディア関連機能を実行するアプリケーションについて描かれている。ソフトウェアインタフェース702は、メディアのリスト704及び一部又は全ての関連メタデータを表示できる。オンラインストアを介して受信した個別類似性テーブルを使用してプレイリストを生成するために、ユーザは、1つ以上のメディアを選択して、ボタンをクリックするか、あるいは選択したシードトラックに基づいてプレイリストを生成するコマンドをコンピュータに与える。考えられる適切なユーザインタフェースは、キーボードにおけるキーシーケンス、マウスジェスチャ、タッチによる入力、音声コマンド、あるいはこれらのヒューマンコンピュータインタフェース及び他の適切なヒューマンコンピュータインタフェースのいずれかの組み合わせ等の形を含む。ソフトウェアアプリケーションは、開始されると、選択したメディアシードトラックに対する類似性テーブルを検索し、類似性テーブルに基づいてプレイリストを生成する。アプリケーションは、プレイリストのコンテンツをユーザに対して表示してもしなくてもよい。アプリケーションは、現在再生しているトラック、あるいは直前のメディア、現在再生しているメディア及び次のキューに入れられたメディア等のプレイリストコンテンツの他のサブセットのみを表示してもよい。
【0112】
図11に示した陰影をつけたエントリ等の2曲以上がプレイリストを生成するために選択される場合、プレイリストは、2つのエントリのそれぞれの個別の類似性データを単に組み合わせることにより生成される。あるいは、その2つをマージするためにより高度なアルゴリズムが使用されてもよい。例えば、選択した曲の間で共通のメディアにより高い重要度を割り当て、選択した双方の曲に類似しないと考えられる曲により低い重要度を割り当てるか又はそれらの曲を削除する。プレイリストを生成するために複数の選択した曲を処理する時のアプリケーションの挙動及び/又はアルゴリズムは、ユーザにより制御されるか又はアプリケーション内で事前に設定される。
【0113】
プレイリストがリフレッシュされるか又は再作成される実施形態において、生成されたプレイリストの各々を時間順に1つずつ実行する戻る/進む機能性が提供される。例えば、ユーザがプレイリストを作成し且つ別のプレイリストを作成する場合、ユーザは、ブラウザの戻るボタン及び進むボタンのように、コンテンツ及び順番を含む先のプレイリストに戻ることができ、その後新しく作成したプレイリストに戻ることができる。
【0114】
プレイリストは、いかなる曲も選択せずに作成できる。ユーザは、「Choose For Me」タイプボタン706を単純に選択でき、その結果、システムはユーザに対してシードトラックを選択する。一実施形態において、シードトラックは無作為に選択されてもよい。別の実施形態において、システムは、最近再生されたアイテムのリスト、再生回数が最高のアイテムのリスト、最高の評価をされたアイテム、最近追加又は購入されたアイテム、ジャンル、あるいはアイテムを選択するのに使用された他のあらゆる属性からトラックを選択できる。シードトラックの選択方法に関係なく、プレイリストは類似性データに基づいて作成される。
【0115】
・ユーザインタフェース−IPOD/IPHONE/IPOD TOUCH
図12は、ユーザの視点で類似性データからプレイリストを作成する方法を示す。図12は、2つの可能な開始点720及び721を示す。ユーザは、ステップ720においてプレイリストモジュールに対してシードトラックとなるメディアアイテムを選択できるか、あるいはユーザが現在聴いているアイテムに基づいてプレイリストを作成することを決定できる(721)。ユーザは、メニューが表示されるようにするコマンドを入力する(722)。コマンドは、ボタン、タッチスクリーン又はポインタ等のあらゆるユーザインタフェースオブジェクトにより入力可能である。メニューが表示されると、ステップ726において、ユーザはプレイリストジェネレータオプション727を選択するためにカーソルをナビゲートし、それを選択する。ステップ728において確認画面が示され、ユーザが確認すると、ステップ730においてプレイリストが生成される。
【0116】
図13A及び図13Bは、プレイリスト生成プログラムを開始する2つの異なるコンテキストメニューを示す。ユーザがメディアアイテム(例えば、曲のリスト中の1曲又は現在再生している画面)に関して中央のボタン723を長押しした場合、コンテキストメニューが表示される。コンテキストメニューは、特にプレイリストジェネレータ(Playlist Generator)開始コマンドを含むことができる。ユーザは、プレイリストジェネレータ項目を強調表示するためにスクロールホイール719を使用して時計回り又は反時計回りに指を動かすことによりナビゲートし、強調表示された領域を選択するために中央のボタン723を押下してもよい。
【0117】
図13Cは、ユーザがコンテキストメニューにおいてプレイリストジェネレータプログラムを選択した場合又はユーザが例えばメディア再生中に所定の回数だけ中央のボタン723を押下した場合に表示される画面を示す。この画面は、スクロールホイール入力719が矢印729を開始場所に移動させるのを待つことによりプレイリストジェネレータがユーザにより起動されることを要求する。ユーザは、メニューボタンを押下することによりプログラムから抜けられる。
【0118】
図13Dはプレイリストの一例を示す。エネルギーシンボル325は、プレイリストが生成された時のシード(トラック)を表す。リフレッシュ(Refresh)327は、シードに基づいて新しいプレイリストを作成する。プレイリスト保存(Save Playlist)329は、プレイリストを保存し、プレイリストは(メニュー構造の最上層の)ミュージックの下のプレイリストサブメニューから検索されるか又は(メニュー構造の最上層において)プレイリストジェネレータプログラムを選択することにより検索される。
【0119】
図14は、プレイリストジェネレータを使用するための別のインタフェースを示す。図14Aは、プレイリストジェネレータモジュールがタッチスクリーンを使用して選択されるプレイリストメニューを示す。ユーザは、メニュー項目を指でタップすることにより又はメニュー項目上で指を動かしてタッチスクリーンから指を離すことによりプレイリストジェネレータプログラム(又は他のいずれかのメニュー項目)を選択できる。
【0120】
図14Bは、プレイリストモジュールがプレイリストを作成する際のメディアアイテムをユーザが選択できるシードトラック選択画面を示す。ユーザは、指のタッチを用いてスクロールすることによりメディアアイテムのリストをナビゲートできる。ユーザは、上下の指をスイープする動作を使用してアルファベットの昇順又は降順にリストをスクロールできる。あるいは、ユーザは、アルファベットのリストの所望の部分に対応する文字を選択することによりそのリストのその部分に飛べる。
【0121】
曲「Abram」に基づいて生成されたサンプルプレイリストを図14Cに示す。図14Dは、再生されているプレイリストの第1のトラックを示す。図14Cに戻ると、リフレッシュ(Refresh)ボタン740は、類似性テーブルの新しいデータから新しいプレイリストを作成するために使用される。図14Eは、リフレッシュされたプレイリストの再生を示す。
【0122】
図14Fは、リフレッシュされたリストを静的プレイリストとして保存するために選択される保存(Save)ボタン742を示す。保存されたプレイリストは、図14Gのプレイリストメニューで見られる。保存したプレイリストであっても編集できる。サンプルプレイリスト編集画面を図14Hに示す。他の実施形態において、例えばユーザが現在のシードトラックのプレイリストを終了し、現在再生しているトラックに基づいて新しいプレイリストを作成したい場合、プレイリスト内の曲がシートトラックとして選択できる。
【0123】
別の実施形態において、曲が購入されることができ、プレイリストはクライアント装置を制御するリモートを使用して作成されることができる。
【0124】
・ユーザインタフェース−ITUNES
図17A及び図17Bは、ユーザ選択ページの2つの可能な実現例を示す。ユーザ選択画面は、パーソナル音楽ライブラリに関するデータがサービスに送出されることをユーザに通知し、ユーザが参加ボタン1026をクリックすることによりプログラムに参加することを要求する。ユーザは、ボタン1027を選択することによりこのオプションを拒否できる。
【0125】
図17Bに示したグラフィカルユーザインタフェースは、プレイリスト生成プログラムを開始できる選択可能な項目1020及び1024を示す。選択可能な項目1022は、メディアアイテム推薦機能を開始できる。好適な一実施形態において、項目1022は、購入することを推薦するアイテムをユーザに提示するグラフィカルユーザインタフェース内でフレーム1025を開ける。
【0126】
図18は、ユーザのメディアライブラリに関する情報をアップロードし且つローカルメディアライブラリのコンテンツに対する類似性データを受信する間に表示される1つのありうるグラフィカルユーザインタフェースを一般的に示す。図18Aは、図18Bに示す画面が表示されている間にサーバに送信されるユーザのメディアライブラリに関する情報のプログラムが収集している間に示される1つのありうる画面を示す。図18Cは、このクライアント装置についての個別類似性テーブルに格納される情報をダウンロードしている間に示される1つのありうる画面を示す。図18Dは、ユーザが本明細書で説明されるプレイリスト生成処理及びメディア推薦処理を現在使用できることを示す処理完了画面を示す。ユーザは、情報を収集、アップロード及びダウンロードしている間にこれらの画面を閲覧する必要はない。少なくとも1つの好適な実施形態において、ユーザはこの処理中にグラフィカルユーザインタフェースの他の機能を使用し続けられる。
【0127】
・ユーザインタフェース−ITUNES/サイドバー
図19は、類似性データに基づいて購入することを推薦するメディアアイテムを表示する1つのグラフィカルユーザインタフェースを一般的に示す。図19Aを参照すると、図はより大きいグラフィカルユーザインタフェースに組み込まれるか又はスタンドアロンインタフェースでありうるグラフィカルユーザインタフェース1038を示す。インタフェース1038内にアルバムに関する類似性データが示される。この例において、White Stripes Albumの曲が選択され、インタフェース1038はこのメディアアイテムに対する類似性データを表示する。モジュール1040は、購入の推薦の1つの形式を含む。モジュール1040内の項目は、同一アーティストによるアルバムを表し、これは指定されたメディアアイテムを含むアルバムを含む。いくつかの実施形態において、このインタフェースでアルバムを選択することにより、アルバムの全てのトラックを表示するリストに拡大する。推薦されたアルバムは、まだダウンロードできない可能性があるが、リリース前に購入されうる。ユーザがライブラリ又は購入履歴にアルバムの全ての曲を既に有している場合、そのアルバムは、最も関連するアルバムであっても表示されないことが重要である。しかし、ユーザがアルバムの一部の曲のみを所有している場合、アルバムは既に所有している曲が表された状態で示されうる。インタフェース1038は、ユーザのライブラリ又は購入履歴に存在しないメディアアイテムのみを表示する。
【0128】
モジュール1042は、ユーザのメディアライブラリ又は購入履歴に存在しない同一アーティストの曲を表示する。モジュール1044は、選択される曲に対する類似性データに基づいてメディアアイテムを推薦する。いくつかの曲に対して、システムは関連する推薦を提供できないが、そのような状況においてはユーザの聴き方及び購入の仕方に適応され且つユーザが既に有しているものについてはフィルタリングされている、更に広範な推薦がユーザに与えられうることが理解される。
【0129】
各モジュール1040、1042及び1044は、任意の数のアイテムを含むことができ、図に表された数である必要はない。いくつかの例において、インタフェースが1度に表示できる数より多くの推薦が得られてもよい。そのような一例において、インタフェースは追加の推薦されたアイテムを閲覧するためのスクロールバー又はリンクを含むことができる。
【0130】
個別の各メディアアイテムは、アイコン1041を選択することによりプレビューされうる。このアイコンを選択することにより、ユーザは推薦された個々のメディアアイテムを好きであるか否かを判断するためにそのメディアアイテムをプレビューできる。いくつかの実施形態において、アイコン1041は、アイテムがプレビュー可能であることをより適切に示すために再生ボタンに変更されてもよい。ユーザがメディアアイテムを購入したい場合、ユーザはアイコン1043を選択でき、それによりユーザは選択したアイテムを購入及び取得できる。アイテムが購入されると、購入を示すアイコン又は他の手段が表示される。別の実施形態において、アイテムが購入されると、そのアイテムはさらなる推薦のためのシードトラックとなることができる。
【0131】
図19Bは、インタフェース1038についての別のレイアウトを示す。このレイアウトにおいては、ボックス1040及び1044のみが表示される。インタフェースにおいてさらなる利用可能な空間をとるために、追加のメディアアイテムは推薦ボックス1044に追加された。少なくとも1つの実施形態において、空の無駄な空間を有することはユーザを苛立たせる可能性があるため、全ての利用可能な空間を推薦で満たすのが望ましい。
【0132】
図19Cは、選択されたメディアアイテムに対して入手可能な類似性データが存在しない一実施形態を示す。本実施形態において、ボックス1048は、マッチングするものがないことをユーザに指示し、選択したメディアアイテムと同一又は同様のジャンルの上位のアルバムを推薦するためにモジュール1043及び1046を使用する。
【0133】
図19Dは、入手可能な類似性データが存在せず且つ入手可能なジャンル情報がない(又はジャンルに基づく推薦がない)一実施形態を示す。ここでも、選択したメディアアイテムに対してマッチングするものが返されなかったことをユーザに通知するメッセージがボックス1048に表示される。モジュール1045は、選択したメディアアイテムに類似する上位のメディアアイテムを表示できる。モジュール1046は、オンラインストアの上位のアルバムを表示できる。
【0134】
更に図19Eは、ユーザがプログラムに参加していないため又はサーバが類似性データを発行するのに利用可能でないために入手可能な推薦が存在しない一実施形態を示す。マッチングするものがないことを示すメッセージはモジュール1048に表示される。モジュール1050は、類似性データの代わりにシードトラックと同一アーティストによる他の曲及びアルバムを表示できる。本実施形態において、ユーザのメディアライブラリにあるアイテムが表示されてもよい。モジュール1052は、ストア購入情報から導出されたストアアイテムを表示する。
【0135】
図19Fは、推薦が利用可能でなく且つそれを示すメッセージがモジュール1048に表示される一実施形態を示す。インタフェースは、推薦の代わりにオンラインストアのトップセールスチャートをモジュール1054及び1046に示す。
【0136】
本発明の範囲内の実施形態は、コンピュータ実行可能命令又はデータ構造を保持するか又は格納するコンピュータ可読媒体を更に含んでもよい。そのようなコンピュータ可読媒体は、汎用コンピュータ又は専用コンピュータによりアクセスされる利用可能などんな媒体であってもよい。例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROM又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置、あるいはコンピュータ実行可能命令又はデータ構造の形式で所望のプログラムコード手段を保持又は格納するために使用可能な他のいかなる媒体も含むことができるが、これらに限定されない。情報がネットワーク又は別の通信接続(ハードワイヤード、無線又はそれらの組み合わせ)を介してコンピュータに転送又は提供される場合、コンピュータは接続をコンピュータ可読媒体として正しく考える。従って、そのようないかなる接続も正しくコンピュータ可読媒体と呼ばれる。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0137】
例えばコンピュータ実行可能命令は、汎用コンピュータ、専用コンピュータ又は専用処理装置に特定の機能又は機能群を実行させる命令及びデータを含む。コンピュータ実行可能命令は、スタンドアロン又はネットワーク環境でコンピュータにより実行されるプログラムモジュールを更に含む。一般にプログラムモジュールは、特定のタスクを実行するか又は特定の抽象データタイプを実現するルーチン、プログラム、オブジェクト、構成要素及びデータ構造を含む。コンピュータ実行可能命令、関連するデータ構造及びプログラムモジュールは、本明細書で開示された方法のステップを実行するためのプログラムコード手段の例である。そのような実行可能命令又は関連するデータ構造の特定のシーケンスは、そのようなステップで説明された機能を実現するための対応する動作の例である。
【0138】
本発明の他の実施形態は、パーソナルコンピュータ、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサを使用する消費者電子機器、プログラマブル消費者電子機器、ネットワークPC、ミニコンピュータ及びメインフレームコンピュータ等を含む多くの種類のコンピュータシステム構成を有するネットワークコンピューティング環境で実現されてもよいことが当業者には理解されるだろう。実施形態は、通信ネットワークを介してリンクされる(有線リンク、無線リンク又はそれらの組合せにより)ローカル処理装置及びリモート処理装置によりタスクが実行される分散コンピューティング環境で実現されてもよい。分散コンピューティング環境において、プログラムモジュールは、ローカルメモリ記憶装置及びリモートメモリ記憶装置の双方に配置されてもよい。
【0139】
説明したシステムの種々の段階における通信は、ローカルエリアネットワーク、トークンリングネットワーク、インターネット、企業イントラネット、802.11シリーズ無線信号、光ファイバネットワーク、無線又はマイクロ波伝送等のネットワーククラウド328を介して実行されうる。基礎となる通信技術が変更されてもよいが、本明細書で説明した基本的な原理は依然として適用可能である。
【0140】
上述した種々の実施形態は、例として提供され、本発明を限定するものとして解釈されるべきではない。例えば本明細書の原理は、ポータブルメディア再生装置又はネットワークに物理的に接続されたパーソナルコンピュータにより無線でアクセスできるオンラインストアに適用されてもよい。本明細書で図示して説明した実施形態の例及び応用例に従わないが、本発明の趣旨の範囲からは逸脱しない、本発明に対して行われうる種々の変形及び変更を、当業者は容易に認識できるだろう。
【0141】
本願は、全てが2008年9月30日に出願された米国特許出願シリアル番号12/242,728、12/242,735、12/242,758、及び12/242,768の優先権を主張し、2008年9月8日に出願された"SYSTEM AND METHOD FOR PLAYLIST GENERATION BASED ON SIMILARITY DATA(類似性データに基づくプレイリスト生成システム及び方法)"と題するUS仮特許出願番号61/095,289の利益を主張し、これらの全ては参照によりその全体が明白に本明細書に組み込まれる。
【技術分野】
【0001】
本発明は、メディア類似性データに関し、特に、メディア類似性データに基づいてメディアプレイリストを生成することに関する。
【背景技術】
【0002】
長い間、消費者製品のような物品間の関係を規定することは有用な仕事であると考えられてきた。初期の例は商標だろう。商標は、既に所有している別の製品を製造している同一企業による製品が同様の規格に従うだろうという消費者の期待に対する基準を提供する。今日、類似性関係が単純なブランド名をはるかに超えて発展している。いくつかのストアは、類似性データを使用して顧客が購入すべき又は少なくとも検討すべき新しいアイテムを提案する。そのようなストアは、ユーザが同一のショッピングセッションで閲覧する傾向にある製品又は同一ユーザにより頻繁に購入された製品を判定するためにユーザデータを追跡する。この目的で類似性データを使用するシステムは、各ファイル内の特性を識別し、それらのファイルを類似しているものとして識別する。
【0003】
類似性データを生成するこれらの各方法は、最適である可能性のある類似性データの生成を達成できないかあるいはそのようなデータの可能性を最大限に利用することを達成できない。類似性データを生成する既存の方法が達成できない1つの点は、従来の類似性データが新しい購入決定にのみ基づくためである。ユーザが既に所有しているものに関する情報は、ユーザが将来欲しいと考えるものの最も信頼できる標識であるが、ストアはその情報に注意を払っていない。
【0004】
デジタルオーディオプレーヤの出現により、ユーザはデジタルメディアの膨大なライブラリを蓄積している。多くの場合、パーソナルメディアライブラリは、CD、SACD及びDVD−A等の物理媒体から追加された曲を含む。2003年4月〜2008年6月までに50億曲を上回る曲が販売されたことから分かるように、ITUNES Store及び他のオンラインメディアプロバイダの紹介により、更に多くのユーザはデジタルメディアのオンライン購入を経験している。デジタルオーディオプレーヤによりユーザはどこでもメディアを実質的に楽しむことができるが、その一方で、益々成長するメディアライブラリは効果的に管理するのが益々困難になっている。音楽の場合、プレイリストは効果的に管理し且つ特定の曲をフィルタリングする1つの方法である。種々のデジタルメディアプレーヤにより、順序付けられた再生を行うために曲のグループ化を選択することでプレイリストを作成できる。
【0005】
プレイリストを手作業で作成することは、一般に、適切な曲を見つけるためにメディアの長いリストを探索し、所望の曲を選択し且つ望ましくない曲を無視するという冗長な処理を含む。
【0006】
音楽プレイリストは、ジャンル、アーティスト及びアルバム等の共通の音楽トラック属性に基づいて自動的に生成される。これらの自動的に生成されたプレイリストは、作成するのが単純であり且つ迅速であるが、大雑把にプレイリストを仕上げる。それらは含む曲が多すぎたり且つ/又は少なすぎたりすることが多い。更にそのような自動的な方法は、全ての関連するトラック属性が各メディアに対して入手可能であり且つ正確であることを前提とする。自動プレイリストを生成する1つの方法は、「スマート」プレイリストと呼ばれる。スマートプレイリストにより、ユーザは探索条件を指定し、探索条件にマッチングする曲をプレイリストに追加し、曲が条件を満たすか又は満たさない時にプレイリストを自動的に更新できる。スマートプレイリストは、メディアライブラリを管理するのに強力なツールである。しかし、スマートプレイリストも効果的なスマートプレイリストクエリを作成する際にユーザの音楽の熟知度、ライブラリ及び技術により制限される。ユーザは、音楽のスタイルに精通していない可能性がある。精通していないことにより、関連するアーティスト又は曲を除外してしまう可能性がある。ユーザのライブラリは不完全であるかもしれず、それによりそうでなければ完全であるスマートプレイリストとの差ができる。ユーザは、全ての所望の曲を含むように十分に広範にスマートプレイリストクエリを作成しない可能性がある。スマートプレイリストが全ての意図する曲を含むことを検証することは、第一にプレイリストを手作業で生成するより冗長になることが多い。
【0007】
メディアプレイリストを生成する従来の各方法の主な欠点は、互いに類似するメディアアイテムを判定することである。プレイリストを手作業で作成する時、ユーザは1つのメディアアイテムと別のメディアアイテムとの間の類似性を引き出す責任がある。自動化プレイリストジェネレータはプレイリストを構築するための条件に依存するが、これらの条件は広範すぎることが多い。同一の作者、アーティストによるメディア、あるいは同一の種類又はジャンルのメディアでさえは、所望のプレイリストを生成するほど十分に類似していないことが多い。スマートプレイリストは、メディアのより詳細な特性に基づいてこれらの問題の多くを解決しようとするものであるが、容易に定義できないユーザの好みを考慮していない。
【0008】
メディアライブラリが成長し、容量が益々増加するデジタルメディアプレーヤが入手可能であるため、これらのプレイリストに関する問題は悪化する可能性が高い。更にメディアライブラリが大きいほど、ユーザが各ファイルのコンテンツ及び特徴を記憶することは不可能であるため、類似するアイテムをグループ化するシステムが必要とされる。従って、従来技術において必要とされることは、メディアファイル間の類似性データを生成し且つプレイリストを作成及び管理するためにそのようなデータを使用する改善された方法である。
【発明の概要】
【0009】
本明細書で開示される概念の更なる特徴及び利点は以下の説明に示され、その説明から部分的に明らかになるか又は説明する技術を実施することにより学習されるだろう。概念の特徴及び利点は、特に添付の請求の範囲で指摘される機器及び組み合わせにより実現され且つ取得されるだろう。説明した技術のそれらの特徴及び他の特徴は、以下の説明及び添付の請求の範囲からより完全に明らかとなるか、あるいは本明細書で示すように開示した概念を実施することにより学習されるだろう。
【0010】
本発明は、多数のプログラム参加者により提供されたメディアライブラリ一覧情報に少なくとも部分的に基づいて、プログラム参加者に対するメディアプレイリストの生成を容易にする方法及び構成を説明する。この状況において、個人が参加している例示的なプログラム又はシステムは、有料で音楽トラックダウンロードを販売するストア等のオンラインメディアストアである。プログラム参加者になることを決定した個人は、ライブラリに類似する音楽又は同一の音楽を有するプログラムへの他の参加者の母集団から導出されたデータに少なくとも部分的に基づいて音楽を編成、維持及び再生することに興味がある。プログラム参加者になるために、個々の音楽保有者はプログラム参加者のメディア一覧を表すデータを送出する必要があり、オンライン音楽ストアはそれを受信する必要がある。このデータは、一般に、特に個々のメディアアイテム(曲)のソースに関係なく参加者のメディアライブラリに現在含まれている個々のメディアアイテムの識別データを含む。すなわち、アイテムは購入されていてもよく、CDから追加されていてもよく、あるいは取得され且つリスナーのライブラリ又は音楽の一覧に含まれていてもよい。この情報から、システム又はプログラムは、異なるプログラム参加者のメディアライブラリの個々のメディアアイテムのペアが同時に存在することを判定する。これは、数人のユーザにより特定された音楽アイテムのペアについて、様々な参加者についてそのペアが存在するライブラリの数が記録(カウント)されることを意味する。この判定に基づいて、類似性評価は、異なるプログラム参加者のメディアライブラリにおいて判定された同時に存在することに基づいて個々のメディアアイテム(曲)のペアの間に割り当てられる。すなわち、特定のメディアアイテム(曲)のペアがプログラムにおいて表現される多くのライブラリのうち10個のライブラリに存在すると判定(計算)される場合、そのペアの類似性評価が値として割り当てられうる。
【0011】
類似性評価の解析及び割り当ては、有意義なものになるように、複数のプログラム参加者のメディアライブラリ、すなわちシステムの全体の一覧に含まれた個々のメディアアイテムの少なくとも大部分の間でまとめられる。
【0012】
システム又はプログラムは、個々の参加者のメディアライブラリに含まれるアイテムに限定される、個々の参加者のための類似性評価をまとめられる。この情報は、多くの場合にMP3プレーヤと呼ばれるようなパーソナルデジタル音楽再生装置等においてエンドユーザとしてユーザのメディアのプレイリストを順序付けるために使用される。このように、個々のプレイリストは、多くのプログラム参加者により導かれた類似性データに基づいて生成される。
【0013】
異なるが関連する態様において、本発明は、多くのプログラム参加者により提供されたメディアライブラリ一覧情報に少なくとも部分的に基づくメディアプレイリストの生成を容易にするためにオンラインストアと協働するクライアント装置の観点から方法及び構成を更に説明する。本実施形態は、プログラム参加者のメディアライブラリのメディア一覧を表し且つ個々のメディアアイテムのソースに関係なくメディアライブラリ一覧に現在含まれている個々のメディアアイテムの識別データを含むデータをプログラム参加者のクライアント装置から(一般には、オンラインメディアストアのオンラインデータ処理センターとして本明細書において例示的に説明されるプログラムホストに対して)送信する方法、構成及びコンピュータプログラムに焦点を当てる。メディアアイテムのソースの例は、オンライン購入、購入したCDからの追加トラック及び他のソースからのダウンロードを含む。
【0014】
本実施形態において、次にプログラム参加者のクライアント装置は、複数(2人以上)のプログラム参加者から収集された累積データに基づいてまとめられたメディアアイテム類似性評価を受信する。ここで、累積データは、個々のメディアアイテムのソースに関係なくプログラム参加者のメディアライブラリに含まれた個々のメディアアイテムの識別データを含んでいる。この点に関して、ソースに基づくメディアアイテムとの間の主な差異は、各アイテムと関連付けられた記述的な識別メタデータの量及び品質である。
【0015】
上述のように、受信した類似性評価のまとめは、異なるプログラム参加者のメディアライブラリの個々のメディアアイテムのペアが同時に存在することを判定するために累積データを処理し且つ異なるプログラム参加者のメディアライブラリにおける判定された同時に存在することに基づいて個々のメディアアイテムのペアの間の類似性評価の割り当てを行うことを含む。本明細書で説明するように、この処理及びまとめは、以下に更に詳細に説明するようにプログラムホストのオンラインデータ処理センターにより例示的に実行される。
【0016】
類似性評価は、参加者のメディアライブラリに含まれた複数の個々のメディアアイテムに対してプログラム参加者のクライアント装置により受信される。それに基づいて、プログラム参加者のメディアライブラリに含まれた個々のメディアアイテムを含むメディアプレイリストが生成され、メディアアイテムは一般にはプログラム参加者により参加者のメディアライブラリから選択されたシード・メディアアイテムに対する類似性評価を有する。
【0017】
一例として、シード・メディアアイテムの選択は、選択するシード・メディアアイテムを提示するためにクライアント装置でスクロールホイール装置を操作し、選択ボタンを作動させることでクライアント装置のディスプレイ上のシード・メディアアイテムを選択することにより行われうる。
【0018】
別の例において、シード・メディアアイテムの選択は、所望のシード・メディアアイテムが表示されるまでタッチスクリーン上に表示されたメディアアイテムのリストをスクロールするために指をスイープする動作を使用してプログラム参加者のクライアント装置上のタッチスクリーンを操作し、シード・メディアアイテムにタッチして離すことでシード・メディアアイテムを選択することにより行われうる。
【0019】
メディアプレイリストは、特にポータブルパーソナルメディア再生装置又はパーソナルコンピュータの形態をとってもよいプログラム参加者のクライアント装置で生成されうる。
【0020】
プログラム参加者は、参加者による直前のデータアップロード以降に参加者のメディアライブラリに追加された追加のメディアアイテムの識別データを含むメディアライブラリ中のプログラム参加者の現在のメディア一覧を表す更新データを送信できる。同様に、更新データは、直前のデータ更新以降に参加者のメディアライブラリからメディアアイテムが除去されて存在しないことを示せる。更新データは、メディアアイテムに与えられた評価、再生回数及びスキップ回数等のメディアアイテムの使用に関する情報を含むことができるが、その情報はこれらに限定されない。これに基づいて、プログラム参加者はこの更新データを考慮してまとめられた更新済み類似性評価を受信する。このように、現在生成されたプレイリストは、新しく取得したメディアアイテムを含むことができ、最近削除されたメディアアイテムを考慮しない。
【0021】
更なる関連する態様において、本発明は、多くのプログラム参加者により提供されたメディアライブラリ一覧情報に少なくとも部分的に基づくメディアプレイリストを生成するためにプログラムホストのオンラインデータ処理センターと協働する1つ以上のクライアント装置を含む統合システム、方法及びコンピュータプログラムを更に説明する。データは、プログラム参加者のクライアント装置からプログラムホストのオンラインデータ処理センターに送信される。データは、クライアント装置上のメディアライブラリのメディア一覧を表し、クライアント装置上のメディアライブラリ一覧に現在含まれている個々のメディアアイテムの識別データを含む。プログラムホストのオンラインデータ処理センターにおいて、各プログラム参加者のメディア一覧を表すデータが複数のプログラム参加者から受信され、これは、上述したように個々のメディアアイテムのソースに関係なく各参加者のメディアライブラリに現在含まれている個々のメディアアイテムの識別データを含む。異なるプログラム参加者のメディアライブラリにおける個々のメディアアイテムのペアが同時に存在することが判定され、類似性評価は異なるプログラム参加者のメディアライブラリにおける判定された同時に存在することに基づいて個々のメディアアイテムのペアの間に割り当てられる。類似性評価は、クライアント装置上のメディアライブラリ一覧に含まれた複数の個々のメディアアイテムに対してプログラムホストのオンラインデータ処理センターからプログラム参加者のクライアント装置に送信される。クライアント装置上のメディアライブラリ一覧に含まれた個々のメディアアイテムを含むメディアプレイリストが生成され、メディアアイテムはクライアント装置上のメディアアイテム一覧から選択されたシード・メディアアイテムに対する類似性評価を有する。
【0022】
一般に、異なるプログラム参加者のメディアライブラリにおける個々のメディアアイテムのペアが同時に存在することは、プログラムホストのオンラインデータ処理センターにおいて判定され、個々のメディアアイテムのペアの間の類似性評価は、プログラムホストのオンラインデータ処理センターにおいて割り当てられる。
【0023】
個々のプログラム参加者に対する類似性評価データのまとめは、プログラム参加者のメディアライブラリに含まれた個々のメディアアイテム間の類似性評価データに限定される。このように、データセットは使用可能なデータセットに限定される。すなわち、実際にプログラム参加者のライブラリに含まれたメディアアイテムのみを含むプレイリストの生成に限定される。
【0024】
異なる参加者のメディアライブラリに含まれた実質的に同一のメディアアイテム間の直接の関連付け許可することを補助するものとして、プログラムに由来する識別子が参加者のメディアライブラリに含まれた個々のメディアアイテムに割り当てられる。すなわち、音楽トラックを一例として使用すると、アメリカの「Horse With No Name」のスタジオバージョンの全てのインスタンスには迅速に且つ効率的に処理するシステムに基づく短いIDが割り当てられる。類似性評価の計算を更に容易にするために、類似するメディアアイテムには同一の識別子が割り当てられうる。例えばアメリカの歌「Horse With No Name」のライブ録音したものには、全体のデータベース中の他のメディアアイテムに対する類似性を判定する時に、処理するシステムに基づく同一のIDが割り当てられうる。
【0025】
更に特定のメディアアイテムと関連付けられた情報は、第三者データソースから取得された追加のデータを関連付けることにより充実しうる。音楽を一例として使用すると、「ジャンル」は多くの場合に特定の音楽アイテムと関連付けられる特徴である。識別データが特定の音楽のタイトルに対してプログラム参加者から受信されるが、ジャンルタイプを含まない場合、そのような情報を関連付けた第三者の意見を聞くことができ、特定の音楽アイテムに対して第三者により供給されたジャンルタイプはプレイリスト生成処理において後で利用するためにデータと関連付けられる。
【0026】
このプログラム又はシステム全体の独自の態様は、メディア供給者(オンライン音楽ストア)のサーバ、参加者のメディア再生装置及び多くの場合は再生装置とオンラインストアのコンピュータシステムとの間の通信に対応するユーザのパーソナルコンピュータ等の中間機能において行われる。
【図面の簡単な説明】
【0027】
上述した実施形態が実現される方法を最適に説明し且つ本発明の他の利点及び特徴を規定するために、更に詳細な説明を以下に提供し、添付の図面に示す。図面は本発明の例示的な実施形態のみを示すが本発明の範囲を限定するものではなく、添付の図面を使用して追加の特性及び詳細を伴ってそれらの例を説明する。
【0028】
【図1】システムの一実施形態を示す図である。
【図2】方法の一実施形態を示すフローチャートである。
【図3A】、
【図3B】関連データを判定する方法を示す図である。
【図4】サンプルの購入マトリクスを示す図である。
【図5】マスタ類似性テーブルの列を示す図である。
【図6】個々の類似性テーブルを示す図である。
【図7】システムの一実施形態を示す図である。
【図8】方法の一実施形態を示すフローチャートである。
【図9】システムの一実施形態を示す図である。
【図10】メディア及び類似性テーブルをデジタルメディアプレーヤに同期させるシステムの一例を示す図である。
【図11】プレイリストの生成を開始するソフトウェアインタフェースの一例を示す図である。
【図12】方法の一実施形態を示すフローチャートである。
【図13A】、
【図13B】、
【図13C】、
【図13D】ユーザインタフェースの一例を示す図である。
【図14A】、
【図14B】、
【図14C】、
【図14D】、
【図14E】、
【図14F】、
【図14G】、
【図14H】ユーザインタフェースの一例を示す図である。
【図15】方法の一実施形態を示すフローチャートである。
【図16】購入するアイテムを推薦する方法の一実施形態を示すフローチャートである。
【図17A】、
【図17B】参加するためのユーザインタフェースの例を示す図である。
【図18A】、
【図18B】、
【図18C】、
【図18D】ユーザインタフェースの例を示す図である。
【図19A】、
【図19B】、
【図19C】、
【図19D】、
【図19E】、
【図19F】推薦データを表示するためのユーザインタフェースの例を示す図である。
【発明を実施するための形態】
【0029】
開示する方法及び構成の種々の実施形態について、以下に詳細に説明する。特定の実現例を説明するが、例示する目的でのみ説明することが理解されるべきである。他の構成要素、構成及びステップが本発明の趣旨の範囲から逸脱せずに使用されてもよいことが当業者には理解されるだろう。
【0030】
図1を参照すると、例示的なシステムは、処理装置(CPU)120と読み出し専用メモリ(ROM)140及びランダムアクセスメモリ(RAM)150等のシステムメモリを含む種々のシステム構成要素を処理装置120と結合するシステムバス110とを含む汎用演算装置100を含む。他のシステムメモリ130も使用可能であってもよい。システムは、2つ以上のCPU120を有する演算装置又はより高い処理能力を提供するために共にネットワーク化された演算装置のグループ又はクラスタで動作してもよい。システムバス110は、メモリバス又はメモリコントローラ、周辺バス及び種々のバスアーキテクチャのうちのいずれかを使用するローカルバスを含むいくつかの種類のバス構造のうちのいずれの構造であってもよい。ROM140等に格納された基本入出力(BIOS)は、起動中等に演算装置100内の要素間で情報を転送するのを助長する基本ルーチンを提供してもよい。演算装置100は、ハードディスクドライブ160、磁気ディスクドライブ、光ディスクドライブ又はテープドライブ等の記憶装置を更に含む。記憶装置160は、ドライブインタフェースによりシステムバス110に接続される。ドライブ及び関連するコンピュータ可読媒体は、演算装置100に対してコンピュータ可読命令、データ構造、プログラムモジュール及び他のデータの不揮発性記憶装置を提供する。1つの側面において、特定の機能を実行するハードウェアモジュールは、機能を実行するためにCPU、バス及びディスプレイ等の必要なハードウェア構成要素と関連して有形のコンピュータ可読媒体に格納されたソフトウェア構成要素を含む。基本構成要素は当業者には既知であり、適切な変形例は、装置が小型のハンドヘルド演算装置であるか、デスクトップコンピュータであるか又は大型のコンピュータサーバであるか等装置の種類に依存して考慮される。
【0031】
本明細書で説明する例示的な環境がハードディスクを採用するが、コンピュータによりアクセス可能なデータを格納できる磁気カセット、フラッシュメモリカード、デジタル汎用ディスク、カートリッジ、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、ビットストリームを含む有線又は無線信号等の他の種類のコンピュータ可読媒体が例示的な動作環境において使用されてもよいことが当業者には理解されるべきである。
【0032】
演算装置100とのユーザ対話を可能にするために、入力装置190は、音声のためのマイク、ジェスチャ又は図形入力のための接触感知スクリーン、キーボード、マウス、モーション入力及び音声等の任意の数の入力機構を表す。入力は、音声検索クエリの開始を示すために提供者により使用されてもよい。装置出力170は、当業者には既知の1つ以上の複数の出力機構であってもよい。いくつかの例において、マルチモーダルシステムは、ユーザが演算装置100と通信するために複数の種類の入力を提供できるようにする。一般に通信インタフェース180は、ユーザ入力及びシステム出力を制御及び管理する。いかなる特定のハードウェア構成においても動作する開示された方法及び装置には制限がないため、基本的な特徴は、それらの発展に伴って改善されたハードウェア又はファームウェア構成と容易に置換できる。
【0033】
説明を分かり易くするために、例示するシステムの実施形態は、個々の機能ブロック(「プロセッサ」とラベル付けされた機能ブロックを含む)を含むものとして提示される。これらのブロックが表す機能は、共用ハードウェア又は専用ハードウェアを使用して提供されてもよい。共用ハードウェア又は専用ハードウェアは、ソフトウェアを実行できるハードウェアを含むがそれに限定されない。例えば図1に提示される1つ以上のプロセッサの機能は、単一の共用プロセッサ又は複数のプロセッサにより提供されてもよい。(「プロセッサ」という用語の使用は、ソフトウェアを実行できるハードウェアのみを示すものとして解釈されるべきではない。)図示する実施形態は、マイクロプロセッサ及び/又はデジタル信号プロセッサ(DSP)ハードウェア、以下に説明する動作を実行するソフトウェアを格納する読み出し専用メモリ(ROM)、並びに結果を格納するランダムアクセスメモリ(RAM)を含んでもよい。超大規模集積回路(VLSI)ハードウェアの実施形態、並びに汎用DSP回路と組み合わされたカスタムVLSI回路の実施形態が更に提供されてもよい。
【0034】
種々の実施形態の論理動作は、(1)汎用コンピュータ内のプログラマブル回路上で実行し且つコンピュータにより実現されるステップ、動作又は手順のシーケンス、(2)専用プログラマブル回路上で実行し且つコンピュータにより実現されるステップ、動作又は手順のシーケンス、並びに/あるいは(3)プログラマブル回路内の相互接続されたマシンモジュール又はプログラムエンジンとして実現される。
【0035】
上述した演算装置は、多くのユーザから導出された類似性データを生成及び使用するのに特に有用である。統計的類似性は、複数のユーザのライブラリにわたる2つ以上の曲の関連の発生率を判定するための数学的解析に基づいて判定される。この類似性データは、特に、高品質のプレイリストを生成すること、購入することをユーザに推薦する提案製品を決定すること、曲を新たに選択してユーザのメディア装置を最新にしておくことを含む種々の有用な機能に対して使用されうる。一例において、ユーザは、広範なユーザがアクセスできるサーバに対して自身のメディアデータベース全体のコンテンツに関連する情報をアップロードしてもよい。全体のユーザのライブラリにおいて2つ以上のメディアアイテムが同時に存在する頻度に基づいて、メディアアイテムは互いに関連し、類似するものとして記録される。この類似性に基づいて、サーバはシードトラックの選択に基づいて1つ以上の類似する曲を含むようにプレイリストを作成できるか、あるいはサーバはユーザのライブラリにない類似する曲の購入を推薦できる。システムのこれらの特徴及び他の特徴について、以下に更に詳細に説明する。説明した技術及び製品の多くの特徴はApple Inc.のITUNES Store等のオンライン音楽ストアを参照して説明するが、その一方でシステムはシステムの好適な実施形態を実行するためにどのようなメディア販売であれ全く必要としないことが理解されるべきである。更に、一部の説明は1つの特定の形態のメディアのみを参照するかもしれないが、本明細書で説明する原理はオーディオ、ビデオ、静止画、文書及び他の種類のデータファイル等のいかなるメディアにも適用可能である。
【0036】
・サーバ
・アップロード
図2は、類似性データを生成する方法の一実施形態を示す。方法は、プログラム参加者のパーソナルメディア一覧に関連するユーザデータをサーバにより受信すること(202)を含む。ユーザデータは、通常はメタデータの形式であるユーザのライブラリ中の個々のメディアアイテムに関する識別情報を含む。ユーザのライブラリ内のメディアアイテムの発生元は、本システムと関連していない。説明される本方法が音楽コンテンツストアにより採用される場合であっても、本実施形態は、サーバがソースに基づいてファイル情報を区別しないため、すなわち全てのメディアアイテムが同一のものとして処理されるため、ユーザのファイルが音楽ストアに由来することを要求しない。方法は、CD、DVD又はHD−DVD等の物理媒体、並びに物理媒体がデジタル形式にコード変換され且つユーザのメディアライブラリに入力される例に同等に適用される。好適な一実施形態において、サーバは、ユーザがライブラリ中の全てのメディアアイテムに関する情報をアップロードすることを要求せず、限られた数のメディアアイテムのみに関する情報又はメディアアイテムに関する部分情報のみがサーバにより受け入れられる。
【0037】
・ユーザデータの識別
方法は、ユーザデータを特定のメディアアイテムとして識別すること(203)を含む。このステップは、ファイル名、メタデータを検査すること含む複数の方法のうちのいずれか1つの方法で達成されてもよく、あるいはファイルの一部分の詳細な解析を介して達成されてもよい。音楽トラックの例において、サーバは種々の機構を介して音楽トラックを識別できる。例えば約8分の長さのLed ZepplinのStairway to Heaven等の所定のトラックは、アーティスト、曲名、ジャンル、トラックの長さ、アルバム名、トラック番号等を識別するファイル名又はメタデータを含むファイルと関連付けられた種々のデータを有することができる。このデータの一部分は、サーバがアルバムLed Zepplin IVのLed ZepplinのStairway to Heavenとしてファイルを識別するのに十分である。あるいは、ファイルを識別するために、市販の曲識別サービスが使用可能である。音楽トラックの一部分をサンプリングすることにより又は購入ストアから一意の識別子を認識することにより、あるいは曲のデジタル・フィンガプリントを認識することにより、トラックを識別できる。例えばサーバ又はサービスは、曲がITUNES Storeから購入されたこと及びファイルのメタデータがITUNES Store専用の一意の識別子を含むことを認識できる。サーバはその識別子によりメディアアイテムを識別できる。メディアアイテムを認識する多くの他の可能な方法が既知であり、それらの全ての方法が開示される方法及び構成により含まれることが理解されるべきである。
【0038】
・関連付け
各メディアアイテムは、ステップ204において一意の識別子と関連付けられ、ステップ205でテーブルに格納される。サーバが以前にその曲に遭遇したことがない場合、サーバはそのトラックに新しい識別子を割り当てる。しかし、殆どのメディアアイテムの場合、識別子は既に割り当てられており、メディアはその識別子と関連付けられることのみが必要である。Stairway to Heavenの例を継続すると、メディアアイテムが1度トラックとして識別されると、サーバはそのトラックに対する一意の識別データをルックアップできる。この処理は、サーバにより受信されたメディアアイテム毎に繰り返される。
【0039】
サーバは殆どの曲と関連付ける識別子を既に有しているが、場合によっては、メディアアイテムはサーバにとって全く新しいものであるか又は少なくとも全く新しいものとして認識される。そのような場合、サーバは新しい識別子を発行し且つそれをメディアアイテムに割り当てる。例えば、新しいアーティスト又はガレージバンドがサーバにより認識されない場合がある。しかし、サーバはそのアーティストのトラックに対して新しい識別子を発行し、異なるユーザのライブラリで同一のトラックに遭遇した時に以前に発行されたのと同一の識別子をそのトラックに割り当てる。
【0040】
サーバは、サーバにとって新しいメディアアイテムに対して新しい識別子を供給しない場合がある。例えば、メディアアイテムはユーザのライブラリにおける独自のものである可能性があり、従って、そのアイテムについて同時に存在することはないため、識別子を提供することは何の価値もないかもしれない。従って、システムは全ての新しいアイテムに対して一意の識別子を供給する必要がない。システムは、他のユーザがライブラリにそのメディアアイテムを有する場合、後でそのトラックに対して一意の識別子を供給でき且つそのアイテムに対して類似性データを供給できる。
【0041】
・マスタ購入マトリクス
ステップ205において、各メディアアイテムはマスタ購入マトリクスに格納される。マスタ購入マトリクスの一例を図4に示す。購入マトリクス402は、テーブル中の一意の各メディアアイテムに対応する列404を含むテーブルである。テーブルがITUNES Store等の音楽コンテンツ販売側によりホストされる実施形態において、購入マトリクスは、ITUNES Storeから購入することが可能な全てのメディアアイテムをまた含むだろう。マスタ購入マトリクス404の行は、ユーザの一意のユーザ識別番号406と関連付けられる。この識別コードは、システムではなくユーザが知っている可能性がある匿名識別コードによりユーザを表す。従って、マスタ購入マトリクスは、参加する全てのユーザからプログラムサーバにより受信された全てのファイルのレコードを含む。
【0042】
購入マトリクスが全てのプログラム参加者及び各プログラム参加者のライブラリ中の全てのメディアに対応するため、購入マトリクス402は非常に大きい可能性が高い。例えば、音楽ストアは約225万のユーザを有し且つ500万を上回る曲を有する。そのようなオンラインストアに対する購入マトリクスは約225万行×500万列のテーブル、すなわち1兆1,250億個の個別のセルから成るテーブルになる。ITUNES Storeは、5,000万を超える登録ユーザを有し且つ1,000万を超える曲を含む。そのようなオンラインストアに対する購入マトリクスは、約5,000万行×1,000万列のテーブル、すなわち500兆個の個別のセルから成るテーブルになる。
【0043】
ユーザのライブラリ中の曲の場合、そのユーザ及びその曲に対応するマトリクス中のセルがマーク付けされる。マーク付けは、ブーリアンのように単純なデータタイプで行われてもよい。1は購入408を示し、0は未購入410を示す。ブーリアン・データタイプが許可するより多くのデータが格納される必要がある場合、他のデータタイプが使用されてもよい。マトリクスが非常に大きくなる可能性があるが、殆どのユーザが自身のライブラリに相対的に少ない曲(500万と比較して)を有するため、マトリクスは非常に密度が低い。各ユーザ行は少ないエントリのみを含むかもしれないが、その一方で、各曲列は数十、数百、数千又はより人気のある曲に対しては数百万個のエントリを含んでもよいが、購入マトリクスの大部分は空である。
【0044】
マスタ購入マトリクス又はテーブルは、ライブラリへの新しい曲の追加、ファイルメタデータの変更又はファイルの削除等ユーザライブラリの変更に伴って更新を必要とすることが理解されるべきである。購入マトリクスはリアルタイムに更新されてもよく、あるいは後日挿入するためにトランザクションがキューに入れられてもよい。キューに入れるための1つの構成は、毎日午後11:30等、定期的に購入マトリクスにトランザクションを挿入する。キューに入れる別の構成は、ある最小の数のトランザクションの挿入準備が整った場合に購入マトリクスにトランザクションを挿入する。
【0045】
購入テーブルに対する更新は、全てのメディアアイテムに対してステップ203及び204を繰り返すことを必要としない。既に識別され且つプログラムに基づく識別番号と関連付けられたメディアアイテムは、識別及び関連付けステップを必要としない。これは、ユーザのデータが最初にテーブルに所属されられた時に識別及び関連付けステップが既に実行されたためである。一実施形態において、サーバは、メディアアイテムをその識別データと関連付けると、識別データをメタデータに格納するためにユーザに再度送出できる。将来のサーバとの通信において、サーバは関連した識別データを有するメディアアイテムに対する更新データを受信でき、それによりステップ204を再度行なう必要がなくなる。
【0046】
いくつかの実施形態において、購入マトリクスは、販売の時間及び日付、メディアの形式、メディアが高精細であるか又は標準品位であるか、トランザクションがギフトであるか又は支払われたものであるか、再生することを許可された装置、等の各トランザクションに関する追加の情報を含むより大きいテーブル又はマトリクスの一部であってもよい。購入マトリクスは、離散的な別個のテーブル群であってもよく、あるいはより大きなテーブル又はマトリクスに完全に統合されてもよい。
【0047】
更に別の実施形態において、マスタ購入マトリクスは、ユーザのメディア一覧に関するアップロードされた情報を含む必要がない。マスタ購入マトリクスは、購入情報で本質的に構成される。購入情報は、ユーザによりオンラインストアから購入されたアイテムのみであってもよく、あるいは追加の情報を含むことができる。本実施形態において、テーブルは、各ユーザにより購入された全てのアイテムのリストを含むことができる。依然として、マスタ購入マトリクスは、ユーザのメディア一覧のコンテンツに関する類似性データの少なくとも制限された集合を含む可能性が高い。
【0048】
・協調フィルタリングエンジン
図2に示す方法は、ステップ206においてマスタ購入マトリクス上で協調フィルタリングエンジンを実行して類似性データを生成し、ステップ207において類似性データをマスタ類似性テーブルに格納することを含む。類似性データは、マスタテーブルのいくつかの他のメディアアイテムと同時に存在するメディアアイテムの発生率から導出される。ユーザが同一の2つのメディアアイテムを有する場合、それらのメディアアイテムは同時に発生すると考えられる。複数のユーザのライブラリにおいてそのように同時に発生することは、2つのメディアアイテムが「類似する」ことを示す。2つのメディアアイテムがより頻繁にプログラム参加者のライブラリで同時に発生する程、メディアアイテムはより類似すると考えられる。
【0049】
協調フィルタリングエンジン308は、マスタ購入テーブルの個々のメディアアイテム間の類似性を計算する。一実施形態において、協調フィルタリングエンジンは、データベース中の曲のペアがプログラム参加者のライブラリで同時に存在する回数を記録するプログラムのように単純である可能性がある。
【0050】
一実施形態において、協調フィルタリングエンジンは、多次元ベクトル空間において各アイテムをベクトルとして表すことにより2つの異なるメディアアイテム間の類似性を計算できる。次元数は、購入マトリクス306におけるユーザ数と等しい。アイテム間の関連は、ベクトル間の距離を計算することにより行われる。純粋な三角関数又は変更した三角関数(例えば、余弦関数又は正弦関数)は、ベクトル間の距離を計算するために使用される。2つのベクトルが小さな角度を有する場合、それらのベクトルは類似すると考えられ、2つのベクトルが大きな角度を有する場合、それらのベクトルはより低い類似性を有すると考えられる。この処理は、マスタ購入マトリクスの各曲をマスタ購入マトリクスの他の全ての曲と比較することにより実行される。
【0051】
別の実施形態において、協調フィルタリングエンジンは、同時に存在するデータの発生率以上のものを考慮に入れることができる。例えば、類似性評価において全体の発生率を考慮に入れることができる。例えば曲A及びBは、曲A及びCと同一の頻度で同時に存在するかもしれないが、曲Bが全体的により普及している場合、曲A及びBは曲A及びCより高い類似性スコアを有することができる(すなわち、より類似していると考えられる)。種々の曲の人気を判定する1つの方法は、各曲が全体のデータセットにおいて発生する頻度を測定することである。
【0052】
同様に、使用のついての入力等の類似性スコアに影響を及ぼす協調フィルタリングエンジンへの他の入力が存在する。例えば、メディアアイテムに与えられた評価、再生数及びスキップ数は全て、メディアアイテム間の類似性を判定する協調フィルタリングエンジンへの入力でありうる。
【0053】
図3は、各曲をベクトルとして表す概念を示す。図3aにおいて、マスタテーブルにおけるメディアID629に対するベクトルはユーザ2、899、1,343及び2,000のライブラリにおける曲の存在に基づいてマッピングされている。同様に、マスタテーブルにおけるメディアID1,263,999に対して、ベクトルは、ユーザ2、12、444、1,343のライブラリにおける曲の存在に基づいてマッピングされている。これらの2つのベクトル間の角度は、20°であると測定され、約0.939の余弦値を計算する。余弦値は、メディアID629とメディアID1,263,999との間の関連値を表す。図3bは、メディアID629とメディアID15との間の関連を判定するための別の関連計算を表す。この例において、ライブラリにメディアID629及びメディアID1,263,999の双方を有するユーザはいないため、これらの2つのベクトル間の余弦値は約−0.707である。スコアが低い程、メディアID629及び1,263,999が互いに密接に関連付けられないことを示す。
【0054】
別の実施形態において、アイテム間の類似性スコアを計算するために、他の関数が使用可能である。例として、類似性スコアは、特定のアイテムにより構成される、アイテムの合計の同時存在回数のパーセント比を考慮に入れる方法で計算される。例えばアイテムAはアイテム1〜5と同時に発生し、アイテムAの合計の同時存在回数はアイテム1〜5との同時存在回数の合計である。例えばアイテムAがアイテム1と2回同時に存在し、アイテム2と2回同時に存在し、アイテム3と2回同時に存在し、アイテム4と10回同時に存在し且つアイテム5と2回同時に存在した場合、アイテムAは合計で18回の同時存在回数を有する。特定のペアによる合計の同時存在回数のパーセント比を学ぶことは有用である。例えばアイテム4は、アイテムAの全ての同時存在回数の約55%であるため、Aの同時存在回数の合計のわずか約11%を表す他のどのアイテムより強くアイテムAと関連付けられる。このデータは、類似性データを判定するために使用される。類似性データを計算する2つの特定の方法が上記で示されるが、2つのアイテム間の類似性を計算する任意の数の他の方法が使用可能であることは理解されるだろう。
【0055】
上記処理は、全てのアイテムと全ての他のアイテムとの間で定期的に計算される。この処理は、時間が過度にかかる可能性があるため、一般にオフラインで実行される。これは、月に1回、週に1回、1日に1回、又は計算能力が許す頻度で実行される。
【0056】
・類似性テーブル
図2のステップ207において、協調フィルタリングエンジンによりまとめられた関連データは、マスタ類似性テーブルを生成するために使用される。図5は、マスタ類似性テーブル502に格納されたデータを示す。所定のメディアアイテムに対して、プログラムに由来する識別データ504によりメディアアイテムを特定するエントリがマスタ類似性テーブルに存在する。更に、そのメディアアイテムに類似するか又は関連すると考えられる他の各メディアアイテムがテーブル508に一覧表示される。このように、テーブル502はマスタ購入マトリクス402の各メディアアイテムに類似する全てのメディアのリストを管理する。
【0057】
アイテムは、メディアアイテムに類似するか又は関連すると考えられるのに十分なスコアを有する場合、マスタ類似性テーブルに含まれる。どの所定のアイテムに対しても、他のアイテムの殆どは全く類似しない。類似性スコアが十分に低い場合、類似性テーブルに含まれない。類似性スコアが十分に低いか又は高いかを判定するための閾値は、動的であっても静的であってもよい。例えば類似性スコアが−1〜1の範囲である場合、閾値は静的に0.5に設定されてもよい。尚、−1は全く類似しないことを示し、1は非常に類似することを示す。閾値は、マスタ購入テーブルの曲の存在回数に基づいて動的に設定されてもよい。例えば、曲の発生が100回未満である場合は閾値0.9であり、曲の発生が5,000回未満である場合は閾値0.7であり、曲の発生が25,000回未満である場合は閾値0.6であり、曲の発生が25,000回以上である場合は閾値0.5である。閾値は、利用可能な記憶容量又は他のどのパラメータに基づいてもよい。
【0058】
換言すると、マスタ類似性テーブル502は、類似性スコアの全て又は一部を取り入れてもよい。マスタ類似性テーブルがある特定の記憶サイズに適合するように制約される必要がある場合、最適な類似性又は最強の類似性のみが含まれ、残りは除かれる。同様に、十分なプログラム参加者がメディア一覧にアイテムを有さない場合、そのアイテムは除外される。これに対する1つの変形例は、アイテムがマスタ類似性テーブルに含まれるのに適当であるためにはユーザのライブラリにおいて最低限度の回数発生することを要求することである。例えば2つのアイテムが5回以下の同時存在回数を有する場合、すなわち5人以下のユーザが双方のアイテムを有する場合、システムは残りのスコアを計算しない。
【0059】
別の実施形態において、マスタ類似性テーブルは等価関係を更に格納できる。例えばテーブル502のメディアID17は、1990年に演奏されたLuciano Pavarottiによる「O Sole Mio」に対応してもよい。Enrico Caruso及びMario Lanza等のアーティストによる「O Sole Mio」の複数の演奏がオンラインストアで入手可能であり、等価なメディア506であると考えられる。他の注目すべき種類の等価なメディアは、公式のアルバムトラック、生楽器によるアコースティックトラック、ライブコンサートトラック、他のバンドによるカバートラック及び同一曲の外国語トラックを含む。単一の曲は列挙された全ての形式及びさらなる形式で存在しうる。等価であるかの判定は、手動で実行可能であり、あるいは実際のメディアコンテンツ、メタデータ及び/又は他の入手可能なデータに基づいて自動的に実行可能である。各々に対する等価なメディアIDは、メディアID504と一緒に提示され、それらの各々が同一であると考えられること及びそれらが共にカウントされることを特定する。
【0060】
マスタ類似性テーブルのIDは、メディアに索引を付けるために購入マトリクス306で使用されるIDと同一であってもよく、あるいは完全に異なる方式に基づいてもよい。2つのIDがそろっていない場合、一方のIDを他方のIDに変換するために変換機能又は参照変換テーブルが提供される。2つのIDの間で共有される共通のID空間は、性能を犠牲にせずに管理することが最も容易で単純である可能性が高い。
【0061】
・ユーザ類似性テーブル
マスタ類似性テーブルは類似するメディアの集合を含むが、パーソナルメディアライブラリは類似するメディアの集合のより小さいサブセットをほぼ確実に含む。従って、制約された集合、すなわち個別類似性テーブルが生成される。制約は、所定のライブラリにおけるメディアの利用可能性に適応される。制約された集合は、メディアライブラリで見つけられない類似するメディアに対する参照を更に含んでもよい。これは、あるユーザを提案されたメディアの購入のターゲットとするために行われる。共通のメディアの好みを有する他のユーザが提案された購入品を自身のライブラリに既に有するため、そのようにターゲットされた提案された購入品はそのユーザにとって更に魅力的であるだろう。
【0062】
マスタ類似性テーブル502が計算され且つ所属が行われると、個別類似性テーブル602が生成される。図6は、個別類似性テーブルを示す。個別類似性テーブル602は、個人のメディアライブラリに含まれた各曲に対するメディアID604及びそのメディアIDと関連付けられたメディアを含む。関連付けられたメディア606を中括弧で示す。個別類似性テーブル中の関連付けられたメディアは、アイテムのマスタ類似性テーブルに配置されソートされた類似するアイテム508のリスト全体のサブセットである。どのメディアが個人のメディアライブラリに存在するかに基づいて、サブセットは選択される。換言すると、個人のライブラリ中の曲毎に、個人のライブラリに含まれる類似するメディアのリストが生成される。
【0063】
個別類似性テーブルは、サーバにおいてサーバにより生成され且つクライアント装置によりダウンロードされるか、あるいはユーザのメディア一覧のアイテムに対する類似性データのみをダウンロードすることによりクライアントにより作成される。類似性テーブルが作成される場所に関係なく、処理は同一である。メディアアイテムは、アイテムのプログラムに由来する類似性識別データによりマスタ類似性テーブルにおいてルックアップされる。次に、システムはそのメディアアイテムに対する類似性データの場所を索引でルックアップできる。システムは、ルックアップ動作の結果に基づいて類似するアイテムを検索できる。これらのアイテムは、ユーザのメディアライブラリのメディアアイテムと更に比較され、ユーザのメディアライブラリに存在するアイテムのみが個別類似性テーブルに格納される。更なる一実施形態において、ある非常に類似するトラックは、個別類似性テーブルに記録され、ユーザに対して購入を提案するために使用されうる。
【0064】
好適な一実施形態において、ライブラリ毎に少なくとも1つの個別類似性テーブルがサーバにより生成可能である。クライアントは、サーバにライブラリデータを送出でき、サーバは、ライブラリのアイテムを識別でき、そのライブラリのアイテムに関するマスタ類似性テーブルから類似性データを抽出することによりそのライブラリに対する個別類似性テーブルを生成できる。結果として得られた個別類似性テーブルは、プレイリストを生成する際に使用するためにクライアントにダウンロードされる。同一の個別類似性テーブルは、周辺装置に対する個別類似性テーブルを作成するためにクライアントにより使用される。
【0065】
ユーザは、これらの個別類似性テーブルを使用して、ユーザの母集団全体から導出されたデータにより利益を得る。ユーザは、プレイリストの作成、新しいメディア購入に対する提案及び種々の他の可能性を受信するために類似性データを使用できる。
【0066】
・協調フィルタリングに影響を及ぼすユーザデータ
プレイリストが類似性データに基づいて生成される実施形態において、ユーザはプレイリスト中の聴きたくない曲をスキップすることによりフィードバックを提供できるか又はシステムはフィードバックを要求できる。あるいは、ユーザはプレイリスト中の聴くことを楽しんだメディアアイテムにポジティブな評価を与えられる。そのようなデータは、クライアント装置からアップロードされ且つサーバにより受信される。フィードバックデータは、マスタ購入インデックス内又は別個のテーブル内等の任意の数の種々の様式で格納される。フィードバックは、ITUNES Store等のオンライン音楽ストアからも導出可能である。本実施形態において、オンラインストア304におけるユーザ活動により、フィードバックデータが生成される。オンラインストアにおけるユーザ活動は、メディアアイテムの購入、メディアアイテムのプレビュー、特定のメディアアイテムタイトルの探索、特定のメディアアイテムアーティストの探索又は特定のメディアアイテムジャンルの探索を含むことができる。フィードバックデータは、アイテム間の関連スコアを変更するために協調フィルタリングエンジンにより使用可能である。
【0067】
母集団からのフィードバックデータは、削除しない場合には存在する関連を削除しうる。例えば、Simon and Garfunkelによる曲Mrs. Robinsonは、Lemonheads又はFrank Sinatraによる同一曲との強い関連性を受け入れてもよいが、Simon and Garfunkelのバージョンに基づいてプレイリストを生成しようとするユーザは、異なるバージョンを好まない可能性があり、これは異なるジャンルのカバー曲であるからかもしれない。ある期間にわたり、曲のスキップ又はプレイリストからのアイテムの除去等のフィードバックデータは、関連されたアイテムのリストから一方又は双方のカバーバージョンを削除するために使用される。
【0068】
他の実施形態において、更にユーザフィードバックは、協調フィルタリングエンジンにより使用されるために、最初にサーバにフィードバックを送出せずにクライアント上で直接類似性データを変更するために使用されうる。これらの実施形態において、ユーザフィードバックデータは、最初に同期することなく、クライアント装置上の個別類似性テーブルに格納された関係に直接影響を及ぼすことができる。あるいは、類似性テーブルは変更されないが、制約がユーザフィードバックデータに基づいて生成されうる。例えばユーザが類似するアイテムを頻繁にスキップする場合、クライアント自体は、個別類似性テーブルからそのアイテムを除去することによりそのアイテムを類似するものと考えなくなってもよく、あるいはプレイリストアルゴリズムにおける制約等の他の手段により頻繁にスキップされたアイテムの追加がプレイリストに含まれることを防止できる。
【0069】
・類似性テーブルの更新
時間とともに、アーティストが新しい音楽を作成し、及び新しいアーティストが登場すると、新しいメディアアイテムはオンラインストア及び更にはマスタ購入テーブルに追加される。従って、オンラインストア304の既存のアイテムとオンラインストアの新しく追加されたアイテムとの間の関連性が形成されてもよい。例えばユーザが自身のメディアライブラリに曲Aを有し、その後オンラインストア304で最近紹介された新しく追加された曲Bを購入する場合、曲Aと新しく追加された曲Bとの間の新しい関連性が形成されてもよい。ユーザが新しく追加された曲Bを購入する場合、トランザクションが購入マトリクス306に記録され、更新された購入マトリクス306が生成される。あるいは、曲BはCDからトラックをコピーすることによりユーザのライブラリに追加されていてもよい。そのような状況において、結果は同一でありうる。曲A及び曲Bの双方がユーザのメディアライブラリにある限り、この同時存在は、更新されたマスタ購入マトリクスに記録される。
【0070】
協調フィルタリングエンジン308は、上述したようにアイテム316の更新されたマスタ類似性テーブルを生成するために、更新済み購入マトリクス306からの情報を使用する。その後、更新済みの個別類似性テーブル322は、更新済みマスタ類似性テーブル316の更新されたアイテムのみを抽出することによりユーザ毎に生成される。あるいは、完全に新しい個別類似性テーブルが、新しいデータに基づいて作成可能である。
【0071】
・システムの概要
図7は、上述した実施形態を実行できる1つのシステムの一例を示す。購入マトリクス306は、各ユーザのライブラリの全てのメディアアイテムに関するデータを格納する。協調フィルタリングエンジン308は、他のメディアの各々に対して各メディアアイテムが同時に存在することを、購入マトリクス306のデータを使用して判定する。協調フィルタリングエンジン308は、プログラム参加者の母集団にわたるユーザの好みに従って類似性スコアを調整するために、オブジェクト324及び326に格納されたフィードバックデータをオプションとして使用できる。協調フィルタリングエンジンの出力は、所定のメディアアイテム318に類似すると考えられる全てのメディアアイテム320を格納することによりマスタ類似性テーブルに格納される。類似するメディアアイテム320は、関連性の最も高いアイテムから関連性の最も低いアイテムの順序で提示されるようにソートされる。
【0072】
オンライン管理ツール304は、クライアント側302及びサーバ側301に対するインタフェースとしての役割を果たす。好適な一実施形態において、オンライン管理ツール304は、オンラインストアと関連付けられる。一実施形態において、オンラインストアは、類似性データを生成する際に協調フィルタリングエンジン308により使用されるデータ310を生成してもよい。しかし、クライアント302は、クライアント302に格納されたメディアアイテムに関する情報をアップロードし且つサーバ301から類似性データをダウンロードするように働く。クライアントに固有の類似性データは、クライアント装置302で個別類似性テーブル322を生成するためにオンライン管理ツール304を使用してマスタ類似性テーブル316から直接ダウンロードされてもよい。あるいは、個別類似性テーブルは、サーバ301により生成され且つクライアント装置302にダウンロードされてもよい。更にクライアント装置は、より適切な類似性データを生成するのを助けるためにオンライン管理ツール304を介して協調フィルタ308にフィードバックデータを通信できる。
【0073】
・クライアント
図7に示すように、クライアント装置302は、様々な形態のうちいずれか1つの形態をとれる。クライアント装置302は、ポータブルデジタルオーディオプレーヤ、ポータブルデジタルビデオプレーヤ、スマートフォン、デスクトップコンピュータ、ラップトップコンピュータ、テレビセットトップボックス及びメディアを再生できる他の何らかの装置等の装置を含む。クライアント装置は、デスクトップコンピュータ又は他の中間装置を介してオンラインストア304と同期するオフラインポータブル装置、例えばケーブル接続を介してデスクトップコンピュータと同期するIPODデジタルオーディオプレーヤ、無線ルータを介して無線で同期するIPOD TOUCHデジタルオーディプレーヤ又はセルラ接続を介して無線で同期するスマートフォン等を含むことができる。上記説明から明らかであるように、クライアント装置は種々のメディアアイテムの一覧を含む。クライアント装置のユーザが類似性データの使用により利益を得たい場合、ユーザはオンラインインタフェースを介してサービスにアクセスする。あるいは、クライアント装置は、インターネットを介してリモートサーバと通信するITUNESデスクトップアプリケーション等のクライアントアプリケーションを介して類似性データサービスにアクセスできる。
【0074】
オンラインストア304は、クライアント装置がデジタルメディアを購入できるようにする単一のサーバ又はサーバのクラスタであってもよい。オンラインストアは、他の補助メディア管理機能へのアクセス権を付与してもよい。
【0075】
図15は、類似性データをクライアントにダウンロードする方法の一実施形態を示す。これがクライアントの初めての協調プログラムへのアクセスである(842)場合、クライアントはプログラムを選択すること(844)により参加することを選択する必要がある。ステップ846において、クライアントは専用ユーザ識別コードを与えられる。サーバはクライアントのライブラリと関連付けるためにこのコードを使用するが、クライアントのみが追加の識別情報を有している。サーバは、クライアント装置又はユーザ(プログラム参加者)に関するパーソナル情報又は識別情報を認識しない。専用識別コードが割り当てられると、クライアント装置は、メディアライブラリに関する情報をアップロードできる(848)。好適な一実施形態において、ユーザはサーバと共有するメディアアイテムを選択してもよい。
【0076】
ステップ842の結果が、ユーザが既に協調プログラムの参加者であることを示す場合、ステップ850において、クライアントは専用識別コードを使用してサーバにログインできる。ステップ852において、サーバはメディアライブラリに対する変更に関するクライアントからの情報を要求してもよく、あるいはクライアントは最初に要求されることなくこの情報を共有してもよい。ライブラリに対する変更が行なわれた場合、クライアントは変更に関する情報をアップロードする。変更は、編集されたメタデータ、新しいアイテム、削除済みアイテム等の形式をとってもよい。クライアントのメディアライブラリに関する最新情報がサーバに送出されると、ステップ856において、クライアントはサーバから新しい類似性データを要求できる。あるいは、サーバは新しい類似性データ又は更新済み類似性データの送信を開始してもよい。
【0077】
別の実施形態において、クライアントは、上記ステップをスキップし、ライブラリを特定する必要なくマスタ類似性テーブルから更新済み結果を単純に要求できる。例えばクライアントは、識別番号により自身を特定せず且つクライアントのメディアライブラリ一覧に対する変更をサーバに通知せずに、特定のアイテム又はアイテムのリストに対する更新を要求できる。
【0078】
ステップ858において、類似性データがダウンロードされる。類似性データはサーバにより先に作成されたテーブルの形式でダウンロードされるか、あるいは、情報はリアルタイムにダウンロードされ且つ個別類似性データテーブルへとフォーマットされる。
【0079】
プレイリストは、個別類似性テーブルに基づいて生成される。プレイリストは、クライアント側302、オンラインストア304又は協調フィルタリングエンジン308で生成されうる。プレイリストは、1曲又は複数曲に対する統計的類似性に基づいて生成されうる。クライアント装置が個別類似性テーブルに基づくプレイリストを採用する場合、特定の曲は、ユーザが期待した曲ではない可能性があるか又はユーザが満足するものではない可能性がある。ユーザが統計的類似性に基づいてプレイリストに入れられた曲を頻繁にスキップする場合、システムはその曲に「ペナルティを科し」、類似性値を減少し、より少ない頻度でプレイリストに含め、最終的にプレイリストから完全に放棄できる。これは、ユーザが曲をスキップした時に報告することにより実現される。その動作は、クライアント装置に記録され、オンラインストアにフィードバックとして送信される。オンラインストアは、このフィードバックを協調フィルタリングエンジンに送出し、協調フィルタリングエンジンは、それをネガティブ関連テーブル326に格納する。ネガティブ関連テーブルは、類似性のネガティブ指標を格納する。このように、各ユーザは、曲が類似性テーブルから除かれるまで個別に何度も曲をスキップする必要がない。累積したネガティブフィードバックは、グループの挙動に基づいてユーザグループに人気のない曲を除去する。従って、これらのプレイリストはユーザの母集団の変化するメディアの好みに適合するように進化する生物のように動作する。
【0080】
例えば、多くのユーザがプレイリストの特定の曲を常にスキップする場合、あるいは多くのユーザがプレイリストからその曲を削除する場合、その情報は記録され、マスタ類似性テーブルの生成に影響を及ぼすように重みを割り当てられる。重みは、報告されたネガティブ関連の数又はユーザ対話の他の態様に基づいてもよい。逆に、特定の曲に対する肯定的なユーザ対話はポジティブ関連を提供する。例えば、多くのユーザが既存のプレイリストに同一の曲を追加する場合、あるいは多くのユーザが特定の曲中に音量を上げた場合、これらのポジティブ関連はオンラインインタフェースを介してサーバに報告され、ポジティブ関連テーブルに格納される。
【0081】
クライアントは、サーバとの対話に加えて他のクライアント又は周辺装置と対話してもよい。好適な一実施形態において、クライアントは、IPODポータブル音楽プレーヤ等のポータブル音楽プレーヤと対話するパーソナルコンピュータであってもよい。そのような例において、クライアント装置は周辺装置において使用する個別類似性テーブルを準備できる。サーバがクライアントのライブラリのメディアアイテムのみに対する情報を含む個別類似性テーブルをクライアントに対して準備できるのと同様に、クライアントは周辺装置のライブラリのメディアアイテムのみに対する情報を含む周辺装置に対して個別類似性テーブルを準備できる。クライアントは、他の任意データアイテムをロードするように、個別類似性テーブルを周辺装置にロードできる。
【0082】
・周辺装置
クライアントがサーバを使用して動作するのと同様に、周辺装置はクライアントを使用して動作しようとする。例えば周辺装置は、コンテンツに対する変更をクライアントに通知し、それらのコンテンツに対する類似性データを要求できる。更に好適な一実施形態において、ITUNESデスクトップアプリケーションを実行するパーソナルコンピュータがIPODポータブルメディア装置を管理するのと同様に、周辺装置はクライアントにより管理される。本実施形態において、一般にクライアントは、周辺装置のコンテンツに対する変更に影響を及ぼすツールであることによりそれらの変更を既に認識しているため、それらの変更により更新される必要はない。本実施形態において、クライアントは、クライアントの個別類似性テーブルにおける利用可能なデータに基づいて周辺装置の類似性テーブルを最新状態に維持できる。更に周辺装置は、後でサーバに送信するためにフィードバックデータをクライアントに通信できる。
【0083】
更に別の実施形態において、周辺装置は、クライアント装置自体としてサーバと直接対話できる。益々多くのポータブルメディアプレーヤがインターネットにアクセスする機能を有するため、ポータブル装置は、最新の類似性データをダウンロードするため又はマスタ購入マトリクスを更新するためにサーバと直接対話できる。そのような一実施形態において、周辺装置は、クライアントの全ての機能を有することができる。
【0084】
・プレイリストの生成
上述したように、本明細書で説明された方法により生成された類似性データの1つの用途は、プレイリストを生成するために類似性データを使用することである。プレイリストを生成することが、個別類似性テーブルの全ての類似するアイテムを再生することと同じくらい単純でありうる一方で、最適な結果はプレイリスト生成モジュールを使用して取得される可能性が高い。図8は、プレイリストを生成する方法の一実施形態を示す。1つ以上のシードトラックが、ステップ802において選択され、ステップ804においてプレイリストに追加される。ステップ806において、シードトラックに対する類似性データが個別類似性テーブルにおいてルックアップされ、ステップ808において、類似するトラックが候補リストに追加される。候補は、プレイリストに追加される可能性があるトラックのリストである。候補がプレイリストに追加されるかは、一連の制約について候補を評価することにより判定される。
【0085】
制約は、曲がプレイリストに追加されるかに関して制限する。殆どの場合、制約はプレイリストの品質を向上させる。1つの制約は、プレイリストにおいて特定の間隔を要求してもよい。例えば、アーティスト間隔制約が有効である場合、Radioheadによる2曲は連続して再生されない。同様の一例において、制約は、同一のアルバム又は曲のタイトルの曲がプレイリストにおいて互いの所定の曲数内で発生しないようにしてもよい。別の制約は、互いに相容れないジャンルの曲が同一のプレイリストにおいて再生されないようにする。更に別の制約は「ジッタ」機能であってもよい。ジッタは、受け入れ可能である曲がプレイリストに追加されることをランダムに防止できる。ジッタは、同一のシードトラックの選択に基づいて同一のプレイリストが毎回生成されるのを防止するためにプレイリストにランダム性を提供する。更に別の制約はスキップ回数制約であってもよく、この場合所定の回数を超えてスキップされたどの曲も制約を満たさずプレイリストに含まれない。
【0086】
制約は、容易に変動する特定のパラメータ又は変数に依存することが理解されるべきである。例えば同一アルバム又はアーティストの2つの曲の間に入ることが要求される曲数は変動する可能性がある。同様に、トラックを除外するのに必要なスキップ回数又は互いに相容れるジャンルのメンバは変動する可能性がある。一実施形態において、そのような変数の設定はユーザにより設定される。別の実施形態において、そのような設定は、サーバにより選択され且つサーバから発行され、クライアントが更新済み類似性データをダウンロードするために接続する度にサーバにより調整されてもよい。
【0087】
ポジティブ制約も考慮されることが理解されるべきである。高い再生率又は高い評価を有する曲は、プレイリストに移動されるか、あるいはジッタ機能又は他のネガティブ制約の影響を受けない。更に多くの制約を加え、制約を除去し、制約をより厳しくするか又は緩和することにより多くの変形例が可能である。各変形例は、本明細書で説明される方法により意図されている。
【0088】
ステップ810において、考慮される次の候補が選択され、ステップ812において、そのメタデータが検索される。メタデータは、制約を評価する際に必要とされる候補に関する情報を提供する。ステップ814、815及び816において、トラックは制約により評価される。図8において3つの制約のみが示されるが、任意の数の可能な制約が存在してもよいことが意図されている。ステップ818において全ての制約を満たすまで、曲が1つの制約を満たした場合、次の制約に渡され、そしてトラックはプレイリストに追加される。その後、ステップ820に進み、プレイリストの新しい曲に対する類似性データを取り出す。この類似性データは、プレイリストに含めるかを考慮するために候補リストに付加される。
【0089】
トラックが制約を満たさない場合、ステップ830に飛び、評価する追加の候補がリストにある場合はステップ810に戻る。しかし、追加の候補がリストにない場合、全ての候補が制約を満たさないか又はプレイリストにあることを意味し、ステップ832は、制約がデフォルト値に設定されているかを判定するために制約をチェックする。デフォルト値に設定されている場合、1つ以上の制約を緩和することにより、先に拒否された候補がステップ826において再度考慮された際にプレイリストに追加されることが許可されることを期待して、ステップ828において制約が緩和される。全ての候補が再度制約を満たさない場合、ステップ832は、制約が既に緩和されていたと判定し、処理を終了する。
【0090】
制約を緩和することは、種々の形態のうちいずれか1つの形態をとれる。いくつかの例において、1つの制約のみが緩和される。他の例において、複数の制約が緩和される。例えば第1の制約が、同一アーティストの2曲が互いの4曲以内に再生されないことを要求する場合、制約は、間に1曲のみ入ることを要求するように緩和されるか又は制約は完全に除去される。いくつかの実施形態において、全ての制約が緩和されるわけではない。一例はジャンルの制約である。特定のジャンルは互いに全く相容れない場合があるため、ジャンルの制約は追加のジャンルを含むようには緩和されないだろう。
【0091】
ステップ826に戻ると、候補トラックが制約を満たさず且つ追加の候補が入手可能でない場合において、制約は緩和される。緩和された制約のために、候補が全ての制約を満たしてプレイリストに追加される場合、ステップ822及び824において制約は標準に戻される。ステップ822は、制約が緩和されるか又はデフォルト設定になっているかを判定するために制約をチェックする。制約がデフォルト設定になっている場合、ステップ810に戻り、リスト中の次のトラックを考慮する。しかし、制約が緩和されているとステップ822が判定する場合、ステップ824に進み、制約を標準に戻し、ステップ810に戻り、リスト中の次の候補を考慮する。この処理は、候補が緩和された制約を満たさなくなるまで継続し、ルーチンはステップ834で終了する。
【0092】
曲は、最も類似するものから最も類似しないものの順番でプレイリストに追加される必要はない。曲はランダム化アルゴリズム又は他のロジックを使用してどんな順序で追加されてもよい。
【0093】
生成されたプレイリストは、静的であっても動的であってもよい。動的なプレイリストは、類似性データが進化し且つ新しいアイテムがユーザのライブラリに追加されるのに伴い時間とともに更新される。あるいは、ユーザが楽しみ且つユーザは変更せずに保持したいプレイリストが生成される場合、ユーザは類似性データに影響を受けない別個の静的なプレイリストとしてそのプレイリストを保存できる。このように、生成された特定のプレイリストが「完璧」であるとユーザが感じている場合、そのプレイリストは、サーバを介して類似性テーブルにおいて反映された一般大衆の変化する好みにより損なわれずに維持される。
【0094】
・装置を同期させるための類似性データの使用
プレイリストが生成可能であるのと同様に、類似性データは、ポータブル音楽プレーヤ等の周辺装置をユーザのメディアライブラリの新しい音楽又は異なる音楽により更新するために使用可能である。多くのポータブルメディアプレーヤは、制限された容量の影響を受けるため、ユーザのメディアライブラリの全てがIPODポータブルメディアプレーヤ等のポータブル装置に格納できるわけではない。そのような例において、多くの場合、ユーザはポータブル装置に格納するメディアアイテムの一部分を選択する必要がある。一部のユーザは、この処理を煩わしいと考え、またユーザは、ポータブル装置に現在格納されているメディアアイテムに退屈していることに気付くかもしれない。
【0095】
上記で示された問題に対する1つの解決策は、ポータブル装置が新しいメディアアイテムで更新されるように類似性データを使用することである。本実施形態において、ユーザはポータブル装置に保持したい音楽の種類を表す特定の数のシードトラックを選択する。プレイリストがシードトラックから生成可能であるのと同様に、ユーザのライブラリのデータアイテムもポータブルメディアプレーヤに含むために選択可能である。類似性データが変更され、新しい曲がユーザのライブラリに追加されると、類似性データはポータブル装置を新しいトラックにより最新の状態に維持するために使用される。
【0096】
・購入の推薦
類似性データは、ユーザが購入する新しいアイテムを推薦するために使用されうる。マスタ類似性テーブルに存在するがユーザのライブラリに存在しないアイテムは、システムによって購入することを推薦される。一実施形態において、オンラインストアはユーザのライブラリ又はシードトラックの選択に基づいて購入の推薦を行える。オンラインストアは、最近の購入品をシードトラックとして使用しながら購入するアイテムを推薦できる。別の実施形態において、プレイリストモジュールは、曲がユーザのライブラリの一部であったとしたらプレイリストのどこに含まれるであろうかをユーザに通知することにより、購入する曲を推薦できる。購入の推薦は、サーバからクライアント、そしてポータブルメディアプレーヤまでのシステムのどのレベルでも行える。
【0097】
いくつかの実施形態において、推薦されるアイテムは、関連付けられた類似性データをまだ有していない新しいアイテムであってもよい。そのような例において、類似性スコアは、新しいアイテムがユーザにより購入されることを推薦されるようにオンラインストアの管理者により提供されうる。提供された類似性スコアは、同時存在又は他の実施形態に基づく類似性データが入手可能になるまで存続可能である。
【0098】
同様に、映画のレンタル又は購入が推薦されうる。殆どの実施形態が曲に関して説明されたが、メディアアイテムはビデオ又は映画を含むいかなるファイルであってもよい。本実施形態において、ユーザはシードアイテムの選択に基づいて類似する映画を要求できる。あるいは、システムは以前のレンタルに基づいて映画を推薦できる。類似性データは、ユーザが後で見るために新しい映画をクライアント又はポータブルメディアプレーヤに自動的にダウンロードするために使用できることが意図される。本実施形態は課金サービスの一部であってもよく、あるいはユーザは映画を見ないことを選択してレンタル料が発生しないようにできる。
【0099】
図16は、類似性データが購入するメディアアイテムを推薦するために使用される方法の一実施形態を示す。ステップ1002において、シードトラックが選択される。プレイリストがシードトラックに基づいて生成されるのと同様に、購入の推薦はシードトラックに基づく。しかし、少なくとも1つの実施形態において、購入の推薦は、ユーザのライブラリ全体に最も類似するコンテンツに基づいてもよい。
【0100】
シードトラックが選択されると、ステップ1004において、図示された方法は次に個別類似性テーブルからそのシードトラックに対する類似性データをルックアップする。本実施形態において、個別類似性テーブルは、ユーザのライブラリにないが類似性データによりユーザのメディアライブラリに存在するアイテムと関連付けられるメディアアイテムを更に含むことが理解されるだろう。別の実施形態において、購入の推薦は、ローカルに格納された類似性テーブルではなくサーバから直接行われる。マスタ類似性テーブルからの類似性リストは類似性データを提供でき、サーバ又はクライアントはユーザのライブラリから識別されたトラックを除くことができる。購入の推薦が含まれる必要はなく、全てのユーザが推薦目的のためのマスタテーブルを共有するため、本実施形態は、最小でありうる個別類似性テーブルを生成するという利点を有する。
【0101】
既にユーザのライブラリにあるアイテムが購入されることを推薦されないようにするために、ステップ1006は、ステップ1004で検索された類似性データからユーザのメディアライブラリに既に存在するアイテムを除去する。場合によっては、メディアアイテムはユーザにより既に購入されているが、それらのアイテムはユーザのメディアライブラリに存在しない。これは、任意の数の理由のためである。例えば、ユーザがその曲を好きではなく削除したためであり、ユーザがメディアアイテムを別のライブラリに格納したためであり、あるいはユーザがメディアアイテムを購入したがまだダウンロードしていないためである。少なくともこれらの例において、これらのメディアアイテムを購入することを推薦することは望ましくなく、これらのメディアアイテムもステップ1008において除去される。ステップ1010は、購入するように推薦されたアイテムを表示する。
【0102】
当然、方法はユーザにより現在選択されている全ての曲に対して繰り返される。いくつかの実施形態において、ユーザは、購入の推薦を断定的に要求する必要はない。そのような実施形態において、購入の推薦は、メディアアイテムが再生のために選択される度にメディアオーガナイザ又はメディアストア内に表示される。メディアアイテムが再生されると、グラフィカルユーザインタフェースは、購入するように推薦された他のメディアアイテム又はアルバム等のメディアアイテムのグループを表示できる。好適な一実施形態において、メディアアイテムは入力装置を使用して推薦自体を選択することにより直接購入可能であり、あるいは、メディアアイテムがオンラインストアから購入可能であるように、推薦はオンラインストアにハイパーリンクすることが少なくとも可能である。
【0103】
別の実施形態において、購入の推薦は、選択が可能でない方法を使用して示される。例えばリスナーが指定した購入済みのアーティストによる上位の曲を表示するView An Artistページにおいて、システムは既にユーザのライブラリに存在するアイテムの推薦を除去するようにフィルタリングされた推薦を表示できる。
【0104】
・サーバ>クライアント>IPOD
特に好適な一実施形態において、1つの場所で有用な方法はシステムの各場所で同等に適用可能である。図9はこの概念を示す。類似性テーブル908及びプレイリストモジュール914を含むオンライン音楽ストア902が示される。類似性テーブル908は、サーバのメディア一覧のアイテムのそれぞれについての全ての関係を含む。プレイリストモジュール914は、システムの他のどのクライアント又はポータブルメディアプレーヤとも同様に、類似性テーブルのデータに基づいて動作する。同様に、サーバより小さいメディア一覧を含むクライアント904が示され、クライアントのメディア一覧の各アイテムの類似性データは類似性テーブル910に格納される。プレイリストモジュール916は、ポータブルメディアプレーヤ906又は音楽ストア902と同様にローカルの類似性テーブル910のデータに基づいて動作する。最後に、クライアント904より小さいメディア一覧を含むポータブルメディアプレーヤ906を示す。類似性テーブル912はポータブルメディアプレーヤ906のメディア一覧のアイテムに関連した情報を格納し、プレイリストモジュール918はそのデータに基づいて動作する。
【0105】
図9は、クライアントがポータブルメディアプレーヤのグループに対してサーバのように挙動でき又はより大きいクライアントがより小さいクライアントに対してサーバとして挙動できるという概念を示す。これらの全ては本明細書で意図される。
【0106】
殆どの実施形態において、サーバはマスタ購入マトリクス及びマスタ類似性テーブルを維持する唯一の場所であるが、ローカルの類似性テーブルの生成はサーバから導出されたデータに基づいてどの装置においても行える。サーバにより行われる可能性が高い別の機能は更新である。殆どの実施形態において、サーバは類似性データ更新のソースであるだけでなく、サーバはシステムのプレイリストモジュール又はソフトウェア構成要素を更新できる。
【0107】
本明細書で説明した全ての処理がリアルタイムで行われる必要はないことが理解されるだろう。多くの場合、処理リソースを節約し且つ特定のタスクをオフラインで実行するのが望ましい。例えば協調フィルタリングエンジンは、マスタ類似性データテーブルを生成するためにスケジュールされた時間にのみ実行してもよい。オフライン処理の必要性は、技術の進歩によりなくなる可能性があることが更に考えられる。そのような例において、現在オフラインで実行されるのが好ましい処理はリアルタイムで実行できるだろう。
【0108】
別の実施形態において、各装置は特定の機能をローカルで実行できるにもかかわらず、特定のタスクをサーバに実行させるのが望ましいかもしれない。例えばサーバは、クライアントに対する個別類似性テーブルを生成できるか、あるいはクライアントに対するプレイリストを生成できる。これは、大きな処理のために望まれる処理リソースが一般に不足しているポータブルメディアプレーヤに対するそれらのタスクをクライアントが実行するために多用されてもよい。別の例において、サーバがプレイリストの生成の際に使用されるいくつかの制約を実行し且つ結果を類似性テーブルデータに取り入れることは有利であるかもしれない。例えば緩和されることがないであろうジャンル制約の場合、サーバはアイテムの類似性データから互いに相容れないジャンルのメディアアイテムを除外してもよい。このように、サーバが制約を満たさないアイテムを個別類似性テーブルから既に除外しているであろうから、プレイリストモジュールはプレイリストを生成する時に制約を実行する必要はない。
【0109】
図10は、メディア及び類似性テーブルをデジタルメディアプレーヤに同期させるシステムの一例を示す。通信媒体920は、インターネットである可能性が最も高いが、装置が互いに通信できるようにするいかなるチャネルも含むことができる。オンラインストア922は、オンラインストアと通信及び対話するためにインストールされた特別なソフトウェアを使用して一般にパーソナルコンピュータであるクライアント924と通信する。AppleのIPODメディアプレーヤ等のポータブルメディアプレーヤ926は、一般に30ピンUSBコネクタを介して、オンラインストア922に接続されたパーソナルコンピュータ924と同期する。ポータブルメディアプレーヤ926をパーソナルコンピュータ924に接続する他の方法は、USB、Firewire、802.11シリーズ又はBluetooth無線接続を含む。オンラインストアは、メディア930のマスタライブラリ及びマスタ類似性テーブル932を有する。ポータブルメディアプレーヤ936が同期されると、ローカルメディア934のメタデータ及びローカルのサブセット類似性テーブル936はパーソナルコンピュータ924及び通信媒体920を介してオンラインストア922に送信される。尚、メタデータのみが送信され、実際のメディアが送信されないことに留意することが重要である。オンラインストアは、メディアのコピーを必要とせず、ポータブルメディアプレーヤ926に配置されるメディアを明確に識別するのに十分な情報のみを必要とする。オンラインストアは、適切な情報を生成及び/又は検索し、その情報を装置に送出し返すことができ、それにより、ローカルに格納されたメディア934、938に対応する新しいデータによりローカルのサブセット類似性テーブル936、938を更新する。ローカルのサブセット類似性テーブルは、オンラインストアレベル、コンピュータレベル及び/又は装置自体において個々のプレイリストを生成するために使用される。
【0110】
別の実施形態において、ポータブルメディアプレーヤ936はサーバ922からデータを直接取得できる。そのような一実施形態において、ポータブルメディアプレーヤは、802.11シリーズの通信(Wi−Fi)又は移動電話網等を介してオンラインストアに接続するための種々の機能を備えることができる。ポータブルメディアプレーヤは、サーバに直接接続でき、クライアント装置が上記例において動作するように動作できる。ポータブルメディアは、一意の識別番号を割り当てられるか、あるいはライブラリがクライアント装置と関連付けられる場合はポータブルメディアプレーヤはクライアント装置と同一の識別番号を使用できる。とにかく、ポータブルメディアプレーヤは、ライブラリに格納されたメディアアイテムに関する情報をアップロードし且つ同一のアイテムに関する類似性データをダウンロードできる。ポータブルメディアプレーヤは、サーバに接続する方法を2つ以上有することができることが理解されるべきである。ポータブルメディアプレーヤは、オンラインストアに接続する機構を複数有することができるだけでなく、クライアント装置と同期し且つオンラインストアと直接通信する機能も有することができる。
【0111】
・ユーザインタフェース−概要
図11は、プレイリストの生成を開始するためのソフトウェアインタフェースの一例を示す。ソフトウェアインタフェース702は、メディアを再生し、メディア及びメディアプレイリストを管理し、オンラインストアからメディアを購入することを可能にし、他のメディア関連機能を実行するアプリケーションについて描かれている。ソフトウェアインタフェース702は、メディアのリスト704及び一部又は全ての関連メタデータを表示できる。オンラインストアを介して受信した個別類似性テーブルを使用してプレイリストを生成するために、ユーザは、1つ以上のメディアを選択して、ボタンをクリックするか、あるいは選択したシードトラックに基づいてプレイリストを生成するコマンドをコンピュータに与える。考えられる適切なユーザインタフェースは、キーボードにおけるキーシーケンス、マウスジェスチャ、タッチによる入力、音声コマンド、あるいはこれらのヒューマンコンピュータインタフェース及び他の適切なヒューマンコンピュータインタフェースのいずれかの組み合わせ等の形を含む。ソフトウェアアプリケーションは、開始されると、選択したメディアシードトラックに対する類似性テーブルを検索し、類似性テーブルに基づいてプレイリストを生成する。アプリケーションは、プレイリストのコンテンツをユーザに対して表示してもしなくてもよい。アプリケーションは、現在再生しているトラック、あるいは直前のメディア、現在再生しているメディア及び次のキューに入れられたメディア等のプレイリストコンテンツの他のサブセットのみを表示してもよい。
【0112】
図11に示した陰影をつけたエントリ等の2曲以上がプレイリストを生成するために選択される場合、プレイリストは、2つのエントリのそれぞれの個別の類似性データを単に組み合わせることにより生成される。あるいは、その2つをマージするためにより高度なアルゴリズムが使用されてもよい。例えば、選択した曲の間で共通のメディアにより高い重要度を割り当て、選択した双方の曲に類似しないと考えられる曲により低い重要度を割り当てるか又はそれらの曲を削除する。プレイリストを生成するために複数の選択した曲を処理する時のアプリケーションの挙動及び/又はアルゴリズムは、ユーザにより制御されるか又はアプリケーション内で事前に設定される。
【0113】
プレイリストがリフレッシュされるか又は再作成される実施形態において、生成されたプレイリストの各々を時間順に1つずつ実行する戻る/進む機能性が提供される。例えば、ユーザがプレイリストを作成し且つ別のプレイリストを作成する場合、ユーザは、ブラウザの戻るボタン及び進むボタンのように、コンテンツ及び順番を含む先のプレイリストに戻ることができ、その後新しく作成したプレイリストに戻ることができる。
【0114】
プレイリストは、いかなる曲も選択せずに作成できる。ユーザは、「Choose For Me」タイプボタン706を単純に選択でき、その結果、システムはユーザに対してシードトラックを選択する。一実施形態において、シードトラックは無作為に選択されてもよい。別の実施形態において、システムは、最近再生されたアイテムのリスト、再生回数が最高のアイテムのリスト、最高の評価をされたアイテム、最近追加又は購入されたアイテム、ジャンル、あるいはアイテムを選択するのに使用された他のあらゆる属性からトラックを選択できる。シードトラックの選択方法に関係なく、プレイリストは類似性データに基づいて作成される。
【0115】
・ユーザインタフェース−IPOD/IPHONE/IPOD TOUCH
図12は、ユーザの視点で類似性データからプレイリストを作成する方法を示す。図12は、2つの可能な開始点720及び721を示す。ユーザは、ステップ720においてプレイリストモジュールに対してシードトラックとなるメディアアイテムを選択できるか、あるいはユーザが現在聴いているアイテムに基づいてプレイリストを作成することを決定できる(721)。ユーザは、メニューが表示されるようにするコマンドを入力する(722)。コマンドは、ボタン、タッチスクリーン又はポインタ等のあらゆるユーザインタフェースオブジェクトにより入力可能である。メニューが表示されると、ステップ726において、ユーザはプレイリストジェネレータオプション727を選択するためにカーソルをナビゲートし、それを選択する。ステップ728において確認画面が示され、ユーザが確認すると、ステップ730においてプレイリストが生成される。
【0116】
図13A及び図13Bは、プレイリスト生成プログラムを開始する2つの異なるコンテキストメニューを示す。ユーザがメディアアイテム(例えば、曲のリスト中の1曲又は現在再生している画面)に関して中央のボタン723を長押しした場合、コンテキストメニューが表示される。コンテキストメニューは、特にプレイリストジェネレータ(Playlist Generator)開始コマンドを含むことができる。ユーザは、プレイリストジェネレータ項目を強調表示するためにスクロールホイール719を使用して時計回り又は反時計回りに指を動かすことによりナビゲートし、強調表示された領域を選択するために中央のボタン723を押下してもよい。
【0117】
図13Cは、ユーザがコンテキストメニューにおいてプレイリストジェネレータプログラムを選択した場合又はユーザが例えばメディア再生中に所定の回数だけ中央のボタン723を押下した場合に表示される画面を示す。この画面は、スクロールホイール入力719が矢印729を開始場所に移動させるのを待つことによりプレイリストジェネレータがユーザにより起動されることを要求する。ユーザは、メニューボタンを押下することによりプログラムから抜けられる。
【0118】
図13Dはプレイリストの一例を示す。エネルギーシンボル325は、プレイリストが生成された時のシード(トラック)を表す。リフレッシュ(Refresh)327は、シードに基づいて新しいプレイリストを作成する。プレイリスト保存(Save Playlist)329は、プレイリストを保存し、プレイリストは(メニュー構造の最上層の)ミュージックの下のプレイリストサブメニューから検索されるか又は(メニュー構造の最上層において)プレイリストジェネレータプログラムを選択することにより検索される。
【0119】
図14は、プレイリストジェネレータを使用するための別のインタフェースを示す。図14Aは、プレイリストジェネレータモジュールがタッチスクリーンを使用して選択されるプレイリストメニューを示す。ユーザは、メニュー項目を指でタップすることにより又はメニュー項目上で指を動かしてタッチスクリーンから指を離すことによりプレイリストジェネレータプログラム(又は他のいずれかのメニュー項目)を選択できる。
【0120】
図14Bは、プレイリストモジュールがプレイリストを作成する際のメディアアイテムをユーザが選択できるシードトラック選択画面を示す。ユーザは、指のタッチを用いてスクロールすることによりメディアアイテムのリストをナビゲートできる。ユーザは、上下の指をスイープする動作を使用してアルファベットの昇順又は降順にリストをスクロールできる。あるいは、ユーザは、アルファベットのリストの所望の部分に対応する文字を選択することによりそのリストのその部分に飛べる。
【0121】
曲「Abram」に基づいて生成されたサンプルプレイリストを図14Cに示す。図14Dは、再生されているプレイリストの第1のトラックを示す。図14Cに戻ると、リフレッシュ(Refresh)ボタン740は、類似性テーブルの新しいデータから新しいプレイリストを作成するために使用される。図14Eは、リフレッシュされたプレイリストの再生を示す。
【0122】
図14Fは、リフレッシュされたリストを静的プレイリストとして保存するために選択される保存(Save)ボタン742を示す。保存されたプレイリストは、図14Gのプレイリストメニューで見られる。保存したプレイリストであっても編集できる。サンプルプレイリスト編集画面を図14Hに示す。他の実施形態において、例えばユーザが現在のシードトラックのプレイリストを終了し、現在再生しているトラックに基づいて新しいプレイリストを作成したい場合、プレイリスト内の曲がシートトラックとして選択できる。
【0123】
別の実施形態において、曲が購入されることができ、プレイリストはクライアント装置を制御するリモートを使用して作成されることができる。
【0124】
・ユーザインタフェース−ITUNES
図17A及び図17Bは、ユーザ選択ページの2つの可能な実現例を示す。ユーザ選択画面は、パーソナル音楽ライブラリに関するデータがサービスに送出されることをユーザに通知し、ユーザが参加ボタン1026をクリックすることによりプログラムに参加することを要求する。ユーザは、ボタン1027を選択することによりこのオプションを拒否できる。
【0125】
図17Bに示したグラフィカルユーザインタフェースは、プレイリスト生成プログラムを開始できる選択可能な項目1020及び1024を示す。選択可能な項目1022は、メディアアイテム推薦機能を開始できる。好適な一実施形態において、項目1022は、購入することを推薦するアイテムをユーザに提示するグラフィカルユーザインタフェース内でフレーム1025を開ける。
【0126】
図18は、ユーザのメディアライブラリに関する情報をアップロードし且つローカルメディアライブラリのコンテンツに対する類似性データを受信する間に表示される1つのありうるグラフィカルユーザインタフェースを一般的に示す。図18Aは、図18Bに示す画面が表示されている間にサーバに送信されるユーザのメディアライブラリに関する情報のプログラムが収集している間に示される1つのありうる画面を示す。図18Cは、このクライアント装置についての個別類似性テーブルに格納される情報をダウンロードしている間に示される1つのありうる画面を示す。図18Dは、ユーザが本明細書で説明されるプレイリスト生成処理及びメディア推薦処理を現在使用できることを示す処理完了画面を示す。ユーザは、情報を収集、アップロード及びダウンロードしている間にこれらの画面を閲覧する必要はない。少なくとも1つの好適な実施形態において、ユーザはこの処理中にグラフィカルユーザインタフェースの他の機能を使用し続けられる。
【0127】
・ユーザインタフェース−ITUNES/サイドバー
図19は、類似性データに基づいて購入することを推薦するメディアアイテムを表示する1つのグラフィカルユーザインタフェースを一般的に示す。図19Aを参照すると、図はより大きいグラフィカルユーザインタフェースに組み込まれるか又はスタンドアロンインタフェースでありうるグラフィカルユーザインタフェース1038を示す。インタフェース1038内にアルバムに関する類似性データが示される。この例において、White Stripes Albumの曲が選択され、インタフェース1038はこのメディアアイテムに対する類似性データを表示する。モジュール1040は、購入の推薦の1つの形式を含む。モジュール1040内の項目は、同一アーティストによるアルバムを表し、これは指定されたメディアアイテムを含むアルバムを含む。いくつかの実施形態において、このインタフェースでアルバムを選択することにより、アルバムの全てのトラックを表示するリストに拡大する。推薦されたアルバムは、まだダウンロードできない可能性があるが、リリース前に購入されうる。ユーザがライブラリ又は購入履歴にアルバムの全ての曲を既に有している場合、そのアルバムは、最も関連するアルバムであっても表示されないことが重要である。しかし、ユーザがアルバムの一部の曲のみを所有している場合、アルバムは既に所有している曲が表された状態で示されうる。インタフェース1038は、ユーザのライブラリ又は購入履歴に存在しないメディアアイテムのみを表示する。
【0128】
モジュール1042は、ユーザのメディアライブラリ又は購入履歴に存在しない同一アーティストの曲を表示する。モジュール1044は、選択される曲に対する類似性データに基づいてメディアアイテムを推薦する。いくつかの曲に対して、システムは関連する推薦を提供できないが、そのような状況においてはユーザの聴き方及び購入の仕方に適応され且つユーザが既に有しているものについてはフィルタリングされている、更に広範な推薦がユーザに与えられうることが理解される。
【0129】
各モジュール1040、1042及び1044は、任意の数のアイテムを含むことができ、図に表された数である必要はない。いくつかの例において、インタフェースが1度に表示できる数より多くの推薦が得られてもよい。そのような一例において、インタフェースは追加の推薦されたアイテムを閲覧するためのスクロールバー又はリンクを含むことができる。
【0130】
個別の各メディアアイテムは、アイコン1041を選択することによりプレビューされうる。このアイコンを選択することにより、ユーザは推薦された個々のメディアアイテムを好きであるか否かを判断するためにそのメディアアイテムをプレビューできる。いくつかの実施形態において、アイコン1041は、アイテムがプレビュー可能であることをより適切に示すために再生ボタンに変更されてもよい。ユーザがメディアアイテムを購入したい場合、ユーザはアイコン1043を選択でき、それによりユーザは選択したアイテムを購入及び取得できる。アイテムが購入されると、購入を示すアイコン又は他の手段が表示される。別の実施形態において、アイテムが購入されると、そのアイテムはさらなる推薦のためのシードトラックとなることができる。
【0131】
図19Bは、インタフェース1038についての別のレイアウトを示す。このレイアウトにおいては、ボックス1040及び1044のみが表示される。インタフェースにおいてさらなる利用可能な空間をとるために、追加のメディアアイテムは推薦ボックス1044に追加された。少なくとも1つの実施形態において、空の無駄な空間を有することはユーザを苛立たせる可能性があるため、全ての利用可能な空間を推薦で満たすのが望ましい。
【0132】
図19Cは、選択されたメディアアイテムに対して入手可能な類似性データが存在しない一実施形態を示す。本実施形態において、ボックス1048は、マッチングするものがないことをユーザに指示し、選択したメディアアイテムと同一又は同様のジャンルの上位のアルバムを推薦するためにモジュール1043及び1046を使用する。
【0133】
図19Dは、入手可能な類似性データが存在せず且つ入手可能なジャンル情報がない(又はジャンルに基づく推薦がない)一実施形態を示す。ここでも、選択したメディアアイテムに対してマッチングするものが返されなかったことをユーザに通知するメッセージがボックス1048に表示される。モジュール1045は、選択したメディアアイテムに類似する上位のメディアアイテムを表示できる。モジュール1046は、オンラインストアの上位のアルバムを表示できる。
【0134】
更に図19Eは、ユーザがプログラムに参加していないため又はサーバが類似性データを発行するのに利用可能でないために入手可能な推薦が存在しない一実施形態を示す。マッチングするものがないことを示すメッセージはモジュール1048に表示される。モジュール1050は、類似性データの代わりにシードトラックと同一アーティストによる他の曲及びアルバムを表示できる。本実施形態において、ユーザのメディアライブラリにあるアイテムが表示されてもよい。モジュール1052は、ストア購入情報から導出されたストアアイテムを表示する。
【0135】
図19Fは、推薦が利用可能でなく且つそれを示すメッセージがモジュール1048に表示される一実施形態を示す。インタフェースは、推薦の代わりにオンラインストアのトップセールスチャートをモジュール1054及び1046に示す。
【0136】
本発明の範囲内の実施形態は、コンピュータ実行可能命令又はデータ構造を保持するか又は格納するコンピュータ可読媒体を更に含んでもよい。そのようなコンピュータ可読媒体は、汎用コンピュータ又は専用コンピュータによりアクセスされる利用可能などんな媒体であってもよい。例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROM又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置、あるいはコンピュータ実行可能命令又はデータ構造の形式で所望のプログラムコード手段を保持又は格納するために使用可能な他のいかなる媒体も含むことができるが、これらに限定されない。情報がネットワーク又は別の通信接続(ハードワイヤード、無線又はそれらの組み合わせ)を介してコンピュータに転送又は提供される場合、コンピュータは接続をコンピュータ可読媒体として正しく考える。従って、そのようないかなる接続も正しくコンピュータ可読媒体と呼ばれる。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0137】
例えばコンピュータ実行可能命令は、汎用コンピュータ、専用コンピュータ又は専用処理装置に特定の機能又は機能群を実行させる命令及びデータを含む。コンピュータ実行可能命令は、スタンドアロン又はネットワーク環境でコンピュータにより実行されるプログラムモジュールを更に含む。一般にプログラムモジュールは、特定のタスクを実行するか又は特定の抽象データタイプを実現するルーチン、プログラム、オブジェクト、構成要素及びデータ構造を含む。コンピュータ実行可能命令、関連するデータ構造及びプログラムモジュールは、本明細書で開示された方法のステップを実行するためのプログラムコード手段の例である。そのような実行可能命令又は関連するデータ構造の特定のシーケンスは、そのようなステップで説明された機能を実現するための対応する動作の例である。
【0138】
本発明の他の実施形態は、パーソナルコンピュータ、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサを使用する消費者電子機器、プログラマブル消費者電子機器、ネットワークPC、ミニコンピュータ及びメインフレームコンピュータ等を含む多くの種類のコンピュータシステム構成を有するネットワークコンピューティング環境で実現されてもよいことが当業者には理解されるだろう。実施形態は、通信ネットワークを介してリンクされる(有線リンク、無線リンク又はそれらの組合せにより)ローカル処理装置及びリモート処理装置によりタスクが実行される分散コンピューティング環境で実現されてもよい。分散コンピューティング環境において、プログラムモジュールは、ローカルメモリ記憶装置及びリモートメモリ記憶装置の双方に配置されてもよい。
【0139】
説明したシステムの種々の段階における通信は、ローカルエリアネットワーク、トークンリングネットワーク、インターネット、企業イントラネット、802.11シリーズ無線信号、光ファイバネットワーク、無線又はマイクロ波伝送等のネットワーククラウド328を介して実行されうる。基礎となる通信技術が変更されてもよいが、本明細書で説明した基本的な原理は依然として適用可能である。
【0140】
上述した種々の実施形態は、例として提供され、本発明を限定するものとして解釈されるべきではない。例えば本明細書の原理は、ポータブルメディア再生装置又はネットワークに物理的に接続されたパーソナルコンピュータにより無線でアクセスできるオンラインストアに適用されてもよい。本明細書で図示して説明した実施形態の例及び応用例に従わないが、本発明の趣旨の範囲からは逸脱しない、本発明に対して行われうる種々の変形及び変更を、当業者は容易に認識できるだろう。
【0141】
本願は、全てが2008年9月30日に出願された米国特許出願シリアル番号12/242,728、12/242,735、12/242,758、及び12/242,768の優先権を主張し、2008年9月8日に出願された"SYSTEM AND METHOD FOR PLAYLIST GENERATION BASED ON SIMILARITY DATA(類似性データに基づくプレイリスト生成システム及び方法)"と題するUS仮特許出願番号61/095,289の利益を主張し、これらの全ては参照によりその全体が明白に本明細書に組み込まれる。
【特許請求の範囲】
【請求項1】
メディアプレイリストの生成を促進するために、コンピュータによって実行される、プログラム参加者のメディアライブラリ内のメディアアイテムの相対的な類似性を確立する方法であって、
複数のプログラム参加者から、それぞれの参加者のメディアライブラリに現在含まれているそれぞれの個別メディアアイテムの識別データを含み、それぞれのプログラム参加者のメディアライブラリ一覧を示すデータを受信する工程と、
異なるプログラム参加者のメディアライブラリ間で、個別メディアアイテムのペアが同時に存在していることを判定する工程と、
前記異なるプログラム参加者のメディアライブラリにおいて同時に存在していることの前記判定に基づいて、前記個別メディアアイテムのペア間の類似性評価を割り当てる工程と、
プログラム参加者のメディアライブラリに含まれる複数の個別メディアアイテムについての、当該プログラム参加者のメディアライブラリに含まれる他のメディアアイテムに対する類似性評価を、前記割り当てられた類似性評価に基づいてまとめる工程と、
プログラム参加者のメディアライブラリに含まれる複数の個別メディアアイテムについての類似性評価を含むデータを、当該プログラム参加者のデバイスへと送信する工程であって、これによって当該データからの類似するメディアライブラリ・アイテムのプレイリストの前記生成を促進する工程と、
を備えることを特徴とする方法。
【請求項2】
メディアプレイリストの生成を促進するために、コンピュータによって実行される、プログラム参加者のメディアライブラリ内のメディアアイテムの相対的な類似性を確立する方法であって、
前記プログラム参加者のクライアントデバイスが、プログラム参加者のメディアライブラリに含まれている複数の個別メディアアイテムについての、前記プログラム参加者のメディアライブラリに含まれている他のメディアアイテムに対する類似性評価を含むデータを受信する工程と、
前記データから類似するメディアライブラリ・アイテムのプレイリストを生成する工程であって、シードトラックとして用いられるメディアライブラリ・アイテムを選択する工程と、前記プログラム参加者のメディアライブラリに含まれる前記用いられたシードトラックに類似する他の個別メディアライブラリ・アイテムを、プレイリストの候補として取得する工程と、を含む工程と、
を含み、
メディアライブラリ・アイテムの、他のメディアライブラリ・アイテムに対する前記類似性評価は、プログラム参加者の母集団から収集された累積データに基づいてまとめられ、前記累積データは前記プログラム参加者のメディアライブラリに含まれる個別メディアライブラリ・アイテムの識別データを含むことを特徴とする、方法。
【請求項3】
請求項1に記載の方法及び請求項2に記載の方法を含む方法。
【請求項4】
前記プログラム参加者のメディアライブラリに含まれる複数の個別メディアアイテムについての前記類似性評価はそれぞれが、前記プログラム参加者のメディアライブラリ内のシード・メディアアイテムに類似する、前記プログラム参加者のメディアライブラリ内のメディアアイテムのリストの形をとり、当該メディアアイテムは前記プログラム参加者のメディアライブラリ内のシードメディアに類似しており、前記プログラム参加者のデバイス上のテーブルにまとめて格納されていることを特徴とする、請求項1乃至3の何れか1項に記載の方法。
【請求項5】
前記類似性評価の前記まとめは、異なるプログラム参加者のメディアライブラリにおいて個別メディアアイテムのペアが同時に存在していることを判定するために前記累積データを処理することと、前記異なるプログラム参加者のメディアライブラリにおいて同時に存在していることの前記判定に基づいて、個別メディアアイテムの前記ペア間に類似性評価を割り当てることと、を含むことを特徴とする、請求項2に記載の方法。
【請求項6】
前記プログラム参加者のメディアライブラリに含まれ、前記参加者のメディアライブラリから選択されたシード・メディアアイテムに対する類似性評価を有する個別メディアアイテムのみからなるメディアプレイリストを生成する工程をさらに含むことを特徴とする、請求項2又は3に記載の方法。
【請求項7】
前記プログラム参加者のメディアライブラリに含まれ、前記プログラム参加者のメディアライブラリから選択されるシード・メディアアイテムに対して類似性評価を有する個別メディアアイテムを含むメディアプレイリストを生成する工程をさらに含むことを特徴とする、請求項2又は3に記載の方法。
【請求項8】
前記メディアプレイリストは前記メディアプレイリスト生成デバイス上で生成され、前記デバイスは可搬パーソナルメディア再生デバイス又はパーソナルコンピュータの形をとることを特徴とする、請求項2又は3に記載の方法。
【請求項9】
プログラム参加者の母集団から収集される累積データは、前記類似性評価がまとめられるオンラインメディア供給ソースによって収集されることを特徴とする、請求項1乃至3の何れか1項に記載の方法。
【請求項10】
前記オンラインメディア供給ソースは、前記プログラム参加者が各音楽トラックを購入したオンライン音楽ストアであることを特徴とする、請求項1乃至3の何れか1項に記載の方法。
【請求項11】
各識別データの解析に基づいて前記参加者のメディアライブラリに含まれる個別メディアアイテムに対してプログラムに由来する識別子を割り当てる工程であって、これによって異なる参加者の前記メディアライブラリに含まれる実質的に同一のメディアアイテム同士を直接に関係付けることを可能とする工程をさらに含むことを特徴とする、請求項1乃至3の何れか1項に記載の方法。
【請求項12】
前記個別メディアアイテムが、前記プログラム参加者のビデオ・メディアライブラリに現在含まれている映画であることを特徴とする、請求項1乃至3の何れか1項に記載の方法。
【請求項13】
前記個別メディアアイテムが、前記プログラム参加者のオーディオ・メディアライブラリに現在含まれているオーディオトラックであることを特徴とする、請求項1乃至3の何れか1項に記載の方法。
【請求項14】
前記個別メディアアイテムが、前記プログラム参加者の音楽メディアライブラリに現在含まれている音楽トラックであることを特徴とする、請求項1乃至3の何れか1項に記載の方法。
【請求項15】
前記プログラム参加者のメディアライブラリ一覧に現在含まれている指定されたメディアアイテムに類似するものとして評価されている購入推薦メディアアイテムに基づいて選択された、少なくとも1つの購入推薦メディアアイテムの指定を、前記プログラム参加者のデバイスへと送信する工程をさらに備え、
前記評価は、他の参加者のメディアライブラリにおいて前記購入推薦メディアアイテムが前記指定されたメディアアイテムと同時に存在する頻度を示すことを特徴とする、請求項1に記載の方法。
【請求項16】
コンピュータに、請求項1乃至14の何れか1項に記載の方法を実行させるプログラムコードを有することを特徴とする、コンピュータ読み取り可能な記憶媒体。
【請求項17】
メディアプレイリストを生成するシステムであって、
それぞれのプログラム参加者の個別メディアアイテムのメディアライブラリをそれぞれが含むストレージ・メディア・デバイスを、それぞれ有する少なくとも2つのクライアントデバイスと、
複数のプログラム参加者のクライアントデバイスから受信したデータを格納する手段と、
複数のプログラム参加者のクライアントデバイスから受信したデータを格納する前記手段から代表データを受信する類似性データ生成プログラムを実行する手段と、
前記クライアントデバイスとデータ処理センターとの間で通信する手段と、を備え、
前記代表データは、複数のプログラム参加者の各メディアライブラリ一覧に由来し、かつ個別メディアアイテムのソースに関係なく前記各参加者のメディアライブラリに現在含まれている個別メディアライブラリ・アイテムの識別データを含み、
前記通信する手段は、前記個別メディアアイテムのソースに関係なく前記メディアライブラリ内の前記個別メディアアイテムを表す識別データを前記クライアントデバイスから送信し、前記クライアントデバイスへ類似性評価データを送信する
ことを特徴とするシステム。
【請求項18】
少なくとも1つの前記クライアントデバイス上の前記ストレージ・メディアは、前記各クライアントデバイス上に格納される個別メディアアイテムを特定するデータと、前記アイテムの少なくともいくつかを、同一の前記各クライアントデバイス上に格納されている他の個別メディアアイテムのサブセットに類似しているものとして関連付けるデータと、を備える類似性テーブルをさらに格納していることを特徴とする、請求項17に記載のシステム。
【請求項19】
選択されたシードトラックに類似するものとして特定されたメディアアイテムが所属しているプレイリストを、クライアントデバイス上に生成する手段をさらに備えることを特徴とする、請求項17又は18に記載のシステム。
【請求項20】
ストレージ・メディア・デバイスと信号を通信するプロセッサを備えるメディアプレイリスト生成デバイスであって、
前記ストレージ・メディア・デバイスは、複数のプログラム参加者から収集された累積データに基づいてまとめられたメディアアイテム類似性評価に関する類似性データを格納し、
前記累積データは、それぞれの個別メディアアイテムのソースに関係なく、前記プログラム参加者の前記メディアライブラリに含まれる個別メディアアイテムの識別データを含み、
前記プロセッサは、前記ストレージ・メディア・デバイスから類似性評価データを受信し、前記類似性評価データにおいて特定された前記メディアアイテムから選択された候補メディアアイテムからプレイリストを生成するプレイリスト生成プログラムを少なくとも実行するように構成されている
ことを特徴とするデバイス。
【請求項21】
前記類似性データは、各プログラム参加者のメディアライブラリ内の前記個別メディアアイテムに関する類似性データに限られることを特徴とする、請求項20に記載のデバイス。
【請求項22】
ストレージ・メディア・デバイスと信号を通信するプロセッサを備えるメディアプレイリスト生成デバイスであって、
前記ストレージ・メディア・デバイスは、複数のプログラム参加者によって提供されたメディアライブラリ一覧情報に関連するデータを格納し、
前記プロセッサは、前記ストレージ・メディア・デバイスから代表データを受信する類似性データ生成プログラムを少なくとも実行するように構成され、
前記代表データは、複数のプログラム参加者の各メディアライブラリ一覧に由来し、かつ個別メディアアイテムのソースに関係なく前記各参加者のメディアライブラリに現在含まれている個別メディアライブラリ・アイテムの識別データを含み、
前記プロセッサはさらに、異なるプログラム参加者のメディアライブラリ間で、個別メディアアイテムのペアが同時に存在していることを判定し、前記異なるプログラム参加者のメディアライブラリにおいて同時に存在していることの前記判定に基づいて、前記個別メディアアイテムのペア間の類似性評価を割り当てるように構成され、
前記デバイスはさらに、プログラム参加者のメディアライブラリに含まれている個別メディアアイテムについての、プログラム参加者のメディアライブラリに含まれている他のメディアアイテムに対する類似性評価を送信するための通信インタフェースをさらに備えることを特徴とするデバイス。
【請求項1】
メディアプレイリストの生成を促進するために、コンピュータによって実行される、プログラム参加者のメディアライブラリ内のメディアアイテムの相対的な類似性を確立する方法であって、
複数のプログラム参加者から、それぞれの参加者のメディアライブラリに現在含まれているそれぞれの個別メディアアイテムの識別データを含み、それぞれのプログラム参加者のメディアライブラリ一覧を示すデータを受信する工程と、
異なるプログラム参加者のメディアライブラリ間で、個別メディアアイテムのペアが同時に存在していることを判定する工程と、
前記異なるプログラム参加者のメディアライブラリにおいて同時に存在していることの前記判定に基づいて、前記個別メディアアイテムのペア間の類似性評価を割り当てる工程と、
プログラム参加者のメディアライブラリに含まれる複数の個別メディアアイテムについての、当該プログラム参加者のメディアライブラリに含まれる他のメディアアイテムに対する類似性評価を、前記割り当てられた類似性評価に基づいてまとめる工程と、
プログラム参加者のメディアライブラリに含まれる複数の個別メディアアイテムについての類似性評価を含むデータを、当該プログラム参加者のデバイスへと送信する工程であって、これによって当該データからの類似するメディアライブラリ・アイテムのプレイリストの前記生成を促進する工程と、
を備えることを特徴とする方法。
【請求項2】
メディアプレイリストの生成を促進するために、コンピュータによって実行される、プログラム参加者のメディアライブラリ内のメディアアイテムの相対的な類似性を確立する方法であって、
前記プログラム参加者のクライアントデバイスが、プログラム参加者のメディアライブラリに含まれている複数の個別メディアアイテムについての、前記プログラム参加者のメディアライブラリに含まれている他のメディアアイテムに対する類似性評価を含むデータを受信する工程と、
前記データから類似するメディアライブラリ・アイテムのプレイリストを生成する工程であって、シードトラックとして用いられるメディアライブラリ・アイテムを選択する工程と、前記プログラム参加者のメディアライブラリに含まれる前記用いられたシードトラックに類似する他の個別メディアライブラリ・アイテムを、プレイリストの候補として取得する工程と、を含む工程と、
を含み、
メディアライブラリ・アイテムの、他のメディアライブラリ・アイテムに対する前記類似性評価は、プログラム参加者の母集団から収集された累積データに基づいてまとめられ、前記累積データは前記プログラム参加者のメディアライブラリに含まれる個別メディアライブラリ・アイテムの識別データを含むことを特徴とする、方法。
【請求項3】
請求項1に記載の方法及び請求項2に記載の方法を含む方法。
【請求項4】
前記プログラム参加者のメディアライブラリに含まれる複数の個別メディアアイテムについての前記類似性評価はそれぞれが、前記プログラム参加者のメディアライブラリ内のシード・メディアアイテムに類似する、前記プログラム参加者のメディアライブラリ内のメディアアイテムのリストの形をとり、当該メディアアイテムは前記プログラム参加者のメディアライブラリ内のシードメディアに類似しており、前記プログラム参加者のデバイス上のテーブルにまとめて格納されていることを特徴とする、請求項1乃至3の何れか1項に記載の方法。
【請求項5】
前記類似性評価の前記まとめは、異なるプログラム参加者のメディアライブラリにおいて個別メディアアイテムのペアが同時に存在していることを判定するために前記累積データを処理することと、前記異なるプログラム参加者のメディアライブラリにおいて同時に存在していることの前記判定に基づいて、個別メディアアイテムの前記ペア間に類似性評価を割り当てることと、を含むことを特徴とする、請求項2に記載の方法。
【請求項6】
前記プログラム参加者のメディアライブラリに含まれ、前記参加者のメディアライブラリから選択されたシード・メディアアイテムに対する類似性評価を有する個別メディアアイテムのみからなるメディアプレイリストを生成する工程をさらに含むことを特徴とする、請求項2又は3に記載の方法。
【請求項7】
前記プログラム参加者のメディアライブラリに含まれ、前記プログラム参加者のメディアライブラリから選択されるシード・メディアアイテムに対して類似性評価を有する個別メディアアイテムを含むメディアプレイリストを生成する工程をさらに含むことを特徴とする、請求項2又は3に記載の方法。
【請求項8】
前記メディアプレイリストは前記メディアプレイリスト生成デバイス上で生成され、前記デバイスは可搬パーソナルメディア再生デバイス又はパーソナルコンピュータの形をとることを特徴とする、請求項2又は3に記載の方法。
【請求項9】
プログラム参加者の母集団から収集される累積データは、前記類似性評価がまとめられるオンラインメディア供給ソースによって収集されることを特徴とする、請求項1乃至3の何れか1項に記載の方法。
【請求項10】
前記オンラインメディア供給ソースは、前記プログラム参加者が各音楽トラックを購入したオンライン音楽ストアであることを特徴とする、請求項1乃至3の何れか1項に記載の方法。
【請求項11】
各識別データの解析に基づいて前記参加者のメディアライブラリに含まれる個別メディアアイテムに対してプログラムに由来する識別子を割り当てる工程であって、これによって異なる参加者の前記メディアライブラリに含まれる実質的に同一のメディアアイテム同士を直接に関係付けることを可能とする工程をさらに含むことを特徴とする、請求項1乃至3の何れか1項に記載の方法。
【請求項12】
前記個別メディアアイテムが、前記プログラム参加者のビデオ・メディアライブラリに現在含まれている映画であることを特徴とする、請求項1乃至3の何れか1項に記載の方法。
【請求項13】
前記個別メディアアイテムが、前記プログラム参加者のオーディオ・メディアライブラリに現在含まれているオーディオトラックであることを特徴とする、請求項1乃至3の何れか1項に記載の方法。
【請求項14】
前記個別メディアアイテムが、前記プログラム参加者の音楽メディアライブラリに現在含まれている音楽トラックであることを特徴とする、請求項1乃至3の何れか1項に記載の方法。
【請求項15】
前記プログラム参加者のメディアライブラリ一覧に現在含まれている指定されたメディアアイテムに類似するものとして評価されている購入推薦メディアアイテムに基づいて選択された、少なくとも1つの購入推薦メディアアイテムの指定を、前記プログラム参加者のデバイスへと送信する工程をさらに備え、
前記評価は、他の参加者のメディアライブラリにおいて前記購入推薦メディアアイテムが前記指定されたメディアアイテムと同時に存在する頻度を示すことを特徴とする、請求項1に記載の方法。
【請求項16】
コンピュータに、請求項1乃至14の何れか1項に記載の方法を実行させるプログラムコードを有することを特徴とする、コンピュータ読み取り可能な記憶媒体。
【請求項17】
メディアプレイリストを生成するシステムであって、
それぞれのプログラム参加者の個別メディアアイテムのメディアライブラリをそれぞれが含むストレージ・メディア・デバイスを、それぞれ有する少なくとも2つのクライアントデバイスと、
複数のプログラム参加者のクライアントデバイスから受信したデータを格納する手段と、
複数のプログラム参加者のクライアントデバイスから受信したデータを格納する前記手段から代表データを受信する類似性データ生成プログラムを実行する手段と、
前記クライアントデバイスとデータ処理センターとの間で通信する手段と、を備え、
前記代表データは、複数のプログラム参加者の各メディアライブラリ一覧に由来し、かつ個別メディアアイテムのソースに関係なく前記各参加者のメディアライブラリに現在含まれている個別メディアライブラリ・アイテムの識別データを含み、
前記通信する手段は、前記個別メディアアイテムのソースに関係なく前記メディアライブラリ内の前記個別メディアアイテムを表す識別データを前記クライアントデバイスから送信し、前記クライアントデバイスへ類似性評価データを送信する
ことを特徴とするシステム。
【請求項18】
少なくとも1つの前記クライアントデバイス上の前記ストレージ・メディアは、前記各クライアントデバイス上に格納される個別メディアアイテムを特定するデータと、前記アイテムの少なくともいくつかを、同一の前記各クライアントデバイス上に格納されている他の個別メディアアイテムのサブセットに類似しているものとして関連付けるデータと、を備える類似性テーブルをさらに格納していることを特徴とする、請求項17に記載のシステム。
【請求項19】
選択されたシードトラックに類似するものとして特定されたメディアアイテムが所属しているプレイリストを、クライアントデバイス上に生成する手段をさらに備えることを特徴とする、請求項17又は18に記載のシステム。
【請求項20】
ストレージ・メディア・デバイスと信号を通信するプロセッサを備えるメディアプレイリスト生成デバイスであって、
前記ストレージ・メディア・デバイスは、複数のプログラム参加者から収集された累積データに基づいてまとめられたメディアアイテム類似性評価に関する類似性データを格納し、
前記累積データは、それぞれの個別メディアアイテムのソースに関係なく、前記プログラム参加者の前記メディアライブラリに含まれる個別メディアアイテムの識別データを含み、
前記プロセッサは、前記ストレージ・メディア・デバイスから類似性評価データを受信し、前記類似性評価データにおいて特定された前記メディアアイテムから選択された候補メディアアイテムからプレイリストを生成するプレイリスト生成プログラムを少なくとも実行するように構成されている
ことを特徴とするデバイス。
【請求項21】
前記類似性データは、各プログラム参加者のメディアライブラリ内の前記個別メディアアイテムに関する類似性データに限られることを特徴とする、請求項20に記載のデバイス。
【請求項22】
ストレージ・メディア・デバイスと信号を通信するプロセッサを備えるメディアプレイリスト生成デバイスであって、
前記ストレージ・メディア・デバイスは、複数のプログラム参加者によって提供されたメディアライブラリ一覧情報に関連するデータを格納し、
前記プロセッサは、前記ストレージ・メディア・デバイスから代表データを受信する類似性データ生成プログラムを少なくとも実行するように構成され、
前記代表データは、複数のプログラム参加者の各メディアライブラリ一覧に由来し、かつ個別メディアアイテムのソースに関係なく前記各参加者のメディアライブラリに現在含まれている個別メディアライブラリ・アイテムの識別データを含み、
前記プロセッサはさらに、異なるプログラム参加者のメディアライブラリ間で、個別メディアアイテムのペアが同時に存在していることを判定し、前記異なるプログラム参加者のメディアライブラリにおいて同時に存在していることの前記判定に基づいて、前記個別メディアアイテムのペア間の類似性評価を割り当てるように構成され、
前記デバイスはさらに、プログラム参加者のメディアライブラリに含まれている個別メディアアイテムについての、プログラム参加者のメディアライブラリに含まれている他のメディアアイテムに対する類似性評価を送信するための通信インタフェースをさらに備えることを特徴とするデバイス。
【図1】
【図2】
【図3A】
【図3B】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13A】
【図13B】
【図13C】
【図13D】
【図14A】
【図14B】
【図14C】
【図14D】
【図14E】
【図14F】
【図14G】
【図14H】
【図15】
【図16】
【図17A】
【図17B】
【図18A】
【図18B】
【図18C】
【図18D】
【図19A】
【図19B】
【図19C】
【図19D】
【図19E】
【図19F】
【図2】
【図3A】
【図3B】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13A】
【図13B】
【図13C】
【図13D】
【図14A】
【図14B】
【図14C】
【図14D】
【図14E】
【図14F】
【図14G】
【図14H】
【図15】
【図16】
【図17A】
【図17B】
【図18A】
【図18B】
【図18C】
【図18D】
【図19A】
【図19B】
【図19C】
【図19D】
【図19E】
【図19F】
【公表番号】特表2012−502361(P2012−502361A)
【公表日】平成24年1月26日(2012.1.26)
【国際特許分類】
【出願番号】特願2011−526131(P2011−526131)
【出願日】平成21年9月1日(2009.9.1)
【国際出願番号】PCT/US2009/055589
【国際公開番号】WO2010/027961
【国際公開日】平成22年3月11日(2010.3.11)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】
【公表日】平成24年1月26日(2012.1.26)
【国際特許分類】
【出願日】平成21年9月1日(2009.9.1)
【国際出願番号】PCT/US2009/055589
【国際公開番号】WO2010/027961
【国際公開日】平成22年3月11日(2010.3.11)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】
[ Back to top ]