LimQueen
LimQueen
> 谢谢您的回复!我再尝试一下,感谢感谢!!
> python run_hyper.py --model=NARM --dataset=ml-100k --params_file=hyper.test 不好意思,麻烦再打扰一下!ValueError: neg_sampling [{'uniform': 1}] should be None when the loss_type is CE.报错是什么原因呢,貌似是algo的问题。 ================================================================================ ERROR in rec_eval EXCEPTION 'numpy.random.mtrand.RandomState' object has no attribute 'integers' NODE...
> @LimQueen 您好,这是由于当loss的类型为交叉熵损失时,训练的任务属于多分类任务,此时不需要对样本进行负采样,因此需要设置负采样模式为**None**。您只需要在配置的.yaml文件中添加设置:`neg_sampling: ~ `即可。 谢谢您的回复!感谢感谢!!
您好,再打扰您一下,麻烦请教一下修改数据集的问题。 请问如果想用sequence_recommonder模型,并且我引入了新数据集默认用户匿名(即无user_id,timestamp),数据集header为用户的历史匿名交互序列(session)和真实数据中用户下一次交互的产品(label)。请问我应该修改哪些文件来改变模型默认的header呢(模型默认数据集header貌似是user_id、item_id、rating和timestamp,我想引入的数据集header为session(数据类型为序列,如[112,134,2,3] )和label),目前修改了sample.yaml、overall.yaml,但貌似依然不太对,请问应该如何修改能让header匹配呢。 抱歉抱歉,打扰您这么多次,非常感谢!!
谢谢!!万分感激,不好意思打扰您这么多次。
> @LimQueen 一般情况下,您无需修改库默认配置文件(sample.yaml,overall.yaml)。 而根据你的需求需要创建一个yaml文件来指定数据的处理方式,并且使用命令行参数--config_files来指定创建的配置文件。特别地,在序列推荐场景下,您提供了处理好的session后,应该使用**benchmark_file**指定划分好的train, val and test dataset。数据部分的处理示例如下: > > ``` > data_path: 'Your Path' > benchmark_filename: ['train', 'val', 'test'] > ITEM_ID_FIELD: label > > load_col: > inter: [session, label]...
@chenyuwuxin 您好,目前我运行python run_hyper.py --model=NARM --dataset=sequence-data --config_files=NARM.yaml --params_file=hyper.test 其中NARM.yaml设置如下: data_path: 'dataset\' benchmark_filename: ['train', 'val', 'test'] ITEM_ID_FIELD: label neg_sampling: ~ load_col: inter: [session, label] hyper.test文件设置如下: learning_rate choice [0.01,0.005,0.001,0.0005] hidden_size choice [64] n_layers...
@chenyuwuxin 您好,抱歉再次打扰您,还是报错了TAT。我的训练集sequence-data.train.inter前十行是这样的: user_id item_id_list item_id 0 11673 897 10000 4477 3468 0 11673 897 10000 4477 0 11673 897 10000 0 11673 1 0 11673 194 0 11673 897 0...
@chenyuwuxin 您好,我按照以下修改好原子文件后(以train为例),还是报了刚刚那个错QAQ: import pandas as pd df = pd.read_csv(r'dataset/beauty-session/beauty-session.train.inter', sep='\t') df = df.rename(columns={'user_id:token':'user_id:token', 'item_id_list:token_seq':'item_id_list:token_seq', 'item_id:token':'item_id:token'}) df.to_csv(r'dataset/beauty-session/beauty-session.train.inter', index=False, sep='\t')
@chenyuwuxin 噢不好意思,我完成修改的代码是您这个,抱歉我发错了。发给您那个代码是我用来确认表头改好写的代码。