AI与产品| 网易云音乐中的歌曲推荐算法

1 评论 3933 浏览 28 收藏 14 分钟

编辑导语:推荐算法在产品设计中的应用十分广泛,能够很好的服务于产品和用户,进而提升产品的体验感。本篇文章作者分享了网易云音乐中的歌曲推荐算法,讲述了推荐算法在网易云音乐中的应用以及网易云音乐的精排模型等内容,感兴趣的一起来看一下吧。

网易云音乐是专注于发现与分享的音乐产品,依托专业的音乐人、好友推荐、算法推荐,以及社交功能,为用户打造全新的音乐生活方式。

网易云音乐的一个优点是有一个非常受用户喜爱的乐评社区,加深了人和人之间的联系,用户会经常分享与歌曲有关的想法,形成了一个比较温暖的社区。

网易云另一个备受用户好评的是云音乐精准推荐功能,它有很多推荐场景供用户进行选择,可以帮助用户快速发现更多更优质的歌曲。

接下来让我们一起来看看网易云音乐推荐算法是如何服务于网易云音乐的吧。

一、音乐推荐VS电商推荐

大家对电商推荐可能更加了解,所以我们先一起来看看音乐推荐和电商推荐有什么相同之处?又有哪些差异?

1. 音乐推荐和电商推荐这两种推荐系统的相同点

  • 都是帮助用户去更快速的获取他们想要的资源;
  • 都是以用户使用体验为导向。

2. 音乐推荐和电商推荐的不同点

  • 电商领域推荐的是商品,音乐领域推荐的是音乐。商品具有特定的功能和用途,所以对于用户来说,有一个确定的现实的作用。而对于音乐领域,不同用户对歌曲的理解可能是千差万别的,如何把握住用户对音乐的感受是需要去关注的。
  • 商品是不可重复消费的,而音乐是可以重复消费的。例如用户购买了一台电视机,可能在较长的一段时间之内,用户没有电视机的需求了。但是对于音乐来说,完全可以重复消费。比如一周之前听过的歌曲,可能今天还在听;甚至一个月之前一年前的那些老歌,都能拿来反复的进行播放。这一点就是非常大的不同。
  • 同时,消费一首歌曲的时间成本是远高于点击商品的。通过浏览商品的图片查看商品的标题,用户就能在短时间之内大致的了解到这些商品。但是歌曲就不一样,只有真正的去播放这首歌曲,甚至是需要播放到中间的副歌部分,才能真正感受到这首歌曲,对他的感觉,这就需要 1~2 分钟的消费时间。

二、网易云音乐推荐功能场景

在网易云音乐内有非常多形式的推荐场景,供用户自行选择,我们来看看以下三种主要的推荐场景。

  1. 每日推荐:以列表形式展示,该场景会比较关注用户长期的偏好,让用户每天在这个场景中获得他喜欢的歌曲。
  2. 私人FM:一种流式推荐方式,能根据用户实时播放行为去分析用户对之前对推荐歌曲的反馈,从而去影响后续要给他推荐的内容。对于那些想要寻找一些新奇新颖歌曲的用户,这种方式会是很不错的场景。
  3. 歌单推荐:同时对于歌单这种特有的播放形式,在首页和歌单广场上,也会进行丰富的推荐。

三、网易云音乐召回体系

召回是推荐系统的第一阶段,主要根据用户和商品部分特征,从海量的物品库里,快速找到用户潜在感兴趣的物品。

对于网易云音乐召回体系的建立,需要考虑两个问题。

  1. 用户的兴趣点在哪里能够体现出来?
  2. 用户的兴趣是单一不变的吗?

基于这两点,为大家介绍网易云音乐结合音乐相关知识的一些召回算法。

1. 实时兴趣向量建模

这个模型用于实现实时且高效的在线召唤,比如当用户实时点击并播放了一个国风歌单时,系统就能及时为该用户召回国风风格的歌曲。

  • 模型会将用户和歌曲映射到同一个低维度的向量空间中,计算用户和歌曲的相似值,取 top-k 作为最终的结果。
  • 模型还会使用self-attention 的网络结构来挖掘内部间的联系。在云音乐里面,歌曲经常是以列表形式播放的,所以更需要关注的是列表中歌曲之间的关系。
  • 另外模型会使用用户点击歌曲序列而不只是播放序列建模。经常有些用户会将音乐一直播放着,成为一种背景音乐的形式,或者像是商场之类的公共场所,会不停地循环播放。但是,如果用户有点击,说明当前点击的歌曲是在用户主动意识下的一个行为,提高了置信度。
  • 在模型中还可以对样本做一些处理。比如在用户侧引入非常丰富的用户画像信息,对于没有行为序列的用户,也可以触发这个召回模式,为这些用户召回歌曲。

2. 动态多兴趣建模

这个模型主要是针对口味丰富的用户,聚类出多个兴趣点,如一个人喜欢粤语歌曲、流行歌曲、古风歌曲等, 就需要从各点出发召回用户兴趣歌曲.

方法是将用户不同时刻的行为序列作为输入。因为用户听歌记录其实是多样丰富的。

比如说用户会在早上会听一些节奏比较欢快的歌曲,下午工作时可能会听一些舒缓的慢歌,周末可能会听一些摇滚的歌曲。

