推荐系统的应用场景非常广泛,比如非常火爆的短视频推荐、电商平台商品推荐、搜索推荐等。但是你知道吗?短视频APP在向你展示一个你感兴趣的视频之前,通常既要预测你对这个视频是否感兴趣,又要预测你会看多久,点赞还是不点赞,会不会偷偷收藏起来下次接着看。只有在多个维度都得到正向反馈时,短视频APP才会将这个视频推送到您的手机上。但是问题又来了,有这么多个想要预测的信息维度,如果将每种指标都看做一个任务,每个任务都搞一个模型来学,那花费的线上资源将是非常昂贵的。这个时候,多任务模型就应运而生,一个模型多任务学习即可全搞定。
本次产业实践范例介绍如何使用飞桨大规模推荐算法库PaddleRec ,以短视频推荐场景为例,提供多任务技术的推荐应用解决方案。此项技术也可以在商品推荐、信息流推荐、搜索等场景应用,至此,我们已经完成了20+公司内项目的落地。我们提供了从数据准备、模型训练及优化的全流程可复用方案,降低产业落地门槛。
⭐点击阅读原文GET项目链接⭐
https://github.com/PaddlePaddle/PaddleRec/tree/master/application/multitask_on_video
所有源码及教程均已开源,欢迎大家使用,star鼓励~
单任务学习:忽略任务之间可能存在的关系分别学习每个任务;
多任务学习:看重任务之间的联系,通过联合学习,同时对多个任务学习和优化,既考虑到了任务之间的差别,又考虑到任务之间的联系,这也是多任务学习最重要的思想之一。
推荐系统的设计,往往是从简单到复杂的过程,综合精度和性能考虑,最常见的路径是线性模型/LR、双塔模型(user/item)、DNN全连接、多个目标的联合学习 / 更复杂的特征学习(wide&deep, deepfm等)。我们在为短视频推荐任务选取模型的时候,历史上的升级路线是从最基础的share-bottom开始逐步升级为专家门控算法 mmoe和 ple,一步步优化,让模型给我们找出最符合口味的短视频。
经过如上三轮运算,我们使用同一个短视频数据集(很重要,可比较)训练了三个模型。并对短视频的点赞率和完播率进行了预测。得到的结果如下表所示:
优化经验总结
如何确定超参,如expert数和专家模型的实现方案?
实际的expert模型和gate模型都不是固定的,最常见的就是多层FC网络组成的mlp,具体实现可以参考PaddleRec/MMoE。在我们的实践中,当gate网络由一层fc升级为多层fc(gate网络参数增大,expert网络参数减少)时效果有明显提升。
CGC还是ple,和mmoe对比效果怎么样?
实践中单层CGC在相同参数规模下效果普遍要优于mmoe,我们的实践中多层的ple只有在个别场景下会好于CGC,所以很多情况下我们就直接采用CGC升级mmoe。
新加子任务时的热启解决方案?
实践中经常会遇到需要增加任务或者修改模型的情况。实践中尝试过如下解决方案:
模型部署
STEP 1:使用save_inference_model接口保存模型
在服务器端使用python部署需要先使用save_inference_model接口保存模型。
STEP 2:动转静导出模型
若您使用动态图训练完成,希望将保存下来的模型转化为静态图inference,那么可以参考我们提供的to_static.py脚本。
STEP 3:使用推理库预测
PaddleRec提供tools/paddle_infer.py脚本,供您方便的使用inference预测库高效的对模型进行预测。
飞桨也提供了完整的项目使用说明、开发文档、数据和代码,可以参考以下范例教程快速学习:
范例教程链接
https://aistudio.baidu.com/aistudio/projectdetail/4180842
如果想了解更详细方案细节,欢迎关注我们的直播课程,手把手全流程教学等你围观。
飞桨产业实践范例
助力企业跨越AI落地鸿沟
真实产业场景:与实际具有AI应用的企业合作共建,选取企业高频需求的AI应用场景如智慧城市-安全帽检测、智能制造-表计读数等;
完整代码实现:提供可一键运行的代码,在“AI Studio一站式开发平台”上使用免费算力一键Notebook运行;
详细过程解析:深度解析从数据准备和处理、模型选择、模型优化和部署的AI落地全流程,共享可复用的模型调参和优化经验;
直达项目落地:百度高工手把手教用户进行全流程代码实践,轻松直达项目POC阶段。
精彩课程预告
为了让小伙伴们更便捷地应用多任务视频推荐范例教程,百度高级研发工程师为大家深度解析从数据准备、方案设计到模型优化部署的开发全流程,手把手教大家进行代码实践。
获取更多技术内容~