个性化推荐系统综述

     

1、推荐系统概念算法

一、推荐系统定义api

维基百科:推荐系统属于资讯过滤的一种应用。推荐系统可以将可能受喜爱的资讯或实物(例如:电影、电视节目、音乐、书籍、新闻、图片、网页)推荐给使用者。网络

推荐系统大致可分为两类,即个性化推荐和非个性化推荐。分布式

二、推荐系统做用工具

从用户角度:oop

  • 提升用户忠诚度
  • 帮助用户快速找到商品

从网站角度:性能

  • 提升网站交叉销售能力
  • 提升成交转化率

好的推荐系统更像一个有经验的网站导购员学习

三、推荐系统与其余系统的区别大数据

推荐与搜索优化

相同点:帮助用户找到商品

不一样点:搜索是经过用户主动输入的关键字进行查询。推荐则是用户在浏览网站的过程当中,不必定须要用户输入,根据当前网页的上下文进行个性化的信息输出。

推荐与广告

相同点:基于用户行为

不一样点:广告目的是帮助商家推广商品等,推荐系统帮助用户找到想要的商品等。

推荐与SNS

相同点:它们都有基于人群的共同点产生推荐

不一样点:一个是机器,一个是人工

四、推荐系统的主要产品

  • 同类或者相关商品、店铺推荐
  • 买了还买、看来还看等
  • 猜你喜欢
  • 群体信息披露
  • 热门排行榜
  • etc

2、推荐系统的组成

一、数据

  • explicit(显式):能准确的反应用户对物品的真实喜爱,但须要用户付出额外的代价。如:用户收藏、用户评价。
  • Implicit(隐式):经过一些分析和处理,才能反映用户的喜爱,只是数据不是很精确,有些行为的分析存在较大的噪音。如:用户浏览、用户页面停留时间、访问次数。

二、算法

  • 离线:用户类目偏好、用户购买力分析、关联性分析、类似矩阵计算等等
  • 在线:排序、过滤、增量计算

算法须要配合大量业务规则,没有最好,只有更好!

三、消息系统

消息系统是大型系统不可或缺的重要组成部分,与其余系统解耦,消息转发。

四、搜索引擎

主要功能是进行文本分析抽取关键词,做为推荐系统的一个信息检索技术内容相关性匹配。

五、NoSQL

简单、高性能、方便定制

六、分布式计算

使用MapReduce , Hive、Hadoop进行大规模数据统计和运算和大数据集合的ETL

3、淘宝的推荐系统

一、淘宝数据特色

  • 数据量巨大:数百万店铺、数亿激活用户、数亿的在线商品、数十亿的收藏信息…
  • 商品问题:同一类商品多个卖家、标类非标类、类目属性正确性、恶意收藏、刷信誉…

二、淘宝推荐系统应用场景

目前覆盖大小场景60多个,主要包括

  • Detail 浏览了还浏览
  • 收藏夹弹出层推荐
  • 购物车弹出层推荐
  • 已买到宝贝你可能感兴趣
  • 淘宝无线应用
  • EDM(重复购买提醒)
  • 各个垂直频道
  • 个性化list排序
  • 开放平台api

淘宝业务产品丰富,推荐功能穿插其中,推荐功能涵盖的范围更广,不少场景推荐算法与业务规则相关。

三、淘宝推荐系统算法

①基础算法:聚类算法,预测算法,分类算法等,主要用于产生基础知识库

  • 预测算法:logistic 回归,经过以点击率为目标,以商品,卖家等因素做为指标,创建预测模型构建淘宝优质宝贝库
  • 分类算法:朴素贝叶斯,商品性别判断(男性,女性,中性),用户性别判断
  • 聚类算法:人群,用户细分,用于降维

②推荐算法:content-based,collaborative-based,Association Rules等等

基于内容推荐:经过给用户和商品标注Tag,经过内容匹配算法,推荐商品给用户

  • 优势:简单,搜索引擎支持,解决部分冷启动问题
  • 缺点:难以区分商品信息的品质,并且不能为用户发现新的感兴趣的商品,只能发现和用户已有兴趣类似的商品

协同思想

  • 优势:新奇特,个性化程度高
  • 缺点:冷启动,稀疏性

