首页 > 编程知识 正文

音乐推荐算法下载(网易云音乐系统实施)

时间:2023-05-03 21:10:31 阅读:76126 作者:2064

3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com /

网络音乐是音乐爱好者的聚集地,云音乐推荐系统致力于通过AI算法的落地,实现用户千人千人的个性化推荐,为用户带来不同的听歌体验。

2019年6月21日-6月22日,由51CTO主办的WOT全球人工智能技术峰会在京粤财富JW万豪酒店隆重举行。

在机器学习实践专场,网络易云音乐的音乐推荐算法负责人肖强介绍了《AI 算法在音乐推荐中的实践》。

这次重点介绍AI算法在音乐推荐中的应用实践,以及算法落地过程中遇到的挑战和解决方案。

从以下两个部分展开:

作者:

肖强,来自:

从2013年4月正式上线至今,网络音乐平台持续提供音乐面板社区、用户群内容(ugc )、精准推荐等服务,提供音乐人程序、LOOK直播

目前,云音乐的注册用户为6亿人,在音乐类APP排名中连续保持第一。

AI算法在音乐推荐中的应用

在音乐推荐的实用场景中,采用AI技术分发歌曲和歌曲列表。 其中典型的APP应用可以基于定制场景在每日歌曲和私人FM中推荐相关歌曲。

上图是整个音乐推荐系统的逻辑图,包括各种日志流、ETL、特征、召回、排名和最后推荐。

对该推荐系统来说,最重要的是如何理解用户的图像,也就是通过集成前端数据,了解用户具体喜欢什么样的音乐。

如上图所示:

51CTO技术栈我们主要使用了Hive、Hadoop、Flink、SparkSQL和Mammut。

我们使用了33558www.Sina.com/sparkml、Tensorflow、Parameter Server和Caffe。

上图为数据体系建设对比图,其中算法体系建设包括对用户体系的建设,这是云音乐AI算法的应用环境。

我们的队伍主要分为以下几个部分

AI算法在音乐推荐中的应用

音乐场景下的 AI 思考

在数据层,

在机器学习层,

说到采用人工智能的推荐方式,音乐系推荐与其他商品有不同之处。 例如:

我们可以在短时间内分辨出自己的喜好,所以在10秒内可以看到10多条连衣裙。

但是,音乐需要花时间来体验。 很多时候,在听了一首歌十多秒后,我发现那不是我们的喜好。

所以,音乐不是直接看就能理解的,我们在制作推荐产品的过程中,应该注重用户的体验,真正理解音乐本身。

连衣裙往往单位时间只消耗一次,通过使播放列表循环或单循环,可以在单位时间内享受重复的音乐。 因此,这是一种可以反复消费的行为,在推荐时必须掌握这个规律。

由于音乐消费成本较高,因此必须重视用户体验与用户在其消费过程中存在的强时间前后的相关性。

另外,是否让用户听一首歌的10秒、30秒、60秒,对他们来说表达的意义完全不同。

因此,我们需要提供的是真正有意义的消费,从而在这些关联性上体现出有效行动的意义。

如何衡量音乐推荐系统的优劣? 是要考察用户使用该平台的时间吗? 还是看他收藏的音乐歌曲数? 当然,也有用户点击红心不收藏任何歌曲。

通过交流,我们意识到他其实只是直接黑了自己遇到的讨厌的歌。 这样,很难用单一的目标来衡量音乐推荐系统的效果。

让我们来看看云计算平台是如何应用各种AI技术的:

数据体验团队

考虑到上面提到的音乐的复杂性,我们该如何理解音乐呢? 我们的平台对各种音乐有丰富的UGC和各种质量的用户评论。

因此,我们运用对这些歌曲的评论和认知,进行双向的

bi-Istm,来针对音乐生成一些描述性的语句。


那么,当有新的音乐被输入时,我们便可以基于与之相关的较少的语言,来制定出一个新的解释性描述。

如上图所示,例如有一首《逆流之河》的歌曲,其下方有着许多相关的歌单标题和描述信息。


我们可以通过新增关键词,来还原各种标记词,进而产生对于该音乐人的相关特征描述。


在此基础上,我们再根据人工过滤的词汇表,自动生成诸如:“网络的华语女声”、“香港民谣歌曲”等短语。


因此,凭借着该 NLP(自然语言处理)系统,我们最终能够实现歌曲短语的可视化。


籍此,对于社区里的用户来说,他们甚至可以不用点开某个歌曲收听,就能够大致获悉该歌曲所归属的类型。

