【大数据技术与推荐系统(5)】用户画像系统


本文代码仓库地址:我的推荐系统学习求职之路

什么是用户画像系统

大数据时代人的数据化
【大数据技术与推荐系统(5)】用户画像系统
什么是用户画像
【大数据技术与推荐系统(5)】用户画像系统
用户画像的作用
【大数据技术与推荐系统(5)】用户画像系统

构建用户画像系统

标签表示法【大数据技术与推荐系统(5)】用户画像系统
标签是特征空间中的维度
【大数据技术与推荐系统(5)】用户画像系统
用户画像标签举例
【大数据技术与推荐系统(5)】用户画像系统
用户画像系统的挑战

  • 记录和存储亿级用户的画像
  • 支持和扩展不断增加的维度和偏好
  • 毫秒级更新
  • 支撑个性化推荐、广告投放和精细化营销等产品
    用户画像系统流程
    【大数据技术与推荐系统(5)】用户画像系统
    用户画像处理流程
  • 明确问题和数据的匹配
    • 追求需求和数据的匹配
    • 明确需求
      • 分类、聚类、推荐和其他
    • 数据的规模、重要特征的覆盖度等
  • 数据预处理
    • 数据集成,数据冗余,数值冲突
    • 数据采样
    • 数据清洗、缺失值处理和噪声数据
  • 特征工程
    • 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
    • 特征:对所需解决问题有用的属性
    • 特征的提取、选择和构造
      • 针对所解决的问题选择最有用的特征集合
      • 通过相关系数等方式来计算特征的重要性
        • 人工筛选
        • 有些算法输出特性:Random Forest
        • 维度过多,PCA自动降维
  • 特征提取
    • 业务日志
    • WEB公开数据抓取
    • 第三方合作
  • 特征处理
    • 特征清洗
    • 特征预处理:值处理、特征选择、特征组合、降维
    • 商业加工
  • 特征监控
    • 指标:时效性、覆盖率和异常值
    • 可视化&预警
  • 模型与算法
    【大数据技术与推荐系统(5)】用户画像系统
    问题及常用模型
    【大数据技术与推荐系统(5)】用户画像系统
    用户画像系统架构
    【大数据技术与推荐系统(5)】用户画像系统
    【大数据技术与推荐系统(5)】用户画像系统

用户标签生成案例

实例:“性别预测
性别预测问题:根据用户数据预测性别
已知数据:数据1,用户使用APP的行为数据、数据2,用户浏览网页的行为数据

  • 步骤1:明确问题
  • 数据挖掘常见问题中的哪一类?
  • 分类、聚类、推荐还是其他?(分类)
  • 数据集规模
  • 数据集是否够大?(分类需要大的数据集)
  • 问题假设
  • 数据是否满足所解决问题的假设?(男女行为不同?)
  • 步骤2:数据预处理
  • 表1:数据1预处理后的结果
    【大数据技术与推荐系统(5)】用户画像系统
  • 表2:数据2预处理后的结果
    【大数据技术与推荐系统(5)】用户画像系统
  • 步骤3:表1特征工程
  • 单个特征分析
  • 数值型特征的处理,比如App的启动次数是个连续值,可以按照低、中、高三个档次将启动次数分段成离散值;
  • 类别特征的处理,比如用户使用的设备是三星或者苹果,这是一个类别特征,可以采用0-1编码来处理;
  • 数据归一化
  • 多个特征的分析
  • 设备类型是否决定了性别?做相关性分析,计算相关系数
  • App的启动次数和停留时长是否完全正相关,结果表明特别相关,去掉停留时长
  • 如果特征过多,可能需要做降维处理
  • 步骤3:表2特征工程
  • 典型的文本数据
  • 网页->分词->去停用词->向量化
  • 分词
  • 可以使用jieba分词或ICTCLAS
  • 去除停用词,停用词表除了加入常规的停用词外,还可以将DF比较高的词加入停用词,作为领域停用词
  • 向量化,一般是将文本转化为TF或TF-IDF向量
  • 结果:
    数据1特征工程后的结果:
    【大数据技术与推荐系统(5)】用户画像系统
    数据2特征工程后的结果:

