推荐系统应用研究:音乐电台

推荐系统很少有单独的产品形态,多是和其他产品相结合,起到辅助的使用效果。如个人平时使用较多的推荐系统有输入法的字词联想、购书网站中书籍推荐、音乐电台的猜用户喜欢的音乐和谷歌阅读器的推荐条目。

douban

对于豆瓣音乐频道使用较少,虽然对音乐没什么研究,也不会买什么专辑或者听演唱会,但是很喜欢听音乐,有边工作边听音乐的习惯。豆瓣电台迄今累计收听13670首、喜欢136首和不喜欢666首,算是电台的重度用户吧,个人操作行为有:

  • 作为工作时间的背景音乐,处于后台运行状态。有时候工作入神,只要不是特别讨厌或者特别喜欢的歌曲一般不会去访问电台网页。
  • 离开工位的时候,拿下耳机不关闭音乐,1万多首歌里起码有30%没有真正听。
  • 听到广告和“哈狗帮”之类吵闹的音乐会找到电台的网页,选择不喜欢,无法停止的广告直接点击关闭电台,因为很容易导致走神影响工作。
  • 听到喜欢的音乐60%的概率会找到电台网页点击“喜欢”。
  • 发现特别喜欢或者寄希望能推荐相关歌曲时会去点击“喜欢”。
  • 听到不怎么喜欢的音乐也会选择点击“下一首”。

豆瓣电台推荐新歌力度比虾米网强,操作也更方便,不需要像虾米网的初始化时选择喜欢的歌手和选择喜欢音乐之后要选择标签,更加智能化,减少操作步骤。虾米的歌库好像不够全,多是推荐大众化的歌曲,但推荐的形式比豆瓣更丰富和取巧。

豆瓣不支持按歌手和专辑听歌,如果连续点击三次“不喜欢”没有听到喜欢的音乐或者经常播放讨厌怨女情歌,可能会选择听虾米网歌手专辑。如果能选择只听自己已经选择喜欢的100多首歌曲,或许不会切换到其他产品。

douban2

豆瓣电台通常作为浏览器的书签单独存在,通常直接访问豆瓣电台而不会从豆瓣主页再访问豆瓣电台,从电台返回到豆瓣主页只能手动修改网址或者点击专辑的链接查看专辑再返回主页。把喜欢歌曲的红心去掉,是不是意味着用户不再喜欢这首歌并要跳到下一首歌。

豆瓣电台在开始做之前,已经有了比较完善的初始化的数据,大部分专辑都有标签和评分,如专辑《我们是五月天》的相关元数据为:

  • 9592人平均评分为9.3。
  • 标签有:五月天(2450),台湾(701) MAYDAY(644),我们是五月天(374),摇滚(338),我们是:),五月天(264),rock(201),pop(160)
  • 每首歌收藏的人数。

从以上的标签可以看出,歌手、地区和音乐风格是用户的常用标签,可以假设这三个标签是影响用户选择的最主要元数据。英文MAYDAY、五月天、我们是五月天和我们是:),五月天是等价的标签,摇滚和rock是等价的标签,不存在像谷歌挑歌那样的互斥性标签(如节奏的舒缓和强烈)。从这个例子也可以看出用户语言具有模糊性,有必要使用受控词表来控制同义标签的不同语言表达方式。

豆瓣的用户群比较小众化,添加的标签质量比较高,使用标签可以简单地组织歌曲之间的联系,利用评分、收藏人数和标签数目可以确定推荐的优先级。

如用户在电台中选择喜欢专辑《我们是五月天》中的歌曲《拥抱》,那可能依照歌手推荐会更可靠,用户选择多首五月天的歌曲,那可以认定是五月天的粉丝了,歌库中添加了五月天的新歌,自当第一时间推荐。

与风格相比,地区的影响程度更低,但是不排除部分用户有这方面的偏好,比如只听华语的歌曲,这需要经过决策树之类方法多次推荐才能论证。选择风格“摇滚”,可以推荐标签为摇滚并且评分比较高的歌手,逐步确认用户的音乐喜好模型。在大力推荐歌曲之前,可以先完成对用户喜欢歌曲的收集。在不确定的情况下,可以多播放已喜欢的音乐或者喜欢歌手的热门歌曲。

用户喜欢的歌手有很多,但是喜欢的风格不会很多,同一风格下有很多歌手,用户喜欢的风格比歌手更复杂和模糊。歌手之间是并列的标签,而风格会形成明显的偏向。随着时间的改变,风格也会发生改变。

另外,标签要和歌曲更吻合,听到电台推荐杂音多的五月天演唱会歌曲,会选择不喜欢或者跳到下一首。系统或许会依此误以为用户不喜欢这首歌,低质量的歌曲会影响系统推荐的准确性。

博客挂马

15号20:01博客挂马,数据无故被人恶意删除,在蓝冰服务器供应商客服的帮助下恢复部分数据,保存在服务器上的图片全部丢失。本想一一添加图片,但是回头看看早期写的文章,于己于他人价值并不大,故原先的90多篇博文删除近半。