其次,我们可以利用比较简单的“视频+图像+卷积”技术,来理解音乐。


例如,对于一些比较热门的歌曲,我们利用已生成的表达、以及现有的关联性,进而获取相关的音频,识别歌曲的响度、节奏、风格、以及音乐之间的相似性,给音乐进行“画像”。

②音乐中的重复消费价值


这里主要体现的是音乐推荐中的 CF。如上图所示,我们通过跟踪发现:某个用户将 A 歌曲听了 10 次,将 B 歌曲听了 9 次,而 C 歌曲只听了 1 次。


那么我们就可以对 A、B、C 的相似关联性理解为:该用户偏好 A 和 B 类歌曲更多一些,而且 A、B 之间的关联性也更大一些。


因此,基于用户的此类重复消费频次,我们可以通过设置 X、Y、Z 坐标轴的关系,来表达它们之间的空间位置、以及空间方向的差异性。


显然,有了此类相似度的计算,我们对于各种音乐的推荐效率会有大幅的提升。

③音乐的高消费成本、前后高关联特性,更加要求有合适的模型去表达用户的需求


如上图所示,我们经历了从一开始的线性模型、到树模型、到大规模 FTRL、再到深度神经网络、最后到深度时序网络,这么一个音乐推荐方面的迭代过程。


首先,我们从 LR 模型入手。该 LR 模型的解释性较强,便于我们进行选择。不过,虽然它的解释性较强、且迭代的速度较快,但是它的表达能力是非常有限的。

后来,我们转到了树模型。该模型中的 RF 和 LGB 等模型具有:能够解决部分非线性可解释的优点,当然其缺点在于拟合能力有待加强。

接着,我们上马了适合表达的大规模 FTRL。其优点在于:可以通过记忆类特征,基于之前的学习和时序训练,表达并刻画出所有的特征与关联性。


而缺点则是特征纬度比较大,即:对于来自不同公司的不同需求,需要的样本量会比较多,计算量也会比较复杂。


为了增加后续的表达能力,我们采用了深度神经网络,包括:DNN、DeepFM 以及 Wide&Deep 等模型。


它们的优点是理论性非常强,而缺点是:由于本身神经网络的复杂性,因此它们的可解释性比较差,也不能学习到各种隐含的时序关系。

最后,我们采用了深度时序网络,其对应的模型包括:LSTM、GRU Transformer、DIN 以及 DEIN,它们的优点是能够学习到不同的时序特征,进而具有刻画+泛化的能力。


当然,它们同样带有上述提到的深度神经网络的缺点,即:网络比较复杂,而且可解释性比较差。

我们下面来看看 LR 以及树的模型。前面我们说过,线性与树模型的特点是:统计类/泛化类特征很丰富,但是泛化能力比较差。


在歌曲应用场景中,我们可以直接把与歌曲相关的、由用户行为所产生的丰富数据,提供给该模型。


通过算法,我们需要将各种音乐指标抽象成标签。可是,虽然我们有足够多的音乐资源和行为样本,但是由于行为序列往往不是线性的,因此我们反而遇到了过拟合、以及特征时间穿梭(即特征记忆)方面的问题。


我们亟待通过线下与线上的特征一致性,来有效地利用数据,学习不同行为的前后关联性,进而提升模型的拟合能力。

因此,为了提升拟合能力,我们首先尝试的是 DNN 模型。DNN 在结构上是通过 ReLU 来保证对于低阶特征组合和高阶特征组合的全连接,但是这也导致了整体数量的膨胀。


于是,我们改进为 DeepFM,它能够同时对低阶特征组合和高阶特征的组合进行建模,从而能够学习到各阶特征之间的组合关系。如上图所示,我们在后期还引入了 DCN。

DCN 可以显式地学习高阶特征的交互。我们可以籍此来有效地捕获高度非线性的交叉特征。


由于仍保持了 DeepFM 模型,我们可以有效地控制向量的扩张,从而让参数的空间得以缩小。

在前文中,我们也提及了时序关联表达的问题。对此,我们曾经采用过针对点击率的 DIN(Deep Interest Network)。


在用户的多样化兴趣点中,DIN 重点关注的是那些会影响到当前推荐的历史行为。不过,DIN 无法捕获用户对于音乐兴趣类型的动态变化。

例如,某个用户以前喜欢电声类音乐,后来改为喜欢民谣了。那么此类“演进”正是 DIN 所无法捕获的。


在此基础上,我们改用到了深度兴趣演化网络(DIEN)模型。该模型的主要特点是:通过关注用户在系统中的兴趣演化过程,设计了兴趣抽取层与进化层。