【大数据技术与推荐系统(5)】用户画像系统

  • 步骤4:算法和模型
  • 选择算法和模型考虑的因素
  • 训练集的大小
  • 特征的维度大小
  • 所解决问题是否是线性可分的
  • 所有的特征是独立的吗?
  • 需要不需要考虑过拟合的问题
  • 对性能有哪些要求?
  • 奥卡姆剃刀原理:如无必要,勿增实体
  • LR
  • 只要认为模型是线性可分的,就可采用LR
  • 模型比较抗噪,而且可以通过L1、L2范数来做参数选择
  • 效率高,可以应用于数据特别大的场景
  • 很容易分布式实现
  • Ensemble方法
  • 根据训练集训练多个分类器,然后综合多个分类器的结果,做出预测
    【大数据技术与推荐系统(5)】用户画像系统
  • 算法和模型评价
    【大数据技术与推荐系统(5)】用户画像系统
    准确率,召回率,ROC和AUC
    Spark ML代码实现
  • 重要概念
  • DataFrame
  • 用于学习的数据集
  • 可以包含多种类型
  • 管道组件
  • Transformers:transform()
  • 把一个DF转换成另一个DF的算法
  • Estimators:fit()
  • 应用在一个DF上生成一个转换器算法
  • 如何工作
    【大数据技术与推荐系统(5)】用户画像系统
    【大数据技术与推荐系统(5)】用户画像系统
  • 其他
  • 参数
  • 所有转换器和评估器共享一个公共API
  • 参数名Param是一个参数
  • ParamMap是一个参数的集合(parameter,value)
  • 传递参数的两种方式:
  • 为实例设置参数
  • 传递ParamMap给fit()或transform()方法
  • 保存和加载管道
    Sprak ML代码实例
  1. 实例:Estimator,Transformer,and Param
  • 步骤:
  • 准备带标签和特征的数据
  • 创建逻辑回归的评估器
  • 使用setter方法设置参数
  • 使用存储在lr中的参数来训练一个模型
  • 使用paramMap选择指定的参数
  • 准备测试数据
  • 预测结果
  1. 实例:Pipeline
  • 步骤:
  • 准备训练文档
  • 配置ML管道,包含三个stage:
  • Tokenizer,HashingTF和lr
  • 安装管道到数据上
  • 保存管道到磁盘
  • 包括安装好的和未安装好的
  • 加载管道
  • 准备测试文档
  • 预测结果
  1. 实例:模型调优
  • 步骤:
  • 准备训练数据
  • 配置ML管道,包含三个stage:
  • Tokenizer,HashingTF和lr
  • 使用ParamGridBuilder构造一个参数网络
  • 使用CrossValidator来选择模型和参数
  • CrossValidator需要一个Estimator,一个评估器参数集合和一个Evaluator
  • 运行交叉校验,选择最好的参数集
  • 准备测试数据
  • 预测结果
  1. 实例:通过训练校验分类来调优模型
  • 步骤:
  • 准备训练和测试数据
  • 使用ParamGridBuilder构造一个参数网格
  • 使用TrainValidationSplit来选择模型和参数
  • CrossValidator需要一个Estimator,一个评估器参数集合和一个Evaluator
  • 运行训练校验分离,选择最好的参数
  • 在测试数据上做预测,模型是参数组合中执行的最好的一个

用户画像系统应用

案例1:用户信用等级分级
【大数据技术与推荐系统(5)】用户画像系统
案例2:在大数据营销中的应用
【大数据技术与推荐系统(5)】用户画像系统
案例3:用户流失预警
【大数据技术与推荐系统(5)】用户画像系统
案例4:潜在用户分析
【大数据技术与推荐系统(5)】用户画像系统
案例5:异常检测与分析-离群点分析
【大数据技术与推荐系统(5)】用户画像系统