打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
QQ音乐是如何思考个性化推荐的?

本文根据之前在PMCAFF的一期线上分享整理。

个性化推荐的原理应该是在特定场景下,去构造一些合理的算法或规则将正确的数据推荐给正确的用户,这句话放在现在很多产品都是一样的,但可能在不同的产品上也有一点区别。比如说在QQ音乐里面所指的数据就是音乐用户

  •  音乐:我们在千万的曲库里面每一首歌曲都有一些它自己的静态属性。比如歌手、语音、发行地区、发行年代、用户为他打上的一些心情、场景等标签、音乐流派标签。同时每首歌也有它的一些动态数据,如播放量、收藏率等等。
  • 用户:QQ音乐除了有自己的用户画像,比如说听歌偏好、听歌场景等等,还拥有一些其他体制下的用户画像,比如用户的年龄、性别等等。这些都会是一些比较好的推荐资源。接下来会详细跟大家说一下这些是怎么用上的。

需求/场景

个性化推荐大家在听得最多的就是它的一些算法,QQ音乐用的也是一些基于画像的推荐、或者协同过滤、或者其他一些比如RBM这样的一些较复杂算法。其次QQ音乐的推荐还会涉及到另外一些方面比如需求场景,如他是一个懒惰型还是发现型用户,他在用个性化推荐的时候是在什么样的时间等等。这些我们都归纳为需求场景。接下来就来讲讲,需求和场景这一块要怎么思考。

  •  首先从我们很早之前做的一个“猜你喜欢”说起。在2013年的时候我们上线过一个功能叫“猜你喜欢”。它是在发现里面的,你点进去是一个很长的列表页,每个cell占据的高度非常大,都是一些卡片,卡片里面写满了你推荐的东西是什么,推荐给你的理由是什么。
  • 这种在当时来说还是蛮创新的,但是在后续一些数据分析上,包括用户的反馈其实也没有说特别好。后来我们总结了一下问题,当你在使用“猜你喜欢”的时候可能不是很顺手,一方面可能是他的单位推荐面积比较大,浏览效率比较低,然后呢,里面很多单曲歌单专辑长得一模一样,每个东西让人感到很杂,用户滑两三次就觉得很累。这对用户的使用感受不是很好的。所以我们也重新思考了一下“猜你喜欢”这种东西或者说个性化推荐要怎样去做。在当时来说算法也没有太多的改进,我们后面就尝试以去从需求、场景出大去分析,思考我们该怎样去做个性化推荐。

从需求场景出发给用户分类

1)懒惰/被动浏览

  • 他可能是漫无目的的,他可能会有一些自己感兴趣的歌手,但他又懒得去找,比如说进入音乐,他就是想要一键播放,其实也没有更好的解决方法,之前就是要进入一个列表滑动一下,然后又没有预期。那这种需求我们就要提炼出来,首先推荐一些他感兴趣的,另外说他不需要太费力地浏览,能够做到一键播放,这个地方也就是他个性化需求的另一方面,也就是去满足他被动听那个心态。
  •  我们在这里面也做了蛮多的一些尝试,比如说我们做的“猜你喜欢”、“个性电台”等那些,都是解决个性化推荐和一键播放,根据用户的行为进行调整。

2)主动浏览

  • 对于这种用户就是他有自己的一个找到某些歌曲的需求,但因为他的时间比较短,但有时候需要通过一些分类他肯定需要进入很多层级,那找一次就挺麻烦了,所以需要一种能够节省时间的方法。
  • 我们提炼一下需求,就是说这种用户是属于那种浏览型用户,他有自己感兴趣的,也希望能够主动去发现,但是就是在筛选的方式上比较麻烦,要通过筛选几次之后才能找到他自己想要的内容。
  • 那我们可以在他浏览的场景,比如说在歌单广场,在查找的新歌下面,主动去做一些个性化推荐,比如说新增一个全部,那全部里面可能是根据你的听过习惯做的推荐,省去你查找的麻烦。另外一块,或者是我们把他经常做一些筛选的行为记录下来,也让他后面重新做筛选的时候省去一些麻烦。

