如何快速搭建U2I2I召回服务

本文档为您展示一个示例,在本例中,我们将准备一份U2I召回数据(假设数据表的表名为aime_example_u2i),一份I2I召回数据(假设数据表的表名为aime_example_i2i),然后在智能召回引擎控制台上注册数据,最后用这两份数据拉起一个U2I2I召回服务。

数据准备

准备U2I召回表

在MaxCompute客户端中准备离线数据

-- 创建数据表
CREATE TABLE IF NOT EXISTS aime_example_u2i (
  user_id STRING COMMENT "用户ID",
  item_id STRING COMMENT "物品ID",
  logtime BIGINT COMMENT "时间"
) PARTITIONED BY (
  ds STRING COMMENT "分区字段"
);

-- 写入U2I数据,实际业务场景下,具体的写入数据由您的算法逻辑产出
INSERT OVERWRITE TABLE aime_example_u2i PARTITION (ds = '20230101')
SELECT 'A' AS user_id, '10001' AS item_id, 1672502401  AS logtime UNION
SELECT 'A' AS user_id, '10002' AS item_id, 1672502402  AS logtime UNION
SELECT 'B' AS user_id, '10001' AS item_id, 1672502403  AS logtime UNION
SELECT 'C' AS user_id, '10003' AS item_id, 1672502404  AS logtime;

-- 写入标识分区
INSERT OVERWRITE TABLE aime_example_u2i PARTITION (ds = '20230101.done')
SELECT NULL, NULL, NULL UNION;

在智能召回引擎控制台上注册数据

进入实例详情-数据管理页面,点击“注册数据”。

image.png

配置基础信息:

image.png

点击“保存并上线”,完成注册并发布。

image.png

准备I2I召回表

在MaxCompute客户端中准备离线数据

-- 创建数据表
CREATE TABLE IF NOT EXISTS aime_example_i2i (
  trigger_id STRING COMMENT "召回字段",
  item_id STRING COMMENT "物品ID",
  score DOUBLE COMMENT "召回分"
) PARTITIONED BY (
  ds STRING COMMENT "分区字段"
);

-- 写入I2I数据,实际业务场景下,具体的写入数据由您的算法逻辑产出
INSERT OVERWRITE TABLE aime_example_i2i PARTITION (ds = '20230101')
SELECT '10001' AS trigger_id, '10004' AS item_id, 1.12 AS score UNION
SELECT '10001' AS trigger_id, '10005' AS item_id, 1.07 AS score UNION
SELECT '10002' AS trigger_id, '10006' AS item_id, 0.98 AS score UNION
SELECT '10003' AS trigger_id, '10007' AS item_id, 0.87 AS score;

-- 写入标识分区
INSERT OVERWRITE TABLE aime_example_i2i PARTITION (ds = '20230101.done')
SELECT NULL, NULL, NULL UNION;

在智能召回引擎控制台上注册数据

进入实例详情-数据管理页面,点击“注册数据”。

image.png

配置基础信息:

image.png

点击“保存并上线”,完成注册并发布。

image.png

服务注册

在实例详情-服务管理中,点击“创建召回服务”按钮,开始创建召回服务。

image.png

配置服务基础信息

image.png

配置数据,选择我们刚才准备好的数据,U2I2I召回服务是根据user查找item1,再根据item1查找item2,因此“Recall”召回这里选择u2i召回表,同时,需要join关联 i2i召回表。

image.png

新增算子类型“Join关联”

image.pngimage.png

增加算子“Sorter排序”,可根据i2i召回表中score召回分对返回物品排序(可选)。

image.png

可根据业务情况自行选择新增或删除算子。

此时U2I2I召回链路配置完成,由于BE召回引擎支持多路召回,因此需要设置归并结果的去重字段(字段自选)。

image.png

点击“保存并上线”,完成注册并发布。

image.png

进入服务管理,可以看到我们刚才创建的召回服务,等待其发布完成,就可以使用了。

image.png