平板电脑最新资讯这篇顶会论文让你见证了如何为100层序列推荐模型加速训练引领Very Deep RS

AI科技评论报道

编辑 陈大鑫大家都知道,现有的序列推荐算法大多采用浅层的神经网络结构。而今天,AI 科技评论将为大家介绍一篇由中科院先进所、腾讯、华南理工近日合作发表在信息检索领域顶会 SIGIR 2021上的一篇论文,这篇论文发现通过对残差块结构进行微小的修改,序列推荐模型能够使用更深的网络结构以进一步提升精准度,也就是,推荐模型也能够像计算机视觉领域的模型那样拥有100层以上的深度并获得最优性能。在此基础上,论文提出一个高效且通用的框架 StackRec 来加速深度序列推荐模型的训练,并应用到多种实际的推荐场景中。论文地址:https://arxiv.org/pdf/2012.07598.pdf 代码+数据地址:https://github.com/wangjiachun0426/StackRec

1100层深的序列推荐模型由于推荐系统中的数据稀疏性问题以及深度学习中的梯度消失、梯度爆炸问题,现有的序列推荐算法往往采用浅层的神经网络结构(一般不超过10层)。而本文这篇StackRec论文发现,对于原始残差块,我们可以简单地调整其权重系数,使得极深网络也能得到有效稳定的训练,从而缓解过拟合问题。

具体来说,如图1所示,我们可以对残差块中的残差映射添加一个系数来衡量其重要性,从而满足动态等距理论 [1]。论文作者在NextItNet [2]上进行实验,发现当训练数据充足时,与越来越好的表现随着网络深度增加相关联,最多可使用128层并获得最佳效果,如图2(b)所示。

图1 改进后的残差块结构图

图2 不同训练数据量和网络深度影响

2StackRec算法动机加深序列推荐模型带来了明显精准提升,但同时也增加了时间成本。一方面,大型用户数量和物品数量,以及交互记录的大规模导致了长时间花费在计算和迭代优化;另一方面,在实际应用中,要确保新加入用户或物品能快速融入系统,是个挑战。如何提高效率不损失精准是研究人员们共同关注的问题,而StackRec提供了一种解决方案。

3StackRec算法框架

该方法非常简单,它通过对预先训练好的浅层序列推荐模型进行堆叠,可以构建出更复杂和更强大的DeepSeqModel。这包括以下步骤:

预先训练一个基线浅层Recommendation Model。

对这个基线model进行堆叠,每次堆叠后得到一个新的较为复杂版本。

微调每次生成出的新model,以适应新的任务需求。

4StackRec算法实践与结果

我们将这种方式命名为"Layer Stacking"。为了实现这一点,我们可以选择不同的策略,比如相邻block stacking或者cross-block stacking,如下:

相邻block stacking: 将两个连续blocks共享相同参数,即第i个block与第(i+1)个block共享参数。

Cross-block Stacking: 每隔n个blocks取一个作为当前stacking block,并与它之前的一个共享参数。

我们展示了两种策略如何工作,并证明它们比传统方法快很多。此外,我们还展示了如何将这些技术用于不同场景中,如持续学习、从头开始学习以及迁移学习场景。

5结论

总之,本文提出了一个简洁、高效且通用的框架——DeepSeqModel ——用于加速训练过程,同时保持或提高性能。本文还讨论了利用Layer Stacking 方法来逐渐构建出具有更多layer但仍保持良好性能的一般化模板——DeepSeqModel ——对于未来开发基于deep learning 的recsys有很大的潜力。在未来的研究中,将继续探索更多关于how to effectively train deep models for recommendation systems的问题。

猜你喜欢