1.1 推荐系统简介
学习目标
- 了解推荐系统概念以及产生背景
- 记忆推荐系统工作原理以及作用
- 了解推荐系统与web项目区别
1 推荐系统概念以及产生背景
推荐系统经过多年的发展,已经成为了互联网产品的标配,也是AI成功落地的分支之一,在电商,咨询,音乐,短视频等应用中,推荐系统都是核心组件之一。
- 什么是推荐系统
没有明确需求的用户访问我们的服务,且物品信息量过载时,推荐系统经过一定规则对物品信息进行排序,并将排序在前的物品优先向用户展示。 - 信息过载&用户需求不明确
推荐系统的发展:分类目录>搜索引擎>推荐系统 -
推荐系统VS搜索引擎
2 推荐系统工作原理以及应用
- 推荐系统工作原理
- 社会化推荐 向朋友咨询、社会化推荐、让好友给自己推荐物品
- 基于内容的推荐 打开搜索引擎进行搜索
- 基于流行度的推荐 查看排行榜
- 基于协同过滤的推荐 找到和自己历史兴趣相似的用户
- 推荐系统的作用
- 高效连接用户和物品
- 提高用户停留时间和用户活跃度
- 有效的帮助产品实现其商业价值
- 推荐系统应用场景
购物推荐 音乐推荐 文章推荐
3 推荐系统和Web项目的区别
- 通过信息过滤实现目标提升 VS 稳定的信息流通系统
- web项目:处理复杂的业物逻辑,处理高并发,为用户提供一个稳定的信息流通服务
- 推荐系统:追求指标增长,留存率/阅读时间/GMV(电商网站成交额)/视频网站。从公司角度出发考虑问题
- 不确定性VS确定性
-web项目:对结果有确定预期
-推荐系统:结果是概率问题
1.2 推荐系统设计
学习目标
- 了解推荐系统要素
- 记忆推荐系统架构
1 推荐系统要素
- UI和UE(前端界面)
- 数据(Lambda架构)
- 业务知识
- 算法
推荐系统架构
-
推荐系统整体架构
推荐系统架构.PNG描述: Lambda架构从用户行为中采集数据,对数据进行处理,通过推荐算法计算出推荐结果,并将推荐结果通过包装推送给用户,用户对推荐做出反馈,Lambda架构再次采集用户的反馈行为数据。
-
大数据Lambda架构
- Lambda架构是一个实时大数据处理框架。
- Lambda架构将离线计算和实时计算整合,设计出一个能满足实时大数据关键特性的架构,数据关键特性包括有:高容错,低延时,可扩展等。
- Lambda的分层架构
- 批处理层
- 数据不可变,可进行任何计算,可水平扩展
- 高延迟 几分钟-几小时(计算量和数据量不同)
- 日志收集Flume
- 分布式存储:Hadoop
- 分布式计算:Hadoop,Spark
- 视图存储书库 nosql mysql redis/memcache
- 实时处理层
- 流式处理,持续计算
- 存储和分析某个窗口期内的数据(一段时间按的热销排行,实时热搜)
- 实时数据收集
- 实时数据分析
- 服务层
- 支持随机读
- 需要在非常短时间内返回结果
-
读取批处理层和实时处理层并对其归并
Lambda架构图.PNG
- 批处理层
-
推荐算法架构
- 召回阶段(海选)
- 召回决定了最终推荐结果的天花板
- 常用算法
- 协同过滤
- 基于内容
- 排序阶段(精选)
- 召回界定了最终推荐结果的天花板,排序不断将逼近这个极限,决定最终的推荐效果。- CTR预估(点击率预估 使用逻辑回归LR算法)估计用户是否会点击某个商品 需要用户的点击数据
- 策略调整
- 召回阶段(海选)
1.3 推荐算法
学习目标
- 了解推荐系统模型构建流程
- 理解协同过滤原理
- 记忆相似度计算方法
- 应用杰卡德相似度实现简单协同过滤推荐案例
1 推荐模型构建流程
Data(数据)>Features(特征)>ML Algorithm(选择算法训练模型)>Prediction Output(预测输出)
- 数据清洗/数据处理
- 数据来源
- 显性数据 (打分,评论/评价)
- 隐性数据(历史订单,加购物车,页面浏览,点击,搜索记录)
- 数据量/数据 能否满足需求
- 数据来源
- 特征工程
- 从数据中筛选特征
- 用数据表示特征
- 选择合适的算法
- 产生推荐结果
最经典的推荐算法: 协同过滤(Collaborative Filtering)
算法思想:物以类聚,人以群分
基本的协同过滤推荐算法基于以下假设:
- 基于用户的协同过滤推荐
- 基于物品的协同过滤推荐
3 计算相似度(Similarity Calculation)
- 相似度计算方法
- 欧氏距离
- 余弦相似度
- 皮尔逊相关系数Pearson
- 杰卡德相似度Jaccard(适用于布尔向量)
- 如何选择余弦相似度
- 余弦相似度/皮尔逊相关系数 适合于用户评分数据(有真实数据值)
- 杰卡德相似度适用于隐式反馈数据(是/无,是/否,即0/1)
网友评论