它采用新的网络结果和建模形式,来更精确地表达用户兴趣的动态变化,以及时序演进的过程。


为了更加细粒度地掌握用户的兴趣变化,我们还运用了 DSIN 模型。DSIN 主要由两部分构成:一个是稀疏特性,另一个是处理用户行为序列。


该模型能够发现某个用户在同一个 Session 中,所浏览商品的相似性;以及在不同 Session 中,所浏览商品的差异性,进而抽取用户的时序兴趣。

④在音乐消费中,鉴于用户需求的复杂性,很难用单一目标去衡量音乐推荐系统的优劣


虽说推荐系统是一个典型的统计学应用,但是统计学只能解决 95% 的问题,剩下的 5% 是有关个人偏好方面的。


我们在实际应用中往往会遇到各种问题,其中包括:CTR(Click-Through-Rate,点击率)与消费时长的关系并非同步提升,有时候甚至呈现出此消彼长的趋势。那么我们该怎么解决多目标的问题呢?

针对多目标问题,我们有许多种解决方法可供选择。如上图所示,有:样本加权、Weight Loss、以及部分网络共享。因此,我们采用了多目标联合训练,这种简单的实现方式。

在上图中,我们首先在网络层保证了各项输出,并实现了浅层共享表示。因此,在训练效果上,虽然目标之间也存在一定的差异性,但是随着我们引入了差异网络进行训练,收藏率和消费时长都得到了明显的提升。


可见,联合训练的优势在于:

通过多个目标任务在浅层共享表示,我们在任务之间加入了噪音数据。此举既降低了网络过拟合,又提升了泛化的效果。

在多目标任务的学习中,我们通过让不同任务的局部极小值处于不同的位置,并能够相互作用,以协助逃离局部的极小值。

通过多目标任务的联合训练,让模型尽可能地去求解多任务的共同最优解。

使用类似于“窃听”的方式,跟踪用户对于音乐的收藏等操作,进而做出相应的判断。


回顾我们在前文中所提到的音乐推荐与其他类型推荐的差异点,我们实现了如下点对点式的解决方案:

差异:基于音乐本身的复杂性,我们该如何理解音乐资源呢?解决:利用 NLP、视频、以及图像技术去更好地理解音乐。

差异:可重复消费与不可重复消费的不同之处。解决:利用音乐的消费特性,去智能地分析不同歌曲之间的关联性。

差异:各种音乐不但消费的成本较高,而且前后有着明显的关联性。另外,有效行为的含义往往会更加丰富。解决:利用复杂的 AI 模型,去探究用户听歌的序列关联性。

差异:很难采用单一的目标,去衡量音乐推荐系统的效果。解决:利用 MTL 技术,去解决用户的多样性需求。


音乐场景下的 AI 思考


那么,音乐场景为什么一定需要 AI 呢?显然,如今已经不是过去那种靠买 CD、唱片听歌的端到端时代了。


在我们的音乐推荐平台上有着亿万个用户。他们在不同的心情状态下,面对由十万多个音乐人产生的千万多首音乐作品,需要通过美好的音乐来获取良好的心情。

我们可以毫不夸张地说:“耳机是互联网时代的输氧管,而音乐则是氧气。”

因此,我们需要在一个 4 维的空间内,解决复杂的匹配问题。而这正是人工智能的用武之地。


通过基于 AI 的推荐系统,我们能够不断提供强大的长尾发掘能力和精准的匹配能力,进而在不断提升用户体验的同时,来促进他们自愿分享和发掘网易云音乐平台上更多的歌曲资源。

为了达到上述目的,我们建立了一个如上图所示的体系结构。具体包括如下方面:

用户心智模型体系。包括:行为、认知、态度等。

用户调研体系。包括:调研问卷等。

Case 分析体系。包括:分析用户、及用户群的使用行为。

评估指标体系。包括:收藏率、切歌率、以及使用时长等。

数据反馈体系。包括:收藏、切歌、离开等正负向反馈。


通过这些定性和定量的用户体验评估体系,我们采用知识图谱、统计学习、以及强化学习相结合的方式,构建出了如下的三层模型体系:

排序体系。包含:排序模型、ee 模型、以及流行趋势模型。

匹配体系。包含:行为推荐模型、以及新内容发现模型。

数据体系。包含:行为数据、用户画像、以及内容画像。


通过上述这些,我们不断掌握与用户相关的数据知识、乃至专家知识,从而更好地提升了平台的针对性和用户的接受程度。


如有收获,点个在看,诚挚感谢

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。