DEIM Forum 2016 E1-5

プレイリスト生成におけるグラフモデルを用いたスコアリング手法の
提案
植田

聖司†

惇志††

欅

宮崎

純††

† 東京工業大学総合理工学研究科知能システム科学専攻 〒 152–8550 東京都目黒区大岡山 2 丁目 12-1†† 東京工業大学情報理工学研究科 〒 152–8550 東京都目黒区大岡山 2 丁目 12-1
E-mail: †{ueda,keyaki}@lsc.cs.titech.ac.jp, ††miyazaki@cs.titech.ac.jp
あらまし

本稿では，楽曲の共起関係とアーティスト情報のグラフモデルを組み合わせたプレイリスト生成手法を提案する．音楽サービスの普及によりユーザは膨大な楽曲の中から好みの楽曲を選択することを迫られるようになった．
このため自動的にプレイリストを生成するアルゴリズムの必要性が増してきた．これまでユーザの生成したプレイリ
ストからプレイリスト同士の類似度を計算するプレイリスト生成手法や，楽曲の出現パターンを用いた生成手法が提案されてきた．しかしながら，これらの手法は楽曲の共起関係や楽曲とアーティスト間の関係といった一つ要素のみしか考慮していなかった．本稿では，楽曲に関係した複数の要素を統合するために，これらの手法を改良し，グラフモデルを適用した新たな手法を提案し，検証を行う．
キーワード

プレイリスト生成, 音楽推薦, グラフモデル
ため，高速なプレイリスト生成手法が望ましい．また，これら

1. は じ め に（注 1）の手法は複数楽曲の共起関係やプレイリスト内の楽曲の重複度
（注 2）

に

合いといったプレイリストや楽曲の情報の一つの要素のみに着代表されるインターネットラジオの普及によりユーザがイン目した生成手法となっている．ユーザの好みにあった楽曲を推

ターネット上から自分の好みに合った楽曲を選び，再生するこ

薦するには楽曲の一つの要素だけでなく，楽曲の複数の要素をとが可能となった．しかし，自分の嗜好に合った楽曲を膨大な取り入れたプレイリスト生成を行うことが重要であると考えら楽曲群の中から見つけ出すことは困難であり，ユーザが楽曲のれる．これは，ユーザの生成するプレイリストは特定のジャン推薦を受けることは有用であると考えられる．音楽配信サービ

ルやトピック，アーティストの楽曲のリストとなっている場合

ス上において，ユーザは，他のユーザが生成したプレイリスト

が多く，その目標となる特徴に合わせたプレイリストの生成をや，ユーザの嗜好に合わせてシステムが自動的に生成したプレ行うためには，それぞれの特徴での要素の関係情報を取り入れ

イリストを利用することで，ユーザの好みに合う楽曲の推薦をたプレイリストの生成が必要と考えられるからである．

spotifyに代表される音楽配信サービスや Last.fm

受けることができる．

これまで楽曲やタグ情報の関係に対してグラフモデルを適

プレイリスト生成とは，プレイリストと事前知識となるデー用したプレイリスト生成や楽曲推薦の手法が提案されてき

タセット，目標となるプレイリストの特徴が与えられたとき，た [10] [5] [6]．グラフモデルを用いることで，楽曲の持つアー

その特性に合った楽曲のリスト (プレイリスト) を生成すること

ティストやタグ情報をグラフ上で表現し，各ノードのグラフと定義される [4]．近年自動プレイリスト生成の問題として Hit

上での価値 (重要度) を決定することが出来る．文献 [5] では，

rates [7] が提案された．Hit rates ではユーザの生成したプレイ

ソーシャルメディア上での楽曲に関係した複数の情報に対して

リスト群の情報を用いて，一つのプレイリストの一部の楽曲をハイパーグラフを適用することで，その関係性を一つのグラフ

隠して楽曲のリストを与えたとき，推薦システムが隠された楽上で表現し，与えられた目標となる特徴に対して関係性の高い曲を予想する．

楽曲の推薦を行っている．

これまでユーザが作成したプレイリストを基に楽曲の共起関以上のことから，楽曲の複数の関係情報に対してグラフモデ係を用いた相関ルールベースの手法や，プレイリストやアーティ

ルを適用し，楽曲の複数の要素を合わせたプレイリスト生成をストの類似度等を考慮した手法が提案されてきた [2] [8] [7] [3]．

行うことでよりユーザの嗜好に合ったプレイリストを生成出来

これらの手法はプレイリスト生成手法のベースラインとして提ると考えた．最終的に複数の要素を単一のグラフ上で表現し，案されており，プレイリスト生成に長時間を要する場合や高い

統一的なスコア計算式でプレイリスト生成を行うこと目的とし，推薦精度を実現できない場合が見られた．プレイリスト生成で

