(57)【特許請求の範囲】
【請求項１】
メディアプレイリストの生成を促進するために、コンピュータによって実行される、プログラム参加者のメディアライブラリ内のメディアアイテムの相対的な類似性を確立する方法であって、
サーバの通信インタフェースが、複数のプログラム参加者から、それぞれの参加者のメディアライブラリに現在含まれているそれぞれの個別メディアアイテムの識別データを含み、それぞれのプログラム参加者のメディアライブラリ一覧を示すデータを受信する工程と、
サーバのプロセッサを用いて、異なるプログラム参加者のメディアライブラリ間で、個別メディアアイテムのペアが同時に存在していることを判定する工程と、
前記サーバのプロセッサを用いて、前記異なるプログラム参加者のメディアライブラリにおいて同時に存在していることの前記判定に基づいて、前記個別メディアアイテムのペア間の類似性評価を割り当てる工程と、
前記サーバのプロセッサを用いて、プログラム参加者のメディアライブラリに含まれる複数の個別メディアアイテムについての、当該プログラム参加者のメディアライブラリに含まれる他のメディアアイテムに対する類似性評価を、前記割り当てられた類似性評価に基づいてまとめる工程と、
前記サーバの通信インタフェースを用いて、プログラム参加者のメディアライブラリに含まれる複数の個別メディアアイテムについての類似性評価を含むデータを、当該プログラム参加者のデバイスへと送信する工程であって、これによって当該データからの類似するメディアライブラリ・アイテムのプレイリストの前記生成を促進する工程と、
を備えることを特徴とする方法。
【請求項２】
前記プログラム参加者のメディアライブラリに含まれる複数の個別メディアアイテムについての前記類似性評価はそれぞれが、前記プログラム参加者のメディアライブラリ内のシード・メディアアイテムに類似する、前記プログラム参加者のメディアライブラリ内のメディアアイテムのリストの形をとることを特徴とする、請求項１に記載の方法。
【請求項３】
プログラム参加者の母集団から収集される累積データは、前記類似性評価がまとめられるオンラインメディア供給ソースによって収集されることを特徴とする、請求項１に記載の方法。
【請求項４】
前記オンラインメディア供給ソースは、前記プログラム参加者が各音楽トラックを購入したオンライン音楽ストアであることを特徴とする、請求項３に記載の方法。
【請求項５】
前記サーバのプロセッサが、各識別データの解析に基づいて前記参加者のメディアライブラリに含まれる個別メディアアイテムに対してプログラムに由来する識別子を割り当てる工程であって、これによって異なる参加者の前記メディアライブラリに含まれる実質的に同一のメディアアイテム同士を直接に関係付けることを可能とする工程をさらに含むことを特徴とする、請求項１に記載の方法。
【請求項６】
前記サーバの通信インタフェースが、前記プログラム参加者のメディアライブラリ一覧に現在含まれている指定されたメディアアイテムに類似するものとして評価されている購入推薦メディアアイテムに基づいて選択された、少なくとも１つの購入推薦メディアアイテムの指定を、前記プログラム参加者のデバイスへと送信する工程をさらに備え、
前記評価は、他の参加者のメディアライブラリにおいて前記購入推薦メディアアイテムが前記指定されたメディアアイテムと同時に存在する頻度を示すことを特徴とする、請求項１に記載の方法。
【請求項７】
メディアプレイリストを生成するシステムであって、
それぞれのプログラム参加者の個別メディアアイテムのメディアライブラリをそれぞれが含むストレージ・メディア・デバイスを、それぞれ有する少なくとも２つのクライアントデバイスと、
複数のプログラム参加者のクライアントデバイスから受信したデータを格納する手段と、
複数のプログラム参加者のクライアントデバイスから受信したデータを格納する前記手段から代表データを受信する類似性データ生成プログラムを実行する手段と、
前記クライアントデバイスとデータ処理センターとの間で通信する手段と、を備え、
前記代表データは、複数のプログラム参加者の各メディアライブラリ一覧に由来し、かつ個別メディアアイテムのソースに関係なく前記各参加者のメディアライブラリに現在含まれている個別メディアライブラリ・アイテムの識別データを含み、
前記通信する手段は、前記個別メディアアイテムのソースに関係なく前記メディアライブラリ内の前記個別メディアアイテムを表す識別データを前記クライアントデバイスから送信し、前記クライアントデバイスへ類似性評価データを送信する
ことを特徴とするシステム。
【請求項８】
少なくとも１つの前記クライアントデバイス上の前記ストレージ・メディアは、前記各クライアントデバイス上に格納される個別メディアアイテムを特定するデータと、前記アイテムの少なくともいくつかを、同一の前記各クライアントデバイス上に格納されている他の個別メディアアイテムのサブセットに類似しているものとして関連付けるデータと、を備える類似性テーブルをさらに格納していることを特徴とする、請求項７に記載のシステム。
【請求項９】
選択されたシードトラックに類似するものとして特定されたメディアアイテムが所属しているプレイリストを、クライアントデバイス上に生成する手段をさらに備えることを特徴とする、請求項７に記載のシステム。
【請求項１０】
ストレージ・メディア・デバイスと信号を通信するプロセッサを備えるメディアプレイリスト生成デバイスであって、
前記ストレージ・メディア・デバイスは、複数のプログラム参加者から収集された累積データに基づいてまとめられたメディアアイテム類似性評価に関する類似性データを格納し、
前記累積データは、それぞれの個別メディアアイテムのソースに関係なく、前記プログラム参加者の前記メディアライブラリに含まれる個別メディアアイテムの識別データを含み、
前記プロセッサは、前記ストレージ・メディア・デバイスから類似性評価データを受信し、前記類似性評価データにおいて特定された前記メディアアイテムから選択された候補メディアアイテムからプレイリストを生成するプレイリスト生成プログラムを少なくとも実行するように構成されている
ことを特徴とするデバイス。
【請求項１１】
前記ストレージ・メディア・デバイスは、格納された個別メディアアイテムをさらに含むことを特徴とする、請求項１０に記載のデバイス。
【請求項１２】
前記類似性データは、各プログラム参加者のメディアライブラリ内の前記個別メディアアイテムに関する類似性データに限られることを特徴とする、請求項１０に記載のデバイス。
【請求項１３】
ストレージ・メディア・デバイスに格納された複数の個別メディアアイテムについての前記類似性データはそれぞれが、前記ストレージ・メディア・デバイス上のシード・メディアアイテムに類似する、前記ストレージ・メディア・デバイス上のメディアアイテムのリストの形をとることを特徴とする、請求項１１に記載のデバイス。
【請求項１４】
前記類似性評価の前記まとめは、異なるプログラム参加者のメディアライブラリにおいて個別メディアアイテムのペアが同時に存在していることを判定するために前記累積データを処理することと、前記異なるプログラム参加者のメディアライブラリにおいて同時に存在していることの前記判定に基づいて、個別メディアアイテムの前記ペア間に類似性評価を割り当てることと、を含むことを特徴とする、請求項１０に記載のデバイス。
【請求項１５】
前記プロセッサは、前記プログラム参加者のメディアライブラリに含まれ、前記参加者のメディアライブラリから選択されたシード・メディアアイテムに対する類似性評価を有する個別メディアアイテムのみからなるメディアプレイリストを生成するようにさらに構成されていることを特徴とする、請求項１２に記載のデバイス。
【請求項１６】
前記プロセッサは、前記プログラム参加者のメディアライブラリに含まれ、前記プログラム参加者のメディアライブラリから選択されるシード・メディアアイテムに対して類似性評価を有する個別メディアアイテムを含むメディアプレイリストを生成するようにさらに構成されていることを特徴とする、請求項１２に記載のデバイス。
【請求項１７】
前記メディアプレイリストは前記メディアプレイリスト生成デバイス上で生成され、前記デバイスは可搬パーソナルメディア再生デバイス又はパーソナルコンピュータの形をとることを特徴とする、請求項１０に記載のデバイス。
【請求項１８】
前記プログラム参加者の前記メディアライブラリ一覧に現在含まれている指定メディアアイテムに類似しているものとして評価された購入推薦メディアアイテムに基づいて選択された、少なくとも１つの購入推薦メディアアイテムの指定を、前記サーバから受信するように構成された通信インタフェースをさらに備え、
前記評価は、他の参加者のメディアライブラリにおいて、前記指定メディアアイテムと前記購入推薦メディアアイテムとが同時に存在する頻度を表す
ことを特徴とする、請求項１２に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メディア類似性データに関し、特に、メディア類似性データに基づいてメディアプレイリストを生成することに関する。
【背景技術】
【０００２】
長い間、消費者製品のような物品間の関係を規定することは有用な仕事であると考えられてきた。初期の例は商標だろう。商標は、既に所有している別の製品を製造している同一企業による製品が同様の規格に従うだろうという消費者の期待に対する基準を提供する。今日、類似性関係が単純なブランド名をはるかに超えて発展している。いくつかのストアは、類似性データを使用して顧客が購入すべき又は少なくとも検討すべき新しいアイテムを提案する。そのようなストアは、ユーザが同一のショッピングセッションで閲覧する傾向にある製品又は同一ユーザにより頻繁に購入された製品を判定するためにユーザデータを追跡する。この目的で類似性データを使用するシステムは、各ファイル内の特性を識別し、それらのファイルを類似しているものとして識別する。
【０００３】
類似性データを生成するこれらの各方法は、最適である可能性のある類似性データの生成を達成できないかあるいはそのようなデータの可能性を最大限に利用することを達成できない。類似性データを生成する既存の方法が達成できない１つの点は、従来の類似性データが新しい購入決定にのみ基づくためである。ユーザが既に所有しているものに関する情報は、ユーザが将来欲しいと考えるものの最も信頼できる標識であるが、ストアはその情報に注意を払っていない。
【０００４】
デジタルオーディオプレーヤの出現により、ユーザはデジタルメディアの膨大なライブラリを蓄積している。多くの場合、パーソナルメディアライブラリは、ＣＤ、ＳＡＣＤ及びＤＶＤ−Ａ等の物理媒体から追加された曲を含む。２００３年４月〜２００８年６月までに５０億曲を上回る曲が販売されたことから分かるように、ＩＴＵＮＥＳ  Ｓｔｏｒｅ及び他のオンラインメディアプロバイダの紹介により、更に多くのユーザはデジタルメディアのオンライン購入を経験している。デジタルオーディオプレーヤによりユーザはどこでもメディアを実質的に楽しむことができるが、その一方で、益々成長するメディアライブラリは効果的に管理するのが益々困難になっている。音楽の場合、プレイリストは効果的に管理し且つ特定の曲をフィルタリングする１つの方法である。種々のデジタルメディアプレーヤにより、順序付けられた再生を行うために曲のグループ化を選択することでプレイリストを作成できる。
【０００５】
プレイリストを手作業で作成することは、一般に、適切な曲を見つけるためにメディアの長いリストを探索し、所望の曲を選択し且つ望ましくない曲を無視するという冗長な処理を含む。
【０００６】
音楽プレイリストは、ジャンル、アーティスト及びアルバム等の共通の音楽トラック属性に基づいて自動的に生成される。これらの自動的に生成されたプレイリストは、作成するのが単純であり且つ迅速であるが、大雑把にプレイリストを仕上げる。それらは含む曲が多すぎたり且つ／又は少なすぎたりすることが多い。更にそのような自動的な方法は、全ての関連するトラック属性が各メディアに対して入手可能であり且つ正確であることを前提とする。自動プレイリストを生成する１つの方法は、「スマート」プレイリストと呼ばれる。スマートプレイリストにより、ユーザは探索条件を指定し、探索条件にマッチングする曲をプレイリストに追加し、曲が条件を満たすか又は満たさない時にプレイリストを自動的に更新できる。スマートプレイリストは、メディアライブラリを管理するのに強力なツールである。しかし、スマートプレイリストも効果的なスマートプレイリストクエリを作成する際にユーザの音楽の熟知度、ライブラリ及び技術により制限される。ユーザは、音楽のスタイルに精通していない可能性がある。精通していないことにより、関連するアーティスト又は曲を除外してしまう可能性がある。ユーザのライブラリは不完全であるかもしれず、それによりそうでなければ完全であるスマートプレイリストとの差ができる。ユーザは、全ての所望の曲を含むように十分に広範にスマートプレイリストクエリを作成しない可能性がある。スマートプレイリストが全ての意図する曲を含むことを検証することは、第一にプレイリストを手作業で生成するより冗長になることが多い。
【０００７】
メディアプレイリストを生成する従来の各方法の主な欠点は、互いに類似するメディアアイテムを判定することである。プレイリストを手作業で作成する時、ユーザは１つのメディアアイテムと別のメディアアイテムとの間の類似性を引き出す責任がある。自動化プレイリストジェネレータはプレイリストを構築するための条件に依存するが、これらの条件は広範すぎることが多い。同一の作者、アーティストによるメディア、あるいは同一の種類又はジャンルのメディアでさえは、所望のプレイリストを生成するほど十分に類似していないことが多い。スマートプレイリストは、メディアのより詳細な特性に基づいてこれらの問題の多くを解決しようとするものであるが、容易に定義できないユーザの好みを考慮していない。
【０００８】
メディアライブラリが成長し、容量が益々増加するデジタルメディアプレーヤが入手可能であるため、これらのプレイリストに関する問題は悪化する可能性が高い。更にメディアライブラリが大きいほど、ユーザが各ファイルのコンテンツ及び特徴を記憶することは不可能であるため、類似するアイテムをグループ化するシステムが必要とされる。従って、従来技術において必要とされることは、メディアファイル間の類似性データを生成し且つプレイリストを作成及び管理するためにそのようなデータを使用する改善された方法である。
【発明の概要】
【０００９】
本明細書で開示される概念の更なる特徴及び利点は以下の説明に示され、その説明から部分的に明らかになるか又は説明する技術を実施することにより学習されるだろう。概念の特徴及び利点は、特に添付の請求の範囲で指摘される機器及び組み合わせにより実現され且つ取得されるだろう。説明した技術のそれらの特徴及び他の特徴は、以下の説明及び添付の請求の範囲からより完全に明らかとなるか、あるいは本明細書で示すように開示した概念を実施することにより学習されるだろう。
【００１０】
本発明は、多数のプログラム参加者により提供されたメディアライブラリ一覧情報に少なくとも部分的に基づいて、プログラム参加者に対するメディアプレイリストの生成を容易にする方法及び構成を説明する。この状況において、個人が参加している例示的なプログラム又はシステムは、有料で音楽トラックダウンロードを販売するストア等のオンラインメディアストアである。プログラム参加者になることを決定した個人は、ライブラリに類似する音楽又は同一の音楽を有するプログラムへの他の参加者の母集団から導出されたデータに少なくとも部分的に基づいて音楽を編成、維持及び再生することに興味がある。プログラム参加者になるために、個々の音楽保有者はプログラム参加者のメディア一覧を表すデータを送出する必要があり、オンライン音楽ストアはそれを受信する必要がある。このデータは、一般に、特に個々のメディアアイテム（曲）のソースに関係なく参加者のメディアライブラリに現在含まれている個々のメディアアイテムの識別データを含む。すなわち、アイテムは購入されていてもよく、ＣＤから追加されていてもよく、あるいは取得され且つリスナーのライブラリ又は音楽の一覧に含まれていてもよい。この情報から、システム又はプログラムは、異なるプログラム参加者のメディアライブラリの個々のメディアアイテムのペアが同時に存在することを判定する。これは、数人のユーザにより特定された音楽アイテムのペアについて、様々な参加者についてそのペアが存在するライブラリの数が記録（カウント）されることを意味する。この判定に基づいて、類似性評価は、異なるプログラム参加者のメディアライブラリにおいて判定された同時に存在することに基づいて個々のメディアアイテム（曲）のペアの間に割り当てられる。すなわち、特定のメディアアイテム（曲）のペアがプログラムにおいて表現される多くのライブラリのうち１０個のライブラリに存在すると判定（計算）される場合、そのペアの類似性評価が値として割り当てられうる。
【００１１】
類似性評価の解析及び割り当ては、有意義なものになるように、複数のプログラム参加者のメディアライブラリ、すなわちシステムの全体の一覧に含まれた個々のメディアアイテムの少なくとも大部分の間でまとめられる。
【００１２】
システム又はプログラムは、個々の参加者のメディアライブラリに含まれるアイテムに限定される、個々の参加者のための類似性評価をまとめられる。この情報は、多くの場合にＭＰ３プレーヤと呼ばれるようなパーソナルデジタル音楽再生装置等においてエンドユーザとしてユーザのメディアのプレイリストを順序付けるために使用される。このように、個々のプレイリストは、多くのプログラム参加者により導かれた類似性データに基づいて生成される。
【００１３】
異なるが関連する態様において、本発明は、多くのプログラム参加者により提供されたメディアライブラリ一覧情報に少なくとも部分的に基づくメディアプレイリストの生成を容易にするためにオンラインストアと協働するクライアント装置の観点から方法及び構成を更に説明する。本実施形態は、プログラム参加者のメディアライブラリのメディア一覧を表し且つ個々のメディアアイテムのソースに関係なくメディアライブラリ一覧に現在含まれている個々のメディアアイテムの識別データを含むデータをプログラム参加者のクライアント装置から（一般には、オンラインメディアストアのオンラインデータ処理センターとして本明細書において例示的に説明されるプログラムホストに対して）送信する方法、構成及びコンピュータプログラムに焦点を当てる。メディアアイテムのソースの例は、オンライン購入、購入したＣＤからの追加トラック及び他のソースからのダウンロードを含む。
【００１４】
本実施形態において、次にプログラム参加者のクライアント装置は、複数（２人以上）のプログラム参加者から収集された累積データに基づいてまとめられたメディアアイテム類似性評価を受信する。ここで、累積データは、個々のメディアアイテムのソースに関係なくプログラム参加者のメディアライブラリに含まれた個々のメディアアイテムの識別データを含んでいる。この点に関して、ソースに基づくメディアアイテムとの間の主な差異は、各アイテムと関連付けられた記述的な識別メタデータの量及び品質である。
【００１５】
上述のように、受信した類似性評価のまとめは、異なるプログラム参加者のメディアライブラリの個々のメディアアイテムのペアが同時に存在することを判定するために累積データを処理し且つ異なるプログラム参加者のメディアライブラリにおける判定された同時に存在することに基づいて個々のメディアアイテムのペアの間の類似性評価の割り当てを行うことを含む。本明細書で説明するように、この処理及びまとめは、以下に更に詳細に説明するようにプログラムホストのオンラインデータ処理センターにより例示的に実行される。
【００１６】
類似性評価は、参加者のメディアライブラリに含まれた複数の個々のメディアアイテムに対してプログラム参加者のクライアント装置により受信される。それに基づいて、プログラム参加者のメディアライブラリに含まれた個々のメディアアイテムを含むメディアプレイリストが生成され、メディアアイテムは一般にはプログラム参加者により参加者のメディアライブラリから選択されたシード・メディアアイテムに対する類似性評価を有する。
【００１７】
一例として、シード・メディアアイテムの選択は、選択するシード・メディアアイテムを提示するためにクライアント装置でスクロールホイール装置を操作し、選択ボタンを作動させることでクライアント装置のディスプレイ上のシード・メディアアイテムを選択することにより行われうる。
【００１８】
別の例において、シード・メディアアイテムの選択は、所望のシード・メディアアイテムが表示されるまでタッチスクリーン上に表示されたメディアアイテムのリストをスクロールするために指をスイープする動作を使用してプログラム参加者のクライアント装置上のタッチスクリーンを操作し、シード・メディアアイテムにタッチして離すことでシード・メディアアイテムを選択することにより行われうる。
【００１９】
メディアプレイリストは、特にポータブルパーソナルメディア再生装置又はパーソナルコンピュータの形態をとってもよいプログラム参加者のクライアント装置で生成されうる。
【００２０】
プログラム参加者は、参加者による直前のデータアップロード以降に参加者のメディアライブラリに追加された追加のメディアアイテムの識別データを含むメディアライブラリ中のプログラム参加者の現在のメディア一覧を表す更新データを送信できる。同様に、更新データは、直前のデータ更新以降に参加者のメディアライブラリからメディアアイテムが除去されて存在しないことを示せる。更新データは、メディアアイテムに与えられた評価、再生回数及びスキップ回数等のメディアアイテムの使用に関する情報を含むことができるが、その情報はこれらに限定されない。これに基づいて、プログラム参加者はこの更新データを考慮してまとめられた更新済み類似性評価を受信する。このように、現在生成されたプレイリストは、新しく取得したメディアアイテムを含むことができ、最近削除されたメディアアイテムを考慮しない。
【００２１】
更なる関連する態様において、本発明は、多くのプログラム参加者により提供されたメディアライブラリ一覧情報に少なくとも部分的に基づくメディアプレイリストを生成するためにプログラムホストのオンラインデータ処理センターと協働する１つ以上のクライアント装置を含む統合システム、方法及びコンピュータプログラムを更に説明する。データは、プログラム参加者のクライアント装置からプログラムホストのオンラインデータ処理センターに送信される。データは、クライアント装置上のメディアライブラリのメディア一覧を表し、クライアント装置上のメディアライブラリ一覧に現在含まれている個々のメディアアイテムの識別データを含む。プログラムホストのオンラインデータ処理センターにおいて、各プログラム参加者のメディア一覧を表すデータが複数のプログラム参加者から受信され、これは、上述したように個々のメディアアイテムのソースに関係なく各参加者のメディアライブラリに現在含まれている個々のメディアアイテムの識別データを含む。異なるプログラム参加者のメディアライブラリにおける個々のメディアアイテムのペアが同時に存在することが判定され、類似性評価は異なるプログラム参加者のメディアライブラリにおける判定された同時に存在することに基づいて個々のメディアアイテムのペアの間に割り当てられる。類似性評価は、クライアント装置上のメディアライブラリ一覧に含まれた複数の個々のメディアアイテムに対してプログラムホストのオンラインデータ処理センターからプログラム参加者のクライアント装置に送信される。クライアント装置上のメディアライブラリ一覧に含まれた個々のメディアアイテムを含むメディアプレイリストが生成され、メディアアイテムはクライアント装置上のメディアアイテム一覧から選択されたシード・メディアアイテムに対する類似性評価を有する。
【００２２】
一般に、異なるプログラム参加者のメディアライブラリにおける個々のメディアアイテムのペアが同時に存在することは、プログラムホストのオンラインデータ処理センターにおいて判定され、個々のメディアアイテムのペアの間の類似性評価は、プログラムホストのオンラインデータ処理センターにおいて割り当てられる。
【００２３】
個々のプログラム参加者に対する類似性評価データのまとめは、プログラム参加者のメディアライブラリに含まれた個々のメディアアイテム間の類似性評価データに限定される。このように、データセットは使用可能なデータセットに限定される。すなわち、実際にプログラム参加者のライブラリに含まれたメディアアイテムのみを含むプレイリストの生成に限定される。
【００２４】
異なる参加者のメディアライブラリに含まれた実質的に同一のメディアアイテム間の直接の関連付け許可することを補助するものとして、プログラムに由来する識別子が参加者のメディアライブラリに含まれた個々のメディアアイテムに割り当てられる。すなわち、音楽トラックを一例として使用すると、アメリカの「Ｈｏｒｓｅ  Ｗｉｔｈ  Ｎｏ  Ｎａｍｅ」のスタジオバージョンの全てのインスタンスには迅速に且つ効率的に処理するシステムに基づく短いＩＤが割り当てられる。類似性評価の計算を更に容易にするために、類似するメディアアイテムには同一の識別子が割り当てられうる。例えばアメリカの歌「Ｈｏｒｓｅ  Ｗｉｔｈ  Ｎｏ  Ｎａｍｅ」のライブ録音したものには、全体のデータベース中の他のメディアアイテムに対する類似性を判定する時に、処理するシステムに基づく同一のＩＤが割り当てられうる。
【００２５】
更に特定のメディアアイテムと関連付けられた情報は、第三者データソースから取得された追加のデータを関連付けることにより充実しうる。音楽を一例として使用すると、「ジャンル」は多くの場合に特定の音楽アイテムと関連付けられる特徴である。識別データが特定の音楽のタイトルに対してプログラム参加者から受信されるが、ジャンルタイプを含まない場合、そのような情報を関連付けた第三者の意見を聞くことができ、特定の音楽アイテムに対して第三者により供給されたジャンルタイプはプレイリスト生成処理において後で利用するためにデータと関連付けられる。
【００２６】
このプログラム又はシステム全体の独自の態様は、メディア供給者（オンライン音楽ストア）のサーバ、参加者のメディア再生装置及び多くの場合は再生装置とオンラインストアのコンピュータシステムとの間の通信に対応するユーザのパーソナルコンピュータ等の中間機能において行われる。
【図面の簡単な説明】
【００２７】
上述した実施形態が実現される方法を最適に説明し且つ本発明の他の利点及び特徴を規定するために、更に詳細な説明を以下に提供し、添付の図面に示す。図面は本発明の例示的な実施形態のみを示すが本発明の範囲を限定するものではなく、添付の図面を使用して追加の特性及び詳細を伴ってそれらの例を説明する。
【００２８】
【図１】システムの一実施形態を示す図である。
【図２】方法の一実施形態を示すフローチャートである。
【図３Ａ】、
【図３Ｂ】関連データを判定する方法を示す図である。
【図４】サンプルの購入マトリクスを示す図である。
【図５】マスタ類似性テーブルの列を示す図である。
【図６】個々の類似性テーブルを示す図である。
【図７】システムの一実施形態を示す図である。
【図８】方法の一実施形態を示すフローチャートである。
【図９】システムの一実施形態を示す図である。
【図１０】メディア及び類似性テーブルをデジタルメディアプレーヤに同期させるシステムの一例を示す図である。
【図１１】プレイリストの生成を開始するソフトウェアインタフェースの一例を示す図である。
【図１２】方法の一実施形態を示すフローチャートである。
【図１３Ａ】、
【図１３Ｂ】、
【図１３Ｃ】、
【図１３Ｄ】ユーザインタフェースの一例を示す図である。
【図１４Ａ】、
【図１４Ｂ】、
【図１４Ｃ】、
【図１４Ｄ】、
【図１４Ｅ】、
【図１４Ｆ】、
【図１４Ｇ】、
【図１４Ｈ】ユーザインタフェースの一例を示す図である。
【図１５】方法の一実施形態を示すフローチャートである。
【図１６】購入するアイテムを推薦する方法の一実施形態を示すフローチャートである。
【図１７Ａ】、
【図１７Ｂ】参加するためのユーザインタフェースの例を示す図である。
【図１８Ａ】、
【図１８Ｂ】、
【図１８Ｃ】、
【図１８Ｄ】ユーザインタフェースの例を示す図である。
【図１９Ａ】、
【図１９Ｂ】、
【図１９Ｃ】、
【図１９Ｄ】、
【図１９Ｅ】、
【図１９Ｆ】推薦データを表示するためのユーザインタフェースの例を示す図である。
【発明を実施するための形態】
【００２９】
開示する方法及び構成の種々の実施形態について、以下に詳細に説明する。特定の実現例を説明するが、例示する目的でのみ説明することが理解されるべきである。他の構成要素、構成及びステップが本発明の趣旨の範囲から逸脱せずに使用されてもよいことが当業者には理解されるだろう。
【００３０】
図１を参照すると、例示的なシステムは、処理装置（ＣＰＵ）１２０と読み出し専用メモリ（ＲＯＭ）１４０及びランダムアクセスメモリ（ＲＡＭ）１５０等のシステムメモリを含む種々のシステム構成要素を処理装置１２０と結合するシステムバス１１０とを含む汎用演算装置１００を含む。他のシステムメモリ１３０も使用可能であってもよい。システムは、２つ以上のＣＰＵ１２０を有する演算装置又はより高い処理能力を提供するために共にネットワーク化された演算装置のグループ又はクラスタで動作してもよい。システムバス１１０は、メモリバス又はメモリコントローラ、周辺バス及び種々のバスアーキテクチャのうちのいずれかを使用するローカルバスを含むいくつかの種類のバス構造のうちのいずれの構造であってもよい。ＲＯＭ１４０等に格納された基本入出力（ＢＩＯＳ）は、起動中等に演算装置１００内の要素間で情報を転送するのを助長する基本ルーチンを提供してもよい。演算装置１００は、ハードディスクドライブ１６０、磁気ディスクドライブ、光ディスクドライブ又はテープドライブ等の記憶装置を更に含む。記憶装置１６０は、ドライブインタフェースによりシステムバス１１０に接続される。ドライブ及び関連するコンピュータ可読媒体は、演算装置１００に対してコンピュータ可読命令、データ構造、プログラムモジュール及び他のデータの不揮発性記憶装置を提供する。１つの側面において、特定の機能を実行するハードウェアモジュールは、機能を実行するためにＣＰＵ、バス及びディスプレイ等の必要なハードウェア構成要素と関連して有形のコンピュータ可読媒体に格納されたソフトウェア構成要素を含む。基本構成要素は当業者には既知であり、適切な変形例は、装置が小型のハンドヘルド演算装置であるか、デスクトップコンピュータであるか又は大型のコンピュータサーバであるか等装置の種類に依存して考慮される。
【００３１】
本明細書で説明する例示的な環境がハードディスクを採用するが、コンピュータによりアクセス可能なデータを格納できる磁気カセット、フラッシュメモリカード、デジタル汎用ディスク、カートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、ビットストリームを含む有線又は無線信号等の他の種類のコンピュータ可読媒体が例示的な動作環境において使用されてもよいことが当業者には理解されるべきである。
【００３２】
演算装置１００とのユーザ対話を可能にするために、入力装置１９０は、音声のためのマイク、ジェスチャ又は図形入力のための接触感知スクリーン、キーボード、マウス、モーション入力及び音声等の任意の数の入力機構を表す。入力は、音声検索クエリの開始を示すために提供者により使用されてもよい。装置出力１７０は、当業者には既知の１つ以上の複数の出力機構であってもよい。いくつかの例において、マルチモーダルシステムは、ユーザが演算装置１００と通信するために複数の種類の入力を提供できるようにする。一般に通信インタフェース１８０は、ユーザ入力及びシステム出力を制御及び管理する。いかなる特定のハードウェア構成においても動作する開示された方法及び装置には制限がないため、基本的な特徴は、それらの発展に伴って改善されたハードウェア又はファームウェア構成と容易に置換できる。
【００３３】
説明を分かり易くするために、例示するシステムの実施形態は、個々の機能ブロック（「プロセッサ」とラベル付けされた機能ブロックを含む）を含むものとして提示される。これらのブロックが表す機能は、共用ハードウェア又は専用ハードウェアを使用して提供されてもよい。共用ハードウェア又は専用ハードウェアは、ソフトウェアを実行できるハードウェアを含むがそれに限定されない。例えば図１に提示される１つ以上のプロセッサの機能は、単一の共用プロセッサ又は複数のプロセッサにより提供されてもよい。（「プロセッサ」という用語の使用は、ソフトウェアを実行できるハードウェアのみを示すものとして解釈されるべきではない。）図示する実施形態は、マイクロプロセッサ及び／又はデジタル信号プロセッサ（ＤＳＰ）ハードウェア、以下に説明する動作を実行するソフトウェアを格納する読み出し専用メモリ（ＲＯＭ）、並びに結果を格納するランダムアクセスメモリ（ＲＡＭ）を含んでもよい。超大規模集積回路（ＶＬＳＩ）ハードウェアの実施形態、並びに汎用ＤＳＰ回路と組み合わされたカスタムＶＬＳＩ回路の実施形態が更に提供されてもよい。
【００３４】
種々の実施形態の論理動作は、（１）汎用コンピュータ内のプログラマブル回路上で実行し且つコンピュータにより実現されるステップ、動作又は手順のシーケンス、（２）専用プログラマブル回路上で実行し且つコンピュータにより実現されるステップ、動作又は手順のシーケンス、並びに／あるいは（３）プログラマブル回路内の相互接続されたマシンモジュール又はプログラムエンジンとして実現される。
【００３５】
上述した演算装置は、多くのユーザから導出された類似性データを生成及び使用するのに特に有用である。統計的類似性は、複数のユーザのライブラリにわたる２つ以上の曲の関連の発生率を判定するための数学的解析に基づいて判定される。この類似性データは、特に、高品質のプレイリストを生成すること、購入することをユーザに推薦する提案製品を決定すること、曲を新たに選択してユーザのメディア装置を最新にしておくことを含む種々の有用な機能に対して使用されうる。一例において、ユーザは、広範なユーザがアクセスできるサーバに対して自身のメディアデータベース全体のコンテンツに関連する情報をアップロードしてもよい。全体のユーザのライブラリにおいて２つ以上のメディアアイテムが同時に存在する頻度に基づいて、メディアアイテムは互いに関連し、類似するものとして記録される。この類似性に基づいて、サーバはシードトラックの選択に基づいて１つ以上の類似する曲を含むようにプレイリストを作成できるか、あるいはサーバはユーザのライブラリにない類似する曲の購入を推薦できる。システムのこれらの特徴及び他の特徴について、以下に更に詳細に説明する。説明した技術及び製品の多くの特徴はＡｐｐｌｅ  Ｉｎｃ．のＩＴＵＮＥＳ  Ｓｔｏｒｅ等のオンライン音楽ストアを参照して説明するが、その一方でシステムはシステムの好適な実施形態を実行するためにどのようなメディア販売であれ全く必要としないことが理解されるべきである。更に、一部の説明は１つの特定の形態のメディアのみを参照するかもしれないが、本明細書で説明する原理はオーディオ、ビデオ、静止画、文書及び他の種類のデータファイル等のいかなるメディアにも適用可能である。
【００３６】
・サーバ
・アップロード
図２は、類似性データを生成する方法の一実施形態を示す。方法は、プログラム参加者のパーソナルメディア一覧に関連するユーザデータをサーバにより受信すること（２０２）を含む。ユーザデータは、通常はメタデータの形式であるユーザのライブラリ中の個々のメディアアイテムに関する識別情報を含む。ユーザのライブラリ内のメディアアイテムの発生元は、本システムと関連していない。説明される本方法が音楽コンテンツストアにより採用される場合であっても、本実施形態は、サーバがソースに基づいてファイル情報を区別しないため、すなわち全てのメディアアイテムが同一のものとして処理されるため、ユーザのファイルが音楽ストアに由来することを要求しない。方法は、ＣＤ、ＤＶＤ又はＨＤ−ＤＶＤ等の物理媒体、並びに物理媒体がデジタル形式にコード変換され且つユーザのメディアライブラリに入力される例に同等に適用される。好適な一実施形態において、サーバは、ユーザがライブラリ中の全てのメディアアイテムに関する情報をアップロードすることを要求せず、限られた数のメディアアイテムのみに関する情報又はメディアアイテムに関する部分情報のみがサーバにより受け入れられる。
【００３７】
・ユーザデータの識別
方法は、ユーザデータを特定のメディアアイテムとして識別すること（２０３）を含む。このステップは、ファイル名、メタデータを検査すること含む複数の方法のうちのいずれか１つの方法で達成されてもよく、あるいはファイルの一部分の詳細な解析を介して達成されてもよい。音楽トラックの例において、サーバは種々の機構を介して音楽トラックを識別できる。例えば約８分の長さのＬｅｄ  ＺｅｐｐｌｉｎのＳｔａｉｒｗａｙ  ｔｏ  Ｈｅａｖｅｎ等の所定のトラックは、アーティスト、曲名、ジャンル、トラックの長さ、アルバム名、トラック番号等を識別するファイル名又はメタデータを含むファイルと関連付けられた種々のデータを有することができる。このデータの一部分は、サーバがアルバムＬｅｄ  Ｚｅｐｐｌｉｎ  ＩＶのＬｅｄ  ＺｅｐｐｌｉｎのＳｔａｉｒｗａｙ  ｔｏ  Ｈｅａｖｅｎとしてファイルを識別するのに十分である。あるいは、ファイルを識別するために、市販の曲識別サービスが使用可能である。音楽トラックの一部分をサンプリングすることにより又は購入ストアから一意の識別子を認識することにより、あるいは曲のデジタル・フィンガプリントを認識することにより、トラックを識別できる。例えばサーバ又はサービスは、曲がＩＴＵＮＥＳ  Ｓｔｏｒｅから購入されたこと及びファイルのメタデータがＩＴＵＮＥＳ  Ｓｔｏｒｅ専用の一意の識別子を含むことを認識できる。サーバはその識別子によりメディアアイテムを識別できる。メディアアイテムを認識する多くの他の可能な方法が既知であり、それらの全ての方法が開示される方法及び構成により含まれることが理解されるべきである。
【００３８】
・関連付け
各メディアアイテムは、ステップ２０４において一意の識別子と関連付けられ、ステップ２０５でテーブルに格納される。サーバが以前にその曲に遭遇したことがない場合、サーバはそのトラックに新しい識別子を割り当てる。しかし、殆どのメディアアイテムの場合、識別子は既に割り当てられており、メディアはその識別子と関連付けられることのみが必要である。Ｓｔａｉｒｗａｙ  ｔｏ  Ｈｅａｖｅｎの例を継続すると、メディアアイテムが１度トラックとして識別されると、サーバはそのトラックに対する一意の識別データをルックアップできる。この処理は、サーバにより受信されたメディアアイテム毎に繰り返される。
【００３９】
サーバは殆どの曲と関連付ける識別子を既に有しているが、場合によっては、メディアアイテムはサーバにとって全く新しいものであるか又は少なくとも全く新しいものとして認識される。そのような場合、サーバは新しい識別子を発行し且つそれをメディアアイテムに割り当てる。例えば、新しいアーティスト又はガレージバンドがサーバにより認識されない場合がある。しかし、サーバはそのアーティストのトラックに対して新しい識別子を発行し、異なるユーザのライブラリで同一のトラックに遭遇した時に以前に発行されたのと同一の識別子をそのトラックに割り当てる。
【００４０】
サーバは、サーバにとって新しいメディアアイテムに対して新しい識別子を供給しない場合がある。例えば、メディアアイテムはユーザのライブラリにおける独自のものである可能性があり、従って、そのアイテムについて同時に存在することはないため、識別子を提供することは何の価値もないかもしれない。従って、システムは全ての新しいアイテムに対して一意の識別子を供給する必要がない。システムは、他のユーザがライブラリにそのメディアアイテムを有する場合、後でそのトラックに対して一意の識別子を供給でき且つそのアイテムに対して類似性データを供給できる。
【００４１】
・マスタ購入マトリクス
ステップ２０５において、各メディアアイテムはマスタ購入マトリクスに格納される。マスタ購入マトリクスの一例を図４に示す。購入マトリクス４０２は、テーブル中の一意の各メディアアイテムに対応する列４０４を含むテーブルである。テーブルがＩＴＵＮＥＳ  Ｓｔｏｒｅ等の音楽コンテンツ販売側によりホストされる実施形態において、購入マトリクスは、ＩＴＵＮＥＳ  Ｓｔｏｒｅから購入することが可能な全てのメディアアイテムをまた含むだろう。マスタ購入マトリクス４０２の行は、一意のユーザ識別番号４０６と関連付けられる。この識別コードは、システムではなくユーザが知っている可能性がある匿名識別コードによりユーザを表す。従って、マスタ購入マトリクスは、参加する全てのユーザからプログラムサーバにより受信された全てのファイルのレコードを含む。
【００４２】
購入マトリクスが全てのプログラム参加者及び各プログラム参加者のライブラリ中の全てのメディアに対応するため、購入マトリクス４０２は非常に大きい可能性が高い。例えば、音楽ストアは約２２５万のユーザを有し且つ５００万を上回る曲を有する。そのようなオンラインストアに対する購入マトリクスは約２２５万行×５００万列のテーブル、すなわち１兆１，２５０億個の個別のセルから成るテーブルになる。ＩＴＵＮＥＳ  Ｓｔｏｒｅは、５，０００万を超える登録ユーザを有し且つ１，０００万を超える曲を含む。そのようなオンラインストアに対する購入マトリクスは、約５，０００万行×１，０００万列のテーブル、すなわち５００兆個の個別のセルから成るテーブルになる。
【００４３】
ユーザのライブラリ中の曲の場合、そのユーザ及びその曲に対応するマトリクス中のセルがマーク付けされる。マーク付けは、ブーリアンのように単純なデータタイプで行われてもよい。１は購入４０８を示し、０は未購入４１０を示す。ブーリアン・データタイプが許可するより多くのデータが格納される必要がある場合、他のデータタイプが使用されてもよい。マトリクスが非常に大きくなる可能性があるが、殆どのユーザが自身のライブラリに相対的に少ない曲（５００万と比較して）を有するため、マトリクスは非常に密度が低い。各ユーザ行は少ないエントリのみを含むかもしれないが、その一方で、各曲列は数十、数百、数千又はより人気のある曲に対しては数百万個のエントリを含んでもよいが、購入マトリクスの大部分は空である。
【００４４】
マスタ購入マトリクス又はテーブルは、ライブラリへの新しい曲の追加、ファイルメタデータの変更又はファイルの削除等ユーザライブラリの変更に伴って更新を必要とすることが理解されるべきである。購入マトリクスはリアルタイムに更新されてもよく、あるいは後日挿入するためにトランザクションがキューに入れられてもよい。キューに入れるための１つの構成は、毎日午後１１：３０等、定期的に購入マトリクスにトランザクションを挿入する。キューに入れる別の構成は、ある最小の数のトランザクションの挿入準備が整った場合に購入マトリクスにトランザクションを挿入する。
【００４５】
購入テーブルに対する更新は、全てのメディアアイテムに対してステップ２０３及び２０４を繰り返すことを必要としない。既に識別され且つプログラムに基づく識別番号と関連付けられたメディアアイテムは、識別及び関連付けステップを必要としない。これは、ユーザのデータが最初にテーブルに所属されられた時に識別及び関連付けステップが既に実行されたためである。一実施形態において、サーバは、メディアアイテムをその識別データと関連付けると、識別データをメタデータに格納するためにユーザに再度送出できる。将来のサーバとの通信において、サーバは関連した識別データを有するメディアアイテムに対する更新データを受信でき、それによりステップ２０４を再度行なう必要がなくなる。
【００４６】
いくつかの実施形態において、購入マトリクスは、販売の時間及び日付、メディアの形式、メディアが高精細であるか又は標準品位であるか、トランザクションがギフトであるか又は支払われたものであるか、再生することを許可された装置、等の各トランザクションに関する追加の情報を含むより大きいテーブル又はマトリクスの一部であってもよい。購入マトリクスは、離散的な別個のテーブル群であってもよく、あるいはより大きなテーブル又はマトリクスに完全に統合されてもよい。
【００４７】
更に別の実施形態において、マスタ購入マトリクスは、ユーザのメディア一覧に関するアップロードされた情報を含む必要がない。マスタ購入マトリクスは、購入情報で本質的に構成される。購入情報は、ユーザによりオンラインストアから購入されたアイテムのみであってもよく、あるいは追加の情報を含むことができる。本実施形態において、テーブルは、各ユーザにより購入された全てのアイテムのリストを含むことができる。依然として、マスタ購入マトリクスは、ユーザのメディア一覧のコンテンツに関する類似性データの少なくとも制限された集合を含む可能性が高い。
【００４８】
・協調フィルタリングエンジン
図２に示す方法は、ステップ２０６においてマスタ購入マトリクス上で協調フィルタリングエンジンを実行して類似性データを生成し、ステップ２０７において類似性データをマスタ類似性テーブルに格納することを含む。類似性データは、マスタテーブルのいくつかの他のメディアアイテムと同時に存在するメディアアイテムの発生率から導出される。ユーザが同一の２つのメディアアイテムを有する場合、それらのメディアアイテムは同時に発生すると考えられる。複数のユーザのライブラリにおいてそのように同時に発生することは、２つのメディアアイテムが「類似する」ことを示す。２つのメディアアイテムがより頻繁にプログラム参加者のライブラリで同時に発生する程、メディアアイテムはより類似すると考えられる。
【００４９】
協調フィルタリングエンジン３０８は、マスタ購入テーブルの個々のメディアアイテム間の類似性を計算する。一実施形態において、協調フィルタリングエンジンは、データベース中の曲のペアがプログラム参加者のライブラリで同時に存在する回数を記録するプログラムのように単純である可能性がある。
【００５０】
一実施形態において、協調フィルタリングエンジンは、多次元ベクトル空間において各アイテムをベクトルとして表すことにより２つの異なるメディアアイテム間の類似性を計算できる。次元数は、購入マトリクス３０６におけるユーザ数と等しい。アイテム間の関連は、ベクトル間の距離を計算することにより行われる。純粋な三角関数又は変更した三角関数（例えば、余弦関数又は正弦関数）は、ベクトル間の距離を計算するために使用される。２つのベクトルが小さな角度を有する場合、それらのベクトルは類似すると考えられ、２つのベクトルが大きな角度を有する場合、それらのベクトルはより低い類似性を有すると考えられる。この処理は、マスタ購入マトリクスの各曲をマスタ購入マトリクスの他の全ての曲と比較することにより実行される。
【００５１】
別の実施形態において、協調フィルタリングエンジンは、同時に存在するデータの発生率以上のものを考慮に入れることができる。例えば、類似性評価において全体の発生率を考慮に入れることができる。例えば曲Ａ及びＢは、曲Ａ及びＣと同一の頻度で同時に存在するかもしれないが、曲Ｂが全体的により普及している場合、曲Ａ及びＢは曲Ａ及びＣより高い類似性スコアを有することができる（すなわち、より類似していると考えられる）。種々の曲の人気を判定する１つの方法は、各曲が全体のデータセットにおいて発生する頻度を測定することである。
【００５２】
同様に、使用のついての入力等の類似性スコアに影響を及ぼす協調フィルタリングエンジンへの他の入力が存在する。例えば、メディアアイテムに与えられた評価、再生数及びスキップ数は全て、メディアアイテム間の類似性を判定する協調フィルタリングエンジンへの入力でありうる。
【００５３】
図３は、各曲をベクトルとして表す概念を示す。図３ａにおいて、マスタテーブルにおけるメディアＩＤ６２９に対するベクトルはユーザ２、８９９、１，３４３及び２，０００のライブラリにおける曲の存在に基づいてマッピングされている。同様に、マスタテーブルにおけるメディアＩＤ１，２６３，９９９に対して、ベクトルは、ユーザ２、１２、４４４、１，３４３のライブラリにおける曲の存在に基づいてマッピングされている。これらの２つのベクトル間の角度は、２０°であると測定され、約０．９３９の余弦値を計算する。余弦値は、メディアＩＤ６２９とメディアＩＤ１，２６３，９９９との間の関連値を表す。図３ｂは、メディアＩＤ６２９とメディアＩＤ１５との間の関連を判定するための別の関連計算を表す。この例において、ライブラリにメディアＩＤ６２９及びメディアＩＤ１５の双方を有するユーザはいないため、これらの２つのベクトル間の余弦値は約−０．７０７である。スコアが低い程、メディアＩＤ６２９及び１５が互いに密接に関連付けられないことを示す。
【００５４】
別の実施形態において、アイテム間の類似性スコアを計算するために、他の関数が使用可能である。例として、類似性スコアは、特定のアイテムにより構成される、アイテムの合計の同時存在回数のパーセント比を考慮に入れる方法で計算される。例えばアイテムＡはアイテム１〜５と同時に発生し、アイテムＡの合計の同時存在回数はアイテム１〜５との同時存在回数の合計である。例えばアイテムＡがアイテム１と２回同時に存在し、アイテム２と２回同時に存在し、アイテム３と２回同時に存在し、アイテム４と１０回同時に存在し且つアイテム５と２回同時に存在した場合、アイテムＡは合計で１８回の同時存在回数を有する。特定のペアによる合計の同時存在回数のパーセント比を学ぶことは有用である。例えばアイテム４は、アイテムＡの全ての同時存在回数の約５５％であるため、Ａの同時存在回数の合計のわずか約１１％を表す他のどのアイテムより強くアイテムＡと関連付けられる。このデータは、類似性データを判定するために使用される。類似性データを計算する２つの特定の方法が上記で示されるが、２つのアイテム間の類似性を計算する任意の数の他の方法が使用可能であることは理解されるだろう。
【００５５】
上記処理は、全てのアイテムと全ての他のアイテムとの間で定期的に計算される。この処理は、時間が過度にかかる可能性があるため、一般にオフラインで実行される。これは、月に１回、週に１回、１日に１回、又は計算能力が許す頻度で実行される。
【００５６】
・類似性テーブル
図２のステップ２０７において、協調フィルタリングエンジンによりまとめられた関連データは、マスタ類似性テーブルを生成するために使用される。図５は、マスタ類似性テーブル５０２に格納されたデータを示す。所定のメディアアイテムに対して、プログラムに由来する識別データ５０４によりメディアアイテムを特定するエントリがマスタ類似性テーブルに存在する。更に、そのメディアアイテムに類似するか又は関連すると考えられる他の各メディアアイテムがテーブル５０８に一覧表示される。このように、テーブル５０２はマスタ購入マトリクス４０２の各メディアアイテムに類似する全てのメディアのリストを管理する。
【００５７】
アイテムは、メディアアイテムに類似するか又は関連すると考えられるのに十分なスコアを有する場合、マスタ類似性テーブルに含まれる。どの所定のアイテムに対しても、他のアイテムの殆どは全く類似しない。類似性スコアが十分に低い場合、類似性テーブルに含まれない。類似性スコアが十分に低いか又は高いかを判定するための閾値は、動的であっても静的であってもよい。例えば類似性スコアが−１〜１の範囲である場合、閾値は静的に０．５に設定されてもよい。尚、−１は全く類似しないことを示し、１は非常に類似することを示す。閾値は、マスタ購入テーブルの曲の存在回数に基づいて動的に設定されてもよい。例えば、曲の発生が１００回未満である場合は閾値０．９であり、曲の発生が５，０００回未満である場合は閾値０．７であり、曲の発生が２５，０００回未満である場合は閾値０．６であり、曲の発生が２５，０００回以上である場合は閾値０．５である。閾値は、利用可能な記憶容量又は他のどのパラメータに基づいてもよい。
【００５８】
換言すると、マスタ類似性テーブル５０２は、類似性スコアの全て又は一部を取り入れてもよい。マスタ類似性テーブルがある特定の記憶サイズに適合するように制約される必要がある場合、最適な類似性又は最強の類似性のみが含まれ、残りは除かれる。同様に、十分なプログラム参加者がメディア一覧にアイテムを有さない場合、そのアイテムは除外される。これに対する１つの変形例は、アイテムがマスタ類似性テーブルに含まれるのに適当であるためにはユーザのライブラリにおいて最低限度の回数発生することを要求することである。例えば２つのアイテムが５回以下の同時存在回数を有する場合、すなわち５人以下のユーザが双方のアイテムを有する場合、システムは残りのスコアを計算しない。
【００５９】
別の実施形態において、マスタ類似性テーブルは等価関係を更に格納できる。例えばテーブル５０２のメディアＩＤ１７は、１９９０年に演奏されたＬｕｃｉａｎｏ  Ｐａｖａｒｏｔｔｉによる「Ｏ  Ｓｏｌｅ  Ｍｉｏ」に対応してもよい。Ｅｎｒｉｃｏ  Ｃａｒｕｓｏ及びＭａｒｉｏ  Ｌａｎｚａ等のアーティストによる「Ｏ  Ｓｏｌｅ  Ｍｉｏ」の複数の演奏がオンラインストアで入手可能であり、等価なメディア５０６であると考えられる。他の注目すべき種類の等価なメディアは、公式のアルバムトラック、生楽器によるアコースティックトラック、ライブコンサートトラック、他のバンドによるカバートラック及び同一曲の外国語トラックを含む。単一の曲は列挙された全ての形式及びさらなる形式で存在しうる。等価であるかの判定は、手動で実行可能であり、あるいは実際のメディアコンテンツ、メタデータ及び／又は他の入手可能なデータに基づいて自動的に実行可能である。各々に対する等価なメディアＩＤは、メディアＩＤ５０４と一緒に提示され、それらの各々が同一であると考えられること及びそれらが共にカウントされることを特定する。
【００６０】
マスタ類似性テーブルのＩＤは、メディアに索引を付けるために購入マトリクス３０６で使用されるＩＤと同一であってもよく、あるいは完全に異なる方式に基づいてもよい。２つのＩＤがそろっていない場合、一方のＩＤを他方のＩＤに変換するために変換機能又は参照変換テーブルが提供される。２つのＩＤの間で共有される共通のＩＤ空間は、性能を犠牲にせずに管理することが最も容易で単純である可能性が高い。
【００６１】
・ユーザ類似性テーブル
マスタ類似性テーブルは類似するメディアの集合を含むが、パーソナルメディアライブラリは類似するメディアの集合のより小さいサブセットをほぼ確実に含む。従って、制約された集合、すなわち個別類似性テーブルが生成される。制約は、所定のライブラリにおけるメディアの利用可能性に適応される。制約された集合は、メディアライブラリで見つけられない類似するメディアに対する参照を更に含んでもよい。これは、あるユーザを提案されたメディアの購入のターゲットとするために行われる。共通のメディアの好みを有する他のユーザが提案された購入品を自身のライブラリに既に有するため、そのようにターゲットされた提案された購入品はそのユーザにとって更に魅力的であるだろう。
【００６２】
マスタ類似性テーブル５０２が計算され且つ所属が行われると、個別類似性テーブル６０２が生成される。図６は、個別類似性テーブルを示す。個別類似性テーブル６０２は、個人のメディアライブラリに含まれた各曲に対するメディアＩＤ６０４及びそのメディアＩＤと関連付けられたメディアを含む。関連付けられたメディア６０６を中括弧で示す。個別類似性テーブル中の関連付けられたメディアは、アイテムのマスタ類似性テーブルに配置されソートされた類似するアイテム５０８のリスト全体のサブセットである。どのメディアが個人のメディアライブラリに存在するかに基づいて、サブセットは選択される。換言すると、個人のライブラリ中の曲毎に、個人のライブラリに含まれる類似するメディアのリストが生成される。
【００６３】
個別類似性テーブルは、サーバにおいてサーバにより生成され且つクライアント装置によりダウンロードされるか、あるいはユーザのメディア一覧のアイテムに対する類似性データのみをダウンロードすることによりクライアントにより作成される。類似性テーブルが作成される場所に関係なく、処理は同一である。メディアアイテムは、アイテムのプログラムに由来する類似性識別データによりマスタ類似性テーブルにおいてルックアップされる。次に、システムはそのメディアアイテムに対する類似性データの場所を索引でルックアップできる。システムは、ルックアップ動作の結果に基づいて類似するアイテムを検索できる。これらのアイテムは、ユーザのメディアライブラリのメディアアイテムと更に比較され、ユーザのメディアライブラリに存在するアイテムのみが個別類似性テーブルに格納される。更なる一実施形態において、ある非常に類似するトラックは、個別類似性テーブルに記録され、ユーザに対して購入を提案するために使用されうる。
【００６４】
好適な一実施形態において、ライブラリ毎に少なくとも１つの個別類似性テーブルがサーバにより生成可能である。クライアントは、サーバにライブラリデータを送出でき、サーバは、ライブラリのアイテムを識別でき、そのライブラリのアイテムに関するマスタ類似性テーブルから類似性データを抽出することによりそのライブラリに対する個別類似性テーブルを生成できる。結果として得られた個別類似性テーブルは、プレイリストを生成する際に使用するためにクライアントにダウンロードされる。同一の個別類似性テーブルは、周辺装置に対する個別類似性テーブルを作成するためにクライアントにより使用される。
【００６５】
ユーザは、これらの個別類似性テーブルを使用して、ユーザの母集団全体から導出されたデータにより利益を得る。ユーザは、プレイリストの作成、新しいメディア購入に対する提案及び種々の他の可能性を受信するために類似性データを使用できる。
【００６６】
・協調フィルタリングに影響を及ぼすユーザデータ
プレイリストが類似性データに基づいて生成される実施形態において、ユーザはプレイリスト中の聴きたくない曲をスキップすることによりフィードバックを提供できるか又はシステムはフィードバックを要求できる。あるいは、ユーザはプレイリスト中の聴くことを楽しんだメディアアイテムにポジティブな評価を与えられる。そのようなデータは、クライアント装置からアップロードされ且つサーバにより受信される。フィードバックデータは、マスタ購入インデックス内又は別個のテーブル内等の任意の数の種々の様式で格納される。フィードバックは、ＩＴＵＮＥＳ  Ｓｔｏｒｅ等のオンライン音楽ストアからも導出可能である。本実施形態において、オンラインストア３０４におけるユーザ活動により、フィードバックデータが生成される。オンラインストアにおけるユーザ活動は、メディアアイテムの購入、メディアアイテムのプレビュー、特定のメディアアイテムタイトルの探索、特定のメディアアイテムアーティストの探索又は特定のメディアアイテムジャンルの探索を含むことができる。フィードバックデータは、アイテム間の関連スコアを変更するために協調フィルタリングエンジンにより使用可能である。
【００６７】
母集団からのフィードバックデータは、削除しない場合には存在する関連を削除しうる。例えば、Ｓｉｍｏｎ  ａｎｄ  Ｇａｒｆｕｎｋｅｌによる曲Ｍｒｓ．  Ｒｏｂｉｎｓｏｎは、Ｌｅｍｏｎｈｅａｄｓ又はＦｒａｎｋ  Ｓｉｎａｔｒａによる同一曲との強い関連性を受け入れてもよいが、Ｓｉｍｏｎ  ａｎｄ  Ｇａｒｆｕｎｋｅｌのバージョンに基づいてプレイリストを生成しようとするユーザは、異なるバージョンを好まない可能性があり、これは異なるジャンルのカバー曲であるからかもしれない。ある期間にわたり、曲のスキップ又はプレイリストからのアイテムの除去等のフィードバックデータは、関連されたアイテムのリストから一方又は双方のカバーバージョンを削除するために使用される。
【００６８】
他の実施形態において、更にユーザフィードバックは、協調フィルタリングエンジンにより使用されるために、最初にサーバにフィードバックを送出せずにクライアント装置上で直接類似性データを変更するために使用されうる。これらの実施形態において、ユーザフィードバックデータは、最初に同期することなく、クライアント装置上の個別類似性テーブルに格納された関係に直接影響を及ぼすことができる。あるいは、類似性テーブルは変更されないが、制約がユーザフィードバックデータに基づいて生成されうる。例えばユーザが類似するアイテムを頻繁にスキップする場合、クライアント自体は、個別類似性テーブルからそのアイテムを除去することによりそのアイテムを類似するものと考えなくなってもよく、あるいはプレイリストアルゴリズムにおける制約等の他の手段により頻繁にスキップされたアイテムの追加がプレイリストに含まれることを防止できる。
【００６９】
・類似性テーブルの更新
時間とともに、アーティストが新しい音楽を作成し、及び新しいアーティストが登場すると、新しいメディアアイテムはオンラインストア及び更にはマスタ購入テーブルに追加される。従って、オンラインストア３０４の既存のアイテムとオンラインストアの新しく追加されたアイテムとの間の関連性が形成されてもよい。例えばユーザが自身のメディアライブラリに曲Ａを有し、その後オンラインストア３０４で最近紹介された新しく追加された曲Ｂを購入する場合、曲Ａと新しく追加された曲Ｂとの間の新しい関連性が形成されてもよい。ユーザが新しく追加された曲Ｂを購入する場合、トランザクションが購入マトリクス３０６に記録され、更新された購入マトリクス３０６が生成される。あるいは、曲ＢはＣＤからトラックをコピーすることによりユーザのライブラリに追加されていてもよい。そのような状況において、結果は同一でありうる。曲Ａ及び曲Ｂの双方がユーザのメディアライブラリにある限り、この同時存在は、更新されたマスタ購入マトリクスに記録される。
【００７０】
協調フィルタリングエンジン３０８は、上述したようにアイテム３１６の更新されたマスタ類似性テーブルを生成するために、更新済み購入マトリクス３０６からの情報を使用する。その後、更新済みの個別類似性テーブル３２２は、更新済みマスタ類似性テーブル３１６の更新されたアイテムのみを抽出することによりユーザ毎に生成される。あるいは、完全に新しい個別類似性テーブルが、新しいデータに基づいて作成可能である。
【００７１】
・システムの概要
図７は、上述した実施形態を実行できる１つのシステム３００の一例を示す。購入マトリクス３０６は、各ユーザのライブラリの全てのメディアアイテムに関するデータを格納する。協調フィルタリングエンジン３０８は、他のメディアの各々に対して各メディアアイテムが同時に存在することを、購入マトリクス３０６のデータを使用して判定する。協調フィルタリングエンジン３０８は、プログラム参加者の母集団にわたるユーザの好みに従って類似性スコアを調整するために、オブジェクト３２４及び３２６に格納されたフィードバックデータをオプションとして使用できる。協調フィルタリングエンジンの出力は、所定のメディアアイテム３１８に類似すると考えられる全てのメディアアイテム３２０を格納することによりマスタ類似性テーブルに格納される。類似するメディアアイテム３２０は、関連性の最も高いアイテムから関連性の最も低いアイテムの順序で提示されるようにソートされる。
【００７２】
オンライン管理ツール３０４は、クライアント側３０２及びサーバ側３０１に対するインタフェースとしての役割を果たす。好適な一実施形態において、オンライン管理ツール３０４は、オンラインストアと関連付けられる。一実施形態において、オンラインストアは、類似性データを生成する際に協調フィルタリングエンジン３０８により使用されるデータ３１０を生成してもよい。しかし、クライアント３０２は、クライアント３０２に格納されたメディアアイテムに関する情報をアップロードし且つサーバ３０１から類似性データをダウンロードするように働く。クライアントに固有の類似性データは、クライアント装置３０２で個別類似性テーブル３２２を生成するためにオンライン管理ツール３０４を使用してマスタ類似性テーブル３１６から直接ダウンロードされてもよい。あるいは、個別類似性テーブルは、サーバ３０１により生成され且つクライアント装置３０２にダウンロードされてもよい。更にクライアント装置は、より適切な類似性データを生成するのを助けるためにオンライン管理ツール３０４を介して協調フィルタ３０８にフィードバックデータを通信できる。
【００７３】
・クライアント
図７に示すように、クライアント装置３０２は、様々な形態のうちいずれか１つの形態をとれる。クライアント装置３０２は、ポータブルデジタルオーディオプレーヤ、ポータブルデジタルビデオプレーヤ、スマートフォン、デスクトップコンピュータ、ラップトップコンピュータ、テレビセットトップボックス及びメディアを再生できる他の何らかの装置等の装置を含む。クライアント装置は、デスクトップコンピュータ又は他の中間装置を介してオンラインストア３０４と同期するオフラインポータブル装置、例えばケーブル接続を介してデスクトップコンピュータと同期するＩＰＯＤデジタルオーディオプレーヤ、無線ルータを介して無線で同期するＩＰＯＤ  ＴＯＵＣＨデジタルオーディプレーヤ又はセルラ接続を介して無線で同期するスマートフォン等を含むことができる。上記説明から明らかであるように、クライアント装置は種々のメディアアイテムの一覧を含む。クライアント装置のユーザが類似性データの使用により利益を得たい場合、ユーザはオンラインインタフェースを介してサービスにアクセスする。あるいは、クライアント装置は、インターネットを介してリモートサーバと通信するＩＴＵＮＥＳデスクトップアプリケーション等のクライアントアプリケーションを介して類似性データサービスにアクセスできる。
【００７４】
オンラインストア３０４は、クライアント装置がデジタルメディアを購入できるようにする単一のサーバ又はサーバのクラスタであってもよい。オンラインストアは、他の補助メディア管理機能へのアクセス権を付与してもよい。
【００７５】
図１５は、類似性データをクライアントにダウンロードする方法の一実施形態を示す。これがクライアントの初めての協調プログラムへのアクセスである（８４２）場合、クライアントはプログラムを選択すること（８４４）により参加することを選択する必要がある。ステップ８４６において、クライアントは専用ユーザ識別コードを与えられる。サーバはクライアントのライブラリと関連付けるためにこのコードを使用するが、クライアントのみが追加の識別情報を有している。サーバは、クライアント装置又はユーザ（プログラム参加者）に関するパーソナル情報又は識別情報を認識しない。専用識別コードが割り当てられると、クライアント装置は、メディアライブラリに関する情報をアップロードできる（８４８）。好適な一実施形態において、ユーザはサーバと共有するメディアアイテムを選択してもよい。
【００７６】
ステップ８４２の結果が、ユーザが既に協調プログラムの参加者であることを示す場合、ステップ８５０において、クライアントは専用識別コードを使用してサーバにログインできる。ステップ８５２において、サーバはメディアライブラリに対する変更に関するクライアントからの情報を要求してもよく、あるいはクライアントは最初に要求されることなくこの情報を共有してもよい。ライブラリに対する変更が行なわれた場合、クライアントは変更に関する情報をアップロードする（８５４）。変更は、編集されたメタデータ、新しいアイテム、削除済みアイテム等の形式をとってもよい。クライアントのメディアライブラリに関する最新情報がサーバに送出されると、ステップ８５６において、クライアントはサーバから新しい類似性データを要求できる。あるいは、サーバは新しい類似性データ又は更新済み類似性データの送信を開始してもよい。
【００７７】
別の実施形態において、クライアントは、上記ステップをスキップし、ライブラリを特定する必要なくマスタ類似性テーブルから更新済み結果を単純に要求できる。例えばクライアントは、識別番号により自身を特定せず且つクライアントのメディアライブラリ一覧に対する変更をサーバに通知せずに、特定のアイテム又はアイテムのリストに対する更新を要求できる。
【００７８】
ステップ８５８において、類似性データがダウンロードされる。類似性データはサーバにより先に作成されたテーブルの形式でダウンロードされるか、あるいは、情報はリアルタイムにダウンロードされ且つ個別類似性データテーブルへとフォーマットされる。
【００７９】
プレイリストは、個別類似性テーブルに基づいて生成される。プレイリストは、クライアント側３０２、オンラインストア３０４又は協調フィルタリングエンジン３０８で生成されうる。プレイリストは、１曲又は複数曲に対する統計的類似性に基づいて生成されうる。クライアント装置が個別類似性テーブルに基づくプレイリストを採用する場合、特定の曲は、ユーザが期待した曲ではない可能性があるか又はユーザが満足するものではない可能性がある。ユーザが統計的類似性に基づいてプレイリストに入れられた曲を頻繁にスキップする場合、システムはその曲に「ペナルティを科し」、類似性値を減少し、より少ない頻度でプレイリストに含め、最終的にプレイリストから完全に放棄できる。これは、ユーザが曲をスキップした時に報告することにより実現される。その動作は、クライアント装置に記録され、オンラインストアにフィードバックとして送信される。オンラインストアは、このフィードバックを協調フィルタリングエンジンに送出し、協調フィルタリングエンジンは、それをネガティブ関連テーブル３２６に格納する。ネガティブ関連テーブルは、類似性のネガティブ指標を格納する。このように、各ユーザは、曲が類似性テーブルから除かれるまで個別に何度も曲をスキップする必要がない。累積したネガティブフィードバックは、グループの挙動に基づいてユーザグループに人気のない曲を除去する。従って、これらのプレイリストはユーザの母集団の変化するメディアの好みに適合するように進化する生物のように動作する。
【００８０】
例えば、多くのユーザがプレイリストの特定の曲を常にスキップする場合、あるいは多くのユーザがプレイリストからその曲を削除する場合、その情報は記録され、マスタ類似性テーブルの生成に影響を及ぼすように重みを割り当てられる。重みは、報告されたネガティブ関連の数又はユーザ対話の他の態様に基づいてもよい。逆に、特定の曲に対する肯定的なユーザ対話はポジティブ関連を提供する。例えば、多くのユーザが既存のプレイリストに同一の曲を追加する場合、あるいは多くのユーザが特定の曲中に音量を上げた場合、これらのポジティブ関連はオンラインインタフェースを介してサーバに報告され、ポジティブ関連テーブルに格納される。
【００８１】
クライアントは、サーバとの対話に加えて他のクライアント又は周辺装置と対話してもよい。好適な一実施形態において、クライアントは、ＩＰＯＤポータブル音楽プレーヤ等のポータブル音楽プレーヤと対話するパーソナルコンピュータであってもよい。そのような例において、クライアント装置は周辺装置において使用する個別類似性テーブルを準備できる。サーバがクライアントのライブラリのメディアアイテムのみに対する情報を含む個別類似性テーブルをクライアントに対して準備できるのと同様に、クライアントは周辺装置のライブラリのメディアアイテムのみに対する情報を含む周辺装置に対して個別類似性テーブルを準備できる。クライアントは、他の任意データアイテムをロードするように、個別類似性テーブルを周辺装置にロードできる。
【００８２】
・周辺装置
クライアントがサーバを使用して動作するのと同様に、周辺装置はクライアントを使用して動作しようとする。例えば周辺装置は、コンテンツに対する変更をクライアントに通知し、それらのコンテンツに対する類似性データを要求できる。更に好適な一実施形態において、ＩＴＵＮＥＳデスクトップアプリケーションを実行するパーソナルコンピュータがＩＰＯＤポータブルメディア装置を管理するのと同様に、周辺装置はクライアントにより管理される。本実施形態において、一般にクライアントは、周辺装置のコンテンツに対する変更に影響を及ぼすツールであることによりそれらの変更を既に認識しているため、それらの変更により更新される必要はない。本実施形態において、クライアントは、クライアントの個別類似性テーブルにおける利用可能なデータに基づいて周辺装置の類似性テーブルを最新状態に維持できる。更に周辺装置は、後でサーバに送信するためにフィードバックデータをクライアントに通信できる。
【００８３】
更に別の実施形態において、周辺装置は、クライアント装置自体としてサーバと直接対話できる。益々多くのポータブルメディアプレーヤがインターネットにアクセスする機能を有するため、ポータブル装置は、最新の類似性データをダウンロードするため又はマスタ購入マトリクスを更新するためにサーバと直接対話できる。そのような一実施形態において、周辺装置は、クライアントの全ての機能を有することができる。
【００８４】
・プレイリストの生成
上述したように、本明細書で説明された方法により生成された類似性データの１つの用途は、プレイリストを生成するために類似性データを使用することである。プレイリストを生成することが、個別類似性テーブルの全ての類似するアイテムを再生することと同じくらい単純でありうる一方で、最適な結果はプレイリスト生成モジュールを使用して取得される可能性が高い。図８は、プレイリストを生成する方法の一実施形態を示す。１つ以上のシードトラックが、ステップ８０２において選択され、ステップ８０４においてプレイリストに追加される。ステップ８０６において、シードトラックに対する類似性データが個別類似性テーブルにおいてルックアップされ、ステップ８０８において、類似するトラックが候補リストに追加される。候補は、プレイリストに追加される可能性があるトラックのリストである。候補がプレイリストに追加されるかは、一連の制約について候補を評価することにより判定される。
【００８５】
制約は、曲がプレイリストに追加されるかに関して制限する。殆どの場合、制約はプレイリストの品質を向上させる。１つの制約は、プレイリストにおいて特定の間隔を要求してもよい。例えば、アーティスト間隔制約が有効である場合、Ｒａｄｉｏｈｅａｄによる２曲は連続して再生されない。同様の一例において、制約は、同一のアルバム又は曲のタイトルの曲がプレイリストにおいて互いの所定の曲数内で発生しないようにしてもよい。別の制約は、互いに相容れないジャンルの曲が同一のプレイリストにおいて再生されないようにする。更に別の制約は「ジッタ」機能であってもよい。ジッタは、受け入れ可能である曲がプレイリストに追加されることをランダムに防止できる。ジッタは、同一のシードトラックの選択に基づいて同一のプレイリストが毎回生成されるのを防止するためにプレイリストにランダム性を提供する。更に別の制約はスキップ回数制約であってもよく、この場合所定の回数を超えてスキップされたどの曲も制約を満たさずプレイリストに含まれない。
【００８６】
制約は、容易に変動する特定のパラメータ又は変数に依存することが理解されるべきである。例えば同一アルバム又はアーティストの２つの曲の間に入ることが要求される曲数は変動する可能性がある。同様に、トラックを除外するのに必要なスキップ回数又は互いに相容れるジャンルのメンバは変動する可能性がある。一実施形態において、そのような変数の設定はユーザにより設定される。別の実施形態において、そのような設定は、サーバにより選択され且つサーバから発行され、クライアントが更新済み類似性データをダウンロードするために接続する度にサーバにより調整されてもよい。
【００８７】
ポジティブ制約も考慮されることが理解されるべきである。高い再生率又は高い評価を有する曲は、プレイリストに移動されるか、あるいはジッタ機能又は他のネガティブ制約の影響を受けない。更に多くの制約を加え、制約を除去し、制約をより厳しくするか又は緩和することにより多くの変形例が可能である。各変形例は、本明細書で説明される方法により意図されている。
【００８８】
ステップ８１０において、考慮される次の候補が選択され、ステップ８１２において、そのメタデータが検索される。メタデータは、制約を評価する際に必要とされる候補に関する情報を提供する。ステップ８１４、８１５及び８１６において、トラックは制約により評価される。図８において３つの制約のみが示されるが、任意の数の可能な制約が存在してもよいことが意図されている。ステップ８１８において全ての制約を満たすまで、曲が１つの制約を満たした場合、次の制約に渡され、そしてトラックはプレイリストに追加される。その後、ステップ８２０に進み、プレイリストの新しい曲に対する類似性データを取り出す。この類似性データは、プレイリストに含めるかを考慮するために候補リストに付加される。
【００８９】
トラックが制約を満たさない場合、ステップ８３０に飛び、評価する追加の候補がリストにある場合はステップ８１０に戻る。しかし、追加の候補がリストにない場合、全ての候補が制約を満たさないか又はプレイリストにあることを意味し、ステップ８３２は、制約がデフォルト値に設定されているかを判定するために制約をチェックする。デフォルト値に設定されている場合、１つ以上の制約を緩和することにより、先に拒否された候補がステップ８２６において再度考慮された際にプレイリストに追加されることが許可されることを期待して、ステップ８２８において制約が緩和される。全ての候補が再度制約を満たさない場合、ステップ８３２は、制約が既に緩和されていたと判定し、処理を終了する。
【００９０】
制約を緩和することは、種々の形態のうちいずれか１つの形態をとれる。いくつかの例において、１つの制約のみが緩和される。他の例において、複数の制約が緩和される。例えば第１の制約が、同一アーティストの２曲が互いの４曲以内に再生されないことを要求する場合、制約は、間に１曲のみ入ることを要求するように緩和されるか又は制約は完全に除去される。いくつかの実施形態において、全ての制約が緩和されるわけではない。一例はジャンルの制約である。特定のジャンルは互いに全く相容れない場合があるため、ジャンルの制約は追加のジャンルを含むようには緩和されないだろう。
【００９１】
ステップ８２６に戻ると、候補トラックが制約を満たさず且つ追加の候補が入手可能でない場合において、制約は緩和される。緩和された制約のために、候補が全ての制約を満たしてプレイリストに追加される場合、ステップ８２２及び８２４において制約は標準に戻される。ステップ８２２は、制約が緩和されるか又はデフォルト設定になっているかを判定するために制約をチェックする。制約がデフォルト設定になっている場合、ステップ８１０に戻り、リスト中の次のトラックを考慮する。しかし、制約が緩和されているとステップ８２２が判定する場合、ステップ８２４に進み、制約を標準に戻し、ステップ８１０に戻り、リスト中の次の候補を考慮する。この処理は、候補が緩和された制約を満たさなくなるまで継続し、ルーチンはステップ８３４で終了する。
【００９２】
曲は、最も類似するものから最も類似しないものの順番でプレイリストに追加される必要はない。曲はランダム化アルゴリズム又は他のロジックを使用してどんな順序で追加されてもよい。
【００９３】
生成されたプレイリストは、静的であっても動的であってもよい。動的なプレイリストは、類似性データが進化し且つ新しいアイテムがユーザのライブラリに追加されるのに伴い時間とともに更新される。あるいは、ユーザが楽しみ且つユーザは変更せずに保持したいプレイリストが生成される場合、ユーザは類似性データに影響を受けない別個の静的なプレイリストとしてそのプレイリストを保存できる。このように、生成された特定のプレイリストが「完璧」であるとユーザが感じている場合、そのプレイリストは、サーバを介して類似性テーブルにおいて反映された一般大衆の変化する好みにより損なわれずに維持される。
【００９４】
・装置を同期させるための類似性データの使用
プレイリストが生成可能であるのと同様に、類似性データは、ポータブル音楽プレーヤ等の周辺装置をユーザのメディアライブラリの新しい音楽又は異なる音楽により更新するために使用可能である。多くのポータブルメディアプレーヤは、制限された容量の影響を受けるため、ユーザのメディアライブラリの全てがＩＰＯＤポータブルメディアプレーヤ等のポータブル装置に格納できるわけではない。そのような例において、多くの場合、ユーザはポータブル装置に格納するメディアアイテムの一部分を選択する必要がある。一部のユーザは、この処理を煩わしいと考え、またユーザは、ポータブル装置に現在格納されているメディアアイテムに退屈していることに気付くかもしれない。
【００９５】
上記で示された問題に対する１つの解決策は、ポータブル装置が新しいメディアアイテムで更新されるように類似性データを使用することである。本実施形態において、ユーザはポータブル装置に保持したい音楽の種類を表す特定の数のシードトラックを選択する。プレイリストがシードトラックから生成可能であるのと同様に、ユーザのライブラリのデータアイテムもポータブルメディアプレーヤに含むために選択可能である。類似性データが変更され、新しい曲がユーザのライブラリに追加されると、類似性データはポータブル装置を新しいトラックにより最新の状態に維持するために使用される。
【００９６】
・購入の推薦
類似性データは、ユーザが購入する新しいアイテムを推薦するために使用されうる。マスタ類似性テーブルに存在するがユーザのライブラリに存在しないアイテムは、システムによって購入することを推薦される。一実施形態において、オンラインストアはユーザのライブラリ又はシードトラックの選択に基づいて購入の推薦を行える。オンラインストアは、最近の購入品をシードトラックとして使用しながら購入するアイテムを推薦できる。別の実施形態において、プレイリストモジュールは、曲がユーザのライブラリの一部であったとしたらプレイリストのどこに含まれるであろうかをユーザに通知することにより、購入する曲を推薦できる。購入の推薦は、サーバからクライアント、そしてポータブルメディアプレーヤまでのシステムのどのレベルでも行える。
【００９７】
いくつかの実施形態において、推薦されるアイテムは、関連付けられた類似性データをまだ有していない新しいアイテムであってもよい。そのような例において、類似性スコアは、新しいアイテムがユーザにより購入されることを推薦されるようにオンラインストアの管理者により提供されうる。提供された類似性スコアは、同時存在又は他の実施形態に基づく類似性データが入手可能になるまで存続可能である。
【００９８】
同様に、映画のレンタル又は購入が推薦されうる。殆どの実施形態が曲に関して説明されたが、メディアアイテムはビデオ又は映画を含むいかなるファイルであってもよい。本実施形態において、ユーザはシードアイテムの選択に基づいて類似する映画を要求できる。あるいは、システムは以前のレンタルに基づいて映画を推薦できる。類似性データは、ユーザが後で見るために新しい映画をクライアント又はポータブルメディアプレーヤに自動的にダウンロードするために使用できることが意図される。本実施形態は課金サービスの一部であってもよく、あるいはユーザは映画を見ないことを選択してレンタル料が発生しないようにできる。
【００９９】
図１６は、類似性データが購入するメディアアイテムを推薦するために使用される方法の一実施形態を示す。ステップ１００２において、シードトラックが選択される。プレイリストがシードトラックに基づいて生成されるのと同様に、購入の推薦はシードトラックに基づく。しかし、少なくとも１つの実施形態において、購入の推薦は、ユーザのライブラリ全体に最も類似するコンテンツに基づいてもよい。
【０１００】
シードトラックが選択されると、ステップ１００４において、図示された方法は次に個別類似性テーブルからそのシードトラックに対する類似性データをルックアップする。本実施形態において、個別類似性テーブルは、ユーザのライブラリにないが類似性データによりユーザのメディアライブラリに存在するアイテムと関連付けられるメディアアイテムを更に含むことが理解されるだろう。別の実施形態において、購入の推薦は、ローカルに格納された類似性テーブルではなくサーバから直接行われる。マスタ類似性テーブルからの類似性リストは類似性データを提供でき、サーバ又はクライアントはユーザのライブラリから識別されたトラックを除くことができる。購入の推薦が含まれる必要はなく、全てのユーザが推薦目的のためのマスタテーブルを共有するため、本実施形態は、最小でありうる個別類似性テーブルを生成するという利点を有する。
【０１０１】
既にユーザのライブラリにあるアイテムが購入されることを推薦されないようにするために、ステップ１００６は、ステップ１００４で検索された類似性データからユーザのメディアライブラリに既に存在するアイテムを除去する。場合によっては、メディアアイテムはユーザにより既に購入されているが、それらのアイテムはユーザのメディアライブラリに存在しない。これは、任意の数の理由のためである。例えば、ユーザがその曲を好きではなく削除したためであり、ユーザがメディアアイテムを別のライブラリに格納したためであり、あるいはユーザがメディアアイテムを購入したがまだダウンロードしていないためである。少なくともこれらの例において、これらのメディアアイテムを購入することを推薦することは望ましくなく、これらのメディアアイテムもステップ１００８において除去される。ステップ１０１０は、購入するように推薦されたアイテムを表示する。
【０１０２】
当然、方法はユーザにより現在選択されている全ての曲に対して繰り返される。いくつかの実施形態において、ユーザは、購入の推薦を断定的に要求する必要はない。そのような実施形態において、購入の推薦は、メディアアイテムが再生のために選択される度にメディアオーガナイザ又はメディアストア内に表示される。メディアアイテムが再生されると、グラフィカルユーザインタフェースは、購入するように推薦された他のメディアアイテム又はアルバム等のメディアアイテムのグループを表示できる。好適な一実施形態において、メディアアイテムは入力装置を使用して推薦自体を選択することにより直接購入可能であり、あるいは、メディアアイテムがオンラインストアから購入可能であるように、推薦はオンラインストアにハイパーリンクすることが少なくとも可能である。
【０１０３】
別の実施形態において、購入の推薦は、選択が可能でない方法を使用して示される。例えばリスナーが指定した購入済みのアーティストによる上位の曲を表示するＶｉｅｗ  Ａｎ  Ａｒｔｉｓｔページにおいて、システムは既にユーザのライブラリに存在するアイテムの推薦を除去するようにフィルタリングされた推薦を表示できる。
【０１０４】
・サーバ＞クライアント＞ＩＰＯＤ
特に好適な一実施形態において、１つの場所で有用な方法はシステムの各場所で同等に適用可能である。図９はこの概念を示す。類似性テーブル９０８及びプレイリストモジュール９１４を含むオンライン音楽ストア９０２が示される。類似性テーブル９０８は、サーバのメディア一覧のアイテムのそれぞれについての全ての関係を含む。プレイリストモジュール９１４は、システムの他のどのクライアント又はポータブルメディアプレーヤとも同様に、類似性テーブルのデータに基づいて動作する。同様に、サーバより小さいメディア一覧を含むクライアント９０４が示され、クライアントのメディア一覧の各アイテムの類似性データは類似性テーブル９１０に格納される。プレイリストモジュール９１６は、ポータブルメディアプレーヤ９０６又は音楽ストア９０２と同様にローカルの類似性テーブル９１０のデータに基づいて動作する。最後に、クライアント９０４より小さいメディア一覧を含むポータブルメディアプレーヤ９０６を示す。類似性テーブル９１２はポータブルメディアプレーヤ９０６のメディア一覧のアイテムに関連した情報を格納し、プレイリストモジュール９１８はそのデータに基づいて動作する。
【０１０５】
図９は、クライアントがポータブルメディアプレーヤのグループに対してサーバのように挙動でき又はより大きいクライアントがより小さいクライアントに対してサーバとして挙動できるという概念を示す。これらの全ては本明細書で意図される。
【０１０６】
殆どの実施形態において、サーバはマスタ購入マトリクス及びマスタ類似性テーブルを維持する唯一の場所であるが、ローカルの類似性テーブルの生成はサーバから導出されたデータに基づいてどの装置においても行える。サーバにより行われる可能性が高い別の機能は更新である。殆どの実施形態において、サーバは類似性データ更新のソースであるだけでなく、サーバはシステムのプレイリストモジュール又はソフトウェア構成要素を更新できる。
【０１０７】
本明細書で説明した全ての処理がリアルタイムで行われる必要はないことが理解されるだろう。多くの場合、処理リソースを節約し且つ特定のタスクをオフラインで実行するのが望ましい。例えば協調フィルタリングエンジンは、マスタ類似性データテーブルを生成するためにスケジュールされた時間にのみ実行してもよい。オフライン処理の必要性は、技術の進歩によりなくなる可能性があることが更に考えられる。そのような例において、現在オフラインで実行されるのが好ましい処理はリアルタイムで実行できるだろう。
【０１０８】
別の実施形態において、各装置は特定の機能をローカルで実行できるにもかかわらず、特定のタスクをサーバに実行させるのが望ましいかもしれない。例えばサーバは、クライアントに対する個別類似性テーブルを生成できるか、あるいはクライアントに対するプレイリストを生成できる。これは、大きな処理のために望まれる処理リソースが一般に不足しているポータブルメディアプレーヤに対するそれらのタスクをクライアントが実行するために多用されてもよい。別の例において、サーバがプレイリストの生成の際に使用されるいくつかの制約を実行し且つ結果を類似性テーブルデータに取り入れることは有利であるかもしれない。例えば緩和されることがないであろうジャンル制約の場合、サーバはアイテムの類似性データから互いに相容れないジャンルのメディアアイテムを除外してもよい。このように、サーバが制約を満たさないアイテムを個別類似性テーブルから既に除外しているであろうから、プレイリストモジュールはプレイリストを生成する時に制約を実行する必要はない。
【０１０９】
図１０は、メディア及び類似性テーブルをデジタルメディアプレーヤに同期させるシステムの一例を示す。通信媒体９２０は、インターネットである可能性が最も高いが、装置が互いに通信できるようにするいかなるチャネルも含むことができる。オンラインストア９２２は、オンラインストアと通信及び対話するためにインストールされた特別なソフトウェアを使用して一般にパーソナルコンピュータであるクライアント９２４と通信する。ＡｐｐｌｅのＩＰＯＤメディアプレーヤ等のポータブルメディアプレーヤ９２６は、一般に３０ピンＵＳＢコネクタを介して、オンラインストア９２２に接続されたパーソナルコンピュータ９２４と同期する。ポータブルメディアプレーヤ９２６をパーソナルコンピュータ９２４に接続する他の方法は、ＵＳＢ、Ｆｉｒｅｗｉｒｅ、８０２．１１シリーズ又はＢｌｕｅｔｏｏｔｈ無線接続を含む。オンラインストアは、メディア９３０のマスタライブラリ及びマスタ類似性テーブル９３２を有する。ポータブルメディアプレーヤ９２６が同期されると、ローカルメディア９３４のメタデータ及びローカルのサブセット類似性テーブル９３６はパーソナルコンピュータ９２４及び通信媒体９２０を介してオンラインストア９２２に送信される。尚、メタデータのみが送信され、実際のメディアが送信されないことに留意することが重要である。オンラインストアは、メディアのコピーを必要とせず、ポータブルメディアプレーヤ９２６に配置されるメディアを明確に識別するのに十分な情報のみを必要とする。オンラインストアは、適切な情報を生成及び／又は検索し、その情報を装置に送出し返すことができ、それにより、ローカルに格納されたメディア９３４に対応する新しいデータによりローカルのサブセット類似性テーブル９３６を更新する。ローカルのサブセット類似性テーブルは、オンラインストアレベル、コンピュータレベル及び／又は装置自体において個々のプレイリストを生成するために使用される。
【０１１０】
別の実施形態において、ポータブルメディアプレーヤ９２６はサーバ９２２からデータを直接取得できる。そのような一実施形態において、ポータブルメディアプレーヤは、８０２．１１シリーズの通信（Ｗｉ−Ｆｉ）又は移動電話網等を介してオンラインストアに接続するための種々の機能を備えることができる。ポータブルメディアプレーヤは、サーバに直接接続でき、クライアント装置が上記例において動作するように動作できる。ポータブルメディアは、一意の識別番号を割り当てられるか、あるいはライブラリがクライアント装置と関連付けられる場合はポータブルメディアプレーヤはクライアント装置と同一の識別番号を使用できる。とにかく、ポータブルメディアプレーヤは、ライブラリに格納されたメディアアイテムに関する情報をアップロードし且つ同一のアイテムに関する類似性データをダウンロードできる。ポータブルメディアプレーヤは、サーバに接続する方法を２つ以上有することができることが理解されるべきである。ポータブルメディアプレーヤは、オンラインストアに接続する機構を複数有することができるだけでなく、クライアント装置と同期し且つオンラインストアと直接通信する機能も有することができる。
【０１１１】
・ユーザインタフェース−概要
図１１は、プレイリストの生成を開始するためのソフトウェアインタフェースの一例を示す。ソフトウェアインタフェース７０２は、メディアを再生し、メディア及びメディアプレイリストを管理し、オンラインストアからメディアを購入することを可能にし、他のメディア関連機能を実行するアプリケーションについて描かれている。ソフトウェアインタフェース７０２は、メディアのリスト７０４及び一部又は全ての関連メタデータを表示できる。オンラインストアを介して受信した個別類似性テーブルを使用してプレイリストを生成するために、ユーザは、１つ以上のメディアを選択して、ボタンをクリックするか、あるいは選択したシードトラックに基づいてプレイリストを生成するコマンドをコンピュータに与える。考えられる適切なユーザインタフェースは、キーボードにおけるキーシーケンス、マウスジェスチャ、タッチによる入力、音声コマンド、あるいはこれらのヒューマンコンピュータインタフェース及び他の適切なヒューマンコンピュータインタフェースのいずれかの組み合わせ等の形を含む。ソフトウェアアプリケーションは、開始されると、選択したメディアシードトラックに対する類似性テーブルを検索し、類似性テーブルに基づいてプレイリストを生成する。アプリケーションは、プレイリストのコンテンツをユーザに対して表示してもしなくてもよい。アプリケーションは、現在再生しているトラック、あるいは直前のメディア、現在再生しているメディア及び次のキューに入れられたメディア等のプレイリストコンテンツの他のサブセットのみを表示してもよい。
【０１１２】
図１１に示した陰影をつけたエントリ等の２曲以上がプレイリストを生成するために選択される場合、プレイリストは、２つのエントリのそれぞれの個別の類似性データを単に組み合わせることにより生成される。あるいは、その２つをマージするためにより高度なアルゴリズムが使用されてもよい。例えば、選択した曲の間で共通のメディアにより高い重要度を割り当て、選択した双方の曲に類似しないと考えられる曲により低い重要度を割り当てるか又はそれらの曲を削除する。プレイリストを生成するために複数の選択した曲を処理する時のアプリケーションの挙動及び／又はアルゴリズムは、ユーザにより制御されるか又はアプリケーション内で事前に設定される。
【０１１３】
プレイリストがリフレッシュされるか又は再作成される実施形態において、生成されたプレイリストの各々を時間順に１つずつ実行する戻る／進む機能性が提供される。例えば、ユーザがプレイリストを作成し且つ別のプレイリストを作成する場合、ユーザは、ブラウザの戻るボタン及び進むボタンのように、コンテンツ及び順番を含む先のプレイリストに戻ることができ、その後新しく作成したプレイリストに戻ることができる。
【０１１４】
プレイリストは、いかなる曲も選択せずに作成できる。ユーザは、「Ｃｈｏｏｓｅ  Ｆｏｒ  Ｍｅ」タイプボタン７０６を単純に選択でき、その結果、システムはユーザに対してシードトラックを選択する。一実施形態において、シードトラックは無作為に選択されてもよい。別の実施形態において、システムは、最近再生されたアイテムのリスト、再生回数が最高のアイテムのリスト、最高の評価をされたアイテム、最近追加又は購入されたアイテム、ジャンル、あるいはアイテムを選択するのに使用された他のあらゆる属性からトラックを選択できる。シードトラックの選択方法に関係なく、プレイリストは類似性データに基づいて作成される。
【０１１５】
・ユーザインタフェース−ＩＰＯＤ／ＩＰＨＯＮＥ／ＩＰＯＤ  ＴＯＵＣＨ
図１２は、ユーザの視点で類似性データからプレイリストを作成する方法を示す。図１２は、２つの可能な開始点７２０及び７３１を示す。ユーザは、ステップ７２０においてプレイリストモジュールに対してシードトラックとなるメディアアイテムを選択できるか、あるいはユーザが現在聴いているアイテムに基づいてプレイリストを作成することを決定できる（７３１）。ユーザは、メニューが表示される（７２４）ようにするコマンドを入力する（７２２）。コマンドは、ボタン、タッチスクリーン又はポインタ等のあらゆるユーザインタフェースオブジェクトにより入力可能である。メニューが表示されると、ステップ７２６において、ユーザはプレイリストジェネレータオプション７２７（図１３Ａを参照）を選択するためにカーソルをナビゲートし、それを選択する。ステップ７２８において確認画面が示され、ユーザが確認すると、ステップ７３０においてプレイリストが生成される。
【０１１６】
図１３Ａ及び図１３Ｂは、プレイリスト生成プログラムを開始する２つの異なるコンテキストメニューを示す。ユーザがメディアアイテム（例えば、曲のリスト中の１曲又は現在再生している画面）に関して中央のボタン７２３を長押しした場合、コンテキストメニューが表示される。コンテキストメニューは、特にプレイリストジェネレータ(Playlist Generator)開始コマンドを含むことができる。ユーザは、プレイリストジェネレータ項目を強調表示するためにスクロールホイール７１９を使用して時計回り又は反時計回りに指を動かすことによりナビゲートし、強調表示された領域を選択するために中央のボタン７２３を押下してもよい。
【０１１７】
図１３Ｃは、ユーザがコンテキストメニューにおいてプレイリストジェネレータプログラムを選択した場合又はユーザが例えばメディア再生中に所定の回数だけ中央のボタン７２３を押下した場合に表示される画面を示す。この画面は、スクロールホイール入力７１９が矢印７２９を開始場所に移動させるのを待つことによりプレイリストジェネレータがユーザにより起動されることを要求する。ユーザは、メニューボタンを押下することによりプログラムから抜けられる。
【０１１８】
図１３Ｄはプレイリストの一例を示す。エネルギーシンボル３２５は、プレイリストが生成された時のシード（トラック）を表す。リフレッシュ(Refresh)３２７は、シードに基づいて新しいプレイリストを作成する。プレイリスト保存(Save Playlist)３２９は、プレイリストを保存し、プレイリストは（メニュー構造の最上層の）ミュージックの下のプレイリストサブメニューから検索されるか又は（メニュー構造の最上層において）プレイリストジェネレータプログラムを選択することにより検索される。
【０１１９】
図１４は、プレイリストジェネレータを使用するための別のインタフェースを示す。図１４Ａは、プレイリストジェネレータモジュールがタッチスクリーンを使用して選択されるプレイリストメニューを示す。ユーザは、メニュー項目を指でタップすることにより又はメニュー項目上で指を動かしてタッチスクリーンから指を離すことによりプレイリストジェネレータプログラム（又は他のいずれかのメニュー項目）を選択できる。
【０１２０】
図１４Ｂは、プレイリストモジュールがプレイリストを作成する際のメディアアイテムをユーザが選択できるシードトラック選択画面を示す。ユーザは、指のタッチを用いてスクロールすることによりメディアアイテムのリストをナビゲートできる。ユーザは、上下の指をスイープする動作を使用してアルファベットの昇順又は降順にリストをスクロールできる。あるいは、ユーザは、アルファベットのリストの所望の部分に対応する文字を選択することによりそのリストのその部分に飛べる。
【０１２１】
曲「Ａｂｒａｍ」に基づいて生成されたサンプルプレイリストを図１４Ｃに示す。図１４Ｄは、再生されているプレイリストの第１のトラックを示す。図１４Ｃに戻ると、リフレッシュ(Refresh)ボタン７４０は、類似性テーブルの新しいデータから新しいプレイリストを作成するために使用される。図１４Ｅは、リフレッシュされたプレイリストの再生を示す。
【０１２２】
図１４Ｆは、リフレッシュされたリストを静的プレイリストとして保存するために選択される保存(Save)ボタン７４２を示す。保存されたプレイリストは、図１４Ｇのプレイリストメニューで見られる。保存したプレイリストであっても編集できる。サンプルプレイリスト編集画面を図１４Ｈに示す。他の実施形態において、例えばユーザが現在のシードトラックのプレイリストを終了し、現在再生しているトラックに基づいて新しいプレイリストを作成したい場合、プレイリスト内の曲がシートトラックとして選択できる。
【０１２３】
別の実施形態において、曲が購入されることができ、プレイリストはクライアント装置を制御するリモートを使用して作成されることができる。
【０１２４】
・ユーザインタフェース−ＩＴＵＮＥＳ
図１７Ａ及び図１７Ｂは、ユーザ選択ページの２つの可能な実現例を示す。ユーザ選択画面は、パーソナル音楽ライブラリに関するデータがサービスに送出されることをユーザに通知し、ユーザが参加ボタン１０２６をクリックすることによりプログラムに参加することを要求する。ユーザは、ボタン１０２７を選択することによりこのオプションを拒否できる。
【０１２５】
図１７Ｂに示したグラフィカルユーザインタフェースは、プレイリスト生成プログラムを開始できる選択可能な項目１０２０及び１０２４を示す。選択可能な項目１０２２は、メディアアイテム推薦機能を開始できる。好適な一実施形態において、項目１０２２は、購入することを推薦するアイテムをユーザに提示するグラフィカルユーザインタフェース内でフレーム１０２５を開ける。
【０１２６】
図１８は、ユーザのメディアライブラリに関する情報をアップロードし且つローカルメディアライブラリのコンテンツに対する類似性データを受信する間に表示される１つのありうるグラフィカルユーザインタフェースを一般的に示す。図１８Ａは、図１８Ｂに示す画面が表示されている間にサーバに送信されるユーザのメディアライブラリに関する情報のプログラムが収集している間に示される１つのありうる画面を示す。図１８Ｃは、このクライアント装置についての個別類似性テーブルに格納される情報をダウンロードしている間に示される１つのありうる画面を示す。図１８Ｄは、ユーザが本明細書で説明されるプレイリスト生成処理及びメディア推薦処理を現在使用できることを示す処理完了画面を示す。ユーザは、情報を収集、アップロード及びダウンロードしている間にこれらの画面を閲覧する必要はない。少なくとも１つの好適な実施形態において、ユーザはこの処理中にグラフィカルユーザインタフェースの他の機能を使用し続けられる。
【０１２７】
・ユーザインタフェース−ＩＴＵＮＥＳ／サイドバー
図１９は、類似性データに基づいて購入することを推薦するメディアアイテムを表示する１つのグラフィカルユーザインタフェースを一般的に示す。図１９Ａを参照すると、図はより大きいグラフィカルユーザインタフェースに組み込まれるか又はスタンドアロンインタフェースでありうるグラフィカルユーザインタフェース１０３８を示す。インタフェース１０３８内にアルバムに関する類似性データが示される。この例において、Ｗｈｉｔｅ  Ｓｔｒｉｐｅｓ  Ａｌｂｕｍの曲が選択され、インタフェース１０３８はこのメディアアイテムに対する類似性データを表示する。モジュール１０４０は、購入の推薦の１つの形式を含む。モジュール１０４０内の項目は、同一アーティストによるアルバムを表し、これは指定されたメディアアイテムを含むアルバムを含む。いくつかの実施形態において、このインタフェースでアルバムを選択することにより、アルバムの全てのトラックを表示するリストに拡大する。推薦されたアルバムは、まだダウンロードできない可能性があるが、リリース前に購入されうる。ユーザがライブラリ又は購入履歴にアルバムの全ての曲を既に有している場合、そのアルバムは、最も関連するアルバムであっても表示されないことが重要である。しかし、ユーザがアルバムの一部の曲のみを所有している場合、アルバムは既に所有している曲が表された状態で示されうる。インタフェース１０３８は、ユーザのライブラリ又は購入履歴に存在しないメディアアイテムのみを表示する。
【０１２８】
モジュール１０４２は、ユーザのメディアライブラリ又は購入履歴に存在しない同一アーティストの曲を表示する。モジュール１０４４は、選択される曲に対する類似性データに基づいてメディアアイテムを推薦する。いくつかの曲に対して、システムは関連する推薦を提供できないが、そのような状況においてはユーザの聴き方及び購入の仕方に適応され且つユーザが既に有しているものについてはフィルタリングされている、更に広範な推薦がユーザに与えられうることが理解される。
【０１２９】
各モジュール１０４０、１０４２及び１０４４は、任意の数のアイテムを含むことができ、図に表された数である必要はない。いくつかの例において、インタフェースが１度に表示できる数より多くの推薦が得られてもよい。そのような一例において、インタフェースは追加の推薦されたアイテムを閲覧するためのスクロールバー又はリンクを含むことができる。
【０１３０】
個別の各メディアアイテムは、アイコン１０４１を選択することによりプレビューされうる。このアイコンを選択することにより、ユーザは推薦された個々のメディアアイテムを好きであるか否かを判断するためにそのメディアアイテムをプレビューできる。いくつかの実施形態において、アイコン１０４１は、アイテムがプレビュー可能であることをより適切に示すために再生ボタンに変更されてもよい。ユーザがメディアアイテムを購入したい場合、ユーザはアイコン１０４３を選択でき、それによりユーザは選択したアイテムを購入及び取得できる。アイテムが購入されると、購入を示すアイコン又は他の手段が表示される。別の実施形態において、アイテムが購入されると、そのアイテムはさらなる推薦のためのシードトラックとなることができる。
【０１３１】
図１９Ｂは、インタフェース１０３８についての別のレイアウトを示す。このレイアウトにおいては、ボックス１０４０及び１０４４のみが表示される。インタフェースにおいてさらなる利用可能な空間をとるために、追加のメディアアイテムは推薦ボックス１０４４に追加された。少なくとも１つの実施形態において、空の無駄な空間を有することはユーザを苛立たせる可能性があるため、全ての利用可能な空間を推薦で満たすのが望ましい。
【０１３２】
図１９Ｃは、選択されたメディアアイテムに対して入手可能な類似性データが存在しない一実施形態を示す。本実施形態において、ボックス１０４８は、マッチングするものがないことをユーザに指示し、選択したメディアアイテムと同一又は同様のジャンルの上位のアルバムを推薦するためにモジュール１０４３及び１０４６を使用する。
【０１３３】
図１９Ｄは、入手可能な類似性データが存在せず且つ入手可能なジャンル情報がない（又はジャンルに基づく推薦がない）一実施形態を示す。ここでも、選択したメディアアイテムに対してマッチングするものが返されなかったことをユーザに通知するメッセージがボックス１０４８に表示される。モジュール１０４５は、選択したメディアアイテムに類似する上位のメディアアイテムを表示できる。モジュール１０４６は、オンラインストアの上位のアルバムを表示できる。
【０１３４】
更に図１９Ｅは、ユーザがプログラムに参加していないため又はサーバが類似性データを発行するのに利用可能でないために入手可能な推薦が存在しない一実施形態を示す。マッチングするものがないことを示すメッセージはモジュール１０４８に表示される。モジュール１０５０は、類似性データの代わりにシードトラックと同一アーティストによる他の曲及びアルバムを表示できる。本実施形態において、ユーザのメディアライブラリにあるアイテムが表示されてもよい。モジュール１０５２は、ストア購入情報から導出されたストアアイテムを表示する。
【０１３５】
図１９Ｆは、推薦が利用可能でなく且つそれを示すメッセージがモジュール１０４８に表示される一実施形態を示す。インタフェースは、推薦の代わりにオンラインストアのトップセールスチャートをモジュール１０５４及び１０４６に示す。
【０１３６】
本発明の範囲内の実施形態は、コンピュータ実行可能命令又はデータ構造を保持するか又は格納するコンピュータ可読媒体を更に含んでもよい。そのようなコンピュータ可読媒体は、汎用コンピュータ又は専用コンピュータによりアクセスされる利用可能などんな媒体であってもよい。例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置、あるいはコンピュータ実行可能命令又はデータ構造の形式で所望のプログラムコード手段を保持又は格納するために使用可能な他のいかなる媒体も含むことができるが、これらに限定されない。情報がネットワーク又は別の通信接続（ハードワイヤード、無線又はそれらの組み合わせ）を介してコンピュータに転送又は提供される場合、コンピュータは接続をコンピュータ可読媒体として正しく考える。従って、そのようないかなる接続も正しくコンピュータ可読媒体と呼ばれる。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１３７】
例えばコンピュータ実行可能命令は、汎用コンピュータ、専用コンピュータ又は専用処理装置に特定の機能又は機能群を実行させる命令及びデータを含む。コンピュータ実行可能命令は、スタンドアロン又はネットワーク環境でコンピュータにより実行されるプログラムモジュールを更に含む。一般にプログラムモジュールは、特定のタスクを実行するか又は特定の抽象データタイプを実現するルーチン、プログラム、オブジェクト、構成要素及びデータ構造を含む。コンピュータ実行可能命令、関連するデータ構造及びプログラムモジュールは、本明細書で開示された方法のステップを実行するためのプログラムコード手段の例である。そのような実行可能命令又は関連するデータ構造の特定のシーケンスは、そのようなステップで説明された機能を実現するための対応する動作の例である。
【０１３８】
本発明の他の実施形態は、パーソナルコンピュータ、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサを使用する消費者電子機器、プログラマブル消費者電子機器、ネットワークＰＣ、ミニコンピュータ及びメインフレームコンピュータ等を含む多くの種類のコンピュータシステム構成を有するネットワークコンピューティング環境で実現されてもよいことが当業者には理解されるだろう。実施形態は、通信ネットワークを介してリンクされる（有線リンク、無線リンク又はそれらの組合せにより）ローカル処理装置及びリモート処理装置によりタスクが実行される分散コンピューティング環境で実現されてもよい。分散コンピューティング環境において、プログラムモジュールは、ローカルメモリ記憶装置及びリモートメモリ記憶装置の双方に配置されてもよい。
【０１３９】
説明したシステムの種々の段階における通信は、ローカルエリアネットワーク、トークンリングネットワーク、インターネット、企業イントラネット、８０２．１１シリーズ無線信号、光ファイバネットワーク、無線又はマイクロ波伝送等のネットワーククラウド３２８を介して実行されうる。基礎となる通信技術が変更されてもよいが、本明細書で説明した基本的な原理は依然として適用可能である。
【０１４０】
上述した種々の実施形態は、例として提供され、本発明を限定するものとして解釈されるべきではない。例えば本明細書の原理は、ポータブルメディア再生装置又はネットワークに物理的に接続されたパーソナルコンピュータにより無線でアクセスできるオンラインストアに適用されてもよい。本明細書で図示して説明した実施形態の例及び応用例に従わないが、本発明の趣旨の範囲からは逸脱しない、本発明に対して行われうる種々の変形及び変更を、当業者は容易に認識できるだろう。
【０１４１】
本願は、全てが２００８年９月３０日に出願された米国特許出願シリアル番号１２／２４２，７２８、１２／２４２，７３５、１２／２４２，７５８、及び１２／２４２，７６８の優先権を主張し、２００８年９月８日に出願された"SYSTEM AND METHOD FOR PLAYLIST GENERATION BASED ON SIMILARITY DATA（類似性データに基づくプレイリスト生成システム及び方法）"と題するＵＳ仮特許出願番号６１／０９５，２８９の利益を主張し、これらの全ては参照によりその全体が明白に本明細書に組み込まれる。
【図１】
0005232304.tif 000002
【図２】
0005232304.tif 000003
【図３Ａ】
0005232304.tif 000004
【図３Ｂ】
0005232304.tif 000005
【図４】
0005232304.tif 000006
【図５】
0005232304.tif 000007
【図６】
0005232304.tif 000008
【図７】
0005232304.tif 000009
【図８】
0005232304.tif 000010
【図９】
0005232304.tif 000011
【図１０】
0005232304.tif 000012
【図１１】
0005232304.tif 000013
【図１２】
0005232304.tif 000014
【図１３Ａ】
0005232304.tif 000015
【図１３Ｂ】
0005232304.tif 000016
【図１３Ｃ】
0005232304.tif 000017
【図１３Ｄ】
0005232304.tif 000018
【図１４Ａ】
0005232304.tif 000019
【図１４Ｂ】
0005232304.tif 000020
【図１４Ｃ】
0005232304.tif 000021
【図１４Ｄ】
0005232304.tif 000022
【図１４Ｅ】
0005232304.tif 000023
【図１４Ｆ】
0005232304.tif 000024
【図１４Ｇ】
0005232304.tif 000025
【図１４Ｈ】
0005232304.tif 000026
【図１５】
0005232304.tif 000027
【図１６】
0005232304.tif 000028
【図１７Ａ】
0005232304.tif 000029
【図１７Ｂ】
0005232304.tif 000030
【図１８Ａ】
0005232304.tif 000031
【図１８Ｂ】
0005232304.tif 000032
【図１８Ｃ】
0005232304.tif 000033
【図１８Ｄ】
0005232304.tif 000034
【図１９Ａ】
0005232304.tif 000035
【図１９Ｂ】
0005232304.tif 000036
【図１９Ｃ】
0005232304.tif 000037
【図１９Ｄ】
0005232304.tif 000038
【図１９Ｅ】
0005232304.tif 000039
【図１９Ｆ】
0005232304.tif 000040