1.工具和流程图之类文章,网上随处可见。使用什么绘图工具和依照什么样的流程设计固然可以有助于设计,但并不是设计的主要问题,或者不是我等年轻之辈所得左右的问题。

2.翻译的iPhone的设计指南,需要的话还是看官网上原文。想看好的资料,英文还是必备的,翻译外文文献也是学习的重要途径之一。学会搜索相关资料、锻炼英文水平、锻炼组织语句的能力和学习老外写文章严谨的思维对于个人研究能力的提高大有裨益。通过翻译文章可以快速地组织自己的知识结构,提升自己的写作水平。

3.从工业设计转到交互设计,高质量的图片也见的够多,自己也喜欢展示些,但就职业发展来看,影响个人发展的不是设计能力,而是相对欠缺的逻辑思维能力和沟通能力。博客上少些图片也无大碍,最后能沉淀下来的还是文字和其背后的思想。

4.做手机交互设计,对技术的理解必不可少。最近由于个人兴趣研究推荐系统,不得不研究信息架构和技术性问题,现在的手机交互设计对于技术和设备还是有有很大的依赖性,设计无法独立成问题。

所以,借此机会更换博客模板,保留部分原创性文章,迭代至2.0,就当是工作一年零三个月的小结。

推荐系统的问题

推荐系统的基本原理是从数据库中匹配到根据分析用户行为推测出的喜好,根据推荐算法的不同,可以分为以下几种:

  • 协同过滤系统(collaborative filterring)
  • 基于内容的推荐系统(content-based)
  • 混合推荐系统(hybrid)
  • 基于用户-产品二部图网络结构(network-based)

其中数学公式居多,对于没有技术功底的设计人员来说有些晦涩难懂,个人尝试从产品设计的角度依次从数据、数据外围的产品和用户三个方面去分析,在分析之前需要了解以下问题:

1.关键元数据。元数据是关于数据的数据,可以用来描述和管理数据,如歌曲的演唱者、所属专辑、发行时间、发行公司和所属类别,《黑白》出自华纳2008年12月发行的方大同专辑《橙月 Orange Moon》。对于推荐系统而言,需要找到影响用户喜好的重要元数据,假设用户是方大同的粉丝,那演唱者是关键的元数据,用户可能还会喜欢此专辑中其他歌曲《小小虫》和《100种表情》,对于喜欢听新歌的用户,发行时间可能更为重要,还有可能因为用户喜欢听R&B。

baidumusic

结构化数据

2

非结构化数据

2.结构化和非结构化。元数据之间的结构化的组织(如歌曲的演唱者和演唱者所属的国籍)可以很方便获得,但这些的元数据通常只是关键元数据之一,还有非结构化的元数据(如节奏、声调和音色)也会影响用户的选择,数据之间的隐形联系只能通过大量的分析获得。

3.关联性。和用户的行为、背景、特征等相关,分析得出数据之间的规律性特征。常见的如购书网站上,购买了这本书的用户有40%购买了另外一本书。又如通过分析大量消费者的购买单挖掘出的数据关联性,得出啤酒和尿布之间的关联性。

4.多样性。关键元数据结构化的强弱影响产品的多样性,比如图书所属的类别复杂度高导致了图书的多样性,而音乐相对单一。产品的多样性意味着数据之间隐性的关联更为复杂,会增加分析的难度,推荐系统也更复杂。

5.时效性。数据更新的快慢和用户对新数据的需求影响数据的时效性,如热门论坛中帖子比博客中的文章时效性高。如微博和新闻这样时效性较高的数据要求服务器数据更新要高,时间影响推荐系统的重要数据。数据挖掘注重实时分析,根据用户的每次操作和新的数据的导入提供最新的推荐。

googlemusic

6.难以明确。要求用户用几个字词明确表述自己喜好什么样的产品是比较难的,用户的喜好会随着时间变化而改变。像Google的音乐推荐,对于大部分普通用户而言,那种节奏和音色选择到自己喜好的音乐会比较困难。推荐系统的意义在于根据用户的历史记录去推测用户的喜好,而不是让用户主动去选择。

xiami

7.标签。用户添加标签是组织数据的手动解决方法,但是也会导致其他问题:

  • 非自动化的解决方法会增加用户操作,难以挖掘数据之间的隐形联系。
  • 用户填写标签,由于词语的模糊性会导致标签过多,数据之间的联系会减弱,降低数据之间凝聚力。
  • 用户选择推荐的标签,易于理解的词语会导致数据凝聚力过强,导致数据偏向结构化,不利于用户发现感兴趣的内容。

8.打分机制。通常是五分制和两分制(喜欢/讨厌),分值越多,用户选择起来越麻烦,需要消除用户评价体系的差异性。用户协同过滤的内容偏向大众化,可以过滤到低质量的内容,但用户对小众化低分数的内容不一定就不感兴趣。通过调查问卷的方式,用户会选择每道题,而通过网络非强制性打分,用户不喜欢的内容很有可能不打分或者直接跳到下一个数据。

