文档

使用行为过滤表实现曝光过滤功能

更新时间:

本文介绍使用只能召回引擎的行为表和行为过滤功能实现曝光过滤的需求

创建一个召回服务

用户可以创建一个X2I、向量、多路归并召回,详情参见快速拉起服务

注册行为数据表

在MaxCompute客户端中准备数据

DROP TABLE IF EXISTS aime_example_expose;

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

-- 写入向量数据,实际业务场景下,具体的写入数据由您的算法逻辑产出
INSERT OVERWRITE TABLE aime_example_expose PARTITION (ds = '20210822')
SELECT 'u0001' AS user_id, '10001' AS item_id, 1640275200 AS time UNION -- 20211224
SELECT 'u0001' AS user_id, '10002' AS item_id, 1640275200 AS time UNION -- 20211224
SELECT 'u0002' AS user_id, '10003' AS item_id, 1640275200 AS time UNION -- 20211224
SELECT 'u0002' AS user_id, '10004' AS item_id, 1640275200 AS time UNION -- 20211224
SELECT 'u0003' AS user_id, '10001' AS item_id, 1640275200 AS time UNION -- 20211224
SELECT 'u0003' AS user_id, '10002' AS item_id, 1640188800 AS time UNION -- 20211223
SELECT 'u0003' AS user_id, '10003' AS item_id, 1640102400 AS time UNION -- 20211222
SELECT 'u0003' AS user_id, '10004' AS item_id, 1640016000 AS time UNION -- 20211221
SELECT 'u0003' AS user_id, '10005' AS item_id, 1639929600 AS time UNION -- 20211220
SELECT 'u0003' AS user_id, '10006' AS item_id, 1639843200 AS time UNION -- 20211219
SELECT 'u0003' AS user_id, '10007' AS item_id, 1639756800 AS time UNION -- 20211218
SELECT 'u0003' AS user_id, '10008' AS item_id, 1639670400 AS time UNION -- 20211217
SELECT 'u0003' AS user_id, '10009' AS item_id, 1639584000 AS time UNION -- 20211216
SELECT 'u0003' AS user_id, '10010' AS item_id, 1639497600 AS time;      -- 20211215

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

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

进入实例详情-数据管理页面,按照如下方式填写:

image.png

点击“下一步”,开始配置索引

image.png

点击“下一步”,开始配置全量调度方式。注意:如果需要实时曝光过滤,需要对行为表开启增量,用户调用BE api将实时的曝光数据写入到行为表中。

image.png

点击“配置完成并上线”,完成注册并发布

image.png

在服务中配置曝光过滤

在注册阶段或后续通过编辑服务的方式进入到服务配置页面。

image.png

配置曝光过滤

进入X2I、向量、多路归并召回的配置页面,找到行为过滤的配置项。

  • 行为过滤开关:是否开启行为过滤。开启行为过滤后,用户可以选择关联一个行为表,在请求参数中传入行为表的user_id字段,召回引擎会查询user_id关联的行为数据物品,从召回过滤中将这些物品过滤。

  • 行为过滤时间窗口:该配置会根据行为数据中的时间戳字段,仅选择最近N天的行为数据进行曝光过滤。

  • 循环曝光开关:如果召回的物品经过曝光过滤后,不足return_count指定的返回条数,开启循环曝光后,召回引擎会按照行为数据的时间由远到近补足return_count的物品数。

  • 行为表:行为过滤关联的行为表。

注意:

单个user_id最多关联5000个行为数据,超过的部分按照时间顺序丢弃最旧的行为数据。

image.png

向行为表写增量

对于开启增量的行为表,用户可以调用API向召回引擎实时写入增量信息,详情参见BeRead及SDK