用技术豢养尊贵的耳朵:对话QQ音乐智能推荐系统
《北方人的巴赫》里有一个爱乐者的故事。罗伯特,一个常居阿拉斯加的男人。为了巴赫,不做白领而去做了管道工。就为了冬天来临的时候,开着装了防滑链的车,翻山越岭到处看看,车上的音响正惊天动地地响着巴赫。
音乐是非常特殊的艺术形式,仿佛是描述多变的心绪,比文学更抽象,比绘画更多变。
请大家稍作回忆——你第一次认真地喜欢一曲音乐是什么时候?可曾有那么一个瞬间,你无比渴望耳畔涌来一个,让你寒毛倒立,让你心头一紧的旋律?
我们热忱地期待技术真的可以像音乐世界里的“上帝之手”那样,润物细无声得就把你需要的清风送达耳畔。那么“上帝之手”是如何实现的呢?揭秘QQ音乐推荐系统如何读懂你的心。
1. 从0认识你
1969年,阿拉斯加大雪,积雪成冰,山丘野地人家,全都沉寂在剔透的冰封世界里。
罗伯特不得不放弃了外出计划,围炉在家。寒冷的冬夜没有乐曲,耳边却回响声着火车上听到的巴赫片段。乐曲似乎比炉火更能取暖,无奈想得越用力,印象却越不清晰。
摇头作罢,罗伯特缩成一团迷蒙睡去。
他做了个梦,梦中一切都太不真实,唯一触手可及的一台发荧光的小型机器,和上面赫然显示的2016。
手刚触及一个黄绿图标,机器却响了。是乐曲!但却不是他心念的《哥德堡变奏曲》。
欢迎来到QQ音乐推荐系统的世界。我们更常称其为RS(QQ Music Recommendation System)。
对于每一个初入音乐软件的“罗伯特”,RS对你都是一无所知的(特别是,如果你既没有主动搜索歌曲,也没有主动选择喜欢的风格)。
如何从一无所知,到准确推荐?这在RS里,被称为“冷启动”。
最快的方法大概是:先扔给你一首歌,看看你的反应(是兴奋得点红心,还是怒切歌?)。但是“扔”的动作也很讲求技巧——怎么个“扔”法才能命中率最高?
每首歌都有流派、语言、歌手等不同属性。RS有数据显示,听者对各个属性的敏感程度是不同的,敏感度排序是语言>歌手>流派。简而言之,我们最不能忍的是听到不喜欢的语言(比如外文歌),其次是歌手,再次才是风格流派等。
- 语言是第一推荐要素。QQ音乐用户中90%都以听中英文歌为主,所以最初,RS会以中英文混合推荐;听者对不同语言会有不同偏好,产生“收藏”、“切歌”等行为,这就是RS学习的第一步;
- 歌手是第二推荐要素。锁定了语言偏好后,RS开始试探性地推荐歌手;同样根据听者的反馈,快速锁定一个小范围的歌手候选区间;
- 经过前两步,推荐范围已经较为聚焦;听者也累积了相当的个性化数据,破冰完成,“冷启动”进而顺利转向常规的推荐方法。
2. 小动作,大解读
罗伯特皱了皱眉,机器里发出的靡靡之音让他有点烦躁。他尝试触碰那些图标,音乐戛然而止。一阵手忙脚乱,又点按了好多其他图标。
直到他意识到,音乐可以受他的控制停下又继续,或因他的不满意而换一曲。
起初的音乐总是不尽人意,后来恼人的曲好像越来越少了?这是为什么?
罗伯特的每次触碰都被RS小心地记下了。RS可以从“切歌”、“收藏”等行为中迅速读懂听者的偏好,从而“投其所好”,这一点在收听“个性电台”时体现得最为明显。
这并不难理解:当你收藏《晴天》时,很可能说明你喜欢周杰伦,对此,RS后续推荐曲中出现周杰伦的几率就会增高;当你点删除(不再播放),会导致类似歌曲的出现几率降低。
“收藏”、“删除”、“下载”行为反应的好恶都很鲜明(在RS中,称为重度实时行为),对于此,“简单粗暴”的推荐规则往往就很有效。
相比之下,另一类操作包含的态度就很“暧昧”——切歌。切歌行为受到环境、心情等诸多额外因素的影响;而且切歌时机也很有深意(默默脑补3秒切和3分切)。
比如,在过往收听中,你被RS打上了喜欢周杰伦的标签,但今天你却切掉了《晴天》,原因可能是多样的(比如…今天是阴天?);仅凭这次切歌而放弃向你推荐周杰伦,效果可能南辕北辙。
这时就需要RS中一套更加智能的预测机制(原理类似统计中的判别分析, Logistic回归),将歌手、流派、切歌时机等多种影响因素综合,去评估听者对这首歌的真正态度。评估结果表示为一个介于0到1之间的数(1代表喜欢,0代表不喜欢),越接近1则喜欢的概率越大。
3. 勾勒你的模样
越发熟练地点击。罗伯特循着图标,翻阅到软件中的音乐分类:Pop, Light, Folk…Sad, Silent, Sweet…他发现,在这个不知藏了多少乐曲的机器中,每一首歌都被打上了坐标。
这时他也恍然意识到,为什么听到的曲越来越让自己满意:似乎在机器眼中,他也成了一个需要定位的坐标。
一双挑剔的耳、一次次点击,代表着一种独立、行走的音乐形态。在音乐王国里,轮廓清晰。
描绘出你的听歌偏好,为你推荐对应的歌,是RS最基本的推荐方法(被称为“基于内容推荐”)。思路大致是:1.你喜欢乡村音乐——2.《Country Road》是乡村乐——3.向你推荐《Country Road》。
但是等等,真实的世界往往是这样的:你除了喜欢古典乐,还喜欢英文歌,还喜欢陈奕迅;《Country Road》除了是一首乡村乐,还是英文歌;还是一首抒情歌……这样下来,简单的逻辑也承载着复杂庞大的信息。
这时就有赖于RS中两张设计精细的信息表——用户画像和音乐画像。
用户画像是将听者的听歌行为数据抽象出来,转化为简洁形象的标签。随着你软件使用的深入,RS会在各个标签下不断更新你的信息。目前QQ音乐的用户标签分为6维:
1.内容偏好:包括歌手、语言、年代、流派偏好等;
2.社交属性:依托于腾讯成熟的社交生态链,可以挖掘出年龄,性别,职业,地区等数据;
3.场景偏好:在QQ音乐不同场景下的听歌分析,如排行榜,歌单,本地歌曲等;
4.人群属性:有多种群体划分方式,比如按活跃度划分,按流派偏好划分等;
5.听歌时间段:在一天中的听歌时间分配;
6.黑名单:描述对某类歌手或歌曲的反感。
相应地,音乐画像是在为歌曲打上各式各样的标签。分为六类:
1.歌手纬度:歌曲主要歌手的相关数据;
2.音频特征:如mfcc,pitch等音频信号的特征数据;
3.热度统计:歌曲被听,下载、收藏、分享等次数;
4.流派:如轻音乐、民谣、摇滚等;
5.情感标签:如伤感、心痛、安静、思念等;
6.乐器:钢琴曲、古筝、吉他、小提琴等。
画像如同定位了听者和歌曲在音乐国度的“坐标”。接下来就是依照歌曲和听者间相似的标签,绘制出一首歌到一个听者的“地图”(即在用户和歌曲间建立标签向量)。循着地图,让好歌曲主动到达你“尊贵的耳朵”。
4. 同好之耳,为你寻歌
似乎应该感叹这机器的惊人曲数和精密划分,罗伯特想。心中却浮起一丝怀疑。
他回想起某年在广场上经历的感动。
大雨如注,露天音乐会就要开场了。广场上是意外的人头济济。为了巴赫?真的是为了巴赫,当《圣母颂》响起,男女老少、胖瘦高矮,异口同声唱和起来。那一瞬间,热泪从罗伯特脸上滑落。
音乐是灵动的,它的深刻只能由同类人所共知。而眼前的机器分类如此苍白,却妄图解读其中深意?想到这里,罗伯特不禁要嗤之以鼻。
作为机器,RS知道自己的界限在哪里。也因此更加明白,服务人的智慧还是来源于人。
“邻域推荐”就深深地遵循了这一理念。它在音乐推荐中应用广泛,以至于很多人将之与音乐推荐划等号。这种方法的思路如下:1.小Q喜欢《Country Road》——2.你和小Q是相似用户——3.向你推荐《Country Road》。
物以类聚,人以群分。邻域方法的精妙在于,借用了与你品味相似的听者之耳为你挑歌。既偷偷借力了“群智”;又能弥补直接打标签造成的简单化处理。音乐的精妙远不止标签提示的那样非黑即白,对于此,人类的感官要比机器聪明许多。
那么,如何找到与你听歌品味相似的用户呢?简而言之,取决于你们喜欢的歌曲中重叠的数量。如果重合的歌曲达到一定比例,就会被认为你们是相似的,那些他所喜欢、而你又没听过的歌曲,会进入你的推荐歌单。
上图是一个极端的例子。列为听者的姓名(A-E),行为歌曲编号(1-21)。表格中的数字代表的是“是否喜欢这首歌曲”——1代表喜欢,0代表不喜欢。
那么上面这张矩阵图中,小A与小B就是非常极端的两个听者,在21首歌中,他们的偏好完全一致,我们有理由相信小A与小B品味接近,RS会向他们推荐彼此喜爱的其他歌曲,贴合心意的可能性也更高。(实际生活中的相似度很少如此理想,相似度会通过一个百分比反应)
5. 隐秘的纽带
沉思被一首新曲打断。美妙得如此熟悉,罗伯特却清楚知道自己并未听过。
从开始到现在,他听到了一些难忘的歌。在他原本的生活里从未触及,甚至因为语言不通,对歌词毫无头绪。但感受却是相连的。
个人的领地如此有限,但技术却让人乘着翅膀,在音乐的浩瀚国度里自由穿行。
他呼出一口气,选择不再惊奇或质疑。闭上眼,享用这一刻的美好时光。
RS搭建了音乐同好的联系,也串起了相似歌曲间的联系(原理很简单,只要在邻域方法的矩阵中,比较纵向的两列数据——即两首歌——相似度即可)。不过,这种歌曲联系的建立,依赖于有足够多的听者同时听过这两首歌。
还有一些联系更为隐秘。它们并未在听者的使用数据中产生直接关联,但却有着内在相似性——假设从现有听者的喜好中,发现中文R&B和英文R&B有直接相似性(RS称为一阶联系),英文和法文R&B也有直接相似性,但中文和法文R&B却没有(原因可能是…中国人都不懂法文?)
这时,通过英文R&B作为中间桥梁,可以发现,中文和法文R&B是有间接相似性的(称为二阶联系),这就是隐因子特征挖掘方法(工程中常使用的两种挖掘模型为:基于矩阵分解的隐因子模型(LFM)和基于能量函数的神经网络模型(RBM))。
RS会通过挖掘这些中间纽带,为听者尽可能拓展推荐领域的疆土。
初入音乐之“坑”的人或许都有那么一段独自狂欢的时光,守着心头之好,感叹地球上有那么一种声音,与自己如此合拍。
随着互联网带来的音乐资源肆溢,网络听者的心中也泛起了迷茫——就好像在台风将至的海边,海岸上空无一人,看到海浪接连不断地涌来,就像奔腾的马群,骑在马背上,却永远看不到大海的全貌。
热爱音乐的人,无论何时何地,都无比珍惜自己的耳朵。当技术发展到今天,他们热忱地企盼,茫茫大海中能迎来自己的Music. Right。
好在,“智能推荐”已经到来,并在不断成长。
音乐之洋,你可以纵身一跃,如你所愿。
(文内罗伯特的故事纯属虚构,与原著无关,感谢带给我们灵感的《北方人的巴赫》一书)
原文 | 李深远(QQ音乐个性化团队负责人)、黄安埠 (QQ音乐个性化推荐系统算法负责人)
改写 | 陆诗雨、余洁(腾讯研究院研究员)
本文由 @Anny 发布于人人都是产品经理。未经许可,禁止转载。
懂你,适合你,开拓你
用户自身迭代
音乐推荐迭代🙌
QQ音乐推荐的RS智能系统真的很智能化,绝逼好用~能够根据用户的心理,推荐的歌曲都是我喜欢的~~点赞点赞~
用QQ音乐很多年了,你说的这个智能推荐还真的很少用,也觉得不好用。本地的音乐之前是加载进来的,那么推荐的时候不会出现本地的音乐,现在不知道什么原因,本地音乐不出现在QQ音乐里面,这个智能推荐的歌大多数我本地音乐都有,我在用智能推荐挺歌的时候,就是想听我没听过的歌曲,或者像换一换风格,或者心情突然变化很大,来点不一样的歌曲。根据听歌习惯来做推荐,这类算法MTK时代很多小公司已经做的很成熟了。