本稿では，二種類の楽曲の関係情報を別々のグラフとして表現

は，ユーザの要求に対して即座に楽曲の推薦を行う必要がある

し，そのグラフ上での楽曲のスコアを線形和を用いて統合する
ことで，生成したプレイリストの精度の向上を図ることが出来（注 1）：http://www.spotify.com（注 2）：http://last.fm

るのか検証を行う．

ベースラインとなる手法である [9]．

2. 関 連 研 究

Same artists - greatest hits(SAGH)

自動プレイリスト生成の手法の比較を行うための評価尺度でユーザの再生した楽曲のリスト h に含まれるアーティストのある Hit rates と，これまで提案されてきたプレイリスト生成

楽曲の内，人気の高い順番に楽曲を推薦する手法である．このの手法について述べる．

手法はすでにユーザが好むと判明しているアーティストの楽曲

2. 1 Hit ratesを推薦する手法であり，h に含まれるアーティスト以外の楽曲

自動プレイリスト生成に関するタスクの一つに，ユーザが生は推薦しないためセレンディピティが低くユーザの満足度を十成したプレイリストを用いたタスクである Hit rates [7] が存在

分に高められるとは限らない．しかし，これまでの実証研究にする．Hit rates では，対象となる楽曲数 n のプレイリストにおいてユーザからの推薦システムの信頼度を高められることがおいて，前から n − 1 の楽曲をクエリとして与えて，残りの一わかっている [9]．楽曲 t のスコアは以下の式 (2) で求まる．

つの楽曲を推定する．その際，推薦楽曲数は，平均的なプレイ

scoreSAGH (t, h) = counts(t) · 1h (a)リストの楽曲数 N とする．というのも，情報推薦において，実(2)

際にプレイリストに含まれる残りの一つの楽曲以外にも，ユー

ただし，1h (a) はアーティスト a の楽曲が h の中に存在すれば

ザが好む楽曲が存在する可能性もあるため，それら楽曲の推薦

1 となり，存在しなければ 0 となる関数である．counts(t) は訓を許容するためである．

練データでの楽曲 t の出現回数を表す．

Hit rates は，インターネットラジオ等の音楽サービスにおいCollocated artists - greatest hits(CAGH)て，ユーザが聴きたい楽曲を並べた楽曲の再生リストから，そこの手法は SAGH を拡張した手法である．与えられた楽曲のリストを再生した後に再生するのに適した楽曲を推薦する場のリスト h に出てくるアーティストだけでなく，これらのアー合を想定している．ユーザが生成した再生リストは，その時のティストと類似度の高いアーティストの楽曲も考慮する手法で気分や特定の目標に合わせて生成されると考えられ，再生リスある [2]．一つのプレイリストに含まれる複数のアーティスト間

トを基にその特性に合致した楽曲を推薦する必要がある．このには何かしらの関連性を持つという仮定の下，ユーザのプレイ

様な状況を再現し，検証することは難しく，代わりにプレイリ

リスト群のアーティストの楽曲の共起度からアーティストの類

ストを用いて評価を行っている．プレイリストが特定の目標に似度を算出している．アーティスト a と b の類似度は訓練デー

合わせて生成される点を考慮すれば，再生リストから続きの曲

タを用いて以下の式 (3) で計算される．

を予想するタスクの代わりとしてプレイリストを利用すること∑は可能である．以上の考えから Hit rates でのタスクは十分に

sima (a, b) = √∑妥当性があると考えられる．

p (1p (a) · 1p (b))

p 1p (a) ·∑(3)p 1p (b)

具体的な Hit rates の計算はまず，プレイリスト群を訓練デー

ただし，1p (a) はプレイリスト p に中にアーティスト a が出現

タ T rain とテストデータ T est に分ける．テストデータの各プ

すれば 1，しなければ 0 となる関数である．類似度はプレイリ

レイリストをユーザの再生した楽曲のリスト h と，正解楽曲 tr

ストでのアーティスト同士の共起の回数に基づき，スコア計算に分け，h をプレイリスト生成アルゴリズムに与え生成されたの際は計算を高速化するために事前に計算しておく．楽曲 t の推薦リストの中に tr が含まれれば正解とし，その正解数を数

アーティストを a とするとスコアは以下の式 (4) で求まる．

える．計算式は式 (1) に示す．

HitRate(T rain, T est) =1||T est||∑scoreCAGH (t, h) =1R(h) (tr ) (1)(h,tr )∈T est∑

sima (a, b) · counts(t)

(4)

b∈Ah

ただし，Ah は h の楽曲のアーティストの集合である．

ここで，R(h) は訓練データに基づいてプレイリスト生成手法

