推荐系统算法
本文参考视频https://www.bilibili.com/video/BV1fd4y1P76M
Lambda架构
- 离线计算与实时计算共同提供服务
- 离线计算优缺点
- 优点可处理数据量大(数据集)
- 缺点速度慢(分钟级延迟)
- 实时计算优缺点
- 优点响应快 即时响应 (毫秒级延迟)
- 缺点可处理数据量小
- 离线计算框架
- hadoop
- spark core,spark sql
- hive
- 实时计算框架
- spark streaming
- storm
- flink
- 消息中间件
- flume 日志采集系统
- kafka 消息队列
- 存储相关
- hbase nosql数据库
- hive sql操作hdfs数据
推荐算法架构
- 召回阶段(海选)——协同过滤
- 召回决定了最终推荐结果的天花板(确定结果范围)
- 排序阶段
- 召回决定了最终推荐结果的天花板,排序决定了最终的推荐效果(逼近极限确定最终结果优先级顺序)
- CTR预估(点击率预估 LR算法)估计是否会点击(下式中t即为最终是否点击,xn为用户或物品特征)
$$
\omega_0x_0+\omega_1x_1+\omega_2x_2+\cdots=t
$$
- 策略调整

推荐系统架构

- 技术架构:

推荐模型构建流程
Data(数据)->Features(特征)->ML Algorithm(机器学习算法)->Prediction Output(预测输出)
数据来源
-
显性数据
- Rating 打分
- Comments 评论/评价
-
隐性数据
- Order history 历史订单
- Cart events 加购物车
- Page views 页面浏览
- Click-thru 点击
- Search log 搜索记录
-
数据量/数据是否满足要求
特征工程(提取数据特征)
- 从数据中筛选特征
- 一个给定的商品,可能被拥有类似品味或需求的用户购买
- 使用用户行为数据描述商品

- 从数据中筛选特征
- 将所有用户行为合并在一起,形成一个user-item矩阵

- 特征工程
- 协同过滤:用户-物品 评分矩阵
- 基于内容:分词 tf-idf word2Vec
- 训练模型
- 协同过滤
- kNN
- 矩阵分解
选择合适的算法

例:内容少,用户不多(绝大部分都拥有评分)
单独查看每一个用户向量,计算相似度(余弦相似度、皮尔逊相关系数)
产生推荐结果

Comments NOTHING