推荐系统是现代互联网的核心技术之一,它连接用户与内容/商品,既提升用户体验,也驱动商业增长。随着大模型的发展,推荐系统正进入新的智能化阶段在互联网大厂中,推荐算法工程师的工资处于第一梯度,刚入职就能有50w+的不在少数,后续升职加薪更是可观很多同学在学习推荐系统的时候可能会发现,缺乏系统的入门资料,入门难度很大,推荐系统的模型搭建也不太方便这一期主要是给大家推荐Datawhale开源社区准备三年,然后开源的推荐系统框架Torch-RecHub:10行代码实现工业级推荐系统基于这个框架,开发和使用推荐系统模型就像搭积木一样就行,具有轻量化、高效和易用的特点这个推荐系统框架连接左侧的数据生态,中间的各种特征转化与融合,模型的训练,到后续模型部署与评估等环节,包含了从数据、模型、训练、推理、部署等全链路这个框架要求的运行环境是:环境依赖比较常规,容易快速上手通过在pycharm终端或者prompt里面输入下面指令,可以一键安装这个框架如果大家想要去学习这个框架是怎么开发出来的,以及底层的原理,可以根据项目结构寻找相应内容来看,项目的解释文档很全面和清晰目前支持的排序模型有13个,包括DeepFM, Wide&Deep, DCN,DCN-V2, DIN等主流模型,能满足大部分情况的使用支持的召回模型有12个,包括DSSM, YoutubeDNN, MIND, SINE, GRU4Rec等此外还支持多任务模型,比如ESMM, MMoE, PLE, 2021年KDD上发表的AITM,SharedBottom等生成式推荐模型有3个,主要是2024年Meta提出的HSTU, HLLM, 还有NeurIPS 2023发表的TIGER模型为了方便大家使用,还支持以下常见数据集格式,并提供相应的数据处理脚本,囊括了主流的数据格式最后,还有所有模型的使用案例,比如CTR预测的精排模型调用:from torch_rechub.models.ranking import DeepFMfrom torch_rechub.trainers import CTRTrainerfrom torch_rechub.utils.data import DataGeneratordg = DataGenerator(x, y)train_dataloader, val_dataloader, test_dataloader = dg.generate_dataloader(split_ratio=[0.7, 0.1], batch_size=256)model = DeepFM(deep_features=deep_features, fm_features=fm_features, mlp_params={"dims": [256, 128], "dropout": 0.2, "activation": "relu"})ctr_trainer = CTRTrainer(model)ctr_trainer.fit(train_dataloader, val_dataloader)auc = ctr_trainer.evaluate(ctr_trainer.model, test_dataloader)ctr_trainer.export_onnx("deepfm.onnx")
from torch_rechub.models.multi_task import SharedBottom, ESMM, MMOE, PLE, AITMfrom torch_rechub.trainers import MTLTrainertask_types = ["classification", "classification"] model = MMOE(features, task_types, 8, expert_params={"dims": [32,16]}, tower_params_list=[{"dims": [32, 16]}, {"dims": [32, 16]}])mtl_trainer = MTLTrainer(model)mtl_trainer.fit(train_dataloader, val_dataloader)auc = ctr_trainer.evaluate(ctr_trainer.model, test_dataloader)mtl_trainer.export_onnx("mmoe.onnx")
from torch_rechub.models.matching import DSSMfrom torch_rechub.trainers import MatchTrainerfrom torch_rechub.utils.data import MatchDataGeneratordg = MatchDataGenerator(x, y)train_dl, test_dl, item_dl = dg.generate_dataloader(test_user, all_item, batch_size=256)model = DSSM(user_features, item_features, temperature=0.02, user_params={ "dims": [256, 128, 64], "activation": 'prelu', }, item_params={ "dims": [256, 128, 64], "activation": 'prelu', })match_trainer = MatchTrainer(model)match_trainer.fit(train_dl)match_trainer.export_onnx("dssm.onnx")# 双塔模型可分别导出用户塔和物品塔:# match_trainer.export_onnx("user_tower.onnx", mode="user")# match_trainer.export_onnx("dssm_item.onnx", tower="item")
# 可视化模型架构(需要安装: pip install torch-rechub[visualization])graph = ctr_trainer.visualization(depth=4) # 生成计算图ctr_trainer.visualization(save_path="model.pdf", dpi=300) # 保存为高清 PDF
还有其他内容,可以详细查看在线文档,非常的详细,可以拿这个框架去调用一些推荐系统模型,对比不同模型的差别,然后用自己的数据集来跑一遍,基本上就算是推荐系统入门了推荐系统难度不大,但万事开头难,就是需要熬过一段艰难的入门阶段,坚持下去,肯定就能成功,学习永无止境,但你一直在进步!2. 发送口令“推荐系统”领取(人工回复可能有时差,都会发给大家的,不用着急