2. 2. 2 頻出パターンが生成する楽曲のリストである．そのリストの長さは予め設定

プレイリスト中の楽曲同士の頻出パターンに着目した手法にされるものとする．||T est|| はテストデータに含まれるプレイついて述べる．

リストの数を返す．1R(h) (tr ) は楽曲 tr が推薦リスト R(h) にAssociation Rules(AR)含まれれば 1 を返し，含まれなければ 0 を返す．本稿では推薦

Association Rule(相関ルール) はある事象 A の下で事象 B

リスト R(h) の長さを 10，50，100 と設定し評価を行っている．

が発生する関係を表し，A ⇒ B という形で表現される．A を

2. 2 既存のプレイリスト生成手法

前提部，B を結論部と呼ぶ．楽曲のリスト h を与え，h の楽曲

2. 2. 1 人気度ベース

から前提部を複数生成する．h に含まれる楽曲を t1 , t2 , ...ti と楽曲の人気度としてプレイリストでの出現回数を用いること表すと (t1 ), (t1 , t2 ), (t2 ), (t2 , t3 ), ...(ti−1 , ti ) という組合せが生で，楽曲のリリース年やジャンル等の情報から得られない人気成される．そして推薦候補となる楽曲 t を結論部としたときの度に基づいた推薦を行う推薦アルゴリズムである．

確信度の総和を楽曲 t のスコアとする [2]．スコアの計算式は式

PopRank(5) に示す．

楽曲を訓練データでの出現回数順に並べた推薦アルゴリズムである．ユーザの嗜好は考慮しておらず，プレイリスト生成のscoreAR (t, h) =∑ω∈Ωconf idence(ω → t)

(5)

ただし，Ω は h の中で考えられる全ての前提部となり得る組合

は楽曲の要素間の関係性をグラフで表現し，それぞれのグラフ

せの集合である．組合せの生成と確信度の計算はアプリオリアで求めた楽曲のスコアを線形和で統合することで，複数の要素

ルゴリズム [1] で行われ，一つの相関ルール (ω → t) に含まれる間の関係を捉えたグラフモデルを生成することが可能か検証を要素のサイズ n と相関ルールの集合のサイズ w の最大値を設定行う．

することで効率良くスコアが計算される．しかしながら，組合

グラフモデルでの楽曲の要素として，楽曲における基本的なせの集合の上限値 w を設定するため，スコア計算では h 中の全情報である楽曲とアーティストを用い，これらのプレイリストての楽曲の組合せを考慮する訳ではない．conf idence(ω → t)

内での共起関係をグラフで表現する．楽曲の共起関係を用いたは相関ルール ω → t の確信度を表す．

プレイリスト生成手法として AR が存在するが，相関ルールをSequential Pattern(SP)用いたこの手法は，全ての与えられた楽曲リストの楽曲間の共Sequential Pattern(系列パターン) は相関ルールの組合せに起関係を考慮しておらず，二曲間だけでなく，場合によっては順序関係を持たせ，パターンとし，その分析を行う手法であ三曲間の楽曲の共起関係まで取り入れてスコア計算を行っている [2]．与えられた楽曲のリスト h に含まれる楽曲を t1 , t2 , ...tiる．より多くの楽曲間の共起関係を考慮しているため，推薦精と表すと < t1 >, < t1 , t2 >, ... < ti−1 , ti > というパターンを度は高まると考えられるが，スコア計算に用いられる楽曲は全前提部とし，結論部を楽曲 t としたときの確信度の総和を楽曲ての共起する楽曲を取り入れられていないという欠点がある．

t のスコアとする．スコアの計算式は式 (6) に示す．

そこで，グラフ上で楽曲間の共起関係を表すことで，楽曲のリscoreSP (t, h) =∑conf idence(ω → t)

ストを与えた際，そのリスト内に含まれる楽曲と共起する楽曲

(6)

ω∈Ω

を全て取り入れたプレイリスト生成を行うことが出来る．
楽曲の共起関係だけでは，ユーザのアーティストへの嗜好情

2. 2. 3 近 傍 推 薦

kNN プレイリストの類似度を用いて k 最近傍法を実行する手法である [7]．楽曲のリスト h とプレイリスト p の類似度
は式 (7) で計算される．

報は含まれていないため，楽曲とアーティストの関係を表現したグラフを考える．楽曲とアーティスト間の関係を取り入れた手法として，楽曲リストのアーティストの楽曲を推薦する手法である SAGH が提案されている．SAGH では楽曲を出現回数||h ∩ p||sim(h，p) = √||h||||p||(7)

順にソートしているため，一つのアーティスト内での楽曲の人気度の違いといった点を考慮出来ていない．そこで，グラフ

