数据收集
ETL MapReduce Spark Flink
数据存储
Hive Hbase MySQL Redis 持久化存储收集数据 通常按照数据的冷热,结构化和非结构化等特征分布存储
算法召回
热门 协同过滤 内容 画像 替补 将海量的数据集,根据特定算法进行初步的筛选 从数十万降低至数百及数千
结果排序
LR SVD DNN GBDT 进行精准排序 针对多个目标进行优化
结果应用
猜你喜欢 相似推荐 看了又看 根据不同场景给用户展示最终的推荐结果推荐常用特征 用户特征
自然属性画像特征:兴趣,行为关系特征:人群属性,关注关系,亲密度 物品特征
静态特征:分类标签动态特征相关性特征上下文特征
今日头条
二、推荐常用算法
基于流行度
最热门 最新 最多人点赞
基于内容
相同标签 相同关键词 相似主题
基于关联规则
看了A的人也看了B
近邻推荐
协同过滤:基于用户 基于物品 基于模型
- 准确率 Accuracy
正确预测的样本数/总采样数曲线下面积AUC
不同阈值下,预测结果中真阳性和假阳性之比
AUG = 1 : 完美分类器
AUG > 0.5 : 绝大部分真是分类器的区间
AUG = 0.5 : 基线分类器(扔硬币)
AUG < 0.5 : 对于负样本更加准确,可以转化为正分类器
*ROC指标* 对于输出值连续的分类器(如概率预测),在某一阈值下真阳性(TP)的概率/假阳性(FP)的概率评估标准
- 满意度:准确率、停留时长、转化率覆盖率:长尾物品是否能被推荐多样性:推荐的物品是否两两不相似、尽可能覆盖多兴趣点新颖性:是否能推荐用户之前没见过的东西惊喜度(很难):推荐的东西和用户历史行为记录都不相似,但是用户很喜欢实时性:根据用户最新的喜好实时更新推荐结果商业目标:是否能达成商业目标如GMV
数据源:Kaggle Anime Recommenations Dataset(动漫数据来源:myanimelist.net)
1. 数据预处理汇总各方数据源 可视化检视数据 对数据进行清洗和转换
2. 召回根据多种策略对候选集进行初步的召回
3. 排序针对优化目标进行精准排序
实现特定规则的重排序
组装排序结果,并暴露接口供前端消费
5. 前端页面结果展示 & 用户交互
五、Concrec技术选型编程语言:python
微服务框架:Flask
前端页面:Vue
数据分析:pandas
大数据处理:spark + Flink(spark为主)
机器学习框架:TensorFlow(谷歌研发)
Spark:分布式大数据处理平台 解决了计算能力和存储能力分布的问题 不同于Hadoop,Spark基于内存计算,速度更快 提供多种编程接口 如SparkSQL,Mllib等
Flink:流式数据(stream)处理平台 以流为核心,高吞吐,低延迟 良好的容错性
TensorFlow:机器学习框架 专注于神经网络、深度学习 在分布式训练、模型可视化等方面十分的出色



