/Delayed-Feedback

The official implementation for the paper "Counterfactual reward modification for streaming recommendation with delayed feedback".

Primary LanguagePython

Delayed-Feedback

Counterfactual Reward Modification for Streaming Recommendation with Delayed Feedback的相关代码

Artificial_data

该文件夹下包含了在人工数据集下的算法模拟场景。

Algo_开头的文件代表了各自包含的算法实现,例如Algo_UCB代表UCB的实现代码、Algo_DFM代表DFM的实现代码,其余同理。

config.py包含了代码运行所必要的一些参数,例如config.M代表优惠券个数,config.Data_config代表人工模拟数据所需要的参数类,其余同理。

create_data.py包含了构造人工数据的过程,通过执行以下命令实现人工数据的构造,可调节create_data.N控制数据量,调节create_data.p控制上下文状态维度等。

python3 create_data.py

data.txt,data1.txt分别代表不同状态分布下上下文状态维度为10的两个人工数据集。 data50.txt代表上下文状态维度为50的人工数据集。

draw.pydraw_all.py为结果的绘制文件,通过执行以下命令实现论文结果图的绘制

python3 draw.py
python3 draw_all.py

Criteo_data

该文件夹下包含了在公开数据集Criteo数据集下的算法模拟场景。

criteo_data文件夹下的代码功能和命名逻辑与Artificial_data类似,不同之处在于数据的加载不是通过模拟生成,而是直接用公开数据集改造而成。

Criteo包含两个环境参数$w_c$和$w_d$,分别用来预测在对应状态下的CVR以及延迟转化时间。不同的campaign对应不同的参数组,均由baseline算法DFM训练所得,已被存放在文件夹coef下,文件名即为对应的campaign的ID。

Criteo总共包含了两组训练/测试数据的状态向量,其状态向量均通过PCA压缩为50维,分别是在recent campaign上使用top5(M=5)采集到的recent数据(75021),对应./data_top_pca/recent_state_random.txt,和在all campaign上使用top15(M=15)采集到的all数据(1278556),对应./data_top_pca/all_state_random.txt,此外,用于算法第一轮初始化所需要的数据被分别存储在recent_criteo_dataset.txtall_criteo_dataset.txt中,通过config.py完成加载配置。

其中data_top_pca文件可通过百度网盘下载:链接:https://pan.baidu.com/s/1f7zUyssbZOp8oLkCcoVWwA ,密码:ekik,存放至./criteo_data/下即可

通过执行criteo_main.py可完成主算法或baseline在Criteo数据集下的训练和上线模拟:

python3 criteo_main.py