liuqidong07 / LLM-ESR

[NeurIPS'24] The official implementation code of LLM-ESR.
https://arxiv.org/abs/2405.20646
MIT License
11 stars 1 forks source link

utils.py中在unzip_data函数中进行数据增强时,为何使用for i in range(aug_num+2, seq_len+1)进行循环? #1

Closed Tianyi-Lin closed 1 day ago

Tianyi-Lin commented 1 day ago

if aug: for user in tqdm(data):

user_seq是用于train的序列

    user_seq = data[user]
    seq_len = len(user_seq)
    # 原始序列 i1, i2, i3, i4, i5, i6, i7, i8, i9
    # 在generator.py中已经进行了划分train valid test
    # train_seq = <i1, i2, i3, i4, i5, i6, i7>  seq_len=7
    # 假设增强序列的个数为aug_num = aug_seq_len = 3 (generator.py中设置了aug_num = aug_seq_len)
    # 则增强序列为<1,2,3,4,5,6,7> <1,2,3,4,5,6> <1,2,3,4,5>
    # 最短增强序列<1,2,3,4,5>的最后一个元素下标是4 = seq_len - aug_num
        # +2是认为需要加上 valid + test?这似乎不是很合理,因为此处的输入只是train set
        # for i in range(aug_num+2, seq_len+1):
        for i in range(seq_len-aug_num, seq_len+1):
        res.append(user_seq[:i])

请问上述的理解是正确的吗?没有太理解原始代码中为何从aug_num+2开始裁切,期待您的回复 o(╥﹏╥)o

liuqidong07 commented 1 day ago

您好,aug参数默认设置的是false,所以这段代码并没有执行。这个是我之前project遗留的代码,本论文的实验中没有涉及到序列增强。 祝好,

Tianyi-Lin commented 1 day ago

嗯嗯 Thanks♪(・ω・)ノ。 能否问一下,一般来说,SRS的数据增强是对于原始交互序列倒序进行截断是吗?类似于GPT的预训练方式?也就是上图的意思。在SIGIR 2021 Contrastive Learning for Sequential Recommendation里面,还有截断,换序,mask之类增强。想请教一下,一般来说,增益大吗?新手入门QAQ

liuqidong07 commented 1 day ago

但是aug_seq_len默认设置为0,所以这句也实际没有起作用。您可以重新组织一下问题描述,我没有太理解。 此外,我们这篇论文并没有做数据增强,只是遗留了上一个project的代码,不建议作为参考。建议您直接参考做数据增强的论文的代码。 祝好,

liuqidong07 commented 1 day ago

嗯嗯 Thanks♪(・ω・)ノ。 能否问一下,一般来说,SRS的数据增强是对于原始交互序列倒序进行截断是吗?类似于GPT的预训练方式?也就是上图的意思。在SIGIR 2021 Contrastive Learning for Sequential Recommendation里面,还有截断,换序,mask之类增强。想请教一下,一般来说,增益大吗?新手入门QAQ

您提到的数据增强的论文我认为收益主要来源于对比学习,相比SASRec这类直接做seq-to-seq的训练方式,是确实有提升的。

Tianyi-Lin commented 1 day ago

嗯嗯 Thanks♪(・ω・)ノ。 能否问一下,一般来说,SRS的数据增强是对于原始交互序列倒序进行截断是吗?类似于GPT的预训练方式?也就是上图的意思。在SIGIR 2021 Contrastive Learning for Sequential Recommendation里面,还有截断,换序,mask之类增强。想请教一下,一般来说,增益大吗?新手入门QAQ

您提到的数据增强的论文我认为收益主要来源于对比学习,相比SASRec这类直接做seq-to-seq的训练方式,是确实有提升的。

谢谢啦🤗