推荐系统工程主要内容之-系统支撑

Posted 尼萌工作室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐系统工程主要内容之-系统支撑相关的知识,希望对你有一定的参考价值。

 这是尼萌工作室的第【 14】篇文章。本文正文1040 字,阅读完成约5分钟。


推荐的根本目的:帮公司赚钱。 最基本的目的:增加转化率

 


整个推荐系统中包括推荐系统核心业务流模块(参阅)  服务支撑模块。


01 评估模块

推荐评估模块的主要作用是评估整个推荐系统的质量及价值产出。一般来说可以从两个维度来评估。


   离线评估:

主要是评估训练好的推荐模型的“质量”,模型在上线服务之前需要评估该模型的准确度,一般是将训练数据分为训练集和测试集,训练集用于训练模型,而测试集用来评估模型的预测误差。如准确率,召回率,AUC


在线评估:

实际应用中更看实际生产产生的效果。模型上线提供推荐服务过程中来评估一些真实的转化指标,除 了CTR,还有转化率、购买率、点击率、播放时长等。线上评估一般会结合 AB 测试,先放一部分量,  如果效果达到期望再逐步拓展到所有用户,避免模型线上效果不好严重影响用户体验和收益指标等。


02 调度模块

一个推荐业务要产生价值,所有依赖的任务都要正常运行。推荐业务可以抽象为有向无环图  ,因此需要按照该有向图的依赖关系依次执行每个任务,这些任务的依赖关系就需要借助合适的调度系统 来实现, 早期我们采用 Crontab 来调度,gocron界面管理,当任务量多的时候就不那么方便了,Crontab 也无法很好解决任务依赖关系,后续采取airflow进行任务依赖,资源分配,重启等管理。
 

03 监控模块

监控模块解决的是当推荐业务 (依赖的) 任务调度失败,服务的内部状态(QPS, 请求成功率和失败率,请求处理耗时),机器内存,CPU状态等各种不正常因素可以及时告警,通过邮件或者短信通知运维或者业务的维护者,及时发现问题,或者可以在后台自动拉起服务。
同时可以对服务的 各种其他状态做监控,比如文件大小、状态变量的值、日期时间等与业务正常执行相关的状态变量,不正常时及时发现问题。 Prometheus是一个非常棒的监控工具。

04 审查模块

审查模块是对推荐系统结果数据的正确性、有效性、全面性进行检查,避免错误产生。一般的处理策略是根据业务定义一些审查用例,在推荐任务执行前或者执行阶段对运算过程做 check,发现问题及时告警,防止对用户体验产生极大负面影响


以上是关于推荐系统工程主要内容之-系统支撑的主要内容,如果未能解决你的问题,请参考以下文章

推荐系统之推荐引擎

推荐系统评价:什么是好的推荐系统

从零开始了解推荐系统全貌

推荐系统小结

大数据技术之_24_电影推荐系统项目_04_推荐系统算法详解

电影推荐系统(037~039)