2021-11-15 09:11

An Improved Content-Based Music Recommending Method with Weighted Tags

Lu Ding, Ning Zheng, Jiang Xu, and Ming Xu

College of Computer, Hangzhou Dianzi University 318818 Hangzhou, China

1 Introduction

Along with the development of World Wide Web, millions of free online music makes it hard for people to find out what they like manually. The recommender systems provide a widely adopted solution to the information overload problem, and can automatically help people to decide what to listen.

The current music recommendation technologies mainly fall into two categories: content-based filtering [1] and collaborative filtering [2]. Content-based filtering technology analyzes the similarity between users or items by the meta-data, such as user profiles and music acoustic features. In contrast, collaborative filtering technology analyzes the similarity between users or items by usersrsquo; past behaviors, no requiring domain knowledge. The Latent factor models like matrix factorization (MF) and the neighborhood model are typical approaches in collaborative filtering. They found the relationships between users and items by analyzing usersrsquo; listening histories. Besides, there are other new techniques, such as LDA methods [3] and graph-based models [4].

Though the traditional recommenders can effectively predict which song a user likes, they can hardly make an understandable explanation why they do these recommends, and difficultly answer the question of what kind music a user likes or unlike

In this paper, a personalized tag model was proposed for music recommendation. The musicrsquo;s metadata was replaced with the social tags to represent songs. Here, the social tags are keywords generated by internet users on a platform and they are used to describe and categorize an object, concept or idea. As they are originally created by usersrsquo; own way, they contain meaningful concepts to users. Furthermore, a songrsquo;s top tags are the most popular ones which are attached by the users on this platform, so that they can stand for the social opinion to songs. Comparing with the audio features, such as pitch and tempo, social tags can better classify and label resource, besides they can make the recommender more understandable. Moreover, the tags were weighted on the perspective of statistic analysis of each userrsquo;s implicit feedbacks to build each userrsquo;s personalized tag model. On the LastFm dataset, experiments demonstrate that the proposed method can outperform the traditional content-based method in both rating and ranking prediction. The remainder of this paper is organized as follows. Section 2 introduces prior work related to this paper. Then the details of the proposed method are presented in Section 3. In Section 4, experiments are discussed, followed by conclusion and future work in Secti on 5.

2 Related Work

In this section, some of research works related to tag-based music recommender systems are presented. The methods which recent research papers apply in tag-based music recommendation can be classified into two categories. One way is to use tag data as content information to compute users or items similarity. For examples, Bosteels et al. [5] used social top tags to calculate similarity values between listened songs and candidate songs, and then used those values as the fuzzy relationship degrees to compare performance of some different heuristics. It can reduce the predicting failure rate comparing with the method in [6], which used the audio-based similarity. The main difference between the proposed method and [5] is that the tagsrsquo; weights were equal in [5] but in the proposed method tags were assigned with different weights according to their frequency in the collected tags. Kim [7] assigned weight to tags according to the intensity of tagrsquo;s emotion which was judged by the SentiWordNet [8], after then, user profiles using the weighted tags were generated and a user-based collaborative filtering algorithm was executed. The main barrier in [7] is the sparsity problem as the tags each user assigned to a song are very poor. The other way is to make use of the tag data to build recommend models. For example, Zhang et al. [9] proposed a random walk model, which was based on Page Rank liked random walks among the user-item, user-tag and item-tag bipartite graphs. Besides, it also made use of the tag information to build item graphs and user graphs based on a probabilistic method.

As it applied random walks on ternary interaction graphs to capture transitive associations between users and items, the sparsity problem had been alleviated but it brought the huge time consumption on building graphs and searching. Hariri et al. [10] proposed a LDA model to predict what topics next song contains. In that paper, the tag data was used to establish the topic modeling module. Each song was represented as a set of topics. By matching the current topic sequence with history frequent topic sequential pattern, the next topics were found. Then songs which contain these topics were recommended. The main problem is that the recommenderrsquo;s performance relies on the number of LDA topics, so that different settings result in different frequent sequential patterns and affect the recommendation performance. Taramigkou et al. [3] also used the LDA model, the difference is the tags are artistsrsquo; tags which are assigned by users.

Then a users graph was build and the weights of edges were assigned using the cosine similarity between topic vectors generated for each user by LDA model. Finally, the Dijkstra algorithm [11] was used as a graph search approach to recommend a list of artists. But all these mentioned models didnrsquo;t do a good job of explaining why the song is recommended, and answering the question what users like or unlike. In this paper, those weighted tags are straightly used to form usersrsquo; profiles. The greater weight the tag has, the more a user like the t


Lu Ding, Ning Zheng, Jiang Xu, and Ming Xu

计算机学院,杭州电子大学 318818 杭州,中国

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#39;multi-entries 具有相同的 musicbrainz-track-id,则意味着它们是相同的轨道对象,并且不同的 musicbrainz-track-id 意味着不同的轨道对象。具有这些 musicbrainz-track-id,可以通过使用由 LastFm API 提供的名为 track.getinfo 的方法获得用户的历史日志中的每个轨道的持续时间和 top5 标签。这些额外的信息非常重要,它将与原始日志结合以分析用户的行为,并在以下部分建立每个用户的个性化标签

