在线特征工程对计算效率要求比较高 , 而计算量也比离线要大:离线计算的样本通常是1个user配对m个曝光的item(召回模型的话 , 会增加一些随机采样的负样本) 而线上计算的样本是1个user配对n个item(nm) 。 在线计算如果采用naive的计算方式 , 将一次请求展开成n个样本分别进行计算 , 效率通常是跟不上的 。 不难发现其中user feature的部分做了比较多的重复计算 , 对user feature做计算效率的优化 , 能够显著提升线上的qps 。我们结合淘系内部使用的Feature Generation模块做了深度优化 , 包括内存分配、字符串解析、重复计算消除、多线程并行计算等 , 在保证一致性的前提下 , 显著提高了计算的效率 。
增量训练和实时训练 增量训练通常能够带来效果的显著提升 , 原因在于增量训练见过了更多的样本 , 对embeding部分训练的更加充分 。 EasyRec支持从上一天的checkpoint restore , 然后在新的一天的数据上继续训练 。 为了快速适应新闻、节假日、大促等场景的样本分布发生快速变化的场景 , 我们提供了对实时训练的支持 。 EasyRec通过Blink来构造实时样本和特征 , 并调用Feature Generation对特征进行加工 , 然后通过Kafka、DataHub读取实时的样本流进行训练 。 实时训练的稳定性比较重要 , 我们在训练过程中对正负样本比、特征的分布、模型的auc等做实时的监控 , 当样本和特征的分布变化超过阈值时 , 报警并停止更新模型 。 保存checkpoint时 , EasyRec会同步记录当前训练的offsets(多个worker一起训练时 , 会有多个offset) , 当系统发生故障重启时 , 会从保存的offsets恢复训练 。
效果验证 EasyRec在多个用户场景(20+)中得到了验证 , 场景中包括商品推荐、信息流广告、社交媒体、直播、视频推荐等 。 以下是部分客户在他们场景中使用EasyRec取得的提升:
某APP广告推送: AUC提升1个点 , 线上ctr提升4% , 资源消耗降低一半; 某大型直播APP: 基于EasyRec MultiTower模型AUC提升2%; 某大型社交媒体: 基于EasyRec MultiTower模型AUC提升6% , 线上效果提升50%; 某大型电商平台:基于Easyrec DSSM模型 , 线上UV价值提升11% UVCTR提升4%; 某短视频APP:基于EasyRec DBMTL模型 , 线上时长提升30% , +多模态特征进一步提升10% 。最后 , EasyRec已经通过github开源(https://github.com/alibaba/EasyRec) , 在此欢迎各位同路人共建 , 包括:丰富各个场景的特征构造 , 引入更多在实际场景中验证过的模型 , 提升模型离线在线推理的性能 , 等等 。 在这个日益内卷的行业(可以想象tensorflow为什么越做越差 , 跟内卷应该关系非常大 , api的修改比较随意、存在过度设计扩展困难的问题、bug层出不穷 , 天下苦TF久矣) , 我们希望能够通过这样一个开源的工作 , 形成大家的合力 , 照亮我们共同的路 。 在这里 , 我们也像前辈xgboost致敬 , 希望这个工作能够像xgboost一样发扬光大 , 影响深远 。
作者:程孟力 - 机器学习PAI团队
【算法|深度解析开源推荐算法框架 EasyRec 的核心概念和优势】本文为阿里云原创内容 , 未经允许不得转载 。
- 东南亚|MIUI13深度使用报告,这还是我认识的MIUI吗?网友评价很真实
- 将理论注入深度学习,对过渡金属表面进行可解释的化学反应性预测
- 合规|上海制定反垄断、互联网营销算法、盲盒经营活动等新业态合规指引
- c语言|e观沧海丨算法焉能藏“算计”
- 家庭影院|深度设置和调节家庭影院低音炮
- 人类的工作会被AI取代吗?如果机器能够深度学习|为什么说AI能作巴赫的曲,却写不出村上春树的小说?
- 新年新气象。|深度 | 创造“世界记录”!江苏这个王牌实验室为何收获多?
- meta|搞Java怎么玩深度学习,生产环境用DL4J啊
- 算法|【2022/1/15】thinkphp源码无差别阅读(二十)
- 算法|电竞好用日常也爽的小金刚显示器,优派VX2780-2K-PRO分享