关联规则:类目的相关性、商品相关性、人的相关性

四、推荐系统的效果评测

  • Offline: 给定输入输出,验证系统的输出
  • Online : ABTest (衡量指标:CTR GMV 转换率)

五、淘宝推荐系统的设计

  • 提供统一的平台管理各个推荐模块
  • 提供高性能分布式存储
  • 提供算法的AbTest和效果统计
  • 提供灵活算法配置

①   分布是存储:Treasure

  • 存储云梯(hadoop)上对用户、商品等原始数据分析的结果
  • 云梯周期性同步,无实时更新
  • 为推荐系统提供ABTest存储支持
  • 可直接存储部分推荐算法的结果供推荐使用
  • 动态部署

②调度系统

  • 负责周期性云梯(hadoop)任务调度
  • 分布式
  • 生产者 消费者

③协调系统

  • Zookeeper集群
  • 智能路由
  • 线上与线下联动通知
  • Job依赖通知

总结:推荐系统是须要不断创新而且与场景和行业有事紧密的关系

产品推荐分2种,一种是以营销为目的,一种是真心以为好。今天只谈第一种。

以前咱们也作过一个,自认为不错,客户和客服的反馈也好,惋惜没能正式上线,至今hold。思路很简单,“客户告诉咱们他愿意花多少钱[X],但愿获得什么效果[Y],咱们帮他们选择合适的路径[P]。”其中,X相对容易得到,Y则因自己的多样性须要先作细分,抽象成可量化的特征。而后对每一个特征,选取路径P1.P2……Pn,作组合分析,最后是将全部的Y的特征放一块儿作全局优化。固然,投入的可能不止是钱,也多是时间什么的,不过那么算的话,就太复杂了。

咱们最后只完成了如此宏大理想的第一步,即在客户说我要走第一条路时,咱们告诉他你应该穿什么鞋……提及来好细节呀……那时咱们能看到的路径就一两条,还尽是泥泞,生怕把客户引过去人家不乐意,或是走着走着摔跤了,修第一条路的人也不给力,一直说着“要不等咱们再修好点,你再带人来?”哎,反正很纠结。

最后的结论是时机未到,还需等待。

悲催!

这几天又想起这事,发现产品推荐的思路不老是靠谱,只有在特定环境下,才能作得有意义。

首先,客户的诉求实在太难抽象和量化了。他们常说的“这个产品作得很差”“它没达到我想要的效果”诸如此类,都是很难处理的反馈,当你再追问下去或是表示但愿他们能说得再细化一些,他们会想想,回答两个字“感受”呀……总之,能清晰描述需求的客户很少。若是你再问他,你是注重A呢仍是B?回答都想要的客户基本占了90%。

其次,客户没你想得那么傻也没太聪明,但他们多数很懒。一个新产品意味着一套新内容新要求新操做,对大多数人来讲,若是现有的已经能知足他,就不会有强烈的尝试冲动,特别是当尝试还要付费的时候。因此,在新产品上线前作小流量试验,为了征集到更多的自愿客户,常采起免费试用或至少半价的推广方式。从实际经验看,能招募到8个左右的大客户已属上佳。

第三,客户真的须要产品推荐吗。本周我还就这个话题专门找了几个相熟的客服,她们也帮我问过了客户。答案差很少,客户不须要,客服能够看看。客户一般会对推荐类的东西抱着怀疑态度,他们知道你的目的是营销,潜意识会想你是否是要我掏钱啊,蛮抗拒的。想一想你接到保险公司电话时的反应吧,和那个差很少。客服呢,毕竟有工做压力,他们以往的推荐经验多半是来源于我的积累、同事分享和一些帮助文档,不多有实时的可参考的数据和信息,更没有相似的工具以辅助,因此挺欢迎。另外还说一点,客服不但愿这样的产品开放给客户,特别是有详细数据和趋势图的,主要是怕解释成本会增长。

也有好消息,好消息是大部分客户很爱问别人怎么作的,竞争对手啊,同行业的都在作什么,看到不错的产品也会主动询问。好比最近很火的百度开放平台,咨询的就挺多。惋惜客服问个人时候,我也彻底不了解……