参考资料:

  1. 推荐系统的五大问题.《Resys china》
  2. 个性化推荐系统的研究进展.刘建国,周涛,汪秉宏.《自然科学进展》2009年1月第19卷第1期
  3. 豆瓣在推荐领域的实践和思考.王守崑
  4. 从web2.0到推荐引擎2.0.《学而时嘻之》

推荐系统的作用

推荐系统(recommender systems)是利用信息过滤技术向用户推荐其可能感兴趣的信息。推荐系统是有别于信息分类和信息搜索的信息处理方式。

leibie

信息分类是有序的按照时间/主题/类别/用户/任务等方式组织结构化信息,浏览分类信息可以帮助用户理解信息之间的组织方式,但是这种信息的呈现方式是基于用户已知目标信息的所属类别,用户认知事物偏向于模糊无序,难以从有序的信息中发现未知并感兴趣的信息。

sss

信息搜索是根据和群体行为相关的权重排序信息,带有任务的用户寄希望能快速搜索到感兴趣的内容之后再深入阅读,再带着新的任务继续搜索,而现实的情形是个体用户不得不调整关键词反复搜索处于长尾的信息。

随着信息的快速增长,信息重复和信息过多导致的被动获取的信息过载,通过搜索引擎主动获得高质量的信息也会花费更多的成本,推荐系统是解决这些问题最有潜力的方法,其作用在于:

  • 帮助用户快速发现感兴趣和高质量的信息,提升用户体验。
  • 增加用户使用产品时间。
  • 减少用户浏览到重复或者厌恶的信息带来的不利影响。
  • 提供个性化信息,信息的推荐更为精准。

手机客户端首页设计

如果客户端不支持像iPhone那样记载最后使用的情形,客户端开启之后,经过3秒左右的开机画面会进入首页。首页是用户使用客户端的第一界面,起到展现内容和引导用户使用的作用。如客户端的功能和内容比较简单,通常会采用“首页+设置”的单级形式,如客户端的功能和内容较多,无法一页完全展示,页面之间存在层级关系,那会采用“首页+多级页面+设置”的多级形式。

mzl.frzjstuh.320x480-75 mzl.lwbbtnqe.320x480-75
单级形式的iPhone客户端

smarttoday (1) mzl.opzpimpp.320x480-75

多级形式的iPhone客户端

首页在不同的客户端中不同的功能:

p_large_VnYt_22b70003230f2d13 p_large_btjD_22b7000323132d13

1.展现功能。如人人网iPhone客户端。

mzl.nagzcaeo.320x480-75 mzl.xeclkjor.320x480-75

2.展现内容。如腾讯微博iPhone客户端。

feature01

3.展现功能和内容。单级形式和比较复杂的多级形式的客户端的首页通常如此。

使用何种首页取决于客户端的类型和架构方式,内容为主的客户端,首页当然是展现内容。但是当客户端既有功能也有内容时,如何合理设计首页呢?是通过功能去查找内容,还是根据内容去使用功能?人人网的客户端的首页为展现功能“新鲜事/个人主页/好友……”,虽然是模仿Facebook的设计,不见得是最好的方案:

  1. 九宫格的设计比较死板,是继承物理按键手机的设计,没有发挥触摸屏手机的优势。
  2. 功能的切换必然要返回首页,增加操作步骤。
  3. 展现功能的首页基于的假设是功能之间比较并列的,没有明显的主次之分。而使用SNS的客户端先查看是否有消息推送,然后浏览朋友分享的内容,而”发状态/查看好友/传照片”等功能较弱。
  4. Android版本和iPhone版本几乎完全一样,没有发挥手机操作系统的特性,Android菜单键本可以承载更多的功能。

首页的设计最重要是引导用户使用,根据用户使用产品的需求安排或者推送用户最想看到的内容,而不是摆放几个功能让用户去挑选。就像用户进入衣服店时,看到的是整整齐齐的衣架,但没有推销衣服的广告,没有主打款式,也没有热情的服务人员。

mzl.tafwvgcx.320x480-75 mzl.mzgwckbq.320x480-75

大众点评网的iPhone客户端,标签栏“搜索”和“附件”中的内容几乎一样,都有“美食/小吃/咖啡厅”的信息分类,只是查询信息时的范围不同,这在“附件”中也有根据地理范围搜索信息,可以将“搜索”和“附件”归类成在一个标签内。大众点评网在是用户有需求再来查找内容,有分类有搜索,信息架构上比较简单。一方面要扩大数据库,完善内容,另一方面还要考虑如果向用户推送内容,精准化营销,基于LBS的客户端具有这样的优势。如何利用LBS、手机类型、用户的使用记录和偏好和好友的推荐等等手段去精准推送内容才是发展趋势。

另外,如果是手机客户端是主打的产品,不是像腾讯微博和淘宝那样属于web的衍生产品,当需要账号注册时,应该尽量放到用户看到首页,并且已经开始使用产品之后再邀请其注册。这时的首页还要起到推销产品的作用,展现内容是必不可少的了。