3)追“新”

  •  对于这种场景,这个用户他是有一种新的需求,比如说他喜欢的歌手发了新歌,他希望第一时间能够知道,这种需求在我们刚刚说道的两种场景里面都不能很好地满足。
  • 那我们可以通过他的听歌行为知道他关注什么歌手的哪些歌曲,那当歌手或者歌曲更新的时候我们可以马上通过push的方法来告诉用户,这种是一个告诉用户最快的一个方法,满足他一个个性化的需求。

4)让推荐融于无形之中

  • 这一块可能是大家比较容易忽略的但我觉得也是非常重要的一个推荐场景,看左边的那张图,比如说在搜索框内出现了这首歌可能是我关注的一个歌手,他发布了一个新歌,那其实他很多时候进一个音乐软件他第一件事要不就是从本地那里开始听歌,或者直接就进入搜索框去搜索你感兴趣的歌手发的新歌,那我在你一进来的时候能够在搜索框上面显示你感兴趣的歌手发的新歌,对他来说就是一个非常节省他时间而且更自然的方式。
  • 而大家从右边的图可以看到,如果一个用户他在本地的数据很少,下载的歌曲非常少,他是一个新用户,不知道怎样去查找音乐,那可能对于我们来说通过这样的一种方法,就是根据他已经下载的一些歌曲来推荐给他与这首歌相似的歌曲。像图里面的例子就是比如我是一个喜欢纯音乐的用户,可能我刚刚下载了一首歌,发现下载里面又出现了几首跟这个比较像的音乐,那我继续下载它,让用户感觉这个推荐是一个非常自然的事。

5)对于需求跟场景的总结

  •  用户在使用这个场景的时候是什么?他是一个需要主动去浏览的场景还是说是一个被动场景,这场景没有解决的时候他的痛点是什么?
  •  我们希望他的解决方法是自然和简单的。不需要用户去做太多操作,太多操作对于用户来说是一种负担。
  • 对个性化推荐来说是不是有更加刚需的主场景?举个例子,我们提供了很久在线发现跟本地推荐,在线推荐的意思是说有发现欲望的用户在音乐馆里面可以逛到一些好听的音乐,但其实,在很多音乐软件里面,用户的大部分时间都不是停留在在线发现。那我们应思考一下用户的主场景,比如说他的本地音乐跟下载音乐是不是有更多可以做个性化推荐的可能。这些实际上都应该是产品经理应该思考的,而不是拘泥在一些算法或者其他方法。

算法/规则篇

我们可能认为个性化推荐需要接触的算法东西很多,比如几个推荐系统、几个表情推荐、画像推荐甚至是逻辑回归等这种。实际上QQ音乐之前也尝试过不少的算法,但归纳到底一些比较复杂的算法可能会用到局部调整,主要有以下几种常见的算法。

常用的推荐算法

  • 基于用户画像的推荐。比如说我是一个广东省的80后男生,我喜欢摇滚、欧美歌曲,那能不能给我推荐一些类似歌曲呢?
  • 协同推荐。可能比较拗口,但实际上很好理解,比如说很多人觉得这两首歌好听,你收藏了其中一首,那另外一首不如也试试看,这就是协同推荐最基础的一个方法。
  •  基于标签推荐。这个更好理解,比如说这首歌跟另外一首歌在流派、年代等这些维度都非常相似,刚好也喜欢其中的一首,那我们就认为你可能也喜欢另外一种。

1)什么是画像推荐

  • 画像在我们QQ推荐里面有两个定义,第一个是基于用户的社会属性定出来的,比如说我几岁、我的职业、我的星座等这些属性。社会属性在QQ音乐有几个特征是非常明显的,比如说不同年龄段的人挺的歌是不太一样的,或者说不同职业的人听的歌不一样。
  • 而QQ音乐的用户画像是指,通过用户在QQ音乐里面听到、收藏的歌归纳出来用户可能喜欢某些歌曲,他可能喜欢某些流派、某个歌手这些,通过数据来归纳出对他的一个描述。


