状況と嗜好に基づくプレイリスト推薦システム

Katsuhiko KAJI
名古屋大学大学院 情報科学研究科

NTTコミュニケーション科学基礎研究所
Katashi NAGAO
名古屋大学 エコトピア科学研究機構

概要

本論文ではわれわれはプレイリスト生成の手法を提案する。歌詞に加え、ユーザの楽曲解釈の情報である楽曲情景と鑑賞状況に関するアノテーションを利用することにより、ユーザの類似性を発見し、ユーザの嗜好と状況に合わせたプレイリストを自動生成する。

プレイリスト生成は3段階のフェーズを経て行われる。 はじめに協調フィルタリングにより基プレイリストを発見し、 次にその基プレイリストをユーザの嗜好に適合させるトランスコーディングを 施しユーザにプレイリストを提示する。ユーザはシステムに好きな曲かどうかなどのフィードバックを返すインタラクションにより各ユーザの嗜好や状況にあわせたプロファイルに適合していく。

1 はじめに

近年MP3などの普及により音楽をデジタルコンテンツとして利用することが容易になってきている。ポータブルMP3プレイヤのような小型の機器に何時間分もの楽曲を入れて持ち歩くことも可能になり、Web上にはさらに多くの楽曲が存在している。このような膨大な楽曲の中からユーザにふさわしい楽曲を推薦する仕組みが求められている。そこで現在プレイリスト生成に関する研究が盛んに行われている。

従来の楽曲推薦に関する研究は、協調フィルタリングによるプレイリスト生成システム やジャンル、アーティストなどの情報を利用したプレイリスト生成などがある。これらの研究では、協調フィルタリングの有効性や、ジャンル、アーティストについての情報が楽曲推薦について有効であることを述べている。

また、文書やビデオコンテンツなどへのアノテーションの研究が進められている。 アノテーションとは各コンテンツに対してメタ的な情報を関連付けることであり、アノテーションにより従来困難であった検索やコンテンツ簡約など多くのタスクを実現する手助けになる。

今後の音楽配信サービスの形態として、定額制サービスの出現が想定される。そのような場面では、楽曲そのものの実態を伴わず、楽曲のIDだけであらわされるプレイリストは個人だけの利用だけでなく、多くのユーザ間で共有し推薦しあうことが可能になる。そこで我々はプレイリストを介してコミュニティを形成し、またそのコミュニティ活動の活性化を支援することを目標として研究を進めている。今回我々は、プレイリストを多くのユーザ間で共有すること前提とし、そのスタートであるユーザの嗜好と状況に合わせたプレイリスト推薦手法を提案する。様々な趣味を持つ多くのユーザがプレイリストを共有する際にもっとも考慮すべき点は趣味の違いによって、楽曲を聴いた際の印象や解釈が異なる点である。このような解釈に関する情報をコンテンツに対して関連付けるアノテーションの研究が進められている。コンテンツに含まれる情報に加え、ユーザが関連付けたアノテーションを用いることにより従来困難であった検索やコンテンツ簡約など多くのタスクを実現する手助けになる。そこで本システムでは従来の研究により楽曲推薦に有効であるとされた情報のほかに、ユーザの楽曲解釈に関するアノテーションを用いることでさらにユーザに適合したプレイリスト推薦を行うことができるのではないかと考え、楽曲がどのような情景を歌っているのか、その楽曲をどのような状況で聴きたいかというアノテーションを利用し、POPSを対象としたプレイリスト推薦システムを実装した。

多くのユーザ間で大量のプレイリストが共有される場合、それぞれのユーザの嗜好に合わせて協調フィルタリングを行いプレイリスト生成を行うことが望ましいとされている。我々はその協調フィルタリングに加えて、他人が推薦するプレイリストをさらにユーザの嗜好に適合させるためにトランスコーディングを行う。またユーザとシステム間でのインタラクションにより個人のプロファイルを更新していく。

2 プレイリスト推薦システム

今回は、歌詞、楽曲情景、鑑賞状況という3種類の特徴量を採用しているが、文献などで述べられるように、他にも楽曲推薦の際に有効であるとされているジャンルやアーティストなど多pくの特徴量が存在する。本手法はこれらの特徴量を随時取り込むことができるようにするため楽曲とユーザを特徴量空間へマップする手法を採用した。

