论文链接:https://research.fb.com/publications/transformers4rec-bridging-the-gap-between-nlp-and-sequential-session-based-recommendation/

代码: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中预训练的方法用到序列推荐中,包括CLMMLMPLMRTD等等,和传统的序列推荐训练方法有很大的区别。

  • 不同的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类,在子类中实现序列推荐的训练,评估和预测。训练方法有多种多样,借鉴预训练模型的方法;评估指标主要是推荐系统中常用的排序指标。
  • 最后右侧输出训练好的模型,预测结果,评估指标、训练过程监控等等。

内容中包含的图片若涉及版权问题,请及时与我们联系删除