E-MapReduce上的DataScience集群内置了一套开箱即用的智能推荐解决方案Demo。本文为您介绍如何快速搭建一套推荐系统。

前提条件

  • 已创建DataScience集群,并且选择了RecDemo、Flink-Vvp和PAI-Alink服务,详情请参见创建集群
    说明 本文示例选择的是华北2(北京)地域。
  • 创建Knox账号,详情请参见用户管理
  • 已添加8443端口到安全组,详情请参见设置安全组访问
  • 已开通与E-MapReduce集群相同地域下的PAI-EAS,详情请参见开通及购买

背景信息

DataScience集群内置的推荐解决方案Demo包含了完整数据集和推荐业务全链路的执行方案,架构图如下: DataScience_Demo

操作流程

推荐解决方案Demo提供了一个可视化的操作界面,您可以按照本文依次体验数据清理、召回算法训练、召回数据入库、排序模型训练、培训特征入库、模型部署PAI-EAS等全流程,并在界面上实时查看推荐结果。

  1. 进入Demo页面。
    1. 进入详情页面。
      1. 登录阿里云E-MapReduce控制台
      2. 在顶部菜单栏处,根据实际情况选择地域和资源组
      3. 单击上方的集群管理页签。
      4. 集群管理页面,单击相应集群所在行的详情
    2. 在左侧导航栏中,单击访问链接与端口
    3. 公网访问链接页面,单击PAI-REC UI所在行的链接。
      Rec
      跳转至PAI智能推荐最佳实践页面。 Demo_home_page
  2. 单击任意用户的生成浏览记录
    即可随机生成该用户的历史浏览新闻标题。 Demo_browse
  3. 单击数据清理
    可以将数据去重,并且整理成user-item行为表。
    终端信息显示如下:
    1.数据清理进行中,大约1分钟...
    已完成: [1/6] 1_data_clean.sh /tmp/pairecdemo-1c7114ca-759a-11eb-9632-00163e03d3b6/ali_export_event_clean.csv
    您可以拷贝终端中的输出路径,通过SSH方式登录主节点以查看生成的数据。代码片段如下所示:
    13751616,21647533,HUAWEI GRA-CL00,WIFI,1576849990748,pai_recommend,1.0.0,0
    24472207,21647533,JKM-AL00,WIFI,1576845498634,pai_recommend,1.0.0,0
    26554399,21647533,BLN-TL10,WIFI,1576835319634,pai_recommend,1.0.0,0
    19028059,21647533,DUB-AL00,WIFI,1576844303310,pai_recommend,1.0.0,0
    19028059,21647533,DUB-AL00,WIFI,1576844172438,pai_recommend,1.0.0,0
    24472207,21647533,JKM-AL00,WIFI,1576845302625,pai_recommend,1.0.0,0
  4. 单击召回算法训练
    本文使用的是Alink的ALS算法。
    终端信息显示如下:
    2.召回算法训练进行中,大约3分钟...
    已完成: [2/6] 2_alink_embedding.sh /tmp/pairecdemo-1c7114ca-759a-11eb-9632-00163e03d3b6/user_embedding.csv /tmp/pairecdemo-1c7114ca-759a-11eb-9632-00163e03d3b6/i...
  5. 单击召回数据入库
    终端信息显示如下:
    3.召回数据入库进行中,大约1分钟...
    已完成: [3/6] 3_to_redis_faiss.sh

    本步骤会将User的向量写入Redis,然后将Item向量写入FaissServer。召回过程中需要先取User的向量,然后去FaissServer中查询对应的TopN的Item向量作为召回结果。

  6. 单击排序模型训练
    终端信息显示如下:
    4.排序模型训练进行中,大约2分钟...
    已完成: [4/6] 4_train_deepfm.sh /tmp/pairecdemo-1c7114ca-759a-11eb-9632-00163e03d3b6/deepfm_savedmodel.tar.gz

    使用TensorFlow框架下的DeepFM算法进行排序模型的训练,您也可以根据需要加入AutoML自动调参功能,生成的模型会存储到本地。

  7. 单击排序特征数据入库
    终端信息显示如下:
    5.排序特征数据入库进行中,大约1分钟...
    已完成: [5/6] 5_import_user_item_features.sh
  8. 模型部署至PAI-EAS。
    1. 获取Token。
      1. 登录PAI EAS模型在线服务
      2. PAI EAS模型在线服务页面,单击已生成服务ID所在行的调用信息
      3. 调用信息对话中,拷贝Token信息。
    2. 通过SSH方式连接集群。
      详情请参见 使用SSH连接主节点
    3. 使用阿里云账号的AccessKey进行身份认证。
      eascmd64 config -i <yourAccessKeyId> -k <yourAccessKeySecret> -e <yourEndpoint>
      需要根据实际情况替换以下参数。
      参数 描述
      yourAccessKeyId 阿里云账号的AccessKey ID。
      yourAccessKeySecret 阿里云账号的AccessKey Secret。
      yourEndpoint 本文示例使用华北2(北京)地域,取值为pai-eas.cn-beijing.aliyuncs.com
    4. PAI EAS模型在线服务页面,单击部署模型PAI-EAS
    5. 通过SSH方式登录主节点,修改pairec.config.json中的Auth信息为获取到的Token。
      vim /etc/pairec.config.json
      修改Name:eas_deepfm下的Auth为新模型的Token。 eas_deepfm
  9. 重启服务并查看推荐结果。
    1. 重启服务。
      1. 通过SSH方式连接集群。

        详情请参见使用SSH连接主节点

      2. 执行如下命令重启服务。
        service pairec restart
    2. 查看推荐结果。
      返回PAI智能推荐最佳实践页面,单击 生成智能推荐
      推荐结果如下图所示。 Demo_result