2.1 歌詞とアノテーションによる楽曲間類似度推定

歌詞・楽曲情景・鑑賞状況の特徴量空間

図1: 歌詞・楽曲情景・鑑賞状況の特徴量空間

楽曲情景と、鑑賞状況については、鑑賞するユーザの解釈に強く関わる情報であるため、楽曲を自動解析して得ることが困難である。そこで、別途用意したアノテーションシステムにより、曲と歌詞からどのような情景を歌っているか、どのような状況のときに聴きたいかのアノテーションを収集し、その結果を利用した。

収集するアノテーションは、楽曲全体の雰囲気に関するあいまいな情報であるため、多くのユーザからそれらの情報を取得し、統計的に処理を行う必要がある。そこで、別途音楽アノテーションシステムを実装し、各楽曲についてアノテーションを収集した。一つの楽曲に複数のユーザによるアノテーションが付与されている場合はそれらのアノテーションの平均をその楽曲の特徴量として利用する。

そして図のように、歌詞のTF*IDF値、楽曲情景、鑑賞状況の3種類の特徴量空間を形成することができる。これらの特徴量空間から、以下の式により$m_i$、$m_j$の2楽曲間の類似度を算出する。

歌詞の特徴量のベクトル式

図2: 歌詞の特徴量のベクトル式

$\alpha$、$\beta$、$\gamma$はそれぞれ各特徴量空間の重みであり、$l_m$、$c_m$、$s_m$はそれぞれ、歌詞、楽曲情景、鑑賞状況の特徴量空間における楽曲mの特徴量である。

複数の特徴量空間があるため、どの特徴量を強調するかによって$\alpha$、$\beta$、$\gamma$の値は変化する。今回のプレイリスト生成システムでは、ユーザの置かれた状況により適した楽曲を選出することができるようにするため、$\alpha$、$\beta$よりも$\gamma$の値を大きく設定した。cos(a,b)はa,b間のコサイン距離をあらわす関数である。コサイン距離はある特徴量空間における2要素間の類似度を表すために有効であるとされている。得られた値が大きいほど類似した楽曲であるといえる。

2楽曲間の類似度算出式

図3: 2楽曲間の類似度算出式

今後新しい特徴量を導入する際には、特徴量空間を追加し、それらの間において以下の節で述べるプレイリスト生成の処理を行うことで、アルゴリズムを変更することなく楽曲推薦を行うことができる。

2.2 プレイリスト生成の流れ

プレイリスト生成の流れは、図のように、まずプレイリストプールから協調フィルタリングにより種となるプレイリストを選び出し、次にその種プレイリストをよりユーザの嗜好に近づけるためトランスコーディングを行い、ユーザにプレイリストを提示する。さらにユーザからシステムへ返すフィードバック情報を用いてよりよいプレイリストを生成すると同時にユーザのプロファイルを変更し、次回以降のプレイリスト生成のために個人適応を行う。

プレイリスト生成の流れ

図4: プレイリスト生成の流れ

ユーザを図の3種類の特徴量空間にマップすることで、楽曲間、ユーザと楽曲間、またユーザ間での類似度の測定を可能にしている。歌詞と楽曲情景については、それまで鑑賞した好きな曲の特徴量の平均をそれぞれの特徴量空間にそのユーザの嗜好としてマップされる。鑑賞状況はそのつど異なるため、プレイリストを生成する時点で鑑賞状況入力フォームからの入力を鑑賞状況の特徴量空間にマップする。

第一の協調フィルタリングのフェーズでは、一つの基プレイリストを発見する。まずプレイリスト推薦を行うユーザと似ているユーザを発見する。歌詞と楽曲情景の特徴量空間で、楽曲間の類似度を求める際と同様に類似度を計算し、閾値以上のユーザを類似するユーザとみなしている。次にそれらのユーザが作成したプレイリストから、プレイリスト推薦を行うユーザが置かれている状況と似ている状況で作成されたプレイリストを基プレイリストとする。

次にユーザの置かれた状況と、それらのユーザが作成したプレイリストが作成されたときの状況の類似度が閾値以上のプレイリストを発見する。それらのプレイリストから、ユーザ嗜好の類似度、またユーザの置かれた状況と、そのプレイリストが作成されたときの状況の類似度を踏まえて、一つの基プレイリストを決定する。