2)基于用户画像怎样去做推荐

  • 如上图,中间这部分主要表现在QQ音乐里不同年龄和性别的用户喜欢哪些歌手。从这些可以看出,不同性别、年龄的用户口味相差蛮大的。假设一个用户进入QQ音乐但没有任何数据的时候,我们可以尝试这种方法来推荐给用户,比如说你是一个十几岁的男生,我比较倾向于给你推荐李荣浩这种。

3)QQ音乐的用户画像是怎么做的

  • QQ音乐的用户画像我们是收集了用户在QQ音乐里面的一些操作行为,比如说他收听哪些歌曲等,把数据收集起来在后台服务器上去计算。另外我们也有自己曲库的东西,比如这首歌的流派,节奏、心情。将这两个数据大家在ppt左下角可以看到,他有几个维度,比如歌手、流派、节奏,他都一个个分权重。大家也可以在QQ音乐首页个人主页这个看到自己的偏好,比如你喜欢哪些流派、哪些歌手等。
  • 有了这些数据之后我们就可以做很多事情了,用户产生这些行为之后我们大概可以知道他可能喜欢周杰伦、林俊杰,那我们可以推荐给他这些歌手的一些冷门但好听歌曲,这些对用户来说都是一个非常好的体验。

4)协同推荐怎么做


  •  协同推荐的原理非常简单,看一下图里。首先可以看左边这张图,比如在QQ音乐上有100人收藏了陈绮贞这首歌,而张悬的儿歌也有100个人收藏,其中共同收藏这两首歌的总共有50个人,那大家通过一个简单的并运算,然后再用共同人数50除以并集100之后可以得出0.5,也就是喜欢旅行的意义的人有50%的概论就喜欢张悬的儿歌。同样看右边,这两首歌的相似度就只有0.05。
  • 通过这个方法我们就可以通过多少人听过这首歌,再求出共同听歌人数,最后通过一个公式来算出一个相似度。
  • 那获得歌曲相似度之后我们该怎么去推荐给用户感兴趣的歌曲呢。这里面还涉及到怎样去定义用户感兴趣的歌曲,在QQ音乐里面用户行为是则回应定义的,比如说他的一个显性和隐性操作,比如说他对一张专辑收藏和跳过了某些歌曲。
  • 当你有了这些操作行为之后就可以来计算用户喜欢哪些歌曲。如图上的例子,通过这样一个计算得出温柔这首歌应该是最先推给你的,其次是回到过去和黑白配。
  • 这就是QQ音乐一个非常简单的原理,当然上面可能叠加了很多修正,比如说他很久之前收藏的歌曲就会进行一个降权,因为越早收藏的重要性越低。而一些热门歌曲很多人都收藏的会降权,但你收藏了很多歌曲会加权。通过这个算法对用户进行推荐。

5)基于标签推荐

  • 这个非常简单,比如说你有标注了,那就可以进行推荐了

总结这几个算法:

基于用户画像推荐解释性可能是最强的,但是他依赖于用户不断地去听歌积累数据。关于协同推荐的有点就是只要你听过这首歌曲,他就可以通过后台计算去给你推荐,对于一些冷门歌曲,这样是非常有用的;同时他的缺点也非常明显,就是对于热门歌曲它的可解释性不强。基于标签优点在于他无论冷热门歌曲可取性都非常强,只要你有打上这个标签就能推荐;缺点就在于他需要依靠人工去打标签。

如何规避协同推荐的热门效应和标签推荐浪费时间?

  • 大家可以看到协同推荐的好处就是可以批量生成,那么就可以这么做,比如用户创建了一个UGC歌单,而歌单很多时候就表达了一种心情或者场景,假如一个歌曲出现在了很多这样的歌单,那么我们就可以给他打上这个标签。这样我们可以通过融合歌曲本身的一些属性比如说年代流派等等特征来综合地计算。
  •  大家看一下小苹果这首歌,优化前我们可以很明显地看到这是一个热门歌曲扎堆的现象,但优化后就很容易理解了。所以我们必须去了解每一个推荐方法的优缺点,然后将他们结合起来去运用。