3.2 用户行为分析

为了捕获用户的音乐偏好,有必要通过查看日志内部来找到隐式反馈。所提 出的方法基于一个简单的假设,如果用户不断重复一首歌则表示喜欢,并且用户 几次跳过一首歌表示不喜欢。虽然一次跳过难以推断不喜欢,但你多次跳过同一 首歌可能就推断出你不喜欢。本小节的主要目的是提出找出这种行为的关键方法。

假设你听这样的歌曲:有这样的按钮,可以用来控制音乐播放器“播放下一 个”,“回放”,当你播放一首歌曲时在日志记录时间戳和它的 mbid。开始时,你听了两首歌,在这段时间你没有按任何按钮。然后,你听了第三个,但在中途你按下“播放下一个”按钮,因为你觉得不喜欢。之后,你完全听完第四个,发现这首歌很适合你,所以你按下“回放”按钮,以便重新听,听完两次后,你关闭播放器。在这个过程中,五个条目写入日志,可以简单地格式化如下:会话 1 = {lang;t1,m1rang;,lang;t2,m2rang;,lang;t3,m3rang;,lang;t4,m4rang;,lang;t5,m4rang;}。一个元组代表一个条目,符号在表 1 中定义。所有元组按时间顺序排列。我们需要做的是在这个会话中找出“播放下一个”,“回放”动作。提出了一种算法:

1.步骤 1,计算播放的每首歌曲的长度。由于时间戳是开始时刻,因此 p1 =t2-t1;

2.步骤 2,比较长度和歌曲的持续时间。如果您按下“播放下一个”,则长度lt;持续时间,在此会话中 p3 lt;d3;

3.步骤 3,比较相邻歌曲的 mbid,如果你重新听一首歌,则相邻的歌曲 mbid是相同的。算法 1 显示了分析整个日志的详细信息。


1.洗牌,这意味着在一个会话中用户 u 刚刚播放了歌曲一次。它对应于“无”,并被标记为“正常”

2.跳过,这意味着在一个会话中用户 u 跳过歌曲 i。它对应于“播放下一个”,

3. 重复,这意味着在一个会话中用户 u 连续播放曲目 i。它对应于“回放”,并标记为“重复”这项工作常用的符号显示在表 1 中。两个主要功能是长度计算所听到的日志中的每个条目,以及查找重复行为的方法。 它们定义如下:

表1 常用符号





















在算法 1 中,第 6-9 行的目的是计算每首歌曲的长度。 第 13-14 行的目的是找到重复行为,并标记为“重复”。 第 15-16 行的目的是找到跳过行为,并标记为“跳过”。 第 17-18 行的目的是找到洗牌行为,并标记为“正常”。 第 23行的目的是将这些标记添加到用户的原始数据集中。

3.3 提出模型

正如在 3.1 节中提到的,热门标签的额外信息将用于提出的模型中。 选择这些标签的原因是它们不仅描述歌曲的各种特征,例如类型,艺术家姓名和时代,而且还描述用户对歌曲的态度,例如悲伤,醇厚等。 虽然人们对歌曲可能有不同的意见,但是频率高于最小阈值的热门标签代表了关于每首歌曲的社交观点。这些特征通常可以非常有助于解释由用户选择的一组歌曲中的共同点。 表 2 示出了一组歌曲的顶部标签作为示例。

表2 歌曲的顶级标签




Valerie Etienne

The Birds Sing



If God Will Send His Angels



Lost Cause



Show Me Forgiveness


类似于“爵士”,时代如“90 年代”,艺术家喜欢“u2”,情绪喜欢“醇厚”可以在表 2 中找到。使用这些顶部标签,可以找到更多样化和更深入的因素,更精确和可理解。为了建立提出的模型,所有歌曲的热门标签分别收集在跳过集,重复集和正常集中。 在去掉相同的标签之后,根据频率将权重分配给它们。标记用户 u 的跳过标签设置,重复标签设置和正常标签分别设置为 ULT,LT和 NT,计算权重的函数是:其中 fr(ti|ULT) 是用户 u 的跳过标签集中的标签 ti 的总频率。


T M odel(u) = alpha; · score(u, U LT ) beta; · score(u, LT ) gamma; · score(u,N T ) . (6)

这里alpha;,beta;,gamma;是独立的参数,用于控制不同标签在 ULT,LT 和 NT 中的权重,-1le;alpha;lt;0; 0 lt;gamma;le;beta;le;1;表示 i 的热门标签集为 iT,则其预测分数为:

sum;_(t_iisin;{iTcap;ULT})▒〖score(iT|u,ULT)〗是计算 iT 和 ULT 的标签的权重,我们把这个值看做是用户 u 对候选歌曲 i 的可能厌恶度。sum;_(t_iisin;{iTcap;LT})▒〖score(iT|u,LT)〗是用户 u 对候选歌曲 i 的可能喜爱度,sum;_(t_iisin;{iTcap;NT})▒〖score(iT|u,NT)〗是用户 u 既不喜欢也不厌恶歌曲 i。

在算法 2 中,第

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付