算法|深度解析开源推荐算法框架 EasyRec 的核心概念和优势

算法|深度解析开源推荐算法框架 EasyRec 的核心概念和优势

文章图片

算法|深度解析开源推荐算法框架 EasyRec 的核心概念和优势

文章图片

算法|深度解析开源推荐算法框架 EasyRec 的核心概念和优势

文章图片

算法|深度解析开源推荐算法框架 EasyRec 的核心概念和优势

文章图片

算法|深度解析开源推荐算法框架 EasyRec 的核心概念和优势

随着移动app的普及 , 个性化推荐和广告成为很多app不可或缺的一部分 。 他们在改善用户体验和提升app的收益方面带来了巨大的提升 。 深度学习在搜广推领域的应用也已经非常深入 , 并且给各种场景的效果带来了巨大的提升 。 针对推荐流程的各个阶段 , 业界已经有很多的模型 , 这些模型大部分也有开源的实现 , 但是这些实现通常散落在github的各个角落 , 其数据处理和特征构造的方式各有差异 。 如果我们想要在一个新的场景里面应用这些模型 , 通常需要做比较多的改动:
输入的改造 , 开源的实现的输入格式和特征构造通常和线上不一致 , 适配一个算法通常需要1-2周左右的时间 , 还难免因为对代码的不熟悉引入bug , 如果要尝试5个算法的话 , 就需要5倍的改造时间 。 如果算法资源有限 , 这时候是不是就要忍痛割爱 , 放弃一些可能有效果的尝试了? 开源的实现很多只是在公开数据集上取得了比较好的效果 , 在公开数据集上的最优参数也不一定适合实际的场景 , 因此参数调优也需要较大的工作量;有时候效果不好 , 并不是因为方法不行 , 而是选的参数不太好 。 如果没有系统化的调参方法 , 很多算法也就是简单试一下 , 没有deep explore , 哪来对算法的深入理解呢? 为什么看似简单的改进 , 你没有能够发现呢? 为什么你也尝试了类似的方向 , 但是没有搞出来效果呢? 效果通常都是用算力和数不尽的尝试堆出来的; 开源的实现用的是tensorflow 1.4 , 而线上用的tensorflow 2.3 , 好多函数的参数都变掉了(此处心里是不是想骂google一百遍 , 当初信誓旦旦说好的api不再变呢); 很多开源的实现由于没有在实际场景中验证过 , 所以其可靠性也是存疑的 , 可能就会少了个dropout , 少了一个bn , 效果相差甚远; 费了九牛二虎之力把模型效果调好了 , 发现上线也会有很多问题 , 比如训练速度太慢、内存占用太大、推理qps跟不上、离线效果好在线效果跪等等 。 遇到这么多问题 , 你还有精力去做你的下一个idea吗?你还能斗志昂扬 , 坚持不懈的去探索新方向吗? 这些问题搞得我们心有余而力不足、天天加班到深夜、不知何时是个头:想要验证一个简单的idea都要使出九牛二虎之力 。 所谓天下武功 , 唯快不破 , 对于搜广推领域的算法同学来说 , 尤其如此:通过快速迭代才能验证更多的想法 , 发现更多的问题 , 找出最优的特征和模型结构 。 速度慢了的话 , 可能你的模型还没调好 , 业务目标就变了 , 前端的布局也改了 , 你的业务方可能都不相信你了 , 你也就没机会上线了 。
说到这里 , 我们的诉求就比较明确了 , 我们就是想少写代码 , 甚至不写代码就能验证我们的想法 。 针对这些问题和诉求 , 我们推出一个全新的、一步到位的推荐建模框架 , 致力于帮助大家解决在推荐建模、特征构造、参数调优、部署等方面的问题 , 让大家少写代码 , 少干重复的没有意义的脏活累活(这些EasyRec都承包了) , 少趟一些坑少踩一些雷(这些EasyRec都替你趟了) , 让大家能够快速上线验证新的idea , 提升推荐模型的迭代效率 。