算法不是万能的

  • 推荐系统可以算是一个偏算法技术的一个产品,但算法不是万能的。比如说看一下上面这些用户评论,和相对应的痛点分析。后来我们想了一下,就加入了一些生命周期的想法,将用户划分为3个阶段,然后进行精细化运营。

总结:

算法跟规则是相辅相成的,我们既需要尊重算法工程师不断进行调优和尝试的做法,去优化结果,同时又要承认规则跟头部的一些场景,采用更多产品思维进行思考。

数据篇

基础数据介绍和面临的挑战

l 对于QQ音乐来说最重要的是标签和用户画像的数据。对于标签来说大家可以看到他有很多维度,比如歌手、歌曲等很多,而这一块刚刚说了标签这一块,他打标签的人力成本非常高,而我们从长期也发现其实客观标签的覆盖率不是特别全面,主观标签如果完全依赖与信息,它的出错率也是非常高的。对于用户画像来说,它的生成慢和感知差是一个大痛点。

如何通过机器去代替一些人力劳动和提高效率跟准确率

  • 举个例子,比如说周杰伦这首三年二班,我们听过的都觉得他是一首rap,但实际上我们自动计算的可能会计算成一首中等速度歌曲。因此这种东西就需要我们不断去编辑和审核了。
  • 我们后面想了一个方法就是在对歌曲的歌词的时候,打上一些关键帧,一旦这首歌有了这种数据之后,我们就非常容易计算这是歌曲的速度。通过这种方法我们可以看到右图那个,这首歌其实除了前面和后面那部分,其他的速度基本都保持比较稳定。
  • 这种变向获得节奏标签的方法我们可以提高标签的覆盖率,这样能降低成本,提高效率和准确率。

让画像创建简单,应用场景更普遍

  •  而用户画像我们上面说道他的一个生成难感知度普遍较弱。我们最近也在尝试一个比如说用户新装了QQ音乐,那他可能会有一个扫面本地歌曲的习惯,那么扫描完之后我们就会去分析一下他本地的那些歌曲是什么样的,这样就能够确定一个用户的初始画像。这种方法在很多app上都有用到。同时对于画像感知差的问题,我们会做一个年终盘点,把用户数据呈现在他面前,告诉他这不是一个冷冰冰的数据,这样就让她更有动力去接受我们的推荐。

个性化推荐的难点

1)难点1:知易行难

  • 推荐系统是一个比较偏技术的产品,他很多时候是一个知易行难产品,很可能产品经理一句话,背后就有几百台机器在为你跑。比如说产品经理说,我们根据用户的习惯来为用户推荐歌曲,这句话可能一说出来大家都懵逼了,比如技术会问,这些感兴趣的东西要怎么去定义,指收藏、下载还是其他,这些东西的权重要怎么去确定,你有没有考虑一些技术上的问题?对于相似要怎么去定义,要怎么算,哪种方法好与不好,有没有数据可以佐证。
  • 这些问题如果你没有先去理解,跟开发就是鸡同鸭讲,聊不到一块,所以我们的建议是推荐系统虽然是比较偏技术的东西,但不代表产品经理要甩锅,你要多和开发去沟通、理解这些事情。
  • 做好产品和技术沟通的桥梁这里我的建议是,如果我们要做好推荐系统,产品经理确实是要懂一些技术的。我在这推荐一些书籍跟公开课,书籍基本是比较入门的,而公开课就比较进阶一点,建议大家先从书籍入手,然后再进入公开课,了解一些比较实战的东西。
  • 当你知道了推荐系统应该怎样做,怎样分析好数据之后,再跟开发去沟通磨合。比如说我们会去跟开发沟通,数据分析下面是否可以把一些统计分析模版化,然后分析的时候只要复制粘贴提交到跑数据平台就可以得到一些结果。甚至你了解一些算法跟原理优劣之后,通过不断权衡,有利于你产品的决策。