Nh 個の最近傍のプレイリストが与えられたとき，楽曲 t のスを用いて楽曲とアーティスト間の出現回数を表現することで，アーティスト内での楽曲の価値を計算でき，その価値に基づいコアは式 (8) で求まる．

∑

scorekN N (t, h) =たスコア計算を行うことが出来る様になる．

simp (h, n) · 1n (t)

(8)

n∈Nh

本節では，以上のことを踏まえ，表現するグラフの内容と推薦する楽曲のスコア付けの方法について説明する．以降の記述

ただし，1n (t) はプレイリスト n が楽曲 t を含むならば 1，含ま

では楽曲の出現回数や共起回数は全て訓練データのプレイリス

なければ 0 を返す関数である．文献 [7] において kNN の k のト群を使って計算することとする．

値は k = 10 と設定されているが, 文献 [8] において k = 300 を提案手法は以下の要素を用いてスコア付けを行う．

設定することで優れた結果が得られると報告されている. 本稿(1) 楽曲間のグラフにおける楽曲リストの楽曲と共起する楽曲においても k = 300 として検証を行う．

との共起回数 (楽曲スコア)

2. 3 既存手法のまとめ(2) 楽曲とアーティスト間のグラフにおける楽曲リストに含ま本節で挙げたプレイリスト生成手法は楽曲，アーティスト，

れるアーティストの楽曲の出現回数 (アーティストスコア)

プレイリストの共起関係や類似度，人気度を考慮した手法と

3. 1，3. 2 節でそれぞれの詳細について述べる．

なっている．また，これらの手法は，楽曲間の共起関係やアー

3. 1 楽曲スコア

ティストの類似度など一つの要素や関係情報のみを考慮したプ

楽曲間のグラフを用いて，与えられた楽曲リストの楽曲と共レイリスト生成の手法である．文献 [8] で複数の要素のスコア

起する楽曲との共起回数を用いた楽曲のスコア計算の方法を提を統合している様に一つの軸で楽曲のスコア付けを行うのでは案する．

なく複数の要素を合わせたスコア付けの方法を行うことでより精度を高められると考えられる．

3. 提 案 手 法

初 め に ，楽 曲 を ノ ー ド と し ，訓 練 デ ー タ の プ レ イ リ ス
ト 内 で 共 起 す る 楽 曲 同 士 を エッジ で 結 ん だ 楽 曲 同 士 の 共
起 を 表 す グ ラ フ を 考 え る ．例 え ば 三 つ の プ レ イ リ ス ト(a, b, c), (a, b, c, d), (a, b, d, e) の場合，図 1 にこれらのプレイ

楽曲の複数の要素を一つのグラフ上で表現し，全ての要素をリストに含まれる楽曲のグラフを示す．楽曲間のエッジの値は取り入れた単一のスコア計算を行える様にすることは，これら共起回数を表す．楽曲 a とグラフ上で隣接する楽曲 t の共起の要素間の関係性を捉え，適切なモデル化を行う上で大切であ

回数を cooc(a, t) とし，楽曲 a の訓練データのプレイリスト内る．しかしながら，楽曲間やタグ間といった要素の関係性を捉での出現回数 counts(a) とすると cooc(a, b) = 3, cooc(a, c) =えたモデルを生成することは容易ではない．このため，本稿で2, cooc(a, d) = 2, cooc(a, e) = 1．counts(a) = 3 となる．楽曲

a

e
1
1

a

3

2

b

2

2

e

b

d

f

7

5
6

7

5

10

1

c

2

 = {(a,b,c),(a,b,c,d),(a,b,d,e)}counts(a) = 3
cooc(a,b) = 3,cooc(a,c) = 2,cooc(a,d) = 2,cooc(a,e) = 1
total_cooc(a) = 8cAr)st Alistcounts(A) = 10
occur(A,a) = 5,occur(A,b) = 6,occur(A,c) = 10,occur(A,d) = 5,
occur(A,e) = 7,occur(A,f) = 7
total_occur(A) = 40
図2

図1

d

1

アーティスト-楽曲グラフ

楽曲間の関係グラフ

補正が対応する．

a が楽曲 b, c, d, e と共起しているので，楽曲 a の共起回数の総和 total cooc(a) は total cooc(a) = 3 + 2 + 2 + 1 = 8 となる．
与えられた楽曲リストに楽曲 a が含まれたとし，楽曲 a にグ
ラフ上で隣接する楽曲 t の楽曲スコアの計算式の詳細を式 (9)に示し，その計算方法について述べる．

cooc(a, t)
max counts
scoret (a, t) =· log (
+ 1) (9)total cooc(a)counts(a)与えられた楽曲のリスト h と楽曲 t を与えたときのその楽曲

