个性化推荐
第一部分:简单了解个性化推荐系统
如今已经进入了一个数据爆炸的时代,随着 Web 2.0 的发展, Web 已经变成数据分享的平台,那么,如何让人们在海量的数据中想要找到他们需要的信息将变得越来越难。
在这样的情形下,搜索引擎(Google,Bing,百度等等)成为大家快速找到目标信息的最好途径。在用户对自己需求相对明确的时候,用搜索引擎很方便的通过关键字搜索很快的找到自己需要的信息。但搜索引擎并不能完全满足用户对信息发现的需求,那是因为在很多情况下,用户其实并不明确自己的需要,或者他们的需求很难用简单的关键字来表述。又或者他们需要更加符合他们个人口味和喜好的结果,因此出现了推荐系统,与搜索引擎对应,大家也习惯称它为推荐引擎。
来看下推荐引擎的工作原理:
推荐引擎的工作原理
如上图,一个完整的推荐系统由4个部分组成:
1、推荐对象(物品信息)模块
推荐系统应用于不同的领域,它推荐的对象也就各不相同,如何对推荐对象进行描述对推荐系统也有很重要的影响,推荐对象的描述文件与用户的描述文件密切相关,通常的做法是同样的方法来表达用户的兴趣偏好和推荐对象。
2、 收集用户信息的行为记录模块
负责记录用户的喜好行为,例如问答、评分、购买、下载、浏览等;具体有:
• 用户属性:基本信息,包括社会属性和自然属性,比如用户的姓名、年龄、职业、收入、学历,用用户注册时的自然属性和社会属性进行初始建模。
• 用户手工输入的信息:用户主动提供给提供给系统的信息,包括用户在搜索引擎中输入的关键词,用户输入的感兴趣的主题、频道。
• 用户的浏览行为和浏览内容:浏览次数、频率、停留时间,浏览页面时的操作(收藏、保存、复制等)、浏览时用户表情的变化
• 推荐对象的属性特征:不同的推荐对象,用户建模的输入数据也不同。网页等推荐对象通常考虑对象的内容和用户之间的相似性,而产品等推荐对象通常考虑用户对产品的评价。
3、 分析用户喜好的模型分析模块
通过以上用户行为记录分析用的潜在喜好产品和喜好程度。模型分析模块的功能能够对用户的行为记录进行分析,建立合适的模型来描述用户的喜好信息。
4、推荐算法模块
利用后台的推荐算法,实时地从产品集合中筛选出用户感兴趣的产品进行推荐,其中,推荐算法模块是推荐系统中最为核心的部分。
1)协同过滤系统
1.1基于用户的协同过滤推荐
基本思想:用户选中某个推荐对象是基于朋友的推荐。也就是说如果一些用户对某些对象的评分比较相似,则说明这些用户的偏好相似,那么他们对其他推荐对象的评分应该也是相似的。所以协同过滤推荐首先找到和目标用户兴趣偏好相似的最近邻居,然后根据邻居们对推荐对象的评分来预测目标用户对未评分的推荐对象的评分,选择预测评分最高的若干个推荐对象作为推荐结果反馈给用户
1.2基于项目的协同过滤推荐
基于项目的协同过滤推荐的基本原理也是类似的,只是说它使用所有用户对物品或者信息的偏好,发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户
1.3基于模型的协同过滤推荐
利用用户c对众多对象的评分来得到一个用户c的模型,进而对某对象预测打分。和上述两种协同推荐的不同在于对已有数据应用统计和机器学习的方法得到模型进行预测的。
协同过滤系统有以下优点:
具有推荐新信息的能力,可以发现用户潜在的但自己尚未察觉的兴趣偏好;能够推荐艺术品、音乐、电影等难以进行内容分析的产品。
问题:
冷启动问题(缺少历史数据时,如何对新用户进行推荐?如何推荐新产品?)、打分稀疏性问题(实际系统中用户对产品的打分信息非常少)、算法可扩展性问题、基于用户的协同过滤,会随着用户数不断增加之后,计算量加大,算法的性能会下降;亚马逊采用基于产品的协同推荐,能够有效规避这个问题,但如果产品数不断增加的系统,这种方法同样是不适用的。在web应用中,相应速度也是十分影响用户体验的,因为这点比较大的限制了基于用户的协同过滤在实际系统中的使用。
2)基于内容的推荐系统
基于内容的推荐,它是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用 机器学习的方法 从关于内容的特征描述的事例中得到用户的兴趣资料,再考察用户资料与待预测项目的相匹配程度。
例如,电影推荐中,基于内容的系统首先分析用户已经看过的打分比较高的电影的共性(演员、导演、风格等),再推荐与这些用户感兴趣的电影内容相似度高的其他电影,基于内容的推荐算法的根本在于信息获取和信息过滤。因为在文本信息获取与过滤方面的研究较为成熟,现在很多基于内容的推荐系统都是通过分析产品的文本信息进行推荐。
基于内容推荐方法的优点是:不需要其它用户的数据,没有冷开始问题和打分稀疏问题。能为具有特殊兴趣爱好的用户进行推荐。能推荐新的或不是很流行的项目,没有新项目问题。通过列出推荐项目的内容特征,可以解释为什么推荐那些项目。已有比较好的技术,如关于分类学习方面的技术已相当成熟。
_缺点是要求内容能容易抽取成有意义的特征,要求特征内容有良好的结构性,并且用户的口味必须能够用内容特征形式来表达,例如自动提取多媒体数据(图形、视_频流、声音流等)的内容特征具有技术上的困难,这方面的相关应用受到了很大限制。
3)混合推荐算法
在现行的推荐往往都不是单纯只采用了某一种推荐的机制和策略,他们往往是将多个方法混合在一起,从而达到更好的推荐效果。如:
• 加权的混合(Weighted Hybridization): 用线性公式将几种不同的推荐按照一定权重组合起来,具体权重的值需要在测试数据集上反复实验,从而达到最好的推荐效果。
• 切换的混合(Switching Hybridization):其实对于不同的情况(数据量,系统运行状况,用户和物品的数目等),推荐策略可能有很大的不同,那么切换的混合方式,就是允许在不同的情况下,选择最为合适的推荐机制计算推荐。
• 分区的混合(Mixed Hybridization):采用多种推荐机制,并将不同的推荐结果分不同的区显示给用户。其实,Amazon,当当网等很多电子商务网站都是采用这样的方式,用户可以得到很全面的推荐,也更容易找到他们想要的东西。
• 分层的混合(Meta-Level Hybridization): 采用多种推荐机制,并将一个推荐机制的结果作为另一个的输入,从而综合各个推荐机制的优缺点,得到更加准确的推荐。一些混合推荐系统都是基于内容的协同过滤算法。即利用用户的配置文件进行传统的协同过滤计算.用户的相似度通过基于内容的配置文件计算而得,而非共同打过分的产品的信息。这样可以克服协同过滤系统中的打分稀疏性问题。这个方法的另一个好处就是不仅仅当产品被配置文件相似的用户打了分才能被推荐,如果产品与用户的配置文件很相似也会被直接推荐。网易云音乐就有用到这个算法去解决冷启动问题,当新用户用新浪微博登录网易云音乐时,会根据微博的信息去做个性化推荐,即使这个时候你什么都没有听过也能推荐音乐给你。
第二部分:协同过滤推荐之基于用户的协同过滤推荐(以麦包包为例)
基于用户的协同过滤推荐,基本思想:用户选中某个推荐对象是基于朋友的推荐。也就是说如果一些用户对某些对象的评分比较相似,则说明这些用户的偏好相似,那么他们对其他推荐对象的评分应该也是相似的。
所以协同过滤推荐可以简单拆解为三步:
1、找到和目标用户兴趣偏好相似的最近邻居;
2、根据邻居们对推荐对象的评分来预测目标用户对未评分的推荐对象的评分;
3、选择预测评分最高的若干个推荐对象作为推荐结果反馈给用户
下面以麦包包为例,阐述上述三步是怎么开展的。
1、麦包包是如何找到和目标用户相似的最近邻居呢?
麦包包有一个基于用户的标签系统,会给用户打标, 然后根据这些标签来判断用户之间的距离 。麦包包现在的标签,每个顾客有256个标签,分三类:
第一基础性标签 ,你是哪儿人,什么年龄,什么星座,每个月能挣多少钱,每个月花在互联网的钱是多少,用什么邮件,哪儿注册,反馈情况怎么样;
第二类行为属性标签 ,主要三个:1、访问路径;是从官方首页,还是直接从外面的CPS到单品页,看了哪些产品,看了多长时间;2、营销反馈;今天发了短信/邮件给你,打开的时间,看了多久;3、互动参与;分享、评价或参与平台的其它互动;
第三类是购买属性标签 ,包括:1、RFM值,最近的购买时间,购买的频次,购买的金额;2、消费偏好;品牌/颜色/尺码/客单价等。
2、 麦包包如何根据目标用户的邻居来给她们推荐商品?
可以将目标用户大概分三类:没有注册,注册没有买,注册买过的。没有注册的用户比较难拿到她们的信息,做个推不易,但是注册用户就有思路做了。
注册未购买 的,假设来了五个人,都没有买,但是恰恰用户标签跟我们1的1万人是很相似的。这1万多人用什么营销的邮件,我们就会发类似内容的邮件,甚至考虑发送的时间。
购买之后 ,就进入另外一个纬维度了,主要是:保持组、唤醒组、激活组、流失组。举一个例子,有一个同事买了一个包,我们发现,这类的会员标签买包的时候有什么特性,今天有10万人跟他类别差不多,这10万人更喜欢第二天收到哪些内容。之所以做这么多,是不让顾客讨厌你,让顾客感觉每个人收到的邮件、短信和接触的营销都是不一样的,都是个性化的。互联网没有办法解决线下场景,你去诺蓝家纺,线下给你介绍,叫做温度营销。互联网是冷冰冰的,有温度营销是要根据它的标签和待的时间,把他需要的东西给到他。
麦包包的会员打标的协同过滤方法,跟淘宝和京东的猜你喜欢还是不一样的,它比较像传统的CRM,形式也是像传统CRM那样通过短信和邮件来推送,而不是直接在页面上展示。
第三部分:协同过滤推荐之基于项目的协同过滤推荐(以亚马逊为例)
基于项目的协同过滤推荐的基本原理,与基于用户的也是类似的,只是说它使用所有用户对物品或者信息的偏好,发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户,可参考下图:
基于物品的协同推荐
其实基于项目的协同过滤推荐机制是 Amazon 在基于用户的机制上改良的一种策略,因为在大部分的 Web 站点中,物品的个数是远远小于用户的数量的,而且物品的个数和相似度相对比较稳定,同时基于项目的机制比基于用户的实时性更好一些。但也不是所有的场景都是这样的情况,可以设想一下在一些新闻推荐系统中,也许物品,也就是新闻的个数可能大于用户的个数,而且新闻的更新程度也有很快,所以它的形似度依然不稳定。所以,其实可以看出,推荐策略的选择其实和具体的应用场景有很大的关系。
基于项目的协同推荐在亚马逊中的应用
Amazon 作为推荐引擎的鼻祖,它已经将推荐的思想渗透在应用的各个角落。Amazon 推荐的核心是通过数据挖掘算法和比较用户的消费偏好与其他用户进行对比,借以预测用户可能感兴趣的商品。对应于第一部分的各种推荐机制,Amazon 采用的是分区的混合机制。采用多种推荐机制,并将不同的推荐结果分不同的区显示给用户。
登录亚马逊之后,随机点开一个商品,在商品描述下面会出现_ 【购买此商品的顾客也同时购买】 _栏目,这就是非常典型的基于项目的协同过滤推荐,通过推荐跟我有同样兴趣的用户购买的产品,能帮我更快速地找到感兴趣的产品。
购买此商品的顾客同时也购买
同时,你是不是也想起在其它地方貌似也见过这个呢?比如拉勾的,投递了这个岗位的人还投递了xx职位之类的。
第四部分:基于内容的推荐系统
基于内容的推荐,它是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用 机器学习的方法 从关于内容的特征描述的事例中得到用户的兴趣资料,再考察用户资料与待预测项目的相匹配程度。
基于内容的推荐系统一个难点在于如何找到两个项目之间的相似点,要找项目之间的相似点,就必须要对项目有比较明确的特征描述方式。
对于推荐项目目前没有统一的标准进行描述,主要有 基于内容的方法 和 基于分类的方法 两大类方法。
针对文档类对象的这两个表示方法给予分析:
• 基于内容的方法是从对象本身抽取信息来表示对象,使用得最广泛的方法是用加权关键词矢量,该方法通过对一组文档的统计分析得出文档的特征向量;比如你看了哈利波特I,基于内容的推荐算法发现哈利波特II-VI,与你以前观看的在内容上面(共有很多关键词)有很大关联性,就把后者推荐给你,这种方法可以避免Item的冷启动问题。
• 基于分类的方法是把推荐对象放入不同类别中,这样可以把同类文档推荐给对该类文档感兴趣的用户了。如果用户之前阅读过科技类的文章,或者用户的个人资料显示科技相关,而刚好有一篇文章也是科技类的,那么就算可以把这篇文章推荐给用户。
第五部分:混合的推荐机制
很少有app或网站是只采用一种推荐方式的,大部分都是采用混合的推荐机制,应用得比较多的是基于内容的推荐+协同过滤推荐。
大部分思路是利用基于内容的推荐去解决冷启动问题,积累足够多的用户特征和项目特征之后,利用协同过滤推荐就可以给用户推荐更多甚至用户都没有意识到的他感兴趣的东西,给用户更多惊喜。
接下来举个豆瓣的例子,豆瓣是比较典型的基于内容的推荐+协同过滤
下载豆瓣,注册之后,在进入主页之前会先让你选兴趣标签,这就是利用基于内容的推荐的优势,解决协同过滤的冷启动问题;
进入首页前可以先选择兴趣标签
当然用户也可以直接跳过这一步,这时候的为你推荐可根据你使用第三方app账号登录时,根据第三方app的相关特征描述对你进行推送,或者随机推送等也可以解决冷启动的问题,但可能并不是那么精准了。
下面来看下豆瓣猜,关于豆瓣猜,官方给出过如下说明:
_你的个人推荐是根据你的收藏和评价自动得出的,每个人的推荐清单都不同。你的收藏和评价越多,豆瓣给你的推荐会越准确和丰富。_每天推荐的内容可能会有变化。随着豆瓣的长大,给你推荐的内容也会越来越准。__
从以上说明可以看出豆瓣猜是采用了基于用户的协同鼓励推荐,因为用户的收藏和评价是十分影响推荐的准确性的,这说明豆瓣依据用户的收藏和评价等信息来计算用户之间的距离,距离越近的用户会被定义为品味相似的用户,那么豆瓣猜会推荐与你品味相似的那群伙伴对某个item的喜欢程度来决定是否将它推荐给你
豆瓣为你推荐
豆瓣是允许用户进入【设置-兴趣标签】调整自己的兴趣标签的,能够比较方便地调教推荐系统,亚马逊也提供了类似的功能,感兴趣的朋友可以去登录自己的亚马逊看下。
设置-编辑兴趣标签
文/聪明的真真
关键字:产品经理, 产品设计, 推荐
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!