淘宝推荐系统的学习

jopen 10年前

一、推荐系统概念

1、推荐系统定义

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

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

2、推荐系统作用

从用户角度:

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

从网站角度:

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

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

3、推荐系统与其他系统的区别

推荐与搜索

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

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

推荐与广告

相同点:基于用户行为

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

推荐与SNS

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

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

4、推荐系统的主要产品

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

二、推荐系统的组成

1、数据

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

2、算法

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

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

3、消息系统

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

4、搜索引擎

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

5、NoSQL

简单、高性能、方便定制

6、分布式计算

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

三、淘宝的推荐系统

1、淘宝数据特点

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

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

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

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

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

3、淘宝推荐系统算法

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

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

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

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

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

协同思想

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

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

4、推荐系统的效果评测

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

5、淘宝推荐系统的设计

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

①   分布是存储:Treasure

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

②调度系统

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

③协调系统

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

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