(artist2vecの試み)

音楽聴き放題サービス AWA におけるレコメンド手法の検討
(artist2vec の試み)
Consideration of recommendation technique in our music listening
service ’AWA’
和田計也 1∗ 福田一郎 1
Kazuya WADA1 , and Ichiro Fukuda1
1
株式会社サイバーエージェント
1
CyberAgent, inc.
Abstract: We propose and evaluate a new recommendation method ’Artist2vec’ in our subscription type listening music service ’AWA’. This method led to have same precision as the conventional
method, but have better coverage.
1
はじめに
近年, 欧米を中心として Spotify や Last.fm, Pandora
等の音楽関連サービスがトレンドとなっていたが, 日本
でも 2015 年に入ってから AWA, LINE MUSIC, Apple
Music, Google Play Music が一斉にリリースされ大き
な話題となった.
どのサービスも楽曲やアーティストのレコメンド機
能の充実が大切である. 各サービスは 100 万∼3000 万
曲に及ぶ楽曲を有しており, その中からユーザの趣味嗜
好にあった楽曲を適切にレコメンドできないとユーザ
は大量の楽曲の海に溺れてしまい, サービスからの離脱
に繋がってしまうことは容易に想像できる. そのため
音楽サービス内のレコメンド改良に関する報告が活発
になされている. 例えば [1] では Last.fm のデータを活
用した Pandora でのレコメンド機能の改善を報告して
いる. また [2] ではユーザ行動を素性として楽曲レコメ
ンドに活用する例を報告している.
株式会社サイバーエージェント 1 とエイベックス・デ
ジタル株式会社 2 の共同出資会社である AWA 株式会
社が提供するサブスクリプション型音楽聴き放題サー
ビス,AWA3 (アワ)は,他サービスとの差別化のた
めプレイリストを全面に押し出したサービスとなって
おり, ユーザは自由に自分好みのプレイリストを作成・
公開することができる. また, 図 1 に示すように AWA
アプリケーション内の DISCOVERY と呼ばれるページ
∗ 連絡先:株式会社サイバーエージェント
東京都千代田区外神田 1 丁目 18 番 13 号秋葉原ダイビ
ル8階
wada [email protected]
1 https://www.cyberagent.co.jp/
2 http://www.avex.co.jp/
3 http://awa.fm/
には, そのユーザが過去に聴いてきたプレイリストの履
歴を基にしてユーザごとに異なる最適なプレイリスト
を最大で 30 件レコメンドして表示する機能がある. し
図 1: AWA DISCOVERY の一例
かし, レコメンドのマッチング精度を高めていくとユー
ザの趣味嗜好に合ったレコメンド結果は得られるのだ
が, 推薦の多様性が失われるという場合も考えられるだ
ろう.
そこで本研究の目的は,AWA 内で聴かれた楽曲の
アーティストを用いて精度を失うことなく多様性をも
有したレコメンド手法を提案・検証することである.本
研究では,レコメンドの精度と多様性とを両立できると
期待できる [3] が提案した word2vec を用いてオフライ
ンでの精度評価を行った結果を報告する.artist 名の集
合を vector 表現に変換して類似度計算を行うため, 便
宜上 Artist2vec と呼ぶこととする (図 2).word2vec は
元々wikipedia や twitter 等のテキストデータを扱う言
語モデル手法であるが, これを言語モデル以外の分野
にも適用する事例も報告されている. 例えば [4] では
e-mail 中に記載された商品情報を用いて, 購入する商
品をレコメンドに利用するため word2vec を適用させ
た prod2vec を提案をしている.
!"#$%! &'()*+,("!-$%#$%!
!"#$%! &'()*+,("!-$%#$%!
!"#$%&%'()!
!"#$%&%'*)!
!"#$%&%'()!
,-.!
!"#$%&%+*)!
!"#$%&%'*)!
!"#$%&%)!
ルを構築した. 図 3 の userA は 11 日間を通して「中川
翔子, ももいろクローバー z, ZONE」の順番で楽曲を
聴いたユーザということになる. このようにユーザ毎
に聴いた順番でアーティスト名の文字列が並ぶように
データ整形を行い, Python の gensim ライブラリ 4 の
word2vec 関数を用いることで artist2vec のモデルを構
築した. このようにすることでアーティスト名はベク
トルで表現できるようになるので, アーティスト名同士
の自由な演算が可能となる. そこで本研究では以下の 2
つの提案手法を提案した. いづれの提案手法において
もベクトル演算後の値と, 全アーティスト名のベクトル
表現値とのコサイン類似度を算出してその TopN(本研
究では N=10) をレコメンドとして利用する.
!"#$%&%+*)!
!"#$%&%)!
2.2.1
!"#$%&%+()!
./-0!
123#45'67!
図 2: Artist2vec で使われる CBOW と Skip-gram
の概念図
提案手法 1 は, 最後に聴かれたアーティスト名 + 最
後から 2 番目に聴かれたアーティスト名を入力として
artist2vec でコサイン類似度を算出し上位 10 件を得る
方法である.
2.2.2
手法と結果
2
2.1
データセット
本 研 究 で 用 い た デ ー タ は 以 下 の と お り で あ る.
サービス名
対象期間
分析ユーザ数
AWA
2015/8/1∼2015/8/10
100,000 人をサンプリング
30 秒以上ユーザに聴かれた
楽曲のアーティスト
対象アーティスト
ユーザによって作成された
対象プレイリスト
公開プレイリスト
11 日間のログデータから, 1 日以上ログインしていて
かつ 2 アーティスト以上の楽曲を 30 秒以上聴いたユー
ザをアクティブユーザとしてまずは抽出を行った. 抽
出されたアクティブユーザ集合の中で 5 人以下のユー
ザからしか聴かれなかったアーティストは対象外とし,
対象アーティストを聴いたユーザ 100,000 人をランダ
ムサンプリングして本研究に用いた.
2.2
提案手法 1
!"#$%&%+()!
推薦手法
ユーザ毎に 11 日間で実際に聴かれたアーティスト名
の順番で並び替えたデータを用いて artist2vec のモデ
提案手法 2
提案手法 2 は, 最後に聴かれたアーティスト名 + 最
後から 2 番目に聴かれたアーティスト名を入力とし
て artist2vec でコサイン類似度を算出し上位 5 件を得
た後に, 最後に聴かれたアーティスト名を入力として
artist2vec で類似度を算出し, 先ほど結果との OR をと
り上位 10 件を得る方法である.
2.3
評価方法
推薦からオフライン評価までの一連の流れを図 3 に
示す. Google BigQuery5 内に保存されているログデー
タから条件を満たすユーザを抽出して分析に必要な項
目を取得し整形した. 次にその整形データをユーザ単位
で train data と test data とに 4:1 の比率になるよう
に分割した. train data を入力として model を構築後,
test data を使って次に聴かれたアーティストの予測を
行い評価した. 予測精度の評価指標としては Average
Precision@10 を用いた (式 1). test data に含まれる
ユーザ u={1,2....U} それぞれが聴いたアーティスト名
を時系列順に持っている t={1,2....T}. この時系列順
に artist2vec でレコメンドアーティストの予測を行う.
P redn,t は t 番目に聴いたアーティストを入力として
artist2vec でコサイン類似度の類似度が高い topN を
算出した時の n 番目のアーティストである. これが
4 https://radimrehurek.com/gensim/
5 https://cloud.google.com/bigquery/
Artistt+1 と一致すればレコメンドが正しいとし, その
出現確率を AP@10 とした. また各ユーザ毎にレコメ
ンドされた平均ユニークアーティスト数を, レコメンド
におけるバリエーションの評価指標とした.
また、精度比較のベースライン手法としてはアイテ
ムベース強調フィルタリング [5] を用いた.
∑U
AveP @N =
∑T −1 ∑N
δ(t + 1, t, n)
number of listening musics
u=1
δ (m + 1, n) =
!"!"#$%&'()*
#"+,-.$*
%"+,-.&*
t=1
{
1
0
n=1
(1)
(Artistt+1 = P redn,t )
(otherwise)
!*
#$*
#&*
#'*
%$*
%&*
%'*
図 4: 提案手法 1, 2 の精度比較結果
!"#$
%&'&!
!"#$!
%&"'#(#)*+$,"'"!
!"#$-!
"#.$%&''()*+,-,/**/012!
JK! !"#$3!
!"#$6!
./&0.1%&23456789&45####1!
:;<=>?@ABCDE&FG.HI&0.1%!
LM!
'.&,-!
!"#$!
')/'!
%&"'#(#)*+$,"'"!
!"#$-! "#.$%&''()*+,-,/**/012!
!"#$!
%&"'#(#)*+$,"'"!
!"#$6! :;<=>?@ABCDE&*
FG.HI&0.1%!
!"#$3! ./&0.1%&23456789&45####1!
("%)!$
*+,!%,-#!
!"!"#$%&'()*
#"$%&'()*+,-$./012*
PQ!
3"$%&'()*+,-$./041*
5"$%&'()*+,-$./0*1*
!"#$6! 23456789&FG.HI&0.1%!
NO!
図 3: 推薦、評価の一連の流れ
!*
2.4
結果
artist2vec のパラメーター最適化はグリッドサーチに
よって AP@10 が最大となるように決定した. 提案手法
1 と提案手法 2 の精度比較においては, artist2vec での
表現層の数である size パラメータによらず (B1,C1 は
size=16, B2,C2 は size=64, B3,C3 は size=256) 提案手
法 1 より提案手法 2 のほうが精度が高い結果が得られ
た (図 4).
次に, artist2vec でのレコメンドを提案手法 2 に絞り,
前後いくつのアーティストを考慮してモデル化するか
という windows パラメータの精度比較を行った (B1,
C1, D1 は size=64, B2, C2, D2 は size=256) ところ,
windows パラメータは 5 が最も高い精度が得られた (図
5).
次に, 提案手法 2 に絞りかつ windows パラメータを 5
に固定して skip-gram と CBOW の精度比較を行った結
果を図 6 に示す. B1,C1 は size=64, B2,C2 は size=128,
B3,C3 は size=256 である. 表現層の数である size パラ
#4*
#**
34*
3**
54*
5**
図 5: windows parameter の精度比較結果
!"!"#$%&'()*
#"$%&'()*+,-$(.*
/"$%&'()*+,-$/#01*
!*
#2*
#**
#3*
/2*
/**
/3*
図 6: skip-gram と CBOW との精度比較結果
メータによらず, skip-gram で artist2vec モデルを構築
するよりも CBOW で artist2vec モデルを構築するほう
が全体的に精度が高い結果が得られた. また, CBOW
においては表現層の数 size パラメータは 64 が僅かで
はあるが最良の結果となった (図 6).
./012!
"#$%&'()*!
n%の向上が見られた. 精度に関しては大きな向上が得
られたとは言い難いが, バリエーション数の向上に寄
与できるのはサービスとしては大変意義がある結果と
なった. ユーザとしては精度の高いレコメンド結果が
望まれるとの同時に, 新たなアーティスト/楽曲との出
会いも望んでいるからである. 今後は本研究の成果を
AWA サービスの機能改善に役立てていきたい.
参考文献
[1] Negar H., Bamshad M., and Robin B.: Context-Aware
Music Recommendation Based on Latent Topic Sequential Patterns, RecSys’12, (2012)
[2] Ning-Han L., and Shu-Ju H.: Intelligent Music
Playlist Recommendation Based on User Daily Behavior and Music Content, Advances in Multimedia
Information Processing, Vol.5879, pp.671-683, (2009)
[3] Tomas M., Kai C., Greg C., and Jeffrey D.: Efficient
Estimation of Word Representations in Vector Space,
ICLR, (2013)
[4] Mihajlo G., Vladan R., Nemanja D., and Narayan B.:
E-commerce in Your Inbox: Product Recommendations at Scale, KDD’15, (2015)
%&'()*+,-!
!"#$!
%&'()*+,-!
!"#$!
図 7: artist2vec の精度とバリエーション数の結果
最後に, 今までのパラメータチューニングの結果得ら
れたパラメータセット (CBOW; windows=5, size=64)
と提案手法 2 を用いて精度評価とバリエーション数の
評価を test data セット中から 1,000 ユーザをランダム
サンプリングして行った (図 7). ベースライン手法であ
るアイテムベース協調フィルタリングでは AP@10 が
0.224 なのに対して, artist2vec では AP@10 が 0.241 と
1.7%の精度向上が見られた. バリエーション数に関し
てはベースライン手法であるアイテムベース協調フィ
ルタリングでは 1 ユーザあたりレコメンドされるアー
ティスト数が 37.2 なのに対して, artist2vec では 151.4
と約 4 倍の多様性を持ったレコメンド結果であった.
まとめ
音楽サービスにおいて聴かれたアーティスト名を入
力として word2vec を適用させる’Artist2vec’ を提案し
た. 従来手法としたアイテムベース強調フィルタリン
グに比べて AP@10 での精度比較で d%の向上が見られ,
レコメンドされるアーティストのバリエーション数は
[5] David G., David N., Brian M. O., and Douglas T.:
Using collaborative filtering to weave an information Tapestry, Communications of the ACM, Vol.35,
No.12, pp.61-70, (1992)