t の楽曲スコア scoretrack (h, t) は式 (10) で計算される．
∑
scoretrack (t, h) =scoret (a, t)
(10)
a∈h

3. 2 アーティストスコア
楽曲の共起関係だけではユーザのアーティスト嗜好情報を考慮できないため，楽曲とアーティストの関係グラフを用いて，

ただし，max counts は訓練データのプレイリストにおける楽与えられた楽曲リストに含まれるユーザが好むアーティストの曲の最大の出現回数とする．

楽曲に対するスコア付けの手法を提案する．

楽曲 a とグラフ上で隣接する全ての楽曲との共起回数の総和

図 2 にアーティスト A の楽曲のグラフを示す．アーティス

に対して楽曲 a とグラフ上で隣接するそれぞれの楽曲が占める

ト A と各楽曲ノードのエッジはその楽曲の出現回数を表す．

共起回数の割合を計算し，その値をその楽曲の価値すなわちスユーザが再生した楽曲リストに含まれるアーティスト A の各楽

cooc(a,t)コアとする．式 (9) 内の totalの部分でこの計算を行っ
cooc(a)曲の出現回数 occur(A, t) は occur(A, a) = 5, occur(A, b) =ている．この価値は共起回数の値が大きければ大きいほど，再6, occur(A, c)

び共起する可能性が高く，その可能性の高さを示している．楽7, occur(A, f ) = 7 である．全ての楽曲のプレイリスト内での曲 a の共起回数の総和は total cooc(a) = 8 であるから，楽曲出現回数の総和を total occur(A) とすると total occur(A) =cooc(a,b)
cooc(a,c)b, c, d, e のスコアはそれぞれ total= 3/8, total=cooc(a)cooc(a)5 + 6 + 10 + 5 + 7 + 7 = 40 である．

=

10, occur(A, d)=5, occur(A, e)=cooc(a,d)cooc(a,e)
2/8 = 1/4, total= 2/8 = 1/4, total= 1/8 となcooc(a)cooc(a)

ユーザの再生した楽曲リストに含まれるアーティスト A の楽る．ここで，楽曲 a のプレイリスト全体での出現回数でなく楽曲のスコアとして，アーティスト A の楽曲のプレイリスト全曲の共起回数の総和を用いて楽曲の価値を計算しているのは，体での出現回数の総和に対するそれぞれの楽曲の占める割合を共起回数の総和が高い楽曲は単に人気の楽曲ということである

計算することを考えた．出現回数が高ければその楽曲の人気がが，これでは頻繁に出現する楽曲と共起する楽曲が高く評価さ高いということであり，その楽曲の価値が高いことを示してい

れすぎてしまうため，「共起しやすい」という情報を利用するたる．また，ユーザの再生した楽曲リスト内には複数のアーティ

めには，楽曲の共起回数に応じて共起する楽曲の価値を正規化

ストが存在するが，それぞれのアーティストの持つ価値は全てする必要があるからである．

等しい訳ではない．このためアーティストの出現回数に応じて次に，与えられた楽曲リストの楽曲のプレイリスト全体で適切な値を与える必要がある．さらに，プレイリストに出現すの出現回数に応じたスコアの補正を加える．これは頻繁に出る数が多いアーティストの評価が高くなり過ぎないようにする

現する楽曲の価値が高く評価されることを避けるためであために補正を加える．これは頻繁に出現するアーティストの価る．そこで楽曲 a のスコアの補正を，訓練データのプレイリ値というのは下がると考えられるからである．アーティスト A

ストにおける楽曲の最大の出現回数を max counts とするとの出現するプレイリスト数を listcounts(A) とし，アーティス

countslog ( max+ 1) を掛けることで行うものとした．
counts(a)トの出現するプレイリストの数の最大値を max listcounts とこれらのスコアの計算方法は情報検索における TF-IDF の計算に相当し，単語の出現頻度を表す TF は楽曲 a の共起回数の総和に占める楽曲 t の共起回数の割合が対応し，逆文書頻度を表す IDF はスコアに対して加える楽曲 a の共起回数に応じたlistcounts
すると，アーティスト A の楽曲には log ( max+ 1) を
listcounts(A)掛けて補正を行う．
アーティスト A に含まれる楽曲 t のアーティストスコア

scorea は式 (11) で計算される．

表 1 データセット詳細の中で既に出現しているかどうかの割合である．Aotm は一つ

Last.fm

Aotm

30musicのプレイリストに含まれるアーティストの数にばらつきが見らPlaylists

2978

1040

8750

れること，Last.fm は一つのプレイリスト内に同じアーティス

Users

451

142

1141

Avg. Playlists/User

6.60

7.32

7.67

Tracks

18081

11411

71472

Avg. Tracks/Playlist

