机器学习技术概述
让计算机在没有被显示编程的情况下具有自主学习的能力;
学习出特征和目标之间具体的相关性;
学习结果的用法: 预测, 推断(inference);
推荐系统中的应用场景
推荐系统的本质是匹配;
-
推荐结果排序
传统的方式是利用公式来定义排序规则, 机器学习是选择具有良好描述能力的规则系统来服务于系统;
-
用户兴趣建模
用户兴趣的捕捉和预测, 捕捉即对用户行为的客观记录; 预测则基于行为记录对用户将来可能感兴趣的内容进行预测;
-
候选集召回
类似排序问题;
优点:
- 机器学习系统对推荐系统进行全方位的改造升级;
- 引入一套可以系统性持续优化的架构;
机器学习技术的实施方法
老系统与数据准备
-
收集训练样本
老系统中已有的样本数据;
曝光偏差(impression bias)比较小;
曝光偏差: 系统是否会倾向于曝光某一类型的物品, 导致其他类型物品曝光不足, 在整体数据上产生曝光偏差的问题;
-
收集业务规则
解决问题的模型, 多数情况下都是以逻辑回归和决策树为代表的浅层模型, 即大量的被量化的规则;
机器学习即规模化的量化规则;
量化: 将之前人工指定的规则, 利用数据和算法, 针对具体的优化目标进行量化;
规模化: 机器学习可以用相对自动化的方法让规则的数量增加几个量级;
-
确定系统目标
基于老系统基础上使用机器学习技术进行技术升级和改造, 目标是和老系统一致的;
问题分析与目标定义
在架构设计和代码开发之前, 要对待解决问题进行分析, 对系统优化目标进行拆解;
-
问题现状分析
搞清楚系统状况, 包括算法, 数据, 运行方式, 数据与线上交互, 模块前端展示等;
优先处理 ROI(投入产出比)高的事情;
-
问题归因拆解
将最终的待达成目标拆解为多个可执行的具体工作;
例如: 提升购买转化率 => 用户看到曝光商品+用户进行购买 => 用户看到曝光商品+用户进行点击 AND 用户进行点击+用户进行购买;
-
设计指标体系
实施机器学习系统需要的指标体系:
- 监控机器学习系统本身效果好坏的指标; (例如: AUC 等离线评估指标和点击率等线上监控指标)
- 对机器学习系统所服务和影响的大系统的各方面指标; (例如: 用户平均停留时长, 平均跳出率, 平均分享率等)
如果无法衡量, 就无法优化
机器学习模型的构建流程主要包括: 样本处理+特征处理+模型训练;
又可以分为:
算法维度: 对各种数据进行逻辑处理; 描述系统逻辑的维度;
架构维度: 具体实施时通过怎样的架构实现算法逻辑; 描述具体实施方案的维度;
样本处理
样本的质量决定了模型效果的好坏;
- 原始样本, instance, 要预测的信息本身, 不带有任何特征; (例如: 用户ID+曝光物品ID+是否点击)
- 带特征样本, example, 将原始样本与特征进行拼接之后, 可用于模型训练的样本;
典型的点击率模型场景下, 一般存在三份日志:
- 请求日志, 记录用户对推荐系统的请求, 属于最上游的数据;
- 曝光日志, 记录在请求得到的数据中, 哪些被曝光给用户了;
- 点击日志, 在曝光后的数据中, 哪些被用户点击了;
涉及两项关键工作:
-
获取到足量, 准确的样本数据;
- 爬虫, 作弊和异常数据的去除;
- 使用统计数据验证样本的准确性; (例如: 平均点击率, 用户点击率分布)
- 移动端数据收集机制的设计; (例如: 只发送曝光的最后一个物品的信息, 配合日志获取其他曝光物品)
- 尽量多的保留上下文信息;
-
在训练时对样本进行选取, 以期得到更好的训练效果;
-
样本随机打散;
机器学习模型的训练和评测中, 要求样本是随机分布的;
- 从整体样本中划分训练集和测试集, 要求是同分布的;
- 常用的模型优化方法, 都会分批取样本来训练模型, 要求样本分布是随机的;
-
正负样本采样;
正负样本偏差严重时, 可采用
正样本升采样
和负样本降采样
; 去除冗余样本
,边界样本
,噪声样本
等, 或者随机丢弃相应比例的负样本; -
负样本划分模型组合;
-
样本可信度处理;
-