本文为您介绍如何使用协同过滤算法实现商品推荐。

背景信息

数据挖掘的一个经典案例就是尿布与啤酒的案例。尿布与啤酒看似毫不相关的商品,当超市将其摆放至相邻货架时,会大幅度提高二者销量。您可以通过数据挖掘中的协同过滤算法挖掘商品之间的隐含关系,从而提高销售额。

协同过滤算法是一种基于关联规则的算法。以购物行为为例,如果用户甲和用户乙都购买了商品A和商品B,则可以假定用户甲和用户乙的购物品味相似。当用户甲购买了商品C,而用户乙未购买时,可以将商品C推荐给用户乙,这就是经典的User-Based,即以User的特性为关联。

该实验首先通过用户7月份之前的购物行为数据,获取商品关联关系,然后对用户7月份之后的购买进行推荐,并评估推荐结果。例如,用户甲在7月份之前购买了商品A,且商品A与商品B强相关,则在7月份之后将商品B推荐给用户甲,并探查该推荐是否命中。
说明 本实验数据为虚构数据,仅用于学习。
本试验的相关说明:
  • 仅针对业务场景介绍协同过滤推荐的用法,对于购物行为推荐的关键点未进行处理,例如时间序列。
  • 仅考虑了商品的关联性,未考虑推荐商品的属性。以低频消费品的手机为例,如果用户甲在6月份购买了手机,则用户甲在7月份继续购买手机的概率较低。
  • 建议将基于关联规则的推荐作为推荐系统的补充方法。如果需要提高推荐准确率,推荐使用机器学习算法进行模型训练。

数据集

本实验数据由天池大赛提供,根据时间将其分为7月份之前和7月份之后的购买行为数据,具体字段如下。
字段名 含义 类型 描述
user_id 用户编号 STRING 购物的用户ID。
item_id 物品编号 STRING 被购买物品的编号。
active_type 购物行为 STRING
  • 0:表示点击。
  • 1:表示购买。
  • 2:表示收藏。
  • 3:表示加入购物车。
active_date 购物时间 STRING 购物发生的时间。
实验的原始数据示例如下。原始数据

使用协同过滤实现商品推荐

  1. 进入PAI-Studio控制台。
    1. 登录PAI控制台
    2. 在左侧导航栏,选择模型开发和训练 > Studio-可视化建模
    3. PAI可视化建模页面,单击进入机器学习进入机器学习
  2. 构建实验。
    1. 在PAI-Studio控制台的左侧导航栏,单击首页
    2. 模板列表,单击【推荐算法】商品推荐下的从模板创建
    3. 新建实验对话框,配置参数(可以全部使用默认参数)。
      参数 描述
      名称 输入【推荐算法】商品推荐
      项目 不支持修改。
      描述 输入通过协同过滤算法实现商品推荐
      位置 选择我的实验
    4. 单击确定
    5. 可选:等待大约十秒钟,在PAI-Studio控制台的左侧导航栏,单击实验
    6. 可选:我的实验下,单击【推荐算法】商品推荐_XX
      其中我的实验为已配置的实验位置【推荐算法】商品推荐_XX为已配置的实验名称_XX为系统自动添加的实验序号)。
    7. 系统根据预置的模板,自动构建实验,如下图所示。
      协同过滤实验
      区域 描述

      根据关联规则生成推荐列表。将7月份之前的购物行为作为数据源,先通过SQL脚本获取用户购买行为数据,再使用协同过滤组件计算与每个Item最相近的Item,从而分析得到每个User可能同时购买的多个商品。

      实验运行结束后,您可以右键单击协同过滤etrec-1,在快捷菜单,单击查看数据,查看商品关联性,如下图所示。协同过滤结果其中:
      • itemid:表示目标商品。
      • similarity:英文冒号(:)左侧的数据表示与目标商品关联性高的商品,英文冒号(:)右侧的数据表示两个商品的关联性概率。
      七月之后的真实购物行为。该实验使用较简单的推荐规则,例如用户甲在7月份之前购买了商品A,且商品A与商品B强相关,则在7月份之后将商品B推荐给用户甲。
      统计推荐数和命中数。全表统计-1展示根据7月份之前的购物行为生成的推荐列表,全表统计-2展示命中的推荐。
  3. 运行实验并查看输出结果。
    1. 单击画布上方的运行
    2. 实验运行结束后,右键单击画布中的全表统计-1,在快捷菜单,单击查看数据,即可查看生成的推荐列表。
    3. 右键单击画布中的全表统计-2,在快捷菜单,单击查看数据,即可查看命中的推荐。