发布于 2017-05-01 02:05:16 | 1093 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

网易(163)

网易公司(NASDAQ:NTES),是中国领先的互联网技术公司,也是中国主要门户网站,和新浪网、搜狐网、腾讯网并称为“中国四大门户网站”。网易在开发互联网应用、服务及其它技术方面始终保持中国业内界的领先地位。


今天看到头条问答里有一个问题,激发了我回答的欲望。问题是这样的:

网易云音乐里的根据喜好推荐是如何利用算法实现的?

因为小编平时也是网易云音乐的重度使用患者,所以也挺有兴趣给大家讲解网易云音乐的推荐算法流程。下面就为大家介绍一下网易云音乐的推荐算法。

网易云音乐的推荐算法可以概括为两个步骤,计算这两个步骤需要三个算法模块。

第一个步骤叫做召回 - recall,如果这里你不理解,你可以这么把召回看成 “找回”,第二个步骤叫做排序 - ranking

三个算法模块分别为1 用户画像模块 2 歌曲(歌单)画像模块 3 推荐算法模块

那么这两个步骤都干了一些什么事情呢?

召回,就是指从海量的音乐(比如1000w首歌)中筛选出一个比实际推荐的歌单略大的音乐集合。比如每日推荐推荐20首歌,那么我可能需要召回1000首歌。

你可能会问了,为什么不直接选20首歌呢?因为

1 直接选出来的20首歌可能不准 ,

2 如果直接选的话,计算量太大。

那这些歌曲怎么召回呢? 这就涉及到第一个和第二个算法模块,分别叫做用户画像和歌曲(单)画像。

用户画像描述了你的属性,比如年龄、性别、喜好语言、喜好音乐风格、不同时间的听歌喜好、最近一个月的听歌喜好等等

这个模块提供的信息主要是机器学习算法,通过一系列你填过的资料和实际的行为数据来做的预测。实际中用户不可能去填我喜欢什么风格的歌曲,这个是增加了用户的负担,而且用户行为会不断变化,填了之后也不一定准。

而歌曲画像描述了歌的性质,比如在哪些歌单里、歌的标签、歌的内容、歌词、风格、长度、甚至是节奏人声等信息。

有了这两个模块,我们怎么召回呢?召回策略其实有很多,举几个例子,大家可以自己发散

1 根据用户最近听过的10首歌曲,找出数据库最相似的500首歌曲

2 根据用户听歌的时间、地理位置、天气,召回用户可能最喜欢听的歌曲(天气好就听周董的晴天)

3 根据用户的风格喜好,召回这个风格最热门的歌曲

4 直接召回音乐排行榜(比如Billborad)排名最高的20首歌曲

**召回策略可以是规则方法,也可以是机器学习方法得到的集合。跟你数据的存储方式有关。而且如果全用机器学习的方法,就会降低性能;实际工程中会找到一个性能和结果的平衡点。

这样通过许多的召回策略,我们就可以得到用户可能喜欢的歌曲候选集合了!yeah!

但是还没完,我们用户可能只能听其中的3-5首歌曲,我们的歌单里只放得下20首歌曲,

如何在1000首曲子中精准命中用户的喜好??

这就涉及到第二个步骤排序 和 推荐算法,用户画像和歌曲画像也会在这里用到。

这里有很多的模型和数学知识可以应用,展开来讲可以讲10节课。但是推荐排序有三个核心思路是总体不会变的。

1、基于内容的推荐(content-based filtering)。学术上一般content-based是特指音频内容本身的,比如通过CNN提取出音乐的节奏、人声特点。针对用户对这些音频特征的喜好直接进行推荐。http://www.csdn.net/article/2015-02-10/2823907 这篇文章就讲解了如何用CNN去做基于内容的音乐推荐。

2、基于协同过滤推荐(collaboration filtering)。这个就是利用他人对歌曲的行为信息,来判断你有多可能喜欢这首歌曲。举个例子,比如你手机里爱听的歌都是你舍友推荐给你的,那么如果有一天你舍友觉得一首新歌不错,被网易云音乐知道了,那网易云音乐会认为你很有可能也喜欢这首歌曲。

3、社会化推荐(social recommendation)。基于社交信息的推荐,人以群分,可能你所在的这个音乐小群体最近都很喜欢一首新歌,那么推荐算法会认为你很有可能也喜欢这首歌。这里可以通过社交网络算法或聚类算法来达到目的。

经过复杂的推荐模型,其实我们还有一个逻辑环节需要判断!就是某些歌你是不是会比较讨厌?比如夜深人静的时候我不想听动次打次的歌(如下图),那么算法就要通过规则把这些你会讨厌的歌过滤掉。

最后我们就得到了热乎乎的网易云音乐日推歌单~~~~赞一个~~~



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务