推荐系统基础架构以及项目介绍

系统学习《推荐系统》-- 基础架构

一、通用推荐系统框架

  • 数据收集
ETL MapReduce Spark Flink
  • 数据存储
Hive HBase MySQL Redis
持久化存储收集数据
通常按照数据的冷热,结构化和非结构化等特征分布存储
  • 算法召回
热门 协同过滤 内容 画像 替补
将海量的数据集,根据特定算法进行初步的筛选
从数十万降低至数百及数千
  • 结果排序
LR SVD DNN GBDT
进行精准排序
针对多个目标进行优化
  • 结果应用
猜你喜欢 相似推荐 看了又看
根据不同场景给用户展示最终的推荐结果

推荐常用特征

用户特征

  • 自然属性
  • 画像特征:兴趣,行为
  • 关系特征:人群属性,关注关系,亲密度

物品特征

  • 静态特征:分类标签
  • 动态特征
  • 相关性特征
  • 上下文特征
    今日头条
    推荐系统基础架构以及项目介绍_第1张图片

二、推荐常用算法

  • 基于流行度
    最热门 最新 最多人点赞

  • 基于内容
    相同标签 相同关键词 相似主题

  • 基于关联规则
    看了A的人也看了B

  • 近邻推荐
    协同过滤:基于用户 基于物品 基于模型

三、结果评估指标

  1. 准确率 Accuracy
    正确预测的样本数/总采样数
  2. 曲线下面积AUC
    不同阈值下,预测结果中真阳性和假阳性之比
    AUG = 1 : 完美分类器
    AUG > 0.5 : 绝大部分真是分类器的区间
    AUG = 0.5 : 基线分类器(扔硬币)
    AUG < 0.5 : 对于负样本更加准确,可以转化为正分类器
*ROC指标*
对于输出值连续的分类器(如概率预测),在某一阈值下真阳性(TP)的概率/假阳性(FP)的概率

评估标准

  1. 满意度:准确率、停留时长、转化率
  2. 覆盖率:长尾物品是否能被推荐
  3. 多样性:推荐的物品是否两两不相似、尽可能覆盖多兴趣点
  4. 新颖性:是否能推荐用户之前没见过的东西
  5. 惊喜度(很难):推荐的东西和用户历史行为记录都不相似,但是用户很喜欢
  6. 实时性:根据用户最新的喜好实时更新推荐结果
  7. 商业目标:是否能达成商业目标如GMV

四、项目构建 (Concrec)

数据源:Kaggle Anime Recommenations Dataset(动漫数据来源:myanimelist.net)

1. 数据预处理

汇总各方数据源 可视化检视数据 对数据进行清洗和转换

2. 召回

根据多种策略对候选集进行初步的召回

3. 排序

针对优化目标进行精准排序
实现特定规则的重排序

4. 接口服务

组装排序结果,并暴露接口供前端消费

5. 前端页面

结果展示 & 用户交互

五、Concrec技术选型

编程语言:python
微服务框架:Flask
前端页面:Vue
数据分析:pandas
大数据处理:spark + Flink(spark为主)
机器学习框架:TensorFlow(谷歌研发)

Spark分布式大数据处理平台 解决了计算能力和存储能力分布的问题 不同于Hadoop,Spark基于内存计算,速度更快 提供多种编程接口 如SparkSQL,Mllib等
Flink流式数据(stream)处理平台 以流为核心,高吞吐,低延迟 良好的容错性
TensorFlow机器学习框架 专注于神经网络、深度学习 在分布式训练、模型可视化等方面十分的出色

你可能感兴趣的:(推荐系统,人工智能,spark,数据分析,python,flink)