1 简介
随着万维网的发展,数百万的免费在线音乐使人们很难手动的找到他们喜欢的歌曲。推荐系统提供了广泛适用的的解决信息过载问题的方案,并且可以自动的帮助人们决定听什么。
当前的音乐推荐技术主要分为两个类别:基于内容的过滤[1]和协同过滤[2]。基于内容的过滤技术通过元数据分析用户或项目之间的相似性,例如用户简档和 音乐声学特征。相比之下,协同过滤技术通过用户的过去行为来分析用户或项目 之间的相似性,而不需要领域知识。潜在因素模型如矩阵因子分解(MF)和邻域 模型是协同过滤中的典型方法。他们通过分析用户的歌单历史来发现用户和项目 之间的关系。此外,还有其他新技术,如 LDA 方法[3]和基于图的模型[4]。
虽然传统的推荐系统可以有效地预测用户喜欢的歌曲,但是他们几乎不能做出可理解的解释,为什么他们做这些推荐,并且难以回答用户喜欢或者不喜欢哪种类型的音乐的问题。
在本文中,提出了一个个性化标签模型用于音乐推荐。音乐的元数据被替换为社交标签来表示歌曲。在这里,社交标签是由互联网用户在平台上生成的关键词,它们用于描述和分类对象,概念或想法。由于它们最初是由用户自己创建的, 它们为用户包含有意义的概念。此外,歌曲的热门标签产生自用户在该平台上表示喜欢的受欢迎的标签,这使得他们可以代表对歌曲的社交意见。与音频特征(例如音调和节奏)相比,社交标签可以更好地对资源进行分类和标记,并且可以使推荐者更容易理解。此外,在每个用户的角度通过隐式反馈进行统计分析,对标签加权以构建他的个性化标签模型。在 LastFm 数据集上,实验表明,所提出的方法在评级和排名预测方面都优于传统的基于内容的方法。
本文的其余部分安排如下。第 2 节介绍了与本文有关的先前工作。然后,所
提出的方法的细节在第 3 节中提出。在第 4 节,讨论实验,其次是结论和未来的
工作将在第 5 节给出。
2 相关工作
在本节中,介绍了与基于标签的音乐推荐系统相关的一些研究工作。
最近的研究论文应用于基于标签的音乐推荐的方法可以分为两类。一种方式是使用标签数据作为内容信息来计算用户或项目相似性。例如,Bosteels et al.
[5]使用社交热门标签来计算收听的歌曲和候选歌曲之间的相似性值,然后使用那些值作为模糊关系度来比较一些不同的启发式算法的性能。与使用基于音频的相似性的[6]中的方法相比,它可以降低预测失败率。所提出的方法和[5]的主要区别在于标签的权重在[5]中是相等的,但是在所提出的方法中,标签根据它们在收集的标签中的频率被分配不同的权重。 Kim [7]根据 SentiWordNet [8]判断的标签的情绪强度给标签分配权重,然后生成加权标签的用户配置文件,并执行基于用户的协同过滤算法。在[7]中的主要障碍是稀疏性问题,因为每个用户给歌曲的标记的标签非常少。
另一种方式是利用标签数据来构建推荐模型。例如,Zhang et al。 [9]提出了一个随机游走模型,它基于 Page Rank 算法,在用户-项目,用户-标签和项目-标签二分图中的随机游走。此外,它还利用标签信息基于概率方法构建项目图和用户图。通过在三元交互图上应用随机行为来捕获用户和项目之间的传递性关联,稀疏性问题已经得到缓解,但是它在构建图形和搜索时带来了巨大的时间消耗。 Hariri et al.[10]提出了一个 LDA 模型来预测下一首歌曲包含什么主题。在该论文中,标签数据用于建立主题模型。每首歌曲都表示为一组主题。通过将当前主题序列与历史重复主题序列模式匹配,找到下一个主题。然后推荐包含这些主题的歌曲。主要问题是推荐者的性能依赖于 LDA 主题的数量,使得不同的设置导致不同的重复序列模式并影响推荐性能。 Taramigkou et al. [3]也使用
LDA 模型,区别是标签是用户分配的艺术家标签。然后,构建用户图并且使用由
LDA 模型为每个用户生成的主题向量之间的余弦相似性来分配边的权重。最后,
Dijkstra 算法[11]被用作图搜索方法来推荐艺术家的名单。但是所有这些提到的模型没有做好解释为什么歌曲是推荐,并回答用户为什么喜欢或不喜欢的问题。在这篇文章中,这些加权标签直接用于形成用户的个人资料。标签具有越大的权 重,用户越喜欢这个标签,反之亦然。
3 提出方法
给出包含先前由用户收听的歌曲的历史日志,可以通过分析这些日志来建立每个用户的音乐品味。本文使用社交标签网站来检索每首歌曲的热门标签,并使用这些标签作为特征来建立用户的个性化标签模型。然后,对于给定的用户,将推荐与他/她的标签模型接近匹配的歌曲的列表。
本节首先介绍用户从 LastFm 网站的收听日志的格式,以及为每个条目捕获额外信息的方法。然后这些配套的日志用于分析用户的行为。最后,提出了用于音乐推荐的个性化标签模型。
3.1 获取额外信息
日志格式化为每行一个条目,如下所示:userid \ timestamp \ music- brainz-artist-id \ artist-name \ musicbrainz-track-id \ track-name。时间 戳 是 用 户 开 始 这 个 轨 道 的 时 刻 。 musicbrainz-artist-id 和musicbrainz-track-id 是 MusciBrainz 标识符(MBID),1 MBID 是一个 36 个字符的通用唯一标识符,永久分配给 MusicBrainz 数据库中的每个实体。例如,艺术家 Adele 具有艺术家 MBID 为 cc2c9c3c-b7bc-4b8b-84d8-4fbd8779e493,她的歌曲“Best for Last”的记录 MBID 为 84c00aff-b2cf-4bf7-a2e3-9460820efb03。
MuisicBrainz 的目的是通过提供可靠和明确的音乐识别形式,成为音乐的通用语言。因此,如果 logs'multi-entries 具有相同的 musicbrainz-track-id,则意味着它们是相同的轨道对象,并且不同的 musicbrainz-track-id 意味着不同的轨道对象。
具有这些 musicbrainz-track-id,可以通过使用由 LastFm API 提供的名为
track.getinfo 的方法获得用户的历史日志中的每个轨道的持续时间和 top5 标签。这些额外的信息非常重要,它将与原始日志结合以分析用户的行为,并在以下部分建立每个用户的个性化标签
3.2 用户行为分析
为了捕获用户的音乐偏好,有必要通过查看日志内部来找到隐式反馈。所提 出的方法基于一个简单的假设,如果用户不断重复一首歌则表示喜欢,并且用户 几次跳过一首歌表示不喜欢。虽然一次跳过难以推断不喜欢,但你多次跳过同一 首歌可能就推断出你不喜欢。本小节的主要目的是提出找出这种行为的关键方法。
假设你听这样的歌曲:有这样的按钮,可以用来控制音乐播放器“播放下一个”,“回放”,当你播放一首歌曲时在日志记录时间戳和它的 mbid。开始时,你听了两首歌,在这段时间你没有按任何按钮。然后,你听了第三个,但在中途你按下“播放下一个”按钮,因为你觉得不喜欢。之后,你完全听完第四个,发现这首歌很适合你,所以你按下“回放”按钮,以便重新听,听完两次后,你关闭播放器。在这个过程中,五个条目写入日志,可以简单地格式化如下:
会话 1 = {⟨t1,m1⟩,⟨t2,m2⟩,⟨t3,m3⟩,⟨t4,m4⟩,⟨t5,m4⟩}。一个元组代表一个条目,符号在表 1 中定义。所有元组按时间顺序排列。我们需要做的是在这个会话中找出“播放下一个”,“回放”动作。提出了一种算法:
1. 步骤 1,计算播放的每首歌曲的长度。由于时间戳是开始时刻,因此 p1 = t2-t1;
2. 步骤 2,比较长度和歌曲的持续时间。如果您按下“播放下一个”,则长度<持续时间,在此会话中 p3 <d3;
3. 步骤 3,比较相邻歌曲的 mbid,如果你重新听一首歌,则相邻的歌曲 mbid 是相同的。算法 1 显示了分析整个日志的详细信息。
用户行为的格式化描述如下所示:
1. 洗牌,这意味着在一个会话中用户 u 刚刚播放了歌曲一次。它对应于“无”,并被标记为“正常”
2. 跳过,这意味着在一个会话中用户 u 跳过歌曲i。它对应于“播放下一个”,并被标记为“跳过”。
3. 重复,这意味着在一个会话中用户 u 连续播放曲目i。 它对应于“回放”,并标记为“重复”
这项工作常用的符号显示在表 1 中。两个主要功能是长度计算所听到的日志中的每个条目,以及查找重复行为的方法。 它们定义如下:
在算法 1 中,第 6-9 行的目的是计算每首歌曲的长度。 第 13-14 行的目的
是找到重复行为,并标记为“重复”。 第 15-16 行的目的是找到跳过行为,并标
记为“跳过”。 第 17-18 行的目的是找到洗牌行为,并标记为“正常”。 第 23 行的目的是将这些标记添加到用户的原始数据集中。
3.3 提出模型
正如在 3.1 节中提到的,热门标签的额外信息将用于提出的模型中。 选择这些标签的原因是它们不仅描述歌曲的各种特征,例如类型,艺术家姓名和时代, 而且还描述用户对歌曲的态度,例如悲伤,醇厚等。 虽然人们对歌曲可能有不同的意见,但是频率高于最小阈值的热门标签代表了关于每首歌曲的社交观点。这些特征通常可以非常有助于解释由用户选择的一组歌曲中的共同点。 表 2 示出了一组歌曲的顶部标签作为示例。
类似于“爵士”,时代如“90 年代”,艺术家喜欢“u2”,情绪喜欢“醇厚”可以在表 2 中找到。使用这些顶部标签,可以找到更多样化和更深入的因素, 更精确和可理解。
为了建立提出的模型,所有歌曲的热门标签分别收集在跳过集,重复集和正常集中。 在去掉相同的标签之后,根据频率将权重分配给它们。
标记用户 u 的跳过标签设置,重复标签设置和正常标签分别设置为 ULT,LT 和 NT,计算权重的函数是:
其中 fr(ti|ULT) 是用户 u 的跳过标签集中的标签 ti 的总频率。用于音乐推荐的个性化标签模型形式化如下:
T M odel(u) = α · score(u, U LT ) + β · score(u, LT ) + γ · score(u, N T ) . (6)
这里α,β,γ是独立的参数,用于控制不同标签在 ULT,LT 和 NT 中的权重,-1≤α<0; 0 <γ≤β≤1;表示 i 的热门标签集为 iT,则其预测分数为:
∑_(t_i∈{iT∩ULT})▒〖score(iT|u,ULT)〗是计算 iT 和 ULT 的标签的权重,我们把这个值看做是用户 u 对候选歌曲 i 的可能厌恶度。∑_(t_i∈{iT∩
LT})▒〖score(iT|u,LT)〗是用户 u 对候选歌曲 i 的可能喜爱度,∑_(t_i∈{iT
∩NT})▒〖score(iT|u,NT)〗是用户 u 既不喜欢也不厌恶歌曲 i。
在算法 2 中,第 3-5 行的目的是去除交叉中相同的标签。 第 7 行的目的是
为标签分配权重。 第 8 行的目的是建立用户的个性化标签模型。 基于用户的个性化标签模型,可以使用函数(7)来计算候选歌曲的预测得分。 歌曲的分数越高,用户越喜欢它,反之亦然。
4 实验
4.1 数据集
选择来自音乐建模数据集网站的公共数据集(Last.fm Dataset-1K users) 来评估本文提出的方法。 此数据集包含 2009 年 5 月,5 日至 2010 年 5 月期间的 992 个用户的整体收听习惯。 记录总数为 19,150,868。 每个条目包括“userid”,“timestamp”,“artid”,“artname”,“trackid”和“trackname”,并且有 961,416 个唯一的 trackid。
4.2 评价措施
为了评估所提出的模型,选择两种不同的评估度量。 一个是评级预测,另一个是传统的 top-K 推荐评估度量。 最近的每个用户记录的 1/11 条目被选为测试集,剩余的作为训练集。
该推荐器的第一任务是根据由 u 的个性化标签模型来预测 u 是否将重复/跳过/正常播放测试集中的歌曲 i。 然后计算它做了多少次正确的决定。 更结构化地,每个用户对应于(R,S,N,rr,ss,nn)元组,其中 R,S 和 N 是重复, 跳过和正常播放的集合。rr 代表这个重放的歌曲被预测为要重复播放,证明这是一个正确的判断,ss 和 nn 同上所述。重复歌曲的命中率 Hit(R)=(∑rr)/(∑
|R|),跳过歌曲的命中率 Hit(S)=(∑ss)/(∑|S|),和正常播放歌曲的命中率Hit(N)=( ∑ nn)/( ∑ |N|), 还 有所 有的 命中 率 Hit=( ∑ (rr+ss+nn))/( ∑
|R|+|S|+|N|).
我们的推荐系统的第二任务是根据预测的分数对测试集中的歌曲进行排名, 然后向用户推荐顶 K 歌曲。 我们计算 top-K 的精度和召回率
建议如下:
其中 Rk(u)是为用户 u 设置的推荐歌曲,T(u)是用户 u 的接受歌曲集合。并计算 F1 特征值如下:
4.3 性能比较
在本节中,提出的模型和模糊理论方法[5]进行比较,以评估加权标签与未加权标签相比是否可以提高推荐系统的性能。 当用户听不到其中的 50%时,轨迹被视为跳过。对于收听会话分段,如果用户的相邻歌曲之间的不活动间隔小于
1 小时,则让歌曲在同一会话中,这引用 Xiang et al.[12]。 通过实验确定α, β,γ等参数。 在这个实验中,我们设置α= 1,β= -1,γ= 0.5
第一个任务结果。在得到歌曲 i 的预测分数之后,做出如下判断:1)如果
r ui < - | threshold |,则歌曲 i 将被跳过。 2)如果 r ui> | threshold |, 则歌曲 i 将被重复。 3)歌曲我将正常播放,如果 - |阈值| ≤rui≤| threshold
|。通过步骤 0.05 将阈值从 0 改变为 1。在模糊理论方法中,跳跃命中率为 8.5%, 总命中率为 94.78%。
图 1 示出了针对不同阈值的所提出的模型的命中率。可以发现,随着阈值的较大值,Hit(R)和 Hit(S)都减小,并且 Hit(N)和整体 Hit 都增加。这些现象的原因是阈值将用户偏差空间分为三个区域。阈值越大,正常区域越大,重复区域和跳过区域越小。当阈值为 0.25 时,总命中率的最佳性能为 91.73%, 同时正常命中率为 99.9%,跳过命中率为 9.02%,重复命中率为 1.91%。
与模糊理论方法相比,所提出的方法在跳跃命中率上有显着的改进。它比模糊模型(8.5%)有 6.12%的增益,虽然总体命中率略有下降 3.22%。它表明拟议的模型可以更好地识别用户不同。
第二任务结果。本节比较了提出的模型和模糊理论方法。结果如图 1 所示。这里,水平轴表示不同的推荐数量,三个垂直轴分别代表召回率,精度和 F1 度量的值。从图 2,可以观察到所提出的模型在精度,回忆和 F1 测度方面优于模糊理论方法。具体来说,提出的模型比模糊方法的平均精度提高了 1.68%。并且它的回忆率平均提高了 0.748%,F1 测度的平均提高比模糊法的 0.751%。
5 结论
本文提出一种简单有效的个性化标签模型来挖掘用户的音乐偏见。由于加权标签,它可以解释什么用户喜欢或不可理解,因为标签具有越大的权重,用户越喜欢它,反之亦然。在 LastFm 数据集上进行的实验表明,个性化标签模型在回忆,精度和 F1 测度方面优于传统的基于内容的模型,并且在检测跳过行为方面有很大的改进。在未来,我们计划考虑时间来构建动态个性化标签模型。