就是下面这个。

说到这里,我就想,产品推荐换种形式会不会更好?

昨晚去泰好味吃饭,每一个桌上的餐牌上都写着上个月的销售状况,第一名是冬阴功汤,卖出500多份,第二名好像是凤梨饭,共列了十多道菜,都写清楚了6月份销售的份数。以往去吃饭前都爱查大众点评,看看哪些是招牌菜,餐厅的这个举动倒省了初来的食客不知点什么的烦恼,看起来好贴心,比服务员说“咱们这里的xxx卖得很好”,一看价格,心中涌起“贵死了”的反感情绪要好得多。

那产品推荐能这么作吗?

既然客户想知道,咱们就适当告知其余人在用什么,或者最近什么红,充分利用人们的从众心理。若是能保证数据和资料的真实性,能创建起畅通的反馈机制,能让用户清晰地表达出须要什么不要什么,有了必定量的积累后,再开始作推荐。

如今作推荐的一般场景,是面对一个没有头像喜爱不明的客户,可能连他的性别都搞错。通常的,从他的用户ID和注册时填写的基本信息,最多还有在其余产品线的表现状况,能略知一二。以前咱们用和该客户同类型的客户数据作了预估,也用真实数据对预估的作了检验,结果并不许确。想一想也是必然,用过去的经验预估将来都不必定准,用别人过去的状况去看怎么可能准呢。

我所了解的产品推荐就这么多了,总结一下。

1. 若是客户能清晰地说明投入和但愿的产出,且对路径无任何偏好,即按照你推荐的结果去执行,事情会简单得多。

2. 产品推荐创建在对客户和对产品的充分了解之上。二者都在变更,会很难。

3. 其实就是性价比和最优分配的问题,但不少数据未知,难求最优解。解的方法已经有了,在此不方便透露。

4. 推荐是趋势,时机仍未到。在现今,或许作排行榜类的效果更好。对相同的数据,客户会有不一样的解读和选择。他们会为本身的决策负责,却不必定愿意为你的推荐买单。

 

 

互联网技术的迅速发展使得大量的信息同时呈如今咱们面前,传统的搜索算法只能呈现给全部的用户同样的排序结果,没法针对不一样用户的兴趣爱好提供相应的服务。信息的爆炸使得信息的利用率反而下降,这种现象被称之为信息超载。个性化推荐,包括个性化搜索,被认为是当前解决这个问题最有效的工具之一。推荐问题从根本上说是代替用户评估它从未看过的产品,这些产品包括书、电影、CD、网页、甚至能够是饭店、音乐、绘画等等。

个性化推荐系统经过创建用户与信息产品之间的二元关系,利用已有的选择过程或类似性关系挖掘每一个用户潜在感兴趣的对象,进而进行个性化推荐。高效的推荐系统能够挖掘用户潜在的消费倾向,为众多的用户提供个性化服务。 一个完整的推荐系统由3个部分组成:

  • 收集用户信息的行为记录模块
  • 分析用户喜爱的模型分析模块
  • 推荐算法模块

推荐算法模块是最核心的部分。根据推荐算法的不一样,推荐系统能够分为以下几类:

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

1. 协同过滤系统

第一代被提出并获得普遍应用的推荐系统。如amazon的书籍推荐,Jester的笑话推荐,等等。

1)核心思想:利用用户的历史信息计算用户之间的类似性——>利用与目标用户类似性较高的用户对其余产品的评价来预测目标用户对特定产品的喜爱程度——>根据喜爱程度来对目标用户进行推荐。

在计算用户之间类似度时,大部分都是基于用户对共同喜爱产品的打分。最经常使用的方法是Pearson相关性和夹角余弦。

协同过滤推荐系统的算法能够分为两类,基于记忆(memory-based)&基于模型(model-based)。前者是根据系统中全部被打过度的产品信息进行预测,注重于预测用户的相对偏好而不是评分绝对值;后者是收集打分数据进行学习并推断用户行为模型,再对某个产品进行预测打分。

2)优势:

  • 发现用户潜在的兴趣偏好,推荐新信息
  • 能推荐难以进行内容分析的产品