第二のフェーズとして、基プレイリストをより個人適応するトランスコーディングを行う。今回実現したトランスコーディングでは、種プレイリストから、ユーザの嗜好に合わない楽曲を除去し、さらに今まで聴いたことのある楽曲と、聴いたことのない楽曲を一定の割合で含ませるといった処理を行っている。今回は聴いたことの無い曲の割合を三割含ませた。このように、楽曲の鑑賞履歴をユーザの嗜好や状況以外の情報からも楽曲推薦を行うことが可能になる。

嫌いな曲の除去などによる代わりに追加する楽曲は、ユーザの嗜好、置かれた状況と類似している楽曲である。ユーザの嗜好、置かれた状況を特徴量空間にマップし、ユーザと楽曲のコサイン距離を各特徴量空間で算出し、類似している楽曲から順に入れ替えを行う曲数を選択する。ユーザ$u_i$と楽曲$m_j$の類似度は楽曲間の類似度と同様の式であらわされる。

以上の処理を経てユーザには図のようなプレイリストが表示される。ユーザはプレイリスト上部に埋め込まれたプレイヤを通常の音楽プレイヤと同様に操作することでそのプレイリストを楽しむことができる。

提示されるプレイリストの例

図5: 提示されるプレイリストの例

最後に第三のフェーズであるインタラクションを行う。ユーザは実際に楽曲を聴き、各楽曲が嗜好に合っていたか、今置かれている状況にあっていたかといった情報をフィードバックすることができる。システムはユーザからのフィードバックを受け取り、状況や嗜好に合わず気に入らない楽曲の入れ替えを行い再度ユーザに提示する。同時にフィードバック情報からユーザのプロファイルを変化させ、個人適応を行い、次回のプレイリスト生成の際によりユーザの嗜好に合った楽曲選択ができるようにする。また同時に好きな曲かどうか、状況にあっているかどうかといった情報から、ユーザの特徴量空間の基底ベクトルの変換を行う。以下は歌詞についての特徴量空間の基底ベクトル変換の式である。

ユーザの基底ベクトル変換

図6: ユーザの基底ベクトル変換

$l_{f}$は嗜好に合っているとフィードバックされた楽曲の平均であり、$l_{d}$ は嗜好に合わないという楽曲の歌詞の特徴量の平均である。元の基底ベクトルを、嗜好に合った楽曲の方向に短縮し、嗜好に合わない楽曲の方向に拡張している。楽曲情景についての基底ベクトルについても同様に、嗜好に合っているかいないかというフィードバック情報を用いて変換を行う。また、鑑賞状況の特徴量空間は状況にあっているかいないかというフィードバックを利用して変換を行う。

さらに、ユーザが今までに鑑賞した曲や、好きな曲、嫌いな曲、どのような状況でどのようなプレイリストを生成したかといった情報を保存し、楽曲の特徴量空間にユーザをマップする際や、協調フィルタリングによる他ユーザへのプレイリスト推薦、より個人の嗜好に合ったプレイリストにトランスコーディングする際などにそれらの情報を利用する。

2.3 鑑賞履歴の取得とユーザプロファイルへの反映

一般にユーザプロファイルに導入すべき情報として、どのコンテンツ を、どれだけ利用したかという情報が挙げられる。そこで本システム にプレイリストプレイヤを埋め込み、提示したプレイリストをどのよ うに聴いたかという鑑賞履歴を取得するように拡張した。

ユーザは図の上部のプレイリストプレイヤから、一般の音楽プレイヤと同様の操作により楽曲を鑑賞することができる。プレイリストプレイヤはスタート・ストップ・楽曲選択などの操作情報を 随時、システムに通知し、ユーザがどの楽曲のどの部分を何秒間鑑賞したかという情報をプロファイルに反映させる。

このような鑑賞履歴の取得は、ユーザプロファイルへの反映だけ でなく、楽曲へのアノテーションとして利用することができる。ユー ザの解釈に関する情報であるアノテーションは、それぞれの楽曲ごと にその情報量が異なることが多い。そこで、アノテーションが十分に 集まっていない楽曲について、鑑賞履歴を利用し、情報量を補うこと が可能である。例えば、似たような状況において多くの人が繰り返し 聴いている楽曲であれば、その状況に合った楽曲ということができる。

3 予備実験

