概述
内容行业数据规范,历史数据及实时数据的上传均需要遵守此规范
数据描述
对于内容型行业的场景,需要准备3张数据表。
内容表(item):最近场景内全部可以被推荐的内容的全量表。
由于item数量受quota限制,建议您上传前做去重处理。
item_id与item_type二者同时唯一确定一条item。
用户表(user):最近系统的全部注册用户表。
由于user数量受quota限制,建议您上传前做去重处理。
根据您内部的用户标记方法,可以选择方案一:均通过imei唯一确认一名用户;方案二:通过user_id和imei组合确认一名用户(如登录用户使用user_id唯一标记,未登录用户使用imei唯一标记)。
请务必确认用户的唯一性并在请求推荐结果时指定用户的唯一标识信息,否则将无法进行千人千面的推荐。
行为表(behavior):最近一段时间场景的行为数据。
我们建议您提供1-2周的数据。如果是全新场景,没有历史数据;或者因为技术原因无法提供行为数据,可以使用我们提供的测试数据,但是在开始一段时间(大约2周)内,模型的效果可能会不太理想,但随着数据的积累,会逐渐上升并最终稳定。对于这三张表的选填字段,我们建议您尽量上传。
在保证选填字段有效性的条件下,这些选填字段越多越准确,模型的效果越好。未填写部分系统内部将渲染成默认值。
表结构
1、下述表结构中,是否必填=”必填”的字段必须要上报到智能推荐。每个必填字段及建议填写字段影响较大,其字段具体作用请详细阅读”字段值说明”。
2、在采用历史数据启动的方式,在MaxCompute中建表时,选填字段的值可以为空,但是不可省去表字段,表中需要包含所有字段,具体建表语句参考文末。
item
字段名 | 字段类型 | 是否必填 | 字段含义 | 字段值枚举 | 字段值说明 | 字段值示例 |
item_id | string | 必填 | 内容唯一标识ID,仅支持英文字符(A~Z、a~z)及数字0~9的组合。 | 用户自填 | 1.item_id+item_type作为一条数据的唯一标识。 2.item_id的长度需限制在50字符以内。 注意:上报过来的item_id需要记录下来,以免后续无法删除此item_id。 | 34513 |
item_type | string | 必填 | 内容的类型 | image;article;video;shortvideo;item;recipe;audio;(如当前类型不满足,请联系技术人员沟通解决方案) | 必须与示例中的类型相匹配,否则会混排失效 | article |
status | string | 必填 | 物品是否可以推荐出来 | 0/1 | 1.status=”1”时,item可推荐出来。 2.status=”0”时,item不会推荐出来。 3.注意:字段值上报为”0”,该item不会推荐出来。重新把值update改为”1”后实时生效可被推荐。 4.注意:item下架为实时下架,把status的值改为”0”即可。 | 1 |
scene_id | string | 必填 | 场景ID。 物品投放的不同地方,可以理解成是对物品的一个分类的ID。不同的页面,用户访问类型不一样,都可以做成不同的场景ID。 | 用户自填 | 1、按照字母数字组合方式定义,建议使用首拼或英文与数字组合形式增强可读性 2、场景ID中不能含有英文冒号 3、场景ID不能为-102(内部预留值) 4、当推荐仅有单场景时,该字段置1。 5、注意:item表中的场景ID可以为多值,用英文逗号分隔,如字段值示例。用于不同投放页面,投放场景使用详解 | a101,b102 |
duration | string | 视频行业必填,其它行业非必填 | 时长(秒级,大于等于0,小于 3600 * 10) | 用户自填 | 视频总时长 | 1000 |
pub_time | string | 必填 | 内容发布时的时间戳(秒级),本字段用于判断内容是否为最新发布 | 用户自填 | 对内容有时效性需求的用户,必填。(用于新品的推荐策略) | 1520327038 |
expire_time | string | 建议填写 | 内容失效时间戳(秒级) | 用户自填 | 1、当前服务器时间大于该字段时,item将不被继续推荐。 2、如果所有数据均失效,服务无法启动。 3、置为空代表永不失效 | 1520327038 |
last_modify_time | string | 可选 | 内容信息的最后修改时间戳(秒级) | 用户自填 | 如果用户对已经发布了的商品做了较大的更新,同时有时效性的需求,可以更新此字段。同pub time功能类似,共同作用于新品链路。 | 1520327038 |
title | string | 建议填写 | 内容标题 | 用户自填 | 用于语义层面深入分析,置空会损失部分算法效果,建议填写 | 数字时代是最大机遇 |
weight | string | 建议填写 | item的加权。注意: 1、要加权的商品填:100、不加权的商品填:1。 2、仅支持填入100或1,其他值是非法的。 3、建议加权的item数量<=item总数的10%。 | 用户自填 | 1、置空后,默认值为1。 2、设置高权重的物品,将有更高的概率优先推荐 | 1 |
category_level | string | 建议填写 | 类目层级数,例如3级类目 | 用户自填 | 如果和category_path数据不匹配,会影响打散功能 | 3 |
category_path | string | 建议填写 | 类目路径,下划线联接 | 用户自填 | 1、类目路径,支持多级类目,用下划线联接。 2、不可出现英文逗号,英文冒号(用于打散功能) | 12_1024_56 |
tags | string | 建议填写 | 标签,多个标签使用英文逗号分隔 | 用户自填 | 1、主要用于描述物品的特征,由业务方自行运营物品的标签库。 2、算法模型会基于标签进行特征分析。 3、单条内容标签数不能超过100个,标签池总个数建议不超过50000个 。 4、如果标签属于业务敏感数据,建议映射到数字脱敏上报。 | 数字化,人工智能,AI |
author | string | 建议填写 | 作者 | 用户自填 | 1、多个作者使用英文逗号分隔,单条内容作者数不能超过100个。 2、可用于根据作者打散。 | 张三 |
content | string | 可选 | 内容正文 | 用户自填 | 通常为正文关键片段,最长5000个中英文字符,主要用于语义分析 | 北京时间6月10日晚,联合国发布全球数字经济未来发展纲领性报告——《数字相互依存的时代——联合国数字合作高级别小组报告》。联合国数字合作高级别小组联合主席马云表示:“我相信数字时代是我们面临的最大机遇。我相信这个新时代的最大风险是错失机会的风险。” |
channel | string | 建议填写 | 内容对应的频道,为单值 | 用户自填 | ||
organization | string | 可选 | 机构列表,多个标签使用英文逗号分隔 | 用户自填 | ||
pv_cnt | string | 可选 | 一个月内曝光次数 | 用户自填 | 启动时,如果当前场景行为数据比较稀疏,可以将平台其他场景的行为统计数据放入这些字段,不要求实时性。模型稳定后,如果维护这些字段成本较高,可以低优先级处理 | 100000 |
click_cnt | string | 可选 | 一个月内点击次数 | 用户自填 | 不要求实时性,优先级可以放低 | 1000 |
like_cnt | string | 可选 | 一个月内点赞次数 | 用户自填 | 不要求实时性,优先级可以放低 | 100 |
unlike_cnt | string | 可选 | 一个月内踩次数 | 用户自填 | 不要求实时性,优先级可以放低 | 100 |
comment_cnt | string | 可选 | 一个月内评论次数 | 用户自填 | 不要求实时性,优先级可以放低 | 100 |
collect_cnt | string | 可选 | 一个月内收藏次数 | 用户自填 | 不要求实时性,优先级可以放低 | 100 |
share_cnt | string | 可选 | 一个月内分享次数 | 用户自填 | 不要求实时性,优先级可以放低 | 100 |
download_cnt | string | 可选 | 一个月内下载次数 | 用户自填 | 不要求实时性,优先级可以放低 | 100 |
tip_cnt | string | 可选 | 一个月内打赏数 | 用户自填 | 不要求实时性,优先级可以放低 | 100 |
subscribe_cnt | string | 可选 | 一个月内关注数 | 用户自填 | 不要求实时性,优先级可以放低 | 100 |
source_id | string | 可选 | 物料经由哪个平台进入场景 | 用户自填 | 比如天猫,淘宝等,这个字段可以是平台的ID,例如淘宝1,天猫2 | 1 |
country | string | 可选 | 国家编码 | 用户自填 | ISO3166-1alpha-3 编码 | “CHN”(中国) |
city | string | 可选 | 城市名称 | 用户自填 | 杭州、上海 | |
features | string | 可选 | 物料特征(字符串型) | 用户自填 | 英文逗号分隔的物料特征;该特征是描述性的 | |
num_features | string | 可选 | 物料特征(数值型) | 用户自填 | 英文逗号分隔的数值型物料特征;必须保证所有物料的该字段逗号个数一致,且字段对齐 |
user
字段名 | 字段类型 | 是否必填 | 字段含义 | 字段值枚举 | 字段值说明 | 字段值示例 |
user_id | string | 已登录用户必填 | 用户唯一ID | 用户自填 | 1、注册用户必填。 2、user_id 可作为一个用户的唯一标识 | 1234567 |
user_id_type | string | 可选 | 用户注册类型 | 1234 | 1:app注册账号, 2:手机号,3:微信号,4:其它 | 2 |
imei | string | 未登录用户必填 | 安卓:MD5(imei),IOS:MD5(idfa) | 用户自填 | 1、非注册用户必填。 2、按照指定要求,mac地址,设备号等无效,会无法使用内部用户画像信息,仅保留曝光过滤功能。 | imei358800091015835md5后74f25e604e1a9dde7471fe2e25ae54d0idfa41B2FD07-695A-4A27-8D26-C30ECE6F7EADmd5后06e1565409c9fc4887036b97442135ee |
third_user_name | string | 可选 | 第三方用户名称 | 用户自填 | jack | |
third_user_type | string | 可选 | 第三方平台名称 | 用户自填 | ||
phone_md5 | string | 可选 | 用户手机号的md5值,长度为32位 | 用户自填 | d41d8cd98f00b204e9800998ecf8427e | |
gender | string | 可选 | 性别 | male/female/unknown | 如果为敏感数据,可进行映射上报,如0-男,1-女 ,2-未知 | male |
age | string | 可选 | 年龄 | 用户自填 | 22 | |
age_group | string | 可选 | 年龄段 | 用户自填 | 20-25 | |
country | string | 可选 | 国家编码 | 用户自填 | ISO3166-1 alpha-3 编码 | “CHN”(中国) |
city | string | 可选 | 城市名称 | 用户自填 | 杭州、上海 | |
ip | string | 可选 | 最后登录IP | 用户自填 | 202.113.XX.XX | |
device_model | string | 可选 | 设备型号 | 用户自填 | iphoneX | |
tags | string | 可选 | 用户tags,多个tag使用英文逗号分隔 | 用户自填 | 对用户的标签描述 | 足球,健身,户外 |
source | string | 可选 | 用户来源 | 用户自填 | 今日头条引流 | |
content | string | 可选 | 用户描述 | 用户自填 | ||
register_time | string | 可选 | 注册时间戳,单位s | 用户自填 | 1520007038 | |
last_login_time | string | 可选 | 上次登录时间戳,单位s | 用户自填 | 1520017038 | |
last_modify_time | string | 可选 | 用户信息的最后修改时间戳,单位s | 用户自填 | 1520327038 | |
features | string | 可选 | 用户特征(字符串型) | 用户自填 | 英文逗号分隔的用户描述性特征,比如画像等 | |
num_features | string | 可选 | 用户特征(数值型) | 用户自填 | 英文逗号分隔的数值型用户特征;必须保证所有物料的该字段逗号个数一致,且字段对齐 |
behavior
字段名 | 字段类型 | 是否必填 | 字段含义 | 字段值枚举 | 字段值说明 | 字段值示例 |
item_id | string | 必填 | 内容ID | 用户自填 | 需要与item表中的item_id相匹配 | 34513 |
item_type | string | 必填 | 内容的类型 | image;article;video;shortvideo;item;recipe;audio; | 需要与item表中的item_type相匹配 | image |
bhv_type | string | 必填 | 行为类型,例如曝光、停留、点击、收藏、下载等 | expose/click | 正例数据click的条数需要小于负例数据expose的条数,否则系统会判断数据异常,无法启动服务 | expose |
trace_id | string | 必填 | 请求追踪/埋点ID。用于在AB实验时区分调用了阿里推荐引擎。 | Alibaba/selfhold | 1、调用了阿里推荐引擎而产生的行为数据,填Alibaba;基于自研/运营推荐产生的行为数据,填selfhold。 2、主要用于控制台报表分析,效果对比。 | Alibaba |
trace_info | string | 必填 | 请求埋点信息。智能推荐内部用来分析链路调优。 | 用户自填 | 1、trace_id=selfhold时,trace_info填1即可。 2、trace_id=Alibaba。在获取推荐结果时,会返回此item的trace_info。trace_id=Alibaba说明这条行为数据,是对从AIRec推荐出来的这条item而产生的行为。回传行为数据时把这个item对应的trace_info原样回传即可。 | 1007.5911.12351.1002000:4ea8bc59-aa9c-11b85be7:46:recommend:5:life:::10:content___5f3b2404c115eac:article:hot_common:0.0869:0.20308921:0.69352831:159895:::::::::: |
scene_id | string | 必填 | 场景ID | 用户自填 | 1、用户产生行为的场景,在对应的item的场景ID中,单值。 2、行为表的scene_id要包含于item表中的scene_id。 3、无场景区分需求,默认填1,若无法追踪到行为的具体场景ID,填-102。具体参考投放场景使用指南 | a101 |
bhv_time | string | 可选 | 行为发生的时间戳(秒级) | 用户自填 | 用户实际产生行为的时间 | 1520327038 |
bhv_value | string | 必填 | 行为详情,例如点击次数,停留时长,购买件数等 | 用户自填 | 1、曝光、点击、转发等行为填1即可。 2、停留行为需填写停留时长,单位为秒。 3、其它行为类型请联系技术开发 | 500 |
user_id | string | 已登录用户必填 | 用户ID | 用户自填 | 1、注册用户需要与user表中相匹配。 2、未登录用户访问可不填 | 1234567 |
platform | string | 可选 | 客户端平台。 | 用户自填 | ios/android/h5 | ios |
imei | string | 未登录用户必填 | 安卓:MD5(imei),IOS:MD5(idfa) | 用户自填 | 1、非注册用户必填。 2、按照指定要求,mac地址,设备号等无效,会无法使用内部用户画像信息,仅保留曝光过滤功能。 3、32位MD5值 | e2fcdb0f4dce45e35fe2823d797333ec |
app_version | string | 可选 | app的版本号 | 用户自填 | 4.1.10 | |
net_type | string | 可选 | 网络型号 | 用户自填 | 2G/3G/4G/WIFI | 4G |
ip | string | 可选 | 客户端IP信息 | 用户自填 | 234.45.13.14 | |
login | string | 可选 | 是否登录用户 | 01 | 0:未登录 1:登录 | 1 |
report_src | string | 可选 | 上报来源类型 | 12 | 1:服务端; 2:客户端。 | 2 |
device_model | string | 可选 | 设备型号 | 用户自填 | iphoneX | |
longitude | string | 可选 | 位置经度 | 用户自填 | 128.4 | |
latitude | string | 可选 | 位置纬度 | 用户自填 | 78.1 | |
module_id | string | 可选 | 模块ID | 用户自填 | 114 | |
page_id | string | 可选 | 页面ID | 用户自填 | 4 | |
position | string | 可选 | 内容所在的位置信息 | 用户自填 | 5 | |
message_id | string | 可选 | 一条行为的唯一标识 | 用户自填 | 若不填写内部将取item_id、item_type、user_id、imei、bhv_type、bhv_time等字段组合去重 | 5 |
behavior type
bhv_type | 行为释义 |
expose | 曝光,必填行为,且曝光行为数要大于点击行为数 |
click | 点击,必填行为 |
like | 点赞 |
unlike | 踩 |
comment | 评论 |
collect | 收藏 |
stay | 停留时长 |
share | 分享 |
download | 下载 |
tip | 打赏 |
subscribe | 关注 |
dislike | 负反馈,具体使用参考负反馈功能详解 |
page_next | 翻章,bhv_value填1即可 |
建表语句
如使用MaxCompute服务进行启动数据上报,可参考如下的建表语句:
---创建内容型的行为表
DROP TABLE IF EXISTS behavior_table;
CREATE TABLE IF NOT EXISTS `behavior_table`
(
trace_id STRING COMMENT "请求追踪/埋点ID"
,trace_info STRING COMMENT "请求埋点信息"
,platform STRING COMMENT "客户端平台"
,device_model STRING COMMENT "设备型号"
,imei STRING COMMENT "设备ID"
,app_version STRING COMMENT "app的版本号"
,net_type STRING COMMENT "网络型号"
,longitude STRING COMMENT "位置经度"
,latitude STRING COMMENT "位置纬度"
,ip STRING COMMENT "客户端IP信息"
,login STRING COMMENT "是否登录用户"
,report_src STRING COMMENT "上报来源类型"
,scene_id STRING COMMENT "场景ID"
,user_id STRING COMMENT "用户ID"
,item_id STRING COMMENT "内容ID"
,item_type STRING COMMENT "内容的类型"
,module_id STRING COMMENT "模块ID"
,page_id STRING COMMENT "页面ID"
,position STRING COMMENT "内容所在的位置信息"
,bhv_type STRING COMMENT "行为类型"
,bhv_value STRING COMMENT "行为详情"
,bhv_time STRING COMMENT "行为发生的时间戳"
)
PARTITIONED BY
(
ds STRING
)
LIFECYCLE 30
;
---创建内容型的用户表
DROP TABLE IF EXISTS user_table;
CREATE TABLE IF NOT EXISTS `user_table`
(
user_id STRING COMMENT "用户唯一ID"
,user_id_type STRING COMMENT "用户注册类型"
,third_user_name STRING COMMENT "第三方用户名称"
,third_user_type STRING COMMENT "第三方平台名称"
,phone_md5 STRING COMMENT "用户手机号的md5值"
,imei STRING COMMENT "用户设备ID"
,content STRING COMMENT "用户内容"
,gender STRING COMMENT "性别"
,age STRING COMMENT "年龄"
,age_group STRING COMMENT "年龄段"
,country STRING COMMENT "国家"
,city STRING COMMENT "城市"
,ip STRING COMMENT "最后登录IP"
,device_model STRING COMMENT "设备型号"
,register_time STRING COMMENT "注册时间戳"
,last_login_time STRING COMMENT "上次登录时间戳"
,last_modify_time STRING COMMENT "用户信息的最后修改时间戳"
,tags STRING COMMENT "用户tags"
,source STRING COMMENT "用户来源"
,features STRING COMMENT "附加用户特征(字符串型)"
,num_features STRING COMMENT "附加用户特征(数值型)"
)
PARTITIONED BY
(
ds STRING
)
LIFECYCLE 30
;
---创建内容型的物料表
DROP TABLE IF EXISTS item_table;
CREATE TABLE IF NOT EXISTS `item_table`
(
item_id STRING COMMENT "内容唯一标识ID"
,item_type STRING COMMENT "内容的类型"
,title STRING COMMENT "内容标题"
,content STRING COMMENT "内容正文"
,pub_time STRING COMMENT "发布时间"
,status STRING COMMENT "是否可推荐"
,expire_time STRING COMMENT "内容失效时间戳"
,last_modify_time STRING COMMENT "内容信息的最后修改时间戳"
,scene_id STRING COMMENT "场景id"
,duration STRING COMMENT "时长,秒"
,category_level STRING COMMENT "类目层级数"
,category_path STRING COMMENT "类目路径"
,tags STRING COMMENT "标签"
,channel STRING COMMENT "频道"
,organization STRING COMMENT "机构列表"
,author STRING COMMENT "作者列表"
,pv_cnt STRING COMMENT "浏览次数"
,click_cnt STRING COMMENT "点击次数"
,like_cnt STRING COMMENT "点赞次数"
,unlike_cnt STRING COMMENT "踩次数"
,comment_cnt STRING COMMENT "内容评论数"
,collect_cnt STRING COMMENT "收藏次数"
,share_cnt STRING COMMENT "分享次数"
,download_cnt STRING COMMENT "下载次数"
,tip_cnt STRING COMMENT "打赏次数"
,subscribe_cnt STRING COMMENT "订阅次数"
,source_id STRING COMMENT "物料来源"
,country STRING COMMENT "国家"
,city STRING COMMENT "城市"
,features STRING COMMENT "附加特征"
,num_features STRING COMMENT "附加数值特征"
,weight STRING COMMENT "内容加权,默认为1"
)
PARTITIONED BY
(
ds STRING
)
LIFECYCLE 30
;