推荐引擎在推荐系统当中起到类似于一个调度器的作用,用户的请求从APP后端发往推荐引擎,推荐引擎调用各种服务,比如召回服务和排序服务,然后按照规则对各种服务返回的结果进行处理,最后将处理好的TopK内容返回给用户。以信息流推荐系统为例,典型的推荐引擎架构如下:
上图红色虚线框当中的内容是一个典型的推荐引擎的工作流程,包括:
用户属性和文章特征的加载
调用多路召回服务,从万级别内容库当中初步选择出千级别的待排序内容
调用过滤服务,从召回的内容池当中剔除不符合要求的文章,比如敏感的、低质的、重复的
调用粗排服务,如果过滤后文章量级还是比较大,一般还会有一个粗排服务,进一步减轻精排服务的压力
调用精排服务,这里就是各种精心设计的模型发挥作用的主战场,精排模型的特点是特征多、任务多、模型复杂
调用重排服务,这里是各种机制(规则)发挥作用的地方,比如针对各个目标调权、相似性调整、刷内类型限制、强插等等,产品在这里发挥的作用比较大,到这里基本流程已经结束了,推荐给用户的TopK内容已经确定
数据上报,包括推荐出去的内容的特征、预估分,上报对象有特征服务、频控服务等,特征可以通过ack的方式在预估服务里面落,也可以通过预估透传特征的方式直接在这里落
推荐引擎的一个重要功能是支持AB实验,所以也会调用AB实验平台的接口来调整用户属性以支持各种实验。AB实验平台的重要功能就是根据实验配置对用户进行划分,将用户合理分配到不同的实验当中去,以对比各种实验的实际效果。
推荐引擎的业务逻辑多且复杂,而且改动也很频繁,各种机制的调整都在这里,所以这里发生线上事故的概率相对比较高。清晰的项目结构、简洁的代码文件、良好的编程习惯的重要性,在推荐引擎框架的搭建与使用中体现的淋漓尽致。
由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:
(1)点击页面最上方"AINLP",进入公众号主页。
(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。
推荐阅读
征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)
完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)
模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法
文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化
斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用
关于AINLP
AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。
阅读至此了,分享、点赞、在看三选一吧🙏