Retailrocket推荐系统数据集
电子商务数据:网络事件,项目属性(带有文本),类别树
数据集由三个文件组成:一个具有行为数据的文件(events.csv),一个具有项目属性的文件(itemproperties.сsv )和一个描述类别树的文件(categorytree.сsv)。数据是从真实世界的电子商务网站收集的。它是原始数据,即没有任何内容转换,但是,由于机密问题,所有值都被哈希化。发布的目的是激发具有隐式反馈的推荐系统领域的研究。
内容
行为数据,例如点击,添加到购物车,交易等事件,代表了在4.5个月内收集的互动。访客可以进行三种类型的事件,即“查看”,“添加购物车”或“交易”。总共有2 756 101个事件,包括2 664 312次浏览,69 332个添加到购物车以及1 407 580个唯一访问者产生了22 457笔交易。对于大约90%的事件,可以在“ item_properties.csv”文件中找到相应的属性。
例如:
- “ 1439694000000,1,view,100,”表示visitorId = 1,在1439694000000(Unix时间戳)上,单击了id = 100的项目
- “ 1439694000000,2,transaction,1000,234”表示visitorId = 2在1439694000000(Unix时间戳记)以id = 234的交易购买了id = 1000的商品
具有项目属性(item_properties.csv)的文件包括20 275 902行,即不同的属性,描述了417 053个唯一项目。由于文件大小的限制,文件分为2个文件。由于项目的属性可以随时间变化(例如,价格随时间而变化),因此文件中的每一行都有相应的时间戳。换句话说,该文件由文件中每个星期的串联快照以及行为数据组成。但是,如果项目的属性在观察期间内保持不变,则文件中将仅存在一个快照值。
例如,我们为单个项目和三个每周快照提供三个属性,如下所示:
timestamp,itemid,property,value
1439694000000,1,100,1000
1439695000000,1,100,1000
1439696000000,1,100,1000
1439697000000,1,100,1000
1439694000000,1,200,1000
1439695000000,1,200,1100
1439696000000,1,200,1200
1439697000000,1,200,1300
1439694000000,1,300,1000
1439695000000,1,300,1000
1439696000000,1,300,1100
1439697000000,1,300,1100
快照合并后,它看起来像:
1439694000000,1,100,1000
1439694000000,1,200,1000
1439695000000,1,200,1100
1439696000000,1,200,1200
1439697000000,1,200,1300
1439694000000,1,300,1000
1439696000000,1,300,1100
由于property = 100随时间是恒定的,因此对于所有快照,property = 200具有不同的值,因此property = 300已更改一次。
项目属性文件包含时间戳列,因为它们都与时间相关,因为属性可能随时间而变化,例如价格,类别等。最初,此文件由事件文件中每周的快照组成,并且包含2亿多行。我们合并了连续的常量属性值,因此将其从快照形式更改为更改日志形式。因此,常数值在文件中只会出现一次。此操作将行数大大减少了10倍。
除“ categoryid”和“ available”属性外,“ item_properties.csv”文件中的所有值均进行了哈希处理。“ categoryid”属性的值包含项目类别标识符。“ available”属性的值包含该项目的可用性,即1表示该项目可用,否则为0。所有数字值的开头均标有“ n”字符,并在小数点后具有3位精度,例如,“ 5”将变为“ n5.000”,“-3.67584”将变为“ n-3.675”。文本值中的所有单词均经过规范化(词干过程:https://en.wikipedia.org/wiki/Stemming)并进行哈希处理,数字的处理如上所述,例如,文本“ Hello world 2017!”。将变为“ 24214 44214 n2017.000”
类别树文件有1669行。文件中的每一行都指定一个子类别ID和相应的父类别。
例如:
- “ 100,200”行表示categoryid = 1的父级为categoryid = 200
- “ 300”行表示类别ID在树中没有父项