2)难点2:优化效果不直观

  • 推荐效果的另一个难点就是我们在优化实施后,不能很直观地知道这样到底好不好,而是要通过一些数据分析,才能够知道。大家做的时候都要非常注意数据分析这个环节。但是大家在分析时候经常只注意优化实施后的数据,忘了考虑在优化实施前我们要去考虑的东西。比如说我们在优化实施前要评估究竟知不知道做,比如说你要分析这个优化能够服务多少用户,每个用户能带来多少数据的增长等,这些都是要提前预估的。

其次,你要选好你的评价指标,比如对于一首歌好不好听的事情,你可能会根据播放量去评价,但其实播放量高只能代表热门,很多用户只是播放一两秒之后就跳过,那有没有更好的方法能够去定义这个呢。比如说我们能否用完整听完的次数除以播放量。一般来说对于一首歌好不好听,收听率比播放量更能衡量。对于不同的场景要评估的话,我们也要考虑比如留存率也是衡量一个算法很好的指标。

  • 而优化实施后我们也有一些点可以告诉大家,我们建议在做ABtest之前建议先做一个AAtest去验证数据的无偏性。这些有一个比较有趣的例子。QQ会员在做某次推广活动想做ABtest的,发现尾号为8的用户是比较活跃的用户,而直接去做ABtest的话就会造成无论怎么做,包含尾号8的这批用户效果都比较好,这就造成了一个偏差。因此我们建议在做ABtest之前先做一次AAtest,先验证两边的用户是不是效果都一样,这可以避免一下做ABtest出现误差。

3)难点3:口碑难以量化和横向对比

  • 推荐系统的第3个难点就是口碑非常难以量化而且难以和其他竞品进行横向对比,比如大家在做客户端体验的时候可以直接清楚地理解到一些操作方面的优劣,但是算法不一样,每一家所采用的算法不同、积累的数据也不同,你看到的只是表面的input和output。
  • 我们在这一点上也做了一些很多的尝试,后来我们跟自己的用研团队去用了盲测实验的方法。
  • 我们当时邀请了公司内外有使用过推荐系统,无论是QQ音乐或者是竞品的用户都好,把他们邀请到盲测的实验室。我们不让用户知道当前使用的是什么播放器,只让他感受当前这首歌曲他是不是喜欢,这样可以做到相对公平。用过这次实验我们了解到其实QQ音乐的推荐算法跟其他竞品的推荐效果不相伯仲。我们又发现了两点,在盲测前我们让用户在实验前填调查表,看QQ音乐的推荐系统在他们心目中的得分,测试结果出来后发现其实QQ音乐是被低谷了整整15分,因为QQ音乐一直被认为主要是小学生用,然后你就越来越少使用它,造成数据积累的不足,其实回归到最原始,这些推荐系统都是得分差不多的。而其他竞品则因为一些品牌或形象优势,导致用户高估了。
  • 因此,我们除了需要解决算法的难点之外,还要在高端用户中不断去推广,才能实现用户和口碑的双赢。

4)难点4:算法重要,但场景和基础数据更不能忽略

  • 推荐系统的最后一个难点就是我们要知道算法非常重要,但在考虑是数据跟场景不能忽略。我们有一个不成文的经验,就是你在改动任何东西的时候UI/交互的改动总是大于对基础数据的优化再大于算法的调优改动,当然这是基于基数数据跟算法稳定的条件下说的。
  • 因此产品经理在里面是非常重要的,他需要了解用户需求跟痛点、场景是什么,是否结构简单跟对口,数据的覆盖率如何、准确性如何、如果准确率不高,那要怎么去调整不要导致后面算法出问题。对于算法这一块我们更多要理解算法的优劣势,不断跟开发PK,了解哪个算法的可解释性比较强等。

总结一下,产品经理要更加重视的是它的关注、场景、推荐系统所用数据、理解算法其中的优劣势。



刘彦彬:QQ音乐 高级产品经理。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
网易云音乐是如何做到和那些妖艳贱货不一样的
用户画像
用户画像系列—当我们聊用户画像,我们在聊什么?
在头部互联网电商大厂当数据分析师,是种什么体验? | 学员分享
用户画像的方法与案例
漫谈今日头条、大数据与智能推荐算法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服