3)缺点:

  • 因为是基于用户对产品的评分,因此对新用户进行推荐或者是对用户推荐新产品,精度不高
  • 随着用户量的增多,计算量呈线性增长,影响系统的性能

2. 基于内容的推荐系统

是协同过滤技术的延续与发展。

1)核心思想:分别对用户和产品创建配置文件——>比较用户与产品配置文件的类似度——>推荐与其配置文件最类似的产品。

例如,在电影推荐中,基于内容的系统首先分析用户已经看过的打分较高的电影的共性(演员、导演、风格等),再推荐与这些用户感兴趣的电影内容类似度很高的其余电影。基于内容的推荐算法根本在于信息获取和信息过滤。由于在文本信息获取与过滤方面的研究较为成熟,现有不少基于内容的推荐系统都是经过分析产品的文本信息进行推荐。 在信息获取中,最经常使用的是TF-IDF方法

2)优势:

  • 能处理新用户、新产品的问题(冷启动)
  • 实际系统中用户对产品的打分信息很是少,基于内容的推荐系统能够不受打分稀疏性问题的约束
  • 能推荐新出现的产品和非流行的产品,发现隐藏信息
  • 经过列出推荐内容的特征,能够解释为何推荐这些产品,使用户在使用时具备更好的用户体验

3)缺点:

  • 受到信息获取技术的约束,例如自动提取多媒体数据(图形、视频流、声音流等)的内容特征具备技术上的困难
  • 若是两个不一样的产品刚好用相同的特征词表示,这两个产品就没法区分
  • 若是一个系统只推荐与用户的配置文件高度相关的产品,那么推荐的只能是与用户以前购买过的产品很是类似的产品,没法保证推荐的多样性

3. 基于网络结构的推荐算法

仅仅把用户和产品的内容特征当作抽象的节点,全部算法利用的信息都藏在用户和产品的选择关系中。

1)核心思想:创建用户—产品二部图关联网络

对于任意目标用户i,假设i选择过全部的产品,每种产品都具备向i推荐其余产品的能力,把全部i没有选择过的产品按照他喜欢的程度进行排序,把排名靠前的推荐给i。

在一样的用户喜爱程度下,推荐冷门的产品要比推荐热门的产品意义更大。在一样精确度下,推荐的产品数量越少越好。

提升精确度的方法还有:

  • 去除重复性
  • 经过引入耦合阈值(即只考虑类似性大于或等于给定阈值的用户以及和这些用户链接的产品)

2)优势:开辟了推荐算法研究的新方向

3)缺点:

  • 一样面临着新用户新产品的问题。新用户或新产品刚进入系统时没有任何选择或被选信息,系统没法与其余用户或产品创建关联网络
  • 受到用户选择关系创建时间的影响,若是把用户与产品的全部关联关系都考虑在内,没法区分出长期兴趣和短时间兴趣点,过多地考虑长期兴趣点会使系统没法给出知足用户短时间兴趣的产品,大大下降推荐准确度

4. 混合推荐

将上述几种推荐方法有机结合,实际的推荐系统中最多见的是基于协同过滤和基于内容的。

1)独立系统相互结合

独立的应用协同过滤,基于内容和基于网络结构的算法进行推荐,而后将两种或多种系统的推荐结果结合,利用预测打分的线性组合进行推荐。或者,只推荐某一时刻在某一评价指标下表现更好的算法的结果。

2)在协同过滤系统中加入基于内容的算法

利用用户的配置文件进行传统的协同过滤计算,用户的类似度经过基于内容的配置文件计算得出,而非共同打过度的产品的信息。这样能够克服协同过滤系统中的稀疏性问题,另外,不只仅是当产品被配置文件类似的用户打了分才能被推荐,若是产品与用户的配置文件很类似也会被直接推荐。

5. 其余方法

1)关联规则分析:关注用户行为的关联模式。如买了香烟的人大多会购买打火机,所以能够在香烟和打火机间创建关联关系,经过这种关系推荐其余产品。

2)基于社会网络分析的推荐算法:如利用用户的购买行为创建他对产品的偏好类似性,依此向用户推荐产品并预测产品的销售状况,从而增强用户黏性。

相关文章
相关标签/搜索