美文网首页工业推荐系统产品经理
网易云音乐推荐算法分析

网易云音乐推荐算法分析

作者: 南樱小欣 | 来源:发表于2019-03-30 19:29 被阅读0次

    近年来,网易云音乐作为一匹黑马迅速在移动音乐app占据市场,2016年用户量就突破了2亿,而这与它优质的推荐系统必不可分。

    当今,在这个信息爆炸的时代,我们可以接触到庞大浩瀚的网络资源,极大地便利了我们的生活。但是,通常情况下,用户不清楚自己的需求,不能归纳自己的兴趣爱好。而网易云音乐认识到了这个用户痛点,帮助用户发现自身的兴趣偏好,实现了智能个性化推荐,成为现代很多人们日常生活不可缺少的精神伴侣。

    下面我将从网易云音乐的推荐分析、推荐算法分析、以及对推荐模块的建议三个部分展开论述。

    一. 网易云音乐推荐分析

    1. 各推荐模块介绍

     (1)私人FM: 私人FM采集用户收藏歌单数据,收集用户听歌口味,以单曲形式推荐给用户。用户在界面左/右滑可以切换歌曲,左下角有垃圾桶标志,可删除当前歌曲让其不再出现在私人FM和每日推荐中。

    (2)每日推荐:根据用户收藏歌单和播放的音乐大数据预测用户喜爱的音乐类型,并于每日凌晨6点推荐20首歌。

    (3)推荐歌单:通过采集用户收藏歌单等用户偏好行为,每日推荐六个歌单。

    (4)推荐视频:系统记忆用户点开的视频类型,并向用户推荐相似类型的视频。

    2. 网易云音乐做四种推荐的原因分析

    原因1:留住新用户

    每日推荐时采集的用户收藏歌单和听歌记录记录,但是在新用户刚使用该网站时,系统并没有他的行为数据;系统获取该用户的音乐偏好资源不够,预测准确率低。

     而私人FM成为一种很好的补充,增加了删除键,便于系统采集用户的音乐偏好。它改善了数据稀疏导致的冷启动,从而提高用户成为长期客户的可能性。

    原因二:体验感由浅入深

    每日推荐于每日六点向用户推送20首歌曲,让用户尊享一种音乐VIP定制的感觉。但是用户在听完这每日推荐后,还想有更多的音乐体验,这时候推荐歌单、私人FM,视频推荐就可以提高用户体验感。

    原因三:扩大覆盖人群

    相对于每日推荐,私人FM,视频推荐,推荐歌单里推出的是网易云音乐系统内的音乐制作人,DJ,或大部分的听歌用户的自建音乐单,极大地调动了用户创作歌单的积极性。

    更重要的是,用户看到自己喜欢的歌单,可以关注建立歌单的用户,关注他的动态,这建立了一个良好的社交氛围网络,从而也会吸引其他未入驻用户加入该社交网络。

    二. 推荐算法分析

    推荐主要是基于用户过去的兴趣和行为对用户提供有价值的信息

    根据系统日志可以提取的特征主要包括以下三类:用户的特征、歌曲的特征、用户对歌曲的行为特征。

    (1)用户的特征:用户的性别、用户的年龄、用户地理位置等;

    (2)歌曲的特征:歌曲和它对应的推荐源歌曲的热度值、语种、流派、年代、主题、场景等;

    (3)行为特征:歌曲对应的歌手(语种、流派、年代、主题、场景)被切歌、垃圾桶、完整听歌、收藏占比,歌曲对应的推荐源歌曲操作类型(收藏、下载、分享、完整听歌、设置背景音乐、识曲、搜索、购买),用户收听该歌曲的时间等。

    网易云音乐的推荐模块流程如下

    目前流行的音乐推荐算法主要分为协同过滤推荐算法,基于内容的推荐算法,混合推荐算法。随着AI技术的发展,深度神经网络的应用也对音乐推荐做出了巨大贡献,从而创造更精确的推送。

    1. 协同过滤推荐算法

    基于协同过滤推荐算法分为基于用户的协同过滤基于商品的协同过滤。对应为俗话说的“人以群分”,“物以聚类”[1][2]

    (1)基于用户的协同过滤:

    当用户A需要个性化音乐推荐时,系统帮他找到和他有相似兴趣的用户群集合M,和该用户群喜欢的音乐集合N;之后系统会预测目标用户A对音乐集合N的评分,然后对音乐集合N按评分由高到低的顺序推荐给目标用户A。这就是基于用户的协同过滤。

    举例:用户A喜欢歌曲a,歌曲c, 歌曲d。目标用户C喜欢歌曲a,歌曲c。即用户A、C可能有相同音乐偏好。所以系统把歌曲d推荐给用户C。

    基于用户的协同过滤可分为两个步骤:

    (1)计算出系统中与该用户具有相似音乐偏好的用户群

    (2)得到相似偏好的用户群后,从中筛选出K个兴趣相近用户,将这些用户所喜欢的物品推荐给目标用户。

    \bullet 计算相似用户群

    用下面jaccard表达式计算相似度。分子代表用户u和用户v同时喜欢的歌曲,分母代表用户u和用户v喜欢的歌曲集合,

                                              I=\frac{M\cap{N}}{M\cup{N}}

    用户A用户C喜欢的歌曲有2首重合,他们喜欢歌曲的并集为3。则用户A用户C的相似度为I_{AC}=\frac{2}{3} \approx 0.67

    用户A用户B喜欢的歌曲有1首重合,他们喜欢歌曲的并集为3。则用户A用户B的相似度为I_{AB}=\frac{1}{3} =0.33

    \bullet 根据相似用户群推荐音乐

    得出目标用户最相似的用户群后,计算用户u对音乐i的喜欢程度(即评分)。

                                        p(u,i)=\sum\nolimits{I_{uv}r_{vi}}

    比如,假设目标用户有6个维度,0代表没听过,1~5代表喜欢程度(1是不喜欢,2是一般,3是喜欢,4是较喜欢,5是特别喜欢)

    假设用户A对于歌曲d的喜欢程度是4; 用户C对于歌曲b的喜欢程度是4

    根据上式可分别计算出

                                             p(C,d)=I_{CA} r_{Ad}=\frac{2}{3}\times4 \approx 2.67

                                              p(C,b)=I_{CB} r_{Bd}=\frac{1}{2}\times4 = 2

    则用户C对音乐d的兴趣值(得分)为2.67,对用户b的兴趣值为2。实际推荐系统中,往往按照喜欢程度得分进行排序,取靠前的音乐给用户推荐。

    举例:

    (2)基于商品(音乐)的协同过滤

    根据所有用户对音乐的偏好,计算系统中任意两个音乐间的相似度,然后根据用户的历史偏好物品列表,将列表中物品相似度较高的物品推荐给目标用户。

    举例:假设用户A喜欢歌曲a,b,c;用户B喜欢a,c,d.可以看出喜欢了歌曲a的用户都喜欢了歌曲c,则分析得出歌曲a和c比较相似。系统发现用户C喜欢了歌曲a,则可以把歌曲a的相似歌曲c推荐给用户C。

    基于音乐的协同过滤可分为两个步骤:

    (1)计算音乐间的相似度

    (2)结合用户的历史行为按照物品相似度排序推荐给目标用户

    \bullet 计算音乐间的相似度

    jaccard表达式计算相似度I。M代表喜欢歌曲M的用户个数;N代表喜欢歌曲N的用户个数;{M}\cap{N}代表同时喜欢歌曲M歌曲N的用户个数。M\cup{N}代表喜欢歌曲M和歌曲N的用户总和。

                       I=\frac{M\cap{N}}{M\cup{N}}

    上图中,同时喜欢歌曲a歌曲c的有2个,喜欢歌曲a或歌曲c的总人数有3个。则

    歌曲a和歌曲c的相似度为I_{ac}=\frac{2}{3} \approx 0.67

    \bullet 根据音乐间的相似度推荐音乐

    计算出音乐间的相似度后,可通过下式计算用户u对一个音乐i的兴趣值

                         p(u,i)=\sum\nolimits{I_{uv}r_{vi}}

    假设用户C对于歌曲a的喜爱程度为5

    用户C对歌曲c的兴趣值为p(C,c)=0.67\times5=3.35

    则用户C对歌曲c的兴趣值(得分)为3.35。实际推荐系统中,往往按照喜欢程度得分进行排序,取靠前的音乐给用户推荐。

    举例:

    2. 基于内容的推荐算法

    基于内容的推荐算法是提取新物品的特征加以推荐,不存在新物品的冷启动

    利用用户的听歌历史,获取用户的音乐偏好信息,推荐的是和用户之前听的相似度很高的歌[2]。

    举例:用户A喜欢歌曲a(特征:华语、摇滚) ;用户B喜欢歌曲b(特征:欧美、爵士)。当一个新的歌曲c提取到的特征是(欧美、爵士),由歌曲c和用户B的高匹配度可以将歌曲c推荐给用户B。

    基于内容的推荐算法需要以下三个步骤:
    (1)提取音乐的特征:如提取用户A听过的歌曲a的特征:华语、摇滚

    (2)构建用户画像模型:根据用户的操作历史,分析用户喜欢的音乐特征,再根据这些音乐类型特征构建用户画像模型

    (3)计算用户画像模型和音乐特征之间的相似度,按照相似度排序对目标用户推荐音乐

    3. 混合推荐算法

    利用加权混合将不同的推荐算法和影响因素进行加权求和,实现更细致的挖掘用户与喜好音乐之间的关系,从而提升推荐精准度[3]。

    λ指不同的权重系数,s_{n}(u,i) 代表不同的推荐算法,e_{k}代表其他对用户听歌偏好影响的因素(如:用户所处天气、地理位置、时间)。

    4. 基于深度神经网络的推荐算

    现今人工智能技术逐渐成熟,比如深度神经网络技术在计算机视觉,人脸识别中发挥出色,可以将其应用到音乐推荐上来。下面介绍一种利用深度神经网络(DNN)进行通过切歌率预测用户对歌曲的喜爱程度,可以提高推荐预测的正确率[3]。

    这项切歌行为的纳入,可以作为一个另一个指标考核,可以帮助用户规避一些用户会切歌的歌曲,从而提高用户体验。

    神经网络模型分为输入层,隐藏层,输出层。数据集(包括系统日志提取的特征,切歌与否各自对应的向量)分为训练集和测试集。令切歌行为是向量(0,1),不切歌行为是向量(1,0)。

    DNN网络训练和预测数据的全过程分为以下三个步骤

    (1) 数据预处理

    对于此深度神经网络的输入层,首先对训练集进行以下处理:归一化预处理,独热编码,分箱处理(将一个特征按照一定规则划分为多个子区间,例如对不同的年龄段进行自定义区间划分),组合特征(将不同的年龄段、音乐流派进行组合),数据清洗(根据推送历史剔除由挂机行为导致没有切歌的歌曲)。

    (2)训练网络

    之后,选定激活函数,网络层数,各层神经元数,权重值等。输入层的神经元等于输入特征的维数,输出层设置两个神经元(对应两种情况:切歌和不切歌)。

    将处理过的训练数据输入该模型,会预测得到一个二维向量y’(例如向量(0,1),表示用户切换了歌曲)。再将它与切歌行为的真实值y求差,通过反向传播算法将差值传回整个DNN网络。以最小化误差为目的,整个神经网络的权重值,激励函数会更新、调整并最终确定.

    (3)预测用户对某歌曲的喜欢概率

    最后,向该训练好的网络输入测试集,可预测用户对某歌曲的喜欢概率,从而预测出用户对某首歌是否会切歌的行为。

    三.对网易云音乐推荐功能的建议

    1. 根据用户的听歌偏好和当时所处的情境进行歌曲推荐。在推荐音乐中,考虑不同时间,不同天气,不同地理位置的因素;

    2.像在第二部分提到的,利用神经网络实现对用户切歌率的预测,对现有预测算法进行补充;

    3. 在移动客户端增添人脸识别功能,利用识别表情,推测出用户当前心情,再根据心情向用户推荐合适的歌曲,是一个提高用户新鲜感和体验感的好方法。

    改进后的网易云音乐推荐流程模块如下图

    参考文献:

    [1] Z. Hyung, J. S. Park, and K. Lee, “Utilizing context-relevant keywords extracted from a large collection of user-generated documents for music discovery,” Info. Processing and Management, vol. 53, no. 5, pp. 1185-1200, 2017.

    [2] Nabizadeh A H, Yu Y, Yu Y. Predicting User Preference Based on Matrix Factorization by Exploiting Music Attributes[C]. International C* Conference on Computer Science & Software Engineering. ACM, 2016:61-66.

    [3]  邓腾飞. 个性化音乐推荐系统的研究[D]. 华南理工大学,2018.


    作者:张雨欣,西北工业大学大学研究生二年级在读。研究方向为:深度学习在无线通信中的应用

    本文由 @南樱小欣 原创发布于简书。未经许可,禁止转载。

    相关文章

      网友评论

        本文标题:网易云音乐推荐算法分析

        本文链接:https://www.haomeiwen.com/subject/dvysbqtx.html