原子文件

原子文件是 RecBole 约定的一类通用的数据格式,支持灵活的数据输入。


原子文件

目前 RecBole 支持 6 种原子文件,它们通过后缀名进行区分。

后缀 含义 例子
.inter 用户-商品交互特征 user_id, item_id, rating, timestamp, review
.user 用户特征 user_id, age, gender
.item 商品特征 item_id, category
.kg 知识图谱三元组 head_entity, tail_entity, relation
.link 知识图谱与推荐系统链接关系 entity, item_id
.net 社交网络图 source, target

原子文件直接可以互相组合,只要将后缀写入参数load_col中,该文件就会被加载。

一些推荐系统任务会要求必须存在某些原子文件,如:

任务 必须存在的原子文件
General .inter
Context-aware .inter, .user, .item
Knowledge-aware .inter, .kg, .link
Sequential .inter
Social .inter, .net

每个原子文件可以被看作 `m` 行 `n` 列的表格(不计表头),代表该文件存储了 `n` 种不同的特征,共 `m` 条记录。 文件第一行为表头,表头中每一列的形式为 feat_name:feat_type,标示了该列特征的名字及类型。 约定特征为四种类型之一,它们都可以被方便地转化为按 batch 组织的张量。

feat_type 含义 例子
token 单个离散特征 user_id, age
token_seq 离散特征序列 review
float 单个连续特征 rating, timestamp
float_seq 连续特征序列 vector

例子

以 ml-1m 数据集为例,每个文件分别列出三行。

ml-1m.inter

user_id:token item_id:token rating:float timestamp:float
1 1193 5 978300760
1 661 3 978302109

ml-1m.user

user_id:token age:token gender:token occupation:token zip_code:token
1 1 F 10 48067
2 56 M 16 70072

ml-1m.item

item_id:token movie_title:token_seq release_year:token genre:token_seq
1 Toy Story 1995 Animation Children's Comedy
2 Jumanji 1995 Adventure Children's Fantasy

ml-1m.kg

head_id:token relation_id:token tail_id:token
m.0gs6m film.film_genre.films_in_this_genre m.01b195
m.052_dz film.film.actor m.02nrdp

ml-1m.link

item_id:token entity_id:token
2694 m.02hxhz
2079 m.0kvcr9