所以需要通过建模,把用户内部的多个兴趣点挖掘出来。

3. 音乐知识图谱

通过建立音乐知识图谱,可以得到不同实体之间一步、二步甚至多步的关系。

比如表面上看起来可能毫不相干的两个艺人,因为这两位艺人同时给同一个电视剧演唱的关系,就形成了一个关联关系。

方法是建立音乐数据中不同实体之间的关系。

用每一条知识表示成主谓宾的三元组,比如说”忘记时间属于专辑仙剑三”,”此生不换属于专辑仙剑三”,”胡歌演唱忘记时间”。然后,将这些知识表示建立起相关关系, 最后进行一步甚至多步的召回。比如当用户听了此生不换时,就可以给用户召回歌曲忘记时间甚至其他仙剑三的原声音乐或者胡歌演唱的其他歌曲。

4. 长短兴趣挖掘

用户的近期听歌记录对召回很有帮助,用户远期听歌记录亦然。用户的远期听歌记录,表示该用户过去的偏好,而音乐能一直给用户传递情感,故远期偏好也是值得关注的点。

所以需要对用户的长期兴趣和短期兴趣都进行挖掘。

方法是对用户行为序列根据时间节点进行长期和短期的划分,分别进行兴趣挖掘。

四、网易云音乐的精排模型

精排是推荐系统中的重要部分,一般在召回之后。它会将召回的结果进行排序,并选择topk的结果作为推荐的最终输出。

先简单介绍下用户在云音乐中的行为链路。我们以每日推荐场景来做具体的介绍。用户进入日推,首先歌曲会得到曝光。

用户可能会点击某些歌曲,也可能直接进行了播放。在播放的过程中或者结束时,用户会进行显隐式的反馈。

比如进行收藏行为或者是切歌的行为,甚至可以将歌曲标注为不感兴趣,当然也可以什么都不做,继续播放下一首。

在用户整个行为里面,可以看到收藏、点击、完整播放,这些 action 是属于用户正向的反馈;而曝光不播放或者是曝光时间非常短,不感兴趣的,都是一些负反馈。

对用户这些行为进行累积,我们可以对他之前的语种偏好、风格偏好、艺人、年代热度等等,进行重新调整,从而更好的进行下一次推荐。

1. 用户行为序列建模

这个建模的作用是在用户多样的兴趣点中,重点关注会影响到当次推荐的历史行为。

对用户行为使用attention 机制,attention 机制可以让模型更加关注到它认为有用的信息,着重的影响本次推荐的行为。对于歌曲画像,会包含歌曲的风格、语种、艺人信息、专辑信息等等。丰富的歌曲画像,可以让模型更好的关注到用户本次点击的兴趣点在哪里。

2. 用户兴趣演化模型

用户的兴趣是不断变化的,用户越新的行为,越能够反映用户当时的兴趣,对于推测之后的行为发挥的作用也是越大的, 而旧的行为发挥的作用就相对弱一些。

特别是在音乐中,外界的流行趋势会发生非常大的改变。可能在几年内,甚至是几个月内流行的方向,就发生一次非常大的改变。

方法是在模型中,要考虑捕捉用户兴趣的演化路线。可以使用用户实时的完整播放序列进行建模,模型除了使用attention机制外,还加入ARGRU网络结构,这样既可以保留原先的注意力机制,又能捕获用户歌曲兴趣发展的路径。

3. 基于会话的多行为域模型

对于用户行为,不只有歌曲播放的行为,还有各种其他的行为。我们观察播放的整个详情页,里面有很多的控件,比如收藏按钮,表示用户将歌曲加入红心收藏歌单中,这是用户非常强烈的行为。

同样下载歌曲或者分享,都是明显的正向行为。用户的评论信息也很重要, 如果用户对这首歌曲标了不感兴趣,甚至是拉黑了歌曲或者艺人,那么这就是显著的负向行为。

还有比较隐蔽的负向行为,就是用户在播放的过程中进行切割操作,这是一个没有消费完全的状态,对用户来说是不好的体验。

方法是不仅使用用户完整的播放歌曲序列建模,还要加入红星收藏序列和跳过序列。对于评论信息,要具体分析评论的内容,利用 NLP 技术进行情感分析,去判断用户真正情感。

通过对用户行为的不断扩充,把用户正向和负向的行为,进行完整的刻画。

五、音乐推荐场景AI思考

音乐是反映人类现实生活中,一种情感的艺术。AI 是一个理性的产品,它为人们提供便利的生活。

理性和感性的结合,并不是相互抵消的过程,反而能发挥出更大的效果。健康良性的音乐系统,通过 AI 技术,可以帮助用户去发现更多感兴趣的音乐,让用户能够沉浸在音乐带给他的快乐当中。

更多用户的使用行为可以帮助挖掘更多长尾歌曲,挖掘那些小众但是优质的音乐,使优质的歌曲都能得到合理的分发。

 

本文由 @灼华一品 原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自 Unsplash,基于 CC0 协议。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 小小的细节里面大有深意呀。那这背后的具体的代码、算法模型呢。还想再多了解一下。

    来自浙江 回复