11.70

16.99

12.52

があることも分かる．

Artists

3272

2770

17335

4. 2 評 価 尺 度

Avg. Artists/Playlist

4.55

12.76

8.61

推薦リストに正解データが含まれているのかの精度を検証す

Avg. Artist Usage

10.65

6.38

6.32

るために Hit rates を用いた．また，推薦精度だけでなく，スArtist reuse rate

65.28%

26.63%

40.07%

コアで順位付けされた推薦リストの順位付けも比較をするため

トの楽曲が複数含まれる傾向にあることが観測できる．また，これらの三つのデータセットの Artist reuse rate の値には開きに MRR(mean reciprocal rank) を用いた．MRR の詳細につscorea (A, t) =occur(A, t)
max listcounts· log (
+ 1)
total occur(A)listcounts(A)(11)

ユーザが再生した楽曲のリスト h と楽曲 t を与えたときのその楽曲 t の楽曲スコア scoreartist (h, t) は式 (12) で計算される．

scoreartist (t, h) = scorea (A, t) · 1h (A)(12)

いて述べる．

4. 2. 1 MRR(mean reciprocal rank)
MRR は推薦されたリストの正解楽曲の順位付けを比較する
ために評価尺度である [12]．一つのプレイリストをユーザの再生した楽曲のリスト h と，正解楽曲 tr に分け，リスト h から
推薦リスト R(h) を生成するとする．reciprocal rank (RR) は推薦リスト R(h) に正解データ tr が含まれた場合，R(h) での

3. 3 スコアの統合