今回利用した楽曲はRWC音楽DBのPOPS100曲と、一般のPOPS約130曲である。事前に全230曲中145曲、211個のアノテーションを収集した。

実装したプレイリスト生成システムの個人適応が有効であるかを確かめるための7人のユーザに対して予備実験を行った。評価実験の方法は、自由に状況を想定し、プレイリスト生成システムに状況を入力してもらう。そしてシステムが提示したプレイリスト中に、「嗜好と状況」、「嗜好」、「状況」に合った曲が何曲あったかを申告してもらった。さらに、嗜好や状況に合わない曲をユーザにフィードバックしてもらい、それらの曲を入れ替えたプレイリストを提示するインタラクションをすべての曲が「嗜好と状況」に合った曲になるまで繰り返してもらった。「嗜好」に合っているかどうかの判断については、アーティストやジャンルなど、今回は楽曲の特徴量として利用していない情報によってではなく、楽曲の歌詞、歌っている情景から判断してもらった。以上のプレイリスト生成プロセスを3回繰り返してもらい、以下の値を集計した。

評価実験の結果を図に示す。左からユーザの嗜好と状況に合った曲数、嗜好に合った曲数、状況に合った曲数、インタラクションの回数であり、それぞれ左から1回目、2回目、3回目のプレイリスト生成プロセスにおける結果である。またそれぞれの棒グラフの頂点から標準偏差による幅を示した。

評価実験の結果

図7: 評価実験の結果

の、左から2番目に示された嗜好に合った曲数の棒グラフからは、1回目、2回目、3回目と回数を重ねるにつれて増加している。ユーザの嗜好に合った楽曲提示が、プレイリスト生成の回数を重ねるごとに改善されているといえる。また、右端のインタラクション回数に関する棒グラフでは、プレイリスト生成の回数を重ねるにつ入れて減少している。プレイリスト生成の回数を重ねるごとに、少ない回数で満足のいくプレイリストが得られる。さらに、左端の嗜好、状況共に合った楽曲数も、若干ではあるが改善されてきている。長く利用するユーザほど、嗜好と状況に合ったプレイリストが生成されるようになり、さらに完全に満足のいくプレイリストを得るまでのインタラクションが少なくてすむシステムであるといえる。

一方、左から3番目の状況に合った楽曲数の棒グラフでは、1回目、2回目、3回目とプレイリスト生成を繰り返すことによる増加傾向は見られない。鑑賞状況に合った楽曲提示については、プレイリスト生成を繰り返すことにより改善されているとはいえない結果であった。この原因としては、登録されている楽曲の絶対数が少ないため、十分指定された状況に近い楽曲が存在しないという理由が挙げられる。ユーザの置かれる状況は非常に広いバリエーションが存在するので、それらの状況をカバーするためには多くの楽曲数が必要となる。

また、それぞれの楽曲に十分なアノテーションが存在していないことも原因のひとつである。今回の予備実験のために収集した楽曲情景と鑑賞状況に関するアノテーションは、すべての楽曲に対して均等に付与されていない。複数のアノテーションが存在する楽曲がある反面、ひとつもアノテーションが存在しない楽曲も存在した。このような現象は楽曲数、ユーザの数に関わらず、楽曲自身の人気やユーザの嗜好の偏りなどから、多くのアノテーションを収集できる楽曲が出る一方、一つもアノテーションが存在しない楽曲も現れる可能性がある。

それぞれの楽曲についての情報量の偏りは、多くのユーザの解釈の情報を集めるアノテーションシステムにとって解決しなければならない問題点である。ユーザをアノテーションの少ないコンテンツに誘導したり、\ref{interaction}節で述べたように、プレイリストに対するアノテーションを各楽曲のアノテーションとして反映させるなど、不足しているアノテーションを別の手法で補完する必要がある。

4 終わりに

プレイリストを介したユーザ間でのコミュニティ形成やコミュニティ活動の活性化を支援することを目標とし、歌詞とアノテーションを用いて、ユーザの嗜好・状況に応じたプレイリストを生成するシステムを実装した。本システムでは、協調フィルタリングとトランスコーディングによりユーザの嗜好、鑑賞状況に適応したプレイリストを生成する。またプレイリストを洗練するインタラクションにおいてユーザのフィードバックをプロファイルとして取り込み、個人適応を行う。