本文以实时热点新闻挖掘为例,为您介绍PAI Online Learning解决方案。

背景信息

您打开新闻客户端时,经常可以收到热点新闻推送的相关内容。新闻客户端通常实时产生大量新闻,如何快速挖掘出哪些新闻会成为热点新闻,决定了整个平台的新闻推荐质量。

使用机器学习相关算法可以从海量新闻素材中获取最有潜力成为热点的新闻,传统方法是先下载每天获取的历史资讯并离线训练为模型,再将生成的热点识别模型上线,以供第二天使用。但是通过离线训练生成的模型预测实时产生的热点新闻,其结果通常缺乏时效性。

针对该场景,PAI提出了Online Learning解决方案。结合流式算法和离线算法,不仅能够发挥离线训练对大规模数据的强大处理能力,而且能够发挥流式机器学习算法对实时模型的更新能力,从而解决模型时效性问题。

数据集

本实验的离线模型数据集为UCI开放数据集提供的3万条新闻文本数据,详情请参见新闻数据集。该数据集包含新闻的URL、产生时间、58个特征及1个目标值。其中目标值(share字段)表示新闻的分享次数。特征的组成如下图所示。热点新闻数据特征
PAI提供多种流式数据源,本实验以DataHub为例,详情请参见DataHub官方文档。DataHub是一种流式数据对列,支持Java和Python等多种语言采集方式。使用过程中,可以通过DataHub链接用户实时产生的数据及PAI的训练服务。
说明 DataHub输入的数据流格式必须与离线训练的数据流字段完全一致,离线模型才能实时更新。

实时热点新闻挖掘

  1. 进入PAI-Studio控制台。
    1. 登录PAI控制台
    2. 在左侧导航栏,选择模型开发和训练 > Studio-可视化建模
    3. PAI可视化建模页面,单击进入机器学习进入机器学习
  2. 构建实验。
    1. 在PAI-Studio控制台的左侧导航栏,单击首页
    2. 模板列表,单击实时热点新闻挖掘下的从模板创建
    3. 新建实验对话框,配置参数(可以全部使用默认参数)。
      参数 描述
      名称 输入实时热点新闻挖掘
      项目 不支持修改。
      描述 输入PAI Online Learning挖掘实时热点新闻
      位置 选择我的实验
    4. 单击确定
    5. 可选:等待大约十秒钟,在PAI-Studio控制台的左侧导航栏,单击实验
    6. 可选:我的实验下,单击实时热点新闻挖掘_XX
      其中我的实验为已配置的实验位置实时热点新闻挖掘_XX为已配置的实验名称_XX为系统自动添加的实验序号)。
    7. 系统根据预置的模板,自动构建实验,如下图所示。
      热点新闻挖掘实验
      说明 PAI使用蓝色标识离线计算组件,使用绿色标识流式计算组件。流式组件相连形成计算组,且多个组件的运行停止状态一致。
      区域 描述
      训练离线模型。先通过SQL脚本组件将热点新闻挖掘转换为二分类问题,即分享次数share大于10000的新闻为热点新闻,反之为非热点新闻。再通过逻辑回归二分类组件生成二分类模型,用于预测新闻是否为热点新闻。
      通过模型转换组件,将离线生成的逻辑回归模型转换为流式算法可以读取的流式模型。
      训练流式模型并导出为PMML格式。FTRL算法基本等同于流式的逻辑回归算法,使用过程中需要按照逻辑回归算法配置参数。
      说明 模型保存时间间隔参数决定了实时计算产生模型的时间周期。
      Ftrl算法评估。
      二分类模型评估。
  3. 单击画布上方的运行

模型使用介绍

上述生成的新闻热点预测模型可以直接部署为PAI-EAS在线预测服务,或将其下载至本地使用。使用模型之前,首先对新闻数据进行特征工程(离线模型训练中的特征处理方式),然后将其结果输入至热点新闻挖掘服务,最后返回新闻是否为热点新闻。处理流程如下图所示。热点新闻挖掘模型使用流程