tr の順位の逆数を返す．詳細は式 (14) に示す．
{

3. 1 と 3. 2 により推薦候補の楽曲のスコアが求まった．これらのスコアはそれぞれ異なる方法で計算されたものであRR(h, tr ) =るため，正規化を行いスコアの線形和を用いてスコアを統

0(1R(h) (tr ) = 0)1
ranktr(1R(h) (tr ) = 1)

(14)

合することとする．事前に重み付けの値の検証を行った結ここで ranktr は推薦リスト R(h) における楽曲 tr の順位を表

果楽曲スコアに対して 0.55，アーティストスコアに対してす．reciprocal rank を用いた MRR は式 (15) で計算される．

0.45 の重みを掛けて線形和を求めるものとする．ユーザが再生した楽曲リスト h を与えたときの楽曲 t の楽曲スコアを

M RR(T rain, T est) =1||T est||scoretrack (h, t)，アーティストスコアを scoreartist (h, t) とし，全ての楽曲 t での scoretrack (h, t)，scoreartist (h, t) の最大値をそれぞれ max scoretrack , max scoreartist とすると最終的なスコアは式 (13) で求まる．

score(t, h) =scoretrack (t, h)scoreartist (t, h)∗ 0.55 +∗ 0.45max scoretrack
max scoreartist(13)∑

RR(tr , h) (15)(h,tr )∈T est

4. 3 実 験 結 果
楽曲の共起関係に基づく相関ルールを用いた AR 及び系列パ
ターンを用いた SP のパターンの要素数 n とパターン数 w の上限値はそれぞれ n = 3，w = 100 とし，四分割交差検定で実験を行った．提案手法を Proposed method とし，スコア統合前の scoretrack ，scoreartist での結果も掲載する．一番精度の高4. 実 験 内 容

かった手法を太字で表している．各データセットの左側が Hit

用意した三つのデータセットを用いて推薦する楽曲のリスト

る．符号検定を行い p 値が 0.05 未満であった手法に*を付けての長さを 10,50,100 件として検証を行う．さらに，各手法の実いる．三つのデータセットで検証を行った際の推薦リストの長行時間を比較するために推薦する楽曲のリストの長さを 100 件

さ 10 曲における Hit rates，MRR の結果を表 2 に示す．

rates，右側が MRR(mean reciprocal rank) の結果を表していとしたときの処理時間も計測した．実験に使用する PC の仕様
は，CPU が AMD Phenom ii x6 1090T，メモリが 8GB である．本節ではデータセットの詳細と評価尺度，実験の結果について述べる．

同様にして推薦リストの長さ 50,100 曲での Hit rates，MRRの結果をそれぞれ表 3，表 4 に示す．
さらに，推薦リストの長さを 100 件とした場合の三つのデー
タセットでの実行時間を表 5 に示す．計測した時間はテスト

4. 1 データセット

データセットのプレイリストを与えた時点から全てのプレイリ

文献 [8] で紹介されている音楽プラットフォームの Last.fm とストデータに対してそれぞれ推薦リストを生成し，そのリスト

Art-of-the-Mix の二つのデータセットと文献 [11] で紹介されて内に正解楽曲が含まれているか判別を行った時点までの合計時いる Last.fm の web api を用いて収集したプレイリストのデー間とし，四回テストデータを与えたときの平均処理時間を指す．

タセットを使用する．データセットの詳細は表 1 に示す．Avg.

それぞれのデータセットにおいて，一つのテストデータに含まArtist Usage は全てのプレイリストの中でそれぞれのアーティ

れるプレイリストの数は Last.fm が 451 件，Aotm が 142 件，

ストが出現する回数の平均を示している．Artist reuse rate は30music が 1458 件である．

プレイリストの最後の楽曲のアーティストがそのプレイリスト

以上の結果から提案手法は Aotm のデータセットでのみ MRR

表5

表 2 推薦リスト 10 曲での推薦精度

precision@10(Hit rates | MRR)
Algorithm

Last.fm

Aotm

30music

実行時間結果単位:秒 (s)Algorithm

Last.fm Aotm 30music

PopRank

0.030

0.010

0.099

SAGH

0.034

0.030

0.205

PopRank

0.005

0.001

0.009

0.003

0.004

0.001

CAGH

27.1

6.29

531.5

SAGH

0.208

0.098

0.032

0.013

0.090

0.045

kNN

203.9

115.2

830.0

CAGH

0.125

0.044

0.032

0.007

0.072

0.028

AR(n=2,w=10)

2.94

0.627

7.43

kNN

0.236

0.143

0.058

0.039

0.078

0.039

SP(n=2,w=10)

2.46

0.380

4.37

AR

0.232

0.154

0.060

0.038

0.073

0.037

AR(n=3,w=100)

13.8

0.746

8.52

SP

0.202

0.135

0.063

0.042

0.058

0.028

SP(n=3,w=100)

14.6

0.506

5.55

Proposed method 0.256* 0.155 0.067

0.041

0.091 0.047

Proposed method

0.482

0.226

1.70

scoretrack

0.234

0.151

0.056

0.037

0.070

0.034

scoreartist

0.212

0.100

0.037

0.013

0.085

0.041

ストに出現するアーティストの楽曲のみを考慮する SAGH とscoreartist の結果を比較すると，30music の MRR の結果を除

表 3 推薦リスト 50 曲での推薦精度

き scoreartist は SAGH よりも精度が向上している事がわかる．
precision@50(Hit rates | MRR)
Algorithm

Last.fm

Aotm

さらに，Last.fm と Aotm では scoretrack が提案手法のスコア

30musicに貢献しているが，30music では逆に scoreartist が提案手法の

PopRank

0.018

0.001

0.025

0.004

0.009

0.001

SAGH

0.295

0.098

0.062

0.015

0.146

0.048

CAGH

0.277

0.044

0.083

0.010

0.140

0.032

kNN

0.308

0.147

0.083

0.041

0.117

0.041 いる．

AR

0.302

0.157

0.086

0.038

0.114

0.039

SP

0.279

0.138

0.076

0.042

0.091

0.030

Proposed method 0.339* 0.160 0.095 0.042 0.151 0.050
scoretrack

0.310

0.155

0.083

0.039

0.111

scoreartist

0.304

0.105

0.063

0.015

0.148

表4

スコアに貢献していることが表 3，4 からわかる．提案手法は，
この二つのスコアの特性を上手く組合わせていることを示して

5. ま と め与えられたユーザが再生した楽曲リストの情報からそのユー

0.036 ザが再生した楽曲リストの次に来る楽曲を予想するという問
0.044

題において，これまでプレイリストやアーティストの類似度を使った手法，楽曲の共起関係を用いた手法が提案されてきた．

推薦リスト 100 曲での推薦精度

しかし，これら手法は楽曲の一つの要素を用いたプレイリスト
precision@100(Hit rates | MRR)
Algorithm

Last.fm

Aotm

生成の手法となっており，楽曲の持つ複数の要素を統合した推30music

薦は行えていなかった．楽曲の複数の要素を統合した推薦を行PopRank

0.027

0.002

0.048

0.004

0.016

SAGH

0.315

0.103

0.074

0.015

0.168

0.002 うために，グラフモデルを用いたプレイリスト生成手法を行う
0.048

CAGH

0.329

0.052

0.114

0.010

0.170

0.032

kNN

0.328

0.147

0.100

0.041

0.129

0.041

AR

0.323

0.158

0.093

0.040

0.129

0.039

SP

0.303

0.139

0.085

0.042

0.102

0.030

ことが有用と考えられる．本稿では，楽曲の複数の要素に対してグラフモデルを適用し，それらのグラフ上でのスコアを線形和を用いて統合する手法を提案することで，複数の要素を合わせたグラフモデルを用いたプレイリスト生成が可能かどうか検Proposed method 0.365* 0.160 0.120 0.042 0.178 0.050 証を行った．提案手法は，既存の手法と比べて推薦精度においscoretrack

0.329

0.155

0.095

0.039

0.128

0.037 ては全てのデータセットで優位性を示すことができた．

scoreartist

0.321

0.105

0.072

0.015

0.170

0.044

今後の課題は，線形和を用いずに二つのグラフを統合したス
コア付けの方法を提案することや，今回提案した手法はユーザにおいて SP と同等あるいは若干劣るがそれ以外の結果では精情報を考慮していないため，ユーザの嗜好情報を取り入た推薦

度で優る結果となった．特に Last.fm のデータセットでは提案

手法の提案が挙げられる．また，アーティストのジャンルなど

手法の Hit rates の精度は常に他の手法の結果を大きく上回るの追加的な情報を組み合わせることでより精度を高められると結果となっていることがわかる．また，提案手法の実行速度は考えられ，それらの情報を組み込むことも必要である．

楽曲リストに出現するアーティストの楽曲をスコア付けする

謝

辞SAGH に次ぐ速さであり，グラフを用いたことで高速なスコア計算を行えている．相関ルールを用いた AR と楽曲の共起関Last.fm 及び Aotm のデータセットを提供して頂いたドルト係のスコアを計算する scoretrack の結果を比較すると AR の

ムント工科大学の Dietmar Jannach 博士と Iman Kamehkhosh方が優位であると言える．これは相関ルールの方が三つの楽曲

博士に心より感謝申し上げます．

の共起関係を取り入れており，より強力な共起関係を考慮して本研究の一部は，科研費基盤研究 (B)(課題番号:15H02701)，

いるからと考えられる．一方で，scoretrack は，表 5 から AR

基盤研究 (B)(課題番号:26280115) の支援による．ここに記しに比べて処理時間を短縮できるというメリットが有る．楽曲リて謝意を表す．

文

献[1] Rakesh Agrawal, Ramakrishnan Srikant, et al. Fast algorithms for mining association rules. In Proc. 20th int. conf.
very large data bases, VLDB, Vol. 1215, pp. 487–499, 1994.
[2] Geoﬀray Bonnin and Dietmar Jannach. A comparison ofplaylist generation strategies for music recommendation anda new baseline scheme. In Workshops at the TwentySeventh AAAI Conference on Artificial Intelligence, 2013.
[3] Geoﬀray Bonnin and Dietmar Jannach. Evaluating thequality of playlists based on hand-crafted samples. In 14th
International Society for Music Information Retrieval Conference, pp. 263–268, 2013.
[4] Geoﬀray Bonnin and Dietmar Jannach. Automated generation of music playlists: Survey and experiments. ACM
Computing Surveys (CSUR), Vol. 47, No. 2, p. 26, 2014.
[5] Jiajun Bu, Shulong Tan, Chun Chen, Can Wang, Hao Wu,
Lijun Zhang, and Xiaofei He. Music recommendation by
unified hypergraph: combining social media informationand music content. In Proceedings of the international conference on Multimedia, pp. 391–400. ACM, 2010.
[6] Ziyu Guan, Jiajun Bu, Qiaozhu Mei, Chun Chen, and Can
Wang. Personalized tag recommendation using graph-basedranking on multi-type interrelated objects. In Proceedingsof the 32nd international ACM SIGIR conference on Research and development in information retrieval, pp. 540–
547. ACM, 2009.
[7] Negar Hariri, Bamshad Mobasher, and Robin Burke.
Context-aware music recommendation based on latenttopic
sequential patterns. In Proceedings of the sixth ACM conference on Recommender systems, pp. 131–138. ACM, 2012.
[8] Dietmar Jannach, Lukas Lerche, and Iman Kamehkhosh.
Beyond hitting the hits: Generating coherent music playlist
continuations with the right tracks. In Proceedings of the
9th ACM Conference on Recommender Systems, pp. 187–
194. ACM, 2015.
[9] Brian McFee, Thierry Bertin-Mahieux, Daniel PW Ellis,
and Gert RG Lanckriet. The million song dataset challenge. In Proceedings of the 21st international conferencecompanion on World Wide Web, pp. 909–916. ACM, 2012.
[10] Brian McFee and Gert RG Lanckriet. Hypergraph modelsof playlist dialects. In ISMIR, pp. 343–348. Citeseer, 2012.
[11] Roberto Turrin, Massimo Quadrana, Andrea Condorelli,
Roberto Pagano, and Paolo Cremonesi. 30music listening
and playlists dataset. 2015.
[12] Ellen M Voorhees, et al. The trec-8 question answering track
report. In TREC, Vol. 99, pp. 77–82, 1999.