推荐诊断功能¶
推荐接口完成后,算法同学希望可以可视化的看到推荐结果,能把相关的 itemid 内容展示出来,这个可以对推荐结果有效的诊断,分析判断当前的推荐结果是否可靠。
目前实验工具提供了三种诊断方式,来从不同的角度分析推荐结果。
推荐结果诊断, 用于模拟调用推荐接口,对返回的数据进行扩充,比如针对 itemid 可以增加更多的内容,比如图片、视频、标题、描述等等,方便直观的感知推荐结果是否可靠
召回ID串诊断,主要用于召回层的分析。可以分析某一路或者某几路召回,查询一批 itemid 的信息
用户行为分析 , 用于查看某个用户的历史行为,比如曝光,点击,收藏,分享等等,可以看到历史行为相关的 item 信息。
数据表管理¶
我们需要额外的数据来展示 item 信息。实际上会有额外的表来存储 item 信息,当通过推荐结果获取到 itemid 之后,可以通过 itemid 与 item 信息关联起来。
我们可以设置元数据的名称,选择数据源类型(mysql, hologres), 选择已经配置好的数据源, 表名称以及表的详细字段。这里表的字段可以是整个表字段的子集,如果想展示哪些字段,就列出来就可以了。
推荐结果诊断¶
这里需要选择一下在【元数据管理/数据源管理】中已经配置好的 eas 类型的数据源
这里需要注意一点,推荐接口返回的数据格式是有约定的,返回的数据是 json 格式,有 items 列表,items 每个元素有 item_id 的字段。如果推荐接口里没有这些字段,可以用 debug 方式去调用接口,debug 模式下可以加上这些信息。下面红框里的字段是必须的,也必须按照这个结构来。其余字段都不是必要的。
召回ID串诊断¶
这里主要是分析召回的 ID 列表是不是可靠的。这里逻辑相对简单,根据 itemId 获取到 item 的基本信息。在展现形式上,与推荐结果诊断也是一致的。
用户行为分析¶
根据用户的行为找出 itemId 列表,然后展现出来。这里需要用到用户的行为表。在这里,行为表我们也是约定好的。
主要字段包括如下。这里列出的是主要字段,下面的表可以扩充更多的字段,只要包含下面的字段即可。
BEGIN;
DROP TABLE IF EXISTS "sv_rec"."user_behavior";
CREATE TABLE "sv_rec"."user_behavior" (
"uid" text NOT NULL,
"itemid" text NOT NULL,
"event" text NOT NULL,
"timestamp" timestamptz NOT NULL
);
CALL SET_TABLE_PROPERTY('"sv_rec"."user_behavior"', 'orientation', 'row');
CALL SET_TABLE_PROPERTY('"sv_rec"."user_behavior"', 'clustering_key', '"uid","timestamp:desc"');
CALL SET_TABLE_PROPERTY('"sv_rec"."user_behavior"', 'time_to_live_in_seconds', '2592000');
comment on column "sv_rec"."user_behavior"."uid" is '用户ID';
comment on column "sv_rec"."user_behavior"."itemid" is 'itemID';
comment on column "sv_rec"."user_behavior"."event" is '用户的行为事件,包括点击,收藏,分享等';
comment on column "sv_rec"."user_behavior"."timestamp" is '事件发生时间';
COMMIT;
元数据可以如下定义。这里 user 表信息不需要完全列出来,需要把 uid 当成主键记录即可。
这里需要关联两个表,用户的行为表和item信息表。这里选择任意的维度,实际上是过滤字段。比如维度可以设成 event=exposure, 或者 page=p_svhome , 还可以添加任意多个维度。