代码:https://github.com/NVIDIA-Merlin/Transformers4Rec/
本文提出了一整套序列推荐建模的pipeline,包括了数据预处理/特征工程模块;模型训练和评估模块和Transformers元架构模块等。几个亮点可以提前预览下,
1.数据预处理模块引入了NVIDIA开源的Tabular[1]库,能够显著降低从原始数据到模型输入之间的转换时间,提高训练和推理性能。
2.模型训练与评估模块主要在HuggingFace库基础上做适配序列推荐的定制。
3.Transformers元架构模块主要介绍了:
-
输入特征如何做表征(例如:连续值的soft one-hot嵌入方法);
-
嵌入绑定(Tying Embeddings)技巧能大幅提升指标,通过嵌入绑定,能巧妙地实现类似推荐系统中的user/item矩阵分解的效果。
-
融合连续型特征时,在原始特征基础上使用layer normalization后再融合,指标也会大幅提升。
-
各种各样的Transformers架构可以定制使用,比如原始的Transformers,XLNets中针对长序列的Transformers-XL等。对序列建模影响挺大。
4.Transformers在序列推荐中的应用,如何才能达到最优的性能?
-
序列推荐的训练方法很重要。介绍了如何将NLP中预训练的方法用到序列推荐中,包括CLM,MLM,PLM,RTD等等,和传统的序列推荐训练方法有很大的区别。
-
不同的Transformers架构影响也挺大。例如:BERT和XLNets中用到的Transformers架构表现存在差异。
-
介绍Transformers架构如何建模辅助信息最合适。
5.作者用Transformers4Rec工具赢了两个顶会会话推荐比赛的Top名次 (check了官网的Leaderboards),分别是,
-
Top1, WSDM WebTour Workshop Challenge 2021, organized by Booking.com [5].。 -
Top2, SIGIR eCommerce Workshop Data Challenge 2021, organized by Coveo [6]。
这两个比赛都有对应的方案论文放出来,感兴趣的可以结合代码深入读读他们的方案论文,应该会收获更大。
Transformers4Rec是一种端到端的推荐系统框架,包括:数据预处理、模型训练和评估。
-
左图原始输入数据经过NVTabular处理后转化为模型的输入,这里头还涉及到特征工程。输入字段可通过可配置的文件来指定。 -
中间的训练和评估模块加载数据并调用了底部的Transformers模型(核心),来做前向传播和后向传播等。具体的,重载了HuggingFace的trainer类,在子类中实现序列推荐的训练,评估和预测。训练方法有多种多样,借鉴预训练模型的方法;评估指标主要是推荐系统中常用的排序指标。 -
最后右侧输出训练好的模型,预测结果,评估指标、训练过程监控等等。
内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