Sequential recommendation aims to provide users with personalized suggestions based on their historical interactions. When training sequential models, padding is a widely adopted technique for two main reasons: 1) The vast majority of models can only handle fixed-length sequences; 2) Batching-based training needs to ensure that the sequences in each batch have the same length. The special value \emph{0} is usually used as the padding content, which does not contain the actual information and is ignored in the model calculations. This common-sense padding strategy leads us to a problem that has never been explored before: \emph{Can we fully utilize this idle input space by padding other content to further improve model performance and training efficiency?} In this paper, we propose a simple yet effective padding method called \textbf{Rep}eated \textbf{Pad}ding (\textbf{RepPad}). Specifically, we use the original interaction sequences as the padding content and fill it to the padding positions during model training. This operation can be performed a finite number of times or repeated until the input sequences' length reaches the maximum limit. Our RepPad can be viewed as a sequence-level data augmentation strategy. Unlike most existing works, our method contains no trainable parameters or hyperparameters and is a plug-and-play data augmentation operation. Extensive experiments on various categories of sequential models and five real-world datasets demonstrate the effectiveness and efficiency of our approach. The average recommendation performance improvement is up to 60.3\% on GRU4Rec and 24.3\% on SASRec. We also provide in-depth analysis and explanation of what makes RepPad effective from multiple perspectives. Our datasets and codes are available at \url{https://github.com/KingGugu/RepPad}.
翻译:序列推荐旨在根据用户的历史交互记录提供个性化建议。在训练序列模型时,填充是一种被广泛采用的技术,主要原因有二:1)绝大多数模型只能处理固定长度的序列;2)基于批处理的训练需要确保每个批次中的序列具有相同长度。特殊值\emph{0}通常被用作填充内容,它不包含实际信息,在模型计算中被忽略。这种常识性的填充策略引出了一个此前从未被探索过的问题:\emph{我们能否通过填充其他内容来充分利用这些空闲的输入空间,从而进一步提升模型性能和训练效率?}本文提出了一种简单而有效的填充方法,称为\textbf{重复填充}(\textbf{RepPad})。具体而言,我们使用原始交互序列作为填充内容,在模型训练期间将其填充至填充位置。此操作可执行有限次数,或重复进行直至输入序列长度达到最大限制。我们的RepPad可被视为一种序列级数据增强策略。与大多数现有工作不同,该方法不包含可训练参数或超参数,是一种即插即用的数据增强操作。在多种类别的序列模型和五个真实世界数据集上进行的大量实验证明了我们方法的有效性和效率。在GRU4Rec上平均推荐性能提升高达60.3\%,在SASRec上提升达24.3\%。我们还从多个角度对RepPad的有效性进行了深入分析和解释。我们的数据集和代码可在\url{https://github.com/